SQLの窓

2010年06月14日


VBScript : ADO経由の一時PL/SQL でエクスポートを実行する(Data Pump Export)

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>




タグ:Oracle PL/SQL
posted by lightbox at 2010-06-14 20:36 | VBS + ADO | このブログの読者になる | 更新情報をチェックする
container 終わり



フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり