• 締切済み

postgresのwhere句(キャストの問題?)

ユーザー登録プロシージャ、hogehoge_insert( int2 )内で、 szJob USER_INFO.RESERVE1%Type; szJob := $1; となっているとします。 テーブルUSER_INFOのRESERVE1はchar(16)です。 そして、 INSERT INTO USER_INFO (RESERVE1) VALUES (szJob); とすると、パラメタに1を与えたときテーブルには キャストされてchar型で'1'が入るのでしょうか? 困っているのは、テーブル検索プロシージャを作成しているのですが、 hogehoge_select( int2 )内で nJob USER_INFO.RESERVE1%Type; nJob=$1; szConditionSQL := '' where a.USER_ID = d.USER_ID d.RESERVE1 = ''||nJob; としたとき、 パラメータに1を与えたとき'1'ではなく1と展開されてしまうため ヒットしてくれません。 解決方法をご存知でしたら伝授願えないでしょうか。。 どうぞよろしくお願いいたします。

みんなの回答

  • kusukusu
  • ベストアンサー率38% (141/363)
回答No.1

リテラル要素を含んでいるからではないですか? quote_literal()を通せばいいと思いますよ。 # セキュアなサーバーは完成しましたが?(^^;

yumi-mika
質問者

お礼

これはこれは、kusukusuさん。こんにちは! ありがとうございます。こちらは解決済みでした。 締め切るのを忘れていました。 なんでもご存知なのですね。 ありがとうございます、今後ともよろしくお願いいたしますm(_ _)m

関連するQ&A