关于JAVA存储过程的一个难题请各位大虾帮忙解决
注:这是两个调用存储地程的方法的片断
第一个可执行 call testLM ( ?,?,?,?,?,?,? ) ;
第二个执行时取不到返回值
“begin testLM('1','aaa','bbb','ccc','ddd','eee',DM);end;” 这个是调用存储过程的SQL在 PL/SQL里可执行;
public void TestProcure() {
try {
java.sql.Connection con = ConnectionManager.getConnection();
java.sql.CallableStatement temp = con.prepareCall(
"{ call testLM ( ?,?,?,?,?,?,? ) }");
temp.registerOutParameter(7, Types.VARCHAR);
temp.setString(1, "1");
temp.setString(2, "aaa");
temp.setString(3, "bbb");
temp.setString(4, "ccc");
temp.setString(5, "ddd");
temp.setString(6, "eee");
temp.execute();
String re_value = temp.getString(7);
System.out.println(re_value);
}
catch (SQLException ex) {
ex.printStackTrace();
}
}
public void TestProcure1() {
try {
java.sql.Connection con = ConnectionManager.getConnection();
String sql = "DECLARE DM VARCHAR2(20); begin testLM('1','aaa','bbb','ccc','ddd','eee',DM);end;";
java.sql.CallableStatement temp = con.prepareCall(sql);
//temp.registerOutParameter(7, Types.VARCHAR);
temp.execute();
String re_value = temp.getString(7);
System.out.println(re_value);
}
catch (SQLException ex) {
ex.printStackTrace();
}
}