sql >> データベース >  >> RDS >> Oracle

C#はoracleストアド関数を呼び出します

    ORA-06550 取得したコードは、関数が無効なステートメントでコンパイルされており、書き直す必要があることを意味します。コードに明らかに問題はないので、権限やテーブル名の誤りなどの問題が発生している可能性があります。まず、PL/SQLエディタで関数を実行できるかどうかを確認する必要があります。次に、それを実行した後、試してください...

    var cmd = new OracleCommand();
    
    cmd.Connection = conn;
    cmd.CommandText = "ar_knyga_egzistuoja";
    cmd.CommandType = CommandType.StoredProcedure;
    
    cmd.Parameters.Add("id", id);
    cmd.Parameters.Add("kiekis", OracleType.Number);
    cmd.Parmeters["kiekis"].Direction = ParameterDirection.ReturnValue;
    
    cmd.Connection.Open();
    cmd.ExecuteNonQuery();
    
    var kiekis = Convert.ToString(cmd.Parameters["kiekis"].Value);
    
    MessageBox.Show(kiekis);
    cmd.Connection.Close();
    

    これにより、kiekisという名前の戻り値を期待しながら、ストアドプロシージャのように関数を実行できるはずです。 タイプnumber 仕事に利用できるようになります。



    1. SQL出力句が挿入されていない列を返すことは可能ですか?

    2. ExecuteBatchメソッドは、Javaで値-2の配列を返します

    3. MySQLクエリを使用して行をトラバースし、再帰ツリーを作成します

    4. SQLServerのメッセージ241「文字列から日付や時刻を変換するときに変換に失敗しました」を修正