Liquibase:执行SQL SET DEFINE OFF时出错

时间:2013-07-23 07:20:05

标签: sql oracle liquibase

我正在使用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" />

任何人都知道如何避免这个问题?

提前致谢

1 个答案:

答案 0 :(得分:2)

SET DEFINE不是SQL而是SQL * Plus命令。 SQL * Plus是Oracle专有客户端,大多数其他客户端(例如IDE)无法识别其命令。

Liquibase论坛建议使用CDATA作为传递非标准字符的最佳方式。 Find out more