在postgres脚本中使用变量

时间:2016-10-24 15:07:57

标签: python windows postgresql psql

我想在我的SQL脚本中使用一个变量。变量的值为100(只是一个数字)。我把它存储为csv。此目录中的文件:C:\ Users \ Dino \ Desktop \ my_file.csv。

我想在sql脚本中运行它:

import os
from ask_db import ask_db_params #this script creates the connection to the  database
import sys, os
def my_function(cur, conn):
    sql="""
        \set outputdir'C:\\Users\\Dino\\Desktop'
        \set new_var :outputdir '\\my_file.csv'
         copy my_file to :'new_var';"""

cur.execute(sql)
conn.commit()
if __name__ == '__main__':
  try:
    conn = ask_db_params()
    cur  = conn.cursor()
    analysis_data(cur,conn)
    logging.info('Data analysed.')
  except Exception as e:
    logging.error('Failure', exc_info=True)
    exit(1)

我有错误:

  

语法错误在“\”....或附近。

它指的是第一行。

有关语法的任何帮助吗?

P.S。我正在运行python来调用sql脚本。 Windows操作系统

1 个答案:

答案 0 :(得分:0)

那不行。 \setpsql命令,而不是SQL命令。

您必须在Python中使用字符串操作来构造如下所示的SQL字符串:

COPY my_file TO 'C:\Users\Dino\Desktop\my_file.csv'

然后将execute()与该SQL字符串一起使用。