gpt4 book ai didi

sql - Oracle SQL 查询仅在一个进程中失败 : "ORA-01405: fetched column value is NULL"

转载 作者:行者123 更新时间:2023-12-04 22:32:06 25 4
gpt4 key购买 nike

我正在尝试调用我构建的“插件”中的系统存储过程。当我在测试应用程序中测试我的插件时,它工作正常。当我在我为其构建的目标应用程序中运行该插件时,我从 Oracle 收到一个没有任何意义的异常。

我使用的是 Oracle 服务器 11.2.0.1.0 和 ODP.NET 2.112.2.0。

这是来 self 的测试应用的 ODP.NET 的调试跟踪:

(ENTRY) OracleConnection::OracleConnection(1)
(POOL) New connection pool created for: "Data Source=orcl;User ID=scott;"
(ENTRY) OracleConnection::CreateCommand()
OpsSqlPrepare2():SQL: begin DBMS_AQADM.START_QUEUE(queue_name => 'MyQueue'); end;
(EXIT) OpsSqlExecuteNonQuery(): RetCode=0 Line=877
(EXIT) OracleCommand::ExecuteNonQuery()
(ENTRY) OracleConnection::Dispose()
(ENTRY) OracleConnection::Close()

下面是来自目标应用程序中运行的相同代码的 ODP.NET 调试跟踪:

(ENTRY) OracleConnection::OracleConnection(1)
(POOL) New connection pool created for: "Data Source=orcl;User ID=scott;"
(ENTRY) OracleConnection::CreateCommand()
OpsSqlPrepare2():SQL: begin DBMS_AQADM.START_QUEUE(queue_name => 'MyQueue'); end;
(EXIT) OpsSqlExecuteNonQuery(): RetCode=0 Line=877
(EXIT) OracleCommand::ExecuteNonQuery()
(ENTRY) OpsErrGetOpoCtx()
(ERROR) Oracle error code=1405; ORA-01405: fetched column value is NULL
(EXIT) OpsErrGetOpoCtx(): RetCode=0 Line=137
(ENTRY) OracleConnection::Dispose()
(ENTRY) OracleConnection::Close()

我不知道测试/目标应用程序之间可能有什么不同。这两个进程都作为本地管理员组的成员运行。两者都使用相同的连接字符串。两者都运行相同的 .NET 代码,但来自数据库服务器的结果不同。这里会发生什么?

最佳答案

此错误来自旧的 OCI 和预编译代码,其中需要设置指示符变量以指示该字段返回空值。当没有声明指示变量时,如果遇到空值会触发此错误。显然,一些较旧的代码仍位于您所做的调用之下。

换句话说,就是数据问题。我不知道从哪里开始随便看看。

关于sql - Oracle SQL 查询仅在一个进程中失败 : "ORA-01405: fetched column value is NULL",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7729238/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com