我正在尝试使用 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
这又一次,工作正常。
非常欢迎任何建议。