首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python模块teradatasql抛出“语法错误:请求开头到单词之间的期望”

Python模块teradatasql抛出“语法错误:请求开头到单词之间的期望”
EN

Stack Overflow用户
提问于 2021-12-16 17:08:00
回答 1查看 224关注 0票数 0

我正在尝试使用特拉达塔斯格,而为FastExportTable提供的示例代码正在为我抛出错误。

代码:

代码语言:javascript
复制
#!~/miniconda3/bin/python
# This sample program demonstrates how to FastExport rows from a table.

import teradatasql

with teradatasql.connect (host='TD_DB_IP', user='db_user_name', password='db_password', database='teradata_db_name') as con:
    with con.cursor () as cur:
        with con.cursor () as cur2:
            sTableName = "FastExportTable"
            try:
                sRequest = "DROP TABLE " + sTableName
                print (sRequest)
                cur.execute (sRequest)
            except Exception as ex:
                print ("Ignoring", str (ex).split ("\n") [0])

            sRequest = "CREATE TABLE " + sTableName + " (c1 INTEGER NOT NULL, c2 VARCHAR(10))"
            print (sRequest)
            cur.execute (sRequest)

            try:
                sInsert = "INSERT INTO " + sTableName + " VALUES (?, ?)"
                print (sInsert)
                cur.execute (sInsert, [
                    [1, None],
                    [2, "abc"],
                    [3, "def"],
                    [4, "mno"],
                    [5, None],
                    [6, "pqr"],
                    [7, "uvw"],
                    [8, "xyz"],
                    [9, None],
                ])

                sSelect = "{fn teradata_try_fastexport}SELECT * FROM " + sTableName
                print (sSelect)
                cur.execute (sSelect)
                [ print (row) for row in sorted (cur.fetchall ()) ]

                sRequest = "{fn teradata_nativesql}{fn teradata_get_warnings}" + sSelect
                print (sRequest)
                cur2.execute (sRequest)
                [ print (row) for row in cur2.fetchall () ]

                sRequest = "{fn teradata_nativesql}{fn teradata_get_errors}" + sSelect
                print (sRequest)
                cur2.execute (sRequest)
                [ print (row) for row in cur2.fetchall () ]

                sRequest = "{fn teradata_nativesql}{fn teradata_logon_sequence_number}" + sSelect
                print (sRequest)
                cur2.execute (sRequest)
                [ print (row) for row in cur2.fetchall () ]

            finally:
                sRequest = "DROP TABLE " + sTableName
                print (sRequest)
                cur.execute (sRequest)

错误:

代码语言:javascript
复制
Traceback (most recent call last):
  File "./sample_tdsql_fastexporttable.py", line 38, in <module>
    cur.execute (sSelect)
  File "~/miniconda3/lib/python3.6/site-packages/teradatasql/__init__.py", line 649, in execute
    self.executemany (sOperation, None, ignoreErrors)
  File "~/miniconda3/lib/python3.6/site-packages/teradatasql/__init__.py", line 896, in executemany
    raise OperationalError (sErr)
teradatasql.OperationalError: [Version 16.20.0.62] [Session 590874] [Teradata Database] [Error 3706] Syntax error: expected something between the beginning of the request and the word 'teradata_try_fastexportSELECT'.

只有我在github上为这个模块提供的示例程序中所做的更改是添加database='teradata_db_name'。如果删除database='teradata_db_name'并运行相同的代码,则在第19行:teradatasql.OperationalError: [Version 16.20.0.62] [Session 590869] [Teradata Database] [Error 2644] No more room in database SVC_DEV_XDW_VANTAGE.上会出现错误。

我们使用的是Python 3.6.0 :: Continuum Analytics, Inc.

有谁有同样的错误吗?我在这里错过了什么?任何解决这一问题的信息都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2022-07-26 20:40:48

若要解决此问题,请升级到teradatasql 17.10.0.6 -2022年2月4日或更高版本.撰写本文时,"pip install teradatasql -升级“将为您提供17.20.0.0版。

teradatasql记录在这里:https://pypi.org/project/teradatasql/和“GOSQL73写CSV文件”显示了17.10.0.6更新。

如果您正在运行木星,请确保重新启动内核,否则该错误将一直持续到重新启动。

升级之后,这个python指令运行良好。

cur.execute("{fn teradata_write_csv(mycsvfilename.csv)}select * dbc.dbcinfo;")

FastExport的工作还包括:

cur.execute("{fn teradata_try_fastexport}{fn teradata_write_csv(mycsvfilename.csv)}select * from dbc.dbcinfo;")

dbc.dbcinfo确实不值得快速导出的开销,但这个示例适用于每个人。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70382960

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档