首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >导出文件中缺少Oracle、Blob数据

导出文件中缺少Oracle、Blob数据
EN

Stack Overflow用户
提问于 2014-04-02 17:37:02
回答 2查看 16.1K关注 0票数 6

我使用Oracle 11g,我正在尝试导出我的数据(只导出数据,不导出表创建脚本等)。因此客户可以将其导入到数据库中

当我使用Oracle Sql developer的导出数据库时,它只导出数据,而我的BLOB却丢失了!在我的一个表中有很多我也想导出的图像文件。

我想知道我是否真的需要使用oracle exp imp工具;

http://docs.oracle.com/cd/B28359_01/server.111/b28319/exp_imp.htm#i1004777

有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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对象的权限)可能是有问题的。

票数 6
EN

Stack Overflow用户

发布于 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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22807316

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档