[pgsql-jp: 41415] Re: 動的SQLのコロンの検索について

Iwaoka, Yoshinao y-iwaoka @ jp.fujitsu.com
2013年 6月 7日 (金) 09:46:27 JST


佐藤様

返信ありがとうございます。

具体的に説明させていただきます。

>>
>> <<環境>>
>> OS:Linux 
>> Postgres8.2.10
>
>さすがにこれだけだと答えようがないです。
>
>具体的にどうやって SQL を実行しようとしているかを教えてもらえますか。例
>えば、言語とか、API とか、使っているならフレームワークとかです。
>
>少なくとも psql や ECPG では文字列内にコロンが含まれていても変数として
>展開されません。


画面系の処理(JAVA)用にPostgresDBアクセス用のAPIを用意している。
APIは、ECPG(.pgc)で作成している。
画面での検索条件を動的SQLで組み立てている。
(prepare/declare/open cursor/fetch/close cursor)

検索する文字列に「:(コロン)」を指定するとエラーとなり、
シングルコーテーションで括ったら、エラーは発生しなくなったが
正しく検索できない状況です。

【検索文字列】
AAA:BBB

【修正前】
Searchbuf='Select a,b,c from table_Z where d = AAA:BBB ' ;
⇒DB登録済のコロンを含まない文字列は検索可
⇒DB登録済のコロンを含む文字列はエラー発生

【修正後】
Searchbuf='Select a,b,c from table_Z where d = 'AAA:BBB' ' ;
⇒DB登録済のコロンを含まない文字列は検索データなし
⇒DB登録済のコロンを含む文字列は検索データなし(エラー未発生)

【想定】
コロン(:)でホスト変数と判断してしまっているのか正しく検索できていません。
事例等ありましたら、ご教授いただきたい。

※不足情報があれば教えてください。


pgsql-jp メーリングリストの案内