在Oracle数据库中,我们经常需要编写PL/SQL脚本来执行动态SQL查询。这里我们简化了一个示例,用于动态查询特定月份下以特定模式命名的表,并输出查询到的记录数。
动态构建SQL并执行
使用循环来动态构建SQL语句,并执行查询以获取记录数
declare -- Local variables herest varchar2(4):='2024';months int :=1;tablename varchar2(100):='odspmart.T_AWT_EVT_TGPS';sqlstr varchar2(1000):='select /*parallel(32)*/ count(1) from ';exec_sql varchar2(1000):='';result_str varchar2(1000):='';
begin-- Test statements hereloopexec_sql:=sqlstr||tablename||'_'||st||to_char(months,'FM00')||'';dbms_output.put_line(exec_sql);execute immediate exec_sql into result_str ;dbms_output.put_line(st||to_char(months,'FM00')||','||result_str);months:=months+1;exit when months>5 ;end loop;
end;