From 6a95a6bc52aeee7b86c816a7e3f794d770b9fcb7 Mon Sep 17 00:00:00 2001 From: Spearing Date: Wed, 5 Oct 2016 01:43:46 +0100 Subject: [PATCH] First commit --- 603.html | 28 ++ 735.pdf | Bin 0 -> 60091 bytes 737.pdf | Bin 0 -> 453832 bytes 9781590590492.jpg | Bin 0 -> 7906 bytes AppendixA/AppendixA.txt | 177 +++++++++ Chapter01/Chapter01.txt | 120 ++++++ Chapter02/Chapter02.txt | 755 +++++++++++++++++++++++++++++++++++ Chapter03/Chapter03.txt | 422 ++++++++++++++++++++ Chapter04/Chapter04.txt | 258 ++++++++++++ Chapter05/Chapter05.txt | 847 ++++++++++++++++++++++++++++++++++++++++ Chapter05/authid.sql | 51 +++ Chapter06/Chapter06.txt | 195 +++++++++ Chapter07/Chapter07.txt | 233 +++++++++++ Chapter08/Chapter08.txt | 75 ++++ Chapter09/Chapter09.txt | 320 +++++++++++++++ Chapter10/Chapter10.txt | 800 +++++++++++++++++++++++++++++++++++++ Chapter11/Chapter11.txt | 641 ++++++++++++++++++++++++++++++ Chapter12/Chapter12.txt | 267 +++++++++++++ Chapter12/test.bmp | Bin 0 -> 861382 bytes Chapter13/Chapter13.txt | 502 ++++++++++++++++++++++++ Chapter14/Chapter14.txt | 378 ++++++++++++++++++ Chapter15/Chapter15.txt | 16 + LICENSE.txt | 27 ++ README.md | 15 + Readme.txt | 9 + contributing.md | 14 + 26 files changed, 6150 insertions(+) create mode 100644 603.html create mode 100644 735.pdf create mode 100644 737.pdf create mode 100644 9781590590492.jpg create mode 100644 AppendixA/AppendixA.txt create mode 100644 Chapter01/Chapter01.txt create mode 100644 Chapter02/Chapter02.txt create mode 100644 Chapter03/Chapter03.txt create mode 100644 Chapter04/Chapter04.txt create mode 100644 Chapter05/Chapter05.txt create mode 100644 Chapter05/authid.sql create mode 100644 Chapter06/Chapter06.txt create mode 100644 Chapter07/Chapter07.txt create mode 100644 Chapter08/Chapter08.txt create mode 100644 Chapter09/Chapter09.txt create mode 100644 Chapter10/Chapter10.txt create mode 100644 Chapter11/Chapter11.txt create mode 100644 Chapter12/Chapter12.txt create mode 100644 Chapter12/test.bmp create mode 100644 Chapter13/Chapter13.txt create mode 100644 Chapter14/Chapter14.txt create mode 100644 Chapter15/Chapter15.txt create mode 100644 LICENSE.txt create mode 100644 README.md create mode 100644 Readme.txt create mode 100644 contributing.md diff --git a/603.html b/603.html new file mode 100644 index 0000000..c57775b --- /dev/null +++ b/603.html @@ -0,0 +1,28 @@ +Part One Introduction
+Chapter 1: Introduction to PL/SQL
+
+Part Two Non-Object-Oriented Features in PL/SQL 9i
+Chapter 2: Cursors
+Chapter 3: PL/SQL Records and Index-by Tables
+Chapter 4: Error Message Handling
+Chapter 5: Stored Subprograms (Procedures, Functions, and Packages)
+Chapter 6: Database Triggers
+Chapter 7: Native Dynamic SQL and Dynamic PL/SQL
+Chapter 8: Autonomous Transactions
+Chapter 9: Native Bulk Binds
+
+Part Three Object-Oriented Features in PL/SQL 9i
+Chapter 10: The World of Objects
+Chapter 11: Collections (VARRAYS and Nested Tables)
+Chapter 12: Large Objects
+
+Part Four PL/SQL with Java and the Web
+Chapter 13: Floating in Java
+Chapter 14: PL/SQL and the Web
+
+Part Five PL/SQL Performance and Standards
+Chapter 15: Performance Considerations
+Chapter 16: PL/SQL Coding Standards
+
+Part Six Appendix
+Appendix A Case Studies and Schema Objects \ No newline at end of file diff --git a/735.pdf b/735.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ab0654aefdd2fe9c388a84d955addd4cdb93cfb1 GIT binary patch literal 60091 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

U|%7|we8Z3Dz3$Yj}vN# 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ΜzM5d!#b9lyktu}*$P#T#qR!%iq7 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±FmWJz;C;& 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 QNQUA1&A*2O(cSF-0;^2%y#N3J literal 0 HcmV?d00001 diff --git a/AppendixA/AppendixA.txt b/AppendixA/AppendixA.txt new file mode 100644 index 0000000..822480c --- /dev/null +++ b/AppendixA/AppendixA.txt @@ -0,0 +1,177 @@ +connect system/manager@ORCL; +create user plsql9i identified by plsql9i; +grant connect,resource,dba to plsql9i; + +connect plsql9i/plsql9i@ORCL; + +CREATE TABLE items_tab (item_code varchar2(6) PRIMARY KEY, + item_descr varchar2(20) NOT NULL); + +CREATE TABLE employee_test +(empid number(10) PRIMARY KEY, + lastname varchar2(30) NOT NULL, + firstname varchar2(30) NOT NULL, + middle_initial varchar2(2)); + +begin + insert into employee_test values (101,'SMITH','JOHN',null); + insert into employee_test values (102,'JOHNSON','ROBERT','L'); + insert into employee_test values (103,'LAKSHMAN','BULUSU',null); + insert into employee_test values (104,'KNOP','VICTORIA','A'); + commit; +end; +/ + +-- Organizational Hierarchy System +create table site_tab +(site_no number(4) not null, + site_descr varchar2(20) not null); + +alter table site_tab add primary key (site_no); + +create table hrc_tab +(hrc_code number(4) not null, + hrc_descr varchar2(20) not null); + +alter table hrc_tab add primary key (hrc_code); + +create table org_tab +(hrc_code number(4) not null, + org_id NUMBER(8) not null, + org_short_name varchar2(30) not null, + org_long_name varchar2(60)); + +alter table org_tab add sprimary key (hrc_code,org_id); +alter table org_tab add constraint org_tab_uk unique (org_id); +alter table org_tab +add constraint org_tab_fk foreign key (hrc_code)references hrc_tab(hrc_code); + +create table org_site_tab +(org_id number(8) not null, + site_no number(4) not null ); + +alter table org_site_tab add primary key (org_id,site_no); +alter table org_site_tab +add constraint org_site_tab_fk1 foreign key (org_id)references org_tab(org_id); +alter table org_site_tab +add constraint org_site_tab_fk2 foreign key (site_no) +references site_tab(site_no); + +create table org_level +(org_id number(8) not null, + org_level varchar2(1) not null); + +alter table org_level add primary key (org_id); +alter table org_level +add constraint org_level_fk foreign key (org_id)references org_tab(org_id); +alter table org_level +add constraint org_level_ck CHECK (org_level IN ('C','E','M','L')); + +create table sec_hrc_tab +(hrc_code number(4) not null, + hrc_descr varchar2(20) not null); + +create table sec_hrc_org_tab +(hrc_code number(4) not null, + hrc_descr varchar2(20) not null, + org_id NUMBER(8) not null, + org_short_name varchar2(30) not null, + org_long_name varchar2(60)); + +create table sec_hrc_audit +(hrc_code number(4) not null, + num_rows number(8) not null ); + +create sequence hrc_org_seq minvalue 1; + +insert into site_tab values (1,'New York'); +insert into site_tab values (2,'Washington'); +insert into site_tab values (3,'Chicago'); +insert into site_tab values (4,'Dallas'); +insert into site_tab values (5,'San Francisco'); + +insert into hrc_tab values (1,'CEO/COO'); +insert into hrc_tab values (2,'VP'); +insert into hrc_tab values (3,'Director'); +insert into hrc_tab values (4,'Manager'); +insert into hrc_tab values (5,'Analyst'); + +insert into org_tab values +(1,1001,'Office of CEO ABC Inc.','Office of CEO ABC Inc.'); +insert into org_tab values +(1,1002,'Office of CEO XYZ Inc.','Office of CEO XYZ Inc.'); +insert into org_tab values +(1,1003,'Office of CEO DataPro Inc.','Office of CEO DataPro Inc.'); +insert into org_tab values +(2,1004,'Office of VP Sales ABC Inc.','Office of VP Sales ABC Inc.'); +insert into org_tab values +(2,1005,'Office of VP Mktg ABC Inc.','Office of VP Mktg ABC Inc.'); +insert into org_tab values +(2,1006,'Office of VP Tech ABC Inc.','Office of VP Tech ABC Inc.'); + +insert into org_site_tab values (1001,1); +insert into org_site_tab values (1002,2); +insert into org_site_tab values (1003,3); +insert into org_site_tab values (1004,1); +insert into org_site_tab values (1004,2); +insert into org_site_tab values (1004,3); +insert into org_site_tab values (1005,1); +insert into org_site_tab values (1005,4); +insert into org_site_tab values (1005,5); +insert into org_site_tab values (1006,1); + +-- Order Entry Application System + +CREATE TABLE region_tab +(region_id NUMBER(4) PRIMARY KEY, +region_name VARCHAR2(11) NOT NULL); + +CREATE TABLE region_tab_temp AS + SELECT *FROM region_tab; + +CREATE TABLE sec_region_tab +(region_id NUMBER(4) PRIMARY KEY, +region_name VARCHAR2(11) NOT NULL); + +CREATE TABLE supplier_tab +(supp_id NUMBER(6) PRIMARY KEY, + supp_name VARCHAR2(20) NOT NULL +); + +CREATE TABLE order_tab +(order_id NUMBER(10) PRIMARY KEY, +order_date DATE NOT NULL, +total_qty NUMBER, +total_price NUMBER(15,2), +supp_id NUMBER(6) REFERENCES supplier_tab(supp_id)); + +CREATE TABLE order_items +(order_id NUMBER(10) NOT NULL, +item_id VARCHAR2(10) NOT NULL, +unit_price NUMBER(11,2) NOT NULL, +quantity NUMBER); + +ALTER TABLE order_items ADD CONSTRAINT pk_order_items +PRIMARY KEY (order_id,item_id); + +CREATE TABLE error_log +(order_id NUMBER(10) NOT NULL, +error_code NUMBER NOT NULL, +error_text VARCHAR2(1000) NOT NULL, +logged_user VARCHAR2(30) NOT NULL, +logged_date DATE NOT NULL); + +CREATE TABLE order_tran_coming_in +(order_id NUMBER(10) NOT NULL, +order_date DATE NOT NULL, +tran_coming_in_date DATE NOT NULL, +success_flag VARCHAR2(1) DEFAULT 'N' NOT NULL); + +INSERT INTO region_tab VALUES (1,'REGION1'); +INSERT INTO region_tab VALUES (2,'REGION2'); +INSERT INTO region_tab VALUES (3,'REGION3'); +INSERT INTO region_tab VALUES (4,'REGION4'); + +INSERT INTO supplier_tab VALUES (1001,'Supplier 1001'); + +INSERT INTO order_tab VALUES (101,sysdate,100,750,1001); diff --git a/Chapter01/Chapter01.txt b/Chapter01/Chapter01.txt new file mode 100644 index 0000000..2a4935d --- /dev/null +++ b/Chapter01/Chapter01.txt @@ -0,0 +1,120 @@ +Listing 1-1. A Sample PL/SQL Block + +DECLARE + v_item_code VARCHAR2(6); + v_item_descr VARCHAR2(20); +BEGIN + v_item_code :='ITM101'; + v_item_descr :='Spare parts'; + INSERT INTO items_tab VALUES (v_item_code,v_item_descr); +EXCEPTION WHEN OTHERS THEN + dbms_output.put_line(SQLERRM); +END; +/ + + +Listing 1-2. The Modified PL/SQL Code That Uses a Nested Block + +DECLARE + v_item_code VARCHAR2(6); + v_item_descr VARCHAR2(20); + v_num NUMBER(1); +BEGIN + v_item_code :='ITM101'; + v_item_descr :='Spare parts'; + BEGIN + SELECT 1 + INTO v_num + FROM items_tab + WHERE item_code =v_item_code; + EXCEPTION + WHEN NO_DATA_FOUND THEN + v_num :=0; + WHEN OTHERS THEN + dbms_output.put_line('Error in SELECT:'||SQLERRM); + RETURN; + END; + IF (v_num =0)THEN + INSERT INTO items_tab VALUES (v_item_code,v_item_descr); + END IF; + dbms_output.put_line('Successful Completion'); +EXCEPTION WHEN OTHERS THEN + dbms_output.put_line(SQLERRM); +END; +/ + +-- An example of the IF statement +DECLARE + a number :=50; + b number :=-20; +BEGIN + IF (a>b)THEN + dbms_output.put_line('A is greater than B'); + ELSIF (ab)then 'A is greater than B' + when (a...*/ + null; +END; +/ + +-- An example of opening the csr_org cursor +DECLARE + CURSOR csr_org IS + SELECT h.hrc_descr,o.org_short_name + FROM org_tab o,hrc_tab h + WHERE o.hrc_code =h.hrc_code + ORDER by 2; + v_hrc_descr VARCHAR2(20); + v_org_short_name VARCHAR2(30); +BEGIN + OPEN csr_org; + /*......*/ + null; +END; +/ + +-- An example of csr_org to fetching rows +DECLARE + CURSOR csr_org IS + SELECT h.hrc_descr,o.org_short_name + FROM org_tab o,hrc_tab h + WHERE o.hrc_code =h.hrc_code + ORDER by 2; + v_hrc_descr VARCHAR2(20); + v_org_short_name VARCHAR2(30); +BEGIN + OPEN csr_org; + FETCH csr_org INTO v_hrc_descr,v_org_short_name; + --This fetch fetches the first row in the active set. + null; +END; +/ + +-- An example of using cursor_name%RWOTYPE +DECLARE + CURSOR csr_org IS + SELECT h.hrc_descr,o.org_short_name + FROM org_tab o,hrc_tab h + WHERE o.hrc_code =h.hrc_code + ORDER by 2; + v_org_rec csr_org%ROWTYPE; +BEGIN + OPEN csr_org; + FETCH csr_org INTO v_org_rec; + --This fetch fetches the first row in the active set. + null; +END; +/ + +-- A complete example of using the csr_org cursor +DECLARE + /*Declare a cursor explicitly */ + CURSOR csr_org IS + SELECT h.hrc_descr,o.org_short_name + FROM org_tab o,hrc_tab h + WHERE o.hrc_code =h.hrc_code + ORDER by 2; + v_org_rec csr_org%ROWTYPE; +BEGIN + /*Open the cursor */ + OPEN csr_org; + /*Format headings */ + dbms_output.put_line('Organization Details with Hierarchy'); + dbms_output.put_line('------------------------'); + dbms_output.put_line(rpad('Hierarchy',20,' ')||' '|| + rpad('Organization',30,' ')); + dbms_output.put_line(rpad('-',20,'-')||' '||rpad('-',30,'-')); + /*Fetch from the cursor resultset in a loop and display the results + */ + LOOP + FETCH csr_org INTO v_org_rec; + EXIT WHEN csr_org%NOTFOUND; + dbms_output.put_line(rpad(v_org_rec.hrc_descr,20,' ')||' '|| + rpad(v_org_rec.org_short_name,30,' ')); + END LOOP; + /*CLose the cursor */ + CLOSE csr_org; +END; +/ + +-- A complete example of using the csr_org cursor +-- using a WHILE LOOP +DECLARE + CURSOR csr_org IS + SELECT h.hrc_descr,o.org_short_name + FROM org_tab o,hrc_tab h + WHERE o.hrc_code =h.hrc_code + ORDER by 2; + v_org_rec csr_org%ROWTYPE; +BEGIN + OPEN csr_org; + dbms_output.put_line('Organization Details with Hierarchy'); + dbms_output.put_line('------------------------'); + dbms_output.put_line(rpad('Hierarchy',20,' ')||' '|| + rpad('Organization',30,' ')); + dbms_output.put_line(rpad('-',20,'-')||' '||rpad('-',30,'-')); + FETCH csr_org INTO v_org_rec; + WHILE (csr_org%FOUND) LOOP + dbms_output.put_line(rpad(v_org_rec.hrc_descr,20,' ')||' '|| + rpad(v_org_rec.org_short_name,30,' ')); + FETCH csr_org INTO v_org_rec; + END LOOP; + CLOSE csr_org; +END; +/ + +-- A complete example if uisng the csr_org cursor +-- using a cursor FOR LOOP +DECLARE + CURSOR csr_org IS + SELECT h.hrc_descr,o.org_short_name + FROM org_tab o,hrc_tab h + WHERE o.hrc_code =h.hrc_code + ORDER by 2; +BEGIN + dbms_output.put_line('Organization Details with Hierarchy'); + dbms_output.put_line('------------------------'); + dbms_output.put_line(rpad('Hierarchy',20,' ')||' '|| + rpad('Organization',30,' ')); + dbms_output.put_line(rpad('-',20,'-')||' '||rpad('-',30,'-')); + FOR idx IN csr_org LOOP + dbms_output.put_line(rpad(idx.hrc_descr,20,' ')||' '|| + rpad(idx.org_short_name,30,' ')); + END LOOP; +END; +/ + +-- An example of csr_org cursor using %ISOPEN +DECLARE + CURSOR csr_org IS + SELECT h.hrc_descr,o.org_short_name + FROM org_tab o,hrc_tab h + WHERE o.hrc_code =h.hrc_code + ORDER by 2; + v_org_rec csr_org%ROWTYPE; +BEGIN + IF (NOT csr_org%ISOPEN) THEN + OPEN csr_org; + END IF; + dbms_output.put_line('Organization Details with Hierarchy'); + dbms_output.put_line('------------------------'); + dbms_output.put_line(rpad('Hierarchy',20,' ')||' '|| + rpad('Organization',30,' ')); + dbms_output.put_line(rpad('-',20,'-')||' '||rpad('-',30,'-')); + FETCH csr_org INTO v_org_rec; + WHILE (csr_org%FOUND)LOOP + dbms_output.put_line(rpad(v_org_rec.hrc_descr,20,' ')||' '|| + rpad(v_org_rec.org_short_name,30,' ')); + FETCH csr_org INTO v_org_rec; + END LOOP; + IF (csr_org%ISOPEN)THEN + CLOSE csr_org; + END IF; +END; +/ + +-- An example of csr_org cursor using %ROWCOUNT +DECLARE + CURSOR csr_org IS + SELECT h.hrc_descr,o.org_short_name + FROM org_tab o,hrc_tab h + WHERE o.hrc_code =h.hrc_code + ORDER by 2; + num_total_rows NUMBER; +BEGIN + dbms_output.put_line('Organization Details with Hierarchy'); + dbms_output.put_line('------------------------'); + dbms_output.put_line(rpad('Hierarchy',20,' ')||' '|| + rpad('Organization',30,' ')); + dbms_output.put_line(rpad('-',20,'-')||' '||rpad('-',30,'-')); + FOR idx IN csr_org LOOP + dbms_output.put_line(rpad(idx.hrc_descr,20,' ')||' '|| + rpad(idx.org_short_name,30,' ')); + num_total_rows :=csr_org%ROWCOUNT; + END LOOP; + IF num_total_rows >0 THEN + dbms_output.new_line; + dbms_output.put_line('Total Organizations = '||to_char(num_total_rows)); + END IF; +END; +/ + +-- An examplre of csr_org cursor using %ROWCOUNT +-- as an incremental rowcount +DECLARE +CURSOR csr_org IS + SELECT h.hrc_descr,o.org_short_name + FROM org_tab o,hrc_tab h + WHERE o.hrc_code =h.hrc_code + ORDER by 2; + num_total_rows NUMBER; +BEGIN + FOR idx IN csr_org LOOP + IF csr_org%ROWCOUNT =1 THEN + dbms_output.put_line('Organization Details with Hierarchy'); + dbms_output.put_line('------------------------'); + dbms_output.put_line(rpad('Hierarchy',20,' ')||' '|| + rpad('Organization',30,' ')); + dbms_output.put_line(rpad('-',20,'-')||' '||rpad('-',30,'-')); + END IF; + dbms_output.put_line(rpad(idx.hrc_descr,20,' ')||' '|| + rpad(idx.org_short_name,30,' ')); + num_total_rows :=csr_org%ROWCOUNT; + END LOOP; + IF num_total_rows >0 THEN + dbms_output.new_line; + dbms_output.put_line('Total Organizations = '||to_char(num_total_rows)); + END IF; +END; +/ + +-- An example to illustrate parameterized cursors +DECLARE + CURSOR csr_org(p_hrc_code NUMBER) IS + SELECT h.hrc_descr,o.org_short_name + FROM org_tab o,hrc_tab h + WHERE o.hrc_code =h.hrc_code + AND h.hrc_code =p_hrc_code + ORDER by 2; + v_org_rec csr_org%ROWTYPE; +BEGIN + OPEN csr_org(1); + dbms_output.put_line('Organization Details with Hierarchy 1'); + dbms_output.put_line('------------------------'); + dbms_output.put_line(rpad('Hierarchy',20,' ')||' '|| + rpad('Organization',30,' ')); + dbms_output.put_line(rpad('-',20,'-')||' '||rpad('-',30,'-')); + LOOP + FETCH csr_org INTO v_org_rec; + EXIT WHEN csr_org%NOTFOUND; + dbms_output.put_line(rpad(v_org_rec.hrc_descr,20,' ')||' '|| + rpad(v_org_rec.org_short_name,30,' ')); + END LOOP; + CLOSE csr_org; + OPEN csr_org(2); + dbms_output.put_line('Organization Details with Hierarchy 2'); + dbms_output.put_line('------------------------'); + dbms_output.put_line(rpad('Hierarchy',20,' ')||' '|| + rpad('Organization',30,' ')); + dbms_output.put_line(rpad('-',20,'-')||' '||rpad('-',30,'-')); + LOOP + FETCH csr_org INTO v_org_rec; + EXIT WHEN csr_org%NOTFOUND; + dbms_output.put_line(rpad(v_org_rec.hrc_descr,20,' ')||' '|| + rpad(v_org_rec.org_short_name,30,' ')); + END LOOP; + CLOSE csr_org; +END; +/ + +-- An example of parameterized cursor using cursor FOR LOOP +DECLARE + CURSOR csr_org(p_hrc_code NUMBER) IS + SELECT h.hrc_descr,o.org_short_name + FROM org_tab o,hrc_tab h + WHERE o.hrc_code =h.hrc_code + AND h.hrc_code =p_hrc_code + ORDER by 2; + v_org_rec csr_org%ROWTYPE; +BEGIN + dbms_output.put_line('Organization Details with Hierarchy 1'); + dbms_output.put_line('------------------------'); + dbms_output.put_line(rpad('Hierarchy',20,' ')|| + ''||rpad('Organization',30,' ')); + dbms_output.put_line(rpad('-',20,'-')||' '||rpad('-',30,'-')); + FOR idx in csr_org(1) LOOP + dbms_output.put_line(rpad(idx.hrc_descr,20,' ')||' '|| + rpad(idx.org_short_name,30,' ')); + END LOOP; + dbms_output.put_line('Organization Details with Hierarchy 2'); + dbms_output.put_line('------------------------');; + dbms_output.put_line(rpad('Hierarchy',20,' ')||' '|| + rpad('Organization',30,' ')); + dbms_output.put_line(rpad('-',20,'-')||' '||rpad('-',30,'-')); + FOR idx in csr_org(2) LOOP + dbms_output.put_line(rpad(idx.hrc_descr,20,' ')||' '|| + rpad(idx.org_short_name,30,' ')); + END LOOP; +END; +/ + +-- A complete example of using SELECT FOR UPDATE cursors +BEGIN + INSERT INTO sec_hrc_tab + SELECT *FROM hrc_tab; + COMMIT; +END; +/ +DECLARE + CURSOR csr_1 IS + SELECT * FROM sec_hrc_tab FOR UPDATE OF hrc_descr; + v_hrc_descr VARCHAR2(20); +BEGIN + FOR idx IN csr_1 LOOP + v_hrc_descr :=UPPER(idx.hrc_descr); + UPDATE sec_hrc_tab + SET hrc_descr =v_hrc_descr + WHERE CURRENT OF csr_1; + END LOOP; + COMMIT; +END; +/ + +-- An example of an implicit cursor +BEGIN + DELETE sec_hrc_org_tab WHERE hrc_code =1; + INSERT INTO sec_hrc_org_tab + SELECT h.hrc_code,h.hrc_descr, + o.org_id,o.org_short_name,o.org_long_name + FROM org_tab o,hrc_tab h + WHERE o.hrc_code =h.hrc_code + AND h.hrc_code =1; + IF (SQL%FOUND)THEN + dbms_output.put_line(TO_CHAR(SQL%ROWCOUNT)|| + 'rows inserted into secondary table for hierarchy 1'); + END IF; + COMMIT; +END; +/ + +-- An example of using SQL%NOTFOUND +DECLARE + v_num_rows NUMBER; +BEGIN + DELETE sec_hrc_org_tab WHERE hrc_code =1; + INSERT INTO sec_hrc_org_tab + SELECT h.hrc_code,h.hrc_descr, + o.org_id,o.org_short_name,o.org_long_name + FROM org_tab o,hrc_tab h + WHERE o.hrc_code =h.hrc_code + AND h.hrc_code =1; + v_num_rows :=SQL%ROWCOUNT; + IF (SQL%FOUND)THEN + UPDATE sec_hrc_audit + SET num_rows =v_num_rows + WHERE hrc_code =1; + IF (SQL%NOTFOUND)THEN + INSERT INTO sec_hrc_audit(hrc_code,num_rows)VALUES (1,v_num_rows); + END IF; + END IF; + COMMIT; +END; +/ + +-- An example of using SQL%ROWCOUNT +DECLARE + v_num_rows NUMBER; +BEGIN + DELETE sec_hrc_org_tab WHERE hrc_code =1; + INSERT INTO sec_hrc_org_tab + SELECT h.hrc_code,h.hrc_descr, + o.org_id,o.org_short_name,o.org_long_name + FROM org_tab o,hrc_tab h + WHERE o.hrc_code =h.hrc_code + AND h.hrc_code =1; + v_num_rows :=SQL%ROWCOUNT; + IF (SQL%FOUND)THEN + UPDATE sec_hrc_audit + SET num_rows =v_num_rows + WHERE hrc_code =1; + IF (SQL%ROWCOUNT=0)THEN + INSERT INTO sec_hrc_audit(hrc_code,num_rows)VALUES (1,v_num_rows); + END IF; + END IF; + COMMIT; +END; +/ + +-- An example of opening a cursor variable +DECLARE + TYPE rc is REF CURSOR; + v_rc rc; +BEGIN + OPEN v_rc FOR SELECT *from hrc_tab; + /*...FETCH the results and process the resultset */ + null; +END; +/ + +-- An example of fetching from a cursor variable +DECLARE + TYPE rc is REF CURSOR; + v_rc rc; + hrc_rec hrc_tab%ROWTYPE; +BEGIN + OPEN v_rc FOR SELECT *from hrc_tab; + LOOP + FETCH v_rc INTO hrc_rec; + EXIT WHEN v_rc%NOTFOUND; + /*...Process the individual records */ + null; + END LOOP; +END; +/ + +-- A complete example of using a cursor variable +DECLARE + TYPE rc is REF CURSOR; + v_rc rc; + hrc_rec hrc_tab%ROWTYPE; +BEGIN + OPEN v_rc FOR SELECT *from hrc_tab; + dbms_output.put_line('Hierarchy Details'); + dbms_output.put_line('------------------------'); + dbms_output.put_line('Code'||' '||rpad('Description',20,' ')); + dbms_output.put_line(rpad('-',4,'-')||' '||rpad('-',20,'-')); + LOOP + FETCH v_rc INTO hrc_rec; + EXIT WHEN v_rc%NOTFOUND; + dbms_output.put_line(to_char(hrc_rec.hrc_code)||' '|| + rpad(hrc_rec.hrc_descr,20,' ')); + END LOOP; + CLOSE v_rc; +END; +/ + +-- An example of cursor variable assignment +DECLARE + TYPE rc is REF CURSOR; + v_rc1 rc; + v_rc2 rc; + hrc_rec hrc_tab%ROWTYPE; +BEGIN + OPEN v_rc1 FOR SELECT *from hrc_tab; + dbms_output.put_line('Hierarchy Details'); + dbms_output.put_line('------------------------'); + dbms_output.put_line('Code'||' '||rpad('Description',20,' ')); + dbms_output.put_line(rpad('-',4,'-')||' '||rpad('-',20,'-')); + /*Assign v_rc1 to v_rc2 */ + v_rc2 :=v_rc1; + LOOP + /*Fetch from the second cursor variable,i.e.,v_rc2 */ + FETCH v_rc2 INTO hrc_rec; + EXIT WHEN v_rc2%NOTFOUND; + dbms_output.put_line(to_char(hrc_rec.hrc_code)||' '|| + rpad(hrc_rec.hrc_descr,20,' ')); + END LOOP; + CLOSE v_rc2; +END; +/ + +-- An example of using SYS_REFCURSOR for +-- cursor variable processing +DECLARE + v_rc SYS_REFCURSOR; + hrc_rec hrc_tab%ROWTYPE; +BEGIN + OPEN v_rc FOR SELECT *from hrc_tab; + dbms_output.put_line('Hierarchy Details'); + dbms_output.put_line('------------------------'); + dbms_output.put_line('Code'||' '||rpad('Description',20,' ')); + dbms_output.put_line(rpad('-',4,'-')||' '||rpad('-',20,'-')); + LOOP + FETCH v_rc INTO hrc_rec; + EXIT WHEN v_rc%NOTFOUND; + dbms_output.put_line(to_char(hrc_rec.hrc_code)||' '|| + rpad(hrc_rec.hrc_descr,20,' ')); + END LOOP; + CLOSE v_rc; +END; +/ + +-- Opening multiple queries using the same cursor variable +DECLARE + TYPE rc is REF CURSOR; + v_rc rc; + hrc_rec hrc_tab%ROWTYPE; + v_hrc_descr VARCHAR2(20); + v_org_short_name VARCHAR2(30); +BEGIN + OPEN v_rc FOR SELECT *from hrc_tab; + dbms_output.put_line('Hierarchy Details'); + dbms_output.put_line('------------------------'); + dbms_output.put_line('Code'||' '||rpad('Description ',20,' ')); + dbms_output.put_line(rpad('-',4,'-')||' '||rpad('-',20,'-')); + LOOP + FETCH v_rc INTO hrc_rec; + EXIT WHEN v_rc%NOTFOUND; + dbms_output.put_line(to_char(hrc_rec.hrc_code)||' '|| + rpad(hrc_rec.hrc_descr,20,' ')); + END LOOP; + OPEN v_rc FOR SELECT h.hrc_descr,o.org_short_name + FROM org_tab o,hrc_tab h + WHERE o.hrc_code =h.hrc_code; + dbms_output.put_line('Hierarchy and Organization Details'); + dbms_output.put_line('------------------------'); + dbms_output.put_line(rpad('Hierarchy',20,' ')||' '|| + rpad('Description',30,' ')); + dbms_output.put_line(rpad('-',20,'-')||' '||rpad('-',30,'-')); + LOOP + FETCH v_rc INTO v_hrc_descr,v_org_short_name; + EXIT WHEN v_rc%NOTFOUND; + dbms_output.put_line(rpad(v_hrc_descr,20,' ')||' '|| + rpad(v_org_short_name,30,' ')); + END LOOP; + CLOSE v_rc; +END; +/ + +-- Assigning different queries to the same cursor variable +CREATE OR REPLACE PROCEDURE p_print_report(p_report_no NUMBER,p_title VARCHAR2) +IS + TYPE rc IS REF CURSOR; + v_rc rc; + v_hrc_descr VARCHAR2(20); + v_org_short_name VARCHAR2(30); +BEGIN + IF (p_report_no =1)THEN + OPEN v_rc FOR SELECT h.hrc_descr,o.org_short_name + FROM org_tab o,hrc_tab h + WHERE o.hrc_code =h.hrc_code + AND 1 < (SELECT count(os.site_no) + FROM org_site_tab os + WHERE os.org_id =o.org_id); + ELSIF (p_report_no =2)THEN + OPEN v_rc FOR SELECT h.hrc_descr,o.org_short_name + FROM org_tab o,hrc_tab h + WHERE o.hrc_code =h.hrc_code + AND NOT EXISTS + (SELECT * + FROM org_tab o1 + WHERE o1.org_id =o.org_id + AND o1.hrc_code =2 ); + END IF; + dbms_output.put_line(p_title); + dbms_output.put_line(rpad('-',length(p_title),'-')); + dbms_output.put_line(rpad('Hierarchy',20,' ')||' '|| + rpad('Description',30,' ')); + dbms_output.put_line(rpad('-',20,'-')||' '||rpad('-',30,'-')); + LOOP + FETCH v_rc INTO v_hrc_descr,v_org_short_name; + EXIT WHEN v_rc%NOTFOUND; + dbms_output.put_line(rpad(v_hrc_descr,20,' ')||' '|| + rpad(v_org_short_name,30,' ')); + END LOOP; + CLOSE v_rc; +END p_print_report; +/ + +-- A PL/SQL function that uses a cursor expression +create or replace function f_cursor_exp return NUMBER +is + TYPE rc is REF CURSOR; + /*declare the cursor expression */ + CURSOR csr_hierarchy IS + SELECT h.hrc_descr, + CURSOR(SELECT o.org_long_name + FROM org_tab o + WHERE o.hrc_code =h.hrc_code)long_name + FROM hrc_tab h; + /*Declare a REF CURSOR variable to hold the nested cursor resultset + while fetching.*/ + hrc_rec rc; + v_hrc_descr VARCHAR2(20); + v_org_long_name VARCHAR2(60); +BEGIN + /*Open the parent cursor */ + OPEN csr_hierarchy; + LOOP + /*fetch the column csr_hierarchy.hrc_descr, + then loop through the resultset of the nested cursor.*/ + FETCH csr_hierarchy INTO v_hrc_descr,hrc_rec; + EXIT WHEN csr_hierarchy%notfound; + /*Use a nested loop that fetches from the nested cursor + within the parent rows.*/ + LOOP + --Directly fetch from the nested cursor,there is no need to open it. + FETCH hrc_rec INTO v_org_long_name; + EXIT WHEN hrc_rec%notfound; + DBMS_OUTPUT.PUT_LINE(v_hrc_descr ||''||v_org_long_name); + END LOOP; + END LOOP; + /*Close the parent cursor.No need to close the nested cursor.*/ + close csr_hierarchy; + RETURN (0); +EXCEPTION WHEN OTHERS THEN + RETURN (SQLCODE); +END; +/ + +-- Cursor expressions using multiple levels of nested cursors +create or replace function f_cursor_exp_complex return NUMBER +is + TYPE rc is REF CURSOR; + /*declare the cursor expression */ + CURSOR csr_hierarchy IS + SELECT h.hrc_descr, + CURSOR(SELECT o.org_long_name, + CURSOR (SELECT s.site_descr + FROM org_site_tab os,site_tab s + WHERE os.site_no =s.site_no + AND os.org_id =o.org_id)as site_name + FROM org_tab o + WHERE o.hrc_code =h.hrc_code)long_name + FROM hrc_tab h; + /*Declare two REF CURSOR variables to hold the nested cursor resultset + while fetching.*/ + hrc_rec rc; + org_rec rc; + v_hrc_descr VARCHAR2(20); + v_org_long_name VARCHAR2(60); + v_site_name VARCHAR2(20); +BEGIN + /*Open the parent cursor */ + OPEN csr_hierarchy; + LOOP + /*fetch the column csr_hierarchy.hrc_descr, + then loop through the resultset of the nested cursors.*/ + FETCH csr_hierarchy INTO v_hrc_descr,hrc_rec; + EXIT WHEN csr_hierarchy%notfound; + LOOP + /*Use a nested loop that fetches from the first nested cursor + within the parent rows */ + FETCH hrc_rec INTO v_org_long_name,org_rec; + EXIT WHEN hrc_rec%notfound; + LOOP + --Directly fetch from the second nested cursor,there is no need to open it + FETCH org_rec INTO v_site_name; + EXIT WHEN org_rec%notfound; + DBMS_OUTPUT.PUT_LINE(v_hrc_descr ||''||v_org_long_name||''|| + v_site_name); + END LOOP; + END LOOP; + END LOOP; + /*Close the parent cursor.No need to close the nested cursor.*/ + close csr_hierarchy; + RETURN (0); +EXCEPTION WHEN OTHERS THEN + RETURN (SQLCODE); +END; +/ + +-- Cursor expressions as arguments to functions called from SQL +CREATE OR REPLACE FUNCTION f_report(p_cursor SYS_REFCURSOR,p_title VARCHAR2) +RETURN NUMBER +IS + v_hrc_descr VARCHAR2(20); + v_org_short_name VARCHAR2(30); + v_ret_code NUMBER; +BEGIN + BEGIN + dbms_output.put_line(p_title); + dbms_output.put_line(rpad('Hierarchy',20,' ')||' '|| + rpad('Organization',30,' ')); + dbms_output.put_line(rpad('-',20,'-')||' '||rpad('-',30,'-')); + LOOP + FETCH p_cursor INTO v_hrc_descr,v_org_short_name; + EXIT WHEN p_cursor%NOTFOUND; + dbms_output.put_line(rpad(v_hrc_descr,20,' ')||' '|| + rpad(v_org_short_name,30,' ')); + END LOOP; + v_ret_code :=1; + EXCEPTION WHEN OTHERS THEN + v_ret_code :=SQLCODE; + END; + RETURN (v_ret_code); +END; +/ +CREATE OR REPLACE PROCEDURE flush +IS +BEGIN + NULL; +END; +/ +SELECT 'Report Generated on '||TO_CHAR(SYSDATE,'MM/DD/YYYY ') "Report1" +FROM DUAL +WHERE f_report( + CURSOR(SELECT h.hrc_descr,o.org_short_name + FROM hrc_tab h,org_tab o + WHERE o.hrc_code =h.hrc_code + AND 1 < (SELECT count(os.site_no) + FROM org_site_tab os + WHERE os.org_id =o.org_id) + ), + 'List of Organizations located in more than one site' +)=1; +SELECT 'Report Generated on '||TO_CHAR(SYSDATE,'MM/DD/YYYY ') "Report2" +FROM DUAL +WHERE f_report( + CURSOR(SELECT h.hrc_descr,o.org_short_name + FROM hrc_tab h,org_tab o + WHERE o.hrc_code =h.hrc_code + AND NOT EXISTS (SELECT * + FROM org_tab o1 + WHERE o1.org_id =o.org_id + AND o1.hrc_code = 2 + ) + ),'List of Organizations not having a VP' +)=1; +CREATE OR REPLACE FUNCTION f_cursor(p_cursor SYS_REFCURSOR) +RETURN NUMBER +IS + v_org_short_name VARCHAR2(30); + v_cnt NUMBER :=0; + v_ret_code NUMBER; +BEGIN + BEGIN + LOOP + FETCH p_cursor INTO v_org_short_name; + EXIT WHEN p_cursor%NOTFOUND; + v_cnt :=v_cnt +1; + END LOOP; + IF (v_cnt >0)THEN + v_ret_code :=1; + ELSE + v_ret_code :=0; + END IF; + EXCEPTION WHEN OTHERS THEN + v_ret_code :=SQLCODE; + END; + RETURN (v_ret_code); +END; +/ +SELECT rpad(h.hrc_descr,20,' ') "Hierarchy", + rpad(o.org_short_name,30,' ') "Organization" +FROM hrc_tab h,org_tab o +WHERE h.hrc_code =o.hrc_code +AND f_cursor( + CURSOR(SELECT o1.org_short_name + FROM org_tab o1 + WHERE o1.org_id =o.org_id + AND 1 < (SELECT count(os.site_no) + FROM org_site_tab os + WHERE os.org_id =o1.org_id) + ) +)=1; +SELECT rpad(h.hrc_descr,20,' ') "Hierarchy", + rpad(o.org_short_name,30,' ') "Organization" +FROM hrc_tab h,org_tab o +WHERE h.hrc_code =o.hrc_code +AND f_cursor( + CURSOR(SELECT o1.org_short_name + FROM org_tab o1 + WHERE o1.org_id =o.org_id + AND NOT EXISTS (SELECT * + FROM org_tab o2 + WHERE o2.org_id =o1.org_id + AND o2.hrc_code =2) + ) +)=1; diff --git a/Chapter03/Chapter03.txt b/Chapter03/Chapter03.txt new file mode 100644 index 0000000..11bd23f --- /dev/null +++ b/Chapter03/Chapter03.txt @@ -0,0 +1,422 @@ +-- An example of declaring a record +DECLARE + TYPE hrc_org_rec IS RECORD + (hrc_org_id NUMBER, + hrc_descr VARCHAR2(20), + org_short_name VARCHAR2(30)); + v_example_rec hrc_org_rec; +BEGIN + /*Do some processing */ + null; +END; +/ + +-- Accessing Individual Record elements +DECLARE + TYPE hrc_org_rec IS RECORD + (hrc_org_id NUMBER, + hrc_descr VARCHAR2(20), + org_short_name VARCHAR2(30)); + v_example_rec hrc_org_rec; +BEGIN + v_example_rec.hrc_org_id :=1001; + v_example_rec.hrc_descr :='CEO/COO'; + v_example_rec.org_short_name :='Office of CEO/COO ABC Inc.'; + dbms_output.put_line('An example record:'); + dbms_output.new_line; + dbms_output.put_line(to_number(v_example_rec.hrc_org_id)||' '|| + v_example_rec.hrc_descr||' '|| + v_example_rec.org_short_name); +END; +/ + +-- Accessing an entire record +DECLARE + TYPE hrc_org_rec IS RECORD + (hrc_org_id NUMBER, + hrc_descr VARCHAR2(20), + org_short_name VARCHAR2(30)); + v_example_rec1 hrc_org_rec; + v_example_rec2 hrc_org_rec; +BEGIN + v_example_rec1.hrc_org_id :=1001; + v_example_rec1.hrc_descr :='CEO/COO'; + v_example_rec1.org_short_name :='Office of CEO/COO ABC Inc.'; + v_example_rec2 :=v_example_rec1; + dbms_output.put_line('An example record:'); + dbms_output.new_line; + dbms_output.put_line(to_number(v_example_rec2.hrc_org_id)||' '|| + v_example_rec2.hrc_descr||' '|| + v_example_rec2.org_short_name); +END; +/ + +-- Testing for equality of records +DECLARE + TYPE hrc_org_rec IS RECORD + (hrc_org_id NUMBER, + hrc_descr VARCHAR2(20), + org_short_name VARCHAR2(30)); + v_example_rec1 hrc_org_rec; + v_example_rec2 hrc_org_rec; +BEGIN + v_example_rec1.hrc_org_id :=1001; + v_example_rec1.hrc_descr :='CEO/COO'; + v_example_rec1.org_short_name :='Office of CEO/COO ABC Inc.'; + v_example_rec2.hrc_org_id :=1002; + v_example_rec2.hrc_descr :='VP '; + v_example_rec2.org_short_name :='Office of VP ABC Inc.'; + IF ((v_example_rec1.hrc_org_id =v_example_rec2.hrc_org_id) AND + (v_example_rec1.hrc_descr =v_example_rec2.hrc_descr) AND + (v_example_rec1.org_short_name =v_example_rec2.org_short_name)) THEN + dbms_output.put_line('Both example records are identical.'); + ELSE + dbms_output.put_line('The two example records are different.'); + END IF; +END; +/ + +-- Populating a Record with SELECT INTO +DECLARE + TYPE hrc_org_rec IS RECORD + (hrc_org_id NUMBER, + hrc_descr VARCHAR2(20), + org_short_name VARCHAR2(30)); + v_example_rec hrc_org_rec; +BEGIN + SELECT hrc_org_seq.nextval,h.hrc_descr,o.org_short_name + INTO v_example_rec + FROM org_tab o,hrc_tab h + WHERE o.hrc_code =h.hrc_code + AND o.org_id =1001; + dbms_output.put_line('An example record:'); + dbms_output.new_line; + dbms_output.put_line(to_number(v_example_rec.hrc_org_id)||' '|| + v_example_rec.hrc_descr||' '|| + v_example_rec.org_short_name); +END; +/ + +-- Populating a Record with FETCH INTO +DECLARE + TYPE hrc_org_rec IS RECORD + (hrc_org_id NUMBER, + hrc_descr VARCHAR2(20), + org_short_name VARCHAR2(30)); + v_example_rec hrc_org_rec; + CURSOR csr_hrc_org IS + SELECT hrc_org_seq.nextval,h.hrc_descr,o.org_short_name + FROM org_tab o,hrc_tab h + WHERE o.hrc_code =h.hrc_code + AND h.hrc_code =1; +BEGIN + OPEN csr_hrc_org; + dbms_output.put_line('An example output:'); + dbms_output.new_line; + LOOP + FETCH csr_hrc_org INTO v_example_rec; + EXIT WHEN csr_hrc_org%NOTFOUND; + dbms_output.put_line(to_number(v_example_rec.hrc_org_id)||' '|| + v_example_rec.hrc_descr||' '|| + v_example_rec.org_short_name); + END LOOP; + CLOSE csr_hrc_org; +END; +/ + +-- Defining and using a table-oriented record +DECLARE + hrc_rec hrc_tab%ROWTYPE; +BEGIN + SELECT * + INTO hrc_rec + FROM hrc_tab + WHERE hrc_code =1; + dbms_output.put_line('An example record:'); + dbms_output.new_line; + dbms_output.put_line(to_char(hrc_rec.hrc_code)||' '||hrc_rec.hrc_descr); +END; +/ + +-- Defining and using a cursor-oriented record +DECLARE + CURSOR csr_hrc IS + SELECT *FROM hrc_tab ORDER BY 1; + hrc_rec csr_hrc%ROWTYPE; +BEGIN + OPEN csr_hrc; + dbms_output.put_line('Hierarchy records:'); + dbms_output.new_line; + LOOP + FETCH csr_hrc INTO hrc_rec; + EXIT WHEN csr_hrc%NOTFOUND; + dbms_output.put_line(to_char(hrc_rec.hrc_code)||' '||hrc_rec.hrc_descr); + END LOOP; + CLOSE csr_hrc; +END; +/ + +-- INSERT statement involving entire records +DECLARE + TYPE hrc_rec IS RECORD + (hrc_code NUMBER, + hrc_descr VARCHAR2(20)); + v_example_rec hrc_rec; +BEGIN + v_example_rec.hrc_code :=99; + v_example_rec.hrc_descr :='Web Analyst'; + INSERT INTO hrc_tab VALUES v_example_rec; + COMMIT; +END; +/ + +-- UPDATE statement involving entire records +DECLARE + TYPE hrc_rec IS RECORD + (hrc_code NUMBER, + hrc_descr VARCHAR2(20)); + v_example_rec hrc_rec; +BEGIN + v_example_rec.hrc_code :=99; + v_example_rec.hrc_descr :='Web Analyst Sr.'; + UPDATE hrc_tab SET ROW =v_example_rec WHERE hrc_code =99; + COMMIT; +END; +/ + +-- An example of declaring an Index-by table +DECLARE + TYPE num_tab IS TABLE OF NUMBER INDEX BY BINARY_INTEGER; + v_example_tab num_tab; +BEGIN + /*Do some processing */ + null; +END; +/ + +-- Accessing an Index-by table +DECLARE + TYPE num_tab IS TABLE OF NUMBER INDEX BY BINARY_INTEGER; + v_example_tab num_tab; + v_num NUMBER :=13; +BEGIN + v_example_tab(1):=1001; + v_example_tab(10):=1002; + v_example_tab(-10):=1003; + v_example_tab(v_num):=1004; + dbms_output.put_line('An example array:'); + dbms_output.new_line; + dbms_output.put_line(to_char(v_example_tab(1))||' '|| + to_char(v_example_tab(10))||' '|| + to_char(v_example_tab(-10))||' '|| + to_char(v_example_tab(v_num))); +END; +/ + +-- Accessing an entire Index-by table +DECLARE + TYPE num_tab IS TABLE OF NUMBER INDEX BY BINARY_INTEGER; + v_example_tab1 num_tab; + v_example_tab2 num_tab; + v_num NUMBER :=13; +BEGIN + v_example_tab1(1):=1001; + v_example_tab1(10):=1002; + v_example_tab1(-10):=1003; + v_example_tab1(v_num):=1004; + v_example_tab2 :=v_example_tab1; + dbms_output.put_line('An example array:'); + dbms_output.new_line; + dbms_output.put_line(to_char(v_example_tab2(1))||' '|| + to_char(v_example_tab2(10))||' '|| + to_char(v_example_tab2(-10))||' '|| + to_char(v_example_tab2(v_num))); +END; +/ + +-- Accessing an undefined row of an Index-by table +DECLARE + TYPE num_tab IS TABLE OF NUMBER INDEX BY BINARY_INTEGER; + v_example_tab num_tab; + v_num NUMBER :=13; +BEGIN + v_example_tab(1):=1001; + v_example_tab(10):=1002; + v_example_tab(-10):=1003; + v_example_tab(v_num):=1004; + dbms_output.put_line(to_char(v_example_tab(100))); +END; +/ + +-- Sample code using exception while accessing an undefined row of +-- an Index-by table +DECLARE + TYPE num_tab IS TABLE OF NUMBER INDEX BY BINARY_INTEGER; + v_example_tab num_tab; + v_num NUMBER :=13; +BEGIN + v_example_tab(1):=1001; + v_example_tab(10):=1002; + v_example_tab(-10):=1003; + v_example_tab(v_num):=1004; + dbms_output.put_line(to_char(v_example_tab(100))); +EXCEPTION WHEN NO_DATA_FOUND THEN + dbms_output.put_line ('Invalid array element '); +END; +/ + +-- Assigning rows of an Index-By table by means of a LOOP +DECLARE + TYPE num_tab IS TABLE OF NUMBER INDEX BY BINARY_INTEGER; + v_example_tab num_tab; +BEGIN + FOR idx IN 1..10 LOOP + v_example_tab(idx):=(2**idx)+1; + END LOOP; + dbms_output.put_line('An example array:'); + dbms_output.new_line; + FOR idx IN 1..10 LOOP + dbms_output.put_line(to_char(v_example_tab(idx))); + END LOOP; +END; +/ + +-- Deleting an Index-by table using an empty Index-by table +DECLARE + TYPE num_tab IS TABLE OF NUMBER INDEX BY BINARY_INTEGER; + v_example_tab1 num_tab; + v_example_tab2 num_tab; + v_num NUMBER :=13; +BEGIN + v_example_tab1(1):=1001; + v_example_tab1(10):=1002; + v_example_tab1(-10):=1003; + v_example_tab1(v_num):=1004; + v_example_tab1:=v_example_tab2; +END; +/ + +-- Using the EXISTS method +DECLARE + TYPE num_tab IS TABLE OF NUMBER INDEX BY BINARY_INTEGER; + v_example_tab num_tab; + v_num NUMBER :=13; +BEGIN + v_example_tab(1):=1001; + v_example_tab(10):=1002; + v_example_tab(-10):=1003; + v_example_tab(v_num):=1004; + IF v_example_tab.EXISTS(100) THEN + dbms_output.put_line(to_char(v_example_tab(100))); + END IF; +END; +/ + +-- An example of COUNT method +DECLARE + TYPE num_tab IS TABLE OF NUMBER INDEX BY BINARY_INTEGER; + v_example_tab num_tab; +BEGIN + FOR idx IN 1..10 LOOP + v_example_tab(idx):=(2**idx)+1; + END LOOP; + dbms_output.put_line('An example array:'); + dbms_output.new_line; + FOR idx IN 1..v_example_tab.COUNT LOOP + dbms_output.put_line(to_char(v_example_tab(idx))); + END LOOP; +END; +/ + +-- An example of the DELETE method +DECLARE + TYPE num_tab IS TABLE OF NUMBER INDEX BY BINARY_INTEGER; + v_example_tab num_tab; +BEGIN + FOR idx IN 1..10 LOOP + v_example_tab(idx):=(2**idx)+1; + END LOOP; + v_example_tab.DELETE(1); + v_example_tab.DELETE(2,5); + v_example_tab.DELETE; +END; +/ + +-- An example of the FIRST, LAST and NEXT methods +DECLARE + TYPE num_tab IS TABLE OF NUMBER INDEX BY BINARY_INTEGER; + v_example_tab num_tab; + idx BINARY_INTEGER; +BEGIN + FOR idx IN 1..10 LOOP + v_example_tab(idx):=(2**idx)+1; + END LOOP; + dbms_output.put_line('An example array:'); + dbms_output.new_line; + idx :=v_example_tab.FIRST; + LOOP + dbms_output.put_line(to_char(v_example_tab(idx))); + EXIT WHEN idx =v_example_tab.LAST; + idx :=v_example_tab.NEXT(idx); + END LOOP; +END; +/ + +-- Defining an Index-by table of records +DECLARE + TYPE hrc_org_rec IS RECORD + (hrc_org_id NUMBER, + hrc_descr VARCHAR2(20), + org_short_name VARCHAR2(30)); + TYPE hrc_org_tab IS TABLE OF hrc_org_rec INDEX BY BINARY_INTEGER; + v_example_tab hrc_org_tab; +BEGIN + /*Do some processing */ + null; +END; +/ + +-- Creating and accessing rows of an Index-by table of records +DECLARE + TYPE hrc_org_rec IS RECORD + (hrc_org_id NUMBER, + hrc_descr VARCHAR2(20), + org_short_name VARCHAR2(30)); + TYPE hrc_org_tab IS TABLE OF hrc_org_rec INDEX BY BINARY_INTEGER; + v_example_tab hrc_org_tab; + CURSOR csr_hrc_org IS + SELECT hrc_org_seq.nextval hrc_org_id,h.hrc_descr,o.org_short_name + FROM org_tab o,hrc_tab h + WHERE o.hrc_code =h.hrc_code + AND h.hrc_code =1; + i BINARY_INTEGER :=1; +BEGIN + FOR idx IN csr_hrc_org LOOP + v_example_tab(i).hrc_org_id :=idx.hrc_org_id; + v_example_tab(i).hrc_descr :=idx.hrc_descr; + v_example_tab(i).org_short_name :=idx.org_short_name; + i :=i +1; + END LOOP; + dbms_output.put_line('An example output:'); + dbms_output.new_line; + FOR j IN 1..v_example_tab.COUNT LOOP + dbms_output.put_line(to_char(v_example_tab(j).hrc_org_id)||' '|| + v_example_tab(j).hrc_descr||' '|| + v_example_tab(j).org_short_name); + END LOOP; +END; +/ + +-- Associative arrays +DECLARE + TYPE site_array IS TABLE OF NUMBER INDEX BY VARCHAR2(20); + v_example_array site_array; +BEGIN + v_example_array('Edison'):=10; + v_example_array('Bloomington'):=11; + v_example_array('Sunnyvale'):=12; + dbms_output.put_line(v_example_array.FIRST); + dbms_output.put_line(v_example_array.LAST); + dbms_output.put_line(TO_CHAR(v_example_array(v_example_array.FIRST))); +END; +/ diff --git a/Chapter04/Chapter04.txt b/Chapter04/Chapter04.txt new file mode 100644 index 0000000..47f6427 --- /dev/null +++ b/Chapter04/Chapter04.txt @@ -0,0 +1,258 @@ +-- An example showing handling of pre-defined exceptions +DECLARE + v_descr VARCHAR2(20); +BEGIN + SELECT hrc_descr + INTO v_descr + FROM hrc_tab + WHERE hrc_code =10; + dbms_output.put_line('The hierarchy description for code 10 is: '||v_descr); +EXCEPTION WHEN NO_DATA_FOUND THEN + dbms_output.put_line('ERR:Invalid Hierarchy Code 10'); +END; +/ + +-- The above example using WHEN OTHERS clause +DECLARE + v_descr VARCHAR2(20); +BEGIN + SELECT hrc_descr + INTO v_descr + FROM hrc_tab + WHERE hrc_code =10; + dbms_output.put_line('The hierarchy description for code 10 is: '||v_descr); +EXCEPTION WHEN OTHERS THEN + dbms_output.put_line('ERR:Invalid Hierarchy Code 10'); +END; +/ + +-- The previous example using NO_DATA_FOUND and WHEN OTEHRS +DECLARE + v_descr VARCHAR2(20); +BEGIN + SELECT hrc_descr + INTO v_descr + FROM hrc_tab + WHERE hrc_code =10; + dbms_output.put_line('The hierarchy description for code 10 is: '||v_descr); +EXCEPTION + WHEN NO_DATA_FOUND THEN + dbms_output.put_line('ERR:Invalid Hierarchy Code 10'); + WHEN OTHERS THEN + dbms_output.put_line('ERR:An error occurred'); +END; +/ + +-- The above example using SQLCODE and SQLERRM +DECLARE + v_descr VARCHAR2(20); +BEGIN + SELECT hrc_descr + INTO v_descr + FROM hrc_tab + WHERE hrc_code =10; + dbms_output.put_line('The hierarchy description for code 10 is: '||v_descr); +EXCEPTION + WHEN NO_DATA_FOUND THEN + dbms_output.put_line('ERR:Invalid Hierarchy Code 10'); + WHEN OTHERS THEN + dbms_output.put_line('ERR:An error occurred with info :'|| + TO_CHAR(SQLCODE)||' '||SQLERRM); +END; +/ + +-- An example showing continuing program execution after handling exception +DECLARE + v_descr VARCHAR2(20); +BEGIN + BEGIN + SELECT hrc_descr + INTO v_descr + FROM hrc_tab + WHERE hrc_code =10; + dbms_output.put_line('The lowest hierarchy available is: Code 10 '||v_descr); + EXCEPTION WHEN NO_DATA_FOUND THEN + INSERT INTO hrc_tab VALUES (10,'Assistant'); + COMMIT; + END; + BEGIN + SELECT hrc_descr + INTO v_descr + FROM hrc_tab + WHERE hrc_code =1; + dbms_output.put_line('The highest hierarchy available is: Code 1 '|| + v_descr); + EXCEPTION WHEN NO_DATA_FOUND THEN + dbms_output.put_line('ERR:Invalid Data for Hierarchy'); + END; +EXCEPTION + WHEN OTHERS THEN + dbms_output.put_line('ERR:An error occurred with info :'|| + TO_CHAR(SQLCODE)||' '||SQLERRM); +END; +/ + +-- Handling user-defined exceptions with a WHEN clause +BEGIN +insert into org_tab values + (3,1007,'Office of Dir Tech ABC Inc.','Office of Director Tech ABC Inc.'); +COMMIT; +END; +/ +DECLARE + sites_undefined_for_org EXCEPTION;-- a user-defined exception + v_cnt NUMBER; +BEGIN + SELECT COUNT(*) + INTO v_cnt + FROM org_site_tab + WHERE org_id =1007; + IF (v_cnt=0)THEN + --explicitly raising the user-defined exception + RAISE sites_undefined_for_org; + END IF; +EXCEPTION + --handling the raised user-defined exception + WHEN sites_undefined_for_org THEN + dbms_output.put_line('There are no sites defined for organization 1007'); + WHEN OTHERS THEN + dbms_output.pu t_line('ERR:An error occurred with info :'|| + TO_CHAR(SQLCODE)||' '||SQLERRM); +END; +/ + +-- An example of using PRAGMA EXCEPTION_INIT +DECLARE + invalid_org_level EXCEPTION; + PRAGMA EXCEPTION_INIT(invalid_org_level,-2290); +BEGIN + INSERT INTO org_level VALUES (1001,'P'); + COMMIT; +EXCEPTION WHEN invalid_org_level THEN + dbms_output.put_line( + 'Organization Level can be only one of '|| + 'C –Corporate,E –Executive,M –Mid-level,L –Lower Level'); +END; +/ + +-- An example showing handling of exceptions raised in the +-- declaration section +BEGIN + DECLARE + v_num NUMBER(2):=100; + BEGIN + /*......Do some processing */ + null; + EXCEPTION + WHEN VALUE_ERROR THEN + /*......Handle the error */ + NULL; + WHEN OTHERS THEN + dbms_output.put_line('ERR:An error occurred with info :'|| + TO_CHAR(SQLCODE)||' '||SQLERRM); + END; +EXCEPTION + WHEN VALUE_ERROR THEN + /*......Handle the error */ + dbms_output.put_line('Value error occurred'); + WHEN OTHERS THEN + dbms_output.put_line('ERR:An error occurred with info :'|| + TO_CHAR(SQLCODE)||' '||SQLERRM); +END; +/ + +-- A complete example using RAISE_APPLICATION_ERROR +CREATE OR REPLACE PROCEDURE org_proc + (p_flag_in VARCHAR2, + p_hrc_code NUMBER, + p_org_id NUMBER, + p_org_short_name VARCHAR2, + p_org_long_name VARCHAR2) +IS + v_error_code NUMBER; +BEGIN + IF (p_flag_in ='I')THEN + BEGIN + INSERT INTO org_tab VALUES + (p_hrc_code,p_org_id,p_org_short_name,p_org_long_name); + EXCEPTION WHEN OTHERS THEN + v_error_code :=SQLCODE; + IF v_error_code =-1 THEN + RAISE_APPLICATION_ERROR(-20000,'Organization '|| + TO_CHAR(p_org_id)|| + ' already exists. Cannot create a duplicate with the same id.'); + ELSIF v_error_code =-2291 THEN + RAISE_APPLICATION_ERROR(-20001,'Invalid Hierarchy Code '|| + TO_CHAR(p_hrc_code)|| + ' specified. Cannot create organization.'); + END IF; + END; + ELSIF (p_flag_in ='C')THEN + BEGIN + UPDATE org_tab + set org_short_name =p_org_short_name, + org_long_name =p_org_long_name + WHERE hrc_code =p_hrc_code + AND org_id =p_org_id; + IF SQL%NOTFOUND THEN + RAISE_APPLICATION_ERROR(-20002,'Organization '|| + TO_CHAR(p_org_id)|| + ' does not exist. Cannot change info for the same.'); + END IF; + END; + ELSIF (p_flag_in ='D')THEN + BEGIN + DELETE org_tab + WHERE hrc_code =p_hrc_code + AND org_id =p_org_id; + IF SQL%NOTFOUND THEN + RAISE_APPLICATION_ERROR(-20003,'Organization '|| + TO_CHAR(p_org_id)|| + ' does not exist. Cannot delete info for the same.'); + END IF; + EXCEPTION WHEN OTHERS THEN + v_error_code :=SQLCODE; + IF v_error_code =-2292 THEN + RAISE_APPLICATION_ERROR(-20004,'Organization '|| + TO_CHAR(p_org_id)|| + ' site details defined for it. Cannot perform delete operation.'); + END IF; + END; + END IF; +END; +/ + +-- Propogating a Server-side Customized Error Number and Error Message to +-- client program using a WHEN OTHERS handler +DECLARE + v_hrc_code NUMBER := 6; + v_org_id NUMBER := 1011; + v_org_short_name VARCHAR2(30):= 'Office of Mgr.ABC Inc.'; + v_org_long_name VARCHAR2(60):= 'Office of Mgr.ABC Inc.'; +BEGIN + org_proc('I',v_hrc_code,v_org_id,v_org_short_name,v_org_long_name); +EXCEPTION WHEN OTHERS THEN + DBMS_OUTPUT.PUT_LINE(TO_CHAR(SQLCODE)||' '||SQLERRM); +END; +/ + +-- Propogating a Server-side Customized Error Number and Error Message to +-- client program using PRAGMA EXCEPTION_INIT +DECLARE + v_hrc_code NUMBER := 6; + v_org_id NUMBER := 1010; + v_org_short_name VARCHAR2(30):= 'Office of Mgr.ABC Inc.'; + v_org_long_name VARCHAR2(60):= 'Office of Mgr.ABC Inc.'; + excep1 EXCEPTION; + PRAGMA EXCEPTION_INIT(excep1,-20000); + excep2 EXCEPTION; + PRAGMA EXCEPTION_INIT(excep2,-20001); +BEGIN + org_proc('I',v_hrc_code,v_org_id,v_org_short_name,v_org_long_name); +EXCEPTION + WHEN excep1 or excep2 THEN + DBMS_OUTPUT.PUT_LINE(SQLERRM); + WHEN OTHERS THEN + DBMS_OUTPUT.PUT_LINE(TO_CHAR(SQLCODE)||SQLERRM); +END; +/ diff --git a/Chapter05/Chapter05.txt b/Chapter05/Chapter05.txt new file mode 100644 index 0000000..48a3e29 --- /dev/null +++ b/Chapter05/Chapter05.txt @@ -0,0 +1,847 @@ +-- Show_line procedure +CREATE OR REPLACE PROCEDURE show_line + (ip_line_length IN NUMBER, + ip_separator IN VARCHAR2) +IS + actual_line VARCHAR2(150); +BEGIN + FOR idx in 1..ip_line_length LOOP + actual_line :=actual_line ||ip_separator; + END LOOP; + DBMS_OUTPUT.PUT_LINE(actual_line); +EXCEPTION WHEN OTHERS THEN + dbms_output.put_line(SQLERRM); +END; +/ + +-- F_line function +CREATE OR REPLACE FUNCTION f_line + (ip_line_length IN NUMBER, + ip_separator IN VARCHAR2) +RETURN VARCHAR2 +IS + actual_line VARCHAR2(150); +BEGIN + FOR idx in 1..ip_line_length LOOP + actual_line :=actual_line ||ip_separator; + END LOOP; + RETURN (actual_line); +EXCEPTION WHEN OTHERS THEN + dbms_output.put_line(SQLERRM); + RETURN (null); +END; +/ + +-- Specifying procedure or function parameters +-- Positional notation +DECLARE + v_length NUMBER :=50; + v_separator VARCHAR2(1):='='; +BEGIN + show_line(v_length,v_separator); +END; +/ +-- Named notation +DECLARE + v_length NUMBER :=50; + v_separator VARCHAR2(1):='='; +BEGIN + show_line(ip_line_length=>v_length,ip_separator=>v_separator); +END; +/ +-- Mixed notation +DECLARE + v_length NUMBER :=50; + v_separator VARCHAR2(1):='='; +BEGIN + show_line(v_length,ip_separator=>v_separator); +END; +/ + +-- Procedure show_line2 +CREATE OR REPLACE PROCEDURE show_line2 + (ip_line_length IN NUMBER, + ip_separator IN VARCHAR2, + op_line OUT VARCHAR2) +IS + actual_line VARCHAR2(150); +BEGIN + FOR idx in 1..ip_line_length LOOP + actual_line :=actual_line ||ip_separator; + END LOOP; + op_line :=actual_line; +EXCEPTION WHEN OTHERS THEN + dbms_output.put_line(SQLERRM); + op_line :=null; +END; +/ +-- Calling show_line2 +DECLARE + v_length NUMBER :=50; + v_separator VARCHAR2(1):='='; + v_line VARCHAR2(150); +BEGIN + show_line2(v_length,v_separator,v_line); + dbms_output.put_line(v_line); +END; +/ + +-- Show_line procedure with a default value for one parameter +CREATE OR REPLACE PROCEDURE show_line + (ip_line_length IN NUMBER, + ip_separator IN VARCHAR2 DEFAULT '=') +IS + actual_line VARCHAR2(150); +BEGIN + FOR idx in 1..ip_line_length LOOP + actual_line :=actual_line ||ip_separator; + END LOOP; + DBMS_OUTPUT.PUT_LINE(actual_line); +EXCEPTION WHEN OTHERS THEN + dbms_output.put_line(SQLERRM); +END; +/ + +-- Show_line procedure with a default value for both parameters +CREATE OR REPLACE PROCEDURE show_line + (ip_line_length IN NUMBER DEFAULT 50, + ip_separator IN VARCHAR2 DEFAULT '=') +IS + actual_line VARCHAR2(150); +BEGIN + FOR idx in 1..ip_line_length LOOP + actual_line :=actual_line ||ip_separator; + END LOOP; + DBMS_OUTPUT.PUT_LINE(actual_line); +EXCEPTION WHEN OTHERS THEN + dbms_output.put_line(SQLERRM); +END; +/ + +-- Package orgMaster +CREATE OR REPLACE PACKAGE orgMaster +IS + max_sites_for_an_org NUMBER; + TYPE rc IS REF CURSOR; + + PROCEDURE createOrg (ip_hrc_code NUMBER, + ip_org_id NUMBER, + ip_org_short_name VARCHAR2, + ip_org_long_name VARCHAR2, + op_retcd OUT NUMBER, + op_err_msg OUT VARCHAR2); + + PROCEDURE updateOrg (ip_org_id NUMBER, + ip_org_short_name VARCHAR2, + ip_org_long_name VARCHAR2, + op_retcd OUT NUMBER, + op_err_msg OUT VARCHAR2); + + PROCEDURE removeOrg (ip_org_id NUMBER, + op_retcd OUT NUMBER, + op_err_msg OUT VARCHAR2); + + FUNCTION getOrgInfo (ip_org_id NUMBER) RETURN rc; + + FUNCTION getAllOrgs (ip_hrc_code NUMBER) RETURN rc; + + PROCEDURE assignSiteToOrg (ip_org_id NUMBER, + ip_site_no NUMBER, + op_retcd OUT NUMBER, + op_err_msg OUT VARCHAR2); + +END orgMaster; +/ +CREATE OR REPLACE PACKAGE BODY orgMaster +IS + --Procedure to remove rows from org_site_tab table for a given org_id + --This is necessary before deleting rows from org_tab. + --This procedure is called from removeOrg procedure + PROCEDURE removeOrgSites(ip_org_id NUMBER, + op_retcd OUT NUMBER, + op_err_msg OUT VARCHAR2) + IS + BEGIN + DELETE org_site_tab WHERE org_id = ip_org_id; + op_retcd :=0; + EXCEPTION WHEN OTHERS THEN + op_retcd :=SQLCODE; + op_err_msg :=SQLERRM; + END removeOrgSites; + + --Procedure to create a new Org record in org_tab + PROCEDURE createOrg (ip_hrc_code NUMBER, + ip_org_id NUMBER, + ip_org_short_name VARCHAR2, + ip_org_long_name VARCHAR2, + op_retcd OUT NUMBER, + op_err_msg OUT VARCHAR2) + IS + BEGIN + INSERT INTO org_tab VALUES + (ip_hrc_code,ip_org_id,ip_org_short_name,ip_org_long_name); + op_retcd :=0; + EXCEPTION WHEN DUP_VAL_ON_INDEX THEN + op_retcd :=-1; + op_err_msg :='Organization with Id '||TO_CHAR(ip_org_id)|| + 'already exists.'; + WHEN OTHERS THEN + op_retcd :=SQLCODE; + op_err_msg :=SQLERRM; + END createOrg; + + --Procedure to update the short and long names of an Org in org_tab + --based on input org_id + PROCEDURE updateOrg(ip_org_id NUMBER, + ip_org_short_name VARCHAR2, + ip_org_long_name VARCHAR2, + op_retcd OUT NUMBER, + op_err_msg OUT VARCHAR2) + IS + BEGIN + UPDATE org_tab + SET org_short_name =ip_org_short_name, + org_long_name =ip_org_long_name + WHERE org_id =ip_org_id; + IF (SQL%NOTFOUND) THEN + op_retcd :=-1; + op_err_msg :='Organization with Id '||TO_CHAR(ip_org_id)|| + 'does not exist.'; + RETURN; + END IF; + op_retcd :=0; + EXCEPTION WHEN OTHERS THEN + op_retcd :=SQLCODE; + op_err_msg :=SQLERRM; + END updateOrg; + + --Procedure to delete a record in org_tab + PROCEDURE removeOrg(ip_org_id NUMBER, + op_retcd OUT NUMBER, + op_err_msg OUT VARCHAR2) + IS + BEGIN + removeOrgSites(ip_org_id,op_retcd,op_err_msg); + IF (op_retcd <>0) then + RETURN; + END IF; + DELETE org_tab WHERE org_id = ip_org_id; + IF (SQL%NOTFOUND) THEN + op_retcd :=-1; + op_err_msg :='Organization with Id '||TO_CHAR(ip_org_id)|| + 'does not exist.'; + RETURN; + END IF; + op_retcd :=0; + EXCEPTION WHEN OTHERS THEN + op_retcd :=SQLCODE; + op_err_msg :=SQLERRM; + END removeOrg; + + --Function to return a row in org_tab for a given org_id. + --It returns a resultset of type REF CURSOR defined in the package specification + FUNCTION getOrgInfo(ip_org_id NUMBER) RETURN rc + IS + v_rc rc; + BEGIN + OPEN v_rc FOR SELECT * FROM org_tab WHERE org_id = ip_org_id; + RETURN (v_rc); + EXCEPTION WHEN OTHERS THEN + RAISE_APPLICATION_ERROR(-20001,SQLERRM); + END getOrgInfo; + + --Function to return all rows in org_tab. + --It returns a resultset of type REF CURSOR defined in the package specification + FUNCTION getAllOrgs(ip_hrc_code NUMBER) RETURN rc + IS + v_rc rc; + BEGIN + OPEN v_rc FOR SELECT * FROM org_tab WHERE hrc_code = ip_hrc_code; + RETURN (v_rc); + EXCEPTION WHEN OTHERS THEN + RAISE_APPLICATION_ERROR(-20002,SQLERRM); + END getAllOrgs; + + --Procedure to insert a row into org_site_tab based on + --input org_id and site_no + PROCEDURE assignSiteToOrg(ip_org_id NUMBER, + ip_site_no NUMBER, + op_retcd OUT NUMBER, + op_err_msg OUT VARCHAR2) + IS + v_num NUMBER; + BEGIN + BEGIN + SELECT 1 + INTO v_num + FROM org_site_tab + WHERE org_id = ip_org_id + AND site_no = ip_site_no; + IF (v_num =1) THEN + op_retcd :=0; + RETURN; + END IF; + EXCEPTION WHEN NO_DATA_FOUND THEN + INSERT INTO org_site_tab VALUES (ip_org_id,ip_site_no); + END; + op_retcd :=0; + EXCEPTION WHEN OTHERS THEN + op_retcd :=SQLCODE; + op_err_msg :=SQLERRM; + END assignSiteToOrg; + + --This is the initialization section that is executed + --the first time a package sub-program is invoked + --or a packaged variable is referenced + BEGIN + max_sites_for_an_org :=4; +END orgMaster; +/ + +-- Subprograms returning resultsets, function getAllHierarchies +CREATE OR REPLACE FUNCTION getAllHierarchies +RETURN SYS_REFCURSOR +IS + v_rc SYS_REFCURSOR; +BEGIN + OPEN v_rc FOR SELECT * FROM hrc_tab; + RETURN (v_rc); +EXCEPTION WHEN OTHERS THEN + RAISE_APPLICATION_ERROR(-20002,SQLERRM); +END; +/ + +-- Calling the above function +DECLARE + v_rc SYS_REFCURSOR; + hrc_rec hrc_tab%ROWTYPE; +BEGIN + v_rc :=getAllHierarchies; + LOOP + FETCH v_rc INTO hrc_rec; + EXIT WHEN v_rc%NOTFOUND; + dbms_output.put_line(TO_CHAR(hrc_rec.hrc_code)||' '||hrc_rec.hrc_descr); + END LOOP; +EXCEPTION WHEN OTHERS THEN + dbms_output.put_line(TO_CHAR(SQLCODE)||' '||SQLERRM); +END; +/ + +-- Using stored functions in SQL statements, function f_get_formatted_org_name +CREATE OR REPLACE FUNCTION f_get_formatted_org_name + (ip_hrc_code NUMBER, + ip_org_id NUMBER) +RETURN VARCHAR2 +IS + v_name VARCHAR2(120); +BEGIN + SELECT 'Org Name: (Short) '||org_short_name||' (Long) '||org_long_name + INTO v_name + FROM org_tab + WHERE hrc_code = ip_hrc_code + AND org_id = ip_org_id; + RETURN (v_name); +END f_get_formatted_org_name; +/ +-- Calling the above function from SQL +SELECT f_get_formatted_org_name(hrc_code,org_id) "Formatted Org Name" +FROM org_tab +ORDER BY hrc_code,org_id; + +-- Package rfPkg +CREATE OR REPLACE PACKAGE rfPkg +IS + FUNCTION f_get_formatted_org_name + (ip_hrc_code NUMBER, + ip_org_id NUMBER) + RETURN VARCHAR2; + PRAGMA RESTRICT_REFERENCES(f_get_formatted_org_name,WNDS,WNPS); +END rfPkg; +/ +CREATE OR REPLACE PACKAGE BODY rfPkg +IS + FUNCTION f_get_formatted_org_name + (ip_hrc_code NUMBER, + ip_org_id NUMBER) + RETURN VARCHAR2 + IS + v_name VARCHAR2(120); + BEGIN + SELECT 'Org Name: (Short) '||org_short_name||' (Long) '||org_long_name + INTO v_name + FROM org_tab + WHERE hrc_code = ip_hrc_code + AND org_id = ip_org_id; + RETURN (v_name); + END f_get_formatted_org_name; +END rfPkg; +/ + +-- Calling the above packaged function from SQL +SELECT rfPkg.f_get_formatted_org_name(hrc_code,org_id) "Formatted Org Name" +FROM org_tab +ORDER BY hrc_code,org_id; + +-- Package rfPkg2 +CREATE OR REPLACE PACKAGE rfPkg2 +IS + FUNCTION f_get_formatted_org_name + (ip_hrc_code NUMBER, + ip_org_id NUMBER) + RETURN VARCHAR2; + PRAGMA RESTRICT_REFERENCES(f_get_formatted_org_name,WNDS,WNPS); +END rfPkg2; +/ +CREATE OR REPLACE PACKAGE BODY rfPkg2 +IS + FUNCTION f_get_formatted_org_name + (ip_hrc_code NUMBER, + ip_org_id NUMBER) + RETURN VARCHAR2 + IS + v_name VARCHAR2(120); + v_hrc_descr VARCHAR2(20); + v_org_short_name VARCHAR2(30); + v_org_long_name VARCHAR2(60); + BEGIN + SELECT 'Org Name: (Short) '||org_short_name||' (Long) '||org_long_name + INTO v_name + FROM org_tab + WHERE hrc_code = ip_hrc_code + AND org_id = ip_org_id; + SELECT hrc_descr + INTO v_hrc_descr + FROM hrc_tab + WHERE hrc_code = ip_hrc_code; + SELECT org_short_name,org_long_name + INTO v_org_short_name,v_org_long_name + FROM org_tab + WHERE hrc_code = ip_hrc_code + AND org_id = ip_org_id; + INSERT INTO sec_hrc_org_tab VALUES + (ip_hrc_code,v_hrc_descr,ip_org_id, + v_org_short_name,v_org_long_name); + RETURN (v_name); + END f_get_formatted_org_name; +END rfPkg2; +/ + +-- Specifying the TRUST keyword +-- Package dirPkg +CREATE OR REPLACE PACKAGE dirPkg IS + FUNCTION FileType(ip_file_name VARCHAR2) + RETURN VARCHAR2 + IS LANGUAGE JAVA + NAME 'dirClass.fileType(java.lang.String)return java.lang.String'; + PRAGMA RESTRICT_REFERENCES(FileType,WNDS,TRUST); + + FUNCTION displayFileType(ip_file_name VARCHAR2) + RETURN VARCHAR2; + PRAGMA RESTRICT_REFERENCES(displayFileType,WNDS); +END dirPkg; +/ +CREATE OR REPLACE PACKAGE BODY dirPkg IS + FUNCTION displayFileType(ip_file_name VARCHAR2) + RETURN VARCHAR2 + IS + v_descr VARCHAR2(100); + BEGIN + v_descr :=ip_file_name||' '||'is a '||FileType(ip_file_name); + RETURN (v_descr); + END displayFileType; +END dirPkg; +/ + +--Package dirPkg2 +CREATE OR REPLACE PACKAGE dirPkg2 IS + FUNCTION FileType(ip_file_name VARCHAR2) + RETURN VARCHAR2 + IS LANGUAGE JAVA + NAME 'dirClass.fileType(java.lang.String)return java.lang.String'; + + FUNCTION displayFileType(ip_file_name VARCHAR2) + RETURN VARCHAR2; + PRAGMA RESTRICT_REFERENCES(displayFileType,WNDS,TRUST); +END dirPkg2; +/ +CREATE OR REPLACE PACKAGE BODY dirPkg2 IS + FUNCTION displayFileType(ip_file_name VARCHAR2) + RETURN VARCHAR2 + IS + v_descr VARCHAR2(100); + BEGIN + v_descr :=ip_file_name||' '||'is a '||FileType(ip_file_name); + RETURN (v_descr); + END displayFileType; +END dirPkg2; +/ + +-- Parameter passing by reference +-- Procedure p_nocopy +CREATE OR REPLACE PROCEDURE p_nocopy + (ip_1 IN NUMBER, + op_2 OUT NOCOPY VARCHAR2) +IS +BEGIN + NULL; +END; +/ + +-- Performance improvement of NOCOPY +CREATE OR REPLACE PACKAGE NoCopyPkg +is + type arr is varray(100000)of hrc_tab%ROWTYPE; + procedure p1(ip1 IN OUT arr); + procedure p2(ip1 IN OUT NOCOPY arr); + FUNCTION get_time RETURN NUMBER; +END NoCopyPkg; +/ +CREATE OR REPLACE PACKAGE BODY NoCopyPkg +is + PROCEDURE p1(ip1 IN OUT arr) + IS + BEGIN + NULL; + END; + PROCEDURE p2(ip1 IN OUT NOCOPY arr) + IS + BEGIN + NULL; + END; + FUNCTION get_time RETURN NUMBER + IS + BEGIN + RETURN (dbms_utility.get_time); + EXCEPTION WHEN OTHERS THEN + RAISE_APPLICATION_ERROR(-20010,SQLERRM); + END get_time; +END NoCopyPkg; +/ +declare + arr1 NoCopyPkg.arr :=NoCopyPkg.arr(null); + cur_t1 number; + cur_t2 number; + cur_t3 number; +begin + select * into arr1(1)from hrc_tab where hrc_code =1; + /*Create 99999 new elements in the variable array + and populate each with the value in the 1st element */ + arr1.extend(99999,1); + cur_t1 :=NoCopyPkg.get_time; + NoCopyPkg.p1(arr1); + cur_t2 :=NoCopyPkg.get_time; + NoCopyPkg.p2(arr1); + cur_t3 :=NoCopyPkg.get_time; + dbms_output.put_line('Without NOCOPY '||to_char((cur_t2-cur_t1)/100)); + dbms_output.put_line('With NOCOPY '||to_char((cur_t3-cur_t2)/100)); +end; +/ + +-- Invoker Rights Model +connect system/manager; +create user region1 identified by region1; +grant connect,resource to region1; +create user region2 identified by region2; +grant connect,resource to region2; + +Create or replace Procedure create_dyn_table + (i_region_name VARCHAR2, + retcd OUT NUMBER, + errmsg OUT VARCHAR2) +authid current_user +is + cur_id INTEGER; + ret_code INTEGER; + dyn_string VARCHAR2(1000); + dyn_Table_name VARCHAR2(21); +Begin + dyn_table_name :='ORDERS_FOR_'||i_region_name; + dyn_string :='CREATE TABLE '||dyn_table_name|| + '(order_id NUMBER(10)PRIMARY KEY, + order_date DATE NOT NULL, + total_qty NUMBER, + total_price NUMBER(15,2))'; + cur_id :=DBMS_SQL.OPEN_CURSOR; + DBMS_SQL.PARSE(cur_id,dyn_string,DBMS_SQL.V7); + ret_code :=DBMS_SQL.EXECUTE(cur_id); + DBMS_SQL.CLOSE_CURSOR(cur_id); + retcd :=0; +EXCEPTION WHEN OTHERS THEN + retcd :=SQLCODE; + errmsg :='ERR:Creating table '||dyn_table_name ||'-'||SQLERRM; +End; +/ + +-- Overloading Packaged procedures and functions +-- Package orgMaster2 +CREATE OR REPLACE PACKAGE orgMaster2 +IS +max_sites_for_an_org NUMBER; +TYPE rc IS REF CURSOR; +PROCEDURE createOrg (ip_hrc_code NUMBER, + ip_org_id NUMBER, + ip_org_short_name VARCHAR2, + ip_org_long_name VARCHAR2, + op_retcd OUT NUMBER, + op_err_msg OUT VARCHAR2); +PROCEDURE updateOrg(ip_org_id NUMBER, + ip_org_short_name VARCHAR2, + ip_org_long_name VARCHAR2, + op_retcd OUT NUMBER, + op_err_msg OUT VARCHAR2); +PROCEDURE removeOrg(ip_org_id NUMBER, + op_retcd OUT NUMBER, + op_err_msg OUT VARCHAR2); +FUNCTION getOrgDetails(ip_hrc_code NUMBER) RETURN rc; +FUNCTION getOrgDetails(ip_hrc_code NUMBER,ip_org_id NUMBER) RETURN rc; +PROCEDURE assignSiteToOrg(ip_org_id NUMBER, + ip_site_no NUMBER, + op_retcd OUT NUMBER, + op_err_msg OUT VARCHAR2); +END orgMaster2; +/ +CREATE OR REPLACE PACKAGE BODY orgMaster2 +IS + --Procedure to delete records from the org_site_tab table + --before deleting from org_table.This procedure is called + --from the removeOrg procedure + PROCEDURE removeOrgSites(ip_org_id NUMBER, + op_retcd OUT NUMBER, + op_err_msg OUT VARCHAR2) + IS + BEGIN + DELETE org_site_tab WHERE org_id =ip_org_id; + op_retcd :=0; + EXCEPTION WHEN OTHERS THEN + op_retcd :=SQLCODE; + op_err_msg :=SQLERRM; + END removeOrgSites; + + --Procedure to create a record in the org_tab table + PROCEDURE createOrg (ip_hrc_code NUMBER, + ip_org_id NUMBER, + ip_org_short_name VARCHAR2, + ip_org_long_name VARCHAR2, + op_retcd OUT NUMBER, + op_err_msg OUT VARCHAR2) + IS + BEGIN + INSERT INTO org_tab VALUES + (ip_hrc_code,ip_org_id,ip_org_short_name,ip_org_long_name); + op_retcd :=0; + EXCEPTION WHEN DUP_VAL_ON_INDEX THEN + op_retcd :=-1; + op_err_msg :='Organization with Id '||TO_CHAR(ip_org_id)|| + 'already exists.'; + WHEN OTHERS THEN + op_retcd :=SQLCODE; + op_err_msg :=SQLERRM; + END createOrg; + + --Procedure to update the long and short names for a + --given org_id in the org_tab table + PROCEDURE updateOrg(ip_org_id NUMBER, + ip_org_short_name VARCHAR2, + ip_org_long_name VARCHAR2, + op_retcd OUT NUMBER, + op_err_msg OUT VARCHAR2) + IS + BEGIN + UPDATE org_tab + SET org_short_name =ip_org_short_name, + org_long_name =ip_org_long_name + WHERE org_id =ip_org_id; + IF (SQL%NOTFOUND) THEN + op_retcd :=-1; + op_err_msg :='Organization with Id '||TO_CHAR(ip_org_id)|| + 'does not exist.'; + RETURN; + END IF; + op_retcd :=0; + EXCEPTION WHEN OTHERS THEN + op_retcd :=SQLCODE; + op_err_msg :=SQLERRM; + END updateOrg; + + --Procedure to remove a record from the org_tab table + PROCEDURE removeOrg(ip_org_id NUMBER, + op_retcd OUT NUMBER, + op_err_msg OUT VARCHAR2) + IS + BEGIN + removeOrgSites(ip_org_id,op_retcd,op_err_msg); + IF (op_retcd <>0) then + RETURN; + END IF; + DELETE org_tab WHERE org_id =ip_org_id; + IF (SQL%NOTFOUND) THEN + op_retcd :=-1; + op_err_msg :='Organization with Id '||TO_CHAR(ip_org_id)|| + 'does not exist.'; + RETURN; + END IF; + op_retcd :=0; + EXCEPTION WHEN OTHERS THEN + op_retcd :=SQLCODE; + op_err_msg :=SQLERRM; + END removeOrg; + + --Over-loaded function that returns a row from the org_tab table + --based on input hrc_code and org_id + FUNCTION getOrgDetails(ip_hrc_code NUMBER,ip_org_id NUMBER)RETURN rc + IS + v_rc rc; + BEGIN + OPEN v_rc FOR SELECT * FROM org_tab + WHERE hrc_code =ip_hrc_code + AND org_id =ip_org_id; + RETURN (v_rc); + EXCEPTION WHEN OTHERS THEN + RAISE_APPLICATION_ERROR(-20001,SQLERRM); + END getOrgDetails; + + --Over-loaded function that returns all row from the org_tab table + --for an input hrc_code.This function has the same name as the function + --above,but the number of parameters is different in each case. + FUNCTION getOrgDetails(ip_hrc_code NUMBER)RETURN rc + IS + v_rc rc; + BEGIN + OPEN v_rc FOR SELECT * FROM org_tab WHERE hrc_code =ip_hrc_code; + RETURN (v_rc); + EXCEPTION WHEN OTHERS THEN + RAISE_APPLICATION_ERROR(-20002,SQLERRM); + END getOrgDetails; + + --Procedure to create a row in the org_site_tab table + --based on input org_id and site_no + PROCEDURE assignSiteToOrg(ip_org_id NUMBER, + ip_site_no NUMBER, + op_retcd OUT NUMBER, + op_err_msg OUT VARCHAR2) + IS + v_num NUMBER; + BEGIN + BEGIN + SELECT 1 + INTO v_num + FROM org_site_tab + WHERE org_id =ip_org_id + AND site_no =ip_site_no; + IF (v_num =1) THEN + op_retcd :=0; + RETURN; + END IF; + EXCEPTION WHEN NO_DATA_FOUND THEN + INSERT INTO org_site_tab VALUES (ip_org_id,ip_site_no); + END; + op_retcd :=0; + EXCEPTION WHEN OTHERS THEN + op_retcd :=SQLCODE; + op_err_msg :=SQLERRM; + END assignSiteToOrg; + + --Initialization section for the package + BEGIN + max_sites_for_an_org :=4; +END orgMaster2; +/ +DECLARE + v_rc orgMaster2.rc; + org_rec org_tab%ROWTYPE; +BEGIN + DBMS_OUTPUT.PUT_LINE('Org Details for Org 1001'); + DBMS_OUTPUT.PUT_LINE('------------------'); + v_rc :=orgMaster2.getOrgDetails(1,1001); + FETCH v_rc INTO org_rec; + DBMS_OUTPUT.PUT_LINE(TO_CHAR(org_rec.hrc_code)||' '|| + TO_CHAR(org_rec.org_id)||''|| + org_rec.org_short_name||' '|| + org_rec.org_long_name); + DBMS_OUTPUT.PUT_LINE('Org Details for Hierarchy 1'); + DBMS_OUTPUT.PUT_LINE('------------------'); + v_rc :=orgMaster2.getOrgDetails(1); + LOOP + FETCH v_rc INTO org_rec; + EXIT WHEN v_rc%NOTFOUND; + DBMS_OUTPUT.PUT_LINE(TO_CHAR(org_rec.hrc_code)||' '|| + TO_CHAR(org_rec.org_id)||' '|| + org_rec.org_short_name||' '|| + org_rec.org_long_name); + END LOOP; + CLOSE v_rc; +END; +/ + +-- Serially Reusable Packages +-- Package srPkg1 +CREATE OR REPLACE PACKAGE srPkg1 +IS + PRAGMA SERIALLY_REUSABLE; + num_var NUMBER; + char_var VARCHAR2(20); + PROCEDURE initialize; + FUNCTION display_num RETURN NUMBER; + FUNCTION display_char RETURN VARCHAR2; +END srPkg1; +/ +CREATE OR REPLACE PACKAGE BODY srPkg1 +IS + PRAGMA SERIALLY_REUSABLE; + PROCEDURE initialize + IS + BEGIN + num_var :=100; + char_var :='Test String1'; + END; + FUNCTION display_num RETURN NUMBER + IS + BEGIN + RETURN (num_var); + END; + FUNCTION display_char RETURN VARCHAR2 + IS + BEGIN + RETURN (char_var); + END; +END srPkg1; +/ +DECLARE + v_num NUMBER; + v_char VARCHAR2(20); +BEGIN + srPkg1.initialize; + v_num :=srPkg1.display_num; + v_char :=srPkg1.display_char; + dbms_output.put_line(TO_CHAR(v_num)||' '||v_char); +END; +/ +CREATE OR REPLACE PACKAGE srPkg2 +IS + PRAGMA SERIALLY_REUSABLE; + CURSOR csr_sites IS + SELECT * from site_tab ORDER BY site_no; + PROCEDURE displaySites; +END srPkg2; +/ +CREATE OR REPLACE PACKAGE BODY srPkg2 +IS + PRAGMA SERIALLY_REUSABLE; + PROCEDURE displaySites + IS + site_rec site_tab%ROWTYPE; + BEGIN + OPEN csr_sites; + FETCH csr_sites INTO site_rec; + dbms_output.put_line(TO_CHAR(site_rec.site_no)||' '|| + site_rec.site_descr); + FETCH csr_sites INTO site_rec; + dbms_output.put_line(TO_CHAR(site_rec.site_no)||' '|| + site_rec.site_descr); + END displaySites; +END srPkg2; +/ +BEGIN + srPkg2.displaySites; +END; +/ diff --git a/Chapter05/authid.sql b/Chapter05/authid.sql new file mode 100644 index 0000000..cf081e6 --- /dev/null +++ b/Chapter05/authid.sql @@ -0,0 +1,51 @@ +/*File name authid.sql */ +connect plsql9i/plsql9i; + +Create or replace Procedure create_dyn_table + (i_region_name VARCHAR2, + retcd OUT NUMBER, + errmsg OUT VARCHAR2) +authid current_user +is + cur_id INTEGER; + ret_code INTEGER; + dyn_string VARCHAR2(1000); + dyn_Table_name VARCHAR2(21); +Begin + dyn_table_name :=‘ORDERS_FOR_’||i_region_name; + dyn_string :=‘CREATE TABLE ‘||dyn_table_name|| + ‘(order_id NUMBER(10)PRIMARY KEY, + order_date DATE NOT NULL, + total_qty NUMBER, + total_price NUMBER(15,2))’; + cur_id :=DBMS_SQL.OPEN_CURSOR; + DBMS_SQL.PARSE(cur_id,dyn_string,DBMS_SQL.V7); + ret_code :=DBMS_SQL.EXECUTE(cur_id); + DBMS_SQL.CLOSE_CURSOR(cur_id); + retcd :=0; +EXCEPTION WHEN OTHERS THEN + retcd :=SQLCODE; + errmsg :=‘ERR:Creating table ‘||dyn_table_name ||’-‘||SQLERRM; +End; +/ +grant execute on create_dyn_table to public; +connect region1/region1; +create synonym create_dyn_table for plsql9i.create_dyn_table; +declare + retcd NUMBER; + errmsg VARCHAR2(100); +begin + create_dyn_table(‘REGION1’,retcd,errmsg); +end; +/ +select table_name from user_tables where table_name like ‘%REGION1’; +connect region2/region2; +create synonym create_dyn_table for plsql9i.create_dyn_table; +declare + retcd NUMBER; + errmsg VARCHAR2(100); +begin + create_dyn_table(‘REGION2’,retcd,errmsg); +end; +/ +select table_name from user_tables where table_name like ‘%REGION2’; diff --git a/Chapter06/Chapter06.txt b/Chapter06/Chapter06.txt new file mode 100644 index 0000000..69b792c --- /dev/null +++ b/Chapter06/Chapter06.txt @@ -0,0 +1,195 @@ +-- Trigger ai_org_trig +CREATE OR REPLACE TRIGGER ai_org_trig +AFTER INSERT ON org_tab +FOR EACH ROW +BEGIN + UPDATE sec_hrc_audit + SET num_rows =num_rows+1 + WHERE hrc_code =:NEW.hrc_code; + IF (SQL%NOTFOUND) THEN + INSERT INTO sec_hrc_audit VALUES (:NEW.hrc_code,1); + END IF; +END; +/ + +-- Trigger ai_org_trig_statement +CREATE OR REPLACE TRIGGER ai_org_trig_statement +AFTER INSERT ON org_tab +BEGIN + FOR idx IN (SELECT hrc_code,COUNT(*)cnt + FROM org_tab + GROUP BY hrc_code) LOOP + UPDATE sec_hrc_audit + SET num_rows =idx.cnt + WHERE hrc_code =idx.hrc_code; + IF (SQL%NOTFOUND) THEN + INSERT INTO sec_hrc_audit VALUES (idx.hrc_code,idx.cnt); + END IF; + END LOOP; +END; +/ +-- Trigger ai_org_trig with a REFERENCING clause +CREATE OR REPLACE TRIGGER ai_org_trig +AFTER INSERT ON org_tab +REFERENCING NEW AS new_org +FOR EACH ROW +BEGIN + UPDATE sec_hrc_audit + SET num_rows =num_rows+1 + WHERE hrc_code =:new_org.hrc_code; + IF (SQL%NOTFOUND) THEN + INSERT INTO sec_hrc_audit VALUES (:new_org.hrc_code,1); + END IF; +END; +/ +-- Trigger ai_org_trig with REFERENCING and WHEN clauses +CREATE OR REPLACE TRIGGER ai_org_trig +AFTER INSERT ON org_tab +REFERENCING NEW AS new_org +FOR EACH ROW +WHEN (new_org.hrc_code <>1) +BEGIN + UPDATE sec_hrc_audit + SET num_rows =num_rows+1 + WHERE hrc_code =:new_org.hrc_code; + IF (SQL%NOTFOUND) THEN + INSERT INTO sec_hrc_audit VALUES (:new_org.hrc_code,1); + END IF; +END; +/ + +-- Trigger ai_org_trig with multiple triggering events +CREATE OR REPLACE TRIGGER ai_org_trig +AFTER INSERT OR DELETE ON org_tab +FOR EACH ROW +BEGIN + IF INSERTING THEN + UPDATE sec_hrc_audit + SET num_rows =num_rows+1 + WHERE hrc_code =:NEW.hrc_code; + IF (SQL%NOTFOUND) THEN + INSERT INTO sec_hrc_audit VALUES (:NEW.hrc_code,1); + END IF; + ELSIF DELETING THEN + UPDATE sec_hrc_audit + SET num_rows =num_rows-1 + WHERE hrc_code =:OLD.hrc_code; + END IF; +END; +/ + +-- INSTEAD-OF triggers +CREATE VIEW hrc_org_site +AS + SELECT h.hrc_code,hrc_descr, + o.org_id,org_short_name,org_long_name, + os.site_no,site_descr + FROM org_site_tab os,org_tab o,hrc_tab h,site_tab s + WHERE os.org_id =o.org_id + AND o.hrc_code =h.hrc_code + AND os.site_no =s.site_no; + +CREATE OR REPLACE TRIGGER hrc_org_site_trig +INSTEAD OF INSERT OR UPDATE OR DELETE on hrc_org_site +FOR EACH ROW +BEGIN + IF INSERTING THEN + INSERT INTO hrc_tab VALUES (:NEW.hrc_code,:NEW.hrc_descr); + INSERT INTO org_tab VALUES (:NEW.hrc_code,:NEW.org_id, + :NEW.org_short_name, :NEW.org_long_name); + INSERT INTO org_site_tab VALUES (:NEW.org_id,:NEW.site_no); + ELSIF UPDATING THEN + IF (:NEW.hrc_descr !=:OLD.hrc_descr) THEN + UPDATE hrc_tab + SET hrc_descr =:NEW.hrc_descr + WHERE hrc_code =:OLD.hrc_code; + END IF; + IF (:NEW.org_short_name !=:OLD.org_short_name) THEN + UPDATE org_tab + SET org_short_name =:NEW.org_short_name, + org_long_name =:NEW.org_long_name + WHERE hrc_code =:OLD.hrc_code + AND org_id =:OLD.org_id; + ELSIF (:NEW.org_long_name !=:OLD.org_long_name) THEN + UPDATE org_tab + SET org_long_name =:NEW.org_long_name + WHERE hrc_code =:OLD.hrc_code + AND org_id =:OLD.org_id; + END IF; + UPDATE org_site_tab + SET site_no =:NEW.site_no + WHERE org_id =:NEW.org_id; + IF (SQL%NOTFOUND) THEN + INSERT INTO org_site_tab VALUES (:NEW.org_id,:NEW.org_id); + END IF; + ELSIF DELETING THEN + DELETE org_site_tab WHERE org_id =:OLD.org_id; + DELETE org_level WHERE org_id =:OLD.org_id; + DELETE org_tab WHERE hrc_code =:OLD.hrc_code + AND org_id =:OLD.org_id; + END IF; +EXCEPTION WHEN OTHERS THEN + RAISE_APPLICATION_ERROR(-20010,'ERR occurred in trigger hrc_org_site_trig '|| + SQLERRM); +END; +/ + +-- Testing of the above trigger +-- INSERT operation +SELECT * FROM hrc_tab WHERE hrc_code =11; +SELECT * FROM org_tab WHERE org_id =1012; +SELECT * FROM org_site_tab WHERE org_id =1012; +INSERT INTO hrc_org_site VALUES (11,'ANALYST',1012,'Office of Analyst', +2 'Office of Analyst',4,null); +SELECT * FROM hrc_tab WHERE hrc_code =11; +SELECT * FROM org_tab WHERE org_id =1012; +SELECT * FROM org_site_tab WHERE org_id =1012; + +-- UPDATE operation +UPDATE hrc_org_site SET org_short_name ='Office of Analyst ABC Inc.', + org_long_name ='Office of Analyst ABC Inc.',site_no =4 +WHERE hrc_code =11 +AND org_id =1012; +select * from hrc_tab where hrc_code =11; +select * from org_tab where org_id =1012; +select * from org_site_tab where org_id =1012; + +-- DELETE operation +DELETE hrc_org_site WHERE org_id =1012; +select * from hrc_tab where hrc_code =11; +select * from org_tab where org_id =1012; +select * from org_site_tab where org_id =1012; +select * from org_level where org_id =1012; + +-- New Database triggers +CREATE OR REPLACE TRIGGER On_Logon +AFTER LOGON +ON SCHEMA +BEGIN + DBMS_UTILITY.ANALYZE_SCHEMA(sys.login_user,'ESTIMATE'); +END; +/ +CREATE TABLE DDL_AUDIT +(object_name VARCHAR2(30)NOT NULL, + Object_type VARCHAR2(30)NOT NULL, + WHEN_CREATED DATE NOT NULL, + WHO_CREATED VARCHAR2(30)NOT NULL, + WHEN_UPDATED DATE, + WHO_UPDATED VARCHAR2(30)); + +CREATE OR REPLACE TRIGGER after_ddl_creation +AFTER CREATE ON SCHEMA +BEGIN + INSERT INTO ddl_audit VALUES + (SYS.DICTIONARY_OBJ_NAME,SYS.DICTIONARY_OBJ_TYPE,SYSDATE,USER,NULL,NULL); +END; +/ + +CREATE OR REPLACE PROCEDURE p_dummy +IS +BEGIN + NULL; +END; +/ + +SELECT * FROM ddl_audit; diff --git a/Chapter07/Chapter07.txt b/Chapter07/Chapter07.txt new file mode 100644 index 0000000..9547a25 --- /dev/null +++ b/Chapter07/Chapter07.txt @@ -0,0 +1,233 @@ +-- An example of code using native dynamic SQL +/*Native Dynamic SQL */ +DECLARE + dyn_tab_name VARCHAR2(30):='temp'; + dyn_string VARCHAR2(150); +BEGIN + dyn_string :='create table '||dyn_tab_name||'(col1 NUMBER NOT NULL)'; + EXECUTE IMMEDIATE dyn_string; +END; +/ + +-- An example of the same using DBMS_SQL +drop table temp; +--DBMS_SQL +DECLARE + dyn_tab_name VARCHAR2(30):='temp'; + dyn_string VARCHAR2(150); + c INTEGER; + ret_code INTEGER; +BEGIN + dyn_string :='create table '||dyn_tab_name|| + '(col1 NUMBER NOT NULL)'; + c :=DBMS_SQL.OPEN_CURSOR; + DBMS_SQL.PARSE(c,dyn_string,DBMS_SQL.V7); + ret_code :=DBMS_SQL.EXECUTE(c); + DBMS_SQL.CLOSE_CURSOR(c); +END; +/ +-- Dynamic DDL +-- Procedure create_dyn_table +Create or replace Procedure create_dyn_table + (i_region_name VARCHAR2, + retcd OUT NUMBER, + errmsg OUT VARCHAR2) +authid current_user +Is + Dyn_string VARCHAR2(1000); + Dyn_Table_name VARCHAR2(30); +Begin + Dyn_table_name :='ORDERS_FOR_'||replace(trim(i_region_name),'','_'); + Dyn_string :='CREATE TABLE '||dyn_table_name|| + '(order_id NUMBER(10)PRIMARY KEY, + order_date DATE NOT NULL, + total_qty NUMBER, + total_price NUMBER(15,2), + supp_id NUMBER(6)REFERENCES supplier_tab(supp_id))'; + EXECUTE IMMEDIATE dyn_string ; + retcd :=0; +EXCEPTION WHEN OTHERS THEN + retcd :=SQLCODE; + errmsg :='ERR:Creating table '||dyn_table_name ||'-'||SQLERRM; +End; +/ + +-- Procedure create_dyn_table2 +Create or replace Procedure create_dyn_table2 + (i_region_name VARCHAR2, + retcd OUT NUMBER, + errmsg OUT VARCHAR2) +authid current_user +Is + Dyn_string VARCHAR2(1000); + Dyn_Table_name VARCHAR2(30); +Begin + Dyn_table_name :='ORDER_ITEMS_FOR_'||replace(trim(i_region_name),'','_'); + Dyn_string :='CREATE TABLE '||dyn_table_name|| + '(order_id NUMBER(10)NOT NULL, + item_id VARCHAR2(10)NOT NULL, + unit_price NUMBER(11,2)NOT NULL, + quantity NUMBER)'; + EXECUTE IMMEDIATE dyn_string ; + dyn_string := + 'alter table ORDER_ITEMS_FOR_'||i_region_name||'add constraint '|| + 'fk_oifor '||i_region_name||'foreign key (order_id)references '|| + 'orders_for_'||i_region_name||'(order_id)'; + EXECUTE IMMEDIATE dyn_string ; + retcd :=0; +EXCEPTION WHEN OTHERS THEN + retcd :=SQLCODE; + errmsg :='ERR:Creating/Altering table '||dyn_table_name ||'-'||SQLERRM; +End; +/ + +-- Procedure create_dyn_for_all +Create or replace Procedure create_dyn_for_all + (retcd OUT NUMBER,errmsg OUT VARCHAR2) +Authid current_user +Is + CURSOR csr_region IS + SELECT region_name + FROM region_tab; +BEGIN + FOR idx IN csr_region LOOP + create_dyn_table(idx.region_name,retcd,errmsg); + IF retcd <>0 THEN + EXIT; + END IF; + create_dyn_table2(idx.region_name,retcd,errmsg); + IF retcd <>0 THEN + EXIT; + END IF; + END LOOP; +EXCEPTION WHEN OTHERS THEN + Retcd :=SQLCODE; + Errmsg :=SQLERRM; +END; +/ + +-- Executing create_dyn_for_all +DECLARE + Retcd NUMBER; + Errmsg VARCHAR2(32767); +BEGIN + Create_dyn_for_all(retcd,errmsg); + IF (retcd <>0) THEN + RAISE_APPLICATION_ERROR(-20102,errmsg); + END IF; +EXCEPTION WHEN OTHERS THEN + RAISE_APPLICATION_ERROR(-20103,SQLERRM); +END; +/ +select object_name,object_type from user_objects +where object_name like 'ORDER%FOR%'; + +-- Dynamic SELECTS +-- Single-row SELECTS +-- Procedure update_dyn_table +Create or replace Procedure update_dyn_table + (i_region_name VARCHAR2, + i_order_id NUMBER, + retcd OUT NUMBER, + errmsg OUT VARCHAR2) +authid current_user +Is + Dyn_upd_string1 VARCHAR2(1000); + Dyn_query_string VARCHAR2(1000); + Dyn_Table_name1 VARCHAR2(30); + Dyn_Table_name2 VARCHAR2(30); + V_total_price NUMBER; + V_total_quantity NUMBER; +Begin + Dyn_table_name1 :='ORDER_ITEMS_FOR_'||replace(trim(i_region_name),'','_'); + Dyn_table_name2 :='ORDERS_FOR_'||i_region_name; + Dyn_query_string :='SELECT SUM(quantity),SUM(unit_price*quantity)FROM '|| + dyn_table_name1|| + 'WHERE order_id =:input_order_id'; + Dyn_upd_string1 :=' UPDATE '||dyn_table_name2|| + 'SET total_qty =:total_qty,total_price =:total_price WHERE '|| + 'order_id =:input_order_id'; + EXECUTE IMMEDIATE dyn_query_string INTO v_total_price,v_total_quantity + USING i_order_id; + EXECUTE IMMEDIATE dyn_upd_string1 + USING v_total_quantity,v_total_price,i_order_id; + retcd :=0; +EXCEPTION WHEN OTHERS THEN + retcd :=SQLCODE; + errmsg :='ERR: '||SQLERRM; +End; +/ + +-- Multi-row SELECTS +-- Procedure update_dyn_for_all_orders +Create or replace Procedure update_dyn_for_all_orders + (i_region_name VARCHAR2, + retcd OUT NUMBER, + errmsg OUT VARCHAR2) +Is + Dyn_table_name VARCHAR2(100); + Dyn_query_string VARCHAR2(1000); + Type csr_dyn IS REF CURSOR; + csr_dyn1 csr_dyn; + v_order_id NUMBER; +BEGIN + Dyn_table_name :='ORDER_ITEMS_FOR_'||replace(trim(i_region_name),'','_'); + Dyn_query_string :='SELECT order_id FROM '||dyn_table_name; + OPEN csr_dyn1 FOR dyn_query_string; + LOOP + FETCH csr_dyn1 INTO v_order_id; + EXIT WHEN csr_dyn1%NOTFOUND; + update_dyn_table(i_region_name,v_order_id,retcd,errmsg); + IF retcd <>0 THEN + EXIT; + END IF; + END LOOP; +EXCEPTION WHEN OTHERS THEN + Retcd :=SQLCODE; + Errmsg :=SQLERRM; +END; +/ + +-- Procedure update_dyn_global +Create or replace Procedure update_dyn_global + (retcd OUT NUMBER, + errmsg OUT VARCHAR2) +Is + CURSOR csr_region IS + SELECT region_name FROM region_tab; +BEGIN + FOR idx IN csr_region LOOP + update_dyn_for_all_orders(idx.region_name,retcd,errmsg); + IF retcd <>0 THEN + EXIT; + END IF; + END LOOP; +EXCEPTION WHEN OTHERS THEN + Retcd :=SQLCODE; + Errmsg :=SQLERRM; +END; +/ + +-- Dynamic PL/SQL +-- Procedure update_dyn_global2 +Create or replace Procedure update_dyn_global2 + (retcd OUT NUMBER, + errmsg OUT VARCHAR2) +Is + CURSOR csr_region IS + SELECT region_name FROM region_tab; + Dyn_proc_name VARCHAR2(100); + Dyn_plsql_string VARCHAR2(1000); +BEGIN + FOR idx IN csr_region LOOP + EXECUTE IMMEDIATE 'BEGIN update_dyn_'||replace(trim(idx.region_name),'','_')||'(:1,:2);END;' + USING OUT retcd,OUT errmsg; + IF retcd <>0 THEN + EXIT; + END IF; + END LOOP; +EXCEPTION WHEN OTHERS THEN + Retcd :=SQLCODE; + Errmsg :=SQLERRM; +END; +/ diff --git a/Chapter08/Chapter08.txt b/Chapter08/Chapter08.txt new file mode 100644 index 0000000..7d4e0a2 --- /dev/null +++ b/Chapter08/Chapter08.txt @@ -0,0 +1,75 @@ +-- Procedure log_error +CREATE OR REPLACE PROCEDURE log_error + (p_order_id NUMBER, + p_error_code NUMBER, + p_error_text VARCHAR2) +IS + PRAGMA AUTONOMOUS_TRANSACTION; +BEGIN + INSERT INTO error_log VALUES + (p_order_id,p_error_code,p_error_text,USER,SYSDATE); + COMMIT; +END; +/ + +-- Procedure create_order +CREATE OR REPLACE PROCEDURE create_order(p_order_id NUMBER) +IS +BEGIN + INSERT INTO order_tab VALUES(p_order_id,SYSDATE,NULL,NULL,1001); + COMMIT; +EXCEPTION WHEN OTHERS THEN + log_error(p_order_id,SQLCODE,SQLERRM); + ROLLBACK; +END; +/ + +DECLARE + PRAGMA AUTONOMOUS_TRANSACTION; + FUNCTION dummy_log_error RETURN NUMBER; + v_num NUMBER(1):=0; + retcd NUMBER :=dummy_log_error; + FUNCTION dummy_log_error RETURN NUMBER + IS + BEGIN + INSERT INTO error_log VALUES (-99,-99,’Dummy Error!’,USER,SYSDATE); + RETURN (-99); + END; +BEGIN + INSERT INTO error_log VALUES (v_num,v_num,‘No Error!’,USER,SYSDATE); + COMMIT; +END; +/ + +-- Autonomous triggers +create or replace trigger bi_order_tab +before insert on order_tab for each row +declare + pragma autonomous_transaction; +begin + insert into order_tran_coming_in values (:NEW.order_id, + :NEW.order_date, + SYSDATE, + 'N'); + commit; +end; +/ +create or replace trigger ai_order_tab +after insert on order_tab for each row +declare + pragma autonomous_transaction; +begin + update order_tran_coming_in + set success_flag = 'Y' + where order_id = :NEW.order_id; + commit; +end; +/ +BEGIN + INSERT INTO order_tab VALUES(102,SYSDATE,NULL,NULL,1001); + INSERT INTO order_tab VALUES(103,SYSDATE,NULL,NULL,1001); + INSERT INTO order_tab VALUES(103,SYSDATE,NULL,NULL,1001); +EXCEPTION WHEN DUP_VAL_ON_INDEX THEN + ROLLBACK; +END; +/ diff --git a/Chapter09/Chapter09.txt b/Chapter09/Chapter09.txt new file mode 100644 index 0000000..fe2ab99 --- /dev/null +++ b/Chapter09/Chapter09.txt @@ -0,0 +1,320 @@ +-- Bulk DML +DECLARE + Type region_rec IS Record + (region_id NUMBER(4), + region_name VARCHAR2(10)); + Type region_tbl IS TABLE of region_rec + INDEX BY BINARY_INTEGER; + Region_recs region_tbl; + Ret_code NUMBER; + Ret_errmsg VARCHAR2(1000); + Procedure load_regions + (region_recs IN region_tbl, + retcd OUT NUMBER, + errmsg OUT VARCHAR2) + Is + BEGIN + --Clean up region_tab table initially + DELETE FROM region_tab; + FOR i in region_recs.FIRST..region_recs.LAST LOOP + INSERT INTO region_tab + values (region_recs(i).region_id,region_recs(i).region_name); + END LOOP; + COMMIT; + EXCEPTION WHEN OTHERS THEN + Retcd :=SQLCODE; + Errmsg :=SQLERRM; + END; +BEGIN + FOR i IN 1..5 LOOP + Region_recs(i).region_id :=i; + Region_recs(i).region_name :='REGION'||i; + END LOOP; + Load_regions(region_recs,ret_code,ret_errmsg); +EXCEPTION WHEN OTHERS THEN + RAISE_APPLICATION_ERROR(-20111,SQLERRM); +END; +/ + +-- The same INSERT operation using Bulk Bind +DECLARE + Type region_id_tbl IS TABLE of NUMBER INDEX BY BINARY_INTEGER; + Type region_name_tbl IS TABLE of VARCHAR2(20)INDEX BY BINARY_INTEGER; + region_ids region_id_tbl; + region_names region_name_tbl; + ret_code NUMBER; + ret_errmsg VARCHAR2(1000); + Procedure load_regions_bulk_bind + (region_ids IN region_id_tbl, + region_names IN region_name_tbl, + retcd OUT NUMBER, + errmsg OUT VARCHAR2) + Is + BEGIN + --clean up the region_tab table initially. + DELETE FROM region_tab; + FORALL i IN region_ids.FIRST..region_ids.LAST + INSERT INTO region_tab values (region_ids(i),region_names(i)); + Retcd :=0; + EXCEPTION WHEN OTHERS THEN + COMMIT; + Retcd :=SQLCODE; + Errmsg :=SQLERRM; + END; +BEGIN + FOR i IN 1..5 LOOP + Region_ids(i):=i; + Region_names(i):='REGION'||i; + END LOOP; + Load_regions_bulk_bind(region_ids,region_names,ret_code,ret_errmsg); +EXCEPTION WHEN OTHERS THEN + RAISE_APPLICATION_ERROR(-20112,SQLERRM); +END; +/ + +-- An example showing performance benefit of FORALL +DECLARE + Type region_id_tbl IS TABLE of NUMBER INDEX BY BINARY_INTEGER; + Type region_name_tbl IS TABLE of VARCHAR2(20)INDEX BY BINARY_INTEGER; + region_ids region_id_tbl; + region_names region_name_tbl; + Ret_code NUMBER; + Ret_errmsg VARCHAR2(1000); + time1 number; + time2 number; + time3 number; + Procedure load_regions + (region_ids IN region_id_tbl, + region_names IN region_name_tbl, + retcd OUT NUMBER, + errmsg OUT VARCHAR2) + Is + BEGIN + FOR i in 1..10000 LOOP + INSERT INTO region_tab_temp + values (region_ids(i),region_names(i)); + END LOOP; + COMMIT; + EXCEPTION WHEN OTHERS THEN + Retcd :=SQLCODE; + Errmsg :=SQLERRM; + END; + Procedure load_regions_bulk_bind + (region_ids IN region_id_tbl, + region_names IN region_name_tbl, + retcd OUT NUMBER, + errmsg OUT VARCHAR2) + Is + BEGIN + FORALL i IN 1..10000 + INSERT INTO region_tab_temp values (region_ids(i),region_names(i)); + Retcd :=0; + EXCEPTION WHEN OTHERS THEN + COMMIT; + Retcd :=SQLCODE; + Errmsg :=SQLERRM; + END; +BEGIN + DELETE region_tab_temp; + FOR i IN 1..10000 LOOP + Region_ids(i):=i; + Region_names(i):='REGION'||i; + END LOOP; + time1 :=dbms_utility.get_time; + Load_regions(region_ids,region_names,ret_code,ret_errmsg); + time2 :=dbms_utility.get_time; + Load_regions_bulk_bind(region_ids,region_names,ret_code,ret_errmsg); + time3 :=dbms_utility.get_time; + dbms_output.put_line('Time without bulk bind is '||to_char(time2-time1)|| + ' secs'); + dbms_output.put_line('Time with bulk bind is '||to_char(time3-time2)||'secs'); +EXCEPTION WHEN OTHERS THEN + RAISE_APPLICATION_ERROR(-20111,SQLERRM); +END; +/ + +-- A complete example of FORALL with SAVE EXCEPTIONS clause +DECLARE + Type region_id_tbl IS TABLE of NUMBER INDEX BY BINARY_INTEGER; + Type region_name_tbl IS TABLE of VARCHAR2(20)INDEX BY BINARY_INTEGER; + region_ids region_id_tbl; + region_names region_name_tbl; + ret_code NUMBER; + ret_errmsg VARCHAR2(1000); + Procedure load_regions_bulk_bind + (region_ids IN region_id_tbl, + region_names IN region_name_tbl, + retcd OUT NUMBER, + errmsg OUT VARCHAR2) + Is + bulk_bind_excep EXCEPTION; + PRAGMA EXCEPTION_INIT(bulk_bind_excep,-24381); + BEGIN + --clean up the region_tab table initially. + DELETE FROM region_tab; + FORALL i IN region_ids.FIRST..region_ids.LAST SAVE EXCEPTIONS + INSERT INTO region_tab values (region_ids(i),region_names(i)); + Retcd :=0; + EXCEPTION WHEN bulk_bind_excep THEN + FOR i in 1..SQL%BULK_EXCEPTIONS.COUNT LOOP + DBMS_OUTPUT.PUT_LINE('Iteration '|| + SQL%BULK_EXCEPTIONS(i).error_index||'failed with error '|| + SQLERRM(-SQL%BULK_EXCEPTIONS(i).error_code)); + END LOOP; + COMMIT; + Retcd :=SQLCODE; + Errmsg :='Bulk DML error(s)'; + WHEN OTHERS THEN + Retcd :=SQLCODE; + Errmsg :=SQLERRM; + END; +BEGIN + FOR i IN 1..5 LOOP + Region_ids(i):=i; + Region_names(i):='REGION'||i; + END LOOP; + Region_names(3):='REGION WITH NAME3'; + Load_regions_bulk_bind(region_ids,region_names,ret_code,ret_errmsg); +EXCEPTION WHEN OTHERS THEN + RAISE_APPLICATION_ERROR(-20112,SQLERRM); +END; +/ + +-- The above example rewritten using SQL%BULK_ROWCOUNT and SQL%ROWCOUNT +DECLARE + Type region_id_tbl IS TABLE of NUMBER INDEX BY BINARY_INTEGER; + Type region_name_tbl IS TABLE of VARCHAR2(20)INDEX BY BINARY_INTEGER; + region_ids region_id_tbl; + region_names region_name_tbl; + ret_code NUMBER; + ret_errmsg VARCHAR2(1000); + Procedure load_regions_bulk_bind + (region_ids IN region_id_tbl, + region_names IN region_name_tbl, + retcd OUT NUMBER, + errmsg OUT VARCHAR2) + Is + BEGIN + FORALL i IN region_ids.FIRST..region_ids.LAST + INSERT INTO region_tab values (region_ids(i),region_names(i)); + FOR i in 1..region_ids.COUNT LOOP + IF SQL%BULK_ROWCOUNT(i)>0 THEN + -- + dbms_output.put_line(to_char(sql%bulk_rowcount(i))); + NULL; + END IF; + END LOOP; + IF SQL%ROWCOUNT =0 THEN + DBMS_OUTPUT.PUT_LINE('No Rows inserted overall'); + ELSE + COMMIT; + END IF; + EXCEPTION WHEN OTHERS THEN + COMMIT; + Retcd :=SQLCODE; + Errmsg :=SQLERRM; + END; +BEGIN + region_ids(1):=6; + region_names(1):='region6'; + load_regions_bulk_bind(region_ids,region_names,ret_code,ret_errmsg); +END; +/ + +-- Bulk Query +-- Procedure update_dyn_global_bulk +Create or Replace Procedure update_dyn_global_bulk + (retcd OUT NUMBER, + errmsg OUT VARCHAR2) +authid current_user +Is + TYPE NameTbl IS TABLE OF region_tab.region_name%TYPE; + Region_names NameTbl; +BEGIN + SELECT region_name BULK COLLECT INTO region_names + FROM region_tab ORDER BY region_name; + FOR i IN region_names.FIRST..region_names.LAST LOOP + update_dyn_for_all_orders(region_names(i),retcd,errmsg); + IF retcd <>0 THEN + EXIT; + END IF; + END LOOP; +EXCEPTION WHEN OTHERS THEN + Retcd :=SQLCODE; + Errmsg :=SQLERRM; +END; +/ + +-- Using BULK COLLECT in Fetching +-- Procedure update_dyn_global_bulk2 +Create or Replace Procedure update_dyn_global_bulk2 + (retcd OUT NUMBER, + errmsg OUT VARCHAR2) +authid current_user +Is + TYPE NameTbl IS TABLE OF region_tab.region_name%TYPE; + Region_names NameTbl; + CURSOR csr_region_names IS + SELECT region_name FROM region_tab ORDER BY region_name; +BEGIN + OPEN csr_region_names; + FETCH csr_region_names BULK COLLECT INTO region_names; + FOR i IN region_names.FIRST..region_names.LAST LOOP + update_dyn_for_all_orders(region_names(i),retcd,errmsg); + IF retcd <>0 THEN + EXIT; + END IF; + END LOOP; + CLOSE csr_region_names; +EXCEPTION WHEN OTHERS THEN + Retcd :=SQLCODE; + Errmsg :=SQLERRM; +END; +/ + +-- Using BULK COLLECT in RETURNING INTO +DECLARE + Type region_id_tbl IS TABLE of NUMBER INDEX BY BINARY_INTEGER; + Type region_name_tbl IS TABLE of VARCHAR2(20)INDEX BY BINARY_INTEGER; + region_ids region_id_tbl; + region_names region_name_tbl; + out_region_names region_name_tbl; + ret_code NUMBER; + ret_errmsg VARCHAR2(1000); + Procedure load_regions_bulk_bind + (region_ids IN region_id_tbl, + region_names IN region_name_tbl, + retcd OUT NUMBER, + errmsg OUT VARCHAR2) + Is + BEGIN + --clean up the sec_region_tab table initially. + DELETE FROM sec_region_tab; + FORALL i IN region_ids.FIRST..region_ids.LAST + INSERT INTO sec_region_tab values (region_ids(i),region_names(i)); + Retcd :=0; + EXCEPTION WHEN OTHERS THEN + Retcd :=SQLCODE; + Errmsg :=SQLERRM; + END; +BEGIN + FOR i IN 1..5 LOOP + Region_ids(i):=i; + Region_names(i):='REGION'||i; + END LOOP; + Load_regions_bulk_bind(region_ids,region_names,ret_code,ret_errmsg); + IF (ret_code <>0) THEN + RAISE_APPLICATION_ERROR(-20111,SQLERRM); + END IF; + FORALL i IN 1..5 + UPDATE sec_region_tab + SET region_name ='NEW '||region_name + WHERE region_id =region_ids(i) + RETURNING region_name BULK COLLECT INTO out_region_names; + FOR i in out_region_names.FIRST..out_region_names.LAST LOOP + DBMS_OUTPUT.PUT_LINE(out_region_names(i)); + END LOOP; +EXCEPTION WHEN OTHERS THEN + RAISE_APPLICATION_ERROR(-20112,SQLERRM); +END; +/ diff --git a/Chapter10/Chapter10.txt b/Chapter10/Chapter10.txt new file mode 100644 index 0000000..9a761a9 --- /dev/null +++ b/Chapter10/Chapter10.txt @@ -0,0 +1,800 @@ +--Defining an object type +CREATE OR REPLACE TYPE address AS OBJECT + (line1 VARCHAR2(20), + line2 VARCHAR2(20), + city VARCHAR2(20), + state_code VARCHAR2(2), + zip VARCHAR2(13)); + +-- Object instances and initialization +DECLARE + off_add address :=address('19 J','Reading Rd','Edison','NJ','08817'); +BEGIN + DBMS_OUTPUT.PUT_LINE(off_add.line1||' '||off_add.line2); + DBMS_OUTPUT.PUT_LINE(off_add.city||', '||off_add.state_code||' '||off_add.zip); +END; +/ + +-- NULL objects and NULL attributes +DECLARE + v_address address; +BEGIN + --v_address has a value + v_address :=address('27 Mine Brook Rd','#99-A','Edison','NJ','08820'); + v_address :=NULL; -- v_address becomes atomically null. + IF (v_address IS NULL) THEN -- condition returns TRUE + DBMS_OUTPUT.PUT_LINE('v_address is atomically null'); + END IF; +END; +/ +DECLARE + v_address address; +BEGIN + IF (v_address IS NULL) THEN -- Returns TRUE + DBMS_OUTPUT.PUT_LINE('v_address is atomically null '); + END IF; + IF (v_address.line1 IS NULL) THEN -- Returns TRUE + DBMS_OUTPUT.PUT_LINE('line1 is null '); + END IF; + --v_address has a value + v_address :=address('27 Mine Brook Rd','#99-A','Edison','NJ','08820'); + v_address :=NULL;--v_address becomes atomically null. + IF (v_address IS NULL) THEN -- condition returns TRUE + DBMS_OUTPUT.PUT_LINE('v_address is atomically null '); + END IF; + v_address.line1 :='1,Ethel Road'; --raises ACCESS_INTO_NULL +EXCEPTION WHEN ACCESS_INTO_NULL THEN + DBMS_OUTPUT.PUT_LINE('Access Into Null'); +END; +/ + +-- Methods +CREATE OR REPLACE TYPE address AS OBJECT + (line1 VARCHAR2(20), + line2 VARCHAR2(20), + city VARCHAR2(20), + state_code VARCHAR2(2), + zip VARCHAR2(13), + MEMBER FUNCTION get_address RETURN VARCHAR2, + MEMBER PROCEDURE set_address + (ip_line1 VARCHAR2, + ip_line2 VARCHAR2, + ip_city VARCHAR2, + ip_state_code VARCHAR2, + ip_zip VARCHAR2) +); +/ +CREATE OR REPLACE TYPE BODY address AS + MEMBER FUNCTION get_address RETURN VARCHAR2 + IS + BEGIN + RETURN (SELF.line1||' '||SELF.line2||' '||SELF.city||', '|| + SELF.state_code||' '||SELF.zip); + END get_address; + MEMBER PROCEDURE set_address (ip_line1 VARCHAR2, + ip_line2 VARCHAR2, + ip_city VARCHAR2, + ip_state_code VARCHAR2, + ip_zip VARCHAR2) + IS + BEGIN + line1 :=ip_line1; + line2 :=ip_line2; + city :=ip_city; + state_code :=ip_state_code; + zip :=ip_zip; + END set_address; +END; +/ + +-- Invoking a method +DECLARE + off_add address; + home_add address; +BEGIN + off_add :=address('10 Wood Avenue South','Suite 111','Edison','NJ','08830'); + home_add :=address(null,null,null,null,null); + DBMS_OUTPUT.PUT_LINE(off_add.get_address()); + home_add.set_address('161 Franklin Rd','#180','Edison','NJ','08820'); + DBMS_OUTPUT.PUT_LINE(home_add.get_address()); +END; +/ + +-- Static Method +CREATE OR REPLACE TYPE zip_code AS OBJECT +(five_digit_code NUMBER, + four_digit_code NUMBER, + STATIC FUNCTION getZip(zip_in zip_code) RETURN zip_Code +); +/ +CREATE OR REPLACE TYPE BODY zip_code AS + STATIC FUNCTION getZip(zip_in zip_code) RETURN zip_code + IS + v_zip zip_code; + BEGIN + v_zip :=zip_code(null,null); + v_zip.five_digit_code :=zip_in.five_digit_code; + v_zip.four_digit_code :=zip_in.four_digit_code; + RETURN (v_zip); + END; +END; +/ + +-- User-defined constructors +CREATE OR REPLACE TYPE address2 AS OBJECT + (line1 VARCHAR2(20), + line2 VARCHAR2(20), + city VARCHAR2(20), + state_code VARCHAR2(2), + zip VARCHAR2(13), + country VARCHAR(3), + CONSTRUCTOR FUNCTION address2(ip_line1 VARCHAR2, + ip_line2 VARCHAR2, + ip_city VARCHAR2, + ip_state_code VARCHAR2, + ip_zip VARCHAR2) + RETURN SELF AS RESULT); +/ +CREATE OR REPLACE TYPE BODY address2 IS + CONSTRUCTOR FUNCTION address2(ip_line1 VARCHAR2, + ip_line2 VARCHAR2, + ip_city VARCHAR2, + ip_state_code VARCHAR2, + ip_zip VARCHAR2) + RETURN SELF AS RESULT + IS + BEGIN + SELF.line1 :=ip_line1; + SELF.line2 :=ip_line2; + SELF.city :=ip_city; + SELF.state_code :=ip_state_code; + SELF.zip :=ip_zip; + SELF.country :='USA'; + RETURN; + END; +END; +/ +declare + v_address address2; +begin + v_address :=address2('Suite 288','San Street','San Jose','CA','11011'); + dbms_output.put_line(v_address.line1); + dbms_output.put_line(v_address.line2); + dbms_output.put_line(v_address.city||', '||v_address.state_code|| + ' '||v_address.zip); + dbms_output.put_line(v_address.country); +end; +/ + +-- Object tables +CREATE TABLE address_master OF address; +INSERT INTO address_master +VALUES (address('19 J','Reading Rd','Edison','NJ','08817')); +select *from address_master; + +-- Object Relational tables +CREATE TABLE employee +(empid number(10)PRIMARY KEY, + lastname varchar2(30)NOT NULL, + firstname varchar2(30)NOT NULL, + middle_initial varchar2(2), + emp_address address); + +INSERT INTO employee VALUES +(101,'LAKSHMAN','BULUSU',null, +address('50 UNION SQUARE','SUITE 101','NEW YORK','NY','10020')); + +-- Object References +DROP TABLE employee; +CREATE TABLE employee +(empid number(10)PRIMARY KEY, + lastname varchar2(30)NOT NULL, + firstname varchar2(30)NOT NULL, + middle_initial varchar2(2), + emp_address REF address); + + +-- DML on Objects +-- SELECT +DECLARE + v_address address; +BEGIN + SELECT emp_address + INTO v_address + FROM employee + WHERE lastname ='LAKSHMAN'; + DBMS_OUTPUT.PUT_LINE('The address of the employee LAKSHMAN is'); + DBMS_OUTPUT.PUT_LINE(v_address.line1||' '||v_address.line2); + DBMS_OUTPUT.PUT_LINE(v_address.city||', '||v_address.state_code||' '|| + v_address.zip); +END; +/ +SELECT * FROM employee e WHERE e.emp_address.city ='Edison'; +SELECT e.emp_address.get_address() +FROM employee e; + +-- VALUE operator +DECLARE + v_address address; +BEGIN + SELECT VALUE(a) + INTO v_address + FROM address_master a + WHERE a.city ='EDISON'; +END; +/ + +-- REF operator +DECLARE + v_address_ref REF address; +BEGIN + SELECT REF(a) + INTO v_address_ref + FROM address_master a + WHERE a.city ='EDISON'; +END; +/ +DECLARE + v_address_ref REF address; + v_zip VARCHAR2(30); +BEGIN + SELECT REF(a), a.zip + INTO v_address_ref,v_zip + FROM address_master a + WHERE a.city ='EDISON'; +END; +/ + +-- DEREF operator +DECLARE + v_address_ref REF address; + v_address address; +BEGIN + SELECT DEREF(v_address_ref) + INTO v_address + FROM DUAL; +END; +/ +DECLARE + v_address address; +BEGIN + SELECT DEREF(e.emp_address) + INTO v_address + FROM employee e + WHERE e.lastname ='LAKSHMAN'; + DBMS_OUTPUT.PUT_LINE('The address of the employee LAKSHMAN is'); + DBMS_OUTPUT.PUT_LINE(v_address.line1||' '||v_address.line2); + DBMS_OUTPUT.PUT_LINE(v_address.city||', '||v_address.state_code||' '|| + v_address.zip); +END; +/ +UPDATE employee SET emp_address =NULL WHERE emp_address IS DANGLING; + +-- INSERT +DECLARE + v_address_ref REF address; +BEGIN + INSERT INTO address_master a + VALUES (address('57-1 Fairlawn Street','#101C','Flushing','NY','10110')) + RETURNING REF(a)INTO v_address_ref; +END; +/ + +-- UPDATE +UPDATE address_master a SET a.zip ='08820-3307 'WHERE a.zip ='08820'; + +DECLARE + v_address address; + v_address_ref REF address; +BEGIN + INSERT INTO address_master a + VALUES (address('10 Metroplex Complex','Suite 202','Boston','MA','01701')) + RETURNING REF(a)INTO v_address_ref; + UPDATE employee + SET emp_address =v_address_ref + WHERE empid =101; +END; +/ +-- DELETE +BEGIN + DELETE FROM address_master a + WHERE (a.line1 IS NULL)AND (a.line2 IS NULL); +END; +/ + +-- Using %TYPE and %ROWTYPE on Row Objects +DECLARE + v_line1 address_master.line1%TYPE; +BEGIN + SELECT line1 + INTO v_line1 + FROM address_master + WHERE city ='EDISON'; + DBMS_OUTPUT.PUT_LINE(v_line1); +END; +/ +declare + cursor c1 is select VALUE(a)from address_master a; + v_add address_master%ROWTYPE; +begin + open c1; + loop + fetch c1 into v_add; + exit when c1%notfound; + dbms_output.put_line(v_add.line1); + end loop; + close c1; +end; +/ +declare + cursor c1 is select * from address_master; + v_add address_master%ROWTYPE; +begin + for i in c1 loop + dbms_output.put_line(i.line1); + end loop; +end; +/ + +--Objects and Native Dynamic SQL +--Dynamic DDL involving objects +Create or replace Procedure create_dyn_obj_table + (i_region_name VARCHAR2, + retcd OUT NUMBER, + errmsg OUT VARCHAR2) +authid current_user +Is + Dyn_string VARCHAR2(1000); + Dyn_Table_name VARCHAR2(30); +Begin + Dyn_table_name :='ADDRESS_MASTER_FOR_'||replace(trim(i_region_name),' ','_'); + Dyn_string :='CREATE TABLE '||dyn_table_name||'OF address '; + EXECUTE IMMEDIATE dyn_string ; + retcd :=0; +EXCEPTION WHEN OTHERS THEN + retcd :=SQLCODE; + errmsg :='ERR:Creating table '||dyn_table_name ||'-'||SQLERRM; +End; +/ +Create or replace Procedure create_dyn_obj_for_all + (retcd OUT NUMBER,errmsg OUT VARCHAR2) +Authid current_user +Is + CURSOR csr_region IS + SELECT region_name + FROM region_tab; +BEGIN + FOR idx IN csr_region LOOP + create_dyn_obj_table(idx.region_name,retcd,errmsg); + IF retcd <>0 THEN + EXIT; + END IF; + END LOOP; +EXCEPTION WHEN OTHERS THEN + Retcd :=SQLCODE; + Errmsg :=SQLERRM; +END; +/ +DECLARE + Retcd NUMBER; + Errmsg VARCHAR2(32767); +BEGIN + Create_dyn_obj_for_all(retcd,errmsg); + IF (retcd <>0) THEN + RAISE_APPLICATION_ERROR(-20190,errmsg); + END IF; +EXCEPTION WHEN OTHERS THEN + RAISE_APPLICATION_ERROR(-20191,SQLERRM); +END; +/ +column object_name format a30; +select object_name,object_type from user_objects +where object_name like 'ADDRESS%FOR%'; + +-- Dynamic INSERT involving objects +Create or replace Procedure insert_dyn_obj_table + (i_region_name VARCHAR2,i_line1 VARCHAR2, + i_line2 VARCHAR2,i_city VARCHAR2, + i_state_code VARCHAR2,i_zip VARCHAR2, + retcd OUT NUMBER,errmsg OUT VARCHAR2) +authid current_user +Is + Dyn_ins_string VARCHAR2(1000); + Dyn_Table_name VARCHAR2(30); +Begin + Dyn_table_name :='ADDRESS_MASTER_FOR_'||replace(trim(i_region_name),' ','_'); + Dyn_ins_string := + 'INSERT INTO '||dyn_table_name||' VALUES (address(:1,:2,:3,:4,:5))'; + EXECUTE IMMEDIATE dyn_ins_string + USING i_line1,i_line2,i_city,i_state_code,i_zip; + retcd :=0; +EXCEPTION WHEN OTHERS THEN + retcd :=SQLCODE; + errmsg :='ERR: '||SQLERRM; +End; +/ +DECLARE + Retcd NUMBER; + Errmsg VARCHAR2(32767); +BEGIN + insert_dyn_obj_table('REGION1','20 James St.',null,'Edison','NJ','08825', + retcd,errmsg); + IF (retcd <>0) THEN + RAISE_APPLICATION_ERROR(-20193,errmsg); + END IF; + insert_dyn_obj_table('REGION1','11 Woodstock Ave.','#2D','Blue Bells','VA', + '17864',retcd,errmsg); + IF (retcd <>0) THEN + RAISE_APPLICATION_ERROR(-20194,errmsg); + END IF; + insert_dyn_obj_table('REGION2','15 Highs Blvd','Suite 201','Sunnyvale','CA', + '12456',retcd,errmsg); + IF (retcd <>0) THEN + RAISE_APPLICATION_ERROR(-20195,errmsg); + END IF; + insert_dyn_obj_table('REGION4','1 Woodfield Ct.',null,'Dallas','TX', + '94567',retcd,errmsg); + IF (retcd <>0) THEN + RAISE_APPLICATION_ERROR(-20196,errmsg); + END IF; + COMMIT; +EXCEPTION WHEN OTHERS THEN + RAISE_APPLICATION_ERROR(-20197,SQLERRM); +END; +/ + +-- Dynamic multi-row querying involving objects +Create or replace Procedure display_dyn_obj_for_region + (i_region_name VARCHAR2, + retcd OUT NUMBER, + errmsg OUT VARCHAR2) +Is + Dyn_table_name VARCHAR2(100); + Dyn_query_string VARCHAR2(1000); + Type csr_dyn IS REF CURSOR; + csr_dyn1 csr_dyn; + v_address address; +BEGIN + Dyn_table_name :='ADDRESS_MASTER_FOR_'||replace(trim(i_region_name),' ','_'); + Dyn_query_string :='SELECT VALUE(a) FROM '||dyn_table_name||'a '; + DBMS_OUTPUT.PUT_LINE('The addresses for region: '||i_region_name||' are :-'); + DBMS_OUTPUT.NEW_LINE; + OPEN csr_dyn1 FOR dyn_query_string; + LOOP + FETCH csr_dyn1 INTO v_address; + EXIT WHEN csr_dyn1%NOTFOUND; + DBMS_OUTPUT.PUT_LINE(v_address.line1||' '||v_address.line2||' '|| + v_address.city||', '||v_address.state_code||' '||v_address.zip); + END LOOP; + CLOSE csr_dyn1; +EXCEPTION WHEN OTHERS THEN + Retcd :=SQLCODE; + Errmsg :=SQLERRM; +END; +/ +Create or replace Procedure display_dyn_obj_global + (retcd OUT NUMBER, + errmsg OUT VARCHAR2) +Is + CURSOR csr_region IS + SELECT region_name FROM region_tab; +BEGIN + FOR idx IN csr_region LOOP + display_dyn_obj_for_region(idx.region_name,retcd,errmsg); + IF retcd <>0 THEN + EXIT; + END IF; + END LOOP; +EXCEPTION WHEN OTHERS THEN + Retcd :=SQLCODE; + Errmsg :=SQLERRM; +END; +/ +DECLARE + Retcd NUMBER; + Errmsg VARCHAR2(32767); +BEGIN + display_dyn_obj_global(retcd,errmsg); + IF (retcd <>0) THEN + RAISE_APPLICATION_ERROR(-20190,errmsg); + END IF; +EXCEPTION WHEN OTHERS THEN + RAISE_APPLICATION_ERROR(-20191,SQLERRM); +END; +/ + +-- Constructing a type hierarchy in PL/SQL +CREATE OR REPLACE TYPE book_type AS OBJECT +(title VARCHAR2(50), + author VARCHAR2(30), + ISBN NUMBER, + publisher VARCHAR2(50), + prize_awarded VARCHAR2(1), + NOT INSTANTIABLE MEMBER PROCEDURE display_info +) +NOT INSTANTIABLE +NOT FINAL; +/ +CREATE OR REPLACE TYPE literature_type UNDER book_type +(category VARCHAR2(20), + award_name VARCHAR2(20), + OVERRIDING MEMBER PROCEDURE display_info +) +INSTANTIABLE +NOT FINAL; +/ +CREATE OR REPLACE TYPE fiction_type UNDER literature_type +(based_upon VARCHAR2(20), + OVERRIDING MEMBER PROCEDURE display_info +) +INSTANTIABLE +NOT FINAL; +/ +CREATE OR REPLACE TYPE novel_type UNDER fiction_type +(can_be_filmed VARCHAR2(1), + OVERRIDING MEMBER PROCEDURE display_info +) +INSTANTIABLE +NOT FINAL; +/ +CREATE OR REPLACE TYPE mystery_type UNDER novel_type +(type_of_mystery VARCHAR2(20), + OVERRIDING MEMBER PROCEDURE display_info +) +INSTANTIABLE +FINAL; +/ +CREATE OR REPLACE TYPE BODY literature_type +IS + OVERRIDING MEMBER PROCEDURE display_info + IS + BEGIN + DBMS_OUTPUT.PUT_LINE(rpad('Category',20)||' '||rpad('Books',60)); + DBMS_OUTPUT.PUT_LINE(rpad('-',20,'-')||' '||rpad('-',60,'-')); + DBMS_OUTPUT.PUT_LINE(rpad(SELF.category,20)||' '||SELF.title||' by '|| + SELF.author); + END; +END; +/ +CREATE OR REPLACE TYPE BODY fiction_type +IS + OVERRIDING MEMBER PROCEDURE display_info + IS + BEGIN + DBMS_OUTPUT.PUT_LINE(rpad('Category',20)||' '||rpad('Books',60)); + DBMS_OUTPUT.PUT_LINE(rpad('-',20,'-')||' '||rpad('-',60,'-')); + DBMS_OUTPUT.PUT_LINE(rpad(SELF.category,20)||' '||SELF.title||' by '|| + SELF.author); + DBMS_OUTPUT.PUT_LINE('This title is based upon '||SELF.based_upon); + END; +END; +/ +CREATE OR REPLACE TYPE BODY novel_type +IS + OVERRIDING MEMBER PROCEDURE display_info + IS + v_can_be_filmed VARCHAR2(20); + BEGIN + SELECT decode(SELF.can_be_filmed,'Y','can be filmed', + 'N ','cannot be filmed') + INTO v_can_be_filmed + FROM dual; + DBMS_OUTPUT.PUT_LINE(rpad('Category',20)||' '||rpad('Books',60)); + DBMS_OUTPUT.PUT_LINE(rpad('-',20,'-')||' '||rpad('-',60,'-')); + DBMS_OUTPUT.PUT_LINE(rpad(SELF.category,20)||' '||SELF.title||' by '|| + SELF.author); + DBMS_OUTPUT.PUT_LINE('This title is a novel based upon '||SELF.based_upon|| + ' and '||v_can_be_filmed); + END; +END; +/ +CREATE OR REPLACE TYPE BODY mystery_type +IS + OVERRIDING MEMBER PROCEDURE display_info + IS + v_can_be_filmed VARCHAR2(20); + BEGIN + SELECT decode(SELF.can_be_filmed,'Y','can be filmed', + 'N','cannot be filmed') + INTO v_can_be_filmed + FROM dual; + DBMS_OUTPUT.PUT_LINE(rpad('Category',20)||' '||rpad('Books',60)); + DBMS_OUTPUT.PUT_LINE(rpad('-',20,'-')||' '||rpad('-',60,'-')); + DBMS_OUTPUT.PUT_LINE(rpad(SELF.category,20)||' '||SELF.title||' by '|| + SELF.author); + DBMS_OUTPUT.PUT_LINE('This title is a novel based upon '||SELF.based_upon|| + ', '||v_can_be_filmed|| + ' and is a mystery of '||SELF.type_of_mystery||' type'); + END; +END; +/ +declare + lit_classic literature_type; +begin + lit_classic :=literature_type('DREAMS UNLIMITED','Bulusu Lakshman', + 0112224444,'Books International','Y', + 'Fiction','Booker Prize'); + lit_classic.display_info; +end; +/ +declare + classic_book mystery_type; +begin + classic_book :=mystery_type('DREAMS UNLIMITED','Bulusu Lakshman', + 0112224444,'Books International','Y', + 'Fiction','Booker Prize','Scientific', + 'Y','Medical Related'); + classic_book.display_info; +end; +/ + +-- Dynamic Method Dispatch +declare + lit_classic literature_type; + classic_book mystery_type; +begin + lit_classic :=literature_type('DREAMS UNLIMITED','Bulusu Lakshman', + 0112224444,'Books International','Y', + 'Fiction','Booker Prize'); + lit_classic.display_info; + classic_book :=mystery_type('DREAMS UNLIMITED','Bulusu Lakshman', + 0112224444,'Books International','Y','Fiction', + 'Booker Prize','Scientific','Y','Medical Related'); + classic_book.display_info; +end; +/ + +-- SQL Types of Language Java or SQLJ Object Types +-- Custom Java Class that the SQLJ Object Type maps to +import java.sql.*; +import oracle.sql.*; +public class Address implements SQLData { + public String line1; + public String line2; + public String city; + public String state_code; + public String zip; + String sql_type ="ADDRESS_SQLJ"; + + public Address(){ + } + + public Address (String iline1,String iline2,String icity, + String istate,String izip){ + this.line1 =iline1; + this.line2 =iline2; + this.city =icity; + this.state_code =istate; + this.zip =izip; + } + + public String getSQLTypeName()throws SQLException + { + return sql_type; + } + + public void readSQL(SQLInput stream,String typeName) + throws SQLException + { + sql_type =typeName; + line1 =stream.readString(); + line2 =stream.readString(); + city =stream.readString(); + state_code =stream.readString(); + zip =stream.readString(); + } + + public void writeSQL(SQLOutput stream) + throws SQLException + { + stream.writeString(line1); + stream.writeString(line2); + stream.writeString(city); + stream.writeString(state_code); + stream.writeString(zip); + } + + public static Address setAddress (String iline1,String iline2, + String icity,String istate,String zip){ + return new Address(iline1,iline2,icity,istate,izip); + } + + public String getAddress(){ + return this.line1 +" "+this.line2 +" "+this.city +", "+ + this.state_code +" "+this.zip; + } +} + +-- Creating the SQLJ object type that maps to the above Java class +CREATE TYPE address_sqlj AS OBJECT +EXTERNAL NAME 'Address 'LANGUAGE JAVA +USING SQLData( +line1_sqlj varchar2(20)EXTERNAL NAME 'line1', +line2_sqlj varchar2(20)EXTERNAL NAME 'line2', +city_sqlj varchar2(20)EXTERNAL NAME 'city', +state_code_sqlj varchar2(2)EXTERNAL NAME 'state_code', +zip_sqlj varchar2(13)EXTERNAL NAME 'zip', +STATIC FUNCTION set_address (p_line1 VARCHAR2,p_line2 VARCHAR2, +p_city VARCHAR2,p_state_code VARCHAR2,p_zip VARCHAR2) +RETURN address_sqlj +EXTERNAL NAME 'setAddress (java.lang.String,java.lang.String, +java.lang.String,java.lang.String,java.lang.String) return Address', +MEMBER FUNCTION get_address RETURN VARCHAR2 +EXTERNAL NAME 'Address.getAddress()return java.lang.String' +) +NOT FINAL; +/ + +-- Using the SQLJ Object Type in PL/SQL and/or SQL +CREATE TABLE address_master_sqlj OF address_sqlj; + +insert into address_master_sqlj +values(address_sqlj.set_address('1 Oracle parkway',null,'Redwood Shores', +'CA','41246')); + +SELECT a.line1_sqlj,a.line2_sqlj FROM address_master_sqlj a; + +SELECT a.get_address()FROM address_master_sqlj; + +--User-defined Operators +CREATE OR REPLACE FUNCTION f_eq (p1 VARCHAR2,p2 VARCHAR2) RETURN NUMBER +IS +BEGIN + IF p1 =p2 THEN + RETURN 1; + ELSE + RETURN 0; + END IF; +END f_eq; +/ +CREATE OR REPLACE OPERATOR eq +BINDING (VARCHAR2,VARCHAR2)RETURN NUMBER +USING f_eq; + +CREATE OR REPLACE FUNCTION f_eq1 (p1 VARCHAR2,p2 VARCHAR2) +RETURN BOOLEAN +IS +BEGIN + IF p1 =p2 THEN + RETURN TRUE; + ELSE + RETURN FALSE; + END IF; +END f_eq1; +/ +CREATE OR REPLACE OPERATOR eq1 +BINDING (VARCHAR2,VARCHAR2)RETURN BOOLEAN +USING f_eq1; + +SELECT * FROM employee_test +WHERE EQ(lastname,'SMITH')=1; + +create table test (test number); + +insert into test values (eq('ROBERT','SMITH')); + +select * from test; + +declare + v_empid number; + v_lastname varchar2(30); + v_firstname varchar2(30); +begin + select empid,lastname,firstname + into v_empid,v_lastname,v_firstname + from employee_test + where EQ(lastname,'SMITH')=1; + dbms_output.put_line(to_char(v_empid)||' '||v_lastname||' '||v_firstname); +end; +/ +declare + string1 varchar2(10):='ROBERT'; + string2 varchar2(10):='SMITH'; +begin + if eq(string1,string2)=1 then + dbms_output.put_line('String1 equals String2'); + else + dbms_output.put_line('String1 does not equal String2'); + end if; +end; +/ diff --git a/Chapter11/Chapter11.txt b/Chapter11/Chapter11.txt new file mode 100644 index 0000000..e5f841d --- /dev/null +++ b/Chapter11/Chapter11.txt @@ -0,0 +1,641 @@ +-- Defining a VARRAY +DECLARE + TYPE num_varray IS VARRAY(5)OF NUMBER; + v_numvarray num_varray; +BEGIN + /*Do some processing */ + null; +END; +/ + +-- Initializing a VARRAY +DECLARE + TYPE num_varray IS VARRAY(5)OF NUMBER; + v_numvarray num_varray :=num_varray(10,20,30,40); +BEGIN + dbms_output.put_line('The first element of v_numvarray is '|| + TO_CHAR(v_numvarray(1))); +END; +/ + +-- NULL VARRAYS and NULL Elements +declare + Type num_varray is VARRAY(5)OF NUMBER; + v_numvarray num_varray; +begin + --checking for NULL after declaring and before initializing + if v_numvarray IS NULL then + dbms_output.put_line('v_numvarray is atomically null'); + end if; + v_numvarray :=NULL; + --checking for NULL after explicitly assigning to NULL + if v_numvarray IS NULL then + dbms_output.put_line('v_numvarray is atomically null after assignment'); + end if; +end; +/ +declare + Type num_varray is VARRAY(5)OF NUMBER; + v_numvarray1 num_varray; +begin + if v_numvarray1 IS NULL then + dbms_output.put_line('v_numvarray1 is atomically null'); + end if; + if v_numvarray1(1) IS NULL then + dbms_output.put_line('The first element of v_numvarray1 is null'); + end if; +end; +/ +declare + Type num_varray is VARRAY(5)OF NUMBER; + v_numvarray2 num_varray; +begin + v_numvarray2 :=num_varray(NULL); + --checking for NULL after initialization + if v_numvarray2 IS NULL then + dbms_output.put_line('v_numvarray2 is atomically null'); + else + dbms_output.put_line('v_numvarray2 is not atomically null'); + end if; + if v_numvarray2(1) IS NULL then + dbms_output.put_line('The first element of v_numvarray2 is null'); + end if; +end; +/ + +-- Accessing VARRAY elements +declare + Type num_varray is VARRAY(5)OF NUMBER; + v_numvarray num_varray; +begin + v_numvarray :=num_varray(10,20,30,40); + --Referencing individual elements + dbms_output.put_line('The elements in the v_numvarray are: '); + dbms_output.put_line(to_char(v_numvarray(1))||', '||to_char(v_numvarray(2))|| + ', '||to_char(v_numvarray(3))||', '|| + to_char(v_numvarray(4))); + + --assignment + v_numvarray(4):=60; + dbms_output.put_line('The elements in the v_numvarray are: '); + dbms_output.put_line(to_char(v_numvarray(1))||', '||to_char(v_numvarray(2))|| + ', '||to_char(v_numvarray(3))||', '|| + to_char(v_numvarray(4))); +end; +/ + +-- Defining a Nested Table +DECLARE + TYPE num_table IS TABLE OF NUMBER; + v_numarray num_table; +BEGIN + /*Do some processing */ + null; +END; +/ + +-- Initializing a Nested Table +DECLARE + TYPE num_table IS TABLE OF NUMBER; + v_numarray num_table :=num_table(10,20,30,40); +BEGIN + dbms_output.put_line('The first element of v_numarray is '|| + TO_CHAR(v_numarray(1))); +END; +/ + +-- NULL and Empty Nested Tables and NULL elements +declare + Type num_table is TABLE OF NUMBER; + v_numarray num_table; +begin + --checking for NULL after declaring and before initializing + if v_numarray IS NULL then + dbms_output.put_line('v_numarray is atomically null'); + end if; + v_numarray :=NULL; + --checking for NULL after explicitly assigning to NULL + if v_numarray IS NULL then + dbms_output.put_line('v_numarray is atomically null after assignment'); + end if; +end; +/ +declare + Type num_table is TABLE OF NUMBER; + v_emptyarray num_table :=num_table(); +begin + if v_emptyarray IS NULL then + dbms_output.put_line('v_emptyarray is atomically null'); + else + dbms_output.put_line('v_emptyarray is NOT atomically null'); + end if; +end; +/ +declare + Type num_table is TABLE OF NUMBER; + v_numarray1 num_table; +begin + if v_numarray1 IS NULL then + dbms_output.put_line('v_numarray1 is atomically null'); + end if; + if v_numarray1(1) IS NULL then + dbms_output.put_line('The first element of v_numarray1 is null'); + end if; +end; +/ +declare + Type num_table is TABLE OF NUMBER; + v_numarray2 num_table; +begin + v_numarray2 :=num_table(NULL); + --checking for NULL after initialization + if v_numarray2 IS NULL then + dbms_output.put_line('v_numarray2 is atomically null'); + else + dbms_output.put_line('v_numarray2 is not atomically null'); + end if; + if v_numarray2(1) IS NULL then + dbms_output.put_line('The first element of v_numarray2 is null'); + end if; +end; +/ + +-- Accessing Nested Table elements +declare + Type num_table is TABLE OF NUMBER; + v_numarray num_table; +begin + v_numarray :=num_table(10,20,30,40); + --Referencing individual elements + dbms_output.put_line('The elements in the v_numarray are: '); + dbms_output.put_line(to_char(v_numarray(1))||', '||to_char(v_numarray(2))|| + ', '||to_char(v_numarray(3))||', '|| + to_char(v_numarray(4))); + + --assignment + v_numarray(4):=50; + dbms_output.put_line('The elements in the v_numarray are: '); + dbms_output.put_line(to_char(v_numarray(1))||', '||to_char(v_numarray(2))|| + ', '||to_char(v_numarray(3))||', '|| + to_char(v_numarray(4))); +end; +/ +declare + Type num_table is TABLE OF NUMBER; + v_numarray num_table; +begin + v_numarray :=num_table(10,20,30,40); + --Referencing individual elements + dbms_output.put_line('The elements in the v_numarray are: '); + dbms_output.put_line(to_char(v_numarray(1))||', '||to_char(v_numarray(2))|| + ', '||to_char(v_numarray(3))||', '|| + to_char(v_numarray(4))); + dbms_output.put_line(to_char(v_numarray(5))); +end; +/ + +-- Collection Methods +-- EXISTS +DECLARE + TYPE num_varray IS VARRAY(5)OF NUMBER; + v_numarray num_varray :=num_varray(10,20,30,40,50); +BEGIN + IF v_numarray.EXISTS(4) THEN + DBMS_OUTPUT.PUT_LINE('The element 4 exists in the variable array.'); + END IF; +END; +/ + +-- COUNT +DECLARE + TYPE num_varray IS VARRAY(10)OF NUMBER; + v_numarray num_varray :=num_varray(10,20,30,40,50); + TYPE num_table IS TABLE OF NUMBER; + v_numlist num_table :=num_table(101,201,301,401); +BEGIN + DBMS_OUTPUT.PUT_LINE('Varray Count = '||TO_CHAR(v_numarray.COUNT)); + DBMS_OUTPUT.PUT_LINE('Nested Table Count = '||TO_CHAR(v_numlist.COUNT)); +END; +/ + +-- LIMIT +DECLARE + TYPE num_varray IS VARRAY(10)OF NUMBER; + v_numarray num_varray :=num_varray(10,20,30); +BEGIN + DBMS_OUTPUT.PUT_LINE('Varray Count = '||TO_CHAR(v_numarray.COUNT)); + DBMS_OUTPUT.PUT_LINE('Varray Limit = '||TO_CHAR(v_numarray.LIMIT)); +END; +/ + +-- EXTEND +DECLARE + TYPE num_varray IS VARRAY(10)OF NUMBER; + v_numarray num_varray :=num_varray(NULL,NULL); + TYPE num_table IS TABLE OF NUMBER; + v_numlist num_table :=num_table(NULL); +BEGIN + v_numarray(1):=1001; + v_numarray(2):=1002; + v_numarray.EXTEND; + v_numarray(3):=1003; + + v_numlist(1):=101; + v_numlist.EXTEND(5); + v_numlist(5):=105; +END; +/ + +-- Collections in the database +CREATE OR REPLACE TYPE num_varray IS VARRAY(10)OF NUMBER; +/ +CREATE OR REPLACE TYPE num_table IS TABLE OF NUMBER; +/ + +-- Stored VARRAYS +CREATE OR REPLACE TYPE add_list AS VARRAY(10)OF NUMBER(10); +/ +CREATE TABLE direct_address_list (list_id VARCHAR2(6)PRIMARY KEY, + direct_addresses add_list ); +-- DML on whole VARRAYS +-- INSERT +INSERT INTO direct_address_list VALUES +('OFF101',add_list(1001,1002,1003,1004)); + +DECLARE + v_add_varray add_list :=add_list(2001,2002); +BEGIN + INSERT INTO direct_address_list VALUES ('OFF102',v_add_varray); +END; +/ + +-- UPDATE +DECLARE + v_add_varray add_list :=add_list(1011,1012,1013); +BEGIN + UPDATE direct_address_list + SET direct_addresses =v_add_varray + WHERE list_id ='OFF102'; +END; +/ + +UPDATE direct_address_list +SET direct_addresses =add_list(1011,1012,1013) +WHERE list_id ='OFF102'; + +-- DELETE +DELETE FROM direct_address_list +WHERE list_id ='OFF102'; + +-- SELECT +DECLARE + v_add_varray direct_address_list.direct_addresses%TYPE; +BEGIN + SELECT direct_addresses + INTO v_add_varray + FROM direct_address_list + WHERE list_id ='OFF101'; + DBMS_OUTPUT.PUT_LINE ( + 'The address list for OFF101 contains the following address IDs :'); + FOR idx IN 1..v_add_varray.COUNT LOOP + DBMS_OUTPUT.PUT_LINE(TO_CHAR(v_add_varray(idx))); + END LOOP; +EXCEPTION WHEN OTHERS THEN + DBMS_OUTPUT.PUT_LINE(SQLERRM); +END; +/ + +SELECT list_id,column_value +FROM direct_address_list,TABLE(direct_addresses); + +-- Stored Nested Tables +CREATE OR REPLACE TYPE home_add_list AS TABLE OF NUMBER(10); +/ +CREATE TABLE home_address_list (list_id VARCHAR2(6)PRIMARY KEY, + home_addresses home_add_list ) +NESTED TABLE home_addresses STORE AS home_addreses_tab; + +-- DML on whole Nested Tables +-- INSERT +INSERT INTO home_address_list VALUES +('H101',home_add_list(1001,1002,1003,1004)); + +DECLARE + v_add_list home_add_list :=home_add_list(2001,2002); +BEGIN + INSERT INTO home_address_list VALUES ('H102',v_add_list); +END; +/ + +-- UPDATE +DECLARE + v_add_list home_add_list :=home_add_list(1011,1012,1013); +BEGIN + UPDATE home_address_list + SET home_addresses =v_add_list + WHERE list_id ='H102'; +END; +/ + +UPDATE home_address_list +SET home_addresses=home_add_list(1011,1012,1013) +WHERE list_id ='H102'; + +-- DELETE +DELETE FROM home_address_list +WHERE list_id ='H102'; + +-- SELECT +DECLARE + v_add_list home_add_list :=home_add_list(2001,2002); +BEGIN + INSERT INTO home_address_list VALUES ('H102',v_add_list); +END; +/ +DECLARE + v_add_list home_address_list.home_addresses%TYPE; +BEGIN + SELECT home_addresses + INTO v_add_list + FROM home_address_list + WHERE list_id ='H102'; + DBMS_OUTPUT.PUT_LINE ( + 'The home address list for H102 contains the following address IDs :'); + FOR idx IN 1..v_add_list.COUNT LOOP + DBMS_OUTPUT.PUT_LINE(TO_CHAR(v_add_list(idx))); + END LOOP; +EXCEPTION WHEN OTHERS THEN + DBMS_OUTPUT.PUT_LINE(SQLERRM); +END; +/ + +SELECT * +FROM TABLE(SELECT home_addresses FROM home_address_list WHERE list_id ='H101'); + +create table num_tab (col1 number(10)); + +declare + v_add_list home_add_list :=home_add_list(NULL,NULL,NULL); +begin + v_add_list(1):=1001; + v_add_list(2):=1002; + v_add_list(3):=1003; + insert into num_tab + select column_value + from TABLE(CAST(v_add_list AS home_add_list)); +end; +/ + +select * from num_tab; + +-- Table Functions +create or replace type num_table is table of number; +/ +create or replace function f_table return num_table +is + v_numarray num_table :=num_table(); +begin + FOR i in 1..10 loop + v_numarray.EXTEND; + v_numarray(i):=i+100; + END LOOP; + RETURN (v_numarray); +end; +/ + +SELECT * FROM TABLE(f_table); + +-- Table Functions involving Object Types +CREATE TYPE temp_adds IS TABLE OF address; +/ + +CREATE OR REPLACE FUNCTION f_table_obj RETURN temp_adds +IS + v_temp_adds temp_adds :=temp_adds(); +BEGIN + v_temp_adds.EXTEND(5); + v_temp_adds(1):= + address('20 Spring St.',null,'New York','NY','10020','USA'); + v_temp_adds(2):= + address('Suite 206','Prospect Blvd','Bloomington','IL','60610','USA'); + v_temp_adds(3):= + address('1 Woodlake Dr.',null,'Piscataway','NJ','08540','USA'); + v_temp_adds(4):= + address('#9','Hayes Avenue','Dallas','TX','11134','USA'); + v_temp_adds(5):= + address('1 Franklin Ct.',null,'Franklin','MA','17012','USA'); + RETURN (v_temp_adds); +END; +/ + +SELECT * FROM TABLE(f_table_obj); + +-- Pipelined Table Functions +CREATE OR REPLACE FUNCTION f_table_obj_pipelined +RETURN temp_adds PIPELINED +IS + v_address address; +BEGIN + FOR i IN 1..5 LOOP + IF (i=1) THEN + v_address := + address('20 Spring St.',null,'New York','NY','10020','USA'); + ELSIF (i=2) THEN + v_address := + address('Suite 206','Prospect Blvd','Bloomington','IL','60610','USA'); + ELSIF (i=3) THEN + v_address := + address('1 Woodlake Dr.',null,'Piscataway','NJ','08540','USA'); + ELSIF (i=4) THEN + v_address := + address('#9','Hayes Avenue','Dallas','TX','11134','USA'); + ELSIF (i=5) THEN + v_address := + address('1 Franklin Ct.',null,'Franklin','MA','17012','USA'); + END IF; + PIPE ROW(v_address); + END LOOP; + RETURN; +END; +/ + +SELECT * FROM TABLE(f_table_obj_pipelined); + +-- A pipelined Table Function that returns a PL/SQL type +CREATE OR REPLACE PACKAGE pkg_table_func +IS + TYPE address_rec IS RECORD + (LINE1 VARCHAR2(20), + LINE2 VARCHAR2(20), + CITY VARCHAR2(20), + STATE_CODE VARCHAR2(2), + ZIP VARCHAR2(13), + COUNTRY_CODE VARCHAR2(4)); + + TYPE temp_adds IS TABLE OF address_rec; +END; +/ + +CREATE OR REPLACE FUNCTION f_table_plsql_pipelined +RETURN pkg_table_func.temp_adds +PIPELINED +IS + v_address pkg_table_func.address_rec; +BEGIN + FOR i IN 1..3 LOOP + IF (i=1) THEN + v_address.line1 :='20 Spring St.'; + v_address.line2 :=null; + v_address.city :='New York'; + v_address.state_code :='NY'; + v_address.zip :='10020'; + v_address.country_code :='USA'; + ELSIF (i=2) THEN + v_address.line1 :='Suite 206'; + v_address.line2 :='Prospect Blvd'; + v_address.city :='Bloomington'; + v_address.state_code :='IL'; + v_address.zip :='60610'; + v_address.country_code :='USA'; + ELSIF (i=3) THEN + v_address.line1 :='1 Woodlake Dr.'; + v_address.line2 :=null; + v_address.city :='Piscataway'; + v_address.state_code :='NJ'; + v_address.zip :='08540'; + v_address.country_code :='USA'; + END IF; + PIPE ROW(v_address); + END LOOP; + RETURN; +END; +/ + +SELECT * FROM TABLE(f_table_plsql_pipelined); + +-- Passing data from one table function to another +-- in a pipelined fashion +CREATE OR REPLACE FUNCTION f_table_plsql2_pipelined(p_ref_cursor SYS_REFCURSOR) +RETURN pkg_table_func.temp_adds PIPELINED +IS + v_address1 pkg_table_func.address_rec; + v_address2 pkg_table_func.address_rec; +BEGIN + LOOP + FETCH p_ref_cursor INTO v_address1; + EXIT WHEN p_ref_cursor%NOTFOUND; + IF (v_address1.city='New York') THEN + v_address2.line1 :='P.O.Box 2215'; + v_address2.line2 :=null; + v_address2.city :='New York'; + v_address2.state_code :='NY'; + v_address2.zip :='10020-2215'; + v_address2.country_code :='USA'; + ELSIF (v_address1.city='Bloomington') THEN + v_address2.line1 :='P.O.Box 6615'; + v_address2.line2 :=null; + v_address2.city :='Bloomington'; + v_address2.state_code :='IL'; + v_address2.zip :='60610-6615'; + v_address2.country_code :='USA'; + ELSIF (v_address1.city='Piscataway') THEN + v_address2.line1 :='P.O.Box 0001'; + v_address2.line2 :=null; + v_address2.city :='Piscataway'; + v_address2.state_code :='NJ'; + v_address2.zip :='08540'; + v_address2.country_code :='USA'; + END IF; + PIPE ROW(v_address2); + END LOOP; + close p_ref_cursor; + RETURN; +END; +/ + +SELECT * FROM TABLE(f_table_plsql2_pipelined( + CURSOR(SELECT * FROM TABLE(f_table_plsql_pipelined())))); + +-- Multilevel Collections +CREATE OR REPLACE TYPE varray_one IS VARRAY(10)OF NUMBER; +/ +CREATE OR REPLACE TYPE varray_one_nested IS VARRAY(10)OF varray_one; +/ +CREATE OR REPLACE TYPE varray_two_nested IS VARRAY(10)OF varray_one_nested; +/ + +DECLARE + v1 varray_one; + v2 varray_one_nested; + v3 varray_two_nested; +BEGIN + v1 :=varray_one(1,2,3); + v2 :=varray_one_nested(varray_one(11,12,13),varray_one(21,22,23)); + v3 :=varray_two_nested( + varray_one_nested(varray_one(111,112,113),varray_one(121,122,123)), + varray_one_nested(varray_one(211,212,213),varray_one(221,222,223))); + dbms_output.put_line('The elements of one-dimensional VARRAY v1 are:'); + for i in 1..v1.count loop + dbms_output.put_line(v1(i)); + end loop; + dbms_output.put_line('The elements of two-dimensional VARRAY v2 are:'); + for i in 1..v2.count loop + for j in 1..v2(i).count loop + dbms_output.put_line(v2(i)(j)); + end loop; + end loop; + dbms_output.put_line('The elements of three-dimensional VARRAY v3 are:'); + for i in 1..v3.count loop + for j in 1..v3(i).count loop + for k in 1..v3(i)(j).count loop + dbms_output.put_line(v3(i)(j)(k)); + end loop; + end loop; + end loop; +END; +/ +DECLARE + TYPE varray_one IS VARRAY(10)OF NUMBER; + TYPE varray_one_nested IS VARRAY(10)OF varray_one; + TYPE varray_two_nested IS VARRAY(10)OF varray_one_nested; + v1 varray_one; + v2 varray_one_nested; + v3 varray_two_nested; +BEGIN + /*Continue further logic */ + null; +END; +/ +DECLARE + TYPE varray_one IS VARRAY(10)OF NUMBER; + TYPE varray_one_nested IS VARRAY(10)OF varray_one; + TYPE varray_two_nested IS VARRAY(10)OF varray_one_nested; + v1 varray_one; + v2 varray_one_nested; + v3 varray_two_nested; +BEGIN + v1 :=varray_one(1,2,3); + v2 :=varray_one_nested(varray_one(11,12,13),varray_one(21,22,23)); + v3 :=varray_two_nested( + varray_one_nested(varray_one(111,112,113),varray_one(121,122,123)), + varray_one_nested(varray_one(211,212,213),varray_one(221,222,223))); + dbms_output.put_line('The elements of one-dimensional VARRAY v1 are:'); + for i in 1..v1.count loop + dbms_output.put_line(v1(i)); + end loop; + dbms_output.put_line('The elements of two-dimensional VARRAY v2 are:'); + for i in 1..v2.count loop + for j in 1..v2(i).count loop + dbms_output.put_line(v2(i)(j)); + end loop; + end loop; + dbms_output.put_line('The elements of three-dimensional VARRAY v3 are:'); + for i in 1..v3.count loop + for j in 1..v3(i).count loop + for k in 1..v3(i)(j).count loop + dbms_output.put_line(v3(i)(j)(k)); + end loop; + end loop; + end loop; +END; +/ diff --git a/Chapter12/Chapter12.txt b/Chapter12/Chapter12.txt new file mode 100644 index 0000000..5dd4158 --- /dev/null +++ b/Chapter12/Chapter12.txt @@ -0,0 +1,267 @@ +-- BLOBS +CREATE TABLE blob_tab +(id NUMBER PRIMARY KEY, + blob_data BLOB); + +INSERT INTO blob_tab VALUES (1,null); + +UPDATE blob_tab +SET blob_data =EMPTY_BLOB() +WHERE id =1; + +INSERT INTO blob_tab VALUES (2,HEXTORAW('ABCDEFABCDEFABCDEF')); + +DECLARE + v_blob BLOB; +BEGIN + INSERT INTO blob_tab VALUES (3,HEXTORAW('ABCDEFABCDEFABCDEF')); + SELECT blob_data + INTO v_blob + FROM blob_tab + WHERE id =3; + /*...Use this blob locator to populate the BLOB with large binary data.*/ +END; +/ +DECLARE + v_blob BLOB; +BEGIN + INSERT INTO blob_tab VALUES (4,HEXTORAW('ABCDEFABCDEFABCDEF')) + RETURNING blob_data INTO v_blob; + /*...Use this blob locator to populate the BLOB with large binary data.*/ +END; +/ + +-- CLOBS +CREATE TABLE clob_tab +(id NUMBER PRIMARY KEY, + clob_data CLOB); + +INSERT INTO clob_tab VALUES (101,null); + +UPDATE clob_tab +SET clob_data =EMPTY_CLOB() +WHERE id =101; + +INSERT INTO clob_tab VALUES (102,RPAD('ABCDEFABCDEFABCDEF',40000,'A')); + +DECLARE + v_clob CLOB; +BEGIN + INSERT INTO clob_tab VALUES (103,EMPTY_CLOB()); + SELECT clob_data + INTO v_clob + FROM clob_tab + WHERE id =103; + /*...Use this clob locator to populate the CLOB with large character data.*/ +END; +/ +DECLARE + v_clob CLOB; +BEGIN + INSERT INTO clob_tab VALUES (104,EMPTY_CLOB()) + RETURNING clob_data INTO v_clob; + /*...Use this clob locator to populate the CLOB with large character data.*/ +END; +/ + +-- BFILES +CREATE TABLE bfile_tab +(id NUMBER PRIMARY KEY, + bfile_data BFILE); + +INSERT INTO bfile_tab VALUES (201,null); + +INSERT INTO bfile_tab VALUES (202,BFILENAME('BFILE_DIR','test.bmp')); + +CREATE DIRECTORY bfile_dir AS 'c:\proj'; +GRANT READ ON DIRECTORY BFILE_DIR TO PLSQL9I; + +DECLARE + v_bfile BFILE; +BEGIN + INSERT INTO bfile_tab VALUES (203,BFILENAME('BFILE_DIR','test.bmp')); + SELECT bfile_data + INTO v_bfile + FROM bfile_tab + WHERE id =203; + /*...Use this bfile locator to read the BFILE */ +END; +/ + +DECLARE + v_bfile BFILE; +BEGIN + INSERT INTO bfile_tab VALUES (204,BFILENAME('BFILE_DIR','test.bmp')) + RETURNING bfile_data INTO v_bfile; + /*...Use this bfile locator to read the BFILE */ +END; +/ + +-- DBMS_LOB Package +-- Populating a BLOB column from an external BFILE +DECLARE + bfile_loc BFILE; + blob_loc BLOB; + bfile_offset NUMBER :=1; + blob_offset NUMBER :=1; + tot_len INTEGER; +BEGIN + --First INSERT a row with an empty blob + INSERT INTO blob_tab VALUES (5,EMPTY_BLOB()); + COMMIT; + --SELECT the blob locator FOR UPDATE + SELECT blob_data INTO blob_loc FROM blob_tab + WHERE id =5 FOR UPDATE; + --Obtain the BFILE locator + bfile_loc :=bfilename('BFILE_DIR','test.bmp'); + --Open the input BFILE */ + dbms_lob.fileopen(bfile_loc,dbms_lob.file_readonly); + --Open the BLOB + dbms_lob.OPEN(blob_loc,dbms_lob.lob_readwrite); + --Populate the blob with the whole bfile data + dbms_lob.LOADBLOBFROMFILE(blob_loc,bfile_loc,dbms_lob.lobmaxsize,bfile_offset, + blob_offset); + --Obtain length of the populated BLOB + tot_len :=DBMS_LOB.GETLENGTH(blob_loc); + --Close the BLOB + dbms_lob.close(blob_loc); + --Close the BFILE + dbms_lob.fileclose(bfile_loc); + COMMIT; + --Display the length of the BLOB + DBMS_OUTPUT.PUT_LINE('The length of the BLOB after population is: '|| + TO_CHAR(tot_len)); +END; +/ + +-- Reading and Writing to a CLOB +declare + clob_loc CLOB; + v_buf VARCHAR2(1000); + Amount BINARY_INTEGER :=1000; + Position INTEGER :=1; +BEGIN + v_buf :=rpad('A',1000,'A'); + insert into clob_tab values (5,EMPTY_CLOB()); + commit; + SELECT clob_data INTO clob_loc + FROM clob_tab + WHERE id =5 FOR UPDATE; + DBMS_LOB.OPEN (clob_loc,DBMS_LOB.LOB_READWRITE); + FOR i IN 1..500 LOOP + DBMS_LOB.WRITE (clob_loc,Amount,Position,v_buf); + Position :=Position +Amount; + END LOOP; + DBMS_LOB.CLOSE (clob_loc); +END; +/ +DECLARE + clob_loc CLOB; + v_Buf VARCHAR2(1000); + Amount BINARY_INTEGER :=1000; + Position INTEGER :=1; + fp UTL_FILE.FILE_TYPE; +BEGIN + --Select the CLOB locator for row with id 5 in clob_tab table + SELECT clob_data INTO clob_loc + FROM clob_tab WHERE id =5; + --Open the CLOB + if (DBMS_LOB.ISOPEN(clob_loc)!=1) then + DBMS_LOB.OPEN (clob_loc,DBMS_LOB.LOB_READONLY); + end if; + --Open the output file for writing + fp :=UTL_FILE.FOPEN('BFILE_DIR','output.dat','w'); + --Read from the CLOB in chunks of 1000 characters and write to the output file + LOOP + BEGIN + DBMS_LOB.READ (clob_loc,Amount,Position,v_Buf); + UTL_FILE.PUT_LINE(fp,v_Buf,TRUE); + Position :=Position +Amount; + EXCEPTION + WHEN NO_DATA_FOUND THEN --This indicates end of data in CLOB + EXIT; + END; + END LOOP; + --Close the output file + UTL_FILE.FCLOSE(fp); + --Close the CLOB + DBMS_LOB.CLOSE (clob_loc); +END; +/ + +-- Getting the Length of a BFILE +declare + bfile_loc BFILE; + tot_len INTEGER; +begin + INSERT INTO bfile_tab VALUES (5,BFILENAME('BFILE_DIR','test.bmp')); + COMMIT; + SELECT bfile_data + INTO bfile_loc + FROM bfile_tab + WHERE id =5; + IF (DBMS_LOB.FILEEXISTS(bfile_loc)!=0) THEN + IF (DBMS_LOB.FILEISOPEN(bfile_loc)!=1) THEN + DBMS_LOB.FILEOPEN(bfile_loc,DBMS_LOB.FILE_READONLY); + tot_len :=DBMS_LOB.GETLENGTH(bfile_loc); + END IF; + END IF; + DBMS_LOB.FILECLOSE(bfile_loc); + DBMS_OUTPUT.PUT_LINE('The size of the external BMP file is '||TO_CHAR(tot_len)); +END; +/ + +-- TO_LOB Function +CREATE TABLE long_test (id NUMBER,long_data LONG); + +INSERT INTO long_test VALUES (100,RPAD('A',200000,'A')); + +CREATE TABLE lob_test (id NUMBER,clob_data CLOB); + +INSERT INTO lob_test + SELECT id,TO_LOB(long_data) + FROM long_test; + +/*DROP TABLE long_test;*/ + +declare + x long :=rpad('A',100000,'B'); + y clob; +begin + y :=to_lob(x); + insert into lob_test values (200,y); +end; +/ + +update lob_test set clob_data =(select to_lob(long_data)from + long_test where id =100) +where id =200; + +-- Copying LONG to LOB with the ALTER TABLE...MODIFY statement +CREATE TABLE long_test1 (id NUMBER,long_data LONG); + +INSERT INTO long_test1 VALUES (100,RPAD('A',200000,'A')); + +ALTER TABLE long_test1 MODIFY (long_data CLOB); + +-- Copying LONG to LOB with the TO_CLOB and TO_BLOB functions +declare + x long; + y clob; +begin + select long_data + into x + from long_test + where id =100; + y :=to_clob(x); + insert into lob_test values (200,y); +end; +/ +declare + x varchar2(32767):=rpad('A',32767,'B'); + y clob; +begin + y :=to_clob(x); + insert into lob_test values (200,y); +end; +/ diff --git a/Chapter12/test.bmp b/Chapter12/test.bmp new file mode 100644 index 0000000000000000000000000000000000000000..55dfe21b4a883b4e5d08c5f28638a193444207c0 GIT binary patch literal 861382 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 + { + for (int i=0;i + +Organization Records + + +

Organization Records

+ + + + + + + + + + +
HierarchyOrg Long Name
DirectorOffice of Director Tech ABC Inc.
DirectorOffice of Dir.SSL
+ + + +-- Procedure p_test +CREATE OR REPLACE PROCEDURE p_test +IS +BEGIN + htp.p(''); + htp.p(''); + htp.p('Organization Records'); + htp.p(''); + htp.p(''); + htp.p('

Organization Records

'); + htp.p(''); + htp.p(''); + htp.p(''); + htp.p(''); + htp.p(''); + htp.p(''); + htp.p(''); + htp.p(''); + htp.p(''); + htp.p(''); + htp.p('
HierarchyOrg Long Name
DirectorOffice of Director Tech ABC Inc.
DirectorOffice of Dir.SSL
'); + htp.p(''); + htp.p(''); +end; +/ + +-- Procedure p_displayOrgs +CREATE OR REPLACE PROCEDURE p_displayOrgs +IS +BEGIN + htp.p(''); + htp.p(''); + htp.p('Organization Records'); + htp.p(''); + htp.p(''); + htp.p('

Organization Records

'); + htp.p(''); + htp.p(''); + for idx in (select h.hrc_descr,o.org_long_name + from org_tab o,hrc_tab h + where o.hrc_code =h.hrc_code + order by h.hrc_code )loop + htp.p(''); + htp.p(''); + htp.p(''); + htp.p(''); + end loop; + htp.p('
HierarchyOrg Long Name
'||idx.hrc_descr||''||idx.org_long_name||'
'); + htp.p(''); + htp.p(''); +end; +/ + +-- Procedure p_displayOrgs_with_param +CREATE OR REPLACE PROCEDURE p_displayOrgs_with_param(ip_hrc_code NUMBER) +IS +BEGIN + htp.p(''); + htp.p(''); + htp.p('Organization Records'); + htp.p(''); + htp.p(''); + htp.p('

Organization Records

'); + htp.p(''); + htp.p(''); + for idx in (select h.hrc_descr,o.org_long_name + from org_tab o,hrc_tab h + where o.hrc_code =h.hrc_code + and h.hrc_code =ip_hrc_code + order by h.hrc_code )loop + htp.p(''); + htp.p(''); + htp.p(''); + htp.p(''); + end loop; + htp.p('
HierarchyOrg Long Name
'||idx.hrc_descr||''||idx.org_long_name||'
'); + htp.p(''); + htp.p(''); +end; +/ + +-- An HTML form to accept user input + + +Organization Records + + +

Organization Records

+

Enter Hrc Code and Press the Run button.

+
+

Hrc Code + +

+

+ +

+
+ + + +-- Procedure p_displayOrgs_with_param_form +CREATE OR REPLACE PROCEDURE p_displayOrgs_with_param_form +IS +BEGIN + htp.p(''); + htp.p(''); + htp.p('Organization Records'); + htp.p(''); + htp.p(''); + htp.p('

Organization Records

'); + htp.p('

Enter Hrc Code and Press the Run button.

'); + htp.p('
'); + htp.p('

Hrc Code + +

'); + htp.p('

+ +

'); + htp.p('
'); + htp.p(''); + htp.p(''); +end; +/ + +-- procedure p_displayOrgs rewritten as a PSP +<%@page language="PL/SQL"%> +<%@plsql procedure="p_displayOrgs_psp"%> +; + +Organization Records + + +

Organization Records

+ + +<% + for idx in (select h.hrc_descr,o.org_long_name + from org_tab o,hrc_tab h + where o.hrc_code =h.hrc_code + order by h.hrc_code )loop +%> + + + + +<%end loop;%> +
HierarchyOrg Long Name
<%=idx.hrc_descr %><%=idx.org_long_name %>
+ + + +-- PSP code for user-interface of Web Application +<%@page language="PL/SQL"%> +<%@plsql procedure="p_webapporg_psp"%> + + +Organization Web Page + + +

Add,Modify or Delete Organizations

+

Enter Hrc Code,Org Id,Short Name,Long Name and click on + ADD,MODIFY or DELETEbuttons

+
+

+Hrc Code: 
+Org Id: 
+Short Name: 
+Long Name: 
+

+ + + +
+ + + +-- Business Logic for Web Application +CREATE OR REPLACE PACKAGE WebAppOrg +IS + PROCEDURE insertOrg (ip_hrc_code NUMBER, + ip_org_id NUMBER, + ip_org_short_name VARCHAR2, + ip_org_long_name VARCHAR2); + + PROCEDURE updateOrg(ip_org_id NUMBER, + ip_org_short_name VARCHAR2, + ip_org_long_name VARCHAR2); + + PROCEDURE deleteOrg(ip_org_id NUMBER); + + PROCEDURE run (ip_op VARCHAR2, + ip_hrc_code NUMBER, + ip_org_id NUMBER, + ip_org_short_name VARCHAR2, + ip_org_long_name VARCHAR2); +END WebAppOrg; +/ +CREATE OR REPLACE PACKAGE BODY WebAppOrg +IS + --Procedure to delete records from the org_site_tab table + --before deleting from org_table.This procedure is called + --from the deleteOrg procedure + PROCEDURE deleteOrgSites(ip_org_id NUMBER, + op_retcd OUT NUMBER, + op_err_msg OUT VARCHAR2) + IS + BEGIN + DELETE org_site_tab WHERE org_id =ip_org_id; + op_retcd :=0; + EXCEPTION WHEN OTHERS THEN + op_retcd :=SQLCODE; + op_err_msg :=SQLERRM; + END deleteOrgSites; + + --Procedure to insert a new record in the org_tab table + PROCEDURE insertOrg (ip_hrc_code NUMBER, + ip_org_id NUMBER, + ip_org_short_name VARCHAR2, + ip_org_long_name VARCHAR2) + IS + BEGIN + INSERT INTO org_tab VALUES + (ip_hrc_code,ip_org_id,ip_org_short_name,ip_org_long_name); + htp.p('Organization with Id '||TO_CHAR(ip_org_id)|| + 'successfully inserted.'); + EXCEPTION WHEN DUP_VAL_ON_INDEX THEN + htp.p('Organization with Id '||TO_CHAR(ip_org_id)||'already exists.'); + WHEN OTHERS THEN + htp.p(SQLERRM); + END insertOrg; + + --Procedure to modify the long and short names for a + --given org_id in the org_tab table + PROCEDURE updateOrg(ip_org_id NUMBER, + ip_org_short_name VARCHAR2, + ip_org_long_name VARCHAR2) + IS + BEGIN + UPDATE org_tab + SET org_short_name =ip_org_short_name, + org_long_name =ip_org_long_name + WHERE org_id =ip_org_id; + IF (SQL%NOTFOUND)THEN + htp.p('Organization with Id '||TO_CHAR(ip_org_id)|| + 'does not exist.'); + RETURN; + END IF; + htp.p('Organization with Id '||TO_CHAR(ip_org_id)|| + 'successfully modified.'); + EXCEPTION WHEN OTHERS THEN + htp.p(SQLERRM); + END updateOrg; + + --Procedure to delete a record from the org_tab table + PROCEDURE deleteOrg(ip_org_id NUMBER) + IS + op_retcd NUMBER; + op_err_msg VARCHAR2(1000); + BEGIN + deleteOrgSites(ip_org_id,op_retcd,op_err_msg); + IF (op_retcd <>0)then + htp.p('Delete of Org Sites failed with error '||op_err_msg); + RETURN; + END IF; + DELETE org_tab WHERE org_id =ip_org_id; + IF (SQL%NOTFOUND)THEN + htp.p('Organization with Id '||TO_CHAR(ip_org_id)|| + 'does not exist.'); + RETURN; + END IF; + htp.p('Organization with Id '||TO_CHAR(ip_org_id)||'successfully deleted.'); + EXCEPTION WHEN OTHERS THEN + htp.p(SQLERRM); + END deleteOrg; + + PROCEDURE run (ip_op VARCHAR2, + ip_hrc_code NUMBER, + ip_org_id NUMBER, + ip_org_short_name VARCHAR2, + ip_org_long_name VARCHAR2) + IS + BEGIN + IF (ip_op ='Add')THEN + IF ((ip_hrc_code IS NULL)or (ip_org_id IS NULL)or + (ip_org_short_name IS NULL)or (ip_org_long_name IS NULL))THEN + htp.p('All input fields must be entered for the Add operation.'); + RETURN; + END IF; + insertOrg (ip_hrc_code, + ip_org_id, + ip_org_short_name, + ip_org_long_name); + ELSIF (ip_op ='Modify')THEN + IF ((ip_hrc_code IS NULL)or (ip_org_id IS NULL)or + (ip_org_short_name IS NULL)or (ip_org_long_name IS NULL))THEN + htp.p('All input fields must be entered for the Modify operation.'); + RETURN; + END IF; + updateOrg(ip_org_id, + ip_org_short_name, + ip_org_long_name); + ELSIF (ip_op ='Delete')THEN + IF (ip_org_id IS NULL)THEN + htp.p('Org Id must be entered for the Delete operation.'); + RETURN; + END IF; + deleteOrg(ip_org_id); + END IF; + END run; +END WebAppOrg; +/ + +-- Procedure p_send_email +CREATE OR REPLACE PROCEDURE p_send_email + (p_mailhost VARCHAR2, + p_from_address VARCHAR2, + p_to_address VARCHAR2, + p_message_text VARCHAR2, + p_retcd OUT NUMBER, + p_err_msg OUT VARCHAR2) +IS + mail_conn utl_smtp.connection; +BEGIN + mail_conn :=utl_smtp.open_connection(p_mailhost,25); + utl_smtp.helo(mail_conn,p_mailhost); + utl_smtp.mail(mail_conn,p_from_address); + utl_smtp.rcpt(mail_conn,p_to_address); + utl_smtp.open_data(mail_conn); + utl_smtp.write_data(mail_conn,p_message_text); + utl_smtp.close_data(mail_conn); + utl_smtp.quit(mail_conn); + p_retcd :=0; +EXCEPTION + WHEN OTHERS THEN + p_retcd :=SQLCODE; + p_err_msg :=SQLERRM; +END; +/ + +-- Sample code to execute p_send_email +declare + retcd number; + err_msg varchar2(1000); +begin + p_send_email('mail.compunnel.com', + 'blakshman@compunnel.com', + 'blakshman@compunnel.com', + 'From:'||'Bulusu'||CHR(13)||CHR(10)|| + 'Subject:'||'Message from Bulusu'||CHR(13)||CHR(10)|| + CHR(13)||CHR(10)|| + 'This is a test message.', + retcd, + err_msg); + IF (retcd <>0)THEN + dbms_output.put_line('ERR:'||err_msg); + END IF; +end; +/ diff --git a/Chapter15/Chapter15.txt b/Chapter15/Chapter15.txt new file mode 100644 index 0000000..238ab0b --- /dev/null +++ b/Chapter15/Chapter15.txt @@ -0,0 +1,16 @@ +ALTER SESSION SET PLSQL_COMPILER_FLAGS ='NATIVE'; + +select uo.object_name,uo.object_type,uss.param_value +from user_stored_settings uss,user_objects uo +where uss.object_id =uo.object_id +and uss.param_name ='plsql_compiler_flags' +and uo.object_type in ('PROCEDURE','FUNCTION'); + +CREATE OR REPLACE FUNCTION f_nocopy + (ip_1 IN NUMBER, + op_2 OUT NOCOPY VARCHAR2) +IS +BEGIN + NULL; +END; +/ diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..c8d0da3 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,27 @@ +Freeware License, some rights reserved + +Copyright (c) 2003 Bulusu Lakshman + +Permission is hereby granted, free of charge, to anyone obtaining a copy +of this software and associated documentation files (the "Software"), +to work with the Software within the limits of freeware distribution and fair use. +This includes the rights to use, copy, and modify the Software for personal use. +Users are also allowed and encouraged to submit corrections and modifications +to the Software for the benefit of other users. + +It is not allowed to reuse, modify, or redistribute the Software for +commercial use in any way, or for a user’s educational materials such as books +or blog articles without prior permission from the copyright holder. + +The above copyright notice and this permission notice need to be included +in all copies or substantial portions of the software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS OR APRESS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + diff --git a/README.md b/README.md new file mode 100644 index 0000000..f63c790 --- /dev/null +++ b/README.md @@ -0,0 +1,15 @@ +#Apress Source Code + +This repository accompanies [*Oracle9i PL/SQL*](http://www.apress.com/9781590590492) by Bulusu Lakshman (Apress, 2003). + +![Cover image](9781590590492.jpg) + +Download the files as a zip using the green button, or clone the repository to your machine using Git. + +##Releases + +Release v1.0 corresponds to the code in the published book, without corrections or updates. + +##Contributions + +See the file Contributing.md for more information on how you can contribute to this repository. diff --git a/Readme.txt b/Readme.txt new file mode 100644 index 0000000..4c87b5d --- /dev/null +++ b/Readme.txt @@ -0,0 +1,9 @@ +1. The zip file contains 15 folders named according to the chapters 01 to 15 +and AppendixA. Each folder contains the source code pertaining to the +respective chapter. + +1. Run the script in AppendixA.txt first. Replace the username, password and + database connect string names with the your schema username, password and + database connect string names respectively. +2. Then use the scripts in each individual chapter folder to run the examples. + diff --git a/contributing.md b/contributing.md new file mode 100644 index 0000000..f6005ad --- /dev/null +++ b/contributing.md @@ -0,0 +1,14 @@ +# Contributing to Apress Source Code + +Copyright for Apress source code belongs to the author(s). However, under fair use you are encouraged to fork and contribute minor corrections and updates for the benefit of the author(s) and other readers. + +## How to Contribute + +1. Make sure you have a GitHub account. +2. Fork the repository for the relevant book. +3. Create a new branch on which to make your change, e.g. +`git checkout -b my_code_contribution` +4. Commit your change. Include a commit message describing the correction. Please note that if your commit message is not clear, the correction will not be accepted. +5. Submit a pull request. + +Thank you for your contribution! \ No newline at end of file