Oracle 过程参数确定嵌套的过程参数
我想写一个程序,获取发票号码,然后输出购买该特定产品的客户的详细信息 我有一个程序,使用id号作为参数来显示客户的详细信息,而且效果很好 我不知道如何使用发票号来确定客户程序的ID值 我正在使用Oracle、sql plus 代码: 客户详细信息程序: 当前查询: 提前谢谢 编辑:Oracle 过程参数确定嵌套的过程参数,oracle,stored-procedures,plsql,Oracle,Stored Procedures,Plsql,我想写一个程序,获取发票号码,然后输出购买该特定产品的客户的详细信息 我有一个程序,使用id号作为参数来显示客户的详细信息,而且效果很好 我不知道如何使用发票号来确定客户程序的ID值 我正在使用Oracle、sql plus 代码: 客户详细信息程序: 当前查询: 提前谢谢 编辑: 我已经计算出,当我在我想调用的过程中放置一个ID号时,例如custdets(4),它会用该号码的ID打印出客户。这与他们是否购买无关。发票号应该是名为INVOICES maybe的表的主键,我不知道?这是你的模式,你
我已经计算出,当我在我想调用的过程中放置一个ID号时,例如custdets(4),它会用该号码的ID打印出客户。这与他们是否购买无关。
发票号应该是名为INVOICES maybe的表的主键,我不知道?这是你的模式,你比我们更清楚。无论如何,该表应该有一个名为C\u ID
的列,或者可能是customer\u ID
的列,这是正在开具发票的客户的ID;该列是CUSTOMERS表的外键
因此,新过程必须将发票ID作为参数。使用该值查找发票记录。这将为您提供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;
您使用的是哪种数据库管理系统?(该代码是特定于产品的。)@jarlh-ummm-Oracle,sql-plus新过程已将发票ID号作为参数,如发票中所示。你是说我必须把发票放在custdets()的括号里吗?不。你需要使用发票ID在发票表中查找记录。我的假设是,您有一个INVOICES表,该表具有CUSTOMER_ID。但这是您的数据模型:我实际上无法看到您有哪些表或它们的结构。你必须自己解决这个问题。但是,一旦您拥有发票的客户ID,您需要将其传递给custdets()
。发票ID称为sp\u invoice,并位于sales\u purchases表中。客户ID称为c_ID,是sales_purchases表中的forigen键。因此,它们都在同一个表中。如何将其传递给custdets()?
CREATE OR REPLACE PROCEDURE SalePurchase(in_invoice IN sales_purchases.sp_invoice%TYPE)
IS
BEGIN
DBMS_OUTPUT.PUT_LINE('###########################################');
DBMS_OUTPUT.PUT_LINE('# P U R H A S E - S A L E - S U M M A R Y #');
DBMS_OUTPUT.PUT_LINE('# INVOICE NO: ' || in_invoice || ' #');
DBMS_OUTPUT.PUT_LINE(chr(13));
DBMS_OUTPUT.PUT_LINE('###########################################');
DBMS_OUTPUT.PUT_LINE(CHR(13));
DBMS_OUTPUT.PUT_LINE('############################################');
custdets();
end;
/
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;