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

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

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

                                                   
                                              

 

你可能感兴趣的文章
Jenkins持续部署-自动生成版本号
查看>>
设计模式--代理模式
查看>>
javascript基础知识--最基础的
查看>>
[转] vue自定义组件(通过Vue.use()来使用)即install的使用
查看>>
[转] 函数声明和函数表达式——函数声明的声明提前
查看>>
敢死队2影评
查看>>
浅析 JavaScript 中的 apply 和 call 用法的差异
查看>>
html5-css综合练习
查看>>
嵌入式开发之cgic库---cgi库的使用
查看>>
clickhouse安装 Requires: libstdc++.so.6(GLIBCXX_3.4.19)(64bit)
查看>>
FFT快速傅立叶变换
查看>>
<刘未鹏 MIND HACKS>读书笔记
查看>>
locate
查看>>
AceyOffice教程--如何判断单元格的内容
查看>>
前端 -- 超链接导航栏案例
查看>>
软工网络15个人作业
查看>>
css 兼容性写法,CSS hack写法
查看>>
剑指offer 之 C/C++基础知识1
查看>>
(KMP 暴力)Corporate Identity -- hdu -- 2328
查看>>
Silverlight程序中访问配置文件
查看>>