当前位置:  开发笔记 > 编程语言 > 正文

Psycopg copy_expert方法-如何正确使用

如何解决《Psycopgcopy_expert方法-如何正确使用》经验,为你挑选了1个好方法。

我正在尝试运行这样的代码:

query = "copy  (select email from my_table) TO 'STDOUT' WITH (FORMAT csv, DELIMITER '|', QUOTE '^', HEADER FALSE)"
out_file = StringIO()
cursor.copy_expert(query, out_file, size=8192)

使用copy_expert游标方法。

但我收到此错误:

Traceback (most recent call last):
  File "etl/scripts/scratch.py", line 32, in 
    cursor.copy_expert(query, out_file, size=8192)
psycopg2.ProgrammingError: must be superuser to COPY to or from a file
HINT:  Anyone can COPY to stdout or from stdin. psql's \copy command also works for anyone.

我无权以超级用户身份运行它,而且由于我没有接触任何实际文件,因此似乎不需要这样做。



1> Nick Barnes..:

有以下两种变体COPY TO

COPY TO STDOUT,它将数据流回到客户端,以及

COPY TO 'filename',它写入服务器端文件(需要超级用户特权)。

您的COPY语句在STDOUT关键字两边加上引号,导致其被解释为文件名。只需删除它们。

推荐阅读
TXCWB_523
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有