Oracle PL/SQL/Object Oriented Database/Alter Type

Материал из SQL эксперт
Перейти к: навигация, поиск

Alter a user-defined type

   <source lang="sql">

SQL> SQL> create or replace

 2  type person as object(
 3   first_name varchar2(100),
 4   last_name varchar2(100) )
 5  /

Type created. SQL> SQL> SQL> SQL> alter type person

 2  add attribute dob date
 3  cascade not including table data
 4  /

Type altered. SQL>

</source>
   
  


ALTER TYPE to add more methods and attributes

   <source lang="sql">

SQL> SQL> CREATE OR REPLACE TYPE Dummy AS OBJECT (

 2    f1 NUMBER,
 3    f2 NUMBER,
 4    MEMBER PROCEDURE Method1(x IN VARCHAR2),
 5    MEMBER FUNCTION Method2 RETURN DATE
 6  );
 7  /

Type created. SQL> SQL> CREATE OR REPLACE TYPE BODY Dummy AS

 2    MEMBER PROCEDURE Method1(x IN VARCHAR2) IS
 3    BEGIN
 4      NULL;
 5    END Method1;
 6
 7    MEMBER FUNCTION Method2 RETURN DATE IS
 8    BEGIN
 9      RETURN SYSDATE;
10    END Method2;
11  END;
12  /

Type body created. SQL> SQL> COLUMN object_name FORMAT a20 SQL> SQL> SELECT object_name, object_type, status

 2    FROM user_objects
 3    WHERE object_name = "DUMMY";

OBJECT_NAME OBJECT_TYPE STATUS


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

DUMMY TYPE VALID DUMMY TYPE BODY VALID SQL> SQL> ALTER TYPE Dummy REPLACE AS OBJECT (

 2    f1 NUMBER,
 3    f2 NUMBER,
 4    MEMBER PROCEDURE Method1(x IN VARCHAR2),
 5    MEMBER FUNCTION Method2 RETURN DATE,
 6    MEMBER PROCEDURE Method3
 7  );

Type altered. SQL> SQL> SQL> SELECT object_name, object_type, status

 2    FROM user_objects
 3    WHERE object_name = "DUMMY";

OBJECT_NAME OBJECT_TYPE STATUS


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

DUMMY TYPE VALID DUMMY TYPE BODY INVALID SQL> SQL>

</source>
   
  


Alter user-defined type to add a new attribute

   <source lang="sql">

SQL> SQL> SQL> create or replace type person as object(

 2   first_name varchar2(100),
 3   last_name varchar2(100) );
 4  /

SQL> SQL> SQL> alter type person add attribute ssn varchar2(11) INVALIDATE; Type altered. SQL> SQL> drop type person; Type dropped. SQL> SQL>

</source>