2016-12-19 9 views
-3

からOracle関数は、私は、これはコードコールC#

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; 
    } 

} 

注意ですC#で、この署名

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

とOracleでの機能を持っています。

でも、関数を呼び出してC#からエラーが表示されると(invalide sql文)、関数が正しくても、oracleからの出力が返されますか?どんな助け?提案?

+1

エラーは何ですか? – RandomStranger

+0

これをチェックしてください:http://stackoverflow.com/questions/23199713/c-sharp-call-oracle-stored-function – Valkyrie

+0

*エラーが表示されます... ...うーん... –

答えて

0

コンパイラがこれがquery expressionだと思うため、予約されたキーワード(select)を使用しているため、コードが機能しません。上記のコードは機能しません。

修正プログラムは明らかに簡単です。 "select"という名前の文字列の名前を変更してください。

+0

私はそれを変更しましたが、私は同じエラーに直面しています! –

+0

@alicebon OracleCommandコンストラクタの1番目のパラメータも変更しましたか? – jeuxjeux20