샴푸한잔
251
2019-04-26 15:15:58 작성 2019-04-26 15:45:11 수정됨
6
394

스프링+마이바티스+mssql 프로시저 호출 관련 질문(spring + mybatis + mssql procedure)


mapper.xml

<select id="pCnt" parameterType="java.util.Map" statementType="CALLABLE">
{ CALL pCnt( #{@day, mode=IN}, #{@c1, mode=IN}, #{@c2, mode=IN}, #{@c3, mode=IN}, #{@cnt, mode=OUT, jdbcType=INTEGER} ) } </select>


procedure(일부)

CREATE  PROCEDURE [dbo].[pCnt]

	  @day VARCHAR(10)
	, @c1 VARCHAR(20)
	, @c2 VARCHAR(20)
	, @c3 VARCHAR(20)
	, @cnt Int OUTPUT

AS
DECLARE   @aa INT
...


위와 같이 xml에서 호출하면 프로시저 실행은 정상적으로 됩니다.

콘솔에도 업데이트건 몇건 있다고 로그 찍히는것도 확인했는데 out요소에 대하여 return이 안되는데

어떤부분을 손을 봐야할까요....?

1
0
  • 답변 6

  • curioustore
    1k
    2019-04-26 15:40:29

    out에 javaType이 없어서 그런가...

    1
  • 샴푸한잔
    251
    2019-04-26 15:44:45

    curioustore 해보았지만 여전히 0을 뱉어내고있어요 .... 이런저런 예제들 다 찾아봤는데도 잘 안되네요 ㅠㅠ

    0
  • curioustore
    1k
    2019-04-26 15:48:15
    그렇다면 프로시져 자체가 잘못 구현되어있을거 같은데요. 너무길지않으면 프로시져를 올려주세요.
    1
  • 샴푸한잔
    251
    2019-04-26 15:55:39 작성 2019-04-26 15:55:57 수정됨

    curioustore 길어서 다 올려드리기는 좀 제한적일거같구요...

    asp에서는 현재 잘 작동이 되고있는 프로시저입니다


    cmd.CommandType = adCmdStoredProc
    cmd.CommandText = "pCnt"
    cmd.Parameters.Append cmd.CreateParameter ("@day" , adVarChar, adParamInput, 20, deliveryday) cmd.Parameters.Append cmd.CreateParameter ("@c1" , adVarChar, adParamInput, 20, paramValid(c1,"")) cmd.Parameters.Append cmd.CreateParameter ("@c2" , adVarChar, adParamInput, 20, paramValid(c2,"")) cmd.Parameters.Append cmd.CreateParameter ("@c3" , adVarChar, adParamInput, 20, paramValid(c3,"0")) cmd.Parameters.Append cmd.CreateParameter ("@cnt" , adInteger, adParamOutput, 4) cmd.Execute cnt= cmd("@cnt")

    asp에서 해당 프로시저 호출하는 코드구요....

    여기선 되는데 옮겨왔을때 안되요

    0
  • curioustore
    1k
    2019-04-26 16:23:00
    https://ukzzang.tistory.com/m/19 혹시 이런문제는 아닐까 의심해 봅니다. 
    1
  • 샴푸한잔
    251
    2019-04-26 17:26:51
    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.