Using Objects in PL/SQL : Object « PL SQL Data Types « Oracle PL/SQL Tutorial

Oracle PL/SQL Tutorial
1. Introduction
2. Query Select
3. Set
4. Insert Update Delete
5. Sequences
6. Table
7. Table Joins
8. View
9. Index
10. SQL Data Types
11. Character String Functions
12. Aggregate Functions
13. Date Timestamp Functions
14. Numerical Math Functions
15. Conversion Functions
16. Analytical Functions
17. Miscellaneous Functions
18. Regular Expressions Functions
19. Statistical Functions
20. Linear Regression Functions
21. PL SQL Data Types
22. PL SQL Statements
23. PL SQL Operators
24. PL SQL Programming
25. Cursor
26. Collections
27. Function Procedure Packages
28. Trigger
29. SQL PLUS Session Environment
30. System Tables Data Dictionary
31. System Packages
32. Object Oriented
33. XML
34. Large Objects
35. Transaction
36. User Privilege
Java
Java Tutorial
Java Source Code / Java Documentation
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
Photoshop Tutorials
Maya Tutorials
Flash Tutorials
3ds-Max Tutorials
Illustrator Tutorials
GIMP Tutorials
C# / C Sharp
C# / CSharp Tutorial
C# / CSharp Open Source
ASP.Net
ASP.NET Tutorial
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
Python Tutorial
Python Open Source
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
XML
XML Tutorial
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
Oracle PL/SQL Tutorial » PL SQL Data Types » Object 
21. 31. 1. Using Objects in PL/SQL
SQL>
SQL>
SQL> CREATE Or Replace TYPE ProductType AS OBJECT (
  2    id          NUMBER,
  3    name        VARCHAR2(15),
  4    description VARCHAR2(22),
  5    price       NUMBER(52),
  6    days_valid  NUMBER
  7  )
  8  /

Type created.

SQL>
SQL>
SQL> CREATE TABLE object_products OF ProductType
  2  /

Table created.

SQL>
SQL> INSERT INTO object_products (
  2    id, name, description, price, days_valid
  3  VALUES (
  4    1'AAA', 'BBB', 2.995
  5  );

row created.

SQL>
SQL> select from object_products;

 ID NAME            DESCRIPTION                 PRICE DAYS_VALID
--- --------------- ---------------------- ---------- ----------
  AAA             BBB                          2.99          5

SQL>
SQL> CREATE OR REPLACE PACKAGE product_package AS
  2    TYPE ref_cursor_typ IS REF CURSOR;
  3    FUNCTION get_products RETURN ref_cursor_typ;
  4    PROCEDURE insert_product (
  5      p_id          IN object_products.id%TYPE,
  6      p_name        IN object_products.name%TYPE,
  7      p_description IN object_products.description%TYPE,
  8      p_price       IN object_products.price%TYPE,
  9      p_days_valid  IN object_products.days_valid%TYPE
 10    );
 11  END product_package;
 12  /

Package created.

SQL>
SQL>
SQL> CREATE OR REPLACE PACKAGE BODY product_package AS
  2    FUNCTION get_products
  3    RETURN ref_cursor_typ IS
  4      products_ref_cursor ref_cursor_typ;
  5    BEGIN
  6      OPEN products_ref_cursor FOR
  7        SELECT VALUE(op)
  8        FROM object_products op;
  9      RETURN products_ref_cursor;
 10    END get_products;
 11
 12    PROCEDURE insert_product (
 13      p_id          IN object_products.id%TYPE,
 14      p_name        IN object_products.name%TYPE,
 15      p_description IN object_products.description%TYPE,
 16      p_price       IN object_products.price%TYPE,
 17      p_days_valid  IN object_products.days_valid%TYPE
 18    AS
 19      product ProductType :=
 20        ProductType(
 21          p_id, p_name, p_description, p_price, p_days_valid
 22        );
 23    BEGIN
 24      INSERT INTO object_products VALUES (product);
 25      COMMIT;
 26    EXCEPTION
 27      WHEN OTHERS THEN
 28        ROLLBACK;
 29    END insert_product;
 30  END product_package;
 31  /

Package body created.

SQL>
SQL> CALL product_package.insert_product(101'AAA', 'AAA and AAA', 1.5020);

Call completed.

SQL>
SQL> SELECT product_package.get_products
  2  FROM dual;

GET_PRODUCTS
--------------------
CURSOR STATEMENT : 1

CURSOR STATEMENT : 1

VALUE(OP)(ID, NAME, DESCRIPTION, PRICE, DAYS_VALID)
----------------------------------------------------
PRODUCTTYPE(1'AAA', 'BBB', 2.995)
PRODUCTTYPE(101'AAA', 'AAA and AAA', 1.520)


SQL>
SQL> select from object_products;

 ID NAME            DESCRIPTION                 PRICE DAYS_VALID
--- --------------- ---------------------- ---------- ----------
  AAA             BBB                          2.99          5
### AAA             AAA and AAA                   1.5         20

SQL>
SQL> drop table object_products;

Table dropped.

SQL>
21. 31. Object
21. 31. 1. Using Objects in PL/SQL
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.