(1) Restricted モード
英数字とアンダースコアのみ使用可能
大文字と小文字を区別しない
大文字を入力しても、自動的に小文字に変換されます。
(2) Unicode モード
任意の文字を使用可能
以下の場合に大文字と小文字が区別されます。
・二重引用符で囲んでいて、その文字の少なくとも 1 つが大文字
・「Restricted 文字セット」に属さない文字を名前に使用している。
各DBでの挙動確認
※Restricted モードとUnicode モードで挙動は同じ
-- MySQL
select col1 from b_tab1;
→ OK
select "col1" from b_tab1;
→ OK
select COL1 from b_tab1;
→ OK
select "COL1" from b_tab1;
→ Field not found 'b_tab1.COL1' in view 'b_tab1'
select col1 from b_tab1;
→ OK
select col1 from "b_tab1";
→ OK
select col1 from B_TAB1;
→ OK
select col1 from "B_TAB1";
→ View 'B_TAB1' not found
-- Oracle
select col1 from b_tab1;
→ Field not found 'b_tab1.col1' in view 'b_tab1'
select "col1" from b_tab1;
→ Field not found 'b_tab1.col1' in view 'b_tab1'
select COL1 from b_tab1;
→ Field not found 'b_tab1.col1' in view 'b_tab1'
select "COL1" from b_tab1;
→ OK
★Oracleのカラムは大文字にして二重引用符で囲む必要がある
select "COL1" from b_tab1;
→ OK
select "COL1" from "b_tab1";
→ OK
select "COL1" from B_TAB1;
→ OK
select "COL1" from "B_TAB1";
→ View 'B_TAB1' not found
-- PostgreSQL
select col1 from b_tab1;
→ OK
select "col1" from b_tab1;
→ OK
select COL1 from b_tab1;
→ OK
select "COL1" from b_tab1;
→ Field not found 'b_tab1.COL1' in view 'b_tab1'
select col1 from b_tab1;
→ OK
select col1 from "b_tab1";
→ OK
select col1 from B_TAB1;
→ OK
select col1 from "B_TAB1";
→ View 'B_TAB1' not found
-- SQL Server
select col1 from b_tab1;
→ OK
select "col1" from b_tab1;
→ OK
select COL1 from b_tab1;
→ OK
select "COL1" from b_tab1;
→ Field not found 'b_tab1.COL1' in view 'b_tab1'
select col1 from b_tab1;
→ OK
select col1 from "b_tab1";
→ OK
select col1 from B_TAB1;
→ OK
select col1 from "B_TAB1";
→ View 'B_TAB1' not found