1. 程式人生 > >oracle 儲存過程 報 無效字元

oracle 儲存過程 報 無效字元

lv_sql:='
  insert into ETL_SUCESS_AMOUNT
  select SEQ_OS_ETL_AMOUNTID.NEXTVAL AS AMOUNTID,1,AMOUNT_DATA,AMOUNT_HOUR,
  serviceid,portalid,mouduleid,actionid,RESERVE1_ID,RESERVE2_ID,RESERVE3_ID,
 

  RESERVE4_ID,AMOUNT,AMOUNT_TIME
  from
  ( 
    select
    trunc(INSERTTIME) AS AMOUNT_DATA,
    TO_CHAR(INSERTTIME,''HH24'') AS AMOUNT_HOUR, 
    serviceid,portalid,mouduleid,actionid,
    NULL AS RESERVE1_ID,
    NULL AS RESERVE2_ID,
    NULL AS RESERVE3_ID,
    NULL AS RESERVE4_ID,
    count(*) AS AMOUNT,
    SYSDATE AS AMOUNT_TIME
    from '||lv_table_name||' 
    where inserttime > to_date(:1,''yyyy-mm-dd hh24:mi:ss'')
    and  inserttime < to_date(:2,''yyyy-mm-dd hh24:mi:ss'')
    group by trunc(INSERTTIME),TO_CHAR(INSERTTIME,''HH24''),serviceid,mouduleid,portalid,actionid
  )';
  execute immediate lv_sql USING p_sdate,p_edate;

-- 細節動態語句裡面不需要分號

--細節(''HH24'') 動態語句裡面單引號要雙寫

--細節 from '||lv_table_name||'  語句之間注意空格符號

--細節使用引數:1   USING p_sdate,p_edate;

在動態SQL中加個;號,呼叫函式時總是報無效字元,找了半天才發現原因o(╥﹏╥)o;