" ORA-06502:PL / SQL:数字或值错误:字符串缓冲区太小"是bug?

时间:2014-08-30 18:28:57

标签: asp.net oracle

在我的asp.net页面中返回“ORA-06502:PL / SQL:数字或值错误:字符串缓冲区太小”。

但是在蟾蜍身上做得很好。

这是我的oracle程序和asp.net代码。

CREATE OR REPLACE PROCEDURE FIS.test(res out varchar2)
 IS

BEGIN
   res := 't430intw2sBn0UQx8WWO0FlsYLcLOPaJ:1R3xHpLiQGw12xXintomQc3oXbiJtvmw';
END test;

-

public String Foo()
        {
            string queryString = "TEST";

            OracleParameter[] parameters = 
                { 
                    new OracleParameter("OUT_CURSOR", OracleDbType.Varchar2, ParameterDirection.Output)
                };

            return ExecuteScalar(CommandType.StoredProcedure, queryString, parameters);
        }

1 个答案:

答案 0 :(得分:1)

您需要在此处给出varchar(2)的大小:

new OracleParameter("OUT_CURSOR", OracleDbType.Varchar2, ParameterDirection.Output)

类似的东西:

new OracleParameter("OUT_CURSOR", OracleDbType.Varchar2,32767, ParameterDirection.Output)