我想使用bcp将数据从SQL Server提取到.csv
文件中,并将生成的文件发送到PostgreSQL服务器。问题是我无法从SQL Server中提取数据,因为我对日期类型有很多问题。
无论如何......我要求别人告诉我另一个想法(一般)来完成这项工作。
我也尝试使用SSIS但是有限。
谢谢,
:)
答案 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