![](/img/trans.png)
[英]Cloning a schema in Oracle 19c with DBMS_DATAPUMP leaves index organized tables empty
[英]DBMS_DATAPUMP API export/import tables from different schemas
我想使用 DBMS_DATAPUMP API 从多个模式中导出导入表。 EG user1.table1 user2.table2 user3.table3 我在一个参数中给出了表格,就像一个用逗号分隔的列表。 'user1.table1,user2.table2,user3.table3' 之后我将表列表存储在一个表中。 然后我在 cursor 中用 LOOP 读取了 cursor 表的内容和 go 的内容,并一一给出了模式和表名。
LOOP
dbms_datapump.metadata_filter(handle => h1, name => 'NAME_EXPR', value => 'IN('table1'));
dbms_datapump.metadata_filter(handle => h1, name => 'SCHEMA_LIST', value => 'IN('user1'));
END LOOP.
第一个表已成功添加到 dbms_datapump 作业,但第二个表退出并出现错误。
ORA-39071: SCHEMA_LIST 的值格式错误。 ORA-00936: 缺少表达式
我厌倦了寻找如何使用来自不同模式的 DBMS_DATAPUMP API 表进行 exp/imp 的解决方案,但我找到了任何示例。 我发现的示例仅显示您是否来自一个模式的 exp/imp。 提前致谢
--对于表格模式,仅支持单个 SCHEMA_EXPR 过滤器。 如果指定,它只能指定一个模式(例如,'IN (''SCOTT'')')。
DBMS_DATAPUMP.METADATA_FILTER(handle, 'SCHEMA_EXPR', 'IN('||vschemas||')');
-- 可以输入多个表名,但不超过 4000 个字符(字面限制),包括特殊字符。
DBMS_DATAPUMP.METADATA_FILTER(handle, 'NAME_EXPR', 'IN('||vtables||')', 'TABLE');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.