mssql 에서 sp_executesql 을 이용해서 동적 쿼리를 실행 하고 있는데요.
mssql function을 만들다가, sp_executesql을 이용해서 사용자정의 함수를 생성 하였습니다.
근데 실행하면
'함수 내에서는 함수와 저장 프로시저만 실행할 수 있습니다.' 이 오류가 계속 발생하네요.
원인을 찾는 과정에서 function에서는 확장 프로시져만 실행 가능 하다는 것을 알게 되었는데,
sp_executesql은 master디비에 확장저장 프로시져로 생성되어진 것인데, 왜 실행이 안되고 저 오류가 발생하는지 모르겠습니다.
이런 경우 경험 하신분은 좀 알려주시면 감사 하겠습니다.
아래는 생성한 함수 소스 입니다.
CREATE FUNCTION logger.GETCC ( @v_insStr varchar(256), @v_match varchar(10), @v_intNo int )
RETURNS VARCHAR(512) AS
BEGIN
declare @V_RTR VARCHAR(40)
DECLARE @EMP_ID1 varchar(40)
DECLARE @level int
set @level = 35
exec master.dbo.sp_executesql
N'select @EMP_ID = EMP_ID from pubs.dbo.employee where job_lvl = @level'
, N'@EMP_ID varchar(40) out, @level tinyint'
, @EMP_ID1 out
, @level
SET @V_RTR = @EMP_ID1
RETURN @V_RTR
END
|