ADO では、一時PL/SQL 内の結果を取得する事ができませんが、OO4O を使用すると可能になります。 関連する記事 OO4O : 一時PL/SQLを実行して、DBMS_OUTPUT の結果を取得する PL/SQL : OUT タイプのパラメータを持つストアードプロシージャの処理 PL/SQL で エクスポート
<JOB>
<COMMENT>
*******************************
■ Data Pump Export
*******************************
</COMMENT>
<OBJECT id="Cn" progid="ADODB.Connection" />
<SCRIPT language=VBScript>
' *******************************
' 処理開始
' *******************************
' ソース内テキストデータの取得
strPLSQL = RegTrim(GetResource("myTextData"))
' GUI
if vbCancel = MsgBox( "実行しますか? ", vbOKCancel , "Data Pump Export" ) then
Wscript.Echo "キャンセルされました"
end if
strDriver = "{Microsoft ODBC for Oracle}"
strServer = "night/xe"
strUser = "lightbox"
strPass = "lightbox"
ConnectionString = _
"Provider=MSDASQL" & _
";Driver=" & strDriver & _
";Server=" & strServer & _
";UID=" & strUser & _
";PWD=" & strPass & _
";"
on error resume next
Cn.Open ConnectionString
if Err.Number <> 0 then
WScript.Echo Err.Description
Wscript.Quit
end if
on error goto 0
Cn.Execute( strPLSQL )
Cn.Close
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
/*******************************/
/* 変数の定義 */
/*******************************/
J_HANDLE NUMBER;
J_STS VARCHAR2(20);
/*******************************/
/* 処理開始 */
/*******************************/
BEGIN
DBMS_OUTPUT.PUT_LINE('デバッグ:開始');
/***************************/
/* OPEN */
/***************************/
J_HANDLE := DBMS_DATAPUMP.OPEN(
'EXPORT'
,'TABLE'
,NULL
,NULL
,'COMPATIBLE'
,DBMS_DATAPUMP.KU$_COMPRESS_METADATA
);
/***************************/
/* 出力ファイル */
/***************************/
DBMS_DATAPUMP.ADD_FILE(
J_HANDLE
,'EXP20100614.DMP'
,'R205'
,NULL
,DBMS_DATAPUMP.KU$_FILE_TYPE_DUMP_FILE
);
/***************************/
/* SQL 式で スキーマを指定 */
/***************************/
DBMS_DATAPUMP.METADATA_FILTER(
J_HANDLE
,'SCHEMA_EXPR'
,'IN (''LIGHTBOX'')'
);
/***************************/
/* SQL 式で 表を指定 */
/***************************/
DBMS_DATAPUMP.METADATA_FILTER(
J_HANDLE
,'NAME_EXPR'
,'IN (''商品マスタ'')'
);
/***************************/
/* データを出力しない */
/***************************/
DBMS_DATAPUMP.DATA_FILTER (
J_HANDLE
,'INCLUDE_ROWS'
,0 /* 1 で出力 */
);
/***************************/
/* 開始 */
/***************************/
DBMS_DATAPUMP.START_JOB(
J_HANDLE
,0
);
/***************************/
/* JOB 終了まで待機 */
/***************************/
DBMS_DATAPUMP.WAIT_FOR_JOB(
J_HANDLE
,J_STS
);
/***************************/
/* 終了ステータスの表示 */
/***************************/
DBMS_OUTPUT.PUT_LINE('処理終了:'||J_STS);
/*******************************/
/* 一番外側のブロックの例外処理 */
/*******************************/
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('例外発生:'||SQLCODE||':'||SQLERRM);
END;
]]>
</RESOURCE>
</JOB>
VBScriptドキュメント
|
|
【VBS + ADOの最新記事】
- VBScript : Oracle Database Express Edition 11g Release 2 に MDB(販売管理C) のデータをインポートする
- VBScript : PostgreSQL(9.3.4) に MDB(販売管理C) のデータをインポートする
- VBscript : 新しい Mictrosoft Access(2007以降)へ、古い MDB からデータを移行する
- VBScript : 古い Access2003 までのデータベース作成と新しい Access2007 以降のデータベース作成
- VBScript : ADO で Excel2007(Excel 2010、Excel 2013) にアクセスする( シートをテーブルとして読み込む )
- VBScript : Micrsoft Access 経由で、SQLServer のテーブルのデータを Excel にエクスポートする方法
- VBScript : ADO を使用して、MDB(Access2003) のデータを SQLite ODBC Driver で sqlite3(UTF-8) を作成
- VBScript +ADO / MDB から SQLite3 へ ODBC ドライバを使ってフィールドオブジェクトを使用した同一フォーマットのテーブル間のデータコピー(データベースは自動的に作成されま..
【VBScript関連のカテゴリ】






