首页 > 解决方案 > 从 c# 调用 oracle 函数时输入字符串的格式不正确

问题描述

调用 Oracle 函数时出现此错误

输入字符串的格式不正确。

这是功能

create or replace function abs.test_func(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_in", OracleDbType.Int64, test_in, ParameterDirection.Input));
     OracleParameter test_out = new OracleParameter("test_out", OracleDbType.Int64);
     test_out.Direction = ParameterDirection.ReturnValue;
     cmd.Parameters.Add(test_out);
     cmd.ExecuteNonQuery();
     JsonResponse.Result = Int32.Parse(test_out.Value.ToString());

我不知道我做错了什么,我专门为测试目的编写了这个函数。这很简单:1 个变量输入 1 个变量输出作为函数返回。就这样。在这里还能做些什么来让它工作?

标签: c#oraclefunction

解决方案


这有帮助

cmd.Parameters.Add(new OracleParameter("test_out", OracleDbType.Int64, ParameterDirection.ReturnValue));

cmd.ExecuteNonQuery();
JsonResponse.Result = Int32.Parse(cmd.Parameters[0].Value.ToString());

推荐阅读