サポート > リポジトリ > Appendix > SQL文における識別子の区切り文字

Wagbyが発行するSQL 文では列名およびテーブル名を囲むための区切り文字(quoteid)を利用しています。

Wagbyでは各データベースに対して次に示す区切り文字を利用します。標準では次のようになっています。

データベース 区切り文字(quoteid)
HSQLDB "(ダブルクォート)
PostgreSQL "(ダブルクォート)
MySQL `(バッククォート)
Oracle "(ダブルクォート)
SQLServer "(ダブルクォート)
DB2 "(ダブルクォート)

利用者がデータベースに対して直接 SQL を発行する場合も、この区切り文字を考慮するようにしてください。

例えばデータベースに Oralce を利用している場合、次のような SQL になります。

select * from "juser" where "id" > 0

区切り文字を付与する理由は、各データベース製品の予約語を回避するためです。

環境 > データベース > 識別子の区切り文字の設定で、これを無効にすることはできます。この場合、利用するデータベースによってモデル名、モデル項目名(英語)に利用できない名前が生じることがあります。具体的には次のようなものがあります。

データベース 利用できない名前(英語)
(共通) select, update, delete, insert, create, from, to, where, order
Oracle level, size
上記に示した項目はすべてではありません。詳細は、各データベースのマニュアルをご覧下さい。

このような理由から、新規にシステム開発を行う場合はトラブル回避のため、区切り文字を付与されることを推奨します。