我正在使用 Oracle 11.1.0.6.0 和 ADO.NET (System.Data.OracleClient) 运行在 Oracle 9 和 10 上运行良好的查询,但在 Oracle 11 上我们收到错误:
System.Data.OracleClient.OracleException 未处理 Message="ORA-01405: 获取的列值为 NULL\n" Source="System.Data.OracleClient" 错误代码=-2146232008 代码=1405
除了 AFE_ACCRUAL_TOTALS_GROSS 表上的可选联接带来的数据外,此数据中没有任何空值。
如果我通过 ADO 运行查询,查询只会失败并出现此错误。如果我从 TOAD 中运行,它工作正常。我已经尝试跟踪发送到 Oracle 的 SQL,以确保 ADO.NET 没有重写任何内容,但它保持不变。在此查询之前没有运行任何 SQL。
它在很大程度上依赖于数据。如果我从 AFE 表中删除 AFEID=361 的记录(即使它与 359、362、363 等完全相同),它会突然开始工作。当我删除其他记录时,效果类似。
我在这里完全没有想法,如果能就如何继续进行下去提供一些帮助,我将不胜感激。我认为这是 ADO.NET 和 Oracle 之间的某种错误,但我不确定如何进一步解决这个问题。我认为我的理解还不够简单,无法将其报告给 MSFT 或 ORA。
我已经缩小了我的模式和数据并查询到一个最小的例子,但仍然会产生错误。不幸的是它仍然相当大。 (请原谅底部代码示例中的奇怪查询,它通常不会执行该交叉连接)
架构:
CREATE TABLE AFE ( AFEID NUMBER(10) NOT NULL, USERID NUMBER(10) );
CREATE TABLE AFEPARTNER ( AFEID NUMBER(10) NOT NULL, PARTNERID NUMBER(10) NOT NULL );
CREATE TABLE AFE_ACCRUAL_TOTALS_GROSS ( AFEID NUMBER(10) NOT NULL, GROSS_ACTUAL NUMBER(27,10) DEFAULT 0 NOT NULL );
CREATE TABLE USERS ( USERID NUMBER(10), NAME VARCHAR2(50 BYTE) );
CREATE INDEX IDX_AFEPARTNER_AFEID ON AFEPARTNER (AFEID);
ALTER TABLE AFE ADD ( PRIMARY KEY (AFEID));
ALTER TABLE AFEPARTNER ADD ( PRIMARY KEY (AFEID, PARTNERID));
ALTER TABLE AFE_ACCRUAL_TOTALS_GROSS ADD ( PRIMARY KEY (AFEID));
ALTER TABLE USERS ADD ( PRIMARY KEY (USERID));
ALTER TABLE AFE ADD ( FOREIGN KEY (USERID) REFERENCES USERS (USERID));
ALTER TABLE AFEPARTNER ADD ( FOREIGN KEY (AFEID) REFERENCES AFE (AFEID) ON DELETE CASCADE);
ALTER TABLE AFE_ACCRUAL_TOTALS_GROSS ADD ( FOREIGN KEY (AFEID) REFERENCES AFE (AFEID) ON DELETE CASCADE);
加载到表中的数据如下:
SET DEFINE OFF;
Insert into AFE
(AFEID, USERID)
Values
(331, 1);
Insert into AFE
(AFEID, USERID)
Values
(333, 1);
Insert into AFE
(AFEID, USERID)
Values
(305, 1);
Insert into AFE
(AFEID, USERID)
Values
(334, 1);
Insert into AFE
(AFEID, USERID)
Values
(302, 1);
Insert into AFE
(AFEID, USERID)
Values
(337, 1);
Insert into AFE
(AFEID, USERID)
Values
(307, 1);
Insert into AFE
(AFEID, USERID)
Values
(309, 1);
Insert into AFE
(AFEID, USERID)
Values
(310, 1);
Insert into AFE
(AFEID, USERID)
Values
(345, 1);
Insert into AFE
(AFEID, USERID)
Values
(346, 1);
Insert into AFE
(AFEID, USERID)
Values
(314, 1);
Insert into AFE
(AFEID, USERID)
Values
(351, 1);
Insert into AFE
(AFEID, USERID)
Values
(316, 1);
Insert into AFE
(AFEID, USERID)
Values
(311, 1);
Insert into AFE
(AFEID, USERID)
Values
(313, 1);
Insert into AFE
(AFEID, USERID)
Values
(317, 1);
Insert into AFE
(AFEID, USERID)
Values
(327, 1);
Insert into AFE
(AFEID, USERID)
Values
(355, 1);
Insert into AFE
(AFEID, USERID)
Values
(356, 1);
Insert into AFE
(AFEID, USERID)
Values
(332, 1);
Insert into AFE
(AFEID, USERID)
Values
(358, 1);
Insert into AFE
(AFEID, USERID)
Values
(359, 1);
Insert into AFE
(AFEID, USERID)
Values
(362, 1);
Insert into AFE
(AFEID, USERID)
Values
(363, 1);
Insert into AFE
(AFEID, USERID)
Values
(335, 1);
Insert into AFE
(AFEID, USERID)
Values
(347, 1);
Insert into AFE
(AFEID, USERID)
Values
(353, 1);
Insert into AFE
(AFEID, USERID)
Values
(361, 1);
Insert into AFE
(AFEID, USERID)
Values
(370, 1);
Insert into AFE
(AFEID, USERID)
Values
(373, 1);
Insert into AFE
(AFEID, USERID)
Values
(374, 1);
Insert into AFE
(AFEID, USERID)
Values
(375, 1);
Insert into AFE
(AFEID, USERID)
Values
(377, 1);
Insert into AFE
(AFEID, USERID)
Values
(381, 1);
Insert into AFE
(AFEID, USERID)
Values
(382, 1);
Insert into AFE
(AFEID, USERID)
Values
(383, 1);
Insert into AFE
(AFEID, USERID)
Values
(386, 1);
Insert into AFE
(AFEID, USERID)
Values
(387, 1);
Insert into AFE
(AFEID, USERID)
Values
(388, 1);
Insert into AFE
(AFEID, USERID)
Values
(349, 1);
Insert into AFE
(AFEID, USERID)
Values
(365, 1);
Insert into AFE
(AFEID, USERID)
Values
(369, 1);
Insert into AFE
(AFEID, USERID)
Values
(380, 1);
Insert into AFE
(AFEID, USERID)
Values
(389, 1);
Insert into AFE
(AFEID, USERID)
Values
(303, 1);
COMMIT;
SET DEFINE OFF;
Insert into AFE_ACCRUAL_TOTALS_GROSS
(AFEID, GROSS_ACTUAL)
Values
(347, 0);
Insert into AFE_ACCRUAL_TOTALS_GROSS
(AFEID, GROSS_ACTUAL)
Values
(353, 0);
Insert into AFE_ACCRUAL_TOTALS_GROSS
(AFEID, GROSS_ACTUAL)
Values
(361, 0);
Insert into AFE_ACCRUAL_TOTALS_GROSS
(AFEID, GROSS_ACTUAL)
Values
(373, 0);
Insert into AFE_ACCRUAL_TOTALS_GROSS
(AFEID, GROSS_ACTUAL)
Values
(332, 0);
Insert into AFE_ACCRUAL_TOTALS_GROSS
(AFEID, GROSS_ACTUAL)
Values
(380, 0);
Insert into AFE_ACCRUAL_TOTALS_GROSS
(AFEID, GROSS_ACTUAL)
Values
(311, 1231);
Insert into AFE_ACCRUAL_TOTALS_GROSS
(AFEID, GROSS_ACTUAL)
Values
(313, 0);
Insert into AFE_ACCRUAL_TOTALS_GROSS
(AFEID, GROSS_ACTUAL)
Values
(302, 0);
Insert into AFE_ACCRUAL_TOTALS_GROSS
(AFEID, GROSS_ACTUAL)
Values
(314, 0);
Insert into AFE_ACCRUAL_TOTALS_GROSS
(AFEID, GROSS_ACTUAL)
Values
(316, 0);
Insert into AFE_ACCRUAL_TOTALS_GROSS
(AFEID, GROSS_ACTUAL)
Values
(305, 0);
Insert into AFE_ACCRUAL_TOTALS_GROSS
(AFEID, GROSS_ACTUAL)
Values
(303, 0);
Insert into AFE_ACCRUAL_TOTALS_GROSS
(AFEID, GROSS_ACTUAL)
Values
(331, 0);
Insert into AFE_ACCRUAL_TOTALS_GROSS
(AFEID, GROSS_ACTUAL)
Values
(334, 0);
Insert into AFE_ACCRUAL_TOTALS_GROSS
(AFEID, GROSS_ACTUAL)
Values
(335, 0);
Insert into AFE_ACCRUAL_TOTALS_GROSS
(AFEID, GROSS_ACTUAL)
Values
(337, 0);
Insert into AFE_ACCRUAL_TOTALS_GROSS
(AFEID, GROSS_ACTUAL)
Values
(327, 0);
Insert into AFE_ACCRUAL_TOTALS_GROSS
(AFEID, GROSS_ACTUAL)
Values
(345, 0);
Insert into AFE_ACCRUAL_TOTALS_GROSS
(AFEID, GROSS_ACTUAL)
Values
(346, 0);
Insert into AFE_ACCRUAL_TOTALS_GROSS
(AFEID, GROSS_ACTUAL)
Values
(349, 0);
Insert into AFE_ACCRUAL_TOTALS_GROSS
(AFEID, GROSS_ACTUAL)
Values
(351, 0);
Insert into AFE_ACCRUAL_TOTALS_GROSS
(AFEID, GROSS_ACTUAL)
Values
(355, 0);
Insert into AFE_ACCRUAL_TOTALS_GROSS
(AFEID, GROSS_ACTUAL)
Values
(356, 0);
Insert into AFE_ACCRUAL_TOTALS_GROSS
(AFEID, GROSS_ACTUAL)
Values
(359, 0);
Insert into AFE_ACCRUAL_TOTALS_GROSS
(AFEID, GROSS_ACTUAL)
Values
(363, 0);
Insert into AFE_ACCRUAL_TOTALS_GROSS
(AFEID, GROSS_ACTUAL)
Values
(369, 0);
Insert into AFE_ACCRUAL_TOTALS_GROSS
(AFEID, GROSS_ACTUAL)
Values
(370, 0);
Insert into AFE_ACCRUAL_TOTALS_GROSS
(AFEID, GROSS_ACTUAL)
Values
(374, 0);
Insert into AFE_ACCRUAL_TOTALS_GROSS
(AFEID, GROSS_ACTUAL)
Values
(377, 0);
Insert into AFE_ACCRUAL_TOTALS_GROSS
(AFEID, GROSS_ACTUAL)
Values
(389, 0);
Insert into AFE_ACCRUAL_TOTALS_GROSS
(AFEID, GROSS_ACTUAL)
Values
(310, 0);
Insert into AFE_ACCRUAL_TOTALS_GROSS
(AFEID, GROSS_ACTUAL)
Values
(309, 0);
Insert into AFE_ACCRUAL_TOTALS_GROSS
(AFEID, GROSS_ACTUAL)
Values
(307, 0);
Insert into AFE_ACCRUAL_TOTALS_GROSS
(AFEID, GROSS_ACTUAL)
Values
(358, 0);
Insert into AFE_ACCRUAL_TOTALS_GROSS
(AFEID, GROSS_ACTUAL)
Values
(362, 0);
Insert into AFE_ACCRUAL_TOTALS_GROSS
(AFEID, GROSS_ACTUAL)
Values
(365, 0);
Insert into AFE_ACCRUAL_TOTALS_GROSS
(AFEID, GROSS_ACTUAL)
Values
(375, 0);
Insert into AFE_ACCRUAL_TOTALS_GROSS
(AFEID, GROSS_ACTUAL)
Values
(317, 0);
Insert into AFE_ACCRUAL_TOTALS_GROSS
(AFEID, GROSS_ACTUAL)
Values
(333, 0);
COMMIT;
SET DEFINE OFF;
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(302, 1);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(302, 16);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(302, 20);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(303, 1);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(303, 5);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(303, 22);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(305, 1);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(305, 9);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(305, 10);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(305, 17);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(305, 18);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(307, 1);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(307, 9);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(307, 10);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(307, 17);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(307, 18);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(309, 1);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(309, 9);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(309, 10);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(309, 17);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(309, 18);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(310, 1);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(310, 9);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(310, 10);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(310, 17);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(310, 18);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(311, 1);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(311, 11);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(311, 22);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(313, 1);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(313, 5);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(313, 22);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(314, 1);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(314, 5);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(314, 22);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(316, 1);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(316, 7);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(316, 17);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(317, 1);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(327, 1);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(327, 5);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(327, 15);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(331, 1);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(332, 1);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(332, 14);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(333, 1);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(333, 14);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(334, 1);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(334, 5);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(334, 22);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(335, 1);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(335, 5);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(335, 22);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(337, 1);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(337, 5);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(337, 15);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(345, 1);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(346, 1);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(347, 1);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(347, 14);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(347, 19);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(349, 1);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(349, 14);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(349, 19);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(351, 1);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(351, 14);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(351, 19);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(353, 1);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(353, 14);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(353, 19);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(355, 1);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(355, 14);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(355, 19);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(356, 1);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(356, 14);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(356, 19);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(358, 1);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(358, 14);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(358, 19);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(359, 1);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(359, 14);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(359, 19);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(361, 1);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(361, 14);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(361, 19);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(362, 1);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(362, 14);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(362, 19);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(363, 1);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(363, 14);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(363, 19);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(365, 1);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(365, 14);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(365, 19);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(369, 1);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(369, 14);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(369, 19);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(370, 1);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(370, 14);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(370, 19);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(373, 1);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(373, 14);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(373, 19);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(374, 1);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(374, 14);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(374, 19);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(375, 1);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(375, 14);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(375, 19);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(377, 1);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(377, 2);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(377, 14);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(377, 19);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(380, 1);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(381, 2);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(381, 10);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(382, 2);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(382, 17);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(383, 2);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(383, 10);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(386, 2);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(387, 2);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(388, 2);
Insert into AFEPARTNER
(AFEID, PARTNERID)
Values
(389, 1);
COMMIT;
SET DEFINE OFF;
Insert into USERS
(USERID, NAME)
Values
(26, 'Test');
Insert into USERS
(USERID, NAME)
Values
(27, 'Group Admin User');
Insert into USERS
(USERID, NAME)
Values
(2, 'Originator1');
Insert into USERS
(USERID, NAME)
Values
(3, 'Originator2');
Insert into USERS
(USERID, NAME)
Values
(4, 'Originator3');
Insert into USERS
(USERID, NAME)
Values
(5, 'Originator4');
Insert into USERS
(USERID, NAME)
Values
(6, 'Originator5');
Insert into USERS
(USERID, NAME)
Values
(7, 'User1');
Insert into USERS
(USERID, NAME)
Values
(8, 'User2');
Insert into USERS
(USERID, NAME)
Values
(9, 'User3');
Insert into USERS
(USERID, NAME)
Values
(10, 'User4');
Insert into USERS
(USERID, NAME)
Values
(11, 'User5');
Insert into USERS
(USERID, NAME)
Values
(12, 'Reviewer1');
Insert into USERS
(USERID, NAME)
Values
(13, 'Reviewer2');
Insert into USERS
(USERID, NAME)
Values
(14, 'Reviewer3');
Insert into USERS
(USERID, NAME)
Values
(15, 'Reviewer4');
Insert into USERS
(USERID, NAME)
Values
(16, 'Reviewer5');
Insert into USERS
(USERID, NAME)
Values
(17, 'CEO');
Insert into USERS
(USERID, NAME)
Values
(18, 'CFO');
Insert into USERS
(USERID, NAME)
Values
(19, 'VP Finance');
Insert into USERS
(USERID, NAME)
Values
(20, 'VP Exploration');
Insert into USERS
(USERID, NAME)
Values
(21, 'VP Operation');
Insert into USERS
(USERID, NAME)
Values
(22, 'VP Land');
Insert into USERS
(USERID, NAME)
Values
(23, 'Production Manager');
Insert into USERS
(USERID, NAME)
Values
(24, 'Land Manager');
Insert into USERS
(USERID, NAME)
Values
(25, 'Exploration Manager');
Insert into USERS
(USERID, NAME)
Values
(1, 'System Admin');
Insert into USERS
(USERID, NAME)
Values
(28, 'Joan');
Insert into USERS
(USERID, NAME)
Values
(29, 'VMM');
COMMIT;
测试代码:
OracleConnection connection = new OracleConnection();
connection.ConnectionString = "Data Source=test11g;User Id=afe_jeff2;Password=afe_jeff2";
connection.Open();
string SQL =
"SELECT gross_actual" +
" FROM afe, " +
" afepartner, " +
" users, " +
" afe_accrual_totals_gross " +
" " +
" WHERE " +
" afe.userid = users.userid" +
" and afe.afeid = afe_accrual_totals_gross.afeid(+)";
IDbCommand cmd = connection.CreateCommand();
cmd.CommandText = SQL;
IDataReader rdr = cmd.ExecuteReader();
while (rdr.Read()) // EXCEPTION IS RAISED ON THIS CALL
{
}
rdr.Close();
最佳答案
您是否尝试过使用其他 ADO.NET 提供程序来查看是否可以将范围缩小到 MS 提供程序?哦,还要注意 MS 有 recently anounced他们不会继续使用他们的 Oracle 供应商,也许现在是寻找新供应商的好时机。
DevArt (以前的 CoreLabs)拥有最常用的第 3 方提供商。
仅供引用 Toad for Oracle 是用 Delphi 编写的并直接与 Oracle 调用接口(interface) (OCI) 对话,因此您会看到不同的行为并不完全令人惊讶(不好,请注意)。
关于oracle - 奇怪的 Oracle 11/ADO.NET 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1076766/