在Oracle数据库中,我们经常需要编写PL/SQL脚本来执行动态SQL查询。这里我们简化了一个示例,用于动态查询特定月份下以特定模式命名的表,并输出查询到的记录数。
动态构建SQL并执行
使用循环来动态构建SQL语句,并执行查询以获取记录数
declare
-- Local variables here
st 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 here
loop
exec_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;