PL sql процедуры с курсорами - PullRequest
0 голосов
/ 29 января 2020

enter image description here

для первой части с использованием ORACLE PLsql Процедура 2: для каждой книги, написанной автором по фамилии, изменить все ISBN OF ЕГО КНИГИ, ЧТО ТАКОЕ ВТОРОЙ ПАРАМЕТР ПРОЦЕДУРЫ ??

Как мне получить и изменить ISBN книги?

set serveroutput on
create or replace procedure changeISBN(Last_Name varchar(100),ISBN int)
no_book exception;
no_author exception;
cursor c1 is 
select *  from book where book.idAuthor= Auhtor.idAuthor and Author.LastName =Last_Name;
if 

1 Ответ

0 голосов
/ 29 января 2020

Если вы строго хотите сохранить курсор в своем коде, думаю, вам нужно ниже -

create or replace procedure changeISBN(P_Last_Name varchar2
                                      ,P_ISBN number
                                      ,P_message out varchar2)
V_AUTHOR Auhtor%idAuthor;
CURSOR C_AUTHOR(Last_Name varchar2)
IS
    SELECT idAuthor
    FROM Auhtor
    WHERE LastName = Last_Name;
Begin
    OPEN C1(P_Last_Name);
    LOOP
        FETCH C_AUTHOR INTO V_AUTHOR;
        UPDATE book
        SET ISBN = P_ISBN
        WHERE book.idAuthor = V_AUTHOR;
    END LOOP;
    CLOSE C1;
    P_message := 'Successfully Updated';
EXCEPTION
     when others then
             P_message := 'Update Failure';
END;
...