SQL>
SQL> create or replace type employeeType is object (
2 empNo NUMBER,
3 eName VARCHAR2(10),
4 job VARCHAR2(9),
5 mgr NUMBER,
6 hireDate DATE,
7 sal NUMBER,
8 comm NUMBER,
9 deptNo NUMBER,
10 member procedure p_changeName (i_newName_tx VARCHAR2),
11 member function f_getIncome_nr return VARCHAR2
12 )
13 /
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 member procedure p_changeName(i_newName_tx VARCHAR2) is
7 begin
8 eName:=i_newName_tx;
9 end p_changeName;
10 end;
11 /
SP2-0818: Type Body created with compilation warnings
SQL>
SQL> create table t_emp of employeeType;
Table created.
SQL>
SQL>
SQL> declare
2 v_employeeType employeeType;
3 v_out_tx VARCHAR2(2000);
4 begin
5 v_employeeType:=employeeType(100,'TestEmp',null,null,sysdate,1000,500,10);
6 insert into t_emp values v_employeeType;
7
8 update t_emp set sal=sal+500 where empno=100;
9
10 select 'Income:'||t.f_getIncome_nr() into v_out_tx from t_emp t
11 where t.empno=100;
12 end;
13 /
PL/SQL procedure successfully completed.
SQL>
SQL> drop table t_emp;
Table dropped.
SQL> drop type employeeType;
Type dropped.
SQL>