第一次在java中调用存储过程,代码如下:
CallableStatement proc = dbConn.prepareCall("{ call sp_parameters }");
proc.execute();
proc.close();
System.out.println("Loading parameters finished!");存储过程sp_parameters中从一张表格中select出68条数据然后用游标一条一条做一些操作后插入到另外一张表格中。 奇怪的是每次都能选出68条数据,但是只能插入十几条,感觉是存储过程在执行过程中没执行完就被中断了,有什么办法能保证存储过程一定执行完再执行下面的语句吗?
CallableStatement proc = dbConn.prepareCall("{ call sp_parameters }");
proc.execute();
proc.close();
System.out.println("Loading parameters finished!");存储过程sp_parameters中从一张表格中select出68条数据然后用游标一条一条做一些操作后插入到另外一张表格中。 奇怪的是每次都能选出68条数据,但是只能插入十几条,感觉是存储过程在执行过程中没执行完就被中断了,有什么办法能保证存储过程一定执行完再执行下面的语句吗?
{
int i;
String sql;
try
{
ResultSet results = csvMKTdataStmt.executeQuery("SELECT * FROM parameters");
while (results.next())
{
// PreparedStatement pstmt = myConn.prepareStatement(sql);
sql="insert into raw_parameters values (";
for(i=1;i<=8;i++)
{
if(i==1)
{
sql=sql+"'"+CovnertDealName(((String)results.getObject(i)))+"',";
}
else
sql=sql+"'"+results.getObject(i)+"',";
}
sql=sql+"'"+results.getObject(9)+"')";
PreparedStatement pstmt = dbConn.prepareStatement(sql);
pstmt.executeUpdate();
}
// clean up
results.close(); CallableStatement proc = dbConn.prepareCall("{ call sp_parameters }");
proc.execute();
proc.close();
System.out.println("Loading parameters finished!");
}
catch(Exception e)
{
System.out.println("Oops-> " + e);
csvOutputStmt.close();
dbStmt.close();
csvConnOutput.close();
dbConn.close();
csvConnMKTdata.close();
csvMKTdataStmt.close();
}
}
dbStmt.close();
csvConnOutput.close();
dbConn.close();
csvConnMKTdata.close();
csvMKTdataStmt.close();
这些放到finally里,你看看是否捕获到异常.