sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur man HÄMTAR med värdet av en Refcursor-variabel

För att namnge markören, tilldela helt enkelt en sträng till refcursor variabel:

DECLARE
    ref refcursor := ''willi'';

Då kommer portalen att ha det namnet.

Det är viktigt att du tilldelar namnet före du öppnar markören.

Om du inte vill tilldela namnet, casta helt enkelt funktionsresultatet till text , som ger dig markörnamnet.

Hur man använder FETCH beror på miljön där du kallar det:

  • Om du anropar det från SQL måste du göra det så här:

    FETCH ALL FROM willi;
    

    Du måste konstruera SQL-satsen med hjälp av resultatet från funktionen, cast till text .

  • Om du anropar det från PL/pgSQL kan du använda en variabel i FETCH uttalande, men du måste ange en destination för resultatet:

    DECLARE
       r refcursor;
       x text;  -- use the correct type
    BEGIN
       r := reffunc2();
       FETCH NEXT FROM r INTO x;
    END;
    



  1. Byt Oracle-port från port 8080

  2. Oracle Regular Expressions. Dangerous Range

  3. Underfråga som genererad kolumn i mysql?

  4. Låser INSERT IGNORE tabellen även om den ignorerar infogningen?