作成したJava呼び出すためにSQLServerのストアドプロシージャ

ストアドプロシージャを作成します。

CREATE   手順を [ DBO ]getdata_monitor_city_hour_hb ]  
@aaa  VARCHAR50 )、   
 @Test  VARCHAR50 )OUT
 として 
開始

SETを @Test  =  ' 失败' 

もし ない 存在選択 DATETIMEを FROM monitor_city_hour どこの都市のような HB%  DATETIME  =選択 最大DATETIMEから monitor_site_hour ここ都市など ' HB%' ))
 開始
インサート  monitor_city_hour(DATETIME 、SO 2、NO 2、PM10、CO、o3_1、o3_8、PM25、都市)
 SELECT  DATETIME ラウンド平均キャスト[ SO 2 ]  のように フロート))、0 )SO 2 ラウンド平均キャスト[ NO 2 ]  のように フロート))、0)NO 2 ラウンド平均キャスト[ PM10 ]  として フロート))、0 )PM10 ラウンド平均キャスト[ CO ]  として フロート))、3 )CO ラウンド平均キャスト[ o3_1 ]  として フロート))、0 )o3_1 ラウンド平均キャストo3_8 ]  として フロート))、0 )o3_8 ラウンド平均キャスト[ PM25 ]  として フロート))、0 )PM25 [ 都市] 
  FROM monitor_site_hour
   DATETIME =セレクトマックスDATETIMEから monitor_site_hour ここ都市など' HB%" 都市のような    ' HB%' 
   SO2 =!' - '   NO2 =!' - '  PM10 != ' - ' 共同=!' - ' 
   o3_1 =!' - '   o3_8 =!' - '   PM25 =!' - ' 
  グループ によって DATETIME 、都市;
  SET  @Test  = ' 成功';
  エンド・

エンド

JAVAコール

接続CONN = 。JDBCUtilSingle.getInitJDBCUtil()のgetConnection(); 
                conn.setAutoCommit(真の); 
                PreparedStatementのPST = nullを
                
                // 执行存储过程 
                のCallableStatement PROC = conn.prepareCall( "{コールgetdata_monitor_city_hour_hb(、)?}" )。
                proc.setString( 1、 "AA" )。  
                proc.registerOutParameter( 2 、のTypes.VARCHAR)。  
                proc.execute();  
                ストリングtestPrint = proc.getString(2 )。  
                System.out.printlnは(日付()+ "hebeiDataJob、時間都市HB、値が返さ手順格納され:" + TestPrintを); 
                
                
                
                // バッチローディングが完了し、データベース接続が閉じられ 
                JDBCUtilSingle.getInitJDBCUtil()closeConnection(PST、CONN );.

 

おすすめ

転載: www.cnblogs.com/tiandi/p/12032357.html