2015-07-12 57 views
0

我有一個問題,我必須在不使用「求和」函數的情況下計算表中的求和總和,我爲此任務設計了一個遊標,但不知道如何在存儲過程中使用它以便將其保存在內存中:如何從oracle中的存儲過程調用遊標

下面是我的光標,我該如何在oracle的存儲過程中使用它?

DECLARE CURSOR TEMP_CURSOR IS SELECT MARKS FROM TEMP; 
SUMA NUMBER:=0; 
TMP TEMP.MARKS%TYPE; 
BEGIN 
OPEN TEMP_CURSOR(); 
LOOP 
FETCH TEMP_CURSOR INTO TMP; 
EXIT WHEN TEMP_CURSOR%NOTFOUND; 
SUMA:=SUMA + TMP; 
END LOOP; 
DBMS_OUTPUT.PUT_LINE('SUM OF NUMBER IS ' || SUMA); 
CLOSE TEMP_CURSOR; 
END; 

回答

2
CREATE OR REPLACE PROCEDURE PROCEDURE_NAME IS/AS 
    //DECLARE YOUR VARIABLE/CURSORE 
    BEGIN 
    //WRITE YOUR CURSOR CODE 
    END; 

實施例:

CREATE OR REPLACE PROCEDURE PRO_NAME IS 
    CURSOR TEMP_CURSOR IS SELECT MARKS FROM TEMP; 
    SUMA NUMBER:=0; 
    TMP TEMP.MARKS%TYPE; 
BEGIN 
    OPEN TEMP_CURSOR(); 
    LOOP 
    FETCH TEMP_CURSOR INTO TMP; 
    EXIT WHEN TEMP_CURSOR%NOTFOUND; 
    SUMA:=SUMA + TMP; 
    END LOOP; 
    DBMS_OUTPUT.PUT_LINE('SUM OF NUMBER IS ' || SUMA); 
CLOSE TEMP_CURSOR; 
END;