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
Pergunta
gramaral13
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
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.