Call data type constructor to initialize it : 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>
SQL> declare
  2      v_employeeType employeeType;
  3  begin
  4      v_employeeType:=employeeType(100,'TestEmp', 'JobTitle', sysdate,1000, 500);
  5      v_employeeType.sal:=v_employeeType.sal+500;
  6
  7      DBMS_OUTPUT.put_line('Employee:'||v_employeeType.eName||' has income '||v_employeeType.f_getIncome_nr());
  8  end;
  9  /
Employee:TestEmp has income 2000

PL/SQL procedure successfully completed.

SQL>
SQL> drop type employeeType
  2  /

Type dropped.

SQL>
SQL>
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.