hsqldb是否支持oracle兼容模式下的表别名

hsqldb是否支持oracle兼容模式下的表别名,oracle,alias,hsqldb,Oracle,Alias,Hsqldb,我们在dao测试中使用hsqdb-2.2.9。通过设置SET DATABASE SQL SYNTAX ORA TRUE,hsqldb与oracle(生产中)兼容并且我们使用iBATISSQL映射 当sql包含表别名时,它会失败,类似于选择a.name,b.code表单t_a a,t_b b,其中a.id=b.a_id,它报告意外的令牌a。我们尝试在表和表别名之间添加“as”,但也不起作用。我遗漏了什么吗?是的,HSQLDB支持表别名 如果使用您报告的确切查询,您将得到: unexpected

我们在dao测试中使用hsqdb-2.2.9。通过设置
SET DATABASE SQL SYNTAX ORA TRUE,hsqldb与oracle(生产中)兼容并且我们使用iBATISSQL映射


当sql包含表别名时,它会失败,类似于
选择a.name,b.code表单t_a a,t_b b,其中a.id=b.a_id
,它报告
意外的令牌a
。我们尝试在表和表别名之间添加“as”,但也不起作用。我遗漏了什么吗?

是的,HSQLDB支持表别名

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

 unexpected token: T_A 
  user lacks privilege or object not found: T_A 
如果您按照带有\u no\u名称的\u horse\u的注释来更正查询,那么它应该可以工作。如果其中一个表不存在,您将得到:

 unexpected token: T_A 
  user lacks privilege or object not found: T_A 

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

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

表单
应该是
来自谢谢你的回复,我更正了sql并得到“用户缺少权限或找不到对象:”,但是表确实存在,还有其他可能吗@弗雷特