1. 程式人生 > >pl/sql建立並使用儲存過程

pl/sql建立並使用儲存過程

實現功能——從其他表中統計資料後,插入到另一張表by_train_count中:

參考連結:http://wzhiju.iteye.com/blog/1123157

create or replace procedure up_insert_by_train_count
is
     yzTotal number;--郵政車
     zbTotal number;--企業自備車
     gTdTTotal number;--無代管關係的國鐵、地鐵
     zycTotal number;--專運處客車
     dpsTotal  number;--待配屬客車
     tkyTotal number;--鐵科院客車
     dcTotal number;--DC600V客車
     acTotal number;--AC380V客車
     dcbTotal number;--DC48V客車
     countTotal number;--保有量總計
begin
     delete from by_train_count;  


     select count(*) into yzTotal FROM DB_traininfo
     where buy_type_id ='04' and kmis.PKG_TRAIN.UF_ISVALID_PS(T_ID) = '1';
     insert into by_train_count(c_id,type_id,type_name,train_num,STATISTICS_DATE) 
     values(1,'01','郵政車',yzTotal,to_date('2016-04-01','yyyy-MM-dd'));
     
     select count(*) into zbTotal FROM DB_traininfo
     where buy_type_id ='05' and kmis.PKG_TRAIN.UF_ISVALID_PS(T_ID) = '1';
     insert into by_train_count(c_id,type_id,type_name,train_num,STATISTICS_DATE) 
     values(2,'02','企業自備車',zbTotal,to_date('2016-04-01','yyyy-MM-dd'));
     
     select count(*) into gTdTTotal from DB_TRAININFO_STATIC_BYL_t 
     where is_dg='0' and (t_ps='01' or t_ps='02')
     and STATISTICS_DATE = to_date('2016-04-01','yyyy-MM-dd');
     insert into by_train_count(c_id,type_id,type_name,train_num,STATISTICS_DATE) 
     values(3,'03','無代管關係的國鐵、地鐵',gTdTTotal,to_date('2016-04-01','yyyy-MM-dd'));
     
     
     select count(*) into zycTotal from DB_TRAININFO_STATIC_BYL_t 
     where station_id='00ZYC' and STATISTICS_DATE = to_date('2016-04-01','yyyy-MM-dd');
     insert into by_train_count(c_id,type_id,type_name,train_num,STATISTICS_DATE) 
     values(4,'04','專運處客車',zycTotal,to_date('2016-04-01','yyyy-MM-dd'));
     
     select count(*) into dpsTotal from DB_TRAININFO_STATIC_BYL_t 
     where station_id='000J0' and STATISTICS_DATE = to_date('2016-04-01','yyyy-MM-dd');
     insert into by_train_count(c_id,type_id,type_name,train_num,STATISTICS_DATE) 
     values(5,'05','待配屬客車',dpsTotal,to_date('2016-04-01','yyyy-MM-dd'));
     
     
     select count(*) into tkyTotal from DB_TRAININFO_STATIC_BYL_t 
     where station_id='00TKY' and STATISTICS_DATE = to_date('2016-04-01','yyyy-MM-dd');
     insert into by_train_count(c_id,type_id,type_name,train_num,STATISTICS_DATE) 
     values(6,'06','鐵科院客車',tkyTotal,to_date('2016-04-01','yyyy-MM-dd'));
     
     
      select count(*) into dcTotal from DB_TRAININFO_STATIC_BYL_t where power_volt_kind='08'
       and station_id in('000J1','000J2','000J3','000J4','000J5','000J6','000J7','000J8','000J9',
       '00J10','00J11','00J12','00J13','00J14','00J15','00J18','00J19','00J20')
       and STATISTICS_DATE = to_date('2016-04-01','yyyy-MM-dd');
     insert into by_train_count(c_id,type_id,type_name,train_num,STATISTICS_DATE) 
     values(7,'07','DC600V客車',dcTotal,to_date('2016-04-01','yyyy-MM-dd'));
     
     select count(*) into acTotal from DB_TRAININFO_STATIC_BYL_t where power_volt_kind='05'
       and station_id in('000J1','000J2','000J3','000J4','000J5','000J6','000J7','000J8','000J9',
       '00J10','00J11','00J12','00J13','00J14','00J15','00J18','00J19','00J20')
       and STATISTICS_DATE = to_date('2016-04-01','yyyy-MM-dd');
     insert into by_train_count(c_id,type_id,type_name,train_num,STATISTICS_DATE) 
     values(8,'08','AC380V客車',acTotal,to_date('2016-04-01','yyyy-MM-dd'));


     select count(*) into dcbTotal from DB_TRAININFO_STATIC_BYL_t where power_volt_kind='01'
       and station_id in('000J1','000J2','000J3','000J4','000J5','000J6','000J7','000J8','000J9',
       '00J10','00J11','00J12','00J13','00J14','00J15','00J18','00J19','00J20')
       and STATISTICS_DATE = to_date('2016-04-01','yyyy-MM-dd');
     insert into by_train_count(c_id,type_id,type_name,train_num,STATISTICS_DATE) 
     values(09,'09','DC48V客車',dcbTotal,to_date('2016-04-01','yyyy-MM-dd'));
     
     select count(*) into countTotal from DB_TRAININFO_STATIC_BYL_t
     where STATISTICS_DATE = to_date('2016-04-01','yyyy-MM-dd');
     insert into by_train_count(c_id,type_id,type_name,train_num,STATISTICS_DATE) 
     values(10,'10','保有量總計',countTotal,to_date('2016-04-01','yyyy-MM-dd'));
     
     commit;
end up_insert_by_train_count;