Mega Code Archive

 
Categories / Oracle PLSQL / Object Oriented Database
 

Use constructor to create new objects

SQL> SQL> SQL> CREATE OR REPLACE TYPE BookType AS OBJECT (   2     rebate   NUMBER (10, 4),   3     price           NUMBER (10, 2),   4     CONSTRUCTOR FUNCTION BookType (price NUMBER)   5        RETURN SELF AS RESULT   6  )   7  INSTANTIABLE FINAL;   8  / SP2-0816: Type created with compilation warnings SQL> SQL> CREATE OR REPLACE TYPE BODY BookType   2  AS   3     CONSTRUCTOR FUNCTION BookType (price NUMBER)   4        RETURN SELF AS RESULT   5     AS   6     BEGIN   7        SELF.price := price * .9;   8        RETURN;   9     END BookType;  10  END;  11  / SP2-0818: Type Body created with compilation warnings SQL> SQL> DECLARE   2     v_price   BookType := BookType (NULL, NULL);   3  BEGIN   4     v_price.price := 75;   5     DBMS_OUTPUT.put_line (v_price.price);   6  END;   7  / 75 PL/SQL procedure successfully completed. SQL> SQL>