查看PL/SQL编译时的错误信息_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2597 | 回复: 0   主题: 查看PL/SQL编译时的错误信息        下一篇 
barry
注册用户
等级:中校
经验:1534
发帖:236
精华:2
注册:2012-1-13
状态:离线
发送短消息息给barry 加好友    发送短消息息给barry 发消息
发表于: IP:您无权察看 2015-7-21 17:21:07 | [全部帖] [楼主帖] 楼主

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

     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、编译无效对象                                                                                                         

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

    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)                    Nameof 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'andname='OTC_WRHS_POSITION_PCK_tmp'and
    2  sequence=(selectmax(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:
    . ( ) , * @ % & = - + < / > atinis mod remainder not re
    m
    <an exponent (**)> <> or != or ~= >= <= <> andorlike LI
    KE2_
    LIKE4_ LIKEC_ between   multiset member SUBMULTISET_
    The symbol "." was substituted for"ULL"tocontinue.


    --转自 北京联动北方科技有限公司




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论