【发布时间】:2015-12-27 21:02:28
【问题描述】:
我正在从 oracle 包中调用一个函数,该函数将返回如下字符串
using(OracleConnection con = AppConn.Connection)
{
OracleCommand cmd = con.CreateCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection = con;
cmd.CommandText = "select P_Pkg.found(@p_id) from dual";
OracleParameter p_id = new OracleParameter();
p_id.OracleDbType = OracleDbType.Int64;
p_id.Direction = ParameterDirection.Input;
p_id.Value = requestHeader.approval_id;
cmd.Parameters.Add(p_id);
try
{
con.Open();
string found = cmd.ExecuteScalar().ToString();
}
catch(Exception ex)
{
}
finally
{
con.Close();
}
}
但我收到以下错误。经过大量搜索,我找不到问题所在。请帮忙。
ORA-06550:第 1 行,第 51 列:
PL/SQL:ORA-00936:缺少表达式
ORA-06550:第 1 行,第 7 列:
oracle 中的函数签名
P_Pkg.found(p_id IN NUMBER)
RETURN varchar2 //(YES , NO)
我从 oracle 中运行它,结果没有任何错误
select P_Pkg.found(1053) from dual
【问题讨论】:
-
@patrickHofman 编辑的问题
-
你不能将
CommandText设置为P_Pkg.found,然后添加参数给它正确的名称吗? (p_id) -
@codroipo 怎么办?