ソース掲示板




すべてから検索

キーワード   条件 表示 現行ログ 過去ログ トピックス 名前 本文

  メンテナンス 前画面に戻る

対象スレッド 件名: PL/SQL で エクスポート
名前: lightbox
処理選択
パスワード

件名 PL/SQL で エクスポート
名前 lightbox
コメント
@DIV
基本的に Data Pump Exportユーティリティと同じものです
ですから、Data Pump Export の仕様で、既に存在するファイルに書き出そうとするとエラーになります

@C:red(※ 最後の J_STS は、COMPLETED と表示されます)

http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/appdev.102/B19245-02/d_datpmp.htm(各プロシージャの詳細は Oracle ドキュメント : DBMS_DATAPUMP)
@END

@DIV
PROCEDURE DATAPUMP

@C:green(/**********************************************************/
/* 変数の定義 */
/**********************************************************/)
AS
	J_HANDLE NUMBER;
	J_STS VARCHAR2(20);
@C:green(/**********************************************************/
/* 処理開始 */
/**********************************************************/)
BEGIN
	DBMS_OUTPUT.PUT_LINE('デバッグ:開始');

	@C:green(/***************************/
	/* OPEN */
	/***************************/)
	J_HANDLE := DBMS_DATAPUMP.OPEN(
		'EXPORT'
		,'TABLE'
		,NULL
		,NULL
		,'COMPATIBLE'
		,DBMS_DATAPUMP.KU$_COMPRESS_METADATA
	);

	@C:green(/***************************/
	/* 出力ファイル */
	/***************************/)
	DBMS_DATAPUMP.ADD_FILE(
		J_HANDLE
		,'TABLE_BACKUP_TEST.ORA'
		,'MYDIR'
		,NULL
		,DBMS_DATAPUMP.KU$_FILE_TYPE_DUMP_FILE
	);

	@C:green(/***************************/
	/* SQL 式で スキーマを指定 */
	/***************************/)
	DBMS_DATAPUMP.METADATA_FILTER(
		J_HANDLE
		,'SCHEMA_EXPR'
		,'IN (''ORA_01'')'
	);

	@C:green(/***************************/
	/* SQL 式で 表を指定 */
	/***************************/)
	DBMS_DATAPUMP.METADATA_FILTER(
		J_HANDLE
		,'NAME_EXPR'
		,'IN (''社員マスタ'',''商品マスタ'')'
	);

	@C:green(/***************************/
	/* データを出力しない */
	/***************************/)
	DBMS_DATAPUMP.DATA_FILTER (
		J_HANDLE
		,'INCLUDE_ROWS'
		,0
	);

	@C:green(/***************************/
	/* 開始 */
	/***************************/)
	DBMS_DATAPUMP.START_JOB(
		J_HANDLE
		,0
	);

	@C:green(/***************************/
	/* JOB 終了まで待機 */
	/***************************/)
	DBMS_DATAPUMP.WAIT_FOR_JOB(
		J_HANDLE
		,J_STS
	);

	@C:green(/***************************/
	/* 終了ステータスの表示 */
	/***************************/)
	DBMS_OUTPUT.PUT_LINE('処理終了:'||J_STS);

@C:green(/**********************************************************/
/* 一番外側のブロックの例外処理 */
/**********************************************************/)
EXCEPTION
	WHEN OTHERS THEN
		DBMS_OUTPUT.PUT_LINE('例外発生:'||SQLCODE||':'||SQLERRM);
END;
@END