存储过程报错
CREATE OR REPLACE PROCEDURE NEW_PRO_CRECT(SUNITCODE   IN CHAR,
                                          SPOLICYNO   IN CHAR,
                                          SDAMAGEDATE IN CHAR,
                                          SCOUNTS     OUT INTEGER) AS
   TEMP   INTEGER;
   COUNTS INTEGER;
   ADDSDATE DATE;
   ADDEDATE DATE;
   SDATE DATE;
   EDATE DATE;
BEGIN
   SELECT B.IFEXPANDTIME,B.ADDSTARTDATE,B.ADDENDDATE,A.STARTDATE,A.ENDDATE   ---此行报错
          INTO COUNTS,ADDSDATE,ADDEDATE,SDATE,EDATE
     FROM P_PUBLIC_POLICY A,P_CONSTRUCT B
    WHERE A.ENDDATE IS NOT NULL
      AND A.APPLYNO=B.APPLYNO
      AND A.UNITCODE=B.UNITCODE
      AND A.APPLYENDORSENO=B.APPLYENDORSENO
      AND A.STATUS = '3'
      AND A.GENERATEORDER =
          (SELECT MIN(D.GENERATEORDER)
             FROM P_PUBLIC_POLICY D
            WHERE D.UNITCODE = A.UNITCODE
              AND D.APPLYNO = A.APPLYNO
              AND D.EFFECTDATE <= TO_DATE(SDAMAGEDATE, 'YYYY-MM-DD')
              AND (D.STATUS || D.AUDITSTATUS != '07' AND
                  D.STATUS || D.AUDITSTATUS != '08' AND
                  D.STATUS || D.AUDITSTATUS != '50' AND
                  D.STATUS || D.AUDITSTATUS != '55' AND
                  D.STATUS || D.AUDITSTATUS != '40')
              AND GENERATEORDER >= 0)
      AND A.EFFECTDATE <= TO_DATE(SDAMAGEDATE, 'YYYY-MM-DD')
      AND A.UNITCODE = SUNITCODE
      AND A.POLICYNO = SPOLICYNO;
   IF (COUNTS = 0) THEN    ---- 当扩展保证期为否按照其他险种的控制
     SELECT COUNT(*)
       INTO TEMP
       FROM P_PUBLIC_POLICY A
      WHERE A.STARTDATE <= TO_DATE(SDAMAGEDATE, 'YYYY-MM-DD')
        AND A.ENDDATE >= TO_DATE(SDAMAGEDATE, 'YYYY-MM-DD')
        AND A.STATUS = '3'
        AND A.GENERATEORDER =
            (SELECT MIN(D.GENERATEORDER)
               FROM P_PUBLIC_POLICY D
              WHERE D.UNITCODE = A.UNITCODE
                AND D.APPLYNO = A.APPLYNO
                AND D.EFFECTDATE <= TO_DATE(SDAMAGEDATE, 'YYYY-MM-DD')
                AND (D.STATUS || D.AUDITSTATUS != '07' AND
                    D.STATUS || D.AUDITSTATUS != '08' AND
                    D.STATUS || D.AUDITSTATUS != '50' AND
                    D.STATUS || D.AUDITSTATUS != '55' AND
                    D.STATUS || D.AUDITSTATUS != '40')
                AND GENERATEORDER >= 0)
        AND A.EFFECTDATE <= TO_DATE(SDAMAGEDATE, 'YYYY-MM-DD')
        AND A.UNITCODE = SUNITCODE
        AND A.POLICYNO = SPOLICYNO;
   ELSIF(COUNTS = 1 and ADDSDATE<SDATE and ADDEDATE<EDATE) THEN    ----
     SELECT COUNT(*)
       INTO TEMP
       FROM P_PUBLIC_POLICY A,P_CONSTRUCT B
      WHERE B.ADDSTARTDATE <= TO_DATE(SDAMAGEDATE, 'YYYY-MM-DD')
        AND A.ENDDATE >= TO_DATE(SDAMAGEDATE, 'YYYY-MM-DD')
        AND A.STATUS = '3'
        AND A.GENERATEORDER =
            (SELECT MIN(D.GENERATEORDER)
               FROM P_PUBLIC_POLICY D
              WHERE D.UNITCODE = A.UNITCODE
                AND D.APPLYNO = A.APPLYNO
                AND D.EFFECTDATE <= TO_DATE(SDAMAGEDATE, 'YYYY-MM-DD')
                AND (D.STATUS || D.AUDITSTATUS != '07' AND
                    D.STATUS || D.AUDITSTATUS != '08' AND
                    D.STATUS || D.AUDITSTATUS != '50' AND
                    D.STATUS || D.AUDITSTATUS != '55' AND