ストアド実行エラーでメール送信サンプル

起動バッチサンプル

@echo off
cd /d %~dp0
del /f %~n0.log
set NLS_LANG=Japanese_Japan.JA16SJIS
set nowdt=%date:~-0,4%%date:~5,2%%date:~8,2%
::ストアドプロシージャ実行
echo (%date% %time%)———————————————- >> .\Log\%nowdt%.log
sqlplus  -s -l DATA/DATA.qwerasdf@*****/TMPDB:POOLED @trc_mkwktbl.sql >> .\Log\%nowdt%.log
set ret=%ERRORLEVEL%
:: 異常な時、メール送信をする VBScript を呼出し(引数2:メッセージ)
if %ret% GTR 0 (
cscript.exe mail_warning.vbs “””%nowdt%” “TRC_MKWKTBL で異常が発生しました。” >> .\mail\mail_%mutex%.log
)

 

 

VB.Script

Rem *————————————————————————-*
Rem * 異常通知メール送信                                                      *
Rem *                                                                         *
Rem *————————————————————————-*
Rem * 履歴                                                                    *
Rem * 2017/08/18 新規作成                                                     *
Rem *————————————————————————-*
Option Explicit

‘——————————
‘– 定数定義
‘——————————
‘メール情報
Const MAILTO = “Akihiko.Satou@********”
Const MAILCC = “”
Const MAILFROM = “Partner-ssmm-mes-syslog@sony.com”
Const SMTP = “*****.co.jp”
Const FOLDER = “\\****\C$\******”

‘——————————
‘– 引数
‘——————————
Dim sDate
sDate = Now
If WScript.Arguments.Count > 0 Then
sDate = WScript.Arguments.Item(0)
End If

Dim sMsg
sMsg = “”
If WScript.Arguments.Count > 1 Then
sMsg = WScript.Arguments.Item(1)
End If

‘——————————
‘– メール送信
‘——————————
Dim oMail
Set oMail = CreateObject(“CDO.Message”)

oMail.From = MAILFROM
oMail.To = MAILTO
oMail.Cc = MAILCC
oMail.Subject = “【TM予兆】 トレーサビリティ ワークテーブル作成 異常終了 ” & sDate
oMail.TextBody = “TM予兆からのお知らせです。” & vbCrLf _
& vbCrLf _
& “以下の処理でエラーが発生しました。” & vbCrLf _
& “状況を確認し、至急対応して下さい。” & vbCrLf _
& vbCrLf _
& “  処理概要: ” & “トレーサビリティ ワークテーブル作成” & vbCrLf _
& “  開始時刻: ” & sDate & vbCrLf _
& “  発生時刻: ” & Now & vbCrLf _
& “  障害概要: ” & Replace(sMsg, “\n”, vbCrLf & “       ”) & vbCrLf _
& vbCrLf _
& “—————————————————————-” & vbCrLf _
& “※ このメールは <” & FOLDER & “> の mail.vbs” & vbCrLf _
& ”   から送信されています。” & vbCrLf _
& “—————————————————————-” & vbCrLf

On Error Resume Next

oMail.TextBodyPart.Charset = “ISO-2022-JP”
oMail.Configuration.Fields.Item(“https://schemas.microsoft.com/cdo/configuration/sendusing”) = 2
oMail.Configuration.Fields.Item(“https://schemas.microsoft.com/cdo/configuration/smtpserver”) = SMTP
oMail.Configuration.Fields.Item(“https://schemas.microsoft.com/cdo/configuration/smtpserverport”) = 25
oMail.Configuration.Fields.Update
oMail.Send

If Err.Number <> 0 Then
Wscript.Echo oMail.TextBody
Wscript.Echo “メール送信でエラーが発生しました。” & vbCrLf & “  エラー番号:” & Err.Number & vbCrLf & “  エラー詳細:” & Err.Description
End If

‘——————————
‘– 開放
‘——————————
Set oMail = Nothing
sDate = “”
sMsg = “”

Wscript.Quit(Err.Number)