Wie kann ich wieder ein sys_refcursor von oracle-SP in java?

Habe ich eine stored procedure (SP) in oracle:

CREATE OR REPLACE 
PROCEDURE "SP_SEL_LOGIN_INFO" (
p_username IN varchar2,
p_ResultSet OUT sys_refcursor
) AS

begin

OPEN p_ResultSet FOR
SELECT * FROM user_accounts
WHERE p_username = username;

end;

In meine java-Klasse, ich habe die folgenden Zeilen von code zum aufrufen der SP:

currentCon = connectionpackage.ConnectionManager.getConnection(dbSource);
CallableStatement stmt = currentCon.prepareCall("{call SP_SEL_LOGIN_INFO(?, ?)}");
stmt.setString(1, username); 
stmt.registerOutParameter(2, OracleTypes.CURSOR); //REF CURSOR
stmt.execute();
rs = stmt.getCursor(2);

Das ist, was ich gefunden habe, online zu nennen, eine SP und Rückgabe eines cursor. Wenn ich versuche zu kompilieren erhalte ich folgende zwei Fehlermeldungen:

error: cannot find symbol stmt.registerOutParameter(2, OracleTypes.CURSOR); UND error: cannot find symbol rs = stmt.getCursor(2); Wo er sagt, dass es nicht finden können, OracleTypes und getCursor.

Ich habe versucht, den Import import oracle.jdbc.driver.*; oder import oracle.jdbc.*; und bekam den Fehler error: package oracle.jdbc does not exist import oracle.jdbc.driver.*; und error: package oracle.jdbc does not exist import oracle.jdbc.*; bzw.

Ich habe auch die ojdbc14.jar Datei in den richtigen Ordner und können eine Verbindung mit einem query-string. Es ist nur, wenn man versucht, die SP, das ist es, gebe mir Mühe.

Die SP ist eine, die wir auf unseren aktuellen CF-website, so möchte ich nur wiederverwenden, wie es ist. Könnte jemand bitte etwas Licht auf, warum dies nicht funktioniert? Oder wenn es eine alternative gibt, etwas code zu verwenden, um die Rückgabe eines Cursors aus einer Oracle-SP? Danke.

InformationsquelleAutor kei23th | 2012-06-25

Schreibe einen Kommentar