728x90
DECLARE @CONDITION GEOMETRY
EXECUTE SP_EXECUTESQL @QUERY,N'@CONDITION_P AS GEOMETRY',@CONDITION
MSSQL 동적쿼리 파라메터 전달
파라메터 전달 방법 SP_EXECUTESQL 을 이용합니다.
유의 사항 NVARCHAR를 사용합니다.
동적쿼리 문자열 내의 변수 정의를 해주어야합니다.
사용 방법
1.NVARCHAR 문자열로 동적쿼리 작성 시 문자열내에 @변수명 으로 변수 입력
2.EXCUTE SP_EXECUTESQL 에 문자열,[내부에서 사용한 변수의 정의],[실제값]
DECLARE @CONDITION GEOMETRY
EXECUTE SP_EXECUTESQL @QUERY,N'@CONDITION_P AS GEOMETRY',@CONDITION
* 수행할 동적 쿼리가 SP이고 OUTPUT이 있는 경우 [내부에서 사용한 변수 정의]에 OUTPUT으로 정의 해줄 수 있다.
아래는 예시 LSM_FIND_DIC_LANGUAGE_CP 라는 OUTPUT이 있는 SP를 수행하고 결과를 받고 싶을 때
DECLARE @KOR_NAME NVARCHAR(500)
DECLARE @KOR_NAME_RET NVARCHAR(500)
DECLARE @ENAME_RET NVARCHAR(500)
DECLARE @CNT_ERR_RET INT
DECLARE @CNT_TOKEN_RET INT
DECLARE @CNT_FIND_RET INT
DECLARE @FIND_TYPE_RET INT
DECLARE @RESULT_CHK_QUERY NVARCHAR(1024)
DECLARE @PARM NVARCHAR(500)
SET @PARM = ' @KOR_NAME_O NVARCHAR(500) OUTPUT'
SET @PARM += ', @ENAME_O NVARCHAR(500) OUTPUT'
SET @PARM += ', @CNT_ERR_O INT OUTPUT'
SET @PARM += ', @CNT_TOKEN_O INT OUTPUT'
SET @PARM += ', @CNT_FIND_O INT OUTPUT'
SET @PARM += ', @FIND_TYPE_O INT OUTPUT'
SET @RESULT_CHK_QUERY = '['+@DIC_SERVER+'].['+@DIC_INSTANCE+'].DBO.LSM_FIND_DIC_LANGUAGE_CP 2, '''+ @KOR_NAME+''', @KOR_NAME_O OUT, @ENAME_O OUT, @CNT_ERR_O OUT, @CNT_TOKEN_O OUT, @CNT_FIND_O OUT, @FIND_TYPE_O OUT'
EXEC SP_EXECUTESQL @RESULT_CHK_QUERY,@PARM, @KOR_NAME_O=@KOR_NAME_RET OUT,@ENAME_O=@ENAME_RET OUT,@CNT_ERR_O=@CNT_ERR_RET OUT,@CNT_TOKEN_O=@CNT_TOKEN_RET OUT,@CNT_FIND_O=@CNT_FIND_RET OUT,@FIND_TYPE_O=@FIND_TYPE_RET OUT
'프로그래밍 > TSQL' 카테고리의 다른 글
[MSSQL] 뒷공백 뒤공백 문자 비교 시 Tip (0) | 2020.11.11 |
---|---|
[MSSQL] 동적쿼리 (FLOAT 문자 변환 방법) (0) | 2020.11.06 |
[MSSQL] 다른 프로세스와의 교착 상태가 발생하여 실행이 중지되었습니다. TRACEON / TRACEOFF / ERRORLOG 사용법 (0) | 2020.10.23 |
[MSSQL]sqlcmd.exe/bcp.exe 는 SSMS package에 더이상 포함되지 않습니다. (0) | 2020.09.10 |
[MSSQL]서버간 공유폴더 사용하기 (0) | 2020.07.28 |
댓글