| <JOB>
<OBJECT id="Fso" progid="Scripting.FileSystemObject" />
<OBJECT id="OraSession" progid="OracleInProcServer.XOraSession" />
<REFERENCE guid="F2D4ED20-FFD3-101A-ADF2-04021C007002" />
<SCRIPT language=VBScript>
Dim OraDatabase,OraDynaset
' ***********************************************************
' 処理開始
' ***********************************************************
' GUI
if vbCancel = MsgBox( "処理を開始しますか? ", vbOKCancel , "サンプル" ) then
Wscript.Echo "キャンセルされました"
Wscript.Quit
end if
' REFERENCE 要素定義の為可能な定数参照
Wscript.Echo "ORADB_DEFAULT = " & ORADB_DEFAULT
Wscript.Echo "ORADB_ORAMODE = " & ORADB_ORAMODE
Wscript.Echo "ORADB_NOWAIT = " & ORADB_NOWAIT
Wscript.Echo "ORADB_NO_REFETCH = " & ORADB_NO_REFETCH
Wscript.Echo "ORADB_NONBLK = " & ORADB_NONBLK
Wscript.Echo "ORADB_ENLIST_IN_MTS = " & ORADB_ENLIST_IN_MTS
Wscript.Echo "ORADB_ENLIST_FOR_CALLBACK = " & ORADB_ENLIST_FOR_CALLBACK
' "PC名/サービス", "ユーザ/パスワード"
Set OraDatabase = OraSession.OpenDatabase("night/xe", "LB/LB", ORADB_DEFAULT)
Call OraDatabase.LastServerErrReset
' DBMS_OUTPUT を使用可能にする
Query = "BEGIN DBMS_OUTPUT.ENABLE(); END;"
Call OraDatabase.ExecuteSQL( Query )
' CrLf では動かないので、Lf に変換して実行
Query = REplace(RegTrim(GetResource("myTextData")),vbCrLf,vbLf)
Call OraDatabase.ExecuteSQL( Query )
' DBMS_OUTPUT.GET_LINE の仕様に基づいてパラメータの設定
Call OraDatabase.Parameters.Add( "PARAM", "", ORAPARM_OUTPUT )
OraDatabase.Parameters("PARAM").ServerType = ORATYPE_VARCHAR2
Call OraDatabase.Parameters.Add("STATUS", 0, ORAPARM_OUTPUT )
OraDatabase.Parameters("STATUS").ServerType = ORATYPE_NUMBER
' 結果を読みだす為のメソッドを実行
Query = "BEGIN DBMS_OUTPUT.GET_LINE(:PARAM,:STATUS); END;"
Call OraDatabase.ExecuteSQL( Query )
' メモリ上のデータを読み出し
Do while OraDatabase.Parameters("STATUS").Value = 0
' 表示
Wscript.Echo OraDatabase.Parameters("PARAM").Value
' 繰り返し
OraDatabase.ExecuteSQL( Query )
Loop
' パラメータの削除
Call OraDatabase.Parameters.Remove("STATUS")
Call OraDatabase.Parameters.Remove("PARAM")
' **********************************************************
' オブジェクト解放
' **********************************************************
Set OraDatabase = Nothing
Wscript.Echo "処理が終了しました"
' ***********************************************************
' 文字列前後の漢字スペースを含むホワイトスペースの削除
' ***********************************************************
Function RegTrim( strValue )
Dim regEx, str
Set regEx = New RegExp
regEx.IgnoreCase = True
regEx.Pattern = "^[ \s]+"
str = regEx.Replace( strValue, "" )
regEx.Pattern = "[ \s]+$"
RegTrim = regEx.Replace( str, "" )
End Function
</SCRIPT>
<COMMENT>
************************************************************
ソース内テキストデータ
************************************************************
</COMMENT>
<RESOURCE id="myTextData">
<![CDATA[
DECLARE
WK_KEY VARCHAR2(4) := '0001';
WK_NAME VARCHAR2(50);
BEGIN
SELECT 氏名 INTO WK_NAME
FROM 社員マスタ
where 社員コード = WK_KEY;
DBMS_OUTPUT.PUT_LINE(WK_NAME);
END;
]]>
</RESOURCE>
</JOB>
| |