Reputation: 9
I'm setting up a new cursor from 3 tables and with looping inside the code. But after all day i tried, no error, no warning, but my out put just showing "PL/SQL procedure successfully completed.", nothing else.
i tried to change my variable, SET SERVEROUTPUT ON, SET VERIFY OFF, etc, but it nothing show up, just like the first time i tried.
SET SERVEROUTPUT ON
DECLARE
V_PROD GD_INBAG%ROWTYPE;
V_OUT OUT_INBAG%ROWTYPE;
V_IN IN_INBAG%ROWTYPE;
V_NOMER NUMBER(8,0):=0;
CURSOR DATA_GUDANG IS
SELECT A.ID_PROD, A.NAMA_PROD, A.STOK_PROD, B.IN_PROD, C.OUT_PROD
FROM GD_INBAG A, IN_INBAG B, OUT_INBAG C
WHERE A.ID_PROD=B.ID_PROD AND A.ID_PROD=C.ID_PROD
ORDER BY A.ID_PROD;
BEGIN
OPEN DATA_GUDANG;
LOOP
FETCH DATA_GUDANG INTO V_PROD.ID_PROD, V_PROD.NAMA_PROD, `V_PROD.STOK_PROD, V_OUT.OUT_PROD, V_IN.IN_PROD;`
EXIT WHEN DATA_GUDANG%NOTFOUND;
V_NOMER :=V_NOMER+1;
DBMS_OUTPUT.PUT_LINE ('NUMBER : '||' '||V_NOMER);
DBMS_OUTPUT.PUT_LINE ('PRODUCT ID : '||' '||V_PROD.ID_PROD);
DBMS_OUTPUT.PUT_LINE ('PRODUCT NAME : '||' '||V_PROD.NAMA_PROD);
DBMS_OUTPUT.PUT_LINE ('STOCK : '||' '||V_PROD.STOK_PROD);
DBMS_OUTPUT.PUT_LINE ('OUT PRODUCT : '||' '||V_OUT.OUT_PROD);
DBMS_OUTPUT.PUT_LINE ('IN PRODUCT : '||' '||V_IN.IN_PROD);
DBMS_OUTPUT.PUT_LINE ('=========================================================');
END LOOP;
CLOSE DATA_GUDANG;
END;
I expected the output of my code to be showing all data (number, ID, product name, stock, product in and out) based and ordered by ID_PROD.
Upvotes: 0
Views: 2461
Reputation: 125
It seems your cursor is not fetching any information.
Any data will be shown if below cursor will open else it not show any result
OPEN DATA_GUDANG;
LOOP
FETCH DATA_GUDANG INTO V_PROD.ID_PROD, V_PROD.NAMA_PROD,
V_PROD.STOK_PROD, V_OUT.OUT_PROD, V_IN.IN_PROD;
EXIT WHEN DATA_GUDANG%NOTFOUND;
V_NOMER :=V_NOMER+1;
DBMS_OUTPUT.PUT_LINE ('NUMBER : '||' '||V_NOMER);
DBMS_OUTPUT.PUT_LINE ('PRODUCT ID : '||'
'||V_PROD.ID_PROD);
DBMS_OUTPUT.PUT_LINE ('PRODUCT NAME : '||'.
'||V_PROD.NAMA_PROD);
DBMS_OUTPUT.PUT_LINE ('STOCK : '||'
'||V_PROD.STOK_PROD);
DBMS_OUTPUT.PUT_LINE ('OUT PRODUCT : '||'
'||V_OUT.OUT_PROD);
DBMS_OUTPUT.PUT_LINE ('IN PRODUCT : '||' '||V_IN.IN_PROD);
DBMS_OUTPUT.PUT_LINE
('=========================================================');
END LOOP;
CLOSE DATA_GUDANG;
END;
Upvotes: 0