Re: PL/SQL Question

From: g.r.s. deisz <g.r.s.deisz_at_ptt-telecom.unisource.nl>
Date: 1997/02/14
Message-ID: <5e16ca$nhg_at_pwxl01.telecom.ptt.nl>#1/1


In article <5dvh1a$u20_at_pwxl01.telecom.ptt.nl>, gerrit scholten <> wrote:
>This code raises an exception which isn't handled, therefore the error.
>Try this code:
>
>CREATE OR REPLACE PROCEDURE UpdateHours(
> work_essn works_on.essn%TYPE,
> work_pno works_on.pno%TYPE,
> work_hrs works_on.hours%TYPE)
>IS
> work_rec works_on%ROWTYPE;
>BEGIN
> SELECT essn, pno, hours
> INTO work_rec FROM works_on
> WHERE essn = work_essn AND pno = work_pno;
> UPDATE works_on SET hours = work_hrs;

You have to add the previous where clause to specify which record to update. If you omit this clause, all records will be updated. So the update is:

	UPDATE works_on SET hours = work_hrs
	WHERE essn = work_essn AND pno = work_pno;


> COMMIT;
>EXCEPTION
> WHEN NO_DATA_FOUND
> THEN INSERT INTO works_on(essn, pno, hours)
> VALUES(work_essn, work_pno, work_hrs);
> COMMIT;
>END UpdateHours;
>/

Name      :G.R.S. Deisz
Phone     :+31-50-5855954
E mail    :G.R.S.Deisz_at_PTT-TELECOM.Unisource.NL
DISCLAIMER:This statement is not an official statement from, nor
           does it represent an official position of, PTT Telecom BV.
Received on Fri Feb 14 1997 - 00:00:00 CET

Original text of this message