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

複数のOracleクエリを実行する方法c#

    パラメータに名前を使用していますが、ドライバはそれらを位置的に処理しています。 :1と(ほぼ)一致しているので、わかります。 p_cr1という名前で -「1」は有効な名前ではありません。位置が一致しているので文句はありませんが、それはP_paraを使用しようとしていることを意味します :1の場合 、そしてそのタイプが間違っているので、それはあなたが見るエラーを説明します。

    ドライバーの動作を変更する方法もあるかもしれませんが、今のところ、バインドする順序を入れ替えることができます。そのため、バインドは、クエリに表示される変数と同じ順序(位置)で発生します。だから:

    cmd.Parameters.Add("p_cr1", OracleDbType.RefCursor, DBNull.Value, ParameterDirection.Output);
    cmd.Parameters.Add(new OracleParameter(":P_para", OracleDbType.Int64)).Value = Convert.ToInt64(Textbox.Text);
    cmd.Parameters.Add("p_cr2", OracleDbType.RefCursor, DBNull.Value, ParameterDirection.Output);
    



    1. リストからのSQLランダム文字列

    2. 複合キーでのauto_incrementの使用

    3. SQLAlchemyエンジンを使用せずにPostgresテーブルにデータフレームを書き込む方法は?

    4. ソート順付きのSQL親子ツリー