創建存儲過程
CREATE procedure [dbo].[getdata_monitor_city_hour_hb] @aaa varchar(50), @test varchar(50) OUT as begin SET @test = '失敗'; if not exists(select DATETIME FROM monitor_city_hour where city like 'hb%' and DATETIME =(select max(DATETIME) from monitor_site_hour where city like 'hb%')) begin insert into monitor_city_hour(DATETIME,so2,no2,pm10,co,o3_1,o3_8,pm25,city) SELECT DATETIME ,round(avg(cast([so2] as float)),0) so2 ,round(avg(cast([no2] as float)),0) no2 ,round(avg(cast([pm10] as float)),0) pm10 ,round(avg(cast([co] as float)),3) co ,round(avg(cast([o3_1] as float)),0) o3_1 ,round(avg(cast([o3_8] as float)),0) o3_8 ,round(avg(cast([pm25] as float)),0) pm25 ,[city] FROM monitor_site_hour where DATETIME=(select max(DATETIME) from monitor_site_hour where city like 'hb%') and city like 'hb%' and so2!='—' and no2!='—'and pm10!='—'and co!='—' and o3_1!='—' and o3_8!='—' and pm25!='—' group by DATETIME,city; SET @test ='成功'; end end ;
JAVA調用
Connection conn=JDBCUtilSingle.getInitJDBCUtil().getConnection(); conn.setAutoCommit(true); PreparedStatement pst = null; //執行存儲過程 CallableStatement proc=conn.prepareCall("{call getdata_monitor_city_hour_hb(?,?)}"); proc.setString(1, "aa"); proc.registerOutParameter(2, Types.VARCHAR); proc.execute(); String testPrint = proc.getString(2); System.out.println(new Date()+",hebeiDataJob,hb城市小時值,存儲過程返回的值是:"+testPrint); // 批量入庫完成,數據庫連接關閉 JDBCUtilSingle.getInitJDBCUtil().closeConnection(pst, conn);