Oracle Some Examples
Материал из noname.com.ua
Версия от 08:30, 24 мая 2011; Sirmax (обсуждение | вклад) (Защищена страница «Oracle Some Examples» [edit=sysop:move=sysop])
Оракл - несколько примеров
dbms_output.put_line и execute immediate
begin execute immediate 'truncate table ERI_TMP_TEST2'; for c in (select table_name from all_tables where owner = 'PMMCOUNTER_DB' and table_name like 'ERI%\_W' escape '\') loop dbms_output.put_line ('INSERT INTO ERI_TMP_TEST2 select ' || 'min(PMM_DATESTAMP), '|| 'max(PMM_DATESTAMP),PMM_DATETIME, '''|| c.table_name || ''' from PMMCOUNTER_DB.' || c.table_name || ' GROUP BY PMM_DATETIME order by 3;'); execute immediate 'INSERT INTO ERI_TMP_TEST2 select ' ||'min(PMM_DATESTAMP), '|| 'max(PMM_DATESTAMP),PMM_DATETIME, '''|| c.table_name || ''' from PMMCOUNTER_DB.' || c.table_name || ' GROUP BY PMM_DATETIME order by 3'; end loop; end;
count alarms
declare start_time TIMESTAMP(3):= '2011-05-14 16:00'; stop_time TIMESTAMP(3):= '2011-05-14 20:00'; cur_time TIMESTAMP(3); next_time TIMESTAMP(3); co integer; interval_min INTERVAL DAY(3) TO SECOND(3):= '0 00:15:00'; begin cur_time:=start_time; WHILE cur_time < stop_time LOOP SELECT cur_time + interval_min INTO next_time FROM dual; select count(*) into co -- from history_db.new_hist_main where hism_datetime_up > cur_time and hism_datetime_up < next_time; from dynamic_db.new_alarm where alr_datetime_up > cur_time and alr_datetime_up < next_time and alr_logic_id like 'NSN%ROB%' ; --dbms_output.put_line('Time: from '||TO_CHAR(cur_time, 'dd-mm-yyyy hh24:mi') ||' to: '||TO_CHAR(next_time, 'dd-mm-yyyy hh24:mi')||' Count: '|| co); dbms_output.put_line(TO_CHAR(cur_time, 'dd-mm-yyyy hh24:mi') ||'-'||TO_CHAR(next_time, 'hh24:mi')||';'|| co); cur_time:=next_time; END LOOP; END;