oracle调用返回值存储过程,请问go语言如何调用oracle的存储过程并获取存储过程的返回值呢?...
func callpro(id string){var res interface{}qry := `BEGIN SP_DEAL_GETLINESBYITEMID(:id,:order_id); END;`if _, err := Db.Exec(qry,id,sql.Out{Dest:&res});err!=nil{Log.Debug("exec err is %s",err)}rest
func callpro(id string){
var res interface{}
qry := `BEGIN SP_DEAL_GETLINESBYITEMID(:id,:order_id); END;`
if _, err := Db.Exec(qry,id,sql.Out{Dest:&res});err!=nil{
Log.Debug("exec err is %s",err)
}
rest := res.(driver.Rows)
value := make([]driver.Value,len(rest.Columns()))
for {
if err := rest.Next(value);err != nil{
if err == io.EOF{
Log.Debug("err is %v",err)
break
}
Log.Debug("value is %v",value)
}
}
}
报错:2018/09/26 16:50:57.783 [D] [default.go:66] exec err is dpiStmt_execute(mode=32 arrLen=-1): ORA-06550: 第 1 行, 第 7 列:
PLS-00306: 调用 'SP_DEAL_GETLINESBYITEMID' 时参数个数或类型错误
ORA-06550: 第 1 行, 第 7 列:
PL/SQL: Statement ignored
请问出参是cursor类型 该如何调用存储过程呢 用的也是"gopkg.in/goracle.v2"这个包
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)