如何解决从C#将varchar2变量传递给oracle函数
我正在从c#测试oracle函数调用。 我设法编写了稳定的工作测试函数,它就是调用。 在这里。
create or replace function abs.test_func(test_in in integer,test_varchar in varchar2)
return integer
is
test_out integer ;
BEGIN
test_out:=test_in;
RETURN test_out;
END;
c#通话
using (var cmd = new OracleCommand("abs.test_func",conn1))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new OracleParameter("test_in",OracleDbType.Int64,test_in,ParameterDirection.Input));
cmd.Parameters.Add(new OracleParameter("test_varchar",OracleDbType.Varchar2,2000,test_varchar,ParameterDirection.Input));
cmd.Parameters.Add(new OracleParameter("test_out",ParameterDirection.ReturnValue));
cmd.ExecuteNonQuery();
JsonResponse.Result = Int32.Parse(cmd.Parameters[0].Value.ToString());
此代码运行完美。
现在我正在做同样的事情,只是将varchar2输入放在整数输入之前,放在前面。
create or replace function abs.test_func(test_varchar in varchar2,test_in in integer)
return integer
is
test_out integer ;
BEGIN
test_out:=test_in;
RETURN test_out;
END;
c#通话
using (var cmd = new OracleCommand("abs.test_func",conn1))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new OracleParameter("test_varchar",ParameterDirection.Input));
cmd.Parameters.Add(new OracleParameter("test_in",ParameterDirection.ReturnValue));
cmd.ExecuteNonQuery();
JsonResponse.Result = Int32.Parse(cmd.Parameters[0].Value.ToString());
还有我的C#通过错误
输入字符串的格式不正确。
切换变量如何影响结果????
解决方法
我有一个类似的错误,并通过
解决了alter system set "_qkslvc_extended_bind_sz"=0 scope=spfile;
并重新启动数据库。 可能它已在较新的oracle版本中修复。 您使用什么版本?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。