日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

dbeaver导出建表语句_细致入微:如何使用数据泵导出表的部分列数据

發布時間:2024/4/13 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 dbeaver导出建表语句_细致入微:如何使用数据泵导出表的部分列数据 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

編者按

云和恩墨大講堂社群(本文底部有入群方式)里有人提出一個需求:一張表數據量很大,如何只導出其中一部分列?云和恩墨CTO、Oracle ACE總監、ACOUG核心專家楊廷琨老師使用了數據泵的方式,細致入微地解釋了過程并給出具體的代碼實現。數據和云(ID:OraNews)獨家發布,以饗讀者。

以下為正文

無論是老版本exp還是數據泵expdp,Oracle都提供了QUERY的功能,這使得查詢表中部分記錄的功能可以實現,但是QUERY只能過濾行,而不能過濾列,Oracle數據泵會讀取表中全部列的。

在12c中,Oracle為數據泵提供了VIEW功能,使得導出的時候可以根據視圖的定義來導出表中的數據:

SQL>select banner from v$version; BANNER--------------------------------------------------------------------------------OracleDatabase 18c Enterprise Edition Release 18.0.0.0.0 - Production SQL>CREATE TABLE T_TABLES AS SELECT * FROM ALL_TABLES;

?(左右滑動查看代碼部分,下同)

表已創建。

SQL>create view v_tables as select owner, table_name, tablespace_name from t_tableswhere owner not in ('SYS');

視圖已創建。

利用數據泵的VIEWS_AS_TABLES參數可以直接導出視圖對應的表數據:

C:\Users\yangt>expdpc##u1 directory=d_output dumpfile=t_tab_view views_as_tables=v_tables Export:Release 18.0.0.0.0 - Production on 星期二 2月 26 13:37:312019Version18.3.0.0.0 Copyright(c) 1982, 2018, Oracle and/or its affiliates. All rights reserved.口令:連接到: Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 -Production

?

警告: 連接到容器數據庫的根或種子時通常不需要 Oracle Data Pump 操作。

啟動 "C##U1"."SYS_EXPORT_TABLE_01": c##u1/******** directory=d_outputdumpfile=t_tab_view views_as_tables=v_tables處理對象類型 TABLE_EXPORT/VIEWS_AS_TABLES/TABLE_DATA處理對象類型 TABLE_EXPORT/VIEWS_AS_TABLES/TABLE. . 導出了"C##U1"."V_TABLES" 8.289 KB 71 行已成功加載/卸載了主表"C##U1"."SYS_EXPORT_TABLE_01"******************************************************************************C##U1.SYS_EXPORT_TABLE_01的轉儲文件集為: D:\TEMP\T_TAB_VIEW.DMP作業 "C##U1"."SYS_EXPORT_TABLE_01" 已于 星期二 2月 26 13:37:40 2019 elapsed 0 00:00:06 成功完成

雖然是通過視圖導出的,但是數據泵把它當作一個表來處理,因此這個dump文件是可以直接導入到數據庫中變成表的:

SQL>drop view v_tables;

視圖已刪除。

完成導入操作:

C:\Users\yangt>impdpc##u1 directory=d_output dumpfile=t_tab_view full=y Import:Release 18.0.0.0.0 - Production on 星期二 2月 26 14:33:022019Version18.3.0.0.0 Copyright(c) 1982, 2018, Oracle and/or its affiliates. All rights reserved.口令: 連接到: Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 -Production

警告: 連接到容器數據庫的根或種子時通常不需要 Oracle Data Pump 操作。

已成功加載/卸載了主表"C##U1"."SYS_IMPORT_FULL_01"啟動 "C##U1"."SYS_IMPORT_FULL_01": c##u1/******** directory=d_outputdumpfile=t_tab_view full=y處理對象類型 TABLE_EXPORT/VIEWS_AS_TABLES/TABLE處理對象類型 TABLE_EXPORT/VIEWS_AS_TABLES/TABLE_DATA. . 導入了"C##U1"."V_TABLES" 8.289 KB 71 行作業 "C##U1"."SYS_IMPORT_FULL_01" 已于 星期二 2月 26 14:33:07 2019 elapsed 0 00:00:02 成功完成

查詢表數據:

SQL>select count(*) from v_tables; COUNT(*)---------- 71 SQL>select table_name, tablespace_name from user_tables where table_name ='V_TABLES'; TABLE_NAME TABLESPACE_NAME------------------------------------------------------------V_TABLES USERS

這個功能是12c的特新特,如果是12c之前的版本,可以考慮使用ORACLE_DATAPUMP類型的外部表來實現:

SQL>create table t_external_tables (owner, table_name, tablespace_name)organization external 2 (type oracle_datapump 3 default directory d_output 4 location ('external_table.dp')) 5 asselect owner, table_name, tablespace_name from t_tables where owner not in('SYS');

表已創建。

通過將外部表導出的 external_table.dp 文件拷貝到目標環境對應的目錄下,根據上面的定義重建外部表,注意目標環境創建過程由于已經拷貝了導出的數據,因此語法截至到 location 語句就結束了,不要再包含 as select 部分。

SQL>create table t_target_ext_tab (owner varchar2(30), table_name varchar2(128),tablespace_name varchar2(30)) 2 organization external 3 (type oracle_datapump 4 default directory d_output 5 location ('external_table.dp'));

表已創建。

SQL>select count(*) from t_target_ext_tab; COUNT(*)---------- 71 SQL>col table_name for a30SQL>select * from t_target_ext_tab where owner = 'SYSTEM'; OWNER TABLE_NAME TABLESPACE_NAME------------------------------------------------------------ ------------------------------SYSTEM OL$SYSTEM OL$HINTSSYSTEM OL$NODESSYSTEM HELP SYSTEM

所以對于11g和10g的版本,也可以不通過新建表,然后拷貝數據的方式來實現數據的導出和轉移。但是如果是9i及以前的版本,那么要不然通過建表然后exp導出的方式,要不然自己寫程序實現數據的導出吧。

相關推薦

楊廷琨:探究文檔中找不到的12c并行索引掃描新特性

資源下載

關注公眾號:數據和云(OraNews)回復關鍵字獲取

2018DTCC?,?數據庫大會PPT

2018DTC,2018 DTC 大會 PPT

ENMOBK,《Oracle性能優化與診斷案例》

DBALIFE?,“DBA 的一天”海報

DBA04?,DBA 手記4 電子書

122ARCH?,Oracle 12.2體系結構圖

2018OOW?,Oracle OpenWorld 資料

產品推薦

云和恩墨Bethune Pro企業版,集監控、巡檢、安全于一身,你的專屬數據庫實時監控和智能巡檢平臺,漂亮的不像實力派,你值得擁有!

云和恩墨zData一體機現已發布超融合版本和精簡版,支持各種簡化場景部署,零數據丟失備份一體機ZDBM也已發布,歡迎關注。

超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生

總結

以上是生活随笔為你收集整理的dbeaver导出建表语句_细致入微:如何使用数据泵导出表的部分列数据的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。