sql >> Databáze >  >> RDS >> Oracle

Vrácení referenčního kurzoru z funkce Oracle

Pár chyb, podívejte se na můj pracovní příklad, jen jsem změnil zdrojovou tabulku:

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;

Zde nemusíte otevírat kurzor, je již otevřen.

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;

Opravdu zajímavý příspěvek ukazující, jak testovat věštecké kurzory:

5 různých způsobů, jak otestujte výsledky referenčního kurzoru Oracle



  1. Jaké je použití GO v SQL Server Management Studio &Transact SQL?

  2. Přejmenujte sloupec v tabulce mysql, aniž byste museli opakovat definici jeho typu

  3. Jak opravit chybu Microsoft SQL Server 926?- Vyřešeno

  4. Export a import výpisu tabulky (.sql) pomocí pgAdmin