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]