iSelfSchooling.com - Copyright © 1999-2009 iSelfSchooling.com ||  References  |  Job Openings
    Home  | Search more...  |  FREE Online VIDEO Oracle Training 

    Oracle Syntax  | Suggestions  | Private Tutoring

  Copyright & User Agreement

Email2aFriend  | Homepage us! |  Bookmark

Services

 Vision/Mission

 Services

 Biography

 Contact Us

 FREE Training

 SQL

 PL/SQL

 Forms 

 Reports

 Other TOOLS

 Fundamentals

 Performance

 OEM

 Application Server

 Grid Control

 Articles

 Prepare for OCP

Oracle SYNTAX

 Oracle Functions

 Oracle Syntax

 Oracle 10g Syntax

  PL/SQL Syntax

UNIX and more...

 UNIX for DBAs

 LINUX for DBAs

 DB using PHP

  A+ Certification

 Basics of JAVA  

 Tips of  SEO

Finance/Jobs

 Financial Aid

 Skilled

 Oracle

 Jobs

  Magazine

More Training

 Q & Answers

 SQL-PL/SQL

 DBA

 Developer

 Important Notes

 Case Studies

 9i New Features

 10g New Features

 10g Qs/As

 Grid Control

 OracleAS # I

 OracleAS # II

  LDAP and OID

  HTTP Server

 Instructor-Led

  Virtual Hosts

 Community Sharing

More to know...

Acknowledgement**

 FREE Legal Forms

 Who is who

 Market Place

 University Directory

 Advisory Articles

 Links...

 

 

FREE Online Oracle Training for beginners and advanced - The most comprehensive Oracle tutorial

The authors do not guarantee or take any responsibility for the accuracy, or completeness of the information.

BASICS

SQL | PL/SQL

DEVELOPERS

FORMS 2 | REPORTS | Other TOOLS

DBAs

FUNDAMENTALS 2 | PERFORMANCE | OEM

ADVANCE

APPLICATION SERVER | GRID CONTROL | ARTICLES 2 3 4

Basics - PL/SQL 

Lesson 01 | Lesson 02 | Lesson 03 | Lesson 04 | Lesson 05 | Lesson 06 | Lesson 07 | Lesson 08 | Lesson 09 | Lesson 10 | Lesson 11 | Lesson 12 | Lesson 13 | Lesson 14 | Lesson 15 | Lesson 16 | Lesson 17 | Lesson 18 | Lesson 19 | Lesson 20 | Lesson 21 | Lesson 22 | Lesson 23 | Lesson 24 | Lesson 25 | Lesson 26 | Lesson 27 | Lesson 28 | Lesson 29 | Lesson 30 | Lesson 31 | Lesson 32 | Lesson 33 | Lesson 34 | Lesson 35 |

Lesson 07

“You're alive. Do something. The directive in life, the moral imperative was so uncomplicated. It could be expressed in single words, not complete sentences. It sounded like this: Look. Listen. Choose. Act.” Barbara Hall, A Summons to New Orleans, 2000

Read first then play the video:

   PLS008(VIDEO)-Advanced PL/SQL Introduction
   PLS009(VIDEO)-Create PL/SQL to populate table using Notepad

Section 1: Creating PL/SQL

Create PL/SQL to populate table using Notepad

Hands-On introduction

In this Hands-On, you create a table called "cust_stat." This table keeps the customers last name (customer_lname), the traded date (trade_date), and the total stocks market value (portfolio_value) for that traded date.

 

You write a PL/SQL procedure to define an explicit cursor to query all the customers, the trade date, and their current stocks market value for the traded date. Then the procedure should be able to populate the customer portfolio statistics into the “cust_stat” table. Save the file in the “iself” folder as "cust_stat" with the "sql" extension.

 

Go to “MS-DOS” Change directory to "iself." Login to “SQLPLUS” as "iself” password “schooling." Then create the customer statistics table and name it "cust_stat."

This table will keep the customer last names, the traded date, and the total stock market value for the traded date.

SQL> CREATE TABLE cust_stat

(customer_lname VARCHAR2(20),

trade_date DATE,

portfolio_value NUMBER(8,2));

 

Writing PL/SQL using NOTEPAD

Then open the “Notepad” editor. Write a stored procedure to populate the customer statistics table. Use the “create or replace” statement for the named block.

 

Declare a cursor to query all the customer last names, the traded date, and the total stock market value for the traded date. Use a sub-query with a max(trade_date) function to guarantee the current stock market value for the traded date.

 

In the PL/SQL body, use the “FOR LOOP” statement to read the cursor information one record at a time. Then insert the summary statistics data into the customer statistics table.

 

Use “commit” to save the transaction.

 

In the exception section, add the “no data found” exception and use the “dbms_output” package to display the error message. Add the “invalid number” exception to detect any invalid input data into the insert command. Add the “Others” exception to detect other problems. Always use the “others” exception in case you miss some other exceptions.

 

Save the file in the “iself” folder as "cust_stat" with the "sql" extension.

 

Creating a PL/SQL procedure

CREATE OR REPLACE PROCEDURE

(Notepad)

create or replace procedure cust_stat_proc

IS

-- define cursor

CURSOR c_cs IS

SELECT last_name, trade_date,

sum(shares_owned*current_price) portfolio_value

FROM customers, portfolio, stocks s

WHERE id = customer_id AND stock_symbol = symbol

AND trade_date = (SELECT max(trade_date) FROM stocks

WHERE symbol = s.symbol)

GROUP BY last_name, trade_date;

 

BEGIN

 

FOR v_cs in c_cs LOOP

- insert into cust_stat

INSERT INTO cust_stat

VALUES (v_cs.last_name, v_cs.trade_date,

v_cs.portfolio_value);

-- save the insert transaction.

COMMIT;

 

END LOOP;

 

EXCEPTION

-- no data found

WHEN no_data_found THEN

dbms_output.put_line(‘No data found.’);

WHEN invalie_number THEN

dbsm_output.put_line(‘Invalid number’);

WHEN others THEN

dbsm_output.put_line(‘Other problem.’);

END;

/

Saving a PL/SQL procedure

Go back to “SQLPLUS.” Run the file.

SQL> @cust_stat

‘/’ command, not only will compile the PL/SQL procedure but also save it as ‘cust_stat_proc’ in the Oracle database server.

 

Query the customer statistics table.

SQL> SELECT * FROM cust_stat;

Notice that the table is empty, since the procedure was not executed yet.

 

Running a PL/SQL procedure

Then run the procedure.

SQL> EXECUTE cust_stat;

 

Testing the PL/SQL procedure

Check to see your table was populated. Query the customer statistics table again.

SQL> SELECT * FROM cust_stat;

Here are the customer portfolio values.

 

Exit “SQLPLUS” and close the windows.

 

 

 

“To love deeply in one direction makes us more loving in all others.” Anne-Sophie Swetchine

Questions:

Q: How do you write a PL/SQL language using NOTEPAD?

Q: Create a table to keep your customer’s portfolio statistics and name it CUST_STAT. You should populate into this table a customer last name, his/her traded date, and total stock market value for the traded date.

See the following columns and datatypes:

customer_lname VARCHAR2(20)

trade_date DATE

portfolio_value NUMBER(8,2)

Q: Write a stored procedure to populate the customer statistics table. Declare a cursor to query all the customer last names, the traded date, and the total stock market value for the traded date. Use a sub-query with a MAX (trade_date) function to guarantee the current stock market value for the traded date. In the PL/SQL body, use the “FOR LOOP” statement to read the cursor information one record at a time. Then insert the summary statistics data into the customer statistics table. Use “commit” to save the transaction. In the exception section, add the “no data found” exception and use the “dbms_output” package to display the error message. Add the “invalid number” exception to detect any invalid input data into the insert command. Add the “Others” exception to detect other problems. Always use the “others” exception in case you miss some other exceptions.

Q: Then run your created procedure.

Q: Verify that your table was populated.

 

 

 
 
Google
 
Web web site