The Open Source Swiss Army Knife

/sql_servers/oracle/pl_sql/
/sql_servers/oracle/pl_sql/ + sub-categories
http://www.sirfsup.com/
web directory content
    
      

Not logged in
Chat Register Login
return to:  http:/www.sirfsup.com      /sql_servers   /oracle   /pl_sql 
Permalink: 11.sql
Title: add
article options : please login   |  raw source view  

set echo on
set serveroutput on
--
-- joseph speigle
-- july 17, 2002
-- lab 11
--
-- question one
--
--
DROP TABLE mylist;
CREATE TABLE mylist (

        id NUMBER PRIMARY KEY,
        lname VARCHAR2(20),
        fname VARCHAR2(20),
        age NUMBER(3)

);
--
-- question 2
--
insert into mylist values (101, 'Shannon','Mary',25);
insert into mylist values (105,'Sanchez','Juan',35);
insert into mylist values (110,'Kwan','Charles',22);
insert into mylist values (112,'O''Hara','Patrick',57);
insert into mylist values (122,'Richman','Cathy',23);

select * from mylist;

--
-- question 3
--
CREATE OR REPLACE PROCEDURE insert_mylist
(i_id IN NUMBER, i_lname IN VARCHAR, i_fname IN VARCHAR,
i_age IN NUMBER)
AS
BEGIN

INSERT INTO mylist VALUES (i_id, i_lname, i_fname, i_age);
EXCEPTION

        WHEN DUP_VAL_ON_INDEX THEN
                DBMS_OUTPUT.PUT_LINE ('try with different id');
        
        WHEN OTHERS THEN
                DBMS_OUTPUT.PUT_LINE('exception occurred.  check your values');

END;
.
/
--
--question four
execute insert_mylist(101, 'sp', 'j', 30);
--
-- question five
--
--
DELETE FROM mylist WHERE id = 150;
DECLARE

        v_id mylist.id%TYPE := &sv_id;
        v_lname mylist.lname%TYPE := '&sv_lname';
        v_fname mylist.fname%TYPE := '&sv_fname';
        v_age mylist.age%TYPE :=  &sv_age;
BEGIN
        insert_mylist(v_id, v_lname, v_fname, v_age);
        DBMS_OUTPUT.PUT_LINE('Student id '|| v_id ||' (age '|| v_age||
         ') was added to mylist as '|| v_lname||', '|| v_fname);
EXCEPTION
        WHEN OTHERS THEN NULL;

END;
.
/
--
-- question 6
--
--
SELECT * FROM mylist;
--
--
-- question 7
--
CREATE OR REPLACE PROCEDURE delete_mylist
(i_id IN NUMBER)
AS

v_dummy NUMBER;
BEGIN

        SELECT id INTO v_dummy FROM mylist where id = i_id;
        DELETE FROM mylist WHERE mylist.id = i_id;
        DBMS_OUTPUT.PUT_LINE ('record for id #'||i_id||' successfully deleted.');
EXCEPTION
        WHEN NO_DATA_FOUND THEN
                DBMS_OUTPUT.PUT_LINE ('that id is not in the table');
        WHEN DUP_VAL_ON_INDEX THEN
                DBMS_OUTPUT.PUT_LINE ('try with different id');
        
        WHEN OTHERS THEN
                DBMS_OUTPUT.PUT_LINE('exception occurred.  check your values');

END;
.
/
--
-- question 8
--
execute delete_mylist(101);
--
-- question 9
--
select * from mylist;
--
--
--
-- B.
-- create a procedure that will use dual to retrieve user_name and date
CREATE OR REPLACE PROCEDURE retrieval
IS

        v_user VARCHAR2(20);
        v_date DATE;
BEGIN
        SELECT user, sysdate INTO v_user, v_date FROM DUAL;
        DBMS_OUTPUT.PUT_LINE (v_user || chr(10) || to_char(v_date, 'DD/Mon/YYYY HH:MM'));
EXCEPTION
        WHEN NO_DATA_FOUND THEN
                DBMS_OUTPUT.PUT_LINE ('that id is not in the table');
        WHEN OTHERS THEN
                DBMS_OUTPUT.PUT_LINE('exception occurred.  check your values');

END;
.
/
--
-- execute that procedure
execute retrieval;
--
-- C
-- write the selects on pg. 317 for insert_mylist
COL object_name FORMAT A18
SELECT object_name, object_type, status FROM user_objects WHERE object_name = 'INSERT_MYLIST';


Leave a Reply
Your Name:     anonymous
Your Email:
Website:  
Comments:

The author will be notified of your reply.
return to top