The problem with the coding in hp vertica
I installed the latest version of the free hp vertica server on OS Linux CentOS release 6.6 (Final). Next, I set up a server and created a database IM_0609. Next, I created a table with the command:
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);
Next, from the DB2 database I executed EXPORT data to txt file:
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
....
and I changed the file encoding to UTF-8.
I then import the data from the text file into a database table using the hp vertica here this command:
copy MARKS from '/home/dbadmin/result.txt' delimiter '|' null as '' exceptions '/home/dbadmin/copy-error.log' ABORT ON ERROR;
All data loaded, but Russian characters display some weird characters, apparently this is due to the problems of character encoding the command COPY.
5465465 12 5211 5211 (null) Êîìïëåêñû êîìïüşòåğèçèğîâàííûå ñàìîñòîÿòåëüíîãî ïğåäğåéñîâîãî ıêñïğåññ-îáñëåäîâàíèÿ ôóíêöèîíàëüíîãî ñîñòîÿíèÿ ìàøèíèñòà, âîäèòåëÿ è îï İêÎÇ-01 2004-12-09
5465465 12 5211 5211 (null) Ñïåêòğîìåòğû ıìèññèîííûå Metal Lab 2004-12-09
Question: How can I fix this problem?
0
Comments
Hi,
Something may be wrong in your locale. I did the same test and works just fine for me.
dbadmin=> \! cat /tmp/test.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
-- Load the data
dbadmin=> copy marks from '/tmp/test.txt';
Rows Loaded
-------------
4
(1 row)
-- Query the table
dbadmin=> select * from marks;
SERIAL_NUM | PERIOD | MARK_NUM | END_MARK_NUM | OLD_MARK_NUM | DEVICE_NAME | DEVICE_MARK | CALIBRATION_DATE
------------+--------+----------+--------------+--------------+----------------------------------------------------------------------------------------------------------------------------------------+-------------+------------------
б/н | 12 | 5207 | 5207 | 5205 | Спектрометры эмиссионные | Metal Lab | 2004-12-09
б/н | 12 | 5207 | 5207 | 5205 | Спектрометры эмиссионные | Metal Test | 2004-12-09
5465465 | 12 | 5211 | 5211 | | Спектрометры эмиссионные | Metal Lab | 2004-12-09
5465465 | 12 | 5211 | 5211 | | Комплексы компьютеризированные самостоятельного предрейсового экспресс-обследования функционального состояния машиниста, водителя и оп | ЭкОЗ-01 | 2004-12-09
5465465 | 12 | 5211 | 5211 | | Комплексы компьютеризированные самостоятельного предрейсового экспресс-обследования функционального состояния машиниста, водителя и оп | ЭкОЗ-01 | 2004-12-09
(5 rows)
- System Locale
dbadmin=> \!locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
-- Database Locale
dbadmin=> \locale
en_US@collation=binary
Hope this helps.
Eugenia
That's my fault. I have the wrong encoding of the file instead of the ISO I WINDOW-1251. But thanks for the info!!