首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 匯出檔案自動加入時間戳記的兩種實用技巧

     編輯:Oracle 資料庫基礎

方法一:DOS 環境變數直接引用

在 Windows 命令列下,系統環境變數 %date% 可直接取得日期字串。經測試,格式為 YYYY-MM-DD 星期X,需截取前 10 碼:

C:\>echo %date%
2006-04-24 星期一
C:\>echo %date:~0,10%
2006-04-24

直接套用至 exp 指令:

exp userid=eygle/eygle file=d:\eygle%date:~0,10%.dmp log=d:\eygle%date:~0,10%.log

注意:Windows NT/2000/XP 日期格式可能不同,若失敗嘗試用雙引號包裹 "%date%" 或改用方法二。

方法二:SQL*Plus 腳本動態產生(跨平台通用)

透過 SQL 從資料庫取得標準化時間戳,再由 HOST 呼叫外部命令,完全跨平台。

步驟 1:建立 doexp.sql

COLUMN today NEW_VALUE dt
SELECT TO_CHAR(SYSDATE, 'DDMMYYYY') today FROM DUAL;
HOST exp userid=eygle/eygle tables=emp file=exp_prod_&dt..exp log=exp_prod_&dt..log
EXIT

關鍵點:COLUMN ... NEW_VALUE 將查詢結果存入替換變數 &dt,HOST 執行 OS 命令,雙點號 .. 區隔變數與副檔名。

步驟 2:建立 start.bat 呼叫腳本

@ECHO OFF
SET ORACLE_SID=eygle
SQLPLUS eygle/eygle @doexp

執行結果範例

E:\Itpub\ItpubTrain\Exp2>DIR
...
2003-10-07  15:12  4,096 exp_prod_07102003.exp
2003-10-07  15:12    335 exp_prod_07102003.log
2003-08-26  15:18  4,096 exp_prod_26082003.exp
2003-08-26  15:18    312 exp_prod_26082003.log
...

檔名自動包含 DDMMYYYY 格式日期,完美支援多版本保留與自動化排程。

進階擴充建議

  • 時間格式可改為 YYYYMMDD_HH24MISS 精確到秒,避免同天多次執行覆蓋。
  • 結合 Windows 排程器或 Linux cron 實現全自動化備份。
  • 搭配 COMPRESS=Y、CONSISTENT=Y 等參數優化匯出品質。
  • Data Pump (expdp) 可直接在參數檔使用 %U 自動分割檔案,並支援 FILE_NAME_CONVERT 類似功能。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved