编译无效对象是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. docker英语

    demotevt. 使降级:使降职 promotevt. 促进:提升:推销:发扬 swarmn. 一大群:蜂群:人群:一大群小型天体同时在空中出现 worker 工人manager 经理swarm 人 ...

  2. FireMonkey 绘图(1)

    FireMonkey 绘图(1) FMX 的 Canvas 在不同的系统上会分别使用:WinVista.Win7: D2D (FMX.Canvas.D2D.pas)WinXP: GDI+ (FMX.C ...

  3. LoadRunner之参数化

    一.为什么要进行参数化 LoadRunner在录制脚本的时候,只是忠实的记录了所有从客户端发送到服务器的数据,而在进行性能测试的时候,为了更接近真实的模拟现实应用,对于某些信息需要每次提交不同的数据, ...

  4. C++/C# 转化 Marshal VS Ptr

    Vidyo32.VidyoClientInEventLogin Login = new Vidyo32.VidyoClientInEventLogin(); Login.portalUri = thi ...

  5. 那些堪称神器的 Chrome 插件

    Chrome 的简洁快速以及丰富的插件种类使得它在国内日益盛行,帮助了我们很多 Chrome 用户提升了工作效率,而今天要给大家推荐8款实用甚至堪称神器的 Chrome 插件,希望对提升大家的工作效率 ...

  6. laravel 5.6 使用RabbitMQ作为消息中间件

    1.Composer安装laravel-queue-rabbitmqcomposer require vladimir-yuldashev/laravel-queue-rabbitmq2.在confi ...

  7. 【FICO系列】SAP FICO 凭证错误:BKPFF$PRDCLN800在FI中达到的项目最大编号

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[FICO系列]SAP FICO 凭证错误:BK ...

  8. Grass Planting

    大致题意: 维护一棵树,支持两种操作: P x y x到y路径上的每条边的值+1:Q x y 询问x到y路径上所有边的值的和.Input第一行两个正整数,N,M表示点数和操作数:接下来N-1行每行两个 ...

  9. ubuntu/如何启动、关闭和设置ubuntu防火墙

    由于LInux原始的防火墙工具iptables过于繁琐,所以ubuntu默认提供了一个基于iptable之上的防火墙工具ufw. ubuntu 9.10默认的便是UFW防火墙,它已经支持界面操作了.在 ...

  10. 重载Prometheus配置

    发送SIGHUP信号给应用程序的主进程: pid ‘’-1‘’是指“终端断线” 发送post请求给指定端点: curl -XPOST http://ip:9090/-/reload 对于此种方法要注意 ...