안녕하세요
Procedure 에 대해서 공부 하고 있는 학생 입니다.
저번 질문 때도 자세하게 답변 해주셔서 많은 도움을 받았는데요
이번에도 질문 드릴게 하나 더 있어서 이렇게 글 적습니다.
dbms_metadat.get_ddl 을 이용한 Procedure 생성 인데요.
=======================================================================
Select dbms_metadata.get_ddl('OBJECT_TYPE','OBJECT_NAME','OWNER') FROM DUAL;
=======================================================================
의 구문을 아래의 프로시져로 바꿔서 만든 것입니다.
=======================================================================
CREATE OR REPLACE PROCEDURE get_source
(
v_object_type IN varchar2,
v_obejct_name IN varchar2,
v_owner IN VARCHAR2
)
IS
v_text long;
BEGIN
DBMS_OUTPUT.ENABLE ;
SELECT DBMS_METADATA.GET_DDL
(upper(v_object_type), upper(v_obejct_name), upper(v_owner)) INTO v_text
FROM DUAL;
DBMS_OUTPUT.PUT_LINE('TEXT : '||v_text||' ');
END;
/
=======================================================================
실행은 exec get_source('type','name','owner');
이렇게 될 것입니다. 제가 하고 싶은 것은
exec get_source('name','owner'); 이렇게 타입 부분을 빼서 만들어 보고싶은데요.
type을 입력 하지 않아도 프로시져가 실행 되게씀 하고 싶은데, 처음 하는거라 그런지
감이 오질 않네요.
선배님들의 조언 부탁 드리겠습니다 ㅠ