PL / SQL 컴 파일 시 오류 정보 보기

컴 파일 이 잘못된 대상 은 DBA 와 데이터베이스 개발 자 들 이 흔히 볼 수 있 는 작업 중 하나 이다.컴 파일 과정 에서 의 오 류 를 어떻게 포착 해 야 하 는 지 에 대해 서 는 오 류 를 포착 하 는 두 가지 방법 을 제시 합 니 다.
1. 현재 데이터베이스 버 전 정보 및 무효 대상
    1. 현재 데이터베이스 버 전 보기   
SQL> select * from v$version;                                      
                                                                   
BANNER                                                             
----------------------------------------------------------------   
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi   
PL/SQL Release 10.2.0.4.0 - Production                             
CORE    10.2.0.4.0      Production                                 
TNS for Solaris: Version 10.2.0.4.0 - Production                   
NLSRTL Version 10.2.0.4.0 - Production                             

    2. 데이터베이스 에 잘못된 대상 가 져 오기
set linesize 180                                                                                        
col object_name format a45                                                                              
SELECT owner, object_name, object_type, status                                                          
FROM dba_objects                                                                                        
WHERE status = 'INVALID'                                                                                
     AND                                                                                                
     object_type IN ('PROCEDURE', 'FUNCTION', 'TRIGGER', 'VIEW', 'PACKAGE');                            
                                                                                                        
OWNER                          OBJECT_NAME                                   OBJECT_TYPE         STATUS 
------------------------------ --------------------------------------------- ------------------- -------
OTC_WRHS_POSITION              OTC_WRHS_POSITION_PCK_tmp                     PACKAGE             INVALID

    3. 잘못된 대상 을 컴 파일 합 니 다 (컴 파일 방법 이 많 습 니 다. 일일이 열거 하지 않 습 니 다)    
/**************************************************/                          
/* Author: Robinson Cheng                         */                          
/* Blog:   http://blog.csdn.net/robinson_0612     */                          
/* MSN:    [email protected]              */                          
/* QQ:     645746311                              */                          
/**************************************************/                          
	                                                                              
--                 ,                             
SQL> alter package "OTC_WRHS_POSITION"."OTC_WRHS_POSITION_PCK_tmp" compile body;

2. 컴 파일 오류 캡 처    1, 사용 show errors 포획 오류   
SQL> show errors;                                                               
No errors.                                                                      
                                                                                
SQL> show errors package body "OTC_WRHS_POSITION"."OTC_WRHS_POSITION_PCK_tmp";  
No errors.                                                                      

    2. show errors 를 사용 하여 오 류 를 조회 할 수 없 으 면 보기 dba 를 직접 조회 합 니 다.errors   
SQL> desc dba_errors;                                                                                                   
Name           Type           Nullable Default Comments                                                                 
-------------- -------------- -------- ------- ---------------------------------------------------------------          
OWNER          VARCHAR2(30)                                                                                             
NAME           VARCHAR2(30)                    Name of the object                                                       
TYPE           VARCHAR2(12)   Y                Type: "TYPE", "TYPE BODY", "VIEW", "PROCEDURE", "FUNCTION",              
"PACKAGE", "PACKAGE BODY", "TRIGGER",                                                                                   
"JAVA SOURCE" or "JAVA CLASS"                                                                                           
SEQUENCE       NUMBER                          Sequence number used for ordering purposes                               
LINE           NUMBER                          Line number at which this error occurs                                   
POSITION       NUMBER                          Position in the line at which this error occurs                          
TEXT           VARCHAR2(4000)                  Text of the error                                                        
ATTRIBUTE      VARCHAR2(9)    Y                                                                                         
MESSAGE_NUMBER NUMBER         Y                                                                                         
                                                                                                                        
SQL> select owner,name,TEXT from dba_errors where owner='OTC_WRHS_POSITION' and name='OTC_WRHS_POSITION_PCK_tmp' and    
  2  sequence=(select max(sequence) from dba_errors where owner='OTC_WRHS_POSITION');                                   
                                                                                                                        
OWNER                NAME                      TEXT                                                                     
-------------------- ------------------------- ------------------------------------------------------------             
OTC_WRHS_POSITION    OTC_WRHS_POSITION_PCK_tmp PLS-00103: Encountered the symbol "ULL" when expecting one o             
                                               f the following:                                                         
                                                                                                                        
                                                  . ( ) , * @ % & = - + < / > at in is mod remainder not re             
                                               m                                                                        
                                                  <an exponent (**)> <> or != or ~= >= <= <> and or like LI             
                                               KE2_                                                                     
                                                  LIKE4_ LIKEC_ between || multiset member SUBMULTISET_                 
                                               The symbol "." was substituted for "ULL" to continue.                    
                                                                                                                        

                                                                                                  
 
원본 링크:http://blog.csdn.net/robinson_0612/article/details/6913026

좋은 웹페이지 즐겨찾기