0% found this document useful (0 votes)
3 views4 pages

Chapter 2

Download as txt, pdf, or txt
Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1/ 4

CREATE OR REPLACE PROCEDURE add_job (

p_id JOBS.JOB_ID%TYPE,
p_name JOBS.JOB_TITLE%TYPE)
IS
BEGIN
INSERT INTO jobs(job_id, job_title)
VALUES (p_id, p_name);
COMMIT;
END add_job;
/

EXECUTE add_job('IT_DBA', 'Database Administrator');

X-
BEGIN
add_job('ST_MAN', 'Stock Manager');
END;
/

CREATE OR REPLACE PROCEDURE upd_job(


p_id JOBS.JOB_ID%TYPE,
p_name JOBS.JOB_TITLE%TYPE) IS
BEGIN
UPDATE jobs
SET job_title = p_name
WHERE job_id = p_id;
IF SQL%NOTFOUND THEN
RAISE_APPLICATION_ERROR(-20202, 'No job updated');
END IF;
END upd_job;
/

EXECUTE upd_job('ST_MAN3', 'Stock');

CREATE OR REPLACE PROCEDURE upd_job(


p_id JOBS.JOB_ID%TYPE,
p_name JOBS.JOB_TITLE%TYPE) IS
e_upd EXCEPTION;
BEGIN
UPDATE jobs
SET job_title = p_name
WHERE job_id = p_id;
IF SQL%NOTFOUND THEN
RAISE e_upd;
END IF;
EXCEPTION
WHEN e_upd THEN
DBMS_OUTPUT.PUT_LINE('Error! No jobs updated');
END upd_job;
/

EXECUTE upd_job('ST_MAN3', 'Stock');

CREATE OR REPLACE del_job

======================================
Create 4 procedure to department table.

CREATE TABLE dept AS


SELECT * FROM departments;

TRUNCATE TABLE dept;


SELECT * FROM dept;

Add department
--------------

CREATE OR REPLACE PROCEDURE add_dept(


p_id number,
p_name varchar2,
p_mgr number,
p_loc number)
AS
BEGIN
INSERT INTO dept
VALUES (p_id+10, p_name, p_mgr, p_loc);
END add_dept;
/

--EXECUTE add_dept(&id, '&name', &mgr, &loc);

DECLARE
v_max NUMBER;
BEGIN
SELECT MAX(department_id) INTO v_max FROM DEPT;
add_dept(v_max, '&name', &mgr, &loc);
END;
/

SELECT * FROM dept;

Update department
-----------------

CREATE OR REPLACE PROCEDURE upd_dept_name(


p_id number,
p_name varchar2)
AS
BEGIN
UPDATE dept
SET department_name = p_name
WHERE department_id = p_id;
END upd_dept;
/

===================================

CREATE OR REPLACE PROCEDURE add_job(p_ID JOBS.JOB_ID%TYPE, p_TITLE JOBS.JOB_TITLE


%TYPE, pMIN_SAL JOBS.MIN_SALARY%TYPE DEFAULT 15000, pMAX_SAL JOBS.MAX_SALARY%TYPE
DEFAULT 30000)
IS
BEGIN
INSERT INTO JOBS
VALUES(p_id, p_title, pmin_sal, pmax_sal);
DBMS_OUTPUT.PUT_LINE(SQL%ROWCOUNT || ' row added');
END;
/

EXECUTE add_job('IT_DBA', 'Database Administrator');

------------------------

CREATE OR REPLACE PROCEDURE upd_job(p_ID JOBS.JOB_ID%TYPE, p_TITLE JOBS.JOB_TITLE


%TYPE)
IS
BEGIN
UPDATE JOBS
SET job_title = p_title
WHERE job_id = p_id;
IF SQL%ROWCOUNT = 0 THEN
RAISE_APPLICATION_ERROR(-20004, ' Job id invalid');
ELSE
DBMS_OUTPUT.PUT_LINE(SQL%ROWCOUNT || ' row updated');
END IF;
END;
/

EXECUTE UPD_job('IT_DBA', 'Data Administrator');

-------------------

CREATE OR REPLACE PROCEDURE DEL_job(p_ID JOBS.JOB_ID%TYPE)


IS
BEGIN
DELETE JOBS
WHERE job_id = p_id;
IF SQL%ROWCOUNT = 0 THEN
RAISE_APPLICATION_ERROR(-20005, ' Job id invalid');
ELSE
DBMS_OUTPUT.PUT_LINE(SQL%ROWCOUNT || ' row deleted');
END IF;
END;
/

EXECUTE del_job('&id');

---------------------

CREATE OR REPLACE PROCEDURE get_job(p_ID JOBS.JOB_ID%TYPE)


IS
v_job JOBS%ROWTYPE;
BEGIN
SELECT * INTO v_job FROM JOBS
WHERE job_id = p_id;
DBMS_OUTPUT.PUT_LINE('Job id: ' || v_job.job_id || ' Job Title: ' ||
v_job.job_title || ' Minimum salary: ' || v_job.min_salary || ' Maximum salary: '
|| v_job.max_salary);
END;
/

EXECUTE get_job('&id');
AD_PRES

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy