我正在使用liquibase来执行oracle脚本。这个oracle脚本,正在为oracle执行merge into语句,这个工作正常,但问题是我需要插入的数据有奇怪的字符,所以为了工作我们使用SET DEFINE OFF(在文件的开头) )和SET DEFINE ON(在文件末尾)以避免错误。
但是,如果我尝试在liquiBase中运行相同的脚本不起作用,我会收到此错误:
Liquibase Update Failed: Error executing SQL SET DEFINE OFF
我的更改日志如下所示:
<changeSet author="e-ballo" id="nopa_data_email" dbms="oracle" >
<sqlFile path="email/NOPA_ACTIVATE_SECURITY.sql" relativeToChangelogFile="true" splitStatements="true" stripComments="true" />
任何人都知道如何避免这个问题?
提前致谢
答案 0 :(得分:2)
SET DEFINE
不是SQL而是SQL * Plus命令。 SQL * Plus是Oracle专有客户端,大多数其他客户端(例如IDE)无法识别其命令。
Liquibase论坛建议使用CDATA作为传递非标准字符的最佳方式。 Find out more