Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用PYODBC在Vertica中创建表时出现语法错误_Python_Sql_Pyodbc_Create Table_Vertica - Fatal编程技术网

Python 使用PYODBC在Vertica中创建表时出现语法错误

Python 使用PYODBC在Vertica中创建表时出现语法错误,python,sql,pyodbc,create-table,vertica,Python,Sql,Pyodbc,Create Table,Vertica,我正在尝试使用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

我正在尝试使用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分析数据库v7.1.2-6

你知道这是什么原因吗

谢谢你导入pyodbc了吗

2) 您是否从“pyodbc.connect”定义了“游标”

在您可以无错误地连接之后,请尝试使用SQL命令

3) 我对mdb文件(MS Access)使用pyodbc,除非在表/字段名的双引号外加上单引号,否则我的一些查询将不会运行

mytbl_1 = "mytbl"
SQL = 'SELECT * FROM ' + mytbl_1
print SQL
打印结果->从mytbl中选择*

(这失败了)

打印结果->从“mytbl”中选择*


(此字符串通过时没有错误适用于我的MDB文件)

尝试删除查询上的分号。刚刚尝试过,同样的错误。您能够通过isql(unixodbc客户端)连接并运行查询吗?我能想到的另一件事可能是str()输入字符串。
mytbl_1 = "mytbl"
SQL = 'SELECT * FROM ' + mytbl_1
print SQL
mytbl_2 = '"mytbl"' #single quotes outside of double quote
SQL = 'SELECT * FROM ' + mytbl_2
print SQL