可调用语句中的Java-To_Date()

时间:2016-11-07 11:38:31

标签: java to-date callable-statement

我需要在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

1 个答案:

答案 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值。