清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>
CREATE OR REPLACE PROCEDURE sp_trafficdata_to_realvflow is v_lst_time DATE; v_lst_max DATE; v_tot_time DATE; v_tot_max VARCHAR2(32); BEGIN SELECT MAX(RECORD_TIME) INTO v_lst_max FROM DM_VFLW_LST; IF v_lst_max IS NULL THEN RETURN; END IF; SELECT NVL(MAX(F_TIME), '2000-01-01 00:00:00') INTO v_tot_max FROM DM_REAL_VFLOW; v_lst_time := TRUNC(v_lst_max - 1 / 24 / 60, 'MI'); v_tot_time := TRUNC(TO_DATE(v_tot_max, 'YYYY-MM-DD HH24:MI:SS') + 1 / 24 / 60, 'MI'); IF v_lst_time < v_tot_time THEN RETURN; END IF; INSERT INTO DM_REAL_VFLOW (F_MTID, F_EQUIPNUM, F_MSE_ID, F_VEHICLETYPE, F_TIME, F_DIRECTIONNUM, F_VEHICLENUM, F_AVERAGESPEED) SELECT V.F_MTID, V.F_EQUIPNUM, V.F_MSE_ID, (SELECT M.F_MAPKEY FROM DM_BAS_MAP M WHERE M.F_MAPVALUE = '小型车'), TO_CHAR(V.RECORD_TIME, 'YYYY-MM-DD HH24:MI:SS'), V.DIRECTION, V.SMALL_VEHICLE, V.SMALL_VEHICLE_SPEED FROM DM_VFLW_LST V WHERE TRUNC(V.RECORD_TIME, 'MI') >= v_tot_time AND TRUNC(V.RECORD_TIME, 'MI') <= v_lst_time; INSERT INTO DM_REAL_VFLOW (F_MTID, F_EQUIPNUM, F_MSE_ID, F_VEHICLETYPE, F_TIME, F_DIRECTIONNUM, F_VEHICLENUM, F_AVERAGESPEED) SELECT V.F_MTID, V.F_EQUIPNUM, V.F_MSE_ID, (SELECT M.F_MAPKEY FROM DM_BAS_MAP M WHERE M.F_MAPVALUE = '中型车'), TO_CHAR(V.RECORD_TIME, 'YYYY-MM-DD HH24:MI:SS'), V.DIRECTION, V.SMALL_VEHICLE, V.SMALL_VEHICLE_SPEED FROM DM_VFLW_LST V WHERE TRUNC(V.RECORD_TIME, 'MI') >= v_tot_time AND TRUNC(V.RECORD_TIME, 'MI') <= v_lst_time; INSERT INTO DM_REAL_VFLOW (F_MTID, F_EQUIPNUM, F_MSE_ID, F_VEHICLETYPE, F_TIME, F_DIRECTIONNUM, F_VEHICLENUM, F_AVERAGESPEED) SELECT V.F_MTID, V.F_EQUIPNUM, V.F_MSE_ID, (SELECT M.F_MAPKEY FROM DM_BAS_MAP M WHERE M.F_MAPVALUE = '大型车'), TO_CHAR(V.RECORD_TIME, 'YYYY-MM-DD HH24:MI:SS'), V.DIRECTION, V.SMALL_VEHICLE, V.SMALL_VEHICLE_SPEED FROM DM_VFLW_LST V WHERE TRUNC(V.RECORD_TIME, 'MI') >= v_tot_time AND TRUNC(V.RECORD_TIME, 'MI') <= v_lst_time; INSERT INTO DM_REAL_VFLOW (F_MTID, F_EQUIPNUM, F_MSE_ID, F_VEHICLETYPE, F_TIME, F_DIRECTIONNUM, F_VEHICLENUM, F_AVERAGESPEED) SELECT V.F_MTID, V.F_EQUIPNUM, V.F_MSE_ID, (SELECT M.F_MAPKEY FROM DM_BAS_MAP M WHERE M.F_MAPVALUE = '特大型车'), TO_CHAR(V.RECORD_TIME, 'YYYY-MM-DD HH24:MI:SS'), V.DIRECTION, V.SMALL_VEHICLE, V.SMALL_VEHICLE_SPEED FROM DM_VFLW_LST V WHERE TRUNC(V.RECORD_TIME, 'MI') >= v_tot_time AND TRUNC(V.RECORD_TIME, 'MI') <= v_lst_time; INSERT INTO DM_REAL_VFLOW (F_MTID, F_EQUIPNUM, F_MSE_ID, F_VEHICLETYPE, F_TIME, F_DIRECTIONNUM, F_VEHICLENUM, F_AVERAGESPEED) SELECT V.F_MTID, V.F_EQUIPNUM, V.F_MSE_ID, (SELECT M.F_MAPKEY FROM DM_BAS_MAP M WHERE M.F_MAPVALUE = '中小客车'), TO_CHAR(V.RECORD_TIME, 'YYYY-MM-DD HH24:MI:SS'), V.DIRECTION, V.SMALL_VEHICLE, V.SMALL_VEHICLE_SPEED FROM DM_VFLW_LST V WHERE TRUNC(V.RECORD_TIME, 'MI') >= v_tot_time AND TRUNC(V.RECORD_TIME, 'MI') <= v_lst_time; INSERT INTO DM_REAL_VFLOW (F_MTID, F_EQUIPNUM, F_MSE_ID, F_VEHICLETYPE, F_TIME, F_DIRECTIONNUM, F_VEHICLENUM, F_AVERAGESPEED) SELECT V.F_MTID, V.F_EQUIPNUM, V.F_MSE_ID, (SELECT M.F_MAPKEY FROM DM_BAS_MAP M WHERE M.F_MAPVALUE = '大客车'), TO_CHAR(V.RECORD_TIME, 'YYYY-MM-DD HH24:MI:SS'), V.DIRECTION, V.SMALL_VEHICLE, V.SMALL_VEHICLE_SPEED FROM DM_VFLW_LST V WHERE TRUNC(V.RECORD_TIME, 'MI') >= v_tot_time AND TRUNC(V.RECORD_TIME, 'MI') <= v_lst_time; INSERT INTO DM_REAL_VFLOW (F_MTID, F_EQUIPNUM, F_MSE_ID, F_VEHICLETYPE, F_TIME, F_DIRECTIONNUM, F_VEHICLENUM, F_AVERAGESPEED) SELECT V.F_MTID, V.F_EQUIPNUM, V.F_MSE_ID, (SELECT M.F_MAPKEY FROM DM_BAS_MAP M WHERE M.F_MAPVALUE = '小型货车'), TO_CHAR(V.RECORD_TIME, 'YYYY-MM-DD HH24:MI:SS'), V.DIRECTION, V.SMALL_VEHICLE, V.SMALL_VEHICLE_SPEED FROM DM_VFLW_LST V WHERE TRUNC(V.RECORD_TIME, 'MI') >= v_tot_time AND TRUNC(V.RECORD_TIME, 'MI') <= v_lst_time; INSERT INTO DM_REAL_VFLOW (F_MTID, F_EQUIPNUM, F_MSE_ID, F_VEHICLETYPE, F_TIME, F_DIRECTIONNUM, F_VEHICLENUM, F_AVERAGESPEED) SELECT V.F_MTID, V.F_EQUIPNUM, V.F_MSE_ID, (SELECT M.F_MAPKEY FROM DM_BAS_MAP M WHERE M.F_MAPVALUE = '中型货车'), TO_CHAR(V.RECORD_TIME, 'YYYY-MM-DD HH24:MI:SS'), V.DIRECTION, V.SMALL_VEHICLE, V.SMALL_VEHICLE_SPEED FROM DM_VFLW_LST V WHERE TRUNC(V.RECORD_TIME, 'MI') >= v_tot_time AND TRUNC(V.RECORD_TIME, 'MI') <= v_lst_time; INSERT INTO DM_REAL_VFLOW (F_MTID, F_EQUIPNUM, F_MSE_ID, F_VEHICLETYPE, F_TIME, F_DIRECTIONNUM, F_VEHICLENUM, F_AVERAGESPEED) SELECT V.F_MTID, V.F_EQUIPNUM, V.F_MSE_ID, (SELECT M.F_MAPKEY FROM DM_BAS_MAP M WHERE M.F_MAPVALUE = '大型货车'), TO_CHAR(V.RECORD_TIME, 'YYYY-MM-DD HH24:MI:SS'), V.DIRECTION, V.SMALL_VEHICLE, V.SMALL_VEHICLE_SPEED FROM DM_VFLW_LST V WHERE TRUNC(V.RECORD_TIME, 'MI') >= v_tot_time AND TRUNC(V.RECORD_TIME, 'MI') <= v_lst_time; INSERT INTO DM_REAL_VFLOW (F_MTID, F_EQUIPNUM, F_MSE_ID, F_VEHICLETYPE, F_TIME, F_DIRECTIONNUM, F_VEHICLENUM, F_AVERAGESPEED) SELECT V.F_MTID, V.F_EQUIPNUM, V.F_MSE_ID, (SELECT M.F_MAPKEY FROM DM_BAS_MAP M WHERE M.F_MAPVALUE = '特大型货车'), TO_CHAR(V.RECORD_TIME, 'YYYY-MM-DD HH24:MI:SS'), V.DIRECTION, V.SMALL_VEHICLE, V.SMALL_VEHICLE_SPEED FROM DM_VFLW_LST V WHERE TRUNC(V.RECORD_TIME, 'MI') >= v_tot_time AND TRUNC(V.RECORD_TIME, 'MI') <= v_lst_time; INSERT INTO DM_REAL_VFLOW (F_MTID, F_EQUIPNUM, F_MSE_ID, F_VEHICLETYPE, F_TIME, F_DIRECTIONNUM, F_VEHICLENUM, F_AVERAGESPEED) SELECT V.F_MTID, V.F_EQUIPNUM, V.F_MSE_ID, (SELECT M.F_MAPKEY FROM DM_BAS_MAP M WHERE M.F_MAPVALUE = '集装箱车'), TO_CHAR(V.RECORD_TIME, 'YYYY-MM-DD HH24:MI:SS'), V.DIRECTION, V.SMALL_VEHICLE, V.SMALL_VEHICLE_SPEED FROM DM_VFLW_LST V WHERE TRUNC(V.RECORD_TIME, 'MI') >= v_tot_time AND TRUNC(V.RECORD_TIME, 'MI') <= v_lst_time; COMMIT; END sp_trafficdata_to_realvflow;