Ich entwickle Anwendung (Feder-Framework 2.5 - alte). Die Aufgabe besteht darin, die gespeicherte Prozedur von oracle unter Verwendung von 'org.springframework.jdbc.object.StoredProcedure'Aufruf Oracle gespeicherte Prozedur mit Spring's org.springframework.jdbc.Object.StoredProcedure
aufzurufen. Seltsames ist, dass - es compiliert, ausführt, keine Fehler wirft - und null anstelle von reellem Wert zurückgibt.
Meine Testverfahren (in einem Paket ist) wie folgt aussehen:
procedure testprocedure(input1 IN varchar2,
input2 IN varchar2,
output1 OUT VARCHAR2,
output2 OUT VARCHAR2)
IS
BEGIN
output1 := 'return1';
output2 := 'return2';
END testprocedure;
Java-Code ist:
public class TestClass extends StoredProcedure {
public static final String input1 = "input1";
public static final String input2 = "input2";
public static final String output1 = "output1";
public static final String output2 = "output2";
public TestClass() {
setSql("testpackage.testprocedure");
setFunction(false);
declareParameter(new SqlOutParameter(output1, Types.VARCHAR));
declareParameter(new SqlOutParameter(output2, Types.VARCHAR));
declareParameter(new SqlParameter(input1, Types.VARCHAR));
declareParameter(new SqlParameter(input2, Types.VARCHAR));
}
public TestReturn getTestProcedureOUTs (String pinput1, String pinput2) {
Map<String, Object> in = new HashMap<String, Object>();
in.put(input1, pinput1);
in.put(input2, pinput2);
System.out.println("Calling " + getSql() + " with parameters: " + in);
Map<String, Object> res = execute(in);
System.out.println("output is " + res);
return new TestReturn((String) res.get(output1), (String) res.get(output2));
}}
und die Ausgabe von stdout
output is {output2=null, output1=null}
Ich vermute Dies ist irgendwie mit Windows-Version verbunden (Windows 10) Java-Version (1.7) Oracle-Treiber (ojdbc6.jar)
oder etwas anderes - zu offensichtlich, um es selbst zu sehen.
bereits wissen die Antwort - aber lassen Sie diese für jetzt offen, für den Fall, dass jemand Quiz wie diese mag. Tipp ist hier "etwas anderes - zu offensichtlich, es zu sehen" –
Wenn Sie die Antwort kennen, dann sollten Sie das als Antwort posten, es könnte anderen helfen. Nichts ist so frustrierend wie bei Google für ein Problem, zu einer SO-Frage ohne Antwort, sondern nur zu einem Kommentar des OP, den er ohne weitere Details fixiert hat. –
Ich bin Sory. Danke für diesen Kommentar. Guter Punkt dort. –