合成したSQLステートメントにコメントを挿入する
日付 | 2010/12/06 |
---|---|
ID | 76196 (英語原文参照) |
バージョン | v11 |
プラットフォーム | Mac/Win |
EXECUTE IMMEDIATEで実行されるSQL文は, 文字列を連結することにより合成されるのが一般的です。
C_TEXT($SQL_T) $SQL_T :="SELECT employee_id " $SQL_T :=$SQL_T +"FROM employees " $SQL_T :=$SQL_T +"WHERE manager_id = 100 -- The boss " $SQL_T :=$SQL_T +"INTO :myVar;" Begin SQL EXECUTE IMMEDIATE :$SQL_T; End SQL
上記のSQLを実行するとエラーが返されます。合成されたSQLは一文なので, ダッシュによるコメント(--)以降に記述されたコードは, すべてコメントとみなされてしまうからです。このような位置にコメントを挿入するのであれば, 行の端末に改行コードを追加するか, /* と */ で括るのが適切です。
C_TEXT($SQL_T) $SQL_T:="SELECT employee_id \r" $SQL_T:=$SQL_T+"FROM employees \r" $SQL_T:=$SQL_T+"WHERE manager_id = 100 -- The boss \r" $SQL_T:=$SQL_T+"INTO :myVar;"
C_TEXT($SQL_T) $SQL_T:="SELECT employee_id " $SQL_T:=$SQL_T+"FROM employees " $SQL_T:=$SQL_T+"WHERE manager_id = 100 /* The boss */ " $SQL_T:=$SQL_T+"INTO :myVar;"