2014-09-21 67 views
0

我有Oracle包过程,它将XML字符串作为输入变量并输出XML字符串。我试图编写一个Web服务,但它返回空字符串(空),而不是XML字符串。ASP.NET C#Web服务Oracle包返回空字符串

代码:

[WebMethod] 
    public string packageCall(string xmlStr) 
    { 
     OracleConnection oraCon = new OracleConnection(); 
     oraCon.ConnectionString = "Data Source="+database+";User Id="+ userId+";Password="+pass+";"; 
     oraCon.Open(); 
     OracleCommand objCmd = new OracleCommand("PKG_WEBSERV11.TEST",oraCon); 
     objCmd.CommandType = CommandType.StoredProcedure; 
     objCmd.Parameters.Add("P_IN", xmlStr.ToString()); 
     objCmd.Parameters.Add("P_OUT", OracleDbType.Varchar2).Direction = ParameterDirection.Output; 
     try 
     { 
      objCmd.ExecuteNonQuery(); 
      string result = "<!--[CDATA] "+objCmd.Parameters["P_OUT"].Value +" -->"; 
      return result; 
     } 
     catch (Exception ex) 
     { 
      return "Error: +"+ex; 
     } 
     finally 
     { 
      oraCon.Close(); 
     } 
    } 

套餐:

PKG_WEBSERV11 
    PROCEDURE TEST (P_IN IN VARCHAR2, P_OUT OUT VARCHAR2) 

回答

0

的代码盯着几个小时后,我意识到,解决的办法是比预期的多很多简单!

objCmd.Parameters.Add("P_IN", OracleDbType.Varchar2).Value = xmlStr;