2024-10-01 09:22:26 发布
网友
我试图使用Python访问一个存储过程,在其中输入enter作为客户ID,它将呈现一个多行表,其中包含一个客户在餐厅吃的多个实例,以及他们吃了什么、什么时候吃、什么月份吃的。这是一个多行表,因为客户ID不是主键。在
在SQL中,输入以下命令:
call metrics.GetFoodByCustomerID("115960981")
将为我呈现正确的表。但是,当我在Python中运行以下函数时,我得到一个错误:我为procedure输入了错误的参数。在
[
你知道我错过了什么吗?在
documentation for ^{}声明第二个参数args应该是
args
Sequence of parameters to use with procedure
在你的队伍里
myCursor.callproc('metrics.GetFoodByCustomerID', ('115960981'))
您正在为args传入一个由括号包围的字符串。围绕'115960981'的括号没有效果,特别是它们不会将此值转换为1元素序列。但是,在Python中,字符串是序列,因此参数列表被解释为9个单字符字符串的序列。出现错误的原因是存储过程不接受9个参数。在
'115960981'
尝试将上面的行替换为
这可能就是你的目标。注意后面的逗号,它使括号中的表达式成为1元组。或者,使用一个列表来代替:您不需要在后面加逗号就可以生成一个单元素列表:
myCursor.callproc('metrics.GetFoodByCustomerID', ['115960981'])
documentation for ^{} 声明第二个参数
args
应该是在你的队伍里
您正在为
args
传入一个由括号包围的字符串。围绕'115960981'
的括号没有效果,特别是它们不会将此值转换为1元素序列。但是,在Python中,字符串是序列,因此参数列表被解释为9个单字符字符串的序列。出现错误的原因是存储过程不接受9个参数。在尝试将上面的行替换为
^{pr2}$这可能就是你的目标。注意后面的逗号,它使括号中的表达式成为1元组。或者,使用一个列表来代替:您不需要在后面加逗号就可以生成一个单元素列表:
相关问题 更多 >
编程相关推荐