簡體   English   中英

使用PYODBC在Vertica中創建表時出現語法錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM