0

我们在 dao 测试中使用 hsqdb-2.2.9。hsqldb 通过设置与 oracle(生产中)兼容,SET DATABASE SQL SYNTAX ORA TRUE;我们使用 ibatis sql map。

当 sql 包含表别名时,它会失败,例如select a.name, b.code form t_a a, t_b b where a.id = b.a_id,报告unexpected token a。我们尝试在表和表别名之间添加“as”,它也不起作用。我错过了什么吗?

4

2 回答 2

0

呃……我想我已经找到了问题…………我自己的。我突然想到我使用'do'(表名是t_delivery_order)作为表别名,它恰好是hsqldb(或sql)中的关键字。只需将 'do' 替换为 'd',它是固定的。谢谢大家

于 2013-03-20T07:43:29.670 回答
0

是的,HSQLDB 支持表别名。

如果您使用您报告的确切查询,您将获得:

 unexpected token: T_A 

如果您按照 a_horse_with_no_name 的注释更正查询,它应该可以工作。如果其中一个表不存在,您将获得:

  user lacks privilege or object not found: T_A 

顺便说一句,尝试使用最新的 2.3.0 快照 jar 以获得更好的 Oracle 兼容性测试。您可以从网站的支持页面找到它。

于 2013-03-19T16:07:32.270 回答