Идентификаторы с разделителями без учета регистра в HyperSQL - PullRequest
1 голос
/ 23 марта 2012

HyperSQL преобразует все имена столбцов в верхний регистр при создании таблицы, верно.
При выборе чего-либо с использованием неограниченного числа идентификаторов регистр не учитывается и
SELECT myColumn FROM myTable; или
SELECT mYcOlUmN FROM myTable; или
SELECT mycolumn FROM myTable;
будет работать нормально.

Однако при использовании идентификаторов с разделителями идентификаторы чувствительны к регистру.Так что
SELECT "MYCOLUMN" FROM myTable;
будет работать, но

SELECT "myColumn" FROM myTable; или
SELECT "mYcOlUmN" FROM myTable; или
SELECT "mycolumn" FROM myTable;
не будет!

Все МОСТ из В моих запросах используются идентификаторы с разделителями в нижнем регистре (не спрашивайте почему).
Предоставляет ли HyperSQL способ использования идентификаторов с разделителями без учета регистра ИЛИ обрабатывает некотировочныеидентификаторы в нижнем регистре?

1 Ответ

2 голосов
/ 24 марта 2012

Стандартный SQL не учитывает регистр, если вы не используете заключенные в кавычки идентификаторы. Когда вы их используете, объекты в кавычках считаются чувствительными к регистру, а имена без кавычек - в верхнем регистре.

Вы можете переименовать все столбцы в строчную версию.

ALTER TABLE MYTABLE ALTER COLUMN MYCOLUMN RENAME TO "mycolumn"

Вы можете сделать это программно (в Java), выбрав все имена таблиц + столбцов в схеме PUBLIC и выполнив оператор переименования для каждого столбца.

...