以下是返回字符串文字
的简单存储过程PROCEDURE getUserValidateProfileValue (
outParam1 OUT VARCHAR2)
AS
BEGIN
SELECT 'testABC' into outParam1 from dual;
END getUserValidateProfileValue;
这在Toad中运行正常。以下是我如何从我的C#应用程序中调用它(注意:我有几个其他程序可以使用相同的连接等调用,这些都可以正常工作)
...
using (OracleCommand command = DaoHelper.GetOracleBoundByNameStoredProcedureCommand(conn, schema, pkg, "getUserValidateProfileValue"))
{
command.Parameters.Add("outParam1", OracleDbType.Varchar2, 2000, ParameterDirection.Output);
command.ExecuteNonQuery(); <<<---bombs out here
s1 = command.Parameters["outParam1"].Value.ToString();
}
这次炸弹袭击了“command.ExecuteNonQuery();”
如何检索此输出?
答案 0 :(得分:1)
好的 - 我找到了修复程序 - 你必须包含OracleCollectionType,在我的例子中我设置为None:
command.Parameters.Add("outParam1", OracleDbType.Varchar2, 2000, OracleCollectionType.None, ParameterDirection.Output);
现在我的程序有效。
答案 1 :(得分:0)
尝试代替当前参数add,看看它是否有帮助?
command.Parameters.Add(new SqlParameter("outParam1", OracleDbType.Varchar2));