機能
カラムナテーブルに、CSV(可変長)形式のレコードを格納します。
書式1
pgxa_import_to_table(tablename, inputfile, label, delimiter, lfcode, encoding, ignore_uniq )
書式2
pgxa_import_to_table(tablename, inputfile, label, delimiter, lfcode )
引数
詳細は以下のとおりです。
引数 | データ型 | 意味 |
---|---|---|
tablename | text | 格納先テーブル名(外部テーブル名) |
inputfile | text | 入力ファイル名(260バイト未満) |
label | boolean | 見出し行の有無
|
delimiter | text | 区切り文字
|
lfcode | text | 改行コード
|
encoding | text | 文字コード(注1)
|
ignore_uniq | Boolean | 一意性制約に違反するレコードの扱い(注2)
|
注1) 書式2の場合は'UTF8'です。
注2) 書式2の場合は、入力データに違反レコードがあるときはエラー終了します。
戻り値
戻り値 | 意味 |
---|---|
TRUE | 正常終了 |
FALSE | 異常終了 |
実行例
省略可能な引数を省略した場合の実行例です。
> psql postgres psql (9.2.8) Type "help" for help. postgres=# SELECT pgxa_import_to_table('scm.tbl1', '/data/input.csv', true, ',', 'LF' ); pgxa_import_to_table ---------------------- t (1 row)
すべての引数を指定した場合した場合の実行例です。
$ psql postgres psql (9.2.8) Type "help" for help. postgres=# SELECT pgxa_import_to_table('scm.tbl1','/data/input.csv',false,',','CRLF','SJIS',false); pgxa_import_to_table ---------------------- t (1 row)
説明
テーブル名は、すでに定義済の外部テーブル名を指定してください。
未定義の外部テーブル名を指定した場合はエラーになります。
カラムナテーブルが未定義の場合はエラーになります。
入力ファイル名は、DWHサーバ上のファイルを絶対パスで指定してください。
入力ファイル名で指定したファイルが存在しない場合、または、ファイルの読込み権限がない場合はエラーになります。
本ファンクションを実行し、以下のいずれかの条件を満たす場合、対応するログが出力されます。
文字コードに'SJIS'を指定し、かつ入力データに不当なデータが確認された場合
出力内容:不当なデータの情報
文字コードに'SJIS'を指定し、かつ一意性制約に違反するレコードの扱いにTRUEを指定した場合
出力内容:一意性制約に違反するレコードの情報
ログの出力先は、パラメーター symas_ext.logdirで指定します。symas_ext.logdirに指定がない場合は、ログはDWHサーバのセットアップで設定した[データベースのデータ格納先ディレクトリ]に出力されます。パラメーターの変更方法に関しては、“3.12.14.2 システム関数制御パラメーター”を参照してください。
ログのファイル名は“J.4.29 各システム関数が出力するログファイル”を参照してください。
一意性制約に違反するレコードの扱いにFALSEを指定した場合、一意性制約に違反したデータを検出すると、ファンクションの実行がロールバックされます。
入力ファイルの文字コードに'SJIS'を指定した場合、格納するデータの中間ファイルが出力されます。中間ファイルはパラメーター symas_ext.workdirで指定した作業用ディレクトリに出力されます。symas_ext.workdirに指定がない場合は、中間ファイルはDWHサーバのセットアップで設定した[データベースのデータ格納先ディレクトリ]に出力されます。パラメーターの変更方法に関しては、“3.12.14.2 システム関数制御パラメーター”を参照してください。
作業用ディレクトリは、入力ファイルのサイズの1.5倍以上の空きが必要です。
入力ファイルの列のデータは、定義した列の順に記述してください。