sqlserver 存储过程调用报错
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlserver 存储过程调用报错相关的知识,希望对你有一定的参考价值。
sqlserver数据库中有两个存储过程A和B,存储过程A中调用了B,执行A时,提示错误,且错误提示是B中的列明“***”无效,但是使用相同的参数单独调用B就可以执行成功,这是什么原因?
不是提示了吗?
PAYSTAT24MONTH 无效
你看是不是写错列名了。
或者你A调用B的时候某些参数类型变了。
你可通过print来打印出你运行到的步骤来调试的。 参考技术A 错误提示 贴出来
请采纳!
pymssql调用sqlserver存储过程带output 参数
pymssql调用sqlserver存储过程带output 参数
直接上代码
def api_adddept(): data = json.loads(request.get_data()) userdata={} with UseDataBaseSQLServer() as cursor: msg=cursor.callproc(‘[AppData].[dbo].[Fyit_AddDept]‘, (data["parentdept_add"],data["deptname_add"],1,pymssql.output(str),pymssql.output(str))) userdata[‘result_code‘]=msg[3] userdata[‘result_msg‘]=msg[4] # sql=‘DECLARE @return_value int,@result_code nvarchar(1024),@result_msg nvarchar(1024);‘ # ‘EXEC @return_value = [AppData].[dbo].[Fyit_AddDept] @parentid = {0},@dept = N‘{1}‘,@display = 1,@result_code = @result_code OUTPUT,@result_msg = @result_msg OUTPUT;‘ # ‘SELECT @result_code as N‘@result_code‘,@result_msg as N‘@result_msg‘,@return_value as N‘Return Value‘;‘ # cursor.execute(sql.format(data["parentdept_add"],data["deptname_add"])) # result = cursor.fetchone()
# while result: # userdata[‘resultcode‘]=str(result[0]) # userdata[‘resultmsg‘]=result[0] # userdata[‘returnvalue‘]=str(result[2]) # break resp = jsonify(userdata) resp.status_code = 200 return resp
其上两种写法都可行。
第一种简单,方便。第二种还要自己拼SQL。
以上是关于sqlserver 存储过程调用报错的主要内容,如果未能解决你的问题,请参考以下文章