Ir para conteúdo
Fórum Script Brasil
  • 0

Procedure Oracle


gramaral13

Pergunta

Boa tarde a todos, sou novato em procedure oracle e preciso da ajuda de vc´s para resolver um pequeno problema na procedure abaixo que quando e compilada da o seguinte erro:

Erro(67,34): PLS-00103: Encountered the symbol "end-of-file" when expecting one of the following: begin case declare end exception exit for goto if loop mod null pragma raise return select update while with <um identificador> <um identificador delimitado por aspas duplas> <uma variável de ligação> << close current delete fetch lock insert open rollback savepoint set sql execute commit forall merge pipe

Estou pesquisando mas ainda sem sucesso.

Aguardo ancioso por uma ajuda e desde já o meu muito obrigado.

create or replace

PROCEDURE AIP_CORRECAO_DIARIA_MAINFRAME

IS

erro_code INT;

erro_message VARCHAR(200);

BEGIN --inicio

DECLARE site_c varchar2(2);

order_id_c varchar2(10);

status_c varchar2(4);

--variaveis para separação do campo JOB_NAME

sistema varchar2(3);

operador varchar2(2);

etapa varchar2(8);

BEGIN --carga cursor

DECLARE CURSOR C_CORRECAO IS

--selecionar todos os dados da tabela

select * from F_DIARIA_MAINFRAME;

REG_CORRECAO C_CORRECAO%ROWTYPE;

BEGIN --percore cursor

OPEN C_CORRECAO;

LOOP

FETCH C_CORRECAO INTO REG_CORRECAO;

EXIT WHEN C_CORRECAO%NOTFOUND;

site_c := LENGTH(TRIM(C_CORRECAO.SITE));

operador_c := SUBSTR(C_CORRECAO.JOB_NAME,1,1);

sistema_c := SUBSTR(C_CORRECAO.JOB_NAME,2,3);

etapa_c := SUBSTR(C_CORRECAO.JOB_NAME,4,4);

order_id_c := SUBSTR(C_CORRECAO.ORDER_ID,5);

if C_CORRECAO.STATUS = 'ENDED "OK"' or C_CORRECAO.STATUS = 'ENDED "OK" , FORCED OK' or C_CORRECAO.STATUS = 'ENDED "OK" (DUMMY JOB)' then

status_c := 'C0000';

elsif SUBSTR(C_CORRECAO.STATUS,1,7) = 'ABENDED' then

status_c := SUBSTR(C_CORRECAO.STATUS,12,5);

elsif SUBSTR(C_CORRECAO.STATUS,1,11) = 'UNEXPLAINED' then

status_c := SUBSTR(C_CORRECAO.STATUS,23,4);

end if;

insert into F_TMP_DIARIA_MF(SITE, DT_DATE, HH_TIME, DT_ODATE, USER_ID, CODE, TYP, MEM_NAME, JOB_NAME, JOB_ID, ORDER_ID, STATUS)

values(site_c, C_CORRECAO.DT_DATE, C_CORRECAO.HH_TIME, C_CORRECAO.DT_ODATE, C_CORRECAO.USER_ID, C_CORRECAO.CODE, C_CORRECAO.TYP,

C_CORRECAO.MEM_NAME, C_CORRECAO.JOB_NAME, C_CORRECAO.JOB_ID, order_id_c, status_c);

commit;

insert into F_TMP_JOBNAME(SISTEMA, OPERADOR, ETAPA) values (sistema_c, operador_c, etapa_c);

commit;

END LOOP;

CLOSE C_CORRECAO;

END; --percore cursor

--END; --carga cursor

EXCEPTION

When others then

begin

--raise_application_error(-20001,'aaaaAn error was encountered - '||SQLCODE||' -ERROR- '||SQLERRM);

erro_code := SQLCODE;

erro_message := substr(SQLERRM, 1, 200);

rollback;

insert into registro_erro(erro_number, erro_message, local_erro, dt_data)

values(erro_code, erro_message, 'procedure limpa_carga',sysdate);

commit;

end;

commit;

END AIP_CORRECAO_DIARIA_MAINFRAME;

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...