我需要在 python 中调用一个存储过程。 包装函数接受 n 个参数。 根据参数列表,我需要引用或取消引用参数。我还需要发送一个空参数。
如何遍历函数参数并构建 SQL 字符串?
例如。存储过程调用如下所示 - 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 新手,所以任何线索都会有很大帮助。
请您参考如下方法:
以下内容正是您想要的。它首先将列表 AV 初始化为全 NULL,然后迭代提供的参数数量,并适本地替换它们以形成您想要的查询字符串。 SQL = 字符串仅将引号添加到第一个参数。我是否正确理解了您的意图?
def execSp(*args):
AV = []
SQL = "exec SP_TEST(";
for ii in range(0,4) :
AV.append("NULL");
ii = 0;
for a in args:
AV[ii] = str(a);
ii+=1;
SQL = SQL + "\'" + AV[0] + "\'," + AV[1] + "," + AV[2] + "," + AV[3] + ")";
print SQL
execSp("hello", 1, 2, 3);
execSp("hi", 2, 3);
当我运行这个时,我得到
exec SP_TEST('hello',1,2,3)
exec SP_TEST('hi',2,3,NULL)
