« SQL*Plusでcsv出力できるんですよ #2 null はどうなる? / FAQ | トップページ | RDS Oracle 雑多なメモ#17/ FAQ »

2019年2月11日 (月)

\copy コマンド de CSVファイルからのロード

今回はOracleネタではなく、Aurora PostgreSQLネタです。(RDS PostgreSQLでも同じ

csvファイルをロードしてみます。

csvファイルは前回SQL*Plusで作成したファイルを使います:)

discus-mother:~ oracle$ echo $LANG
ja_JP.UTF-8
discus-mother:~ oracle$
discus-mother:~ oracle$ cat loaddata_test.csv
1,"テスト","note"
2,"平成","note"
3,"abcdbef","note"
4,"あ","note"
5,"A","note"
6,,"note"

つづいて、Aurora PostgreSQLへcsvデータをロードする準備。
事前に表を作成しておきました。

discus-mother:˜ oracle$ psql --host=xxxxxxxxxxxxxxxxxxxxx.rds.amazonaws.com --port=5432 --username=hoge --password --dbname=testdb

testdb=> select aurora_version();
aurora_version
----------------
2.1.0
(1 row)

testdb=> select version();
version
-----------------------------------------------------------------------------
PostgreSQL 10.5 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.9.3, 64-bit
(1 row)

testdb=> \l testdb
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
--------+-------+----------+---------+-------+-------------------
testdb | hoge | UTF8 | C | C |
(1 row)

testdb=>
testdb=> create schema hoge;
CREATE SCHEMA
testdb=> set search_path=hoge,public;
SET
testdb=>
testdb=> create table test (
testdb(> id numeric not null primary key
testdb(> ,data character varying(10)
testdb(> ,foo character varying(10) not null
testdb(> );
CREATE TABLE
testdb=> \d+ test
Table "hoge.test"
Column | Type | Modifiers | Storage | Stats target | Description
--------+-----------------------+-----------+----------+--------------+-------------
id | numeric | not null | main | |
data | character varying(10) | | extended | |
foo | character varying(10) | not null | extended | |
Indexes:
"test_pkey" PRIMARY KEY, btree (id)

testdb=>

csvからのロードは \copy コマンドを利用しました:)

testdb=>  \copy test(id,data,foo) from 'loaddata_test.csv' with csv
COPY 6
testdb=> select * from test order by id;
id | data | foo
----+---------+------
1 | テスト | note
2 | 平成 | note
3 | abcdbef | note
4 | あ | note
5 | A | note
6 | | note
(6 rows)

testdb=>
testdb=> \pset null [null]
Null display is "[null]".
testdb=> select * from test order by id;
id | data | foo
----+---------+------
1 | テスト | note
2 | 平成 | note
3 | abcdbef | note
4 | あ | note
5 | A | note
6 | [null] | note
(6 rows)




目がしょぼしょぼするが、花粉症ではない(キッパリ

|

トラックバック


この記事へのトラックバック一覧です: \copy コマンド de CSVファイルからのロード:

コメント

コメントを書く