【发布时间】:2018-06-27 14:50:04
【问题描述】:
我有两个使用 Oracle Standard Edition Two 12.1 的 Oracle 数据库,DB1 和 DB2。 DB1 包含下表一个 FILE_TABLE:
ColumnName DataType
File_Id Number
File_Ref Bfile
我将 Bfile 存储到 FILE_TABLE 表的 File_Ref 中。 我想从 FILE_TABLE 表中访问 Bfile 并在 DB2 中显示它。
我已经使用数据库链接进行了尝试。使用数据库链接,我尝试这样做:
SELECT FILE_REF FROM FILE_TABLE@dblink;
但它给出了一个错误:ORA-22992: cannot use LOB locators selected from remote tables
我也试过 DBMS_FILE_TRANSFER 但是当我研究它时,我知道我们只能传输系统数据文件而不能传输 Bfile。 这是真的吗? 这是我用来传输文件的语法:
DBMS_FILE_TRANSFER.put_file(
source_directory_object => 'db1_dir',
source_file_name => 'db1test.html',
destination_directory_object => 'db2_dir',
destination_file_name => 'db2test.html');
destination_database => 'db1_to_db2',
END;
/
但我得到一个错误:
ORA-19505: 无法识别文件“/db1_dir/db1test.html”
ORA-27046: 文件大小不是逻辑块大小的倍数
附加信息:1
ORA-02063:db1_to_db2 的前 3 行
ORA-06512:在“SYS.DBMS_FILE_TRANSFER”第 37 行
ORA-06512:在“SYS.DBMS_FILE_TRANSFER”,第 132 行
ORA-06512:在第 2 行
- 00000 - “未能识别文件 \"%s\"”
*原因:调用识别文件返回错误
*操作:检查附加消息,并检查文件是否存在
有没有办法使用数据库链接来做到这一点?有没有其他解决方案可以将 Bfile 从一个数据库移动到另一个数据库?
【问题讨论】:
-
示例 sql 中的表名和列名与表的描述不匹配。请提供对您的表格的正确描述。例如 bfile_col_nm 是什么?
-
对不起,我只是举个例子。我已经更正了 SQL 查询。
-
我现在无法测试,但您可以将
insert放入表格而不是selecting 吗? -
这是一次性副本还是持续要求?
-
您尝试过数据泵吗?从 DB1 导出并导入 DB2?
标签: oracle