Oracle 11g-运行PLSQL游标

Oracle 11g-运行PLSQL游标,第1张

Oracle 11g-运行PL / SQL游标

有几个问题:

  • 您需要在游标定义之后(即在查询之后)使用分号。
  • 您不能同时使用
    bookCursor
    游标的名称和获取的记录的名称。(我注意到您的代码中有一部分
    bookCursorRec
    用于后者,因此我将继续讨论。)
  • fetch
    需求获取 的东西,这是进入
    bookCursorRec
  • 呼叫到后,您需要使用分号
    dbms_output.put_line
  • 您的查询似乎有误;看起来两个联接都是交叉联接。

放在一起,并稍微调整格式和结构,使它更像“惯用的” PL / SQL:

DECLARE    CURSOR bookcursor IS    SELECt btname, isbn, pubname, datedestroyed      FROM booktitle bt      JOIN publisher p        ON bt.pid = p.id -- this is just a guess      JOIN bookcopy bc        ON bt.bcid = bc.id -- this is just a guess     WHERe datedestroyed IS NULL    ;    bookcursorrec bookcursor%ROWTYPE;BEGIN    OPEN bookcursor;    LOOP        FETCH bookcursor INTO bookcursorrec;        EXIT WHEN bookcursor%NOTFOUND;        dbms_output.put_line( 'ISBN: ' ||bookcursorrec.isbn        || ' - Book Name: ' || bookcursorrec.btname        || ' - Publisher: ' || bookcursorrec.pubname );    END LOOP;    CLOSE bookcursor;END;/

顺便说一句,甲骨文标识符大多是区分大小写(因为他们是隐式转换为大写,除非你在双引号包起来),所以通常人们会用类似的标识符

book_cursor_rec
date_destroyed
,而不是
bookCursorRec
(=
bookcursorrec
)和
dateDestroyed
(=
datedestroyed
)。



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5106415.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存