Oracle 带游标的plsql过程

Oracle 带游标的plsql过程,oracle,plsql,procedure,cursors,Oracle,Plsql,Procedure,Cursors,对于使用ORACLE PLsql的第一部分 程序2: 对于作者以姓氏写的每一本书,将其书的所有ISBN更改为程序的第二个参数是什么 如何获取和更改该书的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 whe

对于使用ORACLE PLsql的第一部分 程序2: 对于作者以姓氏写的每一本书,将其书的所有ISBN更改为程序的第二个参数是什么

如何获取和更改该书的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 

如果您严格地想在代码中保留光标,我想您需要下面的内容-

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;

您使用的是MySQL还是Oracle?能否运行SELECT STANDABLE?SELECT语句无效您使用的是Author中的列,但没有调用Author表-您需要一个Join,而不需要Join(速度慢且效率低)游标,甚至PL/SQL。过程的第二个参数是什么?因此,您可以告诉过程您要将isbn设置为什么。但我应该包含游标