suchen
HeimDatenbankOracleWas ist ein Oracle-Cursor?

Was ist ein Oracle-Cursor?

Feb 23, 2022 am 11:35 AM
oracle游标

In Oracle ist der Cursor ein Mechanismus, der das Schlüsselwort CURSOR verwendet, um einen von Oracle abgefragten Datensatz zu definieren. Der abgefragte Datensatz kann im Speicher gespeichert werden, und der Cursor zeigt dann über eine Schleife auf einen der Datensätze. Cursor erfüllen den Zweck, Datensätze zu durchlaufen.

Was ist ein Oracle-Cursor?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, Oracle 11g-Version, Dell G3-Computer.

In Oracle sind Cursor ein Mechanismus, mit dem einer SELECT-Anweisung ein Name zugewiesen und die Informationen in dieser SQL-Anweisung verarbeitet werden können.

Oracle-Cursor definiert einen Satz von Datensätzen, die von Oracle über das Schlüsselwort CURSOR abgefragt werden. Ähnlich wie bei einem Array wird der abgefragte Datensatz im Speicher gespeichert, und dann wird der Cursor verwendet, um auf einen der Datensätze und das Rundschreiben zu zeigen Der Datensatz wird über den Schleifencursor erreicht.

Was macht der Cursor?

①Geben Sie die Position einer bestimmten Zeile im Ergebnissatz an.

②Rufen Sie eine Zeile oder mehrere aufeinanderfolgende Zeilen basierend auf der aktuellen Position der Ergebnismenge ab.

③ Ändern Sie die Daten in der Zeile an der aktuellen Position des Ergebnissatzes.

④ Definieren Sie unterschiedliche Empfindlichkeitsstufen für Datenänderungen anderer Benutzer.

⑤Auf die Datenbank kann programmgesteuert zugegriffen werden.

Typ des Oracle-Cursors?

1. Statischer Cursor: Ein Cursor, dessen Ergebnismenge bestätigt wurde (statisch definiert). Unterteilt in implizite und explizite Cursor

  • Impliziter Cursor: Alle DML-Anweisungen sind implizite Cursor, und SQL-Anweisungsinformationen können über das implizite Cursorattribut abgerufen werden.

  • Cursor anzeigen: Der Benutzer zeigt den deklarierten Cursor an, dh die angegebene Ergebnismenge. Wenn eine Abfrage mehr als eine Ergebniszeile zurückgibt, ist ein expliziter Cursor erforderlich.

2. REF-Cursor: ein temporäres Objekt, das die Ergebnismenge dynamisch zuordnet.

Welche Status haben Oracle-Cursor und wie werden Cursorattribute verwendet?

①Der Status des Cursors wird durch Attribute dargestellt.

  • %Gefunden: Der Ausführungsstatus der Fetch-Anweisung (Datensätze abrufen) ist „True“ oder „False“.

  • %NotFound: Ob der letzte Datensatz als „True“ oder „False“ extrahiert wird.

  • %ISOpen: Ob der Cursor geöffnet ist, wahr oder falsch.

  • %RowCount: Die Anzahl der Zeilen, die derzeit vom Cursor extrahiert werden.

②Verwenden Sie die Eigenschaften des Cursors.

Beispiel:

/* conn scott/tiger */
  Begin
   Update emp Set  SAL = SAL + 0.1  Where JOB = 'CLERK';
   If  SQL%Found  Then
    DBMS_OUTPUT.PUT_LINE('已经更新!');
   Else
    DBMS_OUTPUT.PUT_LINE('更新失败!');
   End  If;
  End;

Wie verwende ich den Anzeigecursor? Wie iteriere ich über einen Schleifencursor?

1. Verwenden Sie den Anzeigecursor

  • , um den Cursor zu deklarieren: Teilen Sie den Speicherbereich. Beachten Sie, dass die Select-Anweisung zu diesem Zeitpunkt nicht ausgeführt wird.

CURSOR 游标名( 参数 列表)   [返回值类型]   IS   Select 语句;
  • Öffnen Sie den Cursor: Führen Sie die Select-Anweisung aus, rufen Sie die Ergebnismenge ab und speichern Sie sie im Cursor. Zu diesem Zeitpunkt zeigt der Cursor auf den Kopf der Ergebnismenge, nicht auf den ersten Datensatz.

 Open 游标名( 参数 列表);
  • Datensatz abrufen: Bewegen Sie den Cursor, um einen Datensatz zu erhalten.

Fetch  游标名InTo  临时记录或属性类型变量;
  • Cursor schließen: Setzen Sie den Cursor in den Pufferpool, ohne die Ressourcen vollständig freizugeben. Kann wieder geöffnet werden.

Close  游标名;

2. Schleifencursor durchlaufen

  • Für Schleifencursor

Der Schleifencursor öffnet implizit den Cursor, scrollt automatisch, um einen Datensatz zu erhalten, und erstellt automatisch eine temporäre Datensatztypvariable zum Speichern des Datensatzes. Der Cursor wird nach der Bearbeitung automatisch geschlossen.

     For  变量名  In  游标名 
     Loop
      数据处理语句;
     End Loop;
  • Loop-Loop-Cursor

     。。。
    Loop
     Fatch  游标名InTo  临时记录或属性类型变量;
     Exit  When   游标名%NotFound;
    End   Loop;
     。。。

Beispiel 1:

/* conn scott/tiger */
   Declare
     Cursor myCur is select empno,ename,sal from emp;
     vna varchar2(10);
     vno number(4);
     vsal number(7,2);
  Begin
     open myCur;
     fetch myCur into vno,vna,vsal;
     dbms_output.put_line(vno||'    '||vna||'    '||vsal);
     close myCur;
  End;
  /

Beispiel 2: Verwenden Sie eine Schleife, um den Cursor zu durchlaufen.

 /* conn scott/tiger */
  Declare
     Cursor myCur is select ename,job,sal,empno from emp;
     varE myCur%rowType;
  Begin
     if myCur%isopen = false then
        open myCur;
       dbms_output.put_line('Opening...');
     end if;
     loop
        fetch myCur into varE;
        exit when myCur%notfound;
        dbms_output.put_line(myCur%rowCount||'    '||vare.empno||'    '||vare.ename||'    '||vare.sal);
     end loop;
     if myCur%isopen then
        Close myCur;
        dbms_output.put_line('Closing...');
     end if;
  End;
  /

Beispiel 3: Verwenden einer For-Schleife zum Durchqueren des Cursors,

  /* conn scott/tiger */
  Declare
     Cursor myCur is select * from emp;
  Begin
     for varA in myCur
      loop
         dbms_output.put_line(myCur%rowCount||'    '||varA.empno||'    '||varA.ename||'  '||varA.sal);
      end loop;
  End;
  /

Wie aktualisiere und lösche ich Datensätze im angezeigten Cursor?

①Der WHERE CURRENT OF-Teilstring in der UPDATE- oder DELETE-Anweisung behandelt speziell die aktuellsten Daten, die aus der Tabelle abgerufen wurden, um UPDATE- oder DELETE-Vorgänge auszuführen.

Um diese Methode zu verwenden, müssen Sie beim Deklarieren des Cursors den FOR UPDATE-Teilstring verwenden. Wenn der Dialog den FOR UPDATE-Teilstring zum Öffnen eines Cursors verwendet,

Alle Datenzeilen im Rückgabesatz befinden sich auf Zeilenebene (ROW-). LEVEL) Exklusivmodus Gesperrt, andere Objekte können nur diese Datenzeilen abfragen,

kann keine UPDATE-, DELETE- oder SELECT...FOR UPDATE-Operationen ausführen.

Verwenden Sie bei Abfragen mit mehreren Tabellen die OF-Klausel, um eine bestimmte Tabelle zu sperren. Wenn die OF-Klausel ignoriert wird, werden die ausgewählten Datenzeilen in allen Tabellen gesperrt.

Wenn diese Datenzeilen durch andere Sitzungen gesperrt wurden, wartet ORACLE unter normalen Umständen, bis die Datenzeilen entsperrt werden. 🔜 Cursoraufzeichnung

   Cursor 游标名IS  SELECT 语句   For Update [ Of  更新列列名];
   Cursor 游标名IS  SELECT 语句   For Delete [ Of  更新列列名];

Was ist ein Anzeigecursor mit Parametern?

1. Ähnlich wie bei Prozeduren und Funktionen können Parameter an den Cursor übergeben und in Abfragen verwendet werden.

Der Parameter definiert nur den Datentyp, keine Größe (alle formalen Parameter in Oracle definieren nur den Datentyp, es wird keine Größe angegeben).

  与过程不同的是,游标只能接受传递的值,而不能返回值。

   可以给参数设定一个缺省值,当没有参数值传递给游标时,就使用缺省值。

  游标中定义的参数只是一个占位符,在别处引用该参数不一定可靠。

2、使用带参数的显示游标

  • 声明带参数的显示游标:

   CURSOR 游标名  [(parameter[,parameter],...)]    IS   Select语句;

参数形式:

1,参数名   数据类型  

2,参数名   数据类型  DEFAULT  默认值

   例子:

    /*conn scott/tiger
    Crate table  empa  Select * from scott.emp;
    */
    Declare
      Cursor MyCursor(pSal  Number  Default   800)  Select   JOB  From  empa Where  SAL >  pSal ;
      varA  MyCursor%ROWTYPE;
    Begin
      Loop
       Fetch  MyCursor  InTo  varA;
       Exit  When  MyCursor%NotFound;
       DBMS_OUTPUT.PUT_LINE(MyCursor%RowCount||'    '||varA.empno||'    '||varA.ename||'  '||varA.sal); 
      End    Loop;
    End;/

推荐教程:《Oracle教程

Das obige ist der detaillierte Inhalt vonWas ist ein Oracle-Cursor?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Was bietet Oracle an? Produkte und Dienstleistungen erläutertWas bietet Oracle an? Produkte und Dienstleistungen erläutertApr 16, 2025 am 12:03 AM

OracleOffersacomparedivesuiteofProductsandservicesIncludingDatabasemanagement, CloudComputing, Enterprisesoftware, Andhardwaresolutions.1) OracledatabaseSupportsvariousDatamodelSwitheFicienManagement -Features.2) oraclecloudinfravafrastructure (Ocise (Oci -) (Ocise (Ocise) (Ocise) bietet

Oracle -Software: Von Datenbanken in die CloudOracle -Software: Von Datenbanken in die CloudApr 15, 2025 am 12:09 AM

Die Entwicklungshistorie der Oracle-Software von Datenbank bis Cloud Computing umfasst: 1. 1977, sie konzentrierte sich zunächst auf das relationale Datenbankverwaltungssystem (RDBMS) und wurde schnell die erste Wahl für Anwendungen auf Unternehmensebene. 2. Erweitern Sie auf Middleware, Entwicklungswerkzeuge und ERP -Systeme, um eine vollständige Reihe von Unternehmenslösungen zu bilden. 3. Oracle Database unterstützt SQL und bietet eine hohe Leistung und Skalierbarkeit, die für kleine bis große Unternehmenssysteme geeignet ist. 4. Der Aufstieg der Cloud -Computing -Dienste erweitert die Produktlinie von Oracle weiter, um alle Aspekte des Unternehmens zu erfüllen, die es benötigt.

Mysql gegen Oracle: Die Vor- und NachteileMysql gegen Oracle: Die Vor- und NachteileApr 14, 2025 am 12:01 AM

Die Auswahl von MySQL und Oracle sollte auf Kosten, Leistung, Komplexität und funktionalen Anforderungen basieren: 1. MySQL eignet sich für Projekte mit begrenzten Budgets, ist einfach zu installieren und für kleine bis mittelgroße Anwendungen geeignet. 2. Oracle ist für große Unternehmen geeignet und führt hervorragend bei der Behandlung von Daten und hohen Anforderungen von gleichzeitig gleichzeitigen Anforderungen durch, ist jedoch kostspielig und komplex in der Konfiguration.

Der Zweck von Oracle: Business Solutions und DatenmanagementDer Zweck von Oracle: Business Solutions und DatenmanagementApr 13, 2025 am 12:02 AM

Oracle hilft Unternehmen, durch seine Produkte und Dienstleistungen digitaler Transformation und Datenmanagement zu erreichen. 1) Oracle bietet ein umfassendes Produktportfolio, einschließlich Datenbankverwaltungssysteme, ERP- und CRM -Systeme, mit denen Unternehmen Geschäftsprozesse automatisieren und optimieren können. 2) ERP-Systeme von Oracle wie E-Businesssuite und Fusion Applications erkennen die End-to-End-Geschäftsprozessautomatisierung, verbessern die Effizienz und die Kosten für die Kosten, haben jedoch hohe Implementierungs- und Wartungskosten. 3) Oracledatabase bietet eine hohe Datenverarbeitung und hohe Verfügbarkeitsdatenverarbeitung, hat jedoch hohe Lizenzkosten. 4) Leistungsoptimierung und Best Practices umfassen die rationale Verwendung von Indexierungs- und Partitionierungstechnologie, regelmäßige Datenbankwartung und Einhaltung der Codierungsspezifikationen.

So löschen Sie Oracle Library -FehlerSo löschen Sie Oracle Library -FehlerApr 12, 2025 am 06:21 AM

Schritte zum Löschen der fehlgeschlagenen Datenbank, nachdem Oracle eine Bibliothek nicht erstellt hat: Verwenden Sie den SYS -Benutzernamen, um eine Verbindung zur Zielinstanz herzustellen. Verwenden Sie die Drop -Datenbank, um die Datenbank zu löschen. Abfrage V $ Datenbank Um zu bestätigen, dass die Datenbank gelöscht wurde.

So erstellen Sie Cursor in Oracle LoopSo erstellen Sie Cursor in Oracle LoopApr 12, 2025 am 06:18 AM

In Oracle kann die For -Loop -Schleife Cursors dynamisch erzeugen. Die Schritte sind: 1. Definieren Sie den Cursortyp; 2. Erstellen Sie die Schleife; 3.. Erstellen Sie den Cursor dynamisch; 4. Führen Sie den Cursor aus; 5. Schließen Sie den Cursor. Beispiel: Ein Cursor kann mit dem Zyklus für Kreislauf erstellt werden, um die Namen und Gehälter der Top 10 Mitarbeiter anzuzeigen.

So exportieren Sie Oracle ViewSo exportieren Sie Oracle ViewApr 12, 2025 am 06:15 AM

Oracle -Ansichten können über das Exp -Dienstprogramm exportiert werden: Melden Sie sich in der Oracle -Datenbank an. Starten Sie das EXP -Dienstprogramm und geben Sie das Ansichtsname und das Exportverzeichnis an. Geben Sie Exportparameter ein, einschließlich Zielmodus, Dateiformat und Tablespace. Mit dem Export beginnen. Überprüfen Sie den Exportieren mithilfe des IMPDP -Dienstprogramms.

So stoppen Sie die Oracle -DatenbankSo stoppen Sie die Oracle -DatenbankApr 12, 2025 am 06:12 AM

Führen Sie die folgenden Schritte aus, um eine Oracle -Datenbank zu stoppen: 1. Eine Verbindung zur Datenbank herstellen; 2. Sofort herunterfahren; 3.. Herunterfahren vollständig.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
4 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Herunterladen der Mac-Version des Atom-Editors

Herunterladen der Mac-Version des Atom-Editors

Der beliebteste Open-Source-Editor

Sicherer Prüfungsbrowser

Sicherer Prüfungsbrowser

Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

SublimeText3 Englische Version

SublimeText3 Englische Version

Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor