博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
查看PL/SQL编译时的错误信息
阅读量:6381 次
发布时间:2019-06-23

本文共 6429 字,大约阅读时间需要 21 分钟。

  hot3.png

    编译无效对象是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                                                                                                                          
<> or != or ~= >= <= <> and or like LI KE2_ LIKE4_ LIKEC_ between || multiset member SUBMULTISET_ The symbol "." was substituted for "ULL" to continue.

                                                   
                                              

 

原文链接:

转载于:https://my.oschina.net/dtec/blog/47396

你可能感兴趣的文章
.wav file research
查看>>
Link-Cut-Tree题目泛做(为了对应自己的课件)
查看>>
关于Android热点模式下的UDP广播
查看>>
多态-典型用法
查看>>
学习笔记之pandas Foundations | DataCamp
查看>>
C++编程练习(14)-------“单例模式”的实现
查看>>
css学习_标签的显示模式
查看>>
《架构之美》摘录二
查看>>
JDK8 Lamdba表达式转换成Map,value为null问题
查看>>
python基础===正则表达式(转)
查看>>
如何让你的SQL运行得更快
查看>>
NewLife.XCode 上手指南(五) 复杂查询
查看>>
_02特性 给方法加上注释 或者停用
查看>>
第四十一天
查看>>
java2 -宏观了解
查看>>
lucene安装配置2
查看>>
【翻译】Ext JS最新技巧——2015-1-2
查看>>
Visual Studio快捷键不能使用解决办法
查看>>
delphi调用webservice接口时返回result element expected的解决办法
查看>>
执行perl adclonectx.pl出现错误
查看>>