oracle 报psl-00103 错 请大神帮帮忙 跪求解决方法

oracle 报psl-00103 错 请大神帮帮忙 跪求CREATE OR REPLACE PROCEDURE RP_TRANSFER001PROC_GENERATE(p_pi

oracle 报psl-00103 错 请大神帮帮忙 跪求
CREATE OR REPLACE PROCEDURE RP_TRANSFER001PROC_GENERATE(p_pi_id NUMBER) IS

    /*   Alley init 20110315
       功能同调拨汇总报表一样

    */
    v_sql1      VARCHAR2(4000);
    v_sql2      VARCHAR2(4000);
    v_sql3      VARCHAR2(4000);
    v_sql4      VARCHAR2(4000);
    v_sql5      VARCHAR2(4000);
    v_date      VARCHAR2(80);
    v_datebegin VARCHAR2(8);
    v_dateend   VARCHAR2(8);

BEGIN

    -- raise_application_error(-20201, p_pi_id);24338
    DELETE FROM RP_TRANSFER001PROC a
    WHERE a.ad_pi_id = p_pi_id;
    COMMIT;

    --依次获取界面查询条件参数

    SELECT t.info
    INTO v_date
    FROM ad_pinstance_para t
    WHERE t.NAME = 'OUTINDATE' AND t.ad_pinstance_id = p_pi_id;

    IF instr(v_date, '<=') = 0 THEN
        SELECT substr(v_date, 22, 8), substr(v_date, 35, 8)
        INTO v_datebegin, v_dateend
        FROM dual;
    ELSE
        v_datebegin := 0;
        SELECT substr(TRIM(v_date), 13, 8)
        INTO v_dateend
        FROM dual;
    END IF;

    SELECT t.info
    INTO v_sql1
    FROM ad_pinstance_para t
    WHERE t.NAME = 'ORIGSTORE' AND t.ad_pinstance_id = p_pi_id;

    SELECT t.info
    INTO v_sql2
    FROM ad_pinstance_para t
    WHERE t.NAME = 'DESTSTORE' AND t.ad_pinstance_id = p_pi_id;

    SELECT t.info
    INTO v_sql3
    FROM ad_pinstance_para t
    WHERE t.NAME = 'PRODUCT' AND t.ad_pinstance_id = p_pi_id;

    SELECT t.info
    INTO v_sql4
    FROM ad_pinstance_para t
    WHERE t.NAME = 'ASI' AND t.ad_pinstance_id = p_pi_id;

    SELECT t.info
    INTO v_sql5
    FROM ad_pinstance_para t
    WHERE t.NAME = 'DOCNO' AND t.ad_pinstance_id = p_pi_id;
    --插入数据
    select to_char(OUTTIME,'yyyymmdd') into v_outtime from M_TRANSFER;
    select to_char(INTIME,'yyyymmdd') into v_INTIME from  M_TRANSFER;


    IF v_sql5 IS NOT NULL THEN
        EXECUTE IMMEDIATE ' INSERT INTO RP_TRANSFER001PROC
      (ID,AD_CLIENT_ID,AD_ORG_ID,OWNERID,MODIFIERID,CREATIONDATE,MODIFIEDDATE,ISACTIVE,
      changedate,DOCNO,c_Orig_Id,C_DEST_ID,DESCRIPTION,M_PRODUCT_ID,M_ATTRIBUTESETINSTANCE_ID,
         qty,QTYOUT,QTYIN,preqtyin,qtydiff,PRICELIST,TOT_AMTQTY_LIST,TOT_AMTOUT_LIST,TOT_AMTIN_LIST,
         TOT_AMTPREIN_LIST,TOT_AMTDIFF_LIST,m_product_alias_id,ACOST,percost,tot_amtqty_acost,
         tot_amtqty_percost,AD_PI_ID )
     select get_sequences(''RP_TRANSFER001PRO''),a.AD_CLIENT_ID,a.AD_ORG_ID,a.OWNERID,a.MODIFIERID,a.CREATIONDATE,a.MODIFIEDDATE,a.ISACTIVE,
      to_char(a.OUTTIME,'yyyymmdd') as changedate, a.DOCNO,a.c_Orig_Id,a.C_DEST_ID,a.DESCRIPTION,b.M_PRODUCT_ID,b.M_ATTRIBUTESETINSTANCE_ID,
       0 as qty, b.QTYOUT  QTYOUT ,0 as QTYIN,
            (case when a.in_status=1 then b.QTYOUT else 0 end)  preqtyin,0 as qtydiff,
              (select m.pricelist from m_product m where b.m_product_id=m.id) as PRICELIST,
              0 TOT_AMTQTY_LIST ,b.qtyout*(select m.pricelist from m_product m where b.m_product_id=m.id)  TOT_AMTOUT_LIST ,0 as TOT_AMTIN_LIST,
            (case when a.in_status=1 then b.qtyout*(select m.pricelist from m_product m where b.m_product_id=m.id) else 0 end) as TOT_AMTPREIN_LIST,0 as TOT_AMTDIFF_LIST,
           s.id as m_product_alias_id,
            (select m.acost from m_product m where m.id=b.m_product_id) as ACOST,0 as percost,
            (select m.acost from m_product m where m.id=b.m_product_id)*b.QTYOUT as tot_amtqty_acost,
            0 as tot_amtqty_percost,' || p_pi_id || '
      from M_TRANSFER a,M_TRANSFERITEM b ,m_product_alias s
            where a.ID=b.M_TRANSFER_ID
            and a.OUT_STATUS=2
            and b.m_product_id=s.m_product_id
            and b.m_attributesetinstance_id=s.m_attributesetinstance_id
            and a.OUTTIME between ' || v_datebegin || '
            and ' || v_dateend || '
            and a.c_orig_id in(' || v_sql1 || ')
            and a.c_dest_id in(' || v_sql2 || ')


            and b.m_product_id in(' || v_sql3 || ')
            and s.id in(' || v_sql4 || ')
            and ' || v_sql5 || '

     union all
    select get_sequences(''RP_TRANSFER001PROC''),a.AD_CLIENT_ID,a.AD_ORG_ID,a.OWNERID,a.MODIFIERID,a.CREATIONDATE,a.MODIFIEDDATE,a.ISACTIVE,
            to_char(a.INTIME,'yyyymmdd') as changedate,
            a.DOCNO,a.c_Orig_Id,a.C_DEST_ID,a.DESCRIPTION,b.M_PRODUCT_ID,
            b.M_ATTRIBUTESETINSTANCE_ID,0 AS  QTY,0 as QTYOUT,b.QTYIN,0 as preqtyin,(b.QTYOUT-b.QTYIN) as qtydiff,(select m.pricelist from m_product m where b.m_product_id=m.id) as PRICELIST,
            0 as TOT_AMTQTY_LIST, 0 as TOT_AMTOUT_LIST,b.qtyin*(select m.pricelist from m_product m where b.m_product_id=m.id)  TOT_AMTIN_LIST,0 as TOT_AMTPREIN_LIST,
            (b.qtyout-b.qtyin)*(select m.pricelist from m_product m where b.m_product_id=m.id(+)) as TOT_AMTDIFF_LIST,
           s.id as m_product_alias_id,
            (select m.acost from m_product m where m.id=b.m_product_id) as ACOST,
           0 as percost,
            0 as tot_amtqty_acost,0 as tot_amtqty_percost,' ||
                          p_pi_id || '
       from M_TRANSFER a,M_TRANSFERITEM b ,m_product_alias s
            where a.ID=b.M_TRANSFER_ID
            and a.IN_STATUS=2
             and b.m_product_id=s.m_product_id
            and b.m_attributesetinstance_id=s.m_attributesetinstance_id
             and a.INTIME between ' || v_datebegin || '
            and ' || v_dateend || '
            and a.c_orig_id in(' || v_sql1 || ')
            and a.c_dest_id in(' || v_sql2 || ')
            and b.m_product_id in(' || v_sql3 ||
                          ')
              and s.id in(' || v_sql4 || ')


              and ' || v_sql5 || '

       union all
       select get_sequences(''RP_TRANSFER001PROC''),a.AD_CLIENT_ID,a.AD_ORG_ID,a.OWNERID,a.MODIFIERID,a.CREATIONDATE,a.MODIFIEDDATE,a.ISACTIVE,
            a.billdate  as changedate,
            a.DOCNO,a.c_Orig_Id,a.C_DEST_ID,a.DESCRIPTION,b.M_PRODUCT_ID,
            b.M_ATTRIBUTESETINSTANCE_ID,b.qty as QTY,0 QTYOUT,0 QTYIN,0 as preqtyin,0 as qtydiff,(select m.pricelist from m_product m where b.m_product_id=m.id) as PRICELIST,
            b.qty*(select m.pricelist from m_product m where b.m_product_id=m.id) as TOT_AMTQTY_LIST, 0 as TOT_AMTOUT_LIST,0 TOT_AMTIN_LIST,0 as TOT_AMTPREIN_LIST,0 as TOT_AMTDIFF_LIST,
            s.id as m_product_alias_id,
            (select m.acost from m_product m where m.id=b.m_product_id) as ACOST,0 as percost,
            0 as tot_amtqty_acost,0 as tot_amtqty_percost,' || p_pi_id || '
      from M_TRANSFER a,M_TRANSFERITEM b,m_product_alias s
            where a.ID=b.M_TRANSFER_ID
            and a.STATUS=2
            and a.out_STATUS=1
            and b.m_product_id=s.m_product_id
            and b.m_attributesetinstance_id=s.m_attributesetinstance_id
            and a.billdate between ' || v_datebegin || '
            and ' || v_dateend || '
            and a.c_orig_id in(' || v_sql1 || ')
            and a.c_dest_id in(' || v_sql2 || ')
            and b.m_product_id in(' || v_sql3 || ')
            and s.id in(' || v_sql4 || ')
            and ' || v_sql5 || '';

    ELSE 
      EXECUTE IMMEDIATE ' INSERT INTO RP_TRANSFER001PROC
      (ID,AD_CLIENT_ID,AD_ORG_ID,OWNERID,MODIFIERID,CREATIONDATE,MODIFIEDDATE,ISACTIVE,
      changedate,DOCNO,c_Orig_Id,C_DEST_ID,DESCRIPTION,M_PRODUCT_ID,M_ATTRIBUTESETINSTANCE_ID,
         qty,QTYOUT,QTYIN,preqtyin,qtydiff,PRICELIST,TOT_AMTQTY_LIST,TOT_AMTOUT_LIST,TOT_AMTIN_LIST,
         TOT_AMTPREIN_LIST,TOT_AMTDIFF_LIST,m_product_alias_id,ACOST,percost,tot_amtqty_acost,


         tot_amtqty_percost,AD_PI_ID )
     select get_sequences(''RP_TRANSFER001PROC''),a.AD_CLIENT_ID,a.AD_ORG_ID,a.OWNERID,a.MODIFIERID,a.CREATIONDATE,a.MODIFIEDDATE,a.ISACTIVE,
      to_char(a.OUTTIME,'yyyymmdd') as changedate, a.DOCNO,a.c_Orig_Id,a.C_DEST_ID,a.DESCRIPTION,b.M_PRODUCT_ID,
            b.M_ATTRIBUTESETINSTANCE_ID, 0 as   qty, b.QTYOUT  QTYOUT ,0 as QTYIN,
            (case when a.in_status=1 then b.QTYOUT else 0 end)  preqtyin,0 as qtydiff,
              (select m.pricelist from m_product m where b.m_product_id=m.id) as PRICELIST,
              0 TOT_AMTQTY_LIST ,b.qtyout*(select m.pricelist from m_product m where b.m_product_id=m.id)  TOT_AMTOUT_LIST ,0 as TOT_AMTIN_LIST,
            (case when a.in_status=1 then b.qtyout*(select m.pricelist from m_product m where b.m_product_id=m.id) else 0 end) as TOT_AMTPREIN_LIST,0 as TOT_AMTDIFF_LIST,
           s.id as m_product_alias_id,
            (select m.acost from m_product m where m.id=b.m_product_id) as ACOST,
            0 as percost,
            (select m.acost from m_product m where m.id=b.m_product_id)*b.QTYOUT as tot_amtqty_acost,
            0 as tot_amtqty_percost,' || p_pi_id || '
      from M_TRANSFER a,M_TRANSFERITEM b ,m_product_alias s
            where a.ID=b.M_TRANSFER_ID
            and a.OUT_STATUS=2
             and b.m_product_id=s.m_product_id
            and b.m_attributesetinstance_id=s.m_attributesetinstance_id
            and a.OUTTIME between ' || v_datebegin || '
            and ' || v_dateend || '
            and a.c_orig_id in(' || v_sql1 || ')
            and a.c_dest_id in(' || v_sql2 || ')
            and b.m_product_id in(' || v_sql3 ||
                          ')
            and s.id in(' || v_sql4 || ')
     union all
   、


[最优解释]

                          p_pi_id 
[其他解释]
 select get_sequences(''RP_TRANSFER001PROC''),a.AD_CLIENT_ID,a.AD_ORG_ID,a.OWNERID,a.MODIFIERID,a.CREATIONDATE,a.MODIFIEDDATE,a.ISACTIVE,
            to_char(a.INTIME,'yyyymmdd') as changedate,
            a.DOCNO,a.c_Orig_Id,a.C_DEST_ID,a.DESCRIPTION,b.M_PRODUCT_ID,
            b.M_ATTRIBUTESETINSTANCE_ID,0 AS  QTY,0 as QTYOUT,b.QTYIN,0 as preqtyin,(b.QTYOUT-b.QTYIN) as qtydiff,(select m.pricelist from m_product m where b.m_product_id=m.id) as PRICELIST,
            0 as TOT_AMTQTY_LIST, 0 as TOT_AMTOUT_LIST,b.qtyin*(select m.pricelist from m_product m where b.m_product_id=m.id)  TOT_AMTIN_LIST,0 as TOT_AMTPREIN_LIST,
            (b.qtyout-b.qtyin)*(select m.pricelist from m_product m where b.m_product_id=m.id(+)) as TOT_AMTDIFF_LIST,
           s.id as m_product_alias_id,
            (select m.acost from m_product m where m.id=b.m_product_id) as ACOST,
            0 as percost,
            0 as tot_amtqty_acost,0 as tot_amtqty_percost,' 
[其他解释]
 '
       from M_TRANSFER a,M_TRANSFERITEM b ,m_product_alias s
            where a.ID=b.M_TRANSFER_ID
            and a.IN_STATUS=2
             and b.m_product_id=s.m_product_id
            and b.m_attributesetinstance_id=s.m_attributesetinstance_id
             and a.INTIME between '