2016-05-31 12 views
0

Ich versuche, eine Prozedur aus einem Paket von meiner Java-Anwendung aufzurufen, aber eine Fehlermeldung erhalten. Der Code eingerichtet ist, wie so ...SQLException beim Ausführen einer callablestatement

------ ----- Java

Connection = conn; 
String call_code="{? = call MY_PROCEDURE.Process_vale(?,?,?)}"; 
CallableStatement Process_cs=conn.prepareCall(call_code); 

String bValue= "12345"; 
Process_cs.setString(1, bValue); 
Process_cs.registerOutParameter(2, Types.INTEGER); 
Process_cs.registerOutParameter(3, Types.VARCHAR); 
Process_cs.execute(); 

Das Verfahren ist Setup wie:

PROCEDURE Process_value (bValue VARCHAR2, PN_CD OUT NUMBER, PN_MSG OUT VARCHAR2)..... 

Die Fehler, die ich sehe, ist:

java.sql.SQLException: Fehlende iN oder OUT-Parameter bei Index :: 4

Ich bin neugierig, warum es einen Index von 4 erwähnt, wenn das Verfahren nur 3 Parameter hat, glaube ich, dass ich hier eine kritische Tatsache vermisse.

+1

Sie scheinen einen Parameter zu haben, den Sie nicht registrieren. das Ergebnis? = ' –

Antwort

0

Sie haben hier einige schwerwiegende Fehler gemacht. 1. Da Sie eine Prozedur aufrufen, erhalten Sie keinen Rückgabewert, nur Funktionen können Rückgabewerte haben. Sie müssen die Prozedur wie folgt aufrufen.

Sie können dies erfolgreich ausführen, wenn der erste Parameter der Prozedur vom Typ IN ist und die anderen beiden Parameter vom Typ OUT sind.

Verwandte Themen