Jump to content
Fórum Script Brasil
  • 0

Procedure Oracle


gramaral13

Question

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 to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...