有没有一种简单快捷的方法,可以快速从 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 项目中提供了一个电子邮件替代方案