簡體   English   中英

DBMS_DATAPUMP API 從不同模式導出/導入表

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM