我想SQLAlchemy中生成以下SQL代码:SQLAlchemy的:强制列别名引用
SELECT t171 AS "3Harm" FROM production
我一直在用类似上述SQLAlchemy的ORM的东西玩弄片段:
session.query(Production.t171.label('3harm'))
问题这里是没有在生成的SQL中正确引用“3harm”。取而代之的"3harm"
这会产生未加引号3harm
,这是无效的,因为它以数字字符开始,并因此引发以下Oracle异常:
ORA-00923: FROM keyword not found where expected
我能得到这个由资本的别名任何字符的工作:
session.query(Production.t171.label('3Harm'))
但我仍然希望使用所有小写字母的名称,因为我的程序的其余部分是全部小写标准化的。任何想法如何强制引用小写版本?
我可以证实'oracle'方言有问题,并没有引用你的标签,但是它会正确地引用一个带有空格的标签(比如''3'Harm'')。实际上,sqlalchemy上有一张票:[Issue#2138 - oracle绑定以数字开头的名字](https://bitbucket.org/zzzeek/sqlalchemy/issue/2138/oracle-bind-names-that-启动与号码)。请为此问题投票以优先考虑。 – van