[SPSS Modeler] Modeler Batch実行時のDBエラーについて
clemb.exeを実行した時に以下のようなエラーが出た場合の対処方法です。
Error example:
E3008: 28000[][IBM SPSS][ODBC Oracle Wire Protocol driver][Oracle]ORA-01017: ユーザー名/パスワードが無効です。ログオンは拒否されました。
E3318: データ ソース spss;UID=spssuser への接続は失敗しました。
E3008: 28000[][IBM SPSS][ODBC Oracle Wire Protocol driver][Oracle]ORA-01017: ユーザー名/パスワードが無効です。ログオンは拒否されました。
E3318: データ ソース spss;UID=spssuser への接続は失敗しました。
DBへアクセスするためのパスワードが指定されてない場合に出力されます。
対応方法は以下の通りです。
前回お伝えしている通り、Modeler Batchの基本コマンドは以下となります。
clemb.exe -stream STREAMNAME -username USERNAME -password PASSWORD P”DATE=yyyy-mm-dd” -log PATH -execute
clemb.exe -stream STREAMNAME -username USERNAME -password PASSWORD P”DATE=yyyy-mm-dd” -log PATH -execute
ストリームに一番最初に呼ばれるDBノードに対してパラメータを渡してあげる必要があります。
-P"NodeName:TYPE.PROPERTY"
-P"NodeName:TYPE.PROPERTY"
説明
-p :パラメータを渡す際の引数
NodeName :ノードの名前です。ノードのプロパティの注釈タブから・自動か・ユーザー設定で指定しているもの
TYPE :ノードの種類です。入力-データベースならdabase、エクスポート-データベースならdatabaseexport。マニュアルに記載されてます。マニュアルは英語版を確認した方が正確です。
PROPERTY :ここでは、datasource={DNS名,ユーザ名,パスワード,false}を使います。ユーザ名、パスワードはDBのものです。
-p :パラメータを渡す際の引数
NodeName :ノードの名前です。ノードのプロパティの注釈タブから・自動か・ユーザー設定で指定しているもの
TYPE :ノードの種類です。入力-データベースならdabase、エクスポート-データベースならdatabaseexport。マニュアルに記載されてます。マニュアルは英語版を確認した方が正確です。
PROPERTY :ここでは、datasource={DNS名,ユーザ名,パスワード,false}を使います。ユーザ名、パスワードはDBのものです。
まとめると、コマンドは以下のようになります。
clemb.exe -stream STREAMNAME -username USERNAME -password PASSWORD -P”DATE=yyyy-mm-dd” -P"NodeName:databaseexport.datasource={spss,spssuser,password,false}" -log PATH -execute
clemb.exe -stream STREAMNAME -username USERNAME -password PASSWORD -P”DATE=yyyy-mm-dd” -P"NodeName:databaseexport.datasource={spss,spssuser,password,false}" -log PATH -execute