Tuesday, May 08, 2007

Oracle SQL*Plus メモ


SELECT
'INSERT INTO tbl_alert_cond(user_id, meigara_code, alert_type, last_update)
values (''' || b.user_id || ''', ''' || a.meigara_code || ''', ' || to_char(a.alert_type) || ', SYSDATE);'
FROM tbl_alert_cond a, tbl_users b
where a.user_seq_no = b.user_seq_no;


この SQL は、テーブルから SELECT した結果を組み合わせて SQL 文を作成している。文字列はシングルクォートで囲むのだが、文字列中でシングルクォートを使いたいときは、シングルクォートをシングルクォート自身でエスケープする。つまり、シングルクォートを2つ並べるということ。

また、文字列連結演算子 || を使っているが、これに渡すために整数カラムは、to_char 関数でいったん変換してから渡しているのがわかる。

No comments: