go 如何调用 sqlserver 带传出参数的存储过程
包
go get github.com/denisenkom/go-mssqldb
说明
- 例如有个叫proc的存储过程,接收7个varchar参数,两个传出参数@on_return,@on_message.
- 这个包我看了一圈都不知道如何用简便快捷的方法快速获取返回值,所以才用了比较笨的方法,知道快速获取的朋友,希望能告知。
实现
实现思路:拼接sql,返回结果集。
declare @p1 int set @p1=0 declare @p2 varchar(1024) set @p2='' exec proc N'1',N'2',N'3',N'4',N'5',N'6',N'7',@p1 output,@p2 output select @p1,@p2
golang实现
//参数拼接 params := fmt.Sprintf("N'%s',N'%s',N'%s',N'%s',N'%s',N'%s',N'%s'", "1","2","3","4","5","6","7") sqlRaw := ` declare @p1 int set @p1=0 declare @p2 varchar(1024) set @p2='' exec proc `+params+`,@p1 output,@p2 output select @p1,@p2 ` rows,err:=sqlServer.Query(sqlRaw) if err != nil { log.Fatal(err) } var onReturn int var onMessage string for rows.Next(){ rows.Scan(&onReturn,&onMessage) } rows.Close() log.Println(onReturn,onMessage)
ps:如果是返回结果集的存储过程,直接Query('exce proc')即可,当做普通的查询即可
本作品采用《CC 协议》,转载必须注明作者和本文链接