hp vertica中的编码

时间:2015-05-27 11:56:26

标签: vertica

我在OS Linux CentOS 6.6版(最终版)上安装了最新版本的免费hp vertica服务器。接下来,我设置了一个服务器并创建了一个数据库IM_0609。接下来,我使用命令创建了一个表:

CREATE TABLE MARKS (SERIAL_NUM  varchar(30),PERIOD smallint,MARK_NUM decimal(20,0), END_MARK_NUM decimal(20,0),OLD_MARK_NUM decimal(20,0),DEVICE_NAME varchar(256),DEVICE_MARK varchar(256),CALIBRATION_DATE date);

接下来,从DB2数据库中我执行了EXPORT数据到txt文件:

5465465|12|+5211.|+5211.||Комплексы компьютеризированные самостоятельного предрейсового экспресс-обследования функционального состояния машиниста, водителя и оператора|ЭкОЗ-01|2004-12-09
5465465|12|+5211.|+5211.||Спектрометры эмиссионные|Metal Lab|2004-12-09
б/н|12|+5207.|+5207.|+5205.|Спектрометры эмиссионные|Metal Lab|2004-12-09
б/н|12|+5207.|+5207.|+5205.|Спектрометры эмиссионные|Metal Test|2004-12-09
....

我将文件编码更改为UTF-8。 然后我使用hp vertica这个命令将文本文件中的数据导入到数据库表中:

copy MARKS from '/home/dbadmin/result.txt' delimiter '|' null as '' exceptions '/home/dbadmin/copy-error.log' ABORT ON ERROR;

加载了所有数据,但俄语字符显示一些奇怪的字符,显然这是由于COPY命令的字符编码问题。

5465465 12  5211    5211    (null)  Êîìïëåêñû êîìïüşòåğèçèğîâàííûå ñàìîñòîÿòåëüíîãî ïğåäğåéñîâîãî ıêñïğåññ-îáñëåäîâàíèÿ ôóíêöèîíàëüíîãî ñîñòîÿíèÿ ìàøèíèñòà, âîäèòåëÿ è îï  İêÎÇ-01 2004-12-09
5465465 12  5211    5211    (null)  Ñïåêòğîìåòğû ıìèññèîííûå    Metal Lab   2004-12-09

问题:如何解决此问题?

1 个答案:

答案 0 :(得分:3)

确保您的文件编码为 utf-8

[dbadmin@DCG023 ~]$ vsql
Password:
Welcome to vsql, the Vertica Analytic Database interactive terminal.

Type:  \h or \? for help with vsql commands
       \g or terminate with semicolon to execute query
       \q to quit

(dbadmin@:5433) [dbadmin] > copy MARKS from '/home/dbadmin/rus' delimiter '|' null as ''  ABORT ON ERROR;
 Rows Loaded
-------------
           4
(1 row)

加载数据

(dbadmin@:5433) [dbadmin] > select * from Marks;
 SERIAL_NUM | PERIOD | MARK_NUM | END_MARK_NUM | OLD_MARK_NUM |                                                              DEVICE_NAME                                                               | DEVICE_MARK | CALIBRATION_DATE
------------+--------+----------+--------------+--------------+----------------------------------------------------------------------------------------------------------------------------------------+-------------+------------------
 5465465    |     12 |     5211 |         5211 |              | Комплексы компьютеризированные самостоятельного предрейсового экспресс-обследования функционального состояния машиниста, водителя и оп | ЭкОЗ-01     | 2004-12-09
 5465465    |     12 |     5211 |         5211 |              | Спектрометры эмиссионные                                                                                                               | Metal Lab   | 2004-12-09
 б/н        |     12 |     5207 |         5207 |         5205 | Спектрометры эмиссионные                                                                                                               | Metal Lab   | 2004-12-09
 б/н        |     12 |     5207 |         5207 |         5205 | Спектрометры эмиссионные                                                                                                               | Metal Test  | 2004-12-09
(4 rows)

查询数据

 ClipData data = ClipData.newPlainText("", "");
 View.DragShadowBuilder shadowBuilder = new View.DragShadowBuilder(mMainLayout);
 mMainLayout.startDrag(data, shadowBuilder, mMainLayout, 0);