Я хочу выполнить запрос, получить результаты, а затем перебрать результаты этого запроса с помощью другого оператора select, используя значения первого оператора в моем втором операторе (курсор).
У меня 40 пользователей в моей базе данных.
Все пользователи имеют одинаковую структуру схемы БД.
Я хочу получить имя пользователя через:
SELECT distinct username
from all_users
затем используйте имя пользователя для запуска запроса, подобного этому:
Select lastname, firstname, email, email2 from username.member.
Мой набор результатов будет возвращать несколько строк, поэтому мне также нужен тип строки.
Я пробовал много разных комбинаций pl / sql:
DECLARE
CURSOR client_cur IS
SELECT distinct username
from all_users
where length(username) = 3;
-- client cursor
CURSOR emails_cur (cli all_users.username%TYPE) IS
SELECT id, name
FROM cli.org;
BEGIN
FOR client IN client_cur LOOP
dbms_output.put_line('Client is '|| client.username);
FOR email_rec in client_cur(client.username) LOOP
dbms_output.put_line('Org id is ' ||email_rec.id || ' org nam ' || email_rec.name);
END LOOP;
END LOOP;
END;
/
и
DECLARE
CURSOR c1 IS
SELECT distinct username from all_users where length(username) = 3;
client c1%rowtype;
cursor c2 is Select id, name, allow_digest_flg from c1.username.org;
digest c2%rowtype;
-- declare record variable that represents a row fetched from the employees table
-- employee_rec c1%ROWTYPE;
BEGIN
-- open the explicit cursor and use it to fetch data into employee_rec
OPEN c1;
loop
FETCH c1 INTO client;
open c2;
loop
fetch c2 into digest;
DBMS_OUTPUT.PUT_LINE('digest is : ' || c2.id || ' and name is ' || c2.name || ' flg is ' || c2.allow_digest_flg );
end loop;
end loop;
END;
/
И МНОГИЕ ИЗМЕНЕНИЯ ЭТИХ.
Может кто-нибудь мне помочь.
БЛАГОДАРЯ