我遇到一个问题,我必须在不使用" sum"的情况下计算表格中的col的总和。函数,我为这个任务设计了一个游标,但不知道如何在存储过程中使用它,以便将它保存在内存中:
下面是我的光标,如何在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;
答案 0 :(得分: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;