Liquibase 从 SQL Server 生成/插入变量(max) 数据时出错



我正在从SQL Server数据库生成一个更改日志,我想用它来创建一个Oracle版本。其中一个表有一个 varbinary(max) 列,并且还包含要引入的数据。从此表生成的插入如下所示:

<changeSet author=... id="1415603816743-555">
    <insert tableName="my_table">
        <column name="my_table_id" value="0007JL11X000OZ10J60000948UM000000P8P"/>
        ...
        <column name="my_table_image" value="[B@70eded35"/>
        ...
    </insert>
    ...
</changeSet>

当我尝试在 Oracle 端插入my_table_image数据时,这会抛出"ORA-01465:无效的十六进制数"(目标列是 BLOB)。SQL Server 端的原始数据是十六进制。关于如何成功生成/更新从更改日志到SQL Server varbinary(max)和Oracle BLOB的任何想法?谢谢!

我想

说Liquibase可能不是用于这种数据传输的正确工具。Liquibase主要关注数据库结构而不是数据库内容。用于传输简单数据(字符串、数字等)Liquibase可以完成这项工作,但对于像图片这样的东西,我会看看更专业的ETL(提取 - 转换 - 加载)工具。

使用最多并取得成功的工具(尽管我从未做过图像数据,所以YMMV)被称为Pentaho - 他们有一个免费的开源"社区"版本,可能适合您。

最新更新