【问题标题】:Displaying table values through procedures by using a parameter Oracle SQL使用参数 Oracle SQL 通过过程显示表值
【发布时间】:2014-04-16 04:44:36
【问题描述】:

表格描述:

Product (Prodid, Prodesc, Price, Stock)
Purchase (Purid, Proid, qty, supname) 
Sales (Saleid, Proid, qty, custname) 

我需要创建一个程序来接受 prodid 并显示它的所有销售和购买记录。

这是我的代码:

create or replace procedure display (p in varchar2)
AS
pur_dis purchase%rowtype;
sal_dis sales%rowtype;
BEGIN
select * INTO pur_dis from purchase where proid=p;
select * INTO sal_dis from sales where proid=p;
end;
/

当我尝试执行时它只显示“PL/SQL 过程成功完成”

但我需要为该特定 ID 显示购买表值和销售表值。怎么办?

【问题讨论】:

    标签: sql database oracle stored-procedures sqlplus


    【解决方案1】:

    如果需要在工作表中显示,可以使用dbms_output.put_line

    对要显示的程序进行必要的更改:

    create OR REPLACE
    PROCEDURE display(
              p IN VARCHAR2)
    AS
         pur_dis purchase%rowtype;
         sal_dis sales%rowtype;
    BEGIN
         SELECT * INTO pur_dis FROM purchase WHERE proid=p;
         dbms_output.put_line('Displaying your values:'||pur_dis.Purid||' '||pur_dis.Proid||' '||pur_dis.qty||' '||pur_dis.supname);
         SELECT * INTO sal_dis FROM sales WHERE proid=p;
    END;
    /
    

    调用过程:

    SET SERVEROUTPUT ON
    begin
    display(value_of_p);
    end;
    /
    

    【讨论】:

      猜你喜欢
      • 2021-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-18
      • 1970-01-01
      • 2020-07-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多