Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Plsql ORA-06550:第1行第7列:PLS-00905:对象DMQ1STG.CPS\U计划\U设置\U过程无效_Plsql - Fatal编程技术网

Plsql ORA-06550:第1行第7列:PLS-00905:对象DMQ1STG.CPS\U计划\U设置\U过程无效

Plsql ORA-06550:第1行第7列:PLS-00905:对象DMQ1STG.CPS\U计划\U设置\U过程无效,plsql,Plsql,我试图执行此过程,但得到的错误对象无效 用户有足够的权限..请帮助 CREATE OR REPLACE PROCEDURE CPS_SCHEDULE_SETUP_PROCESS IS CURSOR cpsSCHEDULErecords IS SELECT * FROM cps_schedule_setup WHERE active = 'Yes' AND complete = 'No';--decode(recurring,'Yes',end

我试图执行此过程,但得到的错误对象无效 用户有足够的权限..请帮助

CREATE OR REPLACE PROCEDURE CPS_SCHEDULE_SETUP_PROCESS
IS
   CURSOR cpsSCHEDULErecords
   IS
      SELECT *
        FROM cps_schedule_setup
       WHERE active = 'Yes' AND complete = 'No';--decode(recurring,'Yes',end_date +  3 + 3.335/4, end_date +  1 + 3.335/4 ) <= sysdate and   end_date + 1 + 1/3 <= sysdate and  NVL(schedule_date,SYSDATE) <= sysdate;  

   nWorkList     INTEGER := 0;

   nSchedule     INTEGER := 0;

   dNewEndDT     DATE;

   dNewStartDT   DATE;
BEGIN
   FOR rec IN cpsSCHEDULErecords
   LOOP
      DBMS_OUTPUT.PUT_LINE (
            ' Processing - ClientNum: '
         || TO_CHAR (rec.CLIENT_NUM)
         || ' StartDT: '
         || TO_CHAR (rec.START_DATE)
         || ' EndDT: '
         || TO_CHAR (rec.END_DATE));

      IF rec.RESCHEDULE_DATE IS NULL
      THEN
         BEGIN
            CPS_OVERRIDE_UPDATE_SR_FACT (rec.CLIENT_NUM,
                                         'N',
                                         rec.START_DATE,
                                         rec.END_DATE);
         EXCEPTION
            WHEN OTHERS
            THEN
               DBMS_OUTPUT.PUT_LINE (
                  'Error:' || SQLCODE || ' Msg: ' || SQLERRM);
               RAISE;
         END;

         SELECT COUNT (*)
           INTO nWorkList
           FROM CPS_CONTENT_MASTER
          WHERE     CLIENT_NUM = rec.CLIENT_NUM
                AND AGREEMENT_NUM = rec.AGREEMENT_NUM
                AND START_DATE = rec.START_DATE
                AND END_DATE = rec.END_DATE;

         IF nWorkList = 0
         THEN
            INSERT INTO CPS_CONTENT_MASTER
                 VALUES (CPS_CONTENT_MASTER_SEQ.NEXTVAL,
                         rec.CLIENT_NUM,
                         rec.AGREEMENT_NUM,
                         rec.FREQUENCY,
                         rec.START_DATE,
                         rec.END_DATE,
                         'Inserting AUTHOR SAVE',
                         'AUTHOR SAVE',
                         SYSDATE,
                         'CPS proc',
                         rec.CONTENT_TYPE,
                         rec.LANG_ID);
         ELSE
            UPDATE CPS_CONTENT_MASTER
               SET STATUS = 'AUTHOR SAVE'
             WHERE     CLIENT_NUM = rec.CLIENT_NUM
                   AND AGREEMENT_NUM = rec.AGREEMENT_NUM
                   AND START_DATE = rec.START_DATE
                   AND END_DATE = rec.END_DATE;
         END IF;
      END IF;

      IF rec.RESCHEDULE_DATE IS NOT NULL
      THEN
         BEGIN
            SR_FACT_RESET (rec.CLIENT_NUM,
                           'Y',
                           rec.START_DATE,
                           rec.END_DATE);
         EXCEPTION
            WHEN OTHERS
            THEN
               DBMS_OUTPUT.PUT_LINE (
                  'Error:' || SQLCODE || ' Msg: ' || SQLERRM);

               RAISE;
         END;



         BEGIN
            CPS_SR_DETAIL_NULL (rec.CLIENT_NUM,
                                NULL,
                                rec.START_DATE,
                                rec.END_DATE);
         EXCEPTION
            WHEN OTHERS
            THEN
               DBMS_OUTPUT.PUT_LINE (
                  'Error:' || SQLCODE || ' Msg: ' || SQLERRM);

               EXIT;
         END;



         SELECT COUNT (*)
           INTO nWorkList
           FROM CPS_CONTENT_MASTER
          WHERE     CLIENT_NUM = rec.CLIENT_NUM
                AND AGREEMENT_NUM = rec.AGREEMENT_NUM
                AND START_DATE = rec.START_DATE
                AND END_DATE = rec.END_DATE;

         IF nWorkList = 0
         THEN
            INSERT INTO CPS_CONTENT_MASTER
                 VALUES (CPS_CONTENT_MASTER_SEQ.NEXTVAL,
                         rec.CLIENT_NUM,
                         rec.AGREEMENT_NUM,
                         rec.FREQUENCY,
                         rec.START_DATE,
                         rec.END_DATE,
                         'Inserting AUTHOR SAVE',
                         'AUTHOR SAVE',
                         SYSDATE,
                         'CPS proc',
                         rec.CONTENT_TYPE,
                         rec.LANG_ID);
         ELSE
            UPDATE CPS_CONTENT_MASTER
               SET STATUS = 'AUTHOR SAVE'
             WHERE     CLIENT_NUM = rec.CLIENT_NUM
                   AND AGREEMENT_NUM = rec.AGREEMENT_NUM
                   AND START_DATE = rec.START_DATE
                   AND END_DATE = rec.END_DATE;
         END IF;
      END IF;

      -- ADDED TO PROCESS CMR REPORTS

      BEGIN
         DBMS_OUTPUT.PUT_LINE ('Now Executing LOAD_MONTH_REPORT ..');

         LOAD_MONTH_REPORT (rec.CLIENT_NUM,
                            rec.AGREEMENT_NUM,
                            rec.START_DATE,
                            rec.END_DATE);

         DBMS_OUTPUT.PUT_LINE ('Now Executing LOAD_SR_AVAILABILITY_RPT ..');

         LOAD_SR_AVAILABILITY_RPT (rec.CLIENT_NUM,
                                   rec.AGREEMENT_NUM,
                                   rec.START_DATE,
                                   rec.END_DATE);

         DBMS_OUTPUT.PUT_LINE ('Now Executing LOAD_SR_CLOSE_RPT ..');

         LOAD_SR_CLOSE_RPT (rec.CLIENT_NUM,
                            rec.AGREEMENT_NUM,
                            rec.START_DATE,
                            rec.END_DATE);

         DBMS_OUTPUT.PUT_LINE ('Now Executing LOAD_SR_RESPONSE_RPT ..');

         LOAD_SR_RESPONSE_RPT (rec.CLIENT_NUM,
                               rec.AGREEMENT_NUM,
                               rec.START_DATE,
                               rec.END_DATE);
      EXCEPTION
         WHEN OTHERS
         THEN
            RAISE;
      END;

      -- END

      DBMS_OUTPUT.PUT_LINE (
         'Trying to UPDATE CPS_SCHEDULE_SETUP to COMPLETE ..');

      UPDATE CPS_SCHEDULE_SETUP
         SET COMPLETE = 'Yes', COMPLETED_DATE = SYSDATE
       WHERE SCHEDULE_ID = rec.SCHEDULE_ID;



      DBMS_OUTPUT.PUT_LINE ('Trying to handle RECURRING cases ..');


      IF rec.RECURRING = 'Yes'
      THEN
         dNewStartDT := rec.END_DATE + 1;

         IF rec.FREQUENCY = 'MONTHLY'
         THEN
            dNewEndDT := ADD_MONTHS (dNewStartDT, 1) - 1;
         ELSIF rec.FREQUENCY = 'QUARTERLY'
         THEN
            dNewEndDT := ADD_MONTHS ( (rec.END_DATE + 1), 3) - 1;
         ELSIF rec.FREQUENCY = 'WEEKLY'
         THEN
            dNewEndDT := dNewStartDT + 6;
         ELSE
            dNewEndDT := NULL;
         END IF;


         DBMS_OUTPUT.PUT_LINE ('NEW StartDT:' || TO_CHAR (dNewStartDT));

         DBMS_OUTPUT.PUT_LINE ('NEW EndDT:' || TO_CHAR (dNewEndDT));

         SELECT COUNT (*)
           INTO nSchedule
           FROM CPS_SCHEDULE_SETUP
          WHERE     CLIENT_NUM = rec.CLIENT_NUM
                AND AGREEMENT_NUM = rec.AGREEMENT_NUM
                AND START_DATE = dNewStartDT
                AND END_DATE = dNewEndDT;

         IF nSchedule > 0
         THEN
            NULL;
         ELSE
            INSERT INTO CPS_SCHEDULE_SETUP
                 VALUES (CPS_SCHEDULE_SETUP_SEQ.NEXTVAL,
                         rec.CLIENT_NUM,
                         rec.AGREEMENT_NUM,
                         dNewStartDT,
                         rec.FREQUENCY,
                         dNewEndDT,
                         rec.CONTENT_TYPE,
                         'Yes',
                         'No',
                         'Yes',
                         NULL,
                         NULL,
                         SYSDATE,
                         rec.LANG_ID);
         END IF;
      END IF;

      COMMIT;
   END LOOP;
-- close cpsSCHEDULErecords;

EXCEPTION
   WHEN OTHERS
   THEN
      ROLLBACK;

      DBMS_OUTPUT.PUT_LINE (
         'Error during CPS_SCHEDULE_SETUP_PROCESS execution ..');

      DBMS_OUTPUT.PUT_LINE (
         'Error Code:' || SQLCODE || '  Error Msg:' || SQLERRM);
END;
创建或替换程序CPS\u计划\u设置\u过程
是
游标CPSCHEDULERECORDS
是
挑选*
从cps\U计划\U设置

其中active='Yes'和complete='No'--解码(重复出现,“是”,结束日期+3+3.335/4,结束日期+1+3.335/4)ORA-06550
错误是一个通用的
PL/SQL
编译错误。该错误指向
PL/SQL
中发生语法错误的位置。请检查代码中的所有
对象是否
有效
,然后尝试
重新编译代码。从您的错误中,我可以看到对象
DMQ1STG.CPS\u SCHEDULE\u SETUP\u进程
无效

我已经为该过程创建了同义词,因为它在另一个模式中。请更新您的问题,而不是添加注释。添加一些描述并正确设置格式。@XING…感谢您的宝贵意见..我为对象cps_schedule_setup_process创建了同义词..现在该错误不会出现..但不同的错误23/34 PL/SQL:语句忽略23/34 PLS-00905:对象DMQ1STG.CPS_覆盖_更新_SR_事实无效62/34 PL/SQL:语句忽略62/34 PLS-00905:对象DMQ1STG.SR_事实_重置无效108/25 PL/SQL:语句忽略108/25 PLS-00201:标识符“加载月报告”必须声明108/25 PLS-00352:无法访问其他数据库“DATAMART.CORIO.COM”110/25 PL/SQL:语句忽略110/25 PLS-00201:标识符“加载可用性”必须声明为“110/25 PLS-00352:无法访问另一个数据库”DATAMART.CORIO.COM“112/25 PL/SQL:语句忽略112/25 PLS-00201:标识符“加载可用性”必须声明为“112/25 PLS-00352:无法访问”另一个数据库“DATAMART.CORIO.COM”114/25 PL/SQL:语句忽略114/25 PLS-00201:标识符“LOAD\u SR\u RESPONSE\u RPT”必须声明为114/25 PLS-00352:无法访问另一个数据库“DATAMART.CORIO.COM”,我可以看到
“LOAD\u SR\u CLOSE\u RPT”
CPS\u OVERRIDE\u UPDATE\u SR\u FACT
是在中使用的过程你的密码。请编译这些对象,因为它们处于无效状态。我更愿意说,您编译源架构中的所有对象,这样在编译时就不会出现无效对象@Xing的问题。我正在获取ORA-04021-超时发生错误