![](/img/trans.png)
[英]Handle output parameter of an Oracle stored procedure using C# code
[英]how to define Output parameter as character string for Oracle procedure in c#?
这是返回字符串文字的简单存储过程
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();”炸弹
如何检索此输出?
好的-我找到了解决方法-您必须包括OracleCollectionType,在我的情况下,我将其设置为None:
command.Parameters.Add("outParam1", OracleDbType.Varchar2, 2000, OracleCollectionType.None, ParameterDirection.Output);
现在我的程序可以了。
尝试一下代替当前参数add,看看它是否有帮助?
command.Parameters.Add(new SqlParameter("outParam1", OracleDbType.Varchar2));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.