Oracle 9i のストアド プロシージャに XML 型を渡そうとしています。ノードから値を抽出して返すことだけが想定されていますが、値を返すことはありません。誰でもアドバイスできますか?
XMLString = "<?xml version='1.0' encoding='utf-8' ?>";
XMLString += "<Document>";
XMLString += "<DocumentType>WorkOrder</DocumentType>";
XMLString += "<DocumentAction>Create</DocumentAction>";
XMLString += "<WorkOrder>";
XMLString += "<WO>123456</WO>";
XMLString += "<WOTask>1</WOTask>";
XMLString += "</WorkOrder>";
XMLString += "</Document>";
oraCon.ConnectionString = s_connectionString;
oraCon.Open();
oraCommand.CommandType = CommandType.StoredProcedure;
oraCommand.CommandText = "LOUISETEST.GetActionType";
oraCommand.Connection = oraCon;
oraCommand.Parameters.Add("xml_document_i", OracleDbType.XmlType, XMLString, ParameterDirection.Input);
oraCommand.Parameters.Add("action_i", OracleDbType.Varchar2, result, ParameterDirection.Output);
oraCommand.ExecuteNonQuery();
Console.WriteLine("Result : "+result.ToString());
ストアド プロシージャは次のとおりです。
PROCEDURE GetActionType
(
xml_document_i IN XMLTYPE
,action_i OUT VARCHAR2
)
AS
BEGIN
SELECT xml_document_i.Extract('/DocumentAction/text()').getstringval() INTO action_i
FROM TABLE (XMLSEQUENCE (xml_document_i.EXTRACT ('/Document') ) ) ;
END GetActionType;