サポート > データベース活用ガイド(R6) > [技術資料] SQL文における識別子の区切り文字

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

区切り文字一覧

Wagbyでは各データベースに対して次に示す区切り文字を利用します。

データベース 区切り文字(quoteid)
HSQLDB "(ダブルクォート)
PostgreSQL "(ダブルクォート)
MySQL `(バッククォート)
Oracle (9i/10g) "(ダブルクォート)
SQLServer2000/2005 "(ダブルクォート)
DB2 "(ダブルクォート)
SQL Anywhere 9 "(ダブルクォート)

SQL の例

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

以下に SQL の例を示します。
例)データベースに Oralce を利用している場合

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

区切り文字を設定しない方法とその影響

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

「Wagby 定義ファイル - 環境設定 - リレーショナルデータベースの設定」で、本区切り文字を付与しないという設定を行うことができます。 この場合、利用する外部データベースによってモデル名、モデル項目名(英語)に利用できない名前が発生します。具体的には次のようなものがあります。

データベース 利用できない名前(英語)
(共通) select, update, delete, insert, create, from, to, where, order
Oracle level, size
SQL Anywhere 9 key, comment

上記に示した項目はすべてではありません。詳細は、各データベースのマニュアルをご覧下さい。

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