我有一个使用
的csv文件的路径cur1.execute("select path from t2");
path = cur1.fetchone()
我知道要使用psycopg2对csv文件执行复制,如下所示:
cur2.execute("COPY (SELECT id,a,b,c FROM t1,t2 WHERE a >= t2.d ) TO path[0] DELIMITER ',' CSV;")
我收到此错误:psycopg2.ProgrammingError: syntax error at or near "path"
提前致谢!
答案 0 :(得分:1)
这里实际上有两个问题。
首先,你必须用'来包围文件名,这就是错误信息所指示的内容。
第二个是,如果你这样做,你的文件将被命名为path [0],这可能不是你想要的,因为你的数据库不知道是什么路径并访问它(这就是我试图说的)。因此,在将查询文件发送到数据库之前,必须在查询中插入文件名。见http://initd.org/psycopg/docs/usage.html#passing-parameters-to-sql-queries