我需要在旧版oracle数据库中引用一个名为limit的列,并使用SQLite内存数据库进行单元测试。
我已阅读过在映射文件中使用反引号来完成此任务; limit
在SQLite中工作正常,但在查询中解析为oracle和barfs中的“限制”。
这个功能是否正确地为oracle实现,或者我错过了什么?
干杯,
罗布
更新
看来这个列并没有用引号创建,但是NHibernate认为它是保留的并且引用了它:/
答案 0 :(得分:2)
在Oracle中,您使用双引号来引用名称为保留字的对象:
SQL> create table a (number number);
create table a (number number)
^
ORA-00904: : invalid identifier
“NUMBER”是保留字。但是,您可以:
SQL> create table a ("number" number);
Table created
SQL> select "number" from a;
number
----------