将查询到的postgres数据库数据导入csv

来源:互联网 发布:在这网络里认识你歌词 编辑:程序博客网 时间:2024/05/06 10:08

1.sql语句很简单

copy ( select * from table) to 'c:/a/test.csv' with csv header

2.但是会报错,错误信息:

错误:  为了写入, 无法打开文件 "c:/test1.csv": Permission denied

********** 错误 **********

SQL 状态: 42501

意思是用户postgres对c盘没有写入权限。

c盘右键属性-》安全,添加postgres用户拥有所有控制权。

--------------------------------------------

有的电脑右键属性没有安全选项卡,解决方法:

工具-》文件夹选项-》查看,取消选中“使用文件夹简单共享(推荐)”

---------------------------------------------

3.这样的话sql执行成功,但是打开"c:/test1.csv",发现内容是乱码

该情况一般是导出的文件编码问题,在简体中文环境下,EXCEL打开的CSV文件默认是ANSI编码,如果CSV文件的编码方式为utf-8、Unicode等编码可能就会出现乱码的情况。

两种方法解决:

方法一:用记事本打开csv文件,另存为编码ASNI;

方法二:更改数据库编码方式:

执行sql语句

----显示数据库编码

 show client_encoding;

-----设置数据库编码

set client_encoding='GBK';

设置为GBK即可

原创粉丝点击