BBB 라는 Function 은 String 을 조합 해서 Select 문을 만들고
AAA 라는 Function 에서 BBB 라는 Function 에서 생성한 Select 을 실행한 후 결과값을
리턴하길 원하는데 잘 되지를 않네요...^
(BBB 라는 Function 에서 만든 select 을 실행한 결과값을 AAA 라는 Function 에서 리턴해야 하는데
BBB 라는 Function 에서 만든 select 문자열을 리턴하네요...--;)
-- BBB Function
-- "A1DA" 입력시 결과는 "SELECT char(hextoint('A1')) + char(hextoint('DA'))" 가 리턴된다.
CREATE FUNCTION BBB (data_in CHAR(2000)) RETURNS CHAR(8000) BEGIN DECLARE data_out CHAR(4000); DECLARE data1 CHAR(2); DECLARE data_length INT; DECLARE start_point INT; SET data_length = length(data_in); SET start_point = 1; SET data_out = 'SELECT '; WHILE data_length > 1 LOOP SET data1 = substring(data_in, start_point, 2); SET data_out = data_out + ' char(hextoint(''' + data1 + ''')) ' ; SET start_point = start_point + 2; SET data_length = data_length - 2; IF data_length > 0 THEN SET data_out = data_out + ' + ' ; END IF; END LOOP; RETURN data_out; END
-- BBB('A1DA') 에 의한 결과를 리턴하는 Function
CREATE FUNCTION AAA (indata CHAR(2000)) RETURNS CHAR(2000) BEGIN DECLARE outdata CHAR(2000); DECLARE data2 CHAR(2000); outdata = call BBB(indata);
-- EXECUTE 로 이거저거 해보았는데 잘 안되네요... --; return outdata; END
-- 결과
현재 : select AAA('A1DA') -> "SELECT char(hextoint('A1')) + char(hextoint('DA'))"
원하는 리턴 : SELECT char(hextoint('A1')) + char(hextoint('DA')) 을 실행한 "★"
부탁합니다. --; 미리감사드립니다...
|