vim tab3.dat
Alvin,Tolliver,1976
Kenneth,Baer,1963
Mary,Dube,1973
drop table tab3;
CREATE TABLE tab3 (first_name CHAR(15), last_name CHAR(20), year_of_birth CHAR(4))
ORGANIZATION EXTERNAL (TYPE ORACLE_LOADER DEFAULT DIRECTORY ORA_DIR
ACCESS PARAMETERS (RECORDS DELIMITED BY '\n' FIELDS TERMINATED BY ','
(first_name CHAR(7),
last_name CHAR(8),
year_of_birth CHAR(4)))
LOCATION ('tab3.dat'));
select * from tab3;
CSVストレージエンジン
http://nippondanji.blogspot.com/2010/03/innodb.html
SELECT * INTO OUTFILE '/tmp/tab1.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
FROM tab1;
CREATE TABLE `tab1csv` (
`col1` int(11) not NULL,
`col2` varchar(100) not NULL
) ENGINE=CSV
;
cd /var/lib/mysql/test
cp /tmp/tab1.csv tab1csv.CSV
select * from tab1csv;
https://lets.postgresql.jp/documents/technical/contrib/file_fdw
CREATE EXTENSION file_fdw;
CREATE SERVER fs FOREIGN DATA WRAPPER file_fdw;
\dx
\dx+
\des+
vim /tmp/file.csv
123,test1
aaa,test2
drop foreign table external_csv;
CREATE FOREIGN TABLE external_csv
(id varchar(10), name text)
SERVER fs
OPTIONS (filename '/tmp/file.csv', format 'csv', encoding 'utf8');
SELECT * FROM external_csv;
\det
※oracleと同じで、csvファイルに空行があるとエラーとなる
Hadoop クラスターまたは Azure Blob Storage であれば作成できる模様。
CSVを用いた外部表はサポートされていない模様