创建存储过程
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);