oracle因为end太多,oracle程序错误PLS-00103遇到符号“END”[关闭]

我收到以下错误:

58/6 PLS-00103:遇到以下其中一项时遇到符号“END”:begin function pragma procedure子类型当前游标删除存在先于

任何人都知道我错过了什么?

CREATE OR REPLACE PROCEDURE VALIDATE_BI_JOB_COMPLETE_PROC AS

msg SYS.XMLTYPE;

msg_props DBMS_AQ.MESSAGE_PROPERTIES_T;

msg_id RAW(16);

queue_options DBMS_AQ.ENQUEUE_OPTIONS_T;

rec_count INTEGER;

/******************************************************************************

NAME: VALIDATE_BI_JOB_COMPLETE_PROC

*******************************************************************************

BEGIN

INSERT INTO JOB_LOG

(JOB_NAME, JOB_SEQUENCE, RUN_DATE, LINE_SEQ_NO, LOG_TXT)

VALUES

($$PLSQL_UNIT, 1, SYSDATE, 1, 'Job Started at ' || to_char(sysdate, 'MM/DD/YYYY HH:MI:SS'));

COMMIT;

rec_count := 0;

SELECT COUNT(*) INTO rec_count

FROM SCHEDULED_JOBS

WHERE JOB_NAME IN ('bi_get_transactional_data', 'bi_get_reference_data') AND

CURRENTLY_PROCESSING_FLG = 'Y';

IF rec_count > 0 THEN

BEGIN

DECLARE CURSOR email IS

SELECT EMAIL_ID

FROM ERROR_EMAIL_NOTIFICATION

WHERE ACTIVE = 'Y' AND

SEVERITY_CD = 'ERROR';

vFROM VARCHAR2(30) := 'WORK_SYSTEM@XXX.COM';

vTYPE VARCHAR2(30) := 'text/plain; charset=us-ascii';

msg_body VARCHAR2(4000) := 'BI jobs are still running, please investigate.

bi_get_transactional_data, bi_get_reference_data)';

crlf CONSTANT VARCHAR2(2):= CHR(13) || CHR(10);

FOR email_rec IN email

LOOP

utl_mail.send(vFROM, email_rec.EMAIL_ID, NULL, NULL, ora_database_name || ': ' ,

msg_body, vTYPE, NULL);

END LOOP;

END;

END IF;

INSERT INTO JOB_LOG

(JOB_NAME, JOB_SEQUENCE, RUN_DATE, LINE_SEQ_NO, LOG_TXT)

VALUES

($$PLSQL_UNIT, 2, SYSDATE, 1, 'Job Ended at ' || to_char(sysdate, 'MM/DD/YYYY HH:MI:SS') ||

'. Records sent to JSSO: ' || rec_processed);

COMMIT;

-- exception processing goes here

EXCEPTION

WHEN OTHERS THEN

LOG_ERROR(

p_APP_ID => 'ORACLE',

p_SEVERITY_CD => 'ERROR',

p_ROUTINE_NAME => $$PLSQL_UNIT,

p_BACKTRACE => DBMS_UTILITY.FORMAT_ERROR_BACKTRACE,

p_SQL_CODE => SQLCODE,

p_LOG_TXT => SQLERRM,

p_HOST_ID => SYS_CONTEXT('userenv', 'host'),

p_USER_ID => SYS_CONTEXT('userenv', 'session_user'),

p_SESSION_ID => SYS_CONTEXT('userenv', 'sid'));

INSERT INTO JOB_LOG

(JOB_NAME, JOB_SEQUENCE, RUN_DATE, LINE_SEQ_NO, LOG_TXT)

VALUES

($$PLSQL_UNIT, 2, SYSDATE, 1, 'Job ABENDED at ' || to_char(sysdate, 'MM/DD/YYYY

HH:MI:SS') || '. Error condtion.');

COMMIT;

END;

/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值