我想在我的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操作系统
答案 0 :(得分:0)
那不行。 \set
是psql
命令,而不是SQL命令。
您必须在Python中使用字符串操作来构造如下所示的SQL字符串:
COPY my_file TO 'C:\Users\Dino\Desktop\my_file.csv'
然后将execute()
与该SQL字符串一起使用。