2016-01-25 3 views
0

Есть ли запрос, эквивалентный openquery или openrowset SQL-сервера для использования в postgresql для запроса из excel или csv?SQL-сервер Openquery эквивалентен PostgresQL

+0

http://www.postgresql.org/docs/9.4/static/sql-copy.html или http://pgoledb.com/? –

+0

Команда копирования работала для меня спасибо –

+0

Вы также можете использовать внешнюю оболочку данных для непосредственного чтения файла без необходимости его импорта –

ответ

1

Вы можете использовать в PostgreSQL COPY

Как за документ: перемещает данные

COPY между таблицами PostgreSQL и стандартной файловой системой файлов. COPY Копировать содержимое таблицы в файл, в то время как COPY FROM копирует данные из файла в таблицу (добавление данных в все, что уже есть в таблице). COPY TO может также скопировать результаты из SELECT, запрос

COPY работает так:

Импорт таблицы из CSV

Предполагая, что у вас уже есть таблица в месте с нужными колонны, команда следующая:

COPY tblemployee FROM '~/empsource.csv' DELIMITERS ',' CSV; 

Экспорт CSV из таблицы.

COPY (select * from tblemployee) TO '~/exp_tblemployee.csv' DELIMITERS ',' CSV; 

Важно, чтобы отметить здесь, что, как правило, если ваши данные в кодировке Юникод или нужна строгая кодировка, то всегда устанавливается client_encoding перед выполнением любой из указанных выше команд.

Чтобы установить параметр client_encoding в PostgreSQL

set client_encoding to 'UTF8' 

или

set client_encoding to 'latin1' 

Другое дело, чтобы защититься от это обнуляет, в то время как экспорт, если некоторые поля равны нулю, то PostgreSQL добавит «/N», чтобы представить null, это нормально, но может вызвать проблемы, если вы пытаетесь импортировать эти данные в SQL Server.

Быстрое исправление изменить команду экспорта, указав, что бы вы предпочли в качестве нулевой заполнитель в экспортированных CSV

COPY (select * from tblemployee) TO '~/exp_tblemployee.csv' DELIMITERS ',' NULL as E''; 

Другим общим требованием является импорт или экспорт с заголовком.

Импорт CSV в таблицу с заголовком для столбцов, присутствующих в первой строке файла csv.

COPY tblemployee FROM '~/empsource.csv' DELIMITERS ',' CSV HEADER 

Экспорт таблицы в CSV с заголовками, присутствующими в первом ряду.

COPY (select * from tblemployee) TO '~/exp_tblemployee.csv' DELIMITERS ',' CSV HEADER