我在oracle中有一个带有此签名的函数
test_fun(p_nat_no in number,p_number_type in number) RETURN test_table
在c#中这是代码
string select = "test_fun";
using (OracleConnection connection = new OracleConnection(helper.Global.ConnectionString))
{
OracleCommand command = new OracleCommand(select, connection);
// command.CommandType = CommandType.StoredProcedure;
OracleParameter PrmnatNo = new OracleParameter("p_nat_no ", natNo);//natNo
command.Parameters.Add(PrmnatNo);
OracleParameter pramNumberType = new OracleParameter("p_number_type ", numberType);
command.Parameters.Add(pramNumberType);
connection.Open();
using (OracleDataReader reader = command.ExecuteReader())
{
if (reader.HasRows)
{
List<test_table> Tickets = new List<test_table>();
while (reader.Read())
{
Tickets.Add(GetPropertyTaxHelper(reader));
}
return Tickets;
}
else return null;
}
}
注意:该功能在oracle中正常工作。
但是当尝试从c#调用该函数时,出现错误(invalide sql语句),即使该函数是正确的并从oracle返回输出?任何帮助?建议?
答案 0 :(得分:0)
您的代码不起作用,因为您使用保留关键字(select
)作为字符串的名称,因为编译器认为这是query expression,上面的代码不会起作用。
修复显然很简单,更改名为&#34的字符串的名称;选择&#34;。