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

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

1、查看当前数据库版本

[sql] view plain copy

print?

1.SQL> select * from v$version;

2.

3.BANNER

4.----------------------------------------------------------------

5.Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi

6.PL/SQL Release 10.2.0.4.0 - Production

7.CORE    10.2.0.4.0      Production

8.TNS for Solaris: Version 10.2.0.4.0 - Production

9.NLSRTL Version 10.2.0.4.0 - Production

2、获得数据库中的无效对象

[sql] view plain copy

print?

1.set linesize 180

2.col object_name format a45

3.SELECT owner, object_name, object_type, status

4.FROM dba_objects

5.WHERE status = 'INVALID'

6.     AND

7.     object_type IN ('PROCEDURE', 'FUNCTION', 'TRIGGER', 'VIEW', 'PACKAGE');

8.

9.OWNER                          OBJECT_NAME                                   OBJECT_TYPE         STATUS

10.  ------------------------------ --------------------------------------------- ------------------- -------

11. OTC_WRHS_POSITION              OTC_WRHS_POSITION_PCK_tmp                     PACKAGE             INVALID

3、编译无效对象(编译方法很多,在此不一一列出)

[sql] view plain copy

print?

1./**************************************************/

2./* Author: Robinson Cheng                         */

3./* Blog:   http://blog.csdn.net/robinson_0612     */

4./* MSN:    robinson_0612@hotmail.com              */

5./* QQ:     645746311                              */

6./**************************************************/

7.

8.--注意该包对象中包体的名字含小写字符,因此编译时使用双引号括起来

9.SQL> alter package "OTC_WRHS_POSITION"."OTC_WRHS_POSITION_PCK_tmp" compile body;

二、捕获编译错误
    1、使用show errors捕获错误

[sql] view plain copy

print?

1.SQL> show errors;

2.No errors.

3.

4.SQL> show errors package body "OTC_WRHS_POSITION"."OTC_WRHS_POSITION_PCK_tmp";

5.No errors.

2、如果使用show errors无法查询到错误,直接查询视图dba_errors

[sql] view plain copy

print?

1.SQL> desc dba_errors;

2.Name           Type           Nullable Default Comments

3.-------------- -------------- -------- ------- ---------------------------------------------------------------

4.OWNER          VARCHAR2(30)

5.NAME           VARCHAR2(30)                    Name of the object

6.TYPE           VARCHAR2(12)   Y                Type: "TYPE", "TYPE BODY", "VIEW", "PROCEDURE", "FUNCTION",

7."PACKAGE", "PACKAGE BODY", "TRIGGER",

8."JAVA SOURCE" or "JAVA CLASS"

9.SEQUENCE       NUMBER                          Sequence number used for ordering purposes

10. LINE           NUMBER                          Line number at which this error occurs

11. POSITION       NUMBER                          Position in the line at which this error occurs

12. TEXT           VARCHAR2(4000)                  Text of the error

13. ATTRIBUTE      VARCHAR2(9)    Y

14. MESSAGE_NUMBER NUMBER         Y

15.

16. SQL> select owner,name,TEXT from dba_errors where owner='OTC_WRHS_POSITION' and name='OTC_WRHS_POSITION_PCK_tmp' and

17.    2  sequence=(select max(sequencefrom dba_errors where owner='OTC_WRHS_POSITION');

18.

19. OWNER                NAME                      TEXT

20.  -------------------- ------------------------- ------------------------------------------------------------

21.  OTC_WRHS_POSITION    OTC_WRHS_POSITION_PCK_tmp PLS-00103: Encountered the symbol "ULL" when expecting one o

22.                                                f the following:

23.

24.                                                   . ( ) , * @ % & = - + < / > at in is mod remainder not re

25.                                                m

26.                                                   <an exponent (**)> <> or != or ~= >= <= <> and or like LI

27.                                                KE2_

28.                                                   LIKE4_ LIKEC_ between || multiset member SUBMULTISET_

29.                                                The symbol "." was substituted for "ULL" to continue.

30.

来源: http://blog.csdn.net/leshami/article/details/6913026

查看PL/SQL编译时的错误信息的更多相关文章

  1. 查看package编译时的错误信息及重新编译

    开发时,一般都是使用PL/SQL工具进行开发,查看编译错误及重新编译都很简单,但是一般的生产环境是不允许连接外界工具的,只能在命令行中进行重新编译及查看,今天我就遇到了这个问题,现在总结如下: 1.获 ...

  2. 【转】正确理解PHP程序编译时的错误信息

    我们编写程序时,无论怎样小心谨慎,犯错总是在所难免的.这些错误通常会迷惑PHP编译器.如果开发人员无法了解编译器报错信息的含义,那么这些错误信息不仅毫无用处,还会常常让人感到沮丧. 编译PHP脚本时, ...

  3. ORA-06502: PL/SQL: 数字或值错误 : 字符串缓冲区太小 错误分析

    目录(?)[+] 1. 问题起因 最近在进行Oracle的一些操作时,总会遇到这个错误:  ORA-06502: PL/SQL: 数字或值错误 :  字符串缓冲区太小,错误如下: ORA-00604: ...

  4. ORA-06502: PL/SQL: 数字或值错误 : 字符串缓冲区太小解决办法

    1.今天写的存储过程在执行过程中,报如下错误. exec PRO_T_008pro_update_add_delete(17,1,1,1,1,45.0,54.0,45.0,45.0,45.0,54.0 ...

  5. 解决SVN Cleanup时遇到错误信息:Cleanup failed to process the following paths:xxxxxxx Previous operation has not finished: run 'cleanup' if it was interrupted Please execute the 'Cleanup' command.

    解决SVN Cleanup时遇到错误信息:Cleanup failed to process the following paths:xxxxxxx Previous operation has no ...

  6. 在Linux下安装PHP过程中,编译时出现错误的解决办法

    在Linux下安装PHP过程中,编译时出现configure: error: libjpeg.(a|so) not found 错误的解决办法 configure: error: libjpeg.(a ...

  7. 把Excel导入SQL server时出现错误

    在把Excel导入SQL server时出现“未在本地计算机上注册 Microsoft.ACE.OLEDB.12.0 ”该 错误信息:未在本地计算机上注册“microsoft.ACE.oledb.12 ...

  8. PL/SQL连接时,报无法解析指定的字符串

    前言: 工作原因,需要安装PL/SQL连接数据,oracle和PL/SQL都装好了,环境变量也配好了,启动PL/SQL进行连接数据库,结果报"无法解析指定的字符串",连接失败了. ...

  9. [开源类库/项目] android保存崩溃时的错误信息log至本地【源码+jar包+使用说...

    不知大家是否经常遇到这种情况:自己的项目有时会在没有连接到电脑时发生崩溃,好不容易发现的bug结果连接到电脑时又复现不出来了:又或者自己写的一个功能在开机启动时产生小bug导致崩溃,而刚启动的机器想让 ...

随机推荐

  1. 卡方检验(python代码实现)

     https://study.163.com/provider/400000000398149/index.htm?share=2&shareId=400000000398149( 欢迎关注博 ...

  2. Spring 由缓存切点驱动的通知者

    Spring 缓存通知者和切点 缓存切点 /** * Spring 核心切点抽象 */ public interface Pointcut { /** * 类过滤器,当前切点是否需要织入在指定的类上 ...

  3. JavaScript函数、BOM

    [函数的声明和调用] 1.>>>函数声明的格式:形参可以不用var声明 使用function关键字声明: function 函数名 (参数1,参数2,......){ //函数体 r ...

  4. 【Hibernate】---【注解】一对一

    一.核心配置文件 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-con ...

  5. LeetCode算法题-Maximize Distance to Closest Person(Java实现)

    这是悦乐书的第328次更新,第351篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第198题(顺位题号是849).在一排座位中,1表示一个人坐在该座位上,0表示座位是空的 ...

  6. Mysql-使用xtrabackup添加Slave

    1.备份主库数据(主库操作) (1)安装innobackupex # yum -y install http://www.percona.com/downloads/percona-release/r ...

  7. 2016青岛区域赛.Coding Contest(费用流 + 概率计算转换为加法计算)

    Coding Contest Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)To ...

  8. Spark Netty 通信框架解析

    1.RpcEndpoint: RPC端点 Spark针对每个节点(Client.Master.Worker)都称之为一个RpcEndpoint,且都实现RpcEndpoint接口,内部根据不同端点的需 ...

  9. java常用类详细介绍及总结:字符串相关类、日期时间API、比较器接口、System、Math、BigInteger与BigDecimal

    一.字符串相关的类 1.String及常用方法 1.1 String的特性 String:字符串,使用一对""引起来表示. String声明为final的,不可被继承 String ...

  10. Element-ui 使用详细介绍

    一.后台搭建 使用 vue-admin-template 来快速搭建后台管理,它包含了 Element UI & axios & iconfont & permission c ...