【发布时间】:2013-02-03 18:26:34
【问题描述】:
我需要在 python 中调用存储过程。 包装函数接受 n 个参数。 根据参数列表,我需要引用或取消引用参数。我还需要发送一个空参数。
如何遍历函数参数并构建 SQL 字符串?
例如。存储的 proc 调用如下所示 - SP_TEST('chrA',intB,chrC)
def execSp(a,b,c,d):
<iterate through params and build param list>
#If the parameter c is null the SQL should be built as below
SQL="exec SP_TEST('a',b,Null)";
我尝试使用 locals() 但它返回一个无序列表
我是 python 新手,所以任何线索都会有很大帮助。
【问题讨论】:
-
使“函数的外观”(即程序其余部分的接口)尽可能“友好”通常是个好主意。为什么你需要引用一些论点,而另一些则不需要?似乎让生活变得更加困难......函数不能处理这个吗?
-
感谢您的回复。我们可以编写它以便函数处理它。但是,这是对现有应用程序的重写。尽量减少现有应用程序中的代码更改次数。当前的 UI 层使用一组参数进行调用,我们现在需要一个 python 包装器来调用底层的存储过程。引号用于处理字符串而不是整数。将 NULL 作为存储过程调用的一部分传递会带来额外的复杂性。
-
我现在明白了。我已经发布了一个答案,我相信它可以满足您的所有要求 - 如果没有,您应该能够很容易地找出所需的更改。
-
太棒了。这有帮助。正是我想要的。
-
感谢大家的回复。想出了解决这一问题的不同方法。我只是不能对答案投票(显然没有足够的声誉:))..
标签: python function arguments locals ordereddictionary