バインドされた変数を扱うのが初めてのので、少し質問があります。 .NETアプリケーションでOracle DBとODP.NETを使用していますが、バインド変数を使用していますしかし、このいずれかで、何らかの理由でこのOracleバインドされた変数
string sql = "select * from table1 where loc=:pLoc and pno=:pPno and sno=:pSno union all select * from table2 where loc=:pLoc and pno=:pPno and sno=:pSno union all
select * from table3 where loc=:pLoc and pno=:pPno and sno=:pSno";
OracleCommand _cmd = new OracleCommand(sql, DBFacade.DbConnection);
OracleParameter pLoc = new OracleParameter(":pLoc", OracleDbType.Varchar2, 3);
pLoc.Value = loc;
OracleParameter pSno = new OracleParameter(":pSno", OracleDbType.Varchar2, 10);
pLoc.Value = sno;
OracleParameter pPno = new OracleParameter(":pPno", OracleDbType.Varchar2, 18);
pLoc.Value = pno;
_cmd.Parameters.Add(pLoc);
_cmd.Parameters.Add(pSno);
_cmd.Parameters.Add(pPno);
_odaContractPrices.SelectCommand = _cmd;
のように、私は成功し、他のSQL文でバインド変数を使用しました(のような単純なクエリで「::のparam1とCOLUMN2 = PARAM2どこCOLUMN1 = TABLE1から選択*」)それは動作しません。誰も私の理由を説明することはできますか? ありがとうございます!
「うまくいかない」とはどういう意味ですか?症状は何ですか? –
私はそのアダプタを使ってデータセットを埋めます。 「動作しない」とは、空のデータセットを意味します。 – maephisto
'OracleCommand _cmd =新しいOracleCommand(sql、loc、sno、pno)、DBFacade.DbConnection);'もコンパイルできません。 –