有没有办法从模式转储中导入模式的所有序列(使用exp full=y
生成)?我不想导入程序或表格,只想导入所有序列。
我想使用imp
命令。
答案 0 :(得分:3)
exp有它的局限性。 如果你想使用像exp / imp这样的解决方案,expdp是更好的选择。
如果目标只是复制序列,为什么不使用dbms_metadata来获取ddl:
SELECT DBMS_METADATA.GET_DDL('SEQUENCE', u.sequence_name, decode(u.sequence_owner,'SYS','',sequence_owner)) ddl
FROM all_sequences u where sequence_owner = 'SOE' order by sequence_owner, sequence_name;
答案 1 :(得分:2)
如果使用原始导入实用程序,则可以使用四种不同的模式:表格模式,用户模式,完整数据库模式和表空间模式。
它们中的每一个都会导入不同类型的对象,但它们不像新的数据泵导入那样可控,并且您无法准确选择要导入的类型。
请参阅文档here。
序列以用户和完整数据库模式导入,但也会导入许多其他对象类型,包括过程对象(过程,函数和包)。
我认为您必须使用文本editior打开dmp文件,并将Create Sequence语句复制粘贴到新的.sql文件中。您可以使用Perl,Ruby或shell脚本来简化这一过程,但不能仅使用imp来执行此操作。