尝试使用数组调用Oracle MAIL_PKG并获取PLS-00201:必须声明标识符“MAIL_PKG.ARRAY”

时间:2016-09-27 06:21:02

标签: sql oracle plsql

我需要创建一个简单的PL / SQL程序:

a)从v $ session

获取db的当前活动会话数

b)将结果与平均活动会话基线进行比较(我通过每5分钟运行一次的简单作业收集user1架构表上的数据)

如果是> b然后应该将电子邮件发送到已定义的配方 - 我在schema1上的oracle上有一个完整的邮件包。但每当我尝试运行以下代码时:

 declare
  SESS_COUNT NUMBER;
  SESS_AVG NUMBER;
  SUB           VARCHAR2(500);
  BODY          VARCHAR2(500);
  INSTANCE_NAME VARCHAR(200);
  HOST_NAME     VARCHAR(500);

BEGIN
 SELECT COUNT(*)
 INTO SESS_COUNT
 FROM v$session
WHERE status='ACTIVE';

SELECT ROUND(AVG(SESS_COUNT)) 
INTO SESS_AVG 
FROM user1.SESS_ACTIVE;

IF SESS_COUNT > SESS_AVG 

  THEN
   SELECT INSTANCE_NAME INTO INSTANCE_NAME FROM V$INSTANCE;
    SELECT HOST_NAME INTO HOST_NAME FROM V$INSTANCE;
    SUB  := INSTANCE_NAME || '@' || HOST_NAME ||' - MAIL_TOPIC';
    BODY := 'MAIL_BODY:'|| SESS_COUNT;
    SCHEMA1.MAIL_PKG.SEND_MAIL(INSTANCE_NAME || '_'|| HOST_NAME||'@domain1', MAIL_PKG.ARRAY('user.123@net.ca'), SUB, BODY);
  END IF;
END;

我收到错误:

ORA-06550: line 26, column 79:
PLS-00201: identifier 'MAIL_PKG.ARRAY' must be declared

我会感激任何提示 - 我试图以各种方式宣布MAIL_PKG.ARRAYS,但没有任何作用。

0 个答案:

没有答案