sqlserver stored procedure to create and invoke java

Create a stored procedure

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 call

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(newDate () + ", hebeiDataJob, the hour city HB, the value returned is stored procedure:" + TestPrint); 
                
                
                
                // batch loading is completed, the database connection is closed 
                JDBCUtilSingle.getInitJDBCUtil () closeConnection (pst, conn );.

 

Guess you like

Origin www.cnblogs.com/tiandi/p/12032357.html