Pular para o conteúdo

Fóruns SQL e PL/SQL Iniciante em programação Pl Sql Iniciante em programação Pl Sql

#87836
LeloStyle
Participante

    Ishi muito obrigado cara, nem sei como agradecer !!!
    Vou agilizar para comprar esse livro então, se souber de outras tutoriais ou tiver materiais sobre pl e forms tbm ficarei agradecido.

    Olha só como ficou, verificae ve o q precisa ainda e se precisa de algo :

    create or replace procedure prod4020_009(
    p_cd_pedido_cotacao in number,
    p_cd_versao_pedido_cotacao in number,
    p_mens in out varchar2
    );
    v_saida_anormal exception;

    cursor c1 is
    select b.cd_item_pedido_cotacao,
    c.cd_ramo_apolice_renovada,
    c.cd_local_apolice_renovada,
    c.cd_apolice_renovada,
    c.cd_item_apolice_renovada,
    c.id_tipo_seguro,
    c.cd_cia_seguradora,
    substr(lpad(c.nr_apolice_anterior,6,’0′),1,2) cd_local_apolice_congenere,
    substr(lpad(c.nr_apolice_anterior,6,’0′),3,2) cd_ramo_apolice_congenere,
    substr(lpad(c.nr_apolice_anterior,6,’0′),5,6) cd_apolice_congenere,
    c.nr_item_apolice_anterior cd_item_apolice_congenere
    from pedido_item_versao_cotacao a,
    pedido_item_cotacao b,
    pedido_item_cotacao_auto c
    where a.cd_pedido_cotacao = p_cd_pedido_cotacao
    and a.cd_versao_pedido_cotacao = p_cd_versao_pedido_cotacao
    and a.cd_pedido_cotacao = b.cd_pedido_cotacao
    and a.cd_item_pedido_cotacao = b.cd_item_pedido_cotacao
    and b.cd_pedido_cotacao = c.cd_pedido_cotacao
    and b.cd_item_pedido_cotacao = c.cd_item_pedido_cotacao;

    begin
    for r1 in c1 loop

                if r1.id_tipo_seguro =      'R'         and 
                r1.cd_local_apolice_renovada    is not    null  and  
                r1.cd_ramo_apolice_renovada     is not    null  and 
                r1.cd_apolice_renovada      is not    null  and 
                r1.cd_item_apolice_renovada     is not    null  then 
                -- 
                update   pedido_item_auto_antifurto c 
                set   dt_solicitacao_instalacao =   sysdate, 
                dt_envia_solicitacao        =   sysdate 
                where cd_pedido_cotacao     =       p_cd_pedido_cotacao 
                and cd_item_pedido_cotacao      =       r1.cd_item_pedido_cotacao 
                and dt_solicitacao_instalacao   is  null; 
                    -- 
                end   if; 
                -- 
                if r1.id_tipo_seguro =      'O'     and 
                r1.cd_cia_seguradora =      '5151'      then 
                -- 
                update  pedido_item_auto_antifurto c 
                set dt_solicitacao_instalacao   =   sysdate, 
                    dt_envia_solicitacao        =   sysdate 
                where   cd_pedido_cotacao       =       p_cd_pedido_cotacao 
                and cd_item_pedido_cotacao      =   r1.cd_item_pedido_cotacao 
                and dt_solicitacao_instalacao   is  null; 
                -- 
                end if; 
                -- 
            end loop;
    

    exception
    when others then
    p_mens := ‘PROD4020_009 – Erro ao ler APOLICE. Erro: ‘||sqlerrm;
    raise v_saida_anormal;
    end;