2016-11-07 124 views
1

我需要在Java中使用2个输入参数执行以下过程。它应该成功执行,不需要输出参数。Callable Statement中的Java-To_Date()

任何人都可以帮助我的代码。

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

您在这里期待一个字符串,但您可以更改查询以接受日期。编辑:Oups,没有看到你的个人电脑中删除了to_date – AxelH

+0

非常感谢你的帮助。有效。 – Ketaki

回答

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.s ql.Date。驱动程序在将它发送到数据库时将其转换为SQL DATE值。