2012-12-20 76 views
0

我有一個PreparedStatement和CallableStatement:我可以在同一個語句中執行查詢和sql函數嗎?

String sql = "INSERT INTO parcels (cadastr,the_geom,status_id) VALUES(?,PolygonFromText(?, 4326),?)"; 
PreparedStatement stmt = ce.prepareStatement(sql); 
stmt.setString(1, ts.getPackage().getSpecifyParcels().getExistParcel() 
     .get(0).getCadastralNumber()); 
stmt.setString(2, WKT); 
// stmt.setString(3, deleted); 
stmt.setInt(3, status_id); 
stmt.execute(); 
stmt.close(); 

java.sql.CallableStatement proc1 = ce 
     .prepareCall("{call insert_into_wgs()}"); 
proc1.execute(); 
proc1.close(); 

它可能在一個聲明中執行這個查詢和功能insert_into_wgs()

回答

1

使用returning關鍵字!

INSERT INTO parcels (cadastr,the_geom,status_id) 
VALUES (?, PolygonFromText(?, 4326), ?) 
RETURNING insert_into_wgs() 
+0

感謝答案。但不幸的是'insert_into_wgs()'工作與INSERT查詢的結果( –

+0

爲什麼你使用SELECT不是值 –

+0

取代了我以前的答案有一個真正的解決方案 – Daniel

相關問題