2016-11-07 3 views
1

Ich muss die folgende Prozedur mit 2 Eingabe-Parameter in Java ausführen. Es sollte erfolgreich ausgeführt werden, es ist kein Ausgabeparam erforderlich.Java-To_Date() innerhalb Callable Statement

Kann mir bitte jemand helfen mit dem Code.

SQL Statement:

call pack_context.context_open(to_date('31-JULY-2016'),7); 

Java-Code:

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

Sie erwarten hier eine Zeichenfolge, aber Sie können die Abfrage ändern, um auch ein Datum zu akzeptieren. BEARBEITEN: Oups, habe nicht gesehen, dass Sie das to_date in den PC entfernt haben – AxelH

+0

Vielen Dank für Ihre Hilfe. Es funktionierte. – Ketaki

Antwort

1
callableStatement.setDate(parameterName, x);//Need Help 

kann wie unten gezeigt eingestellt werden:

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) den zweiten Parameter erfordert von der zu sein Geben Sie java.s ein ql.Datum. Der Treiber konvertiert dies in einen SQL-DATE-Wert, wenn er es an die Datenbank sendet.

Verwandte Themen