2016-12-19 92 views
-3

一個Oracle功能我在Oracle中的功能與此簽名在C#調用從C#

test_fun(p_nat_no in number,p_number_type in number) RETURN test_table 

這是代碼

string select = "test_fun"; 
using (OracleConnection connection = new OracleConnection(helper.Global.ConnectionString)) 
{ 


    OracleCommand command = new OracleCommand(select, connection); 
    // command.CommandType = CommandType.StoredProcedure; 
    OracleParameter PrmnatNo = new OracleParameter("p_nat_no ", natNo);//natNo 
    command.Parameters.Add(PrmnatNo); 

    OracleParameter pramNumberType = new OracleParameter("p_number_type ", numberType); 
    command.Parameters.Add(pramNumberType); 

    connection.Open(); 

    using (OracleDataReader reader = command.ExecuteReader()) 
    { 

     if (reader.HasRows) 
     { 

      List<test_table> Tickets = new List<test_table>(); 

      while (reader.Read()) 
      { 
       Tickets.Add(GetPropertyTaxHelper(reader)); 

      } 
      return Tickets; 

     } 
     else return null; 
    } 

} 

注:此功能是正常工作從Oracle。

但是當試圖從c#調用函數時出現錯誤(invalide sql語句),即使該函數是正確的,並從oracle返回輸出?任何幫助?建議?

+1

什麼是錯誤? – RandomStranger

+0

檢查了這一點:http://stackoverflow.com/questions/23199713/c-sharp-call-oracle-stored-function – Valkyrie

+0

*出現錯誤* ...嗯... –

回答

0

您的代碼不起作用,因爲您使用保留關鍵字(select)作爲字符串的名稱,因爲編譯器認爲這是query expression,所以上面的代碼將不起作用。

修復顯然很簡單,更改名爲「select」的字符串的名稱。

+0

我改變了它,但仍然面臨同樣的錯誤! –

+0

@alicebon您是否還更改了OracleCommand構造函數的第一個參數? – jeuxjeux20