【发布时间】:2018-03-24 00:09:57
【问题描述】:
我正在使用 Oracle SQL 开发人员,我想创建一个过程来打印此 SQL 代码的结果:
SELECT Title , Name
FROM BOOK, BORROWER, BOOK_LOANS
WHERE Due_date = SYSDATE AND Return_date = NULL;
这是我的代码。我不断收到“忽略 SQL 语句,忽略语句,LOOP 索引变量 'books' 无效”。请告诉我我在这里缺少什么。我尝试将 SQL 语句移动到游标,但它也不起作用。
CREATE OR REPLACE PROCEDURE overdueToday IS
BEGIN
FOR books IN (SELECT Title , Name
FROM BOOK, BORROWER, BOOK_LOANS
WHERE Due_date = SYSDATE
AND Return_date = NULL)
LOOP
DBMS_OUTPUT.put_line(books.Title || ' -- ' || books.Name);
END LOOP;
END overdueToday;
/
【问题讨论】:
-
您的查询不正确。您正在引用三个表,其中没有以任何方式连接。因此,除非您打算进行交叉连接,否则这是首先要解决的问题。
-
请给出使用 BOOK、BORROWER、BOOK_LOANS 的表模式
-
请检查我的回答,如果有帮助请告诉我。另外,请阅读:stackoverflow.com/help/someone-answers