2015-11-13 20 views
0

這是一個問題:您想確定可以購買的特定物品的數量。很顯然,你需要確定物品價格以及你需要花多少錢。屏幕上的結果應該顯示您可以購買多少項。需要某個方向的PL/SQL

這是我創建的表:

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,並告訴我可以購買多少錢。我只是不知道如何重新編寫這段代碼。

回答

1

您接受貨幣數量並將其放入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 

祝你好運。