我正在使用这个teradata 模块,然后我换成了这个新模块。
事实上,在旧版本中,很容易通过在函数中设置 queryBands 参数来设置 queryband udaExec.connect
。在这个新模块中,我找不到像在旧模块中那样设置查询带的简单方法。
有谁知道实现这一目标的最佳方法?
我正在使用这个teradata 模块,然后我换成了这个新模块。
事实上,在旧版本中,很容易通过在函数中设置 queryBands 参数来设置 queryband udaExec.connect
。在这个新模块中,我找不到像在旧模块中那样设置查询带的简单方法。
有谁知道实现这一目标的最佳方法?
teradatasql包严格来说是一个驱动程序。它不包括您在上面链接的 teradata ( udaExec ) 包文档的第 2 节中列出的具有附加“DevOps 功能”的包装器。
您需要使用SET QUERY_BAND='name1=value1;name2=value2;...;nameN=valueN;' FOR SESSION
语句构建一个字符串并将其传递给.execute
.
您可以像tdodbc那样从字典中构建该语句,但不会预先填充任何条目(如 ApplicationName、Version、ClientUser 等);如果你想要它们,你必须自己添加它们。
c.execute("SET QUERY_BAND = '{};' FOR SESSION".format(";".join("{}={}".format(k,v) for k, v in queryBands.items())))