首页 > 解决方案 > 用于内部连接和 where 子句的 PL/SQL 过程

问题描述

我想为以下查询创建 PL/SQL 存储过程:

SELECT order_id, order_date,  customer_id
FROM Orders 
INNER JOIN Customers ON Orders.customer_id = Customers.customer_id
WHERE order_id = xyz;

我想order_id在存储过程中作为输入参数传递。有人可以为此分享PL/SQL代码吗?

标签: oraclestored-proceduresplsqldeveloper

解决方案


返回这些值的过程的最简单形式是这样的(:

create or replace procedure retrieve_order_values(
  p_order_id IN Orders.order_id%type
, p_order_date OUT Orders.order_date%type
, p_customer_id OUT Orders.customer_id%type
)
is
begin
  select order_date, customer_id
  into p_order_date, p_customer_id
  from orders
  where order_id = p_order_id;
end retrieve_order_values;

请注意,您不需要加入Customers表来检索 customer_id。


推荐阅读