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即可