<프로시저 test_str>
------------------------------------------------------------------------------------------------------
CREATE PROC [dbo].[test_str]
(
@PSTR varchar(50),
@RESULT varchar(50) OUTPUT
)
AS
BEGIN
print '@PSTR = '+@PSTR ;
select @RESULT = code_id from fim_code where code_id in (@PSTR);
print @RESULT;
END
------------------------------------------------------------------------------------------------------
<프로시저 실행문 및 결과>
------------------------------------------------------------------------------------------------------
declare
@RESULT varchar(50);
exec dbo.test_str '''001'',''001''',@RESULT;
--> 결과
@PSTR = '001','001' (<-- 첫번째 print 출력)
(<-- 두번째 print 출력) : 출력되지 않음
------------------------------------------------------------------------------------------------------
질문 : 프로시저 내에서 실행될 쿼리는
@PSTR = '001','001'
select code_id from fim_code where code_id in (@PSTR);
select code_id from fim_code where code_id in ('001','001');
위와 같이 IN 구분에 여러 문자값을 하나의 파라미터로 전달하여 실행되기를 원합니다.
저렇게 실행되기 위해서는 프로시저 실행시 파라미터를 어떻게 넣어야 정상적으로 실행이 될까요?
exec dbo.test_str '''001'',''001''',@RESULT;
이렇게 넣었을경우 정상적으로 실행이 되지 않습니다. |