OpenText Analytics Database 旧Vertica

技術情報サイト

Analytics Database

改行をデータとしてロードする方法

公開日:
更新日:
データロード
#COPY
#データロード

はじめに

COPYコマンドは、CSVデータ内の改行を1レコードの終端文字として扱います。

以下のCSVデータは2レコード目に改行が含まれています。
このCSVデータをデータロードしようとした場合、4レコードのデータが存在するとみなされ、3レコード目がエラーになります。

$ cat /home/dbadmin/test.csv
"0001","2018-01-01","あいうえお"
"0002","2018-01-02","かきく
けこ"
"0003","2018-01-03","さしすせそ"

本記事では、上記の2レコード目をデータロードする方法をご紹介します。

改行データのロード方法

CSVデータ内の改行もデータとしてデータロードする場合は、RECORD TERMINATORパラメータを使用してレコード終端文字を指定します。

構文

COPY スキーマ名.テーブル名
FROM 'CSVファイル名'
DELIMITER ',' ENCLOSED BY '”'
RECORD TERMINATOR 'レコード終端文字' ;

実行例

以下の例は、レコード終端文字をセミコロン「;」としています。

【CSVデータの内容】

$ cat /home/dbadmin/test.csv 
"0001","2018-01-01","あいうえお";
"0002","2018-01-02","かきく
けこ";
"0003","2018-01-03","さしすせそ";

【COPYコマンドの実行】

dbadmin=> COPY public.test
dbadmin-> FROM '/home/dbadmin/test.csv'
dbadmin-> DELIMITER ','
dbadmin-> ENCLOSED BY '"'
dbadmin-> RECORD TERMINATOR ';' ;
 Rows Loaded
-------------
           3
(1 row)

【データロード結果の確認】

dbadmin=> SELECT * FROM public.test;
 col1 |    col2    |    col3
------+------------+-------------
 0001 | 2018-01-01 | あいうえお
 0002 | 2018-01-02 | かきく
けこ
 0003 | 2018-01-03 | さしすせそ
(3 rows)

検証バージョンについて

この記事の内容はVertica 9.1で確認しています。

更新履歴

2021/06/25 項目名を「改行データのロード方法」に修正
2017/02/16 本記事を公開