我正在尝试使用ADO.NET从oracle数据库执行bog-standard select语句,并获取以下内容:
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
这再次,工作正常。
非常欢迎任何建议。