Разделители столбцов / таблиц в Access 2007, Oracle и SQL Server - PullRequest
3 голосов
/ 01 декабря 2011

Проблема

Я пытаюсь динамически построить несколько операторов SQL, которые должны использовать разделители столбцов / таблиц, чтобы у нас могли быть имена таблиц с двумя словами или специальные зарезервированные ключевые слова и т. Д. (Я не знаю, потому что таблицы он сопоставляется с существующими данными на стороне клиента)

Когда я поддерживал только Access 2007 и SQL Server, я использовал квадратные скобки []:

select [Unit Price] from [Products] where [Unit Price] < @UnitPriceLimit

Но теперь я тоже должен поддерживать Oracle, и Oracle не позволяет мне использовать квадратные скобки.

Я обнаружил, что Oracle позволяет мне использовать двойные кавычки:

select "Unit Price" from "Products" where "Unit Price" < @UnitPriceLimit

Это также поддерживается в SQL Server, но не по умолчанию, только если вы переключите определенный параметр, заключенные в кавычки идентификаторы ; и двойные кавычки вообще не поддерживаются (из того, что я могу сказать, возможно, я пропускаю опцию?) в Access 2007.

Вопрос

Кто-нибудь знает, есть ли идентификатор, который я могу использовать кроссплатформенный?
Или, по крайней мере, общий для всех трех платформ, о которых идет речь? (Oracle, Access 2007+, SQL Server 2008 +)

1 Ответ

1 голос
/ 02 декабря 2011

К сожалению, вы его не найдете.Лучше всего реализовать шаблон декоратора и разграничить имена в соответствии с требованиями для каждой СУБД.

...