小编Use*_*789的帖子

ORA-06502,ORA-06512 Oracle存储过程错误

这些是我尝试从c#代码执行存储过程时遇到的错误.

ORA-06502: PL/SQL: numeric or value error: character string buffer too small
ORA-06512: at "MYAPP.PRO_COMPANYSEARCH", line 28
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
ORA-06512: at line 1
Run Code Online (Sandbox Code Playgroud)

我的c#代码如下所示:

using (var mCon = new OracleConnection(MyConnectionString))
{
    myCon.Open();

    using (OracleCommand myOracleCmd = myCon.CreateCommand())
    {
        myOracleCmd.CommandType = CommandType.StoredProcedure;
        myOracleCmd.CommandText = "PRO_COMPANYSEARCH";
        myOracleCmd.Parameters.Add("o_result_cur", OracleDbType.RefCursor, ParameterDirection.Output);
        myOracleCmd.Parameters.Add("o_sqlcode", OracleDbType.Int32, ParameterDirection.Output);
        myOracleCmd.Parameters.Add("o_sqlmsg", OracleDbType.Varchar2, ParameterDirection.Output);

        var reader = myOracleCmd.ExecuteReader();
        dtCompany.Load(reader);
        reader.Dispose();
    }
}
Run Code Online (Sandbox Code Playgroud)

有3个输出参数,其中2个用于跟踪异常,另一个用于结果.

编辑:这是我的存储过程,(不能相信我忘记发布)

CREATE OR REPLACE
PROCEDURE PRO_COMPANYSEARCH (
    o_result_cur OUT …
Run Code Online (Sandbox Code Playgroud)

c# oracle stored-procedures

3
推荐指数
1
解决办法
8809
查看次数

在Oracle中使用软件包的优缺点

我对使用软件包很陌生。我的团队正在决定是否在我们的应用程序中使用软件包。我们有4个应用程序当前正在使用嵌入式SQL。我们决定将每个sql语句放入存储过程中,然后在逻辑上将存储过程分组到包中(这些存储过程将在应用程序之间共享)。使用软件包的潜在利弊是什么?

我们的应用程序是使用c#在asp.net中编写的。

asp.net oracle plsql stored-procedures packages

0
推荐指数
1
解决办法
791
查看次数

标签 统计

oracle ×2

stored-procedures ×2

asp.net ×1

c# ×1

packages ×1

plsql ×1