我是PL / SQL的新手,我需要加入两个表,并从订单和加入bookid的书籍表中获取最近24小时订单的数据。以下是我在解决方案下尝试的方式,这是正确的写法吗?请帮助谢谢
CREATE PROCEDURE test.books@state NVARCHAR(20)
AS
BEGIN
SELECT
b.orderid,a.bookid,b.date
FROM books a
INNER JOIN orders AS b ON a.bookid= b.bookid
where b.date > DATE_SUB(CURDATE(), INTERVAL 1 DAY) and a.author="JOHN"
END
答案 0 :(得分:2)
您需要返回引用光标才能执行此操作。必须由您的应用程序选择此引用游标作为参数。
SYSDATE是Oracle中的当前日期(包括时间)。 SYSDATE - 1是24小时之前。
字符串是单引号。
CREATE OR REPLACE
PROCEDURE Books(
p_recordset OUT SYS_REFCURSOR) AS
BEGIN
OPEN p_recordset FOR
SELECT
b.orderid,a.bookid,b.date
FROM books a
INNER JOIN orders AS b ON a.bookid= b.bookid
where b.date > SYSDATE-1 and a.author='JOHN' ;
END Books