2012-12-20 48 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

相关问题