#ダンプファイルのExport時にファイル名に自動で日付時刻をつけたいとき
今回はYYYYMMDD_TEST_hhmmss.DMPという名称のDMPを取得する想定です。
##まず日付
環境変数dateから数字を取得する。
コマンドプロンプト上でdate変数の値を取得してみる。
C:\>echo %date%
2015/04/16
上記の通りdate変数はスラッシュを含め10文字であるので、取得方法は下記のように取得できる。
YYYY:date変数の最後尾から10文字より4文字分
MM:date変数の最後尾から5文字より2文字分
DD:date変数の最後尾から2文字より2文字分
また、変数Aの最後尾よりm文字目からn文字分値を取得するには
%V:~-m,n%
と書く。
つまり、日付をYYYYMMDDの形式で取り出す場合、
%date:~-10,4%%date:~-5,2%%date:~-2,2%
と書けば良い。
##次に時刻
今度はtime変数から数字を取得する。
コマンドプロンプト上でtime変数から値を取得してみる。
C:\>echo %time%
16:21:14.10
time変数はdate変数と違い、注意が必要である。
####1時~9時までの場合、先頭文字に半角スペースが入ってしまう。
そこで、一旦time変数の先頭文字を0埋めして一時変数に置き換えてから値を取得することにする。
C:\>set time2=%time: =0%
time2変数からの取り出し方は下記の通り。
hh:time2変数の先頭文字より2文字分
mm:time2変数の先頭から3文字目より2文字分
ss:time2変数の先頭から6文字より2文字分
また、変数Aの先頭よりm文字目からn文字分値を取得するには
%V:~m,n%
と書く。
つまり、時刻をhhmmssの形式で取り出す場合、
%time2:~0,2%%time2:~3,2%%time2:~6,2%
※前から位置を指定しているので、位置は0はじまり。
と書けば良い。
##やっとダンプファイルのExport
下準備が整ったので、DMPのExportを行う。
YYYYMMDD_TEST_hhmmss.dmpというファイル名のDMPのExport文は下記の通り。
C:\> exp hoge/fuga@hogefugadb file=%date:~-10,4%%date:~-5,2%%date:~-2,2%_TEST_%time2:~0,2%%time2:~3,2%%time2:~6,2%.dmp
※Exportされたダンプファイル名は20150417_TEST_201050.dmpのような名称になる。
(´-`).oO(DatapumpのExport方法はおいおい…)