Возврат значений с помощью запроса INSERT с использованием Oracle - PullRequest
0 голосов
/ 26 марта 2019

Как передать значения параметров связывания в операторе EXE?

Например -

actualvalue = append(actualvalue, 1) 
actualvalue = append(actualvalue, 2) 
actualvalue = append(actualvalue, 3)

query = “insert into table (a,b,c) values (:a,:b,:c) returning primarykey, secondarykey into :primarykey,:secondarykey” 

stmtIns, err := dbConnImbl.Prep(query) 
if err != nil { fmt.Println("Second Method Error 22====>> ",err) } 
var id uint64 
var id2 uint64 
rowsAffected, err := stmtIns.Exe(actualvalue…, &id,&id2)//.Scan(&id,&id2) 
if err != nil { fmt.Println("Error Cluses " , err) }

выделенная строка не работает.

1 Ответ

0 голосов
/ 27 марта 2019

При вызове функции с переменными числами вы не можете передавать дополнительные аргументы после ..., поэтому вам также необходимо добавить указатели идентификатора к срезу фактического значения.

var actualvalue []interface{}
var id uint64 
var id2 uint64 

actualvalue = append(actualvalue, 1) 
actualvalue = append(actualvalue, 2) 
actualvalue = append(actualvalue, 3)
actualvalue = append(actualvalue, &id)
actualvalue = append(actualvalue, &id2)

query = "insert into table (a,b,c) values (:a,:b,:c) returning primarykey, secondarykey into :primarykey,:secondarykey"

stmtIns, err := dbConnImbl.Prep(query) 
if err != nil { fmt.Println("Second Method Error 22====>> ",err) } 

rowsAffected, err := stmtIns.Exe(actualvalue...)
if err != nil { fmt.Println("Error Cluses " , err) }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...