Я хочу SQLAlchemy генерировать следующий код SQL:SQLAlchemy: Force колонка псевдоним процитировать
SELECT t171 AS "3Harm" FROM production
Я играл вокруг с чем-то похожее на это SQLAlchemy ОРМ фрагмент кода:
session.query(Production.t171.label('3harm'))
Проблема вот что это не правильно цитирует «3harm» в сгенерированном SQL. Вместо "3harm"
это порождает неупомянуто 3harm
, который является недействительным, поскольку он начинается с числовым характером и, следовательно, возникает следующий Oracle исключение:
ORA-00923: FROM keyword not found where expected
я могу получить эту работу путем капитализации любого символа в имени псевдонима:
session.query(Production.t171.label('3Harm'))
Но я бы предпочел использовать все имена столбцов нижнего регистра, так как остальная часть моей программы стандартизована для всех строчных букв. Любая идея, как заставить цитату в нижнем регистре?
Я могу подтвердить, что диалект «оракула» имеет проблему и не цитирует ваш ярлык, но он будет правильно указывать на пробел (например, «3 Harm''). Фактически, для этого есть билет на sqlalchemy: [№ 2138 - имена оракула, начинающиеся с цифр] (https://bitbucket.org/zzzeek/sqlalchemy/issue/2138/oracle-bind-names-that- запуск с числами). Пожалуйста, проголосуйте за вопрос, чтобы получить приоритет. – van