使用Oracle写一个存储过程,通过输入的参数图书编号及顾客编号,生成一份新的订单和详细订单,订单的发货地点是上海南京路,数量为10本。(命名为PROC_BOOK_CUS)
时间: 2024-03-08 21:48:54 浏览: 78
java代码-使用java解决图书借阅系统的oracle数据库源代码
好的,以下是可以实现您需求的 Oracle 存储过程(只供参考):
```
CREATE OR REPLACE PROCEDURE PROC_BOOK_CUS
(
p_book_id IN NUMBER,
p_cus_id IN NUMBER
)
AS
v_order_id NUMBER;
BEGIN
--生成新订单
INSERT INTO orders (customer_id, order_date, ship_address)
VALUES (p_cus_id, SYSDATE, '上海南京路')
RETURNING order_id INTO v_order_id;
--生成新详细订单
INSERT INTO order_details (order_id, book_id, quantity)
VALUES (v_order_id, p_book_id, 10);
COMMIT;
END;
```
该存储过程实现了根据输入的图书编号和顾客编号生成新订单和详细订单的功能,订单的发货地点为上海南京路,图书数量为10本。在执行存储过程时,需要传入两个参数:图书编号和顾客编号。存储过程中使用 RETURNING 语句将新生成的订单号保存在 v_order_id 变量中,再将其用于插入详细订单表中。最后使用 COMMIT 语句提交事务。
阅读全文