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

Chapter 4

Uploaded by

mfaroque874
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
28 views4 pages

Chapter 4

Uploaded by

mfaroque874
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 4

CREATE OR REPLACE PROCEDURE add_job(

pid jobs.job_id%TYPE,
ptitle jobs.job_title%TYPE,
pMIN_SALARY jobs.MIN_SALARY%TYPE DEFAULT 5000,
PMAX_SALARY JOBS.MAX_SALARY%TYPE DEFAULT 15000)
AS
BEGIN
INSERT INTO JOBS
VALUES (pid, ptitle, pMIN_SALARY, PMAX_SALARY);
EXCEPTION
WHEN DUP_VAL_ON_INDEX THEN
DBMS_OUTPUT.PUT_LINE('Error! Check Job ID. Duplicate data');
END add_job;
/

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


SELECT * FROM jobs WHERE JOB_ID = 'IT_DBA';

EXECUTE add_job('ST_MAN', 'Stock Manager');


SELECT * FROM jobs WHERE JOB_ID = 'ST_MAN';

CREATE OR REPLACE PROCEDURE del_job(


pid jobs.job_id%TYPE)
AS
BEGIN
DELETE FROM JOBS
WHERE job_id = pid;
IF SQL%NOTFOUND THEN
RAISE_APPLICATION_ERROR(-20005, 'Check Job. No data deleted');
END IF;
END del_job;
/

EXECUTE del_job('IT_DBA');
SELECT * FROM jobs WHERE JOB_ID = 'IT_DBA';

EXECUTE del_job('IT_WEB');
SELECT * FROM jobs WHERE JOB_ID = 'IT_WEB';

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

SELECT job_title
FROM jobs
WHERE job_id = UPPER('SA_REP');

CREATE OR REPLACE FUNCTION get_job (pid jobs.job_id%TYPE)


RETURN jobs.job_title%TYPE
IS
v_title jobs.job_title%TYPE;
BEGIN
SELECT job_title
INTO v_title
FROM jobs
WHERE job_id = UPPER(pid);
RETURN v_title;
END get_job;
/

execute dbms_output.put_line(get_job('st_mAn'));

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

CREATE OR REPLACE PROCEDURE ADD_JOB (


p_id VARCHAR2,
p_title VARCHAR2,
p_min_sal NUMBER,
p_max_sal NUMBER)
IS
BEGIN
INSERT INTO jobs
VALUES (p_id, p_title, p_min_sal, p_max_sal);
DBMS_OUTPUT.PUT_LINE(SQL%ROWCOUNT || ' row created.');
COMMIT;
END ADD_JOB;
/

CREATE OR REPLACE PROCEDURE UPD_JOB_title (


p_id VARCHAR2,
p_title VARCHAR2)
IS
BEGIN
UPDATE jobs
SET job_title = p_title
WHERE JOB_ID = p_id;
DBMS_OUTPUT.PUT_LINE(SQL%ROWCOUNT || ' row updated.');
COMMIT;
END UPD_JOB_title;
/

CREATE OR REPLACE PROCEDURE UPD_JOB_min_sal (


p_id VARCHAR2,
p_min number)
IS
BEGIN
UPDATE jobs
SET MIN_SALARY = p_min
WHERE JOB_ID = p_id;
DBMS_OUTPUT.PUT_LINE(SQL%ROWCOUNT || ' row updated.');
COMMIT;
END UPD_JOB_min_sal;
/

CREATE OR REPLACE PROCEDURE UPD_JOB_max_sal (


p_id VARCHAR2,
p_max number)
IS
BEGIN
UPDATE jobs
SET MAX_SALARY = p_max
WHERE JOB_ID = p_id;
DBMS_OUTPUT.PUT_LINE(SQL%ROWCOUNT || ' row updated.');
COMMIT;
END UPD_JOB_max_sal;
/
CREATE OR REPLACE PROCEDURE DEL_JOB (
p_id VARCHAR2)
IS
BEGIN
DELETE jobs
WHERE JOB_ID = p_id;
DBMS_OUTPUT.PUT_LINE(SQL%ROWCOUNT || ' row deleted.');
COMMIT;
END DEL_JOB;
/

select * from jobs where job_id = 'PR';

execute UPD_JOB_title('PR', 'Zahid');


select * from jobs where job_id = 'PR';

execute UPD_JOB_min_sal('PR', 500);


select * from jobs where job_id = 'PR';

execute UPD_JOB_max_sal('PR', 1000);


select * from jobs where job_id = 'PR';

execute DEL_JOB('PR');
select * from jobs where job_id = 'PR';

CREATE OR REPLACE FUNCTION get_job(p_job varchar2)


RETURN VARCHAR2
IS
v_TITLE varchar2(20);
v_min number;
v_max number;
v_summury varchar2(100);
BEGIN
SELECT JOB_TITLE, MIN_SALARY, MAX_SALARY INTO v_title, v_min, v_max FROM JOBS
WHERE job_id = p_job;
v_summury := p_job || q'('s title is )' || v_title || ' minimum salary: ' ||
v_min || ' maximum salary ' || v_max;
RETURN v_summury;
END;
/

select get_job('PU_CLERK') from dual;

You might also like