我们从客户端获取* .dmp文件,其中包含一些包含索引和约束的屏蔽表数据。 我的确有这些表结构(包括索引和约束)。 我想使用'imp'命令导入Oracle10g中没有索引和约束(存在于.dmp文件中)的数据。
我知道'imp'命令。请帮我告诉我'imp'命令中可用的选项,只导入数据。
我尝试过使用 - rows = yes indices = no但这没有帮助。
答案 0 :(得分:9)
您应该能够指定indices = N和constraints = N。
欲了解更多信息:
%> imp help=y
这是一个链接,其中包含有关选项的一些好消息: Oracle imp information
答案 1 :(得分:4)
我假设您的帖子中已经有数据库中的表和辅助结构,并且您只想抑制错误消息。如果确实如此,您想要的选项是IGNORE=Y
。
Oracle文档可在线获取。你没有说你正在使用什么版本,但是当你使用IMP时我会说9i非常合适。 Find out more.。 (在以后的版本中,您应该检查DataPump)。
答案 2 :(得分:1)
使用show = y选项导入转储。这将从dmp文件创建/提取脚本。现在,您可以从日志中删除索引和约束脚本,并针对数据库执行。
在这里您可以看到很多与exp / data泵相关的示例。 http://www.acehints.com/p/site-map.html
答案 3 :(得分:1)
您需要禁用所有触发器,然后使用CONSTRAINTS = N参数导入数据。考虑使用约束,外键和触发器导入表G3E_COMPONENT:
SQL>alter table G3E_COMPONENT disable all triggers;
导入您的数据:
imp userid=USER/XXXXX@ORCL CONSTRAINTS=N DATA_ONLY=Y STATISTICS=NONE file=export.exp log=imp.log TABLES=G3E_COMPONENT
应该做的伎俩
答案 4 :(得分:0)
IMHO IMP无法阻止应用约束并触发被触发,ignore = y仅忽略出现的错误。也许datapump允许它,我不知道。
所以你必须:
答案 5 :(得分:0)
小心使用与您的数据库版本完全匹配的imp版本。我遇到了麻烦...
答案 6 :(得分:0)
Ignore=Y
。它将忽略创建错误,因为您已经拥有架构。