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

plsql block pro získání výsledku dynamického SQL dotazu

Toto:

dbms_output.put_line(sql_str);

...je to, co tiskne výstup, což je správné chování. Část DECLARE ve mně vyvolává dojem, že se pokoušíte spustit anonymní funkci, že?

Nikdy jsem nepoužil EXECUTE IMMEDIATELY – pouze následující:

FUNCTION MY_FUNCTION()
RETURN SYS_REFCURSOR

L_CURSOR SYS_REFCURSOR;
L_QUERY  VARCHAR2(5000) DEFAULT 'SELECT ...';

BEGIN

  OPEN L_CURSOR FOR L_QUERY;
  RETURN L_CURSOR;

END;

Pokud chcete do dynamického SQL zahrnout proměnné vazby:

FUNCTION MY_FUNCTION()
RETURN SYS_REFCURSOR

L_CURSOR SYS_REFCURSOR;
L_QUERY  VARCHAR2(5000) DEFAULT 'SELECT ...';

BEGIN

  OPEN L_CURSOR FOR L_QUERY
   USING bind_var1;
  RETURN L_CURSOR;

END;


  1. Jak identifikovat neplatné (poškozené) hodnoty uložené ve sloupcích Oracle DATE

  2. Jak vytvořit nové připojení k databázi v django

  3. MySQL:Velmi pomalá aktualizace/vkládání/mazání dotazů visí na kroku ukončení dotazu

  4. Výčet oddílů tabulky v tabulce Postgres