如何使用pyodbc在Teradata中使用Python创建多个易失表

问题描述 投票:1回答:1

我正在尝试在Python中运行Teradata sql代码。该代码涉及构建易失性表,但是在尝试创建第二个易失性表时仍然出现错误消息。错误消息如下:

[Teradata][ODBC Teradata Driver][Teradata Database] Only an ET or null statement is legal after a DDL Statement.  (-3932) (SQLExecDirectW)')

我的代码在下面:

sql1="""CREATE MULTISET VOLATILE TABLE A AS(......)WITH DATA PRIMARY INDEX(CUSTOMER_ID) ON COMMIT PRESERVE ROWS;"""
sql2="""CREATE MULTISET VOLATILE TABLE B AS(......)WITH DATA PRIMARY INDEX(CUSTOMER_ID) ON COMMIT PRESERVE ROWS;"""
cursor.execute(sql1)
cursor.execute(sql2)

尽管我尝试将两个sql段落合并为一个和/或添加BT;ET;,但仍在执行sql2时显示错误,但我也尝试在TMODE中切换pyodbc.connect,但它不能正常工作。

python是否可以像teradata一样处理多个易失表,或者还有另一种方法?谢谢。

python teradata pyodbc pypyodbc
1个回答
0
投票

我在下面遇到同样的错误。有人知道如何解决此问题吗?

(''25000','[25000] [Teradata] [ODBC Teradata驱动程序] [Teradata数据库] DDL语句之后,只有ET或null语句是合法的。(-3932(SQLExecDirectW)']]

我的Python代码在下面。

import pyodbc

conn  = pyodbc.connect('Driver={Teradata};'
                  'Server=;'
                  'DBCNAME=;'
                  'AUTHENTICATION=LDAP;'
                  'UID={};'
                  "PWD={};"
                  'Trusted_Connection=yes;'
                  'autocommit=True;'



query = open(path + 'test_multiple_selects.sql', 'r')

SQL_Query = pd.read_sql_query(query.read(),conn)
© www.soinside.com 2019 - 2024. All rights reserved.