首页 > 解决方案 > Teradatasql Python:无法传递列名

问题描述

我正在使用 teradatasql python 模块,我无法在文档中找到如何将命名参数传递到 cursor.execute()

我有带IN参数的存储过程,但在 teradatasql 中我看不到传递列名的选项。有什么办法吗?

这是我的 PROC 的一些片段,它带有IN参数

(
        IN transId VARCHAR(50),
        IN name VARCHAR(50),
        IN  add VARCHAR(50),
        IN  zip VARCHAR(50),
        IN  area VARCHAR(50)
    )

代码

with teradatasql.connect ('{"host":"whomooz","user":"guest","password":"please"}') as con:
    with con.cursor () as cur:
        cur_execute (cur, "{call examplestoredproc (?, ?)}", [10, 7]) # bound parameter values

def cur_execute (cur, sSQL, params=None):
    print ()
    print ("cur.execute", sSQL, "bound values", params)
    cur.execute (sSQL, params)

标签: pythonpython-3.xteradatateradatasql

解决方案


我正在使用 teradatasql python 模块,我无法在文档中找到如何将命名参数传递到 cursor.execute()

Teradata Database 不支持按名称绑定存储过程参数值。因此,teradatasql 驱动程序也不支持。

您必须在对存储过程的调用中指定问号参数标记,并且必须指定按位置绑定到问号参数标记的未命名存储过程参数值。


推荐阅读