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

blok plsql, aby uzyskać dynamiczny wynik zapytania sql

To:

dbms_output.put_line(sql_str);

...jest tym, co drukuje dane wyjściowe, co jest prawidłowym zachowaniem. Część ZADEKLARUJ sprawia wrażenie, że próbujesz uruchomić funkcję anonimową, prawda?

Nigdy nie używałem WYKONAJ NATYCHMIAST — tylko następujące:

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;

Jeśli chcesz dołączyć zmienne bind do dynamicznego SQL:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. przekazanie nazwy tabeli jako parametru plsql

  2. Dlaczego Oracle ignoruje indeks z ORDER BY?

  3. SQL - Tworzenie asocjacji między polami (relacja przechodnia)

  4. Oracle Data Mining (ODM) — instalacja i konfiguracja

  5. Jak rozwiązać Nie można rozwiązać niektórych modułów oracledb?