将数据(.CSV文件)从SQL Server发送到Postgres服务器?

时间:2015-03-11 03:54:15

标签: sql-server postgresql

我想使用bcp将数据从SQL Server提取到.csv文件中,并将生成的文件发送到PostgreSQL服务器。问题是我无法从SQL Server中提取数据,因为我对日期类型有很多问题。

无论如何......我要求别人告诉我另一个想法(一般)来完成这项工作。

我也尝试使用SSIS但是有限。

谢谢,

:)

1 个答案:

答案 0 :(得分:0)

请展开“我对日期类型有很多问题”。您应该以ISO格式导出日期。

要从MS SQL Server导出,请运行:

bcp "select * from some_table" queryout results.tsv -T -S serverHostName -w

(假设您正在使用Windows身份验证)。这将为您提供Unicode中的制表符分隔文件。

MS SQL Server将Unicode导出为UTF-16,PostgreSQL喜欢UTF-8,因此使用iconv进行转换:

iconv -f UTF16 -t UTF8 results.tsv > results-utf8.tsv

您也可以找到适用于Windows的iconv风格的程序。

然后使用psql将文件上传到PostgreSQL:

psql -c "\copy some_table from 'results-utf8.tsv'"

您也可以尝试使用https://wiki.postgresql.org/wiki/Foreign_data_wrappers