Object types with member functions : Object Type « Object Oriented « Oracle PL/SQL Tutorial






SQL>
SQL> create or replace type employeeType is object (
  2      empNo    NUMBER,
  3      eName    VARCHAR2(10),
  4      job      VARCHAR2(9),
  5      hireDate DATE,
  6      sal      NUMBER,
  7      comm     NUMBER,
  8      member   procedure p_changeName (i_newName_tx VARCHAR2),
  9      member   function  f_getIncome_nr  return VARCHAR2
 10  )
 11  /

SP2-0816: Type created with compilation warnings

SQL>
SQL> create or replace type body employeeType as
  2      member function f_getIncome_nr return VARCHAR2 is
  3      begin
  4          return sal+comm;
  5      end f_getIncome_nr;
  6
  7      member procedure p_changeName (i_newName_tx VARCHAR2) is
  8      begin
  9          eName:=i_newName_tx;
 10      end p_changeName;
 11  end;
 12  /

SP2-0818: Type Body created with compilation warnings

SQL>
SQL> desc employeeType
 Name                           Null?    Type
 ---------------------------------
 EMPNO                                   NUMBER
 ENAME                                   VARCHAR2(10)
 JOB                                     VARCHAR2(9)
 HIREDATE                                DATE
 SAL                                     NUMBER
 COMM                                    NUMBER

METHOD
------
 MEMBER PROCEDURE P_CHANGENAME
 Argument Name                  Type                    In/Out Default?
 ------------------------------ ----------------------- ------ --------
 I_NEWNAME_TX                   VARCHAR2                IN

METHOD
------
 MEMBER FUNCTION F_GETINCOME_NR RETURNS VARCHAR2

SQL> /

SP2-0818: Type Body created with compilation warnings

SQL>
SQL> drop type employeeType;

Type dropped.

SQL>
SQL>








32.1.Object Type
32.1.1.Creating Object Types
32.1.2.Object instances and initialization
32.1.3.Nested object
32.1.4.Declare a function.
32.1.5.The MEMBER FUNCTION clause declares the getByDate() function.
32.1.6.The body defines the code for the method, and a body is created using the CREATE TYPE BODY statement.
32.1.7.Create a synonym and a public synonym for a type
32.1.8.Using DESCRIBE to Get Information on Object Types
32.1.9.Object types with member functions
32.1.10.add attribute
32.1.11.drop attribute
32.1.12.Object elements are referenced by using variable.attribute and variable.method notation.
32.1.13.Call data type member function in PL/SQL
32.1.14.Call data type constructor to initialize it
32.1.15.You must create an instance of the object first. With object types, you cannot just start assigning values to attributes.
32.1.16.You can set the depth to which DESCRIBE will show information using SET DESCRIBE DEPTH.
32.1.17.Use objects in SQL, First, you can use object types as attributes in a traditional relational way)
32.1.18.Alternatively, you can create an object table.
32.1.19.Use Object PL/SQL
32.1.20.Retrieve object as a whole
32.1.21.Using Objects
32.1.22.Combine user-defined type to create new type
32.1.23.Use self to reference member variable
32.1.24.Overloading based on user defined object types.