Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Embulkで日本語テーブルが出力できません。
- Debian JessieのVagrant Boxで問題のないところを考えると、
- Windows固有のトラブルかと思われます。
- 僕が使っているinformix JDBC Driverでも同じようなトラブルが発生することを考えると、
- PostgreSQL以外でも発生するのではないかと思っております。
- ##PostgreSQLの場合
- ##環境
- ###Client
- - Windows 7 SP1 (x64) ja_JP
- - Java 1.8.0.65 (x64)
- - Embulk v0.8.5
- - embulk-input-jdbc
- - embulk-input-postgresql
- ###Server
- - Windows 7 SP1 (x64) ja_JP
- - PostgreSQL 9.5 (x64)
- 取得する日本語テーブルを作る
- ```sql
- create table 日本語(
- キー serial primary key,
- 名前 text
- );
- ```
- データを挿入
- ```sql
- INSERT INTO 日本語 (名前)
- VALUES("あらかわゆうすけ");
- ```
- 通常のAlphabetのTableも作る
- ```sql
- create table namelist(
- id serial primary key,
- name text
- );
- ```
- データの挿入
- ```sql
- INSERT INTO namelist (name)
- VALUES("あらかわゆうすけ");
- ```
- ##seed.ymlの編集
- 下記のようなymlファイルにします。
- UTF8 CRLF で保存します。
- ```yml
- in:
- type: postgresql
- host: localhost
- user: postgres
- password: postgres
- database: postgres
- #table: 日本語
- query: |
- "select * from 日本語";
- out:
- type: file
- path_prefix: C:\Users\yusuke\tables.csv
- file_ext: csv
- formatter:
- type: csv
- header_line: true
- charset: UTF-8
- newline: CRLF
- ```
- Guessを実行
- ```cmd
- C:\Users\yusuke>embulk.bat guess seed_win.yml -o guess_win.yml
- in:
- type: postgresql
- host: localhost
- user: postgres
- password: postgres
- database: postgres
- query: |
- "select * from 隴鯉ス・隴幢スャ髫ア・ス";
- out:
- type: file
- path_prefix: C:\Users\yusuke\tables.csv
- file_ext: csv
- formatter: {type: csv, header_line: true, charset: UTF-8, newline: CRLF}
- ```
- runを実行
- ```
- C:\Users\yusuke> Embulk run guess_win.yml
- ...(省略 詳細は Embulk_run_Error_utf8.txtを参照)....
- Error: java.lang.RuntimeException: org.postgresql.util.PSQLException: ERROR: syntax error at or near ""select * from 隴鯉ス・隴幢スャ髫ア�ソス""
- ポジション: 1
- ```
- とこんな感じのエラーです。
- seed_win.yml をShiftJISで保存して実行した場合でもExportはできませんでした。
- ##ShiftJISでseed_win.ymlを保存して実行した場合
- ```cmd
- C:\Users\yusuke>embulk.bat guess seed_win.yml -o guess_win.yml
- 2016-02-24 14:23:19.035 +0900: Embulk v0.8.5
- 2016-02-24 14:23:19.936 +0900 [INFO] (0001:guess): Loaded plugin embulk-input-po
- stgresql (0.6.4)
- in:
- type: postgresql
- host: localhost
- user: postgres
- password: postgres
- database: postgres
- query: |
- "select * from 日本語";
- out:
- type: file
- path_prefix: C:\Users\yusuke\tables.csv
- file_ext: csv
- formatter: {type: csv, header_line: true, charset: UTF-8, newline: CRLF}
- Created 'guess_win.yml' file.
- ```
- runしてみる
- ```
- C:> embulk.bat run guess_win.yml
- ....(省略 詳細はEmbulk_run_Error_sjis.txt を参照)...
- Error: java.lang.RuntimeException: org.postgresql.util.PSQLException: ERROR: syntax error at or near ""select * from 譌・譛ャ隱�""
- ポジション: 1
- ```
- ##Informixの場合
- Informixの場合はパスワード等を晒すわけにはいかないので、
- エラーログだけを張っておきます。
- ##環境
- ###Client
- - Windows 7 SP1 (x64) ja_JP
- - Java 1.8.0.65 (x64)
- - Embulk v0.8.5
- - embulk-input-jdbc
- - Informix JDBC Driver 4.10 JC6DE
- ###Server
- - HP-UX
- - Informix v11.05
- ```
- org.embulk.exec.PartialExecutionException: java.lang.RuntimeException: java.sql.SQLException: Code-set conversion function failed due to illegal sequence or invalid value.
- ```
- と文字エンコード関係で落ちているように見えます。
- 詳細は informix_export_error.txt を参照。
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement