Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Zwracanie kursora ref z funkcji Oracle

Kilka błędów, spójrz na mój przykład roboczy, właśnie zmieniłem tabelę źródłową:

CREATE OR REPLACE FUNCTION  TEST_CUR RETURN SYS_REFCURSOR
AS
   VAR_REF SYS_REFCURSOR;
BEGIN
    OPEN VAR_REF FOR
        SELECT *
        FROM DUAL;

    RETURN VAR_REF;
END;

Tutaj nie musisz otwierać kursora, jest już otwarty.

DECLARE
    L_VAR SYS_REFCURSOR;
    L_STATUS VARCHAR2(10);
BEGIN
    L_VAR:=TEST_CUR;
    LOOP
        FETCH L_VAR INTO L_STATUS;
        EXIT WHEN L_VAR%NOTFOUND;
        DBMS_OUTPUT.PUT_LINE( L_STATUS );
    END LOOP;
    CLOSE L_VAR;
END;

Naprawdę ciekawy post pokazujący, jak testować kursory Oracle:

5 różnych sposobów przetestuj wyniki Oracle Ref Cursor



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak utworzyć tabelę tymczasową w bazie danych Oracle?

  2. jak wygląda indeks B-drzewa w więcej niż 1 kolumnie?

  3. Dlaczego Oracle używa DBMS_STATS.GATHER_TABLE_STATS?

  4. Użyj aliasu kolumny w tym samym zaznaczeniu

  5. java.lang.ClassCastException:com.mchange.v2.c3p0.impl.NewProxyConnection