declare
  v_time_table varchar2(50);
  sql_tmp_str  varchar2(5000);
begin
  v_time_table := 'newgansu.common_operation_it_view'||to_char(sysdate,'mm')||'@gs_wt t';
sql_tmp_str:='insert into common_operation_it_view(STATISTICAL_TIME,REGION_CODE,ACQUISITION_TIME,BIZ_TYPE,CHANNEL,TOTAL_COUNT,FAIL_COUNT)
select to_char(sysdate, ''yyyymmddhh24'')||''0000'' STATISTICAL_TIME,
       ''62'' REGION_CODE,
       ''60'' ACQUISITION_TIME,
       decode(t.FUNC_CODE, 10306, ''1011'', 10303, ''1013'', 1020502, ''1014'', ''1012'') BIZ_TYPE, 
       ''0101'' CHANNEL,             
       count(*) TOTAL_COUNT,
       count(*) - sum(t.IS_SUCCESS) FAIL_COUNT
  from '||v_time_table||'
  where t.OPT_TIME>=sysdate - 1 / 24
 group by decode(t.FUNC_CODE, 10306, ''1011'', 10303, ''1013'', 1020502, ''1014'', ''1012'')
union
select to_char(sysdate, ''yyyymmddhh24'')||''0000'' STATISTICAL_TIME,
       ''62'' REGION_CODE,
       ''60'' ACQUISITION_TIME,
       ''1011'' BIZ_TYPE, 
       ''0202'' CHANNEL,          
       0 TOTAL_COUNT,
       0 FAIL_COUNT
  from dual
union
select to_char(sysdate, ''yyyymmddhh24'')||''0000'' STATISTICAL_TIME,
       ''62'' REGION_CODE,
       ''60'' ACQUISITION_TIME,
       ''1013'' BIZ_TYPE,
       ''0202'' CHANNEL,          
       0 TOTAL_COUNT,
       0 FAIL_COUNT
  from dual
union
select to_char(sysdate, ''yyyymmddhh24'')||''0000'' STATISTICAL_TIME,
       ''62'' REGION_CODE,
       ''60'' ACQUISITION_TIME,
       ''1014"'' BIZ_TYPE,
       ''0202'' CHANNEL,          
       0 TOTAL_COUNT,
       0 FAIL_COUNT
  from dual
union
select to_char(sysdate, ''yyyymmddhh24'')||''0000'' STATISTICAL_TIME,
       ''62'' REGION_CODE,
       ''60'' ACQUISITION_TIME,
       ''1012'' BIZ_TYPE,
       ''0202'' CHANNEL,          
       0 TOTAL_COUNT,
       0 FAIL_COUNT
  from dual';
  execute immediate sql_tmp_str;
  commit;
end;
报错ora-01861:literal does not match format string
ora-06512:at line 53急求解决,运用execute immediate的时候变量中的字符串应该用2个单引号,还是别的什么。