这些是我尝试从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) 我对使用软件包很陌生。我的团队正在决定是否在我们的应用程序中使用软件包。我们有4个应用程序当前正在使用嵌入式SQL。我们决定将每个sql语句放入存储过程中,然后在逻辑上将存储过程分组到包中(这些存储过程将在应用程序之间共享)。使用软件包的潜在利弊是什么?
我们的应用程序是使用c#在asp.net中编写的。