通过 SqlPlus 导出 Oracle BLOB

通过 SqlPlus 导出 Oracle BLOB

有没有一种简单快捷的方法,可以快速从 Oracle 中选择 BLOB 值,将结果复制到记事本中,然后在另一个 Oracle 中运行相应的插入以插入数据?数据长度远远超过 4 K。

我无法使用外部工具或复制文件,因为我只能访问 sqlplus 工具(更清楚地说是 PlSql 开发人员),而且从我所见,在谷歌上搜索它并不容易,所以也许可以接受的答案会很简单,“不,没有办法”。

答案1

我认为,与其使用记事本作为中介,不如直接使用SQL*Plus COPY 命令, IE

COPY FROM source_table@source_tns_alias
       TO destination_table@destination_tns_alias
   CREATE dest_table_name ( column_list)
    USING SELECT column_list 
            FROM source_table_name

会将 SOURCE_TNS_ALIAS 处的 SOURCE_TABLE 的内容复制到 DESTINATION_TNS_ALIAS 处新建的表 DEST_TABLE_NAME。COPY 命令中还有选项可以将数据加载到现有表中。

答案2

不幸的是,无法使用 SQL*Plus COPY 命令复制 BLOB(因为自 Oracle8 以来它们没有对此进行任何工作)。您可以创建一个数据库链接在任一数据库中,然后将其复制到该数据库中?

如果做不到这一点,情况可能会变得很危急,Oracle-Base 的 Tim 在 www.oracle-base.com 上有一个基于 PL/SQL 的 FTP 客户端。不过,您需要一个 FTP 服务器作为中介。

Michael O'Neill 在 cleveridea4data sourceforge 项目中提供了一个电子邮件替代方案

相关内容