Ich habe eine folgende Oracle-Prozedur gespeichertWie funktionieren Orakel gespeicherte Prozeduren (w/cursors)?
CREATE OR REPLACE
PROCEDURE getRejectedReasons
(
p_cursor IN OUT SYS_REFCURSOR)
AS
BEGIN
OPEN p_cursor FOR SELECT * FROM reasons_for_rejection;
END;
Allerdings, wenn ich diese gespeicherte Prozedur in SQL-Entwickler laufen dann nicht, daß ich nichts sehen. Ich sehe gerade, etwa so:
Connecting to the database oracleLocal.
Process exited.
Disconnecting from the database oracleLocal.
ich von MS SQL Server komme und bin es gewohnt, mit den tatsächlichen Ergebnissen zu sehen, wenn eine gespeicherte Prozedur wie folgt ausgeführt werden. Gibt diese gespeicherte Prozedur keine Ergebnisse zurück, weil ich einen Cursor verwende?
Wie kann ich ‚Fortschritt‘ der Cursor, so würde es mir die Ergebnisse zeigen, wenn ich es ausführe. –
Nun, Sie nicht. Das heißt, der ganze Punkt eines Cursors besteht darin, eine Zeile zu einer Zeit zu führen, nicht eine ganze Ergebnismenge von vielen Zeilen. Sie können die Schleife mit 'for rec in p_cursor loop' 'end loop;' –
tpdi
ok, ich werde diese gespeicherte Prozedur in einer iBatis-Datei mit Java-Code verwenden. Also ich denke, da kann ich den ganzen Cursor bekommen und dann darüber hinwegschleifen –