Liquibase 使用 Oracle 注释符号(双破折号)返回带有 SQL 的 ORA-00907
Liquibase returning ORA-00907 with SQL using Oracle comment notation (double dash)
运行 SQL 在 Oracle 上通过 Liquibase 并收到错误:
ORA-00907: missing right parenthesis
我们 运行 的 SQL 有双破折号 --
,它也可以代表 PLSQL 中的评论。我猜这就是问题所在。这应该以某种方式转义吗?
delete from mytable B where B.NAME in ('XXX--YYY', 'AAA--BBB');
字符序列 --
很可能被解释为注释,因此将忽略以下字符直到行尾。
您可以使用以下解决方法,将字符串简单地分成两部分
而不是
'XXX--YYY'
使用
'XXX-'||'-YYY'
别忘了,如果你有更多的破折号,你必须重复这一步,例如对于 ---
,您必须将字符串分成三部分。
对于包含多行注释的字符串可能会出现类似问题:
'XXX/*YYY', 'XXX*/YYY'
运行 SQL 在 Oracle 上通过 Liquibase 并收到错误:
ORA-00907: missing right parenthesis
我们 运行 的 SQL 有双破折号 --
,它也可以代表 PLSQL 中的评论。我猜这就是问题所在。这应该以某种方式转义吗?
delete from mytable B where B.NAME in ('XXX--YYY', 'AAA--BBB');
字符序列 --
很可能被解释为注释,因此将忽略以下字符直到行尾。
您可以使用以下解决方法,将字符串简单地分成两部分
而不是
'XXX--YYY'
使用
'XXX-'||'-YYY'
别忘了,如果你有更多的破折号,你必须重复这一步,例如对于 ---
,您必须将字符串分成三部分。
对于包含多行注释的字符串可能会出现类似问题:
'XXX/*YYY', 'XXX*/YYY'