PLS-00306: falsche Anzahl oder Typen der Argumente im Aufruf GET_NEW_EVENTS in Java

Bin ich immer die folgende Fehlermeldung beim Aufruf einer gespeicherten Prozedur mit Java:

"java.sql.SQLException: [Oracle][ODBC][Ora]ORA-06550: Zeile 1, Spalte 7:
PLS-00306: falsche Anzahl oder Typen der Argumente in Aufruf von "GET_NEW_EVENTS'
ORA-06550: Zeile 1, Spalte 7:
PL/SQL: Statement ignored"

Die gespeicherte Prozedur lautet wie folgt:

    create or replace package body event_subscription as
    procedure get_new_events( p_events in out SYS_REFCURSOR ) as
    begin
        open p_events for
            select log_id from event_alert_log;         
    end get_new_events;
end event_subscription;

- Und der Java-code cal die gespeicherte Prozedur lautet wie folgt:

    sqlString = "BEGIN event_subscription.get_new_events(?); END;";
CallableStatement  cs = connection.prepareCall(sqlString);
cs.registerOutParameter(1,OracleTypes.CURSOR);
cs.execute(); //This line is failing and throwing the SQLException
ResultSet rs = (ResultSet) cs.getObject(1);

Oracle, Version: Oracle Database 10g Express Edition Release 10.2.0.1.0 - Produkt
Die Java-version: 1.6.

Kann mir jemand helfen bei diesem Problem. Ich habe versucht, alle möglichen Lösungen zu diesem problem.

Gibt es einen Grund, warum Sie Ihre parameter für gespeicherte Prozeduren deklariert IN OUT? Es hilft, wenn Sie erklären, Ihre gespeicherte Prozedur parameter wie OUT statt IN OUT? Wird kein Wert weitergegeben werden, für den cursor, so macht es Sinn, mir zu erklären, es OUT eher als IN OUT.
Hey Lukas, Ja, es war nicht beabsichtigt zu sein. Aber ich war zu versuchen, verschiedene Optionen und während dieser Zeit, machte ich es AUS. Aber ich bekomme den Fehler auch wenn ich es alleine HIN.
Verwenden Sie die JDBC-ODBC-bridge-Treiber eine Verbindung zu Oracle? ("ODBC" in der Fehlermeldung deutet Sie vielleicht, dies zu tun.) Wenn ja, kriegt man das gleiche problem, wenn Sie die Oracle-JDBC-Treiber?

InformationsquelleAutor user1723788 | 2012-10-05

Schreibe einen Kommentar