1

オラクルスクリプトを実行するためにliquibaseを使用しています。このオラクル スクリプトは、オラクルのステートメントへのマージを実行しています。これは正常に動作しますが、問題は、挿入する必要があるデータに奇妙な文字が含まれていることです。そのため、動作させるために 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 DEFINESQL ではなく、SQL*Plus コマンドです。SQL*Plus は Oracle 独自のクライアントであり、他のほとんどのクライアント (IDE など) はそのコマンドを認識しません。

Liquibase フォーラムは、非標準文字を渡す最良の方法として CDATA を使用することを提案しています。 詳細をご覧ください

于 2013-07-23T07:49:38.447 に答える