out参数¶
- 1) Returning into语法
func outParam(db * sql.DB){
//用于存储返回的参数
var outVal int
var err error
var insertSQL string = `insert into testcase1(col1) values (:1) returning col1 into :c2`
//此处占位符名称需使用字母开头
_, err = db.Exec(insertSQL, 10, sql.Named("c2", sql.Out{Dest: &outVal}))
getError(err)
fmt.Println(outVal)
}
- 2) 存储过程out参数语法
func outProcedure(db * sql.DB) {
var err error
var outInt int
var createProcedureSQl string = `CREATE OR REPLACE PROCEDURE mygp4
(
yname IN INT ,
pwd OUT INT
)
AS
BEGIN
pwd = yname + 1;
END;`
var querySQL string = "begin mygp4(:yname, :pwd);end;"
//创建存储过程
_, err = db.Exec(createProcedureSQl)
getError(err)
//调用存储过程
_, err = db.Exec(querySQL, 1234, sql.Named("pwd",sql.Out{Dest: &outInt}))
getError(err)
fmt.Println(outInt)
}