Создать процедуру с помощью turbodbc - PullRequest
0 голосов
/ 06 марта 2020

Я пытаюсь создать процедуру на Teradata, используя turbodb c. Вот мой пример кода:

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. Что не так?

1 Ответ

0 голосов
/ 06 марта 2020

Возможным решением является использование терадата sql. Этот пример отлично работает:

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 ; 
            """)

Но будет хорошо, если кто-то знает решение с turbodb c.

...