Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal, estou com um probleminha e gostaria da ajuda de vocês. Tenho um select que traz várias linhas e dentro deste select preciso que execute uma procedure que irá trazer apenas uma linha com varios campos de saida e um de entrada que será usado como identificador para outros selects dentro da procedure, seria mais ou menos isso :
create or replace procedure PR_COBRANCA(
v_cliForn in Pessoa_Relacionamento.Pessoa_Relac_Id%type,
V_PESSOA_RELAC_ID out PESSOA_RELACIONAMENTO.PESSOA_RELAC_ID%TYPE,
V_PESSOA_ID out PESSOA_RELACIONAMENTO.PESSOA_ID%TYPE,
V_TIPO_ENDERECO_ID out ENDERECO.TIPO_ENDERECO_ID%TYPE,
V_LOGRADOURO out ENDERECO.LOGRADOURO%TYPE,
V_TIPO_LOGRADOURO out TIPO_LOGRADOURO.ABREVIATURA%TYPE,
V_NUMERO out ENDERECO.NUMERO%TYPE,
V_COMPLEMENTO out ENDERECO.COMPLEMENTO%TYPE,
V_BAIRRO out ENDERECO.BAIRRO%TYPE,
V_CEP out ENDERECO.CEP%TYPE,
V_CIDADE out CIDADE.NOME%TYPE,
V_UF out ESTADO.UF_ID%type,
V_UF_NOME out ESTADO.NOME%type) is
v_erro VarChar2(100);
begin
-- Busca UF Cliente - Se n¿ existir Faturamento pega UF Comercial
v_erro:= 'Leitura do endereço de cobrançca não Encontrado !!! '|| to_char(v_cliforn);
begin
SELECT VP.PESSOA_RELAC_ID, VP.PESSOA_ID, EC.TIPO_ENDERECO_ID, tl.abreviatura, EC.LOGRADOURO, EC.NUMERO, EC.COMPLEMENTO, EC.BAIRRO,
EC.CEP, CC.NOME, UFC.UF_ID, ufc.nome
into V_PESSOA_RELAC_ID, v_pessoa_id, V_TIPO_ENDERECO_ID, v_tipo_logradouro, V_LOGRADOURO, V_NUMERO, V_COMPLEMENTO, V_BAIRRO,
V_CEP, V_CIDADE, V_UF, V_UF_NOME
FROM VW_PESSOA VP, ENDERECO EC, TIPO_LOGRADOURO TL, CIDADE CC, ESTADO UFC
WHERE
VP.PESSOA_RELAC_ID = v_cliForn
AND EC.PESSOA_ID = VP.PESSOA_ID
AND EC.TIPO_ENDERECO_ID IN (1,2)
AND TL.TIPO_LOGRADOURO_ID = EC.TIPO_LOGRADOURO_ID
AND EC.CIDADE_ID = CC.CIDADE_ID
AND CC.UF_ID = UFC.UF_ID
AND ROWNUM=1
ORDER BY EC.TIPO_ENDERECO_ID DESC;
exception
when no_data_found then
raise_application_error(-20001,v_erro);
WHEN OTHERS THEN
raise_application_error(-20002,'Erro de processamento - '|| v_erro ||' - '|| SQLCODE ||' - '|| SQLERRM);
end;
end PR_COBRANCA;
como chamar esta procedure de dentro de um select, esta seria a melhor maneira de trazer estas informações?Carregando comentários...