DB2에서 함수를 만들기가 여가 까다로운게 아니네요~ 문서가 많은 것도 아니고..
제가 함수를 만드는에 함수내에서 chr 함수 나 mod함수를 사용은 어떻게 해야하는지요?
CREATE FUNCTION FUNC_digitToString(v_num NUMERIC(10))
RETURNS VARCHAR(1)
BEGIN ATOMIC
DECLARE v_digitStr varchar(1);
if (v_num<10) then
set v_digitStr = char(v_num);
else
set v_digitStr = chr(ascii('A') + v_num - 10);
END IF;
return v_digitStr;
END@
위를 생성을 하면 아래와 같이 메세지가 나옵니다.
SQL0440N No authorized routine named "CHR" of type "FUNCTION" having
compatible arguments was found. LINE NUMBER=9. SQLSTATE=42884
또한 mod 함수는 아래와 같이 사용을 하였습니다.
WHILE (v_dividend != 0) DO
SET v_remainder = mod(v_dividend, v_radix);
SET v_numStr = FUNC_digitToString(v_remainder) || v_numStr;
SET v_dividend = trunc(v_dividend / v_radix);
END WHILE;
이 구문이 들어간 함수를 실행하면 아래와 같이 메세지가 나옵니다.
SQL0440N No authorized routine named "MOD" of type "FUNCTION" having
compatible arguments was found. LINE NUMBER=28. SQLSTATE=42884
이를 어떻게 해결을 해야하는지 계속 헤매고 있습니다. 도와주세요~^^;; |