0

我正在尝试使用 ADO.NET 从 oracle 数据库中执行沼泽标准选择语句,并获得以下信息:

Oracle.DataAccess.Client.OracleException : ORA-00904: : invalid identifier

ADO 代码如下所示:

conn.Open();

var command = new OracleCommand(sql) {Connection = conn};

var result = command.ExecuteReader();

//do stuff with result

而sql语句是

select pt.*
from print_table pt
left join business_table bt on bt.transaction_id = pt.transaction_id

两列都是number(10). 如果我直接在数据库上执行相同的sql就可以了。

如果我放弃加入:

select pt.*
from print_table pt

并从 ADO 运行,它可以工作。

此外,如果我将 sql 更改为

select pt.*
from print_table pt, business_table bt
where pt.transaction_id = bt.transaction_id (+)

并从 ADO 运行,它可以工作。我宁愿不使用它(实际上查询还有很多)。

并且,如果我选择命名值,则:

select pt.column1, pt.column2, pt.column3
from print_table pt
left join business_table bt on bt.transaction_id = pt.transaction_id

这又一次,工作正常。

非常欢迎任何建议。

4

0 回答 0