[pgsql-jp: 40051] Re: EXECUTE USINGについて

Yusuke Yamasaki tm9233yy @ gmail.com
2009年 11月 4日 (水) 21:06:06 JST


山崎(ゆ)です。

> USING t_beg::text, t_cur::text, t_end::text;
> としてみてはどうでしょう。

これでやってみました。

      EXECUTE 'CREATE TABLE ' ||part|| ' (LIKE ' ||parent
      || ' INCLUDING INDEXES INCLUDING DEFAULTS INCLUDING CONSTRAINTS, '
      || 'CHECK ($1 <= created_at AND created_at < $2)'
      || ') INHERITS (' ||parent|| ')'
      USING t_beg::text, t_end::text;

結果:

ERROR:  there is no parameter $1
CONTEXT:  SQL statement "CREATE TABLE events_0911 (LIKE events
INCLUDING INDEXES INCLUDING DEFAULTS INCLUDING CONSTRAINTS, CHECK ($1
<= created_at AND created_at < $2)) INHERITS (events)"
PL/pgSQL function "event_insert_trigger" line 19 at EXECUTE statement


同じくエラーでした。
RECORD型しか駄目なんでしょうかねえ。。。

http://postgresql.manual.php.to/plpgsql-statements.html
38.5.4. 動的コマンドの実行
「実行時負荷を回避するとともに、括弧で括るとか、エスケープをする必要がないため、SQLインジェクション攻撃に対してより襲われにくくなります。」

この文面を見る限りでは、テキストなどでもできるように見えますよね。

-- 
Yusuke Yamasaki <tm9233yy @ gmail.com>



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