我已經下面的存儲過程:PL/SQL:數字或值錯誤:字符串緩衝區太小 - 應用遠程公佈
create or replace PROCEDURE TEST_REQUEST(
outHTML OUT VARCHAR2,
varParameters IN XMLTYPE)
IS
tmpVar NUMBER;
BEGIN
outHTML :=
'<table><tr><td>Test!</td></tr></table>';
EXCEPTION
WHEN NO_DATA_FOUND
THEN
NULL;
WHEN OTHERS
THEN
-- Consider logging the error and then re-raise
RAISE;
END TEST_REQUEST;
輸入參數 'varParameters'=
'<test>
<testid>3DA736A8A4562E053D6</testid>
<testaction>Reject</testaction>
</test>'
當我調用上述存儲過程:
using (OracleConnection connection = new OracleConnection())
{
connection.ConnectionString = this.ConnectionString;
connection.Open();
using (OracleCommand command = new OracleCommand())
{
command.Connection = connection;
command.CommandType = CommandType.StoredProcedure;
command.BindByName = true;
command.CommandText = "TEST_OWNER.TEST_REQUEST ";
OracleParameter outHtml = command.Parameters.Add("outHTML", OracleDbType.Varchar2);
outHtml.Direction = ParameterDirection.Output;
outHtml.Size = Int16.MaxValue;
command.Parameters.Add("varParameters", OracleDbType.XmlType).Value = doc;
command.ExecuteNonQuery();
....
}
connection.Close();
}
一切工作正常,當我在本地主機上運行它,但一次應用程序是遠程發佈我收到以下錯誤:
ORA-06502: PL/SQL: numeric or value error: character string buffer too >small\nORA-06512: at \"TEST_REQUEST \"
我不知道可能會導致異常。輸出參數的大小設置得相當高,我檢查ODAC驅動程序,一切都看起來不錯。有任何想法嗎?
是否與outHTML工作:= ''?或outHTML:='1'? – jva
它不起作用。 – grape