0

我正在尝试使用 turbodbc 在 Teradata 上创建程序。有我的示例代码:

from turbodbc import connect
con = connect(dsn="Teradata")
cur = con.cursor()
cur.execute("""
create procedure dev.test_procedure (
) sql security invoker 
begin 
    delete dev.test_table;
end;
""")

并得到这个错误:

DatabaseError: ODBC error
state: 42000
native error code: -3706
message: [Teradata][ODBC Teradata Driver][Teradata Database] Syntax error:
Invalid  SQL Statement.

但相同的代码在 Teradata SQL Assistant 中没有错误。怎么了?

4

1 回答 1

0

可能的解决方案是使用 teradatasql。此示例工作正常:

import teradatasql
with teradatasql.connect(
    '{"host":"my_host","user":"my_user","password":"my_password"}'
) as con:
    with con.cursor() as cur:
        cur.execute("""
            create procedure dev.test_procedure (
            ) sql security invoker 
            begin 
                delete dev.test_table ; 
            end ; 
            """)

但是,如果有人知道 turbodbc 的解决方案,那就太好了。

于 2020-03-06T15:03:17.433 回答