오라클 -> 티베로 마이그레이션 질문 드립니다... 0 3 1,842

by 튼실맨 [SQL Query] #티베로 [2022.09.14 16:20:06]


회사에서 이번에 들어가는 프로젝트 오라클에서 티베로 마이그레이션 중인데

  CREATE OR REPLACE FUNCTION "GETSEQ" (seq_name in varchar2)

return 

    number as num number;

begin

    select to_number(dbms_xmlgen.getxmltype('select '||seq_name||'.nextval from dual').Extract('//text()')) into num from dual;

    return num;

end;

이거 거든요....

CREATE OR REPLACE FUNCTION GETSEQ (seq_name in varchar)
return 
    number as num number;
begin
    select TO_NUMBER(XMLELEMENT('select' ||seq_name|| '.nextval from dual').EXTRACT('//text()')) into num from dual;
    return num;
end;

이런식으로 바꿔봤는데 정보가 너무 없어 곤혹입니다.. TO_NUMBER(XMLELEMENT  이 부분 문법이 틀린거 같은데 

티베로 공식 문서를 제가 이해를 잘 못하겠슴다... 도움 주실 분 계신지요 ㅜ

 

 

 

by 튼실맨 [2022.09.14 16:26:52]

굳이 저렇게 XML함수를 사용 안 해도 괜찮을까요?? 어떤 식으로 함수를 만들어야 할지 감이 안 잡힙니다.


by 마농 [2022.09.14 16:36:05]

EXECUTE IMMEDIATE 을 이용하세요. (Oracle / tibero 동일)

CREATE OR REPLACE FUNCTION getseq(seq_name IN VARCHAR2)
RETURN NUMBER
AS
    num NUMBER;
BEGIN
    EXECUTE IMMEDIATE 'SELECT '||seq_name||'.NEXTVAL FROM dual' INTO num;
    RETURN num;
END;
/

 


by 튼실맨 [2022.09.14 17:23:31]

감사합니다!! 정상 작동 하네요 ㅜㅠ 하나 또 배워갑니다

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입