编译无效对象是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(sequence) from 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. E: 错误,pkgProblemResolver::Resolve 发生故障,这可能是有软件包被要求保持现状的缘故。 E: 无法更正依赖关系

    mentohust:i386 已经是最新的版本了. 您可能需要运行"apt-get -f install"来纠正下列错误: 下列软件包有未满足的依赖关系:  mentohust:i ...

  2. 数据库之SQL语句查询基础

    人的一生要疯狂一次,无论是为一个人,一段情,一段旅途,或一个梦想. 人没有梦想是荒废的,是漫无目的的,拥有梦想你会飞的更远. 下面我就来为大家介绍一下SQL语句的查询基础,以下使用MySchool数据 ...

  3. Delphi Tokyo 10.2.3发布了

    Delphi Tokyo 10.2.3发布了 http://blog.sina.com.cn/s/blog_44fa172f0102wwwg.html (2018-03-14 07:51:32) 转载 ...

  4. c++ 调用 sqlite

    #include <iostream> #include "sqlite3.h" using namespace std; void dbTest() { #pragm ...

  5. 刘铁猛-深入浅出WPF-系列资源汇总

    首先奉上原作者刘铁猛博客地址:http://www.cnblogs.com/prism/ 作者讲的很不错,没有之一,另外作者出了一本书,希望大家支持. 送上全套高清晰视频教程(我注册了3个51cto的 ...

  6. curl基本用法

    curl 是一种命令行工具,作用是发出网络请求,然后获取数据,显示在"标准输出"(stdout)上面. 以下是博主整理的一些关于curl命令的基本用法. -A/--user-age ...

  7. 红帽学习笔记[RHCSA] 第六课[进程、服务相关]

    第六课 进程 进程:已经启动的可执行程序的运行中的实例.每个进程都有自己的地址空间,并占用了一定的系统资源. 如何产生一个进程 执行程序或命令 计划任务 在终端中对进程管理 运行一个前台进程 [roo ...

  8. 使用 PC 做 FTP/TFTP 服务器,上传和下载文件

    使用PC做TFTP服务器,上传和下载文件需要用到一个工具软件,IPOP,可百度下载. 1.在桌面新建一个空闲的文件夹,作为TFTP服务器的存储位置,然后打开IPOP软件,开启服务. 图片中 编号3 的 ...

  9. PostgreSQL索引思考

    当在看Monetdb列存行只支持IMPRINTS和ORDERED这两种索引,且只支持定长数值类型时,就在思考,对于列存,还有必要建索引吗?在PostgreSQL的索引就要灵活很多,我对常用列建合理的索 ...

  10. Java程序基本框架

    对象:对象是类的一个实例,有状态和行为.例如,一条狗是一个对象,它的状态有:颜色.名字.品种:行为有:摇尾巴.叫.吃等. 类:类是一个模板,它描述一类对象的行为和状态.(Java是以类为组织单位) 方 ...