Unc*_*roh 3 oracle dbunit hsqldb
使用以下查询运行测试时,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;
Run Code Online (Sandbox Code Playgroud)
有谁之前经历过这个吗?如果"是",那么修复是什么?
请注意,如果我更改FROM country_ml as c为FROM country_ml as bob,则错误消息会相应更改为invalid schema name: BOB.
问题是非标准的Oracle样式的OUTER JOIN语法,该语法特定于Oracle,而不受其他SQL方言的支持.
WHERE c.language(+) = l.id and c.country_ml2country(+) = ?
Run Code Online (Sandbox Code Playgroud)
您应该使用以下标准语法,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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1175 次 |
| 最近记录: |