1

我正在使用 liquibase 来执行 oracle 脚本。这个 oracle 脚本,正在执行合并到 oracle 的语句,这工作正常,但问题是我需要插入的数据有奇怪的字符,所以为了工作我们使用 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" />

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

提前致谢

4

1 回答 1

3

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

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

于 2013-07-23T07:49:38.447 回答