- PR -

.NET Framework Data Provider for Oracle でのパラメータクエリーについて

1
投稿者投稿内容
最大40
常連さん
会議室デビュー日: 2004/02/06
投稿数: 41
投稿日時: 2004-02-06 13:07
現在Oracle + ASP.NET(C#) でWebアプリケーションを作成しています。
ところが、SQL実行時にパラメータクエリーが実行できずに難儀しています。

実際のコードは以下の通りです

OracleCommand cmd
= new OracleCommand("select * from [テーブル名] where [カラム名] like '%:pParam%'",con.GetDBConnection());

OracleParameter myParameter
= new OracleParameter("pParam", OracleType.VarChar);

myParameter.Value = "aaa";
cmd.Parameters.Add(myParameter);
cmd.ExecuteReader();

上のコードを実行すると、
ExecuteReaderメソッドで以下のようなエラーが発生してしまいます。
"ORA-01036: 変数の名前/数が無効です。\\n"

オラクルのエラーコードを調べると、
「ユーザー側にバインド・コンテキストを見つけることが出来ません」
という意味のようですが、恥ずかしながら意味がわかりません。
パラメータを使わずにSQLをじかに書けばすんなり実行できるのですが、、

どなたか原因のわかる方がおられましたら教えていただけますでしょうか。
よろしくお願いいたします。
きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2004-02-06 13:17
最大40さん、こんにちは。

引用:

= new OracleCommand("select * from [テーブル名] where [カラム名] like '%:PParam%'",con.GetDBConnection());


試してませんが、
"SELECT * FROM ...... LIKE '%' || :PParam || '%'"
ではどうでしょうか?

【追記】
顔文字になってしまったので修正。


[ メッセージ編集済み 編集者: きくちゃん 編集日時 2004-02-06 13:18 ]
最大40
常連さん
会議室デビュー日: 2004/02/06
投稿数: 41
投稿日時: 2004-02-06 13:28
きくちゃん さん、すばやい返信ありがとうございます

引用:

試してませんが、
"SELECT * FROM ...... LIKE '%' || :PParam || '%'"
ではどうでしょうか?




まさしくその通りでした。
'で囲ってしまうと文字列と見られてしまうんですね。
おかげさまであっさり解決しました

本当にありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)