sql >> Database teknologi >  >> RDS >> Oracle

Hvordan man bruger en variabel fra en cursor i select-sætningen af ​​en anden markør i pl/sql

Du skal bruge dynamisk SQL for at opnå dette; noget som:

DECLARE
    TYPE cur_type IS REF CURSOR;

    CURSOR client_cur IS
        SELECT DISTING username
        FROM all_users
        WHERE length(username) = 3;

    emails_cur cur_type;
    l_cur_string VARCHAR2(128);
    l_email_id <type>;
    l_name <type>;
BEGIN
    FOR client IN client_cur LOOP
        dbms_output.put_line('Client is '|| client.username);
        l_cur_string := 'SELECT id, name FROM '
            || client.username || '.org';
        OPEN emails_cur FOR l_cur_string;
        LOOP
            FETCH emails_cur INTO l_email_id, l_name;
            EXIT WHEN emails_cur%NOTFOUND;
            dbms_output.put_line('Org id is ' || l_email_id
                || ' org name ' || l_name);
        END LOOP;
        CLOSE emails_cur;
    END LOOP;
END;
/

Redigeret at rette to fejl og tilføje links til 10g-dokumentation for OPEN-FOR og et eksempel .Redigeret for at gøre den indre markørforespørgsel til en strengvariabel.



  1. Laravel 5 database problem

  2. Hvordan opretter og udfylder man en tabel i et enkelt trin som en del af en CSV-importoperation?

  3. Sådan opdateres tabellen i oracle

  4. Tilføjelse af rækker til tabel med unik kolonne:Få eksisterende id-værdier plus nyoprettede