반응형
문제점
- 사용하고 있는 프로시저(A) 안에 다른 프로시저(B)를 호출하고 있음. B프로시저에서 select 문이 존재함
- 해당 (A)프로시저 실행시 이렇게 결과가 두개가 나오게 됨 ( select 문 때문에 )
- 이 경우에 닷넷에서는 마지막 결과값인 return value를 받아오는데, golang 에서는 첫번째인 0 값을 가져옴
( 확실하지 않지만 결과상으로는 닷넷에서는 마지막을 본다고 생각됨 )
- 원하는건 golang에서 return value를 가져오고 싶음
- golang 코드로는 해결 불가능 하다고 결론
해결법
1. golang 코드상으로는 해결이 안된다고 판단. 결론적으로는 프로시저를 수정해야 함
2. B프로시저는 공통으로 사용하고있어 변경하기가 조금 부담
3. 아래 참고를 바탕으로, 임시테이블, 테이블변수로 해결이 되었다
1.선언
선언은 table로 하면 됩니다.
Declare @Table table
( nIndex int
, sName varchar(16)
, sID varchar(16))
2.입력
입력은 인서트(Insert)를 이용하면 됩니다.
Insert @Table Select *
From tb_WebServiceTest
Where intIndex = 45
이렇게 하면 셀랙트의 결과가 테이블 변수로 들어가게 되죠.
테이블 변수 만들어서 select 문을 테이블 변수에 초기화
4. 이렇게 하면 select 문이 출력되지 않음
...
...
뭔가 편법같긴한데... 프로시저를 최소한으로 수정하다보니 이렇게 밖에 안될듯 ..
참고
반응형
'Web > GoLang' 카테고리의 다른 글
[go/golang] SP 프로시저 list 와 ouput parameter 동시에 사용하기 (0) | 2021.07.28 |
---|---|
[Go/Golang] 구조체 JSON 변환 시, omitempty가 적용되지 않는 경우 (0) | 2021.07.28 |
[Golang] Json 데이터를 파싱할때 자동으로 형변환까지 한번에 하는 방법 (0) | 2021.07.28 |
[Golang] 튜토리얼 웹에서 go 실행 (0) | 2021.07.28 |
[Golang] gitlab subgroup repository import 하기, 에러시 대처법 (0) | 2021.06.12 |
댓글