SYSCS_UTIL.SYSCS_IMPORT_TABLE_LOBS_FROM_EXTFILEシステム手続きを使って情報を表にインポートできます。このときLOBの情報は別ファイルに置かれます。
主インポートファイルには、LOBの位置への参照とそれ以外の情報のすべてが置かれます。
構文
SYSCS_UTIL.SYSCS_IMPORT_TABLE_LOBS_FROM_EXTFILE (
IN SCHEMANAME VARCHAR(128),
IN TABLENAME VARCHAR(128),
IN FILENAME VARCHAR(32672),
IN COLUMNDELIMITER CHAR(1),
IN CHARACTERDELIMITER CHAR(1),
IN CODESET VARCHAR(128),
IN REPLACE SMALLINT)
)
インポートユーティリティは、LOBの情報が置かれた場所への参照を主インポートファイルから取得します。
- SCHEMANAME
- 表のスキーマを指定します。既定のスキーマを指定する場合、NULLとすることができます。SCHEMANAMEパラメータはVARCHAR (128)型の入力値を取る引数です。
- TABLENAME
- 情報がインポートされる表の名前を指定します。表はシステム表や一時表であってはなりません。文字列は表名と完全に一致していなければなりません。NULLを指定した場合エラーとなりあmす。TABLENAMEパラメータはVARCHAR (128)型の入力値を取る引数です。
- FILENAME
- インポートする情報のあるファイルの名前を指定します。パスが省略されている場合、現在のディレクトリが使われます。ネットワークサーバを使っている場合、指定するファイルの位置はサーバ側の位置です。NULLを指定するとエラーとなります。FILENAMEパラメータは(32672)型の入力値を取る引数です。
- COLUMNDELIMITER
- 列のデリミタを指定します。指定した文字はコンマの代わりに列の終わりを表します。既定値のコンマを指定するために、NULLとすることもできます。COLUMNDELIMITERパラメータはCHAR (1)型の入力値を取る引数です。
- CHARACTERDELIMITER
- 文字のデリミタを指定します。指定された文字は二重引用符の代わりに文字列を囲うために用いられます。既定値の二重引用符を指定するために、NULLとすることもできます。CHARACTERDELIMITERパラメータはCHAR (1)型の入力値をとる引数です。
- CODESET
- 入力ファイルの情報のコードセットを指定します。コードセットの名前はJavaにて利用可能な文字エンコーディングセットのうちのひとつである必要があります。情報は指定されたコードセットからデータベースのコードセット(UTF-8)に変換されます。実行中のJVMと同じコードセットを指定するために、NULLとすることもできます。CODESETパラメータはVARCHAR (128)型の入力値を取る引数です。
- REPLACE
- 0以外の値が指定された場合、REPLACEモードでインポートが行われます。一方、0が指定された場合、INSERTモードでインポートが行われます。REPLACEモードでは表を切り捨てて全情報が削除されたのちに、情報がインポートされます。表の定義や索引の定義は変わりません。既存表へは、REPLACEモードでのみ情報をインポートできます。INSERTモードでは、既存の表の情報はそのままにして、インポートした情報が表へ追加されます。NULLを指定するとエラーとなります。REPLACEパラメータはSMALLINTデータ型の値を入力にとる引数です。
スキーマ、表、列名をデリミトされない識別子で作成した場合、名前の全文字を大文字にして、インポートの手続きに渡さなければなりません。スキーマ、表、列名をデリミトされた識別子で作成した場合、名前の全文字の大文字小文字を作成した時と同じにして、インポートの手続きに渡さなければなりません。
使い方
この手続きは主インポートファイルに記録された参照を使ってLOBの情報を読み出します。
Derby以外の情報源からインポートを行う場合、主インポートファイルに書かれたLOBへの参照の書式は、lobsFileName.Offset.length/として下さい。
- Offsetは外部ファイルの中の位置をバイト数で表します。
- lengthはLOB列の情報の大きさをバイト数で表します。
この手続きの使い方に関するこのほかの情報は、Derby ツールとユーティリティーガイドの「バルクインポートとエクスポートの手続きを使う」を参照してください。
LOBの情報の書かれた外部ファイルを参照する主インポートファイルから、情報をインポートする例
以下の例ではサンプルデータベースにあるSTAFFへ、staff.delというデリミトされたデータファイルから情報をインポートします。この例ではコンマが列のデリミタです。情報は表の既存の情報に追記されます。
CALL SYSCS_UTIL.SYSCS_IMPORT_TABLE_LOBS_FROM_EXTFILE(
'APP','STAFF','c:\data\staff.del',',','"','UTF-8',0);