OS환경 : Oracle Linux 6.8 (64bit)
DB 환경 : Oracle Database 11.2.0.4
에러 : ORA-44425: XML DB needs to be installed for creating an XMLType table or column
xml type 테이블 및 컬럼을 생성하려던 중 발생한 메세지
1 2 3 4 5 | SQL> create table gaga (xml xmltype) XMLTYPE COLUMN "XML"STORE AS SECUREFILE BINARY XML; create table gaga (xml xmltype) XMLTYPE COLUMN "XML"STORE AS SECUREFILE BINARY XML * ERROR at line 1: ORA-44425: XML DB needs to be installed for creating an XMLType table or column |
해결 방법 : xml db 설치
현재 xml db 설치되었는지 확인
1 2 3 | SQL> select username from dba_users where username = 'XDB'; no rows selected |
존재하지 않음
xml db 설치
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | SQL> @?/rdbms/admin/catqm.sql Starting Oracle XML DB Installation ... ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Enter Parameter #1 <XDB_PASSWD>, password for XDB schema: Enter value for 1: xdb <-- [xml 유저 패스워드 입력] Enter Parameter #2 <TABLESPACE>, tablespace for XDB: Enter value for 2: users <-- [xml 기본 테이블스페이스 입력] Enter Parameter #3 <TEMP_TABLESPACE>, temporary tablespace for XDB: Enter value for 3: temp <-- [xml 기본 템프 테이블스페이스 입력] Enter Parameter #4 <SECURE_FILES_REPO>, YES/NO ...................If YES and compatibility is at least 11.2, ...................then XDB repository will be stored as secure files. ...................Otherwise, old LOBS are used Enter value for 4: yes <-- [안내 메세지 yes ] old 5: :user_opt_secfiles := '&4'; new 5: :user_opt_secfiles := 'yes'; PL/SQL procedure successfully completed. |
테이블스페이스는 개별적으로 생성해주는것을 권장하지만 지금은 users 테이블스페이스로 지정함
*설치 스크립트 중 alter system flush shared_pool; 명령도 포함됨
필요한 권한 부여
1 2 3 4 5 6 7 | SQL> grant execute on utl_file to xdb; Grant succeeded. SQL> grant execute on dbms_lob to xdb; Grant succeeded. |
invalid object 확인
1 | SQL> @?/rdbms/admin/utlrp.sql |
xml db 설치 후 유저 확인
1 2 3 4 5 | SQL> select username from dba_users where username = 'XDB'; USERNAME ------------------------------ XDB |
컴포넌트 확인
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | SQL> select * from dba_registry where comp_id ='XDB'; COMP_ID ------------------------------ COMP_NAME -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- VERSION STATUS MODIFIED NAMESPACE CONTROL SCHEMA ------------------------------ ---------------------- ----------------------- ------------------------------ ------------------------------ ------------------------------ PROCEDURE STARTUP PARENT_ID ------------------------------------------------------------- -------- ------------------------------ OTHER_SCHEMAS -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- XDB Oracle XML Database 11.2.0.4.0 VALID 31-DEC-2020 00:18:45 SERVER SYS XDB DBMS_REGXDB.VALIDATEXDB (null) (null) ANONYMOUS,XS$NULL |
xml 테이블 생성 테스트
1 2 3 | SQL> create table gaga (xml xmltype) XMLTYPE COLUMN "XML"STORE AS SECUREFILE BINARY XML; Table created. |
정상적으로 생성됨
원인 : xml db가 설치되어 있지 않아서 발생한 문제
xml db가 설치되어 있지 않아서 발생한 문제
*추가
xml db 삭제 방법
db 재기동
1 2 3 | SQL> shutdown immediate; startup; |
삭제 스크립트 실행
1 | @?/rdbms/admin/catnoqm.sql |
xml db 삭제 후 컴포넌트 확인
1 2 3 4 5 | SQL> select * from dba_registry where comp_id ='XDB'; no rows selected |
xml db 삭제 후 유저 확인
1 2 3 | SQL> select username from dba_users where username = 'XDB'; no rows selected |
*중요: 삭제와 재설치 사이에 데이터베이스는 반드시 종료와 재시작 해야함
참조 : http://www.oracle-wiki.net/startdocshowtoinstallxmldb
https://forums.aws.amazon.com/thread.jspa?threadID=112611
1552327.1