2012-03-23 2 views
1

HyperSQLはテーブルを作成するときにすべての列名を大文字に変換します。区切り文字のない識別子を使用して何かを選択する場合
は、識別子は大文字小文字を区別しないと
SELECT myColumn FROM myTable;または SELECT mYcOlUmN FROM myTable;または
SELECT mycolumn FROM myTable;

が正常に動作しますです。HyperSQLの大文字と小文字を区別しない区切り識別子

ただし、区切り識別子を使用する場合、識別子では大文字と小文字が区別されます。だから、
SELECT "MYCOLUMN" FROM myTable;
は動作しますが、

SELECT "myColumn" FROM myTable;または
SELECT "mYcOlUmN" FROM myTable;または
SELECT "mycolumn" FROM myTable;
はしません!

すべて のMOST私のクエリは小文字区切り識別子を(理由は聞かないでください)を使用しています。
HyperSQLは、大文字小文字を区別しない区切り識別子を使用する方法、または小文字でない識別子を小文字として扱う方法を提供していますか?

答えて

2

引用符で囲まれた識別子を使用しない場合、標準SQLは大文字小文字を区別しません。引用符で囲まれたオブジェクトを使用すると、引用符で囲まれたオブジェクトは大文字とみなされ、引用符のないオブジェクトは大文字として扱われます。

すべての列の名前を小文字に変更できます。

ALTER TABLE MYTABLE ALTER COLUMN MYCOLUMN RENAME TO "mycolumn" 

あなたはPUBLICスキーマ内のすべてのテーブル+の列名を選択し、各列の名前変更文を実行することにより、(Javaで)プログラム的にこれを行うことができます。

+0

アップです。私はあなたを誤解しました!私のクエリの大部分は小文字の引用符付き識別子を使用しています!あなたの例では、引用符で囲まれていないものは大文字として扱われるので、それ以上のすべての選択クエリは引用符付きの識別子を使うべきです! –

+0

使用法は一貫しており、ルールに従わなければなりません。他の方法はありません。 – fredt

関連する問題