1

いくつかのパラメーター、より正確には名前と関連する番号でカスタマイズされた sqlldr コマンドを実行したいと考えています。今のところ、名前の繰り返ししかありませんが、それぞれを番号に関連付けたいと考えています。

@echo off
set ORACLE_PWD=orcl
set NLS_NUMERIC_CHARACTERS=.,
setlocal
echo "Run number " %1
For %%X in (region nation supplier customer part partsupp orders lineitem) do (
sqlldr userid='sys/%ORACLE_PWD% as sysdba' log=%%X%1.log control=%%X.ctl direct=true rows=<associated_number> multithreading=true
)

2 つのオプションがあります。別の数値の配列を使用するか (これが最も難しい場合があります)、次のようなテキスト ファイルを解析します。

region 25 (or region DELIMITER 25)  
nation 100
supplier 5000 

等々

次に、これらの値を vars に取得し、それらを sqlldr コマンドで使用して、ログ名と行数をカスタマイズします。

バッチ スクリプトの配列が悪夢であることは理解していますが、試していますが、うまくいきません。誰か助けてくれませんか?

4

1 に答える 1

3

これを保存すると:

region 25
nation 100
supplier 5000

たとえば、という名前のファイルでparams.txt、このスクリプトはファイルを読み取り、それに応じて値を置き換えます。

@echo off
set ORACLE_PWD=orcl
set NLS_NUMERIC_CHARACTERS=.,
setlocal
echo "Run number " %1
For /F "tokens=1,2" %%X in (params.txt) do (
sqlldr userid='sys/%ORACLE_PWD% as sysdba' log=%%X%1.log control=%%X.ctl direct=true rows=%%Y multithreading=true
)
于 2011-03-07T02:54:25.620 に答える