An Oracle objects that allows one to store related rows from different tables in the same data block. A cluster can contain a maximum of 32 tables.

 SQL> create cluster teacher_student(t_id number)

            tablespace users;

 Cluster created.


SQL> create index teacher_student_ind on cluster teacher_student;

 Index created.


SQL> create table teacher(t_id number,t_name varchar2(10),room number)

           cluster teacher_student(t_id);

Table created.


SQL> create table student(s_id number,s_name varchar2(10),t_id number)

           cluster teacher_student(t_id);

Table created.


SQL> select object_name,object_type

           from user_objects

           where object_name='TEACHER_STuDENT';

no rows selected


SQL> column object_name format a25

SQL> column object_type format a25


SQL> select object_name,object_type

           from user_objects

           where object_name='TEACHER_STUDENT';

OBJECT_NAME                                                                                OBJECT_TYPE

--------------------------------- ------------------------------------------------------

TEACHER_STUDENT                                             CLUSTER


Giving Creating Cluster Permission to another User:

SQL> grant create cluster to scott;

Grant succeeded.