お世話になっております。
現在PowerShellから
sqlファイルに定義されているSELECT文からTSVファイルを出力するpgを作成中です。
PowerShell
1$DBSERVER = "aaaa" 2$DB = "bbbb" 3$ID = "xxxx" 4$PASSWORD = "yyyy" 5$SQLFILE = "C:xxx\yyy\zzz.sql" 6$TSV = "C:aaa\bbb\ccc\ddd.tsv" 7SQLCMD -S $DBSERVER -U $ID -P $PASSWORD -d $DB -i $SQLFILE -s `"`t`" -W -h -1 -u -o $TSV 8$errorNo = $LASTEXITCODE 9switch($errorNo) { 10 0{'''成功したとログを書き込む''' break;} 11 1{'''失敗したとログを書き込む''' break;} 12}
SQLCMDで数パターンわざとエラーを起こしてみたのですが、
現状0の正常終了か1の異常終了しか確認できておりません。
例えば、
・指定したSQLファイルが存在しない。
・実装後、DBの列定義が変わってSQLが使い物にならなくなった
・実装後、PASSWORDが変わった(ハードコードが原因ですが、、)
・DBに何かしら障害が発生しておりログインができなかった
上記やその他エラーとなる可能性があると思うのですが、
(その他エラーでこういう可能性考慮してる?といったご指摘もお待ちしております!)
このケースを種別分けしてエラー発生時に原因をより詳細に把握したいと考えております。
少々検索して調べはしたものの理解ができず、、
①そもそもSQLCMDはLASTEXITCODEで0か1以外を返すのか
②SQLファイルでエラー番号を指定して返す実装にするのか、そもそもできるのか。
まとめとして、
「PowerShellのSQLCMDで実行した際のLASTEXITCODEで0,1以外の数値を定義して出す方法が無いか」が
わかりません。ご教授をお願いできればと思います。
何卒よろしくお願い致します。

回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/20 06:34
2019/02/20 07:07