2014-10-21 5 views
4

Я работаю с Vertica. Я пытаюсь экспортировать данные из запроса SELECT в csv. Я пытаюсь сделать это с SQL-запроса:Экспорт результата запроса Vertica в файл csv

SELECT * FROM table_name INTO OUTFILE '/tmp/fileName.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n'; 

Но получить проблему

[Vertica][VJDBC](4856) ERROR: Syntax error at or near "INTO" 

Есть другой способ импортировать результат запроса в CSV-файл, не хотите использовать vsql, но если нет другого путь, я буду использовать

vsql -c "select * from table_name;" > /tmp/export_data.txt. 

ответ

3

Вы используете синтаксис, который не подходит для Vertica. Please read the documentation.

Vertica поддерживает только экспорт местный.

У клиента, используемого вами, должна быть поддержка экспорта файла. Например, в Excel вы можете настроить соединение ODBC и импортировать данные.

2

Следующим образом вы можете записать в CSV-файл как разделенный запятой и без нижнего колонтитула.

vsql -h $HOST -U $USER -d $DATABASE -w $PASSWORD -f $SQL_PATH/SQL_FILE -A -o $FILE -F ',' -P footer=off -q 
+0

+1 для колонтитула = выкл, а также - мета-команда «-t --tuples только отключает печать имен столбцов, результат подсчета строк колонтитулов и т.д. « – IddoE

5

В соответствии с https://my.vertica.com/docs/7.1.x/HTML/Content/Authoring/ConnectingToHPVertica/vsql/ExportingDataUsingVsql.htm

=> SELECT * FROM my_table; 
a | b | c 
---+-------+--- 
a | one | 1 
b | two | 2 
c | three | 3 
d | four | 4 
e | five | 5 
(5 rows) 
=> \a 
Output format is unaligned. 
=> \t 
Showing only tuples. 
=> \pset fieldsep ',' 
Field separator is ",". 
=> \o dumpfile.txt 
=> select * from my_table; 
=> \o 
=> \! cat dumpfile.txt 
a,one,1 
b,two,2 
c,three,3 
d,four,4 
e,five,5 
+0

Спасибо. Я думаю, '=> \ pset fieldsep '\ t'' будет' => \ pset fieldsep', ''(в соответствии с ответом) – HungryCoder

+0

@HungryCoder true :) – fl00r

Смежные вопросы