我正在尝试在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一样处理多个易失表,或者还有另一种方法?谢谢。
我在下面遇到同样的错误。有人知道如何解决此问题吗?
(''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)