これが私のストアドプロシージャです(問題を切り分けるのが簡単になったので、今やっていることはOUTパラメータを設定することだけです):
手順DequeuePPLPlatformMsg(msgType OUT VARCHAR2、msgBody OUT VARCHAR2)IS BEGIN
msgType := 'TESTTYPE';
msgBody := 'TESTBODY';
END DequeuePPLPlatformMsg;
ストアドプロシージャを呼び出してOUTパラメータの値を取得しようとする私のC#コードは次のとおりです。
OConn = new OracleConnection();
OConn.ConnectionString = "Password=mypw; User ID=myid; Data Source=devdb;";
OConn.Open();
OComm = new OracleCommand(StoredProc, OConn);
OComm.CommandType = System.Data.CommandType.StoredProcedure;
OComm.Parameters.Add("msgType", OracleDbType.Varchar2, 255, System.Data.ParameterDirection.Output);
OComm.Parameters.Add("msgBody", OracleDbType.Varchar2, 255, System.Data.ParameterDirection.Output);
int Result = OComm.ExecuteNonQuery();
OConn.Close();
String msgType = OComm.Parameters["msgType"].Value.ToString();
String msgBody = OComm.Parameters["msgBody"].Value.ToString();
パラメータの値を見ると、空の文字列が含まれています。
何か案は?ありがとう!!