亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用golang返回mysql過程

使用golang返回mysql過程

Go
森欄 2023-03-29 15:56:15
我在使用 golang 返回過程時遇到問題。如果我從過程中刪除參數,過程將正常執行,但是,當我需要獲取返回值(OUT 參數)時,我無法獲取它并且過程不會執行。為了使測試更簡單并獲得幫助,我創建了一個簡單的過程,如下所示,我想得到它的回報。請遵循以下程序:drop procedure if exists PESSOA_TESTE;delimiter $$create procedure PESSOA_TESTE(out psaida int)beginset psaida = 2;end$$現在它遵循我用來嘗試獲取過程中指定的值 2 的 golang 代碼部分。var GerenciaBD GERENCIABDvar PontoExecucao intGerenciaBD.F_GERENCIABD_ABRIR_CONEXAO_MYSQL()GerenciaBD.DataBase.ExecContext(context.TODO(),"call PESSOA_TESTE", sql.Named("psaida", sql.Out{Dest:&PontoExecucao}))println(PontoExecucao)執行時我的答案是 0 而不是 2,這是過程中指定的答案。我的 golang 版本是 1.10。
查看完整描述

1 回答

?
慕桂英4014372

TA貢獻1871條經驗 獲得超13個贊

我不確定你想用你的代碼做什么,但如果你只想返回一個值,你可以這樣做:

存儲過程:

drop procedure if exists PESSOA_TESTE;


delimiter $$



create procedure PESSOA_TESTE(IN psaida int)


begin

SET psaida = 2;

select psaida;


end


$$

代碼:


? ?var GerenciaBD GERENCIABD

? ? var PontoExecucao int


? ? GerenciaBD.F_GERENCIABD_ABRIR_CONEXAO_MYSQL()


? ? GerenciaBD.DataBase.QueryRowContext(context.TODO(),"CALL PESSOA_TESTE(?)", PontoExecucao).Scan(&PontoExecucao)


? ? println(PontoExecucao)


查看完整回答
反對 回復 2023-03-29
  • 1 回答
  • 0 關注
  • 135 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號