[英]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.