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

    EasyHook实用指南 所谓实用指南就是全是干货,没那么多虚头巴脑的东西,真正要用的人会发现对自己有用的东西,浅尝辄止的人看起来会不知所云. FileMon自己实做的过程中遇到的问题: 1. exe ...

  2. Visual Studio Code 断点调试Nodejs程序跳过node内部模块(internal modules)

    Built-in core modules of Node.js can be referred to by the ‘magic name’ <node_internals> in a ...

  3. mount挂载相关指令

    最近需要重新挂载一块数据盘,增加挂载设置,遇到一些问题做下记录. step1:df -h 或 lsblk 查看分区挂载和对应挂载的目录 /dev/xxx /data step2:umount /dev ...

  4. spring(一) IOC 控制反转 、DI 依赖注入

    IOC 控制反转:创建对象的方式  变成了由Spring来主导 IOC底层原理:对象工厂 1.导入jar包:4个核心jar和1个依赖jar spring-beans-4.3.9.RELEASE.jar ...

  5. LeetCode.868-二进制距离(Binary Gap)

    这是悦乐书的第333次更新,第357篇原创 01看题和准备 今天介绍的是LeetCode算法题中Easy级别的第203题(顺位题号是868).给定正整数N,找到并返回N的二进制表示中两个连续1之间的最 ...

  6. 2.nginx配置详细说明

    Nginx配置详解 nginx概述 nginx是一款自由的.开源的.高性能的HTTP服务器和反向代理服务器:同时也是一个IMAP.POP3.SMTP代理服务器:nginx可以作为一个HTTP服务器进行 ...

  7. 【Linux开发】【Qt开发】嵌入式Qt程序使用触屏或USB鼠标方式

    上文<嵌入式Qt开发-移植到ARM开发板 >介绍了Qt程序的移植,本文再说下如何使开发板Qt程序使用触摸屏或USB方式进行交互. 之前刚把一个qt程序移植到arm板上成功运行显示时就开心的 ...

  8. 网络编程.iocp

    1.(20191212)查到的一些资料:java从 JDK7开始 引入AOI(即 NIO2).然后 实现 IOCP使用的是 AsynchronousChannelGroup.AsynchronousS ...

  9. python+selenium切换窗口(获取句柄信息)

    current_window_handle:获得当前窗口句柄: window_handles:返回所有窗口的句柄到当前会话: switch_to.window(suoyou[0]) ========= ...

  10. Express中间件body-parser

    在http请求种,POST.PUT.PATCH三种请求方法中包含着请求体,也就是所谓的request,在Nodejs原生的http模块中,请求体是要基于流的方式来接受和解析. body-parser是 ...