構文
SYSCS_UTIL.SYSCS_IMPORT_TABLE (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)
この手続きは結果を返しません。
- SCHEMANAME
- この引数の型はVARCHAR(128)で、値には表のスキーマを指定します。空の値を与えた場合は既定のスキーマ名が用いられます。
- TABLENAME
- この引数の型はVARCHAR (128)で、値には情報をインポートする表の表名を指定します。
この表はシステム表や一時表であってはなりません。空の値を与えた場合はエラーとなります。
- FILENAME
- この引数の型はVARCHAR(32672)で、値にはインポートする情報の書かれたファイルを指定します。
パスを指定しなければ、現在の作業ディレクトリが使われます。空の値を与えた場合はエラーとなります。
- COLUMNDELIMITER
- この引数の型はCHAR(1)で、値には列のデリミタを指定します。
指定した文字はコンマの代わりに列の最後を表すために用いられます。
空の値を渡すと既定値が使われます。既定値はコンマ(,)です。
- CHARACTERDELIMITER
- この引数の型はCHAR(1)で、値には文字のデリミタを指定します。
指定した文字は二重引用符の代わりに文字を囲うために用いられます。
空の値を渡すと既定値が使われます。既定値は二重引用符(")です。
- CODESET
- この引数の型はVARCHAR(128)で、値には入力ファイルに書かれた情報のコードセットを指定します。コードセットの名称はJavaがサポートする文字エンコーディングのうちの一つでなければなりません。情報は指定したコードセットからデータベースのコードセット(utf-8)に変換されます。
空の値を渡すと、手続きを実行しているJVMと同じコードセットで、データファイルを読み取ります。
- REPLACE
- この引数の型はSMALLINTです。値が零でなければREPLACEモードで動作して、値が零であればINSERTモードで動作します。
REPLACEモードでは情報を切り捨てて、表にある全ての情報を削除してから、インポートする情報を挿入します。
なお表の定義や索引の定義は変わりません。INSERTモードでは表にある既存の情報はそのままにして、表にインポートする情報を追加します。空の値を渡すとエラーとなります。
スキーマ、表あるいは列の名称をデリミトされない識別子として作成した場合、インポートの手続きには、その名称を全て大文字で指定しなければなりません。
スキーマ、表あるいは列の名称をデリミトされた識別子として作成した場合、インポートの手続きには、大文字・小文字を作成したときと同じにして名称を指定しなければなりません。
例
以下の例では、
myfile.delというデリミトされたデータファイルから
STAFF表に情報をインポートします。このとき、文字列のデリミタとしてはパーセンテージ(%)を、列のデリミタとしてはセミコロン(;)を指定します。
CALL SYSCS_UTIL.SYSCS_IMPORT_TABLE
(null, 'STAFF', 'c:/output/myfile.del', ';', '%', null,0);