Feras,
quero fazer uma procedure que a ideia e assim:
select * from tabela1
retorna 1 coluna com resultado
select * from tabela2
retorna 1 coluna com resultado
select * from tabela3
pega o resultado da tabela1 e tabela2 e faço a consulta na tabela3
o resultado da tabela3 me retorna 2 colunas
pego o resultado dessas 2 colunas e faço uma ultima consulta na tabela4
minha duvida e como e faço essa estrutura em uma procedure para que a proc me retone um cursor da tabela4 ?
Vê se isso lhe ajuda:
CREATE OR REPLACE PROCEDURE p_consuta_cursor AS
v_campo_tabela1 tabela1.campo%TYPE;
v_campo_tabela2 tabela2.campo%TYPE;
v_campo_tabela3 tabela3.campo%TYPE;
BEGIN
SELECT campo
INTO v_campo_tabela1
FROM tabela1
WHERE alguma_coisa = algo;
SELECT campo
INTO v_campo_tabela2
FROM tabela2
WHERE alguma_coisa = algo;
SELECT campo
INTO v_campo_tabela3
FROM tabela3
WHERE alguma_coisa = algo;
FOR v_cursor IN (
SELECT *
FROM tabela4
WHERE campo1 = v_campo_tabela1
AND campo2 = v_campo_tabela2
AND campo3 = v_campo_tabela3
)
LOOP
-- faz algo com o resultado
INSERT INTO tabela5(campo1, campo2)
VALUES (v_cursor.campo1, v_cursor.campo2);
--
END LOOP;
END p_consuta_cursor;
Qulquer coisa posta ai…
flw!