0

我正在尝试在我的一个表中的 XML 类型列上创建一个 XML 索引。我们在这里使用 2 个表空间,一个用于表,第二个用于索引。

我想在索引表空间中创建 XMLIndex。

我正在使用以下查询 -

CREATE INDEX VISION_IX1 ON MDT_VISION_LOGGING_TBL(RAWMESSAGE)
INDEXTYPE IS XDB.XMLINDEX
NOPARALLEL;

请帮助我在哪里提到表空间子句。

4

1 回答 1

1

您必须命名路径表才能为非结构化组件指定存储:

CREATE TABLE MDT_VISION_LOGGING_TBL(ID NUMBER, RAWMESSAGE XMLTYPE) TABLESPACE TS_TABLES;

Table MDT_VISION_LOGGING_TBL created.

CREATE INDEX VISION_IX1 ON MDT_VISION_LOGGING_TBL(RAWMESSAGE)
INDEXTYPE IS XDB.XMLINDEX
PARAMETERS('PATH TABLE VISION_IX_PATH_TABLE (TABLESPACE TS_INDEXES)')
NOPARALLEL;

Index VISION_IX1 created.

您可以看到存储分配的位置:

SELECT US.SEGMENT_NAME, US.SEGMENT_TYPE, US.TABLESPACE_NAME
FROM USER_OBJECTS UO
JOIN USER_SEGMENTS US
ON US.SEGMENT_NAME = UO.OBJECT_NAME
WHERE UO.CREATED > TRUNC(SYSDATE);

SEGMENT_NAME                   SEGMENT_TYPE       TABLESPACE_NAME              
------------------------------ ------------------ ------------------------------
MDT_VISION_LOGGING_TBL         TABLE              TS_TABLES                         
SYS304166_VISION_IX_PIKEY_IX   INDEX              TS_TABLES                         
SYS304166_VISION_IX_VALUE_IX   INDEX              TS_TABLES                         
SYS_IL0000304163C00003$$       LOBINDEX           TS_TABLES                         
SYS_LOB0000304163C00003$$      LOBSEGMENT         TS_TABLES                         
VISION_IX_PATH_TABLE           TABLE              TS_INDEXES                        

您可以指定创建的其他两个索引也进入您的首选表空间:

CREATE INDEX VISION_IX1 ON MDT_VISION_LOGGING_TBL(RAWMESSAGE)
INDEXTYPE IS XDB.XMLINDEX
PARAMETERS('PATH TABLE VISION_IX_PATH_TABLE (TABLESPACE TS_TABLES)
  PIKEY INDEX VISION_IX_PIKEY (TABLESPACE TS_INDEXES)
  VALUE INDEX VISION_IX_VALUE (TABLESPACE TS_INDEXES)')
NOPARALLEL;

SELECT US.SEGMENT_NAME, US.SEGMENT_TYPE, US.TABLESPACE_NAME
FROM USER_OBJECTS UO
JOIN USER_SEGMENTS US
ON US.SEGMENT_NAME = UO.OBJECT_NAME
WHERE UO.CREATED > TRUNC(SYSDATE);

SEGMENT_NAME                   SEGMENT_TYPE       TABLESPACE_NAME              
------------------------------ ------------------ ------------------------------
MDT_VISION_LOGGING_TBL         TABLE              TS_TABLES                         
SYS_IL0000304183C00003$$       LOBINDEX           TS_TABLES                         
SYS_LOB0000304183C00003$$      LOBSEGMENT         TS_TABLES                         
VISION_IX_PATH_TABLE           TABLE              TS_INDEXES                        
VISION_IX_PIKEY                INDEX              TS_INDEXES                        
VISION_IX_VALUE                INDEX              TS_INDEXES                        
于 2016-03-30T18:25:00.407 回答