오라클 DBMS_METADATA.GET_DDL 실행시 에러 문의 드립니다,. 1 5 205

by 동동동 [Oracle 기초] oracle [2021.10.19 09:13:58]


안녕하세요..

DBMS_METADATA.GET_DDL 를 이용해서 Script를 추출하려고 하는데요..에러가 나네요..

인터넷에서 에러메세지를 검색해 봐도 무슨말이지..@@

oracle 12C 사용 중입니다..

 

SELECT DBMS_METADATA.GET_DDL('INDEX', INDEX_NAME) FROM DBA_INDEXES;

 

ORA-06502: PL/SQL: 수치 또는 값 오류
ORA-31606: XML context 65 does not match any previously allocated context
ORA-06512: "SYS.DBMS_METADATA",  6478행
ORA-06512: "SYS.UTL_XML",  462행
ORA-06512: "SYS.DBMS_METADATA_INT",  8316행
ORA-06512: "SYS.DBMS_METADATA_INT",  12489행
ORA-06512: "SYS.DBMS_METADATA_INT",  12697행
ORA-06512: "SYS.DBMS_METADATA",  5106행
ORA-06512: "SYS.DBMS_METADATA",  6449행
ORA-06512: "SYS.DBMS_METADATA",  9202행
ORA-06512:  1행

 

도움 부탁드립니다..

 

by 마농 [2021.10.19 15:35:10]

SELECT DBMS_METADATA.GET_DDL('INDEX', INDEX_NAME, OWNER) FROM DBA_INDEXES;


by 동동동 [2021.10.19 15:43:59]

마농님 답변 감사드립니다...

owner 를 where에 추가하거나 Select 절에 칼럼을 추가하면 동일한 에러가 나네요..

원래 지정을 못하는 건가요?

 

-- 에러

SELECT TABLE_NAME, INDEX_NAME, DBMS_METADATA.GET_DDL('INDEX', INDEX_NAME, OWNER) FROM DBA_INDEXES;

 

-- 에러

SELECT DBMS_METADATA.GET_DDL('INDEX', INDEX_NAME, OWNER) FROM DBA_INDEXES
WHERE OWNER = '사용자ID';


by 마농 [2021.10.19 15:48:03]

특정 인덱스에서 에러가 나는 듯 한데
어떤 인덱스에서 나는 에러인지 조건을 통해 범위를 줄여가면서 찾아 보세요.
WHERE ROWNUM <= 10


by 동동동 [2021.10.19 16:28:40]

답변 감사드립니다..

첫 줄부터 바로 동일한 에러네요..ㅠㅠ

ORA-31606 에러 조치 방법을 검색해 보니..

Action: Always call XMLINIT before any other methods in pkg. UTL_XML

 

라고 나오는데..무슨 말인지...ㅠㅠ


by 동동동 [2021.10.19 17:55:50]

자답이 됬네요...권한 문제 였던것 같습니다..

권한 주니 해결 되었습니다..

 

grant select_catalog_role to 사용자;

 

답변 주신 마농님 감사드립니다...^^

 

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