首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Oracle SQL*Plus 快速匯出某使用者所有資料表腳本

     編輯:Oracle 資料庫相關知識

需求

以特定使用者登入後,一次產生該使用者擁有所有資料表的 Export 批次指令檔。

SQL*Plus 腳本

SET FEEDBACK OFF;
SET PAGESIZE 0;
SET HEADING OFF;
SET VERIFY OFF;
SET LINESIZE 200;
SET TRIMSPOOL ON;
SPOOL c:\export_tables.bat;

SELECT 'EXP username/password@yourdb TABLES=' || table_name || 
       ' FILE=' || table_name || '.dmp TRIGGERS=N'
FROM user_tables;

SPOOL OFF;
SET FEEDBACK ON;
SET PAGESIZE 9999;
SET HEADING ON;
SET VERIFY ON;
EXIT

後處理與執行

  1. 開啟產生的 c:\export_tables.bat。
  2. 刪除第一行(SPOOL 指令殘留)與最後一行(EXIT 指令)。
  3. 儲存後直接執行該批次檔,即可逐表匯出所有資料表。

參數說明

  • TRIGGERS=N:不匯出觸發程序(可依需求調整)。
  • 檔名採用 table_name.dmp,便於識別與後續匯入。
  • 若資料表眾多,建議加入 BUFFER、RECORDLENGTH 等參數優化效能。

小結

善用 SQL*Plus 報表格式化功能(SET PAGESIZE 0 HEADING OFF)動態產生作業腳本,是 DBA 自動化運維的常用技巧。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved