Updating a Row in the Table with object type column : Update « Object Oriented « Oracle PL/SQL Tutorial






SQL>
SQL> CREATE Or Replace TYPE ProductType AS OBJECT (
  2    id          NUMBER,
  3    name        VARCHAR2(15),
  4    description VARCHAR2(22),
  5    price       NUMBER(5, 2),
  6    days_valid  NUMBER
  7  )
  8  /

Type created.

SQL> CREATE TABLE products (
  2    product           ProductType,
  3    count             NUMBER
  4  )
  5  /

Table created.

SQL>
SQL> INSERT INTO products (product,count) VALUES (
  2            ProductType(1, 'AA', 'BBB', 3.95, 10),50
  3  );

1 row created.

SQL>
SQL> INSERT INTO products (product,count) VALUES (
  2            ProductType(2, 'CC', 'DDDD', 2.99, 5),25
  3  );

1 row created.

SQL>
SQL> SELECT product
  2  FROM products;

PRODUCT(ID, NAME, DESCRIPTION, PRICE, DAYS_VALID)
------------------------------------------------------
PRODUCTTYPE(1, 'AA', 'BBB', 3.95, 10)
PRODUCTTYPE(2, 'CC', 'DDDD', 2.99, 5)

SQL>
SQL>
SQL> UPDATE products p
  2  SET p.product.description = 'new D'
  3  WHERE p.product.id = 1;

1 row updated.

SQL>
SQL> SELECT product
  2  FROM products;

PRODUCT(ID, NAME, DESCRIPTION, PRICE, DAYS_VALID)
--------------------------------------------------------
PRODUCTTYPE(1, 'AA', 'new D', 3.95, 10)
PRODUCTTYPE(2, 'CC', 'DDDD', 2.99, 5)

SQL>
SQL>
SQL> drop table products;

Table dropped.

SQL>








32.14.Update
32.14.1.Updating a Row in the Table with object type column
32.14.2.ORA-22908: reference to NULL table value
32.14.3.Update user-defined type column