機能
カラムナテーブルから、固定長形式でレコードを抽出します。
書式
pgxa_export_fixed_data(tablename, outputfile, condition, lfcode, encoding, format)
引数
詳細は以下のとおりです。
引数 | データ型 | 意味 |
---|---|---|
tablename | text | 格納先テーブル名(外部テーブル名) |
outputfile | text | 出力ファイル名 |
condition | text | 出力条件、または、クエリ |
lfcode | text | 改行コード
|
encoding | text | 文字コード
|
format | text | 出力ファイルのレコードフォーマット |
戻り値
戻り値 | 意味 |
---|---|
TRUE | 正常終了 |
FALSE | 異常終了 |
説明
テーブル名は、すでに定義済の外部テーブル名、または、''を指定してください。
テーブル名に、''を指定した場合、出力条件には、出力したいクエリ(SQL文)を指定します。
未定義の外部テーブル名を指定した場合はエラーとなります。
カラムナテーブルが未定義の場合はエラーとなります。
出力ファイル名は、DWHサーバ上のファイルを絶対パスで指定してください。
出力条件はPostgreSQLに記述可能な条件式のうち、“PostgreSQL文書”の“WHERE句”で指定可能な評価式のうち、以下のものが指定可能です。
評価式を構成する要素 | 定数あるいはリテラル値 | |
列の参照 | ||
演算子 | ||
指定可能な演算子 | 比較演算子 | =, !=, <>, >, <, >=, <= |
論理演算子 | AND, OR, NOT | |
パターン条件演算子 | LIKE |
括弧を使用することで、複合的な条件式を記載することも可能です。
出力条件に指定した文字列中に';'を指定した場合、以降の文字列は無視されます。ただし、リテラル値に含まれる場合はこの限りではありません。
出力条件は65535バイト以内で記述してください。
改行コードに''を指定した場合、行の区切りとしての改行コードを出力しません。
文字コードに'SJIS'を指定した場合、コード変換できない文字データの情報をログに出力します。
char型、varchar型の列に対して、実際のデータが、出力形式のレコードフォーマットで指定した列毎のデータ長より長い場合、データは切り捨てられます。マルチバイト文字の途中で切り捨てが発生した場合、そのマルチバイト文字を'_'に置き換え、以降のデータを切り捨てます。また、このときエラー情報はログに出力されます。
ログの出力先は、パラメーターsymas_ext.logdirで指定します。symas_ext.logdirに指定がない場合は、ログはDWHサーバのセットアップで設定した[データベースのデータ格納先ディレクトリ]に出力されます。パラメーターの変更方法に関しては、“3.12.14.2 システム関数制御パラメーター”を参照してください。
ログのファイル名は“J.4.29 各システム関数が出力するログファイル”を参照してください。
出力形式のレコードフォーマットは、pgxa_import_fixed_dataの入力形式のレコードフォーマットと同様に、列毎のデータ長をカンマ区切りで記述します。
作業用ディレクトリは、出力するファイルのサイズと同等の空きが必要です。
書式1を利用する場合、同名のファイルが存在していたときの動作については、システム関数制御パラメーター symas_ext.overwriteで指定します。“上書きします”、または“エラーにします”のいずれかを指定できます。省略した場合は“エラーにします”として指定されます。パラメーターの変更方法については“3.12.14.2 システム関数制御パラメーター”を参照してください。