[英]Syntax error when creating table in Vertica with PYODBC
我正在嘗試使用PYODBC將大量SQL查詢列表加載到Vertica中的表中。 這是我的代碼:
tablename = DVXTEMP.my_table_name
sql = my_sql_query.strip().strip(';')
samplesize = 1000
createstring = 'CREATE TABLE %s AS %s \n limit %s;' %(tablename, sql, samplesize)
cursor.execute(createstring)
當我打印createstring並在Toad中運行它時,它工作正常。 當我嘗試在pyodbc中執行它時,出現以下錯誤:
'Syntax error at or near "DVXTEMP" at character 1\n (4856) (SQLExecDirectW)'
我們正在使用Vertica Analytic Database v7.1.2-6
任何想法可能是什么原因造成的?
謝謝
1)您是否導入了pyodbc?
2)您是否從“ pyodbc.connect”定義了“光標”?
import pyodbc
DB = '[string for dbfile]'
DRV = '[string of which driver you are going to use]'
con = pyodbc.connect('DRIVER={};DBQ={}'.format(DRV,DB))
cursor = con.cursor()
##build SQL code and execute as you have done
可以正確連接后嘗試SQL命令。
3)我將pyodbc用於mdb文件(MS Access),除非將單引號放在表/字段名稱的雙引號之外,否則我的某些查詢將無法運行。
mytbl_1 = "mytbl"
SQL = 'SELECT * FROM ' + mytbl_1
print SQL
打印結果-> SELECT * FROM mytbl
(失敗)
mytbl_2 = '"mytbl"' #single quotes outside of double quote
SQL = 'SELECT * FROM ' + mytbl_2
print SQL
打印結果-> SELECT * FROM“ mytbl”
(此字符串不帶錯誤而傳遞給我,適用於MDB文件)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.