美文网首页SQL
第三章 SQL错误信息

第三章 SQL错误信息

作者: Cache技术分享 | 来源:发表于2023-02-15 07:31 被阅读0次

    第三章 SQL错误信息

    下表列出了SQL数字错误代码及其错误消息。这些代码作为SQLCODE变量值返回。

    注意:虽然本文档将错误代码列为负值,但JDBCODBC客户端始终收到正值。例如,如果ODBC或JDBC应用程序返回错误代码30,请在此表中查找错误代码-30

    SQLCODE 0100

    有两个SQLCODE值不表示SQL错误:

    错误代码 描述
    0 成功完成
    100 无数据
    • SQLCODE=0表示SQL操作成功完成。对于SELECT语句,这通常意味着从表中成功检索数据。但是,如果SELECT执行聚合操作(例如:SELECT SUM(myfield)),则聚合操作成功,即使myfield中没有数据,也会发出SQLCODE=0;在这种情况下,SUM返回NULL%ROWCOUNT=1
    • SQLCODE=100表示SQL操作成功,但找不到要操作的数据。出现这种情况的原因有很多。对于SELECT,这些包括:指定的表不包含数据;该表不包含满足查询条件的数据;或者行检索已到达表的最后一行。对于UPDATEDELETE,这些包括:指定的表不包含数据;或者该表不包含满足WHERE子句条件的数据行。在这些情况下,%ROWCOUNT=0

    在嵌入式SQL中,当SQLCODE=100时,INTO子句中指定的输出主机变量为空。

    SQLCODE -400

    SQLCODE-400错误“发生致命错误”是一个常规错误。它是在更具体的SQLCODE错误代码不可用时生成的。

    检索SQL消息文本

    要确定SQLCODE数字代码的含义,请使用以下ObjectScript语句:

       WRITE "SQLCODE=",$SYSTEM.SQL.Functions.SQLCODE(-nnn)
    
    USER>WRITE "SQLCODE=",$SYSTEM.SQL.Functions.SQLCODE(-1)
    SQLCODE=无效 SQL 语句
    USER>WRITE "SQLCODE=",$SYSTEM.SQL.Functions.SQLCODE(-2)
    SQLCODE='E' 之后缺少指数数字
    USER>WRITE "SQLCODE=",$SYSTEM.SQL.Functions.SQLCODE(-3)
    SQLCODE=缺少右引号 (")
    USER>WRITE "SQLCODE=",$SYSTEM.SQL.Functions.SQLCODE(-4)
    SQLCODE=需要的术语以下列项之一开头:标识符,常数,汇总,%ALPHAUP, %EXACT, %MVR, %SQL                    STRING, %SQLUPPER, %STRING, %TRUNCATE, %UPPER, $$, :, +, -, (, NOT, EXISTS或FOR
    USER>WRITE "SQLCODE=",$SYSTEM.SQL.Functions.SQLCODE(-400)
    SQLCODE=出现致命错误
    

    SQLCODE()方法也可以作为存储过程调用:%SYSTEM_SQL.Functions_SQLCODE(-nnn)

    如果可能(通常在SQL编译时),错误消息包括导致错误的字段、表、视图或其他元素的名称。这些名称的占位符使用<name>语法约定显示。

    %msg变量可能包含特定错误的附加消息错误文本。

    相关文章

      网友评论

        本文标题:第三章 SQL错误信息

        本文链接:https://www.haomeiwen.com/subject/xwpykdtx.html