CLI 报告的 SQLState 消息


表 27. CLI 报告的 SQLState 消息

SQLSTATE CLI 函数名 描述 解释
01000 SQLAllocHandle 警告。 参考消息。(函数返回 SQL_SUCCESS_WITH_INFO。)
01000 SQLFreeHandle 警告。 参考消息。(函数返回 SQL_SUCCESS_WITH_INFO。)
01002 SQLDisconnect 断开连接错误。 断开连接时出错。但是,断开连接成功。(函数返回 SQL_SUCCESS_WITH_INFO。)
01004 SQLDescribeCol 数据被截断。 ColumnName 自变量中返回的列名比 BufferLength 自变量中指定的值要长。NameLengthPtr 自变量包含完整列名的长度。(函数返回 SQL_SUCCESS_WITH_INFO。)
01004 SQLFetch 数据被截断。 对一个或多个列返回的数据被截断。字符串值或数值在右端被截断。(如果不出错,则返回 SQL_SUCCESS_WITH_INFO。)
01004 SQLGetData 数据被截断。 对指定列(ColumnNumber)返回的数据被截断。字符串或数值在右端被截断。(返回 SQL_SUCCESS_WITH_INFO。)
01S06* SQLFetchScroll 试图在结果集返回第一个行集之前进行取装。 当当前位置在第一行之外,且 FetchOrientation 是 SQL_PRIOR,或 FetchOrientation 是 SQL_RELATIVE, 而 FetchOffset 是绝对值小于或等于当前 SQL_ATTR_ROW_ARRAY_SIZE 的负数,则请求的行集与结果集的起始点重叠。(函数返回 SQL_SUCCESS_WITH_INFO。)
07005 SQLDescribeCol 语句未返回结果集。 StatementHandle 相关联的语句未返回结果集。没有要描述的列。(首先调用 SQLNumResultCols() 以确定结果集中是否有返回行。)
07006 SQLBindParameter 转换无效。 ValueType 自变量标识的数据类型到 ParameterType 自变量标识的数据类型的转换不是有意义的转换。(例如,从 SQL_C_DATE 转换至 SQL_DOUBLE。)
07006 SQLFetch 转换无效。 未能将数据类型以有意义的方式转换为 SQLBindCol() 中的 fCType 所指定的数据类型。
07006 SQLGetData 转换无效。 不能将数据类型转换为自变量 TargetType 指定的 C 数据类型。先前对同一 ColumnNumber 值调用了此函数,但 TargetType 值不同。
07009 SQLBindCol 描述符索引无效。 ColumnNumber 自变量指定的值超出结果集中的最大列数。
07009 SQLDescribeCol 描述符索引无效 ColumnNumber 指定的值等于或小于 0。对 ColumnNumber 自变量指定的值大于结果集中的列数。
08001 SQLConnect 无法连接数据源。 DB2 CLI 无法建立与数据源(服务器)的连接。
08002 SQLConnect 连接正在使用中。 已使用指定的 ConnectionHandle 来建立与数据源的连接,该连接仍处于打开状态。
08003 SQLAllocHandle 连接已关闭。 HandleType 自变量是 SQL_HANDLE_STMT,但由 InputHandle 自变量指定的连接未打开。连接过程必须成功完成 (且连接必须是打开的),DB2 CLI 才能分配语句句柄。
08003 SQLDisconnect 连接已关闭。 ConnectionHandle 自变量中指定的连接未打开。
08004 SQLConnect 应用程序服务器拒绝建立连接。 数据源(服务器)拒绝建立连接。
08S01 SQLFreeHandle 通信链路故障。 HandleType 自变量是 SQL_HANDLE_DBC,在函数完成处理之前,DB2 CLI 与它尝试连接的数据源之间的通信链路失效。
22002 SQLFetch 指定的输出或指示符缓冲区无效。 SQLBindCol()pcbValue 自变量指定的指针值是空指针,且相应列的值为空。报告 SQL_NULL_DATA 是没有意义的。
22002 SQLGetData 指定的输出或指示符缓冲区无效。 StrLen_or_IndPtr 自变量指定的指针值是空指针,列的值为空。报告 SQL_NULL_DATA 是没有意义的。
22003 SQLExecDirect 数值超出范围。 对数字类型列指定的数值导致在赋值期间或计算中间结果期间截断该数字的整个部分。
22005 SQLGetData 赋值出错。 返回值与 TargetType 自变量指示的数据类型不兼容
39001 * SQLExecute 用户定义的函数返回了无效的 SQLSTATE。 用户定义的函数返回了无效的 SQLSTATE。
40003 08S01 SQLBindCol 通信链路错误。 函数尚未完成,应用程序与数据源间的通信链路就失效了。
40003 08S01 SQLBindParameter 通信链路故障。 函数尚未完成,应用程序与数据源间的通信链路就失效了。
40003 08S01 SQLDescribeCol 通信链路故障。 函数尚未完成,应用程序与数据源间的通信链路就失效了。
40003 08S01 SQLFreeStmt 通信链路故障。 函数尚未完成,应用程序与数据源间的通信链路就失效了。
40003 08S01 SQLGetData 通信链路故障。 函数尚未完成,应用程序与数据源间的通信链路就失效了。
40003 08S01 SQLNumResultCols 通信链路故障。 函数尚未完成,应用程序与数据源间的通信链路就失效了。
40003 08S01 SQLRowCount 通信链路故障。 函数尚未完成,应用程序与数据源间的通信链路就失效了。
42nnn* SQLPrepare 语法错误。 42nnn SQLSTATES 指示与语句相关的各种语法或访问问题。字符 nnn 指的是任何具有该类代码的 SQLSTATE。示例:42nnn 指的是 42 类中的任何 SQLSTATE。
42xxx SQLExecDirect 语法错误或访问规则违例。 42xxx SQLSTATES 指示与语句相关的各种语法或访问问题。xxx 指的是任何具有该类代码的 SQLSTATE。示例:42xxx 指的是 42 类中的任何 SQLSTATE。
42xxx SQLNumResultCols 语法错误。 42xxx SQLSTATES 指示与语句相关的各种语法或访问问题。xxx 指的是任何具有该类代码的 SQLSTATE。示例:42xxx 指的是 42 类中的任何 SQLSTATE。
58004 SQLBindCol 意外系统故障。 不可恢复的系统错误。
58004 SQLBindParameter 意外系统故障。 不可恢复的系统错误。
58004 SQLConnect 意外系统故障。 不可恢复的系统错误。
58004 SQLDescribeCol 意外系统故障。 不可恢复的系统错误。
58004 SQLDisconnect 意外系统故障。 不可恢复的系统错误。
58004 SQLExecDirect 意外系统故障。 不可恢复的系统错误。
58004 SQLFetch 意外系统故障。 不可恢复的系统错误。
58004 SQLFreeStmt 意外系统故障。 不可恢复的系统错误。
58004 SQLGetData 意外系统故障。 不可恢复的系统错误。
58004 SQLPrepare 意外系统故障。 不可恢复的系统错误。
58004 SQLNumResultCols 意外系统故障。 不可恢复的系统错误。
58004 SQLRowCount 意外系统故障。 不可恢复的系统错误。
59101* SQLExecute 未定义用户。 在“移动设备管理中心”控制数据库中未定义用户。
59102* SQLExecute 密码不正确。 用户密码与“移动设备管理中心”中定义的密码不匹配。
59103* SQLExecute 未定义组。 在“移动设备管理中心”中未定义组。
59104* SQLExecute 未定义应用程序。 在“移动设备管理中心”中未定义应用程序。
59105* SQLExecute 未定义预订。 在移动设备管理中心中未定义具有 AgentAdapter 的预订。
59106* SQLExecute 预订不完整。 预订不具有调用远程存储过程所需的所有信息。
59120* SQLExecute XML 转换错误。 AgentAdapter 在将用户输入数据转换为 XML 文档时失败。
59121* SQLExecute 一般 AgentAdapter 错误。 一般 AgentAdapter 错误。
59122* SQLExecute 装入库失败。 系统上找不到某些必需的库。
HY000 SQLAllocHandle 一般错误。 出错,该错误没有特定的 SQLSTATE。*MessageText 缓冲区中由 SQLGetDiagRec() 返回的错误消息描述了该错误及其原因。
HY000 SQLFreeHandle 一般错误。 出错,该错误没有特定的 SQLSTATE。*MessageText 缓冲区中由 SQLGetDiagRec() 返回的错误消息描述了该错误及其原因。
HY001 SQLAllocHandle 内存分配出错。 DB2 CLI 无法为指定的句柄分配内存。
HY001 SQLBindCol 内存分配失败。 DB2 CLI 无法分配支持函数的执行或完成所需的内存。
HY001 SQLBindParameter 内存分配失败。 DB2 CLI 无法分配支持函数的执行或完成所需的内存。
HY001 SQLConnect 内存分配失败。 DB2 CLI 无法分配支持函数的执行或完成所需的内存。
HY001 SQLDescribeCol 内存分配失败。 DB2 CLI 无法分配支持函数的执行或完成所需的内存。
HY001 SQLDisconnect 内存分配失败。 DB2 CLI 无法分配支持函数的执行或完成所需的内存。
HY001 SQLExecDirect 内存分配失败。 DB2 CLI 无法分配支持函数的执行或完成所需的内存。
HY001 SQLFetch 内存分配失败。 DB2 CLI 无法分配支持函数的执行或完成所需的内存。
HY001 SQLFreeHandle 内存分配失败。 DB2 CLI 无法分配支持函数的执行或完成所需的内存。
HY001 SQLFreeStmt 内存分配失败。 DB2 CLI 无法分配支持函数的执行或完成所需的内存。
HY001 SQLGetData 内存分配失败。 DB2 CLI 无法分配支持函数的执行或完成所需的内存。
HY001 SQLPrepare 内存分配失败。 DB2 CLI 无法分配支持函数的执行或完成所需的内存。
HY001 SQLNumResultCols 内存分配失败。 DB2 CLI 无法分配支持函数的执行或完成所需的内存。
HY001 SQLRowCount 内存分配失败。 DB2 CLI 无法分配支持函数的执行或完成所需的内存。
HY002 SQLBindCol 列号无效。 对自变量 ColumnNumber 指定的值小于 0。对自变量 ColumnNumber 指定的值超过数据源支持的最大列数。
HY002 SQLDescribeCol 列号无效。 ColumnNumber 自变量指定的值小于 1。对自变量 ColumnNumber 指定的值大于结果集中的列数。
HY002 SQLGetData 列号无效。 指定的列小于 0 或大于结果列的数目。
HY003 SQLBindCol 程序类型超出范围。 TargetType 不是有效的数据类型或 SQL_C_DEFAULT。
HY003 SQLBindParameter 程序类型超出范围。 ParameterNumber 自变量指定的值不是有效的数据类型或 SQL_C_DEFAULT。
HY003 SQLGetData 程序类型超出范围。 TargetType 不是有效的数据类型或 SQL_C_DEFAULT。
HY004 SQLBindParameter SQL 数据类型超出范围。 ParameterType 自变量指定的值不是有效的 SQL 数据类型。
HY009 SQLBindParameter 自变量值无效。 ParameterValuePtr 自变量是空指针,且 StrLen_or_IndPtr 自变量也是空指针,而 InputOutputType 不是 SQL_PARAM_OUTPUT。
HY009 SQLExecDirect 自变量值无效。 StatementText 是空指针。
HY009 SQLNumResultCols 自变量值无效。 StatementText 是空指针。
HY010 SQLDescribeCol 函数顺序错误。 在对 StatementHandle 调用 SQLPrepare()SQLExecDirect() 之前调用了该函数。
HY010 SQLExecute 函数顺序错误。 指定的 StatementHandle 未处于已准备状态。调用 SQLExecute() 之前未首先调用 SQLPrepare()
HY010 SQLFetch 函数顺序错误。 在对 StatementHandle 调用 SQLPrepare()SQLExecDirect() 之前调用了该函数。
HY010 SQLFreeHandle 函数顺序错误。 HandleType 自变量为 SQL_HANDLE_ENV 且至少有一个连接处于已分配或已连接状态。在调用 HandleType 为 SQL_HANDLE_ENV 的 SQLFreeHandle() 之前,必须对每个连接调用 HandleType 为 SQL_HANDLE_DBC 的 SQLDisconnect()SQLFreeHandle()HandleType 自变量是 SQL_HANDLE_DBC,而在对连接调用 SQLDisconnect() 之前调用了该函数。HandleType 自变量是 SQL_HANDLE_STMT;使用语句句柄调用了 SQLExecute()SQLExecDirect(),且返回了 SQL_NEED_DATA。(DM)在调用 SQLFreeHandle() 之前,未释放任何附属句柄和其它资源。
HY010 SQLGetData 函数顺序错误。 调用该函数之前未首先调用 SQLFetch()
HY010 SQLNumResultCols 函数顺序错误。 在对 StatementHandle 调用 SQLPrepare()SQLExecDirect() 之前调用了该函数。
HY010 SQLRowCount 函数顺序错误。 在对 StatementHandle 调用 SQLExecute()SQLExecDirect() 之前调用了该函数。
HY013 SQLAllocHandle 发生意外的内存处理错误。 HandleType 自变量是 SQL_HANDLE_DBC 或 SQL_HANDLE_STMT;因为未能访问底层内存对象(可能是因为内存不足),所以未能处理函数调用。
HY013 SQLBindCol 发生意外的内存处理错误。 DB2 CLI 无法访问支持函数的执行或完成所需的内存。
HY013 SQLBindParameter 发生意外的内存处理错误。 DB2 CLI 无法访问支持函数的执行或完成所需的内存。
HY013 SQLConnect 发生意外的内存处理错误。 DB2 CLI 无法访问支持函数的执行或完成所需的内存。
HY013 SQLDescribeCol 发生意外的内存处理错误。 DB2 CLI 无法访问支持函数的执行或完成所需的内存。
HY013 SQLDisconnect 发生意外的内存处理错误。 DB2 CLI 无法访问支持函数的执行或完成所需的内存。
HY013 SQLExecDirect 发生意外的内存处理错误。 DB2 CLI 无法访问支持函数的执行或完成所需的内存。
HY013 SQLFetch 发生意外的内存处理错误。 DB2 CLI 无法访问支持函数的执行或完成所需的内存。
HY013 SQLFreeHandle 发生意外的内存处理错误。 HandleType 自变量是 SQL_HANDLE_STMT;因为未能访问底层内存对象(可能是因为内存不足),所以未能处理函数调用。
HY013 SQLGetData 发生意外的内存处理错误。 DB2 CLI 无法访问支持函数的执行或完成所需的内存。
HY013 SQLNumResultCols 发生意外的内存处理错误。 DB2 CLI 无法访问支持函数的执行或完成所需的内存。
HY013 SQLNumResultCols 发生意外的内存处理错误。 DB2 CLI 无法访问支持函数的执行或完成所需的内存。
HY013 SQLRowCount 发生意外的内存处理错误。 DB2 CLI 无法访问支持函数的执行或完成所需的内存。
HY014 SQLAllocHandle 不再有句柄。 已达到可对 HandleType 自变量所指示的句柄类型分配的句柄数限制。
HY014 SQLExecDirect 不再有句柄。 因为内部资源问题,DB2 CLI 无法分配句柄。
HY014 SQLNumResultCols 不再有句柄。 因为内部资源问题,DB2 CLI 无法分配句柄。
HY017 SQLFreeHandle 自动分配的描述符句柄的使用无效。 Handle 自变量设置为自动分配的描述符或实现描述符的句柄。
HY024 SQLSetStmtAttr 无效属性值。 给出指定的 Attribute 值,在 ValuePtr 中指定了无效值。
HY090 SQLBindCol 字符串或缓冲区长度无效。 BufferLength 自变量指定的值小于 1,TargetType 自变量是 SQL_C_CHAR、SQL_C_BINARY 或 SQL_C_DEFAULT。
HY090 SQLBindParameter 字符串或缓冲区长度无效。 BufferLength 自变量指定的值小于 0。
HY090 SQLDescribeCol 字符串或缓冲区长度无效。 自变量 BufferLength 中指定的长度小于 1。
HY090 SQLExecDirect 字符串或缓冲区长度无效。 TextLength 自变量小于 1,但不等于 SQL_NTS。
HY090 SQLGetData 字符串或缓冲区长度无效。 BufferLength 自变量的值小于 0,TargetType 自变量是 SQL_C_CHAR 或 SQL_C_BINARY;或者 TargetType 是 SQL_C_DEFAULT,而缺省类型是 SQL_C_CHAR、SQL_C_BINARY 或 SQL_C_DBCHAR 之一。
HY090 SQLNumResultCols 字符串或缓冲区长度无效。 TextLength 自变量小于 1,但不等于 SQL_NTS。
HY092 SQLAllocHandle 选项类型超出范围。 HandleType 自变量不是:

SQL_HANDLE_ENV

SQL_HANDLE_DBC

SQL_HANDLE_STMT

HY092 SQLFreeStmt 选项类型超出范围。 Option 自变量指定的值不是 SQL_DROP 或 SQL_RESET_PARAMS。
HY093 SQLBindParameter 参数号无效。 ValueType 自变量指定的值小于 1 或大于服务器支持的最大参数数目。
HY094 SQLBindParameter 小数位的值无效。 ParameterType 指定的值是 SQL_DECIMAL 或 SQL_NUMERIC,对 DecimalDigits 指定的值小于 0 或大于 ParamDef 自变量(精度)的值。
HY104 SQLBindParameter 精度值无效。 ParameterType 指定的值是 SQL_DECIMAL 或 SQL_NUMERIC,对 ParamDef 指定的值小于 1。
HY105 SQLBindParameter 参数类型无效。 InputOutputType 不是 SQL_PARAM_INPUT。
HY106 SQLFetchScroll 取装类型超出范围。 对自变量 FetchOrientation 指定的值无效。SQL_CURSOR_TYPE 语句属性的值是 SQL_CURSOR_FORWARD_ONLY,而 FetchOrientation 自变量的值不是 SQL_FETCH_NEXT。
HY107 SQLFetchScroll 行值超出范围。 用 SQL_ATTR_CURSOR_TYPE 语句属性指定的值是 SQL_CURSOR_KEYSET_DRIVEN,但用 SQL_ATTR_KEYSET_SIZE 语句属性指定的值大于 0 且小于用 SQL_ATTR_ROW_ARRAY_SIZE 语句属性指定的值。
HY501 SQLConnect DataSource 名无效。 指定的 DataSource 名称无效。
HYC00 SQLBindCol 驱动程序不起作用。 DB2 CLI 识别但不支持 TargetType 自变量中指定的数据类型。
HYC00 SQLBindParameter 驱动程序不起作用。 DB2 CLI 或数据源不支持由对自变量 ValueTypeParameterType 指定的值的组合所指定的转换。DB2 CLI 或数据源不支持对自变量 ParameterType 指定的值。
HYC00 SQLDescribeCol 驱动程序不起作用。 DB2 CLI 不识别 ColumnNumber 列的 SQL 数据类型。
HYC00 SQLGetData 驱动程序不起作用。 DB2 CLI 识别但不支持指定数据类型的 SQL 数据类型。DB2 CLI 或数据源不能执行所请求的从 SQL 数据类型到应用程序数据 TargetType 的转换。

相关参考