PL/SQL 需要指导

PL/SQL needing some direction

这就是问题:您想确定在给定您必须花费的金额的情况下可以购买多少特定商品。显然,您需要确定商品价格以及您需要花费的金额。屏幕上的结果应该会告诉您可以购买多少该商品。

这是我创建的table:

SQL> select *
 2  from product2;

 PIDNO PNAME                PCOST
---------- --------------- ----------
  1111 Pencil                   1
  2222 Soda                     5
  3333 Cards                    2

这是代码:

       SET SERVEROUTPUT ON
     ACCEPT input_money PROMPT 'Enter how much money you have: '
  DECLARE
v_pidno product2.pidno%TYPE;
v_pname product2.pname%TYPE;
v_pcost product2.pcost%TYPE;
v_money number(3);
 BEGIN
 SELECT pidno, pname, pcost
INTO v_pidno, v_pname, v_pcost
FROM product2
WHERE pidno = v_pidno;
V_money :=v_money/v_pcost;
 dbms_output.put_line ('How much you can buy is: ' ||v_money);
END;
 /
  SET SERVEROUTPUT OFF

我也有这样写的代码:

  SET SERVEROUTPUT ON
  ACCEPT input_pidno PROMPT 'Enter product ID: '
  DECLARE
  v_pidno product2.pidno%TYPE;
  v_pname product2.pname%TYPE;
 v_pcost product2.pcost%TYPE;
 v_money number(3);
 BEGIN
   SELECT pidno, pname, pcost
 INTO v_pidno, v_pname, v_pcost
 FROM product2
 WHERE pidno = &input_pidno;
 V_money :=v_money/v_pcost;
 dbms_output.put_line ('How much you can buy is: ' ||v_money); 
END;
/
SET SERVEROUTPUT

我也希望能够输入我有多少钱和 pidno,它会告诉我可以买多少。我只是不知道如何重新表述这段代码。

您正在接受货币数量并将其放入 PIDNO。这可能不是您想要的。尝试类似的东西:

SET SERVEROUTPUT ON

ACCEPT input_money PROMPT 'Enter how much money you have: '
ACCEPT input_pidno PROMPT 'Enter the product ID you want: '

DECLARE
  v_pidno         product2.pidno%TYPE;
  v_pname         product2.pname%TYPE;
  v_pcost         product2.pcost%TYPE;
  v_items_to_buy  number(3);
BEGIN
  SELECT pidno, pname, pcost
    INTO v_pidno, v_pname, v_pcost
    FROM product2
    WHERE pidno = &input_pidno;

  v_items_to_buy := &input_money / v_pcost;

  dbms_output.put_line ('You can buy ' || v_items_to_buy || ' ' || v_pname); 
END;
/
SET SERVEROUTPUT OFF

祝你好运。