Oralce我的隨筆

alter table dm_sa_baseinfo rename column  f_mse_name to  f_highway_name ;  --修改列名io

create table md_bas_section1 as select * from md_bas_section;   --Oracle中備份表table

/*Oracle sp_area存儲過程*/
CREATE OR REPLACE PROCEDURE sp_area()
  DECLARE 
  v_area int;
  v_height int := 2;
  v_width  int := 6;
  BEGIN
  v_area := v_height * v_width;
  DBMS_OUTPUT.PUT_LINE("v_area = " || v_area);
  END;
  /
 select

 
/*Oracle plscope_proc存儲過程*/
  CREATE OR REPLACE PROCEDURE plscope_proc
IS
  plscope_var1 NUMBER := 0;
BEGIN
  plscope_pkg.plscope_proc (TO_CHAR(plscope_var1));
  DBMS_OUTPUT.put_line(SYSDATE);
  plscope_var1 := 1;
  END plscope_proc1;
  /
 
 im

TYPE T_DATE IS VARRAY(4) OF VARCHAR2(20);
TYPE T_TIME IS VARRAY(6) OF VARCHAR2(20);
DATETIME VARCHAR2(40);
V_DATE T_DATE :=T_DATE('2014-07-01','2014-07-02');
V_TIME T_TIME :=T_TIME('12:00:00','00:00:00');
BEGINerror

DATETIME:=V_DATE(I)||''||V_TIME(J);
   FOR I IN 1..V_DATE.COUNT LOOP
   FOR J IN 1..V_TIME.COUNT LOOP
       DBMS_OUTPUT.PUT_LINE(DATETIME);
         END LOOP;
END;
/存儲過程


/*5分鐘預測*/
select v.F_TIME||':00',
       v.F_DIRECTIONNUM,
       v.MSE_CODE,
       v.F_VEHICLENUM REA,
       B.F_VFLOW_5 PRE,
       round((case
         when v.F_VEHICLENUM != 0 then
          (B.F_VFLOW_5 - v.F_VEHICLENUM) / v.F_VEHICLENUM
         else
          0
       end),4)*100||'%' error_rate,
       v.F_AVERAGESPEED as REA,
       B.F_AVERSPEED_5 PRE,
              round((case
         when   v.F_AVERAGESPEED!= 0 then
          ( B.F_AVERSPEED_5 -v.F_AVERAGESPEED) / v.F_AVERAGESPEED
         else
          0
       end),4)*100||'%' error_ratespeed,
       v.F_TIMEOCCUPANCYRATE REA,
       B.F_AVGSHARE_5
  from (select RI.F_MTID,
               RI.F_TIME,
               RI.F_DIRECTIONNUM,
               MSE.MSE_CODE,
               RI.F_VEHICLENUM,
               RI.F_AVERAGESPEED,
               RI.F_TIMEOCCUPANCYRATE
          from DM_REAL_VFLOW_SPSS RI
          left join DM_VIEW_BAS_MONITOR MO
            on MO.F_MTID = RI.F_MTID
           and MO.F_DIRECT = RI.F_DIRECTIONNUM
          left join MD_BAS_SECTION MSE
            on (MSE.UP_TRAFFIC_MONITOR = MO.SOR_CODE or
               MSE.DOWN_TRAFFIC_MONITOR = MO.SOR_CODE)
         where (MSE.MSE_CODE is not null)) V
  left join DM_MSE_VFLOW_PRED B
    on v.F_TIME||':00' = B.F_DATE
   and v.F_DIRECTIONNUM = B.F_DIRECT
   and v.MSE_CODE = to_char(B.MSE_CODE)
 where   F_DIRECT is not null  and f_time like '2014-06-30 12:00%' or f_time  like '2014-06-30 00:00' or f_time  like '2014-06-30 03:00'
  or f_time  like '2014-06-30 08:00' or f_time  like '2014-06-30 17'  or f_time  like  '2014-06-30 21:00' ORDER BY f_time ascscope

相關文章
相關標籤/搜索