Hier ist ein Beispiel für eine gespeicherte Prozedur in der Oracle-Datenbank. Verwenden Sie Cursor, um die Datensätze zu bearbeiten oder zu navigieren
1. SQL-Skript für die Tabelle
DBUSER-Tabellenerstellungsskript
CREATE TABLE DBUSER ( USER__ID NUMBER (5) NOT NULL, USERNAME VARCHAR2 (20) NOT NULL, CREATED__BY VARCHAR2 (20) NOT NULL, CREATED__DATE DATE NOT NULL, PRIMARY KEY ( USER__ID ) )
2. Gespeicherte Prozedur
Eine gespeicherte Prozedur gibt den Datensatz als Cursortyp (
SYS__REFCURSOR
) aus dem übereinstimmenden Benutzernamen zurück.
CREATE OR REPLACE PROCEDURE getDBUSERCursor( p__username IN DBUSER.USERNAME%TYPE, c__dbuser OUT SYS__REFCURSOR) IS BEGIN OPEN c__dbuser FOR SELECT ** FROM DBUSER WHERE USERNAME LIKE p__username || '%'; END;/.... === 3. Aufrufe von PL/SQL Holen Sie sich den zurückgegebenen Ref-Cursor und navigieren Sie wie folgt in den Datensätzen:
DECLARE c dbuser SYS REFCURSOR; temp__dbuser DBUSER%ROWTYPE; BEGIN
--records are assign to cursor 'c__dbuser' getDBUSERCursor('mkyong',c__dbuser);
LOOP
--fetch cursor 'c__dbuser' into dbuser table type 'temp__dbuser' FETCH c__dbuser INTO temp__dbuser;
--exit if no more records EXIT WHEN c__dbuser%NOTFOUND;
--print the matched username dbms__output.put__line(temp__dbuser.username);
END LOOP;
CLOSE c__dbuser;
END;/….
Cursor Link://Tag/oracle/[oracle]Link://Tag/gespeicherte Prozedur/[gespeicherte Prozedur]