|
Ispirer SQLWays データベース移行ソフトウェア
Oracle の予約語
Oracleには二重引用符(")で囲まない限り識別子(テーブルやカラム名等)として使用できない予約語があります。但し、大文字の予約語 ROWID は二重引用符で囲んだとしても識別子として使用することはできません。
もし、予約語を二重引用符で囲んで識別子として定義した場合、それを参照する場合には常に二重引用符で囲む必要があります。二重引用符で囲まれた識別子は大文字小文字を区別する為、識別子を定義した時と同じ文字で参照しなければなりません。
例えば、もしテーブルを"ELSE" という名前で定義した場合、そのテーブルを参照するには"ELSE" と指定し、"Else" や "eLSE" と指定してはなりません。
Oracle の予約語の多くは他のデータベースでオブジェクトやカラム名として有効です。そのため、他のデータベースからOracle へ移行したテーブルはOracleの予約語を含む場合があります。
例えば、LEVEL は Oracle の予約語ですが、IBM DB2 や Microsoft SQL Serverではそうではありません。IBM DB2 や Microsoft SQL Server ではLEVEL というカラム名を定義できますが、OracleではLEVELというカラム名は許されません。
もし、データベースがOracleへ移行された場合、SQLWaysは自動的にOracleの予約語との衝突を自動的に解決します。SQLWaysはテーブルやカラムの名前をOracleの予約語とチェックし、それらを二重引用符で囲みます。予約語 ROWID は "Rowid" で置き換えられます。
SQLWaysは以下のようなOracleの予約語をサポートします: