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

ORA-01008:すべての変数がバインドされているわけではありません。彼らは縛られている

    これは古い質問ですが、正しく対処されていないため、この問題が発生する可能性のある他の人のために回答しています。

    デフォルトでは、OracleのODP.netは変数を位置ごとにバインドし、各位置を新しい変数として扱います。

    furman87が述べたように、各コピーを異なる変数として扱い、その値を複数回設定することは回避策であり、苦痛であり、クエリを書き直して物事を動かそうとすると、バグにつながる可能性があります。

    正しい方法は、次のようにOracleCommandのBindByNameプロパティをtrueに設定することです。

    var cmd = new OracleCommand(cmdtxt, conn);
    cmd.BindByName = true;
    

    インスタンス化時にBindByNameをtrueに設定するOracleCommandをカプセル化する新しいクラスを作成することもできるため、毎回値を設定する必要はありません。これについては、この投稿で説明しています



    1. TYPE_ID()を使用して、SQLServerのデータ型のIDを取得します

    2. データベース設計のステップは何ですか?

    3. MySQLで照合を見つける方法

    4. MariaDBコネクタ/Pythonベータ版が利用可能になりました