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中用于插入数据、数据筛选及聚合的语法规则,详细介绍了如何通过动态参数执行SQL查询,实现对特定时间段内数据的高效处理。文章还特别强调了SQL表达式的正确书写习惯,包括日期格式转换、空值处理等关键点,旨在为数据分析师和开发者提供实用的数据处理技巧。
3467

被折叠的 条评论
为什么被折叠?



