如何从oracle中的存储过程调用游标

时间:2015-07-12 03:35:11

标签: oracle

我遇到一个问题,我必须在不使用" 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;

1 个答案:

答案 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;