微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

DbUnit HSQLDB-无效的架构名称:C

如何解决DbUnit HSQLDB-无效的架构名称:C

| 使用以下查询运行测试时,HsqlDB会将表别名误认为是架构。
SELECT c.country_ml2country as CTRY_PK,c.name as CTRY_NAME,l.name as LANGUAGE_NAME,l.code as LANGUAGE_CODE
FROM country_ml as c,language as l
WHERE c.language(+) = l.id and c.country_ml2country(+) = ?
ORDER BY l.name ASC;
有谁之前经历过这个吗?如果“是”,那么解决方法是什么? 请注意,如果我将“ 1”更改为“ 2”,则错误消息将相应地更改为“ 3”。     

解决方法

问题是非标准的Oracle风格的OUTER JOIN语法,该语法特定于Oracle,其他SQL方言不支持。
WHERE c.language(+) = l.id and c.country_ml2country(+) = ?
您应该改用Oracle也支持的以下标准语法:
SELECT c.country_ml2country as CTRY_PK,c.name as CTRY_NAME,l.name as LANGUAGE_NAME,l.code as LANGUAGE_CODE
FROM country_ml as c RIGHT OUTER JOIN language as l
ON c.language = l.id and c.country_ml2country = ?
ORDER BY l.name ASC
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。