go version: go 1.19
my problem is with the database/sql package. I have plsql code available in service. values are sent to the service via map. but the number is not limited,
I need to send to db.exec() via sql.Named, I checked with loop and with interface, it didn’t work.
Please help me.
my codes are:
in the controller
const begin = `
jsonData.Put('stateid', :stateid);
`
array_for_param := map[string]string{
"stateid": "a",
}
temp, err := services.Perform(c, begin, array_for_param, i_User_Id)
if err != nil {
log.Fatal(err)
}
service code:
var params []interface{}
for key, value := range array_for_param {
params = append(params, sql.Named(key, value))
}
if _, err := db.Exec(declare+begin+end,
sql.Named("i_User_Id", i_User_Id),
params...,
); err != nil {
log.Fatal(err)
}
); err != nil {
log.Fatal(err)
}
The main problem I have is that I need to send the sql.Named code using a for, which is an unknown number
if _, err := db.Exec(declare+begin+end,
sql.Named("i_User_Id", i_User_Id),
for key, value := range array_for_param {
return sql.Named(key, value)
}
); err != nil {
log.Fatal(err)
}
I did that too