2016-11-07 2 views
1

Мне нужно выполнить описанную ниже процедуру с помощью 2 входных параметров в Java. Он должен быть выполнен успешно, нет требуемого параметра вывода.Java-To_Date() внутри оператора Callable

Может кто-нибудь, пожалуйста, помогите мне с кодом.

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

Вы ожидаете, что здесь находится String, но вы также можете изменить запрос, чтобы принять дату. EDIT: 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. Драйвер преобразует это значение в значение DATE SQL, когда он отправляет его в базу данных.

Смежные вопросы