Liquibase:执行SQL SET DEFINE OFF时出错

Liquibase:执行SQL SET DEFINE OFF时出错,sql,oracle,liquibase,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

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

有人知道如何避免这个问题吗


提前感谢

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


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

你能详细说明一下如何从使用Liquibase的脚本中跳过这个吗?@JITHIN-对不起,我已经好几年没有接触过Liquibase了,我记不起细节了。几张便条。如果您愿意为许可证付费,FlywayDB Pro支持SQL*Plus。虽然如果您已经在使用Liquibase,这并没有多大帮助,而且我认为它不值得迁移:如果您使用SQL格式脚本运行Liquibase,那么FlywayDB就没有什么好处。另外@thatjeffsmith还戏称Oracle很快就会将Liquibase与
sqlcl
集成,其中包括您最喜欢的SQL*Plus命令。