문제 설명
blob 및 clob 데이터 유형이 있는 oracle11g에 테이블을 생성한 다음 다음 쿼리를 실행했습니다. (I have create table in oracle11g which has blob and clob data type and then I have run following query)
대상 데이터베이스의 ddl 스키마를 가져오는 샘플 프로그램을 만들려고 합니다. 그런 ddl SQL을 가져오기 위해 get_ddl() 메서드를 사용하고 있습니다. 다음과 같은 인덱스 쿼리에 대해 get_ddl
명령을 실행할 때 문제가 있습니다.
SELECT DBMS_METADATA.GET_DDL('INDEX', INDEX_NAME) FROM USER_INDEXES ;
다음과 같은 종류의 인덱스 쿼리도 포함하는 모든 인덱스 생성 쿼리를 결과에 반환합니다. ‑
CREATE UNIQUE INDEX "SCOTT"."SYS_IL0000076778865$$" ON "SCOTT"."CLOBD" (
PCTFREE 10 INITRANS 2 MAXTRANS 255
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "USERS"
PARALLEL (DEGREE 0 INSTANCES 0)
이러한 인덱스 쿼리는 CLOB 및 BLOB 데이터 유형에 대해 데이터베이스에서 자동 생성됩니다. 그래서 ddl 스키마 목록을 가져오는 쿼리를 무시하고 싶습니다. 어떻게 무시할 수 있습니까? 또는 무시할 수 있는 방법을 제안해 주세요.
참조 솔루션
방법 1:
You can filter out index_types that are not required.
SELECT DBMS_METADATA.GET_DDL('INDEX', INDEX_NAME) FROM USER_INDEXES WHERE INDEX_TYPE NOT IN ('LOB');
Here are the sample types:
SQL> select distinct index_type from dba_indexes;
INDEX_TYPE
IOT ‑ TOP
LOB
FUNCTION‑BASED NORMAL
NORMAL
CLUSTER
(by santosh、Durga Viswanath Gadiraju)