我使用Oracle 11g,我正在尝试导出我的数据(只导出数据,不导出表创建脚本等)。因此客户可以将其导入到数据库中
当我使用Oracle Sql developer的导出数据库时,它只导出数据,而我的BLOB却丢失了!在我的一个表中有很多我也想导出的图像文件。
我想知道我是否真的需要使用oracle exp imp工具;
http://docs.oracle.com/cd/B28359_01/server.111/b28319/exp_imp.htm#i1004777
有什么想法吗?
发布于 2014-04-02 17:57:07
From the documentation
format :选择要卸载的数据所需的输出格式。根据所选的格式,可能会出现其他选项。例如,对于xls (Microsoft Excel文件),可以为数据和SELECT语句指定工作表名称。
对于CLOB数据,仅当格式为loader (SQL*Loader)或pdf (PDF)时才支持导出。某些导出类型仅导出后跟省略号(...)的字符串的子集。
它没有显式地引用BLOB,但是如果CLOB只能作为装载器或pdf导出,那么BLOB也有这个限制是有道理的。如果您想在另一个模式或数据库中重新创建此数据,SQL*Loader格式似乎是一个很好的选择。
您希望insert语句是什么样子的?你必须有一个包含二进制值的文本文字,这本身就是一个问题,但你也会被限制在4k --许多图像文件可能会超过4k。对于CLOB,它可能会给出字符串中的前4903个字符,后面跟着一个省略号,但我不确定;对于BLOB,即使这样也没有任何意义。
如果您想要在数据库之间传输数据,您应该考虑data pump export/import,或者如果您(或您的客户端)受到服务器访问的限制,那么您可以退回到legacy export/import。两者都支持LOB。数据泵是更好的选择,如果可能的话,应该优先使用。唯一的缺点是转储文件被写入数据库服务器,并且在某些组织中访问它们(或对写入的directory对象的权限)可能是有问题的。
发布于 2014-04-02 18:04:58
任何LOB都不能作为普通数据直接插入(导出/导入)。您必须编写一个place/SQL块来从db中获取blob,并将其写入is。看看这个链接,这就是你到底是怎么做的。
http://www.dba-oracle.com/t_writing_blob_clob_os_file.htm干杯mate V
https://stackoverflow.com/questions/22807316
复制相似问题