PL/SQL のユーティリティを使用すると、VB.net を通してパラメータを カスタマイズ可能なエクスポートアプリケーションを作成できます。 結果を知る為のパラメータは ParameterDirection.Output で出力のみで 取得しています。正常終了すると、"COMPLETED" という文字列が返ります。 ( 既にファイルがある場合は、"例外発生" が返ります。) 各プロシージャの詳細は Oracle ドキュメント : DBMS_DATAPUMP
DECLARE J_HANDLE NUMBER; /**********************************************************/ /* 処理開始 */ /**********************************************************/ BEGIN /***************************/ /* OPEN */ /***************************/ J_HANDLE := DBMS_DATAPUMP.OPEN( 'EXPORT' ,'TABLE' ,NULL ,NULL ,'COMPATIBLE' ,DBMS_DATAPUMP.KU$_COMPRESS_METADATA ); /***************************/ /* 出力ファイル */ /***************************/ DBMS_DATAPUMP.ADD_FILE( J_HANDLE ,'MY_TABLE_BACKUP.DMP' ,'MYDIR' ,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 ); /***************************/ /* 開始 */ /***************************/ 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); :J_STS := '例外発生'; END;
' キャラクタセット Dim SJIS_Enc As Encoding = Encoding.GetEncoding(932) ' 読み込み用 ' plsql.sql は、改行コードを LF のみにして下さい Dim ReadFile As StreamReader = New StreamReader( "plsql.sql", SJIS_Enc ) ' SHIFT_JIS で読み込み Dim SqlText As String = ReadFile.ReadToEnd() ReadFile.Close() Dim myCommand As New OracleCommand() myCommand.Connection = myCon Dim myParam1 As OracleParameter ' ******************************************* ' プロシージャの実行 ' ******************************************* ' 実行タイプ( SQLとして実行 ) myCommand.CommandType = CommandType.Text ' プロシージャ名 myCommand.CommandText = SqlText ' パラメータクリア myCommand.Parameters.Clear() ' 内容を取得する変数用パラメータ( OUT なので、Direction プロパティにセット ) myParam1 = myCommand.Parameters.Add("J_STS", OracleType.Varchar) myParam1.Direction = ParameterDirection.Output myParam1.Size = 50 ' 長さ Try ' 結果を受け取り、後で処理する myCommand.ExecuteNonQuery() Catch ex As Exception myCon.Close() Console.WriteLine(ex.Message) Return End Try Console.WriteLine(myParam1.Value)
関連する記事 VB.net : 一時PL/SQL 内の変数をプログラムでやり取りする
|
【VB.NET : データベースの最新記事】
- VB.net : GetSchema メソッドでデータベース内のテーブル一覧と指定したテーブルの列名一覧を取得する
- VB.net : ListView に DB から読み込んだデータをセットする
- VB.net : 一時PL/SQL 内の変数をプログラムでやり取りする
- VB.net : PL/SQL の OUT パラメータから実行結果を取得する
- VB.net : ODBC + MySQL で CSV をインポート( クラス化サンプル )
- VB.net : CSVによるインポート用ファイルの作成( つまりエクスポート )
- VB.net : insert 構文によるインポート用ファイルの作成( つまりエクスポート )
- VB.net 2008 : System.Data.Odbc データ取得(SELECT)処理( MySQL 5.1 )
- VB.net 2008 : System.Data.Odbc 更新処理( MySQL 5.1 )
- VB.net 2008 : System.Data.Odbc 接続テスト( MySQL 5.1 )
- VB.net : Oracle の行を返さない SQL の実行