Call User-defined constructors : Object Instance « Object Oriented « Oracle PL/SQL Tutorial






SQL> CREATE OR REPLACE TYPE address2 AS OBJECT
  2              (line1 VARCHAR2(20),
  3               line2 VARCHAR2(20),
  4               city VARCHAR2(20),
  5               state_code VARCHAR2(2),
  6               zip VARCHAR2(13),
  7               country VARCHAR(3),
  8    CONSTRUCTOR FUNCTION address2(addressLine1 VARCHAR2,
  9                  addressLine2 VARCHAR2,
 10                  address_city VARCHAR2,
 11                  address_state VARCHAR2,
 12                  address_zip VARCHAR2)
 13    RETURN SELF AS RESULT);
 14  /

Type created.

SQL> CREATE OR REPLACE TYPE BODY address2 IS
  2    CONSTRUCTOR FUNCTION address2(addressLine1 VARCHAR2,
  3                  addressLine2 VARCHAR2,
  4                  address_city VARCHAR2,
  5                  address_state VARCHAR2,
  6                  address_zip VARCHAR2)
  7    RETURN SELF AS RESULT
  8    IS
  9    BEGIN
 10      SELF.line1 :=addressLine1;
 11      SELF.line2 :=addressLine2;
 12      SELF.city :=address_city;
 13      SELF.state_code :=address_state;
 14      SELF.zip :=address_zip;
 15      SELF.country :='USA';
 16      RETURN;
 17    END;
 18  END;
 19  /

Type body created.

SQL> declare
  2    addressValue address2;
  3  begin
  4    addressValue :=address2('Suite 288','S Street','San Jose','CA','00000');
  5
  6    dbms_output.put_line(addressValue.line1);
  7
  8    dbms_output.put_line(addressValue.line2);
  9
 10    dbms_output.put_line(addressValue.city||', '||addressValue.state_code||' '||addressValue.zip);
 11
 12    dbms_output.put_line(addressValue.country);
 13  end;
 14  /
Suite 288
S Street
San Jose, CA 00000
USA

PL/SQL procedure successfully completed.








32.6.Object Instance
32.6.1.NULL objects and NULL attributes
32.6.2.Check nullment for object instance
32.6.3.Invoking a method
32.6.4.Call User-defined constructors