Cluster confusos

Hola.
Tengo otro problemita:
Estoy definiendo un cluster:
CREATE CLUSTER CLU_IDATRIBUTO(PK_IDATRIBUTO NUMBER(4))
TABLESPACE WOMASYS_TABLES;
y luego creo una tabla:
CREATE TABLE TBL_ATRIBUTO (
PK_I_IDATRIBUTO NUMBER(4) CONSTRAINT NN_PK_I_IDATRIBUTO NOT NULL,
S_NOMBREATRIBUTO VARCHAR2(16) CONSTRAINT NN_S_NOMBREATRIBUTO NOT NULL,
CONSTRAINT CPK_I_IDATRIBUTO PRIMARY KEY (PK_I_IDATRIBUTO),
CONSTRAINT CU_S_NOMBREATRIBUTO UNIQUE (S_NOMBREATRIBUTO)
)
CLUSTER CLU_IDATRIBUTO(PK_I_IDATRIBUTO);
todo lo hace bien el problema es que los indices:
CPK_I_IDATRIBUTO y CU_S_NOMBREATRIBUTO
No los crea en TABLESPACE_WOMASYS y no se que hacer.
Le agradezco su ayuda...

1 respuesta

Respuesta
1
Crear el cluster en ese tablespace imagino que no necesariamente fuerza a la tabla y sus índices a crearse en el mismo. Utiliza:
CREATE TABLE TBL_ATRIBUTO (
PK_I_IDATRIBUTO NUMBER(4) CONSTRAINT NN_PK_I_IDATRIBUTO NOT NULL,
S_NOMBREATRIBUTO VARCHAR2(16) CONSTRAINT NN_S_NOMBREATRIBUTO NOT NULL,
CONSTRAINT CPK_I_IDATRIBUTO PRIMARY KEY (PK_I_IDATRIBUTO),
CONSTRAINT CU_S_NOMBREATRIBUTO UNIQUE (S_NOMBREATRIBUTO)
)
CLUSTER CLU_IDATRIBUTO(PK_I_IDATRIBUTO)
TABLESPACE WOMASYS_TABLES;
Ya lo hice y me sale este error:
TABLESPACE WOMASYS_TABLES
*
ERROR en línea 8:
ORA-01771: illegal option for a clustered table.
De la otra forma la tabla si se crea en WOMASYS_TABLES, pero los indices quedan en el tablespace USER...
Saludos...
Añade detrás de cada CONSTRAINT la opción USING INDEX TABLESPACE WOMASYS_TABLES
Sé que funciona con la PRIMARY KEY, con el UNIQUE no lo sé:
CREATE TABLE TBL_ATRIBUTO (
PK_I_IDATRIBUTO NUMBER(4) CONSTRAINT NN_PK_I_IDATRIBUTO NOT NULL,
S_NOMBREATRIBUTO VARCHAR2(16) CONSTRAINT NN_S_NOMBREATRIBUTO NOT NULL,
CONSTRAINT CPK_I_IDATRIBUTO PRIMARY KEY (PK_I_IDATRIBUTO)
USING INDEX TABLESPACE WOMASYS_TABLES,
CONSTRAINT CU_S_NOMBREATRIBUTO UNIQUE (S_NOMBREATRIBUTO)
)
CLUSTER CLU_IDATRIBUTO(PK_I_IDATRIBUTO);

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas