查看PL/SQL编译时的错误信息

简介:     编译无效对象是DBA与数据库开发人员常见的工作之一。对于编译过程中的错误该如何去捕获,下面给出两种捕获错误的方法。 一、当前数据库版本信息及无效对象     1、查看当前数据库版本    SQL> select * from v$...

    编译无效对象是DBA与数据库开发人员常见的工作之一。对于编译过程中的错误该如何去捕获,下面给出两种捕获错误的方法。

一、当前数据库版本信息及无效对象

    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:    robinson_0612@hotmail.com              */                          
/* QQ:     645746311                              */                          
/**************************************************/                          
	                                                                              
--注意该包对象中包体的名字含小写字符,因此编译时使用双引号括起来                
SQL> alter package "OTC_WRHS_POSITION"."OTC_WRHS_POSITION_PCK_tmp" compile body;

二、捕获编译错误
    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.                    
                                                                                                                        


                                                   
                                              

 

目录
相关文章
|
5月前
|
XML SQL 数据格式
XML动态sql查询当前时间之前的信息报错
XML动态sql查询当前时间之前的信息报错
63 2
|
2月前
|
SQL Java
使用java在未知表字段情况下通过sql查询信息
使用java在未知表字段情况下通过sql查询信息
46 8
|
2月前
|
SQL 监控 关系型数据库
SQL语句当前及历史信息查询-performance schema的使用
本文介绍了如何使用MySQL的Performance Schema来获取SQL语句的当前和历史执行信息。Performance Schema默认在MySQL 8.0中启用,可以通过查询相关表来获取详细的SQL执行信息,包括当前执行的SQL、历史执行记录和统计汇总信息,从而快速定位和解决性能瓶颈。
101 1
|
2月前
|
SQL 数据采集 监控
局域网监控电脑屏幕软件:PL/SQL 实现的数据库关联监控
在当今网络环境中,基于PL/SQL的局域网监控系统对于企业和机构的信息安全至关重要。该系统包括屏幕数据采集、数据处理与分析、数据库关联与存储三个核心模块,能够提供全面而准确的监控信息,帮助管理者有效监督局域网内的电脑使用情况。
43 2
|
8月前
|
SQL 存储 安全
第七章 SQL错误信息 - SQL错误代码 -400 到 -500
第七章 SQL错误信息 - SQL错误代码 -400 到 -500
212 1
|
4月前
|
SQL Java
使用java在未知表字段情况下通过sql查询信息
使用java在未知表字段情况下通过sql查询信息
45 1
|
5月前
|
SQL 流计算
Flink SQL 在快手实践问题之由于meta信息变化导致的state向前兼容问题如何解决
Flink SQL 在快手实践问题之由于meta信息变化导致的state向前兼容问题如何解决
60 1
|
5月前
|
SQL JSON Go
Go - 基于 GORM 获取当前请求所执行的 SQL 信息
Go - 基于 GORM 获取当前请求所执行的 SQL 信息
99 3
|
5月前
|
SQL Oracle 关系型数据库
SQL与PL/SQL:数据库编程语言的比较
【8月更文挑战第31天】
114 0
|
6月前
|
SQL 机器学习/深度学习 分布式计算
MaxCompute产品使用合集之怎么使用SQL查询来获取ODPS中所有的表及字段信息
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
158 7