我需要在Java中使用2个输入参数执行以下过程。它应该成功执行,不需要输出参数。
任何人都可以帮我解释一下代码。
SQL语句:
call pack_context.context_open(to_date('31-JULY-2016'),7);
Java代码:
CallableStatement callableStatement = null;
String proc = "{call pack_context.context_open(?,?)}";
callableStatement = con.prepareCall(proc);
callableStatement.setInt(2, 7);
callableStatement.setDate(parameterName, x);//Need Help
答案 0 :(得分:1)
callableStatement.setDate(parameterName, x);//Need Help
可以如下调整:
String myDate="31-JUL-2016"; // notice JUL, instead of JULY
// or use some other date string like yyyy-MM-dd
SimpleDateFormat sdf = new SimpleDateFormat("dd-MMM-yyyy");
java.util.Date date = sdf.parse(myDate);
java.sql.Date d = new java.sql.Date(date.getTime());
callableStatement.setDate(parameterName, d);
// here parameterName should be the exact name as
// in your procedure `pack_context.context_open`.
setDate(String parameterName, Date x)要求第二个参数为java.sql.Date类型。驱动程序在将数据发送到数据库时将其转换为SQL DATE值。