我希望使用DBMS_DATAPUMP API从多个模式导出导入表。例如user1.table1user2.table2user3.table 3我在一个参数中给出了表,就像一个用逗号分隔的列表。“user1.table1,user2.table2,user3.table3”之后,我将表列表存储在一个表中。然后,我在游标中读取表的内容,并使用循环在游标中遍历,并逐一给出模式和表名。
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。提前感谢
发布于 2022-08-16 07:28:17
-对于表格模式,只支持一个SCHEMA_EXPR过滤器。如果指定,则只能指定单个模式(例如,'IN (''SCOTT'')')。
DBMS_DATAPUMP.METADATA_FILTER(handle, 'SCHEMA_EXPR', 'IN('||vschemas||')');--您可以输入多个表名,但不超过4000个字符(文字限制),包括特殊字符。
DBMS_DATAPUMP.METADATA_FILTER(handle, 'NAME_EXPR', 'IN('||vtables||')', 'TABLE');https://stackoverflow.com/questions/71988685
复制相似问题