过程参数确定嵌套过程参数

时间:2018-06-07 05:36:03

标签: oracle stored-procedures plsql

我想写一个带有发票号的程序,然后输出购买该特定产品的客户的详细信息。

我有一个程序,使用身份证号码作为参数显示客户的详细信息,并且工作正常!

我不知道如何使用发票编号来确定客户程序的ID值。

使用Oracle,sql plus

代码:

客户详细程序:

{{1}}

当前查询:

{{1}}

提前致谢!

编辑:

已经知道当我在我想要呼叫的程序中放置一个ID号时,例如custdets(4),它会打印出具有该号码ID的客户。这与他们是否进行购买无关。

1 个答案:

答案 0 :(得分:0)

Invoice number应该是主要关键,我不知道,可能会有一张名为INVOICES的表格?它是您的架构,您比我们更了解它。无论如何,该表应该有一个名为C_ID或者customer_id的列,它是要开发票的客户的ID;该列是CUSTOMERS表的外键。

因此,您的新程序必须将发票ID作为参数。使用该值查找INVOICES记录。这将为您提供C_ID以传递到现有的custdets()过程并显示客户详细信息。

  

"他们都在同一张表中我如何将它传递给custdets()"

这样的事情:

CREATE OR REPLACE PROCEDURE SalePurchase(
      in_invoice IN sales_purchases.sp_invoice%TYPE)
IS          
    l_customer_id  sales_purchases.c_id%type;           
BEGIN  
    select c_id into l_customer_id
    from sales_purchases
    where sp_invoice = in_invoice;
    custdets(l_customer_id);
END;