Hilfethema nicht gefunden. Prüfen Sie, ob die Online-Hilfe verwandte Themen enthält.


Unterstützung von Oracle8-Objekten im Objektnavigator

Mit einem neuen Knoten Typen unter dem Knoten Datenbankobjekte können Sie benutzerdefinierte Oracle8-Datentypen und deren zugehörige Attribute und Methoden anzeigen und suchen. Außerdem wurde die Oracle8-Funktionalität zu den Knoten Tabellen und Ansichten hinzugefügt, so daß Sie Objekttabellen, Spaltenobjekte und Objektansichten sowie die zugehörigen INSTEAD OF-Trigger anzeigen können.


Verbesserter Datenbanktrigger-Editor

Objekte im Editor wurden logisch gruppiert, so daß jetzt Zeilen- und Anweisungs-Trigger im Datenbanktrigger-Editor einfacher erstellt werden können. Außerdem wurde eine Funktion zur Fehlerberichterstellung hinzugefügt - ein Meldungsfeld, in dem die Fehlermeldung angezeigt wird, wird jetzt ausgegeben, wenn Sie einen ungültigen Trigger abrufen, speichern oder löschen.

Durch die Unterstützung von Oracle8-Objekten können Sie jetzt mit dem Datenbanktrigger-Editor INSTEAD OF-Trigger für Ansichten und Objektansichten erstellen und bearbeiten.


Unterstützung von PL/SQL 8

  Verwandte Themen

Dieses Release von Procedure Builder verwendet PL/SQL V8 auf dem Client und dem Server. Client-seitige Programmblöcke können momentan die objekt-bezogene Funktionalität nicht unterstützen. Allerdings können gespeicherte Programmblöcke alle neuen PL/SQL V8-Funktionen verwenden.

Beachten Sie, daß client-seitige Programmblöcke und gespeicherte Programmblöcke mit einem Oracle7-Datenbank-Server benutzt werden können, wenn Sie keine der neuen PL/SQL V8- oder SQL V8-Funktionen verwenden.

In Anhang A im Handbuch PL/SQL User's Guide and Reference Release 8.0 werden die neuen PL/SQL V8-Funktionen beschrieben. Dieses Handbuch ist online verfügbar. Wählen Sie ?Handbücher, und gehen Sie zu Referenzhandbücher unter Online-Handbücher.


Kompatibilität mit früheren Versionen von PL/SQL

  Verwandte Themen

Wenn client-seitige Programmblöcke vorhanden sind, die in PL/SQL V1- oder V2-Code geschrieben sind, müssen Sie den Code auf die neue Ebene konvertieren. Das PL/SQL V1-Konvertierungsdienstprogramm unterstützt Sie bei der Automatisierung des Umstellungsprozesses.

In PL/SQL V2 geschriebene gespeicherte Programmblöcke werden mit der PL/SQL V8-Engine auf dem Datenbank-Server ausgeführt, werden jedoch möglicherweise mit Fehlern kompiliert. Diese Fehler treten in einigen Fällen auf, in denen die Syntax zwischen V2 und V8 nicht kompatibel ist. Mit einem PL/SQL V2-Kompatibilitäts-Flag in der V8-Datenbank können Sie einen V2-Kompatibilitätsmodus festlegen, so daß die V8-Engine keine derartigen Fehler ausgibt, wenn V2-Code kompiliert wird. In Kapitel 6 im Handbuch Oracle8 Migration werden die Fälle beschrieben, die von dem PL/SQL V2-Kompatibilitäts-Flag abgedeckt werden.


Vordefiniertes Paket EXEC_SQL

Das vordefinierte Paket EXEC_SQL enthält Prozeduren und Funktionen, mit denen Sie dynamischen SQL-Code innerhalb von PL/SQL-Prozeduren ausführen können. Genau wie bei dem Paket DBMS_SQL werden die SQL-Anweisungen in Zeichenfolgen gespeichert, die nur zur Laufzeit an das Quellprogramm übergeben bzw. vom Quellprogramm generiert werden.

Das vordefinierte Paket EXEC_SQL ist besonders nützlich, wenn Sie Ergebnismengen aus verschiedenen Oracle- oder ODBC-Datenquellen in eine Form oder einen Bericht abrufen möchten. Dies ist möglich, weil Sie mit dem Paket mehrere Oracle-Datenbanken bei verschiedenen Verbindungen gleichzeitig aufrufen können. Verbindungen werden auch über den Open Client Adapter (OCA) zu ODBC-Datenquellen hergestellt.


Neue Namen von ausführbaren Stapeldateien

Der Name der ausführbaren Procedure Builder-Datei wurde von PB20D32 in DE60 (Microsoft Windows) und von PB20DES in DEBLD60 (UNIX) geändert. Stellen Sie sicher, daß Sie die entsprechenden Änderungen an allen Skripts vornehmen, die die ausführbaren Dateien aufrufen.


Syntaxpalette

Die Syntaxpalette ist ein Programmierwerkzeug, mit dem Sie die Konstrukte von PL/SQL-Sprachelementen und vordefinierten Paketen anzeigen und ausgewählte Syntax in einen Editor kopieren können. Dieses Werkzeug ist für Programmierer im Anfangsstadium gedacht, die mit der Struktur der PL/SQL-Sprache nicht vertraut sind. Gleichzeitig bietet sie eine effiziente und bequeme Möglichkeit für erfahrene Programmierer, die dasselbe Konstrukt wiederholt benutzen möchten, ohne es immer wieder neu eingeben zu müssen.


Text in mehreren Programmblöcken suchen und ersetzen

Mit dem Dialogfeld Suchen und Ersetzen in Programmblöcken können Sie über mehrere Programmblöcke hinweg nach Text suchen, ohne individuelle Instanzen des Programmblock-Editors öffnen zu müssen. Sie können jedes Auftreten der Suchfolge oder nur bestimmte Vorkommen ersetzen.


Typ-Assistent

Im Hinblick auf die Unterstützung von Oracle8-Objekten umfaßt Procedure Builder jetzt einen Typ-Assistenten, der Sie durch die einzelnen Schritte beim Erstellen eines neuen Objekttyps (mit Attributen und Methoden), Tabellentyps oder Variierenden Array-Typs führt. Die benutzerdefinierten Oracle8-Datentypen werden unter dem Knoten Typen im Objektnavigator angezeigt.


Benutzerdefinierte Oracle8-Typen bearbeiten

Der Gespeicherte Programmblöcke-Editor wurde erweitert und ermöglicht jetzt das Bearbeiten des Typrumpfs (der Methoden) und der Typspezifikation (Attribute) von benutzerdefinierten Oracle8-Datentypen.


Verbesserte Editierfunktionen

Der Programmblock- und Gespeicherte Programmblöcke-Editor unterstützt jetzt einen Bereich von Editierfunktionen in Microsoft Windows, wie z.B.:

•	Automatisches Ein-/Ausrücken - Während Sie Code in die Editoren eingeben, werden die Zeilen automatisch entsprechend den Syntaxregeln von PL/SQL ein- oder ausgerückt.

•	Hervorheben der Syntax in Farbe - Schlüsselwörter, Kommentare und Zeichenfolgen werden in verschiedenen Farben dargestellt.

•	Spalten- und Zeilenauswahl - Sie können Textspalten und Zeilen mit Quellcode auswählen.

•	Textverarbeitung mit Drag-and-Drop - Hervorgehobener Text kann im Drag-and-Drop-Verfahren kopiert oder verschoben werden.

•	Mehrere geteilte Ansichten - Sie können bis zu vier geteilte Ansichten des aktuellen Programmblocks im Editor erstellen.

•	Drucken - Sie können den aktuellen Programmblock drucken.

•	Rückgängig/Wiederholen ohne Einschränkung - Sie können alle Editieraktionen bis zu dem letzten Speichernvorgang rückgängig machen bzw. wiederholen.


Erste Schritte mit Procedure Builder

Wenn Sie noch nie mit Procedure Builder gearbeitet haben, lesen Sie das Handbuch Oracle Procedure Builder Getting Started. Dies ist ein Lernprogramm, das Ihnen eine schnelle Einführung in die Grundlagen von Procedure Builder vermittelt. Um das Handbuch online aufzurufen, wählen Sie ?Handbücher und gehen zu Getting Started unter Online-Handbücher.

HTM- und PDF-Versionen des Handbuchs sind ebenfalls in dem Dokumentationsunterverzeichnis von \TOOLS\ in %ORACLE_HOME% installiert, z.B. %ORACLE_HOME%\TOOLS\DOCnn\<Sprache>\PBGSnn\, wobei nn die Versionsnummer und <Sprache> der Sprachcode ist (US, JP usw.).


Über PL/SQL-Bibliotheken

  Verwandte Themen

PL/SQL-Bibliotheken sind Sammlungen client-seitiger Programmblöcke, die entweder im Dateisystem oder der Datenbank gespeichert sein können. PL/SQL-Bibliotheken eignen sich sehr gut zum Speichern client-seitiger Programmblöcke, die von mehreren Anwendungen gemeinsam genutzt werden sollen.

PL/SQL-Bibliotheken unterstützen dynamisches Laden. Das bedeutet, daß ein in einer Bibliothek gespeicherter Programmblock in eine Anwendung geladen wird, wenn er das erste Mal aufgerufen wird, und dann zur schnellen Wiederverwendung geladen bleibt. Dieses dynamische Laden kann die Speicheranforderungen zur Laufzeit deutlich herabsetzen und die Leistung einer Anwendung steigern.

Verwechseln Sie in PL/SQL-Bibliotheken gespeicherte Programmblöcke nicht mit den auf dem Oracle-Datenbankserver verfügbaren gespeicherten Unterprogrammen. Gespeicherte Unterprogramme werden immer auf dem Oracle-Datenbankserver gespeichert und ausgeführt, während Programmblöcke in einer PL/SQL-Bibliothek immer in der PL/SQL-Umgebung auf seiten des Client geladen und ausgeführt werden.


Über das Ungültigmachen von Bibliotheks-Programmblöcken

  Verwandte Themen

Wenn Sie eine Bibliothek zuordnen, die einen Programmblock mit demselben Namen wie der momentan geladene Programmblock enthält, der in einer anderen zugeordneten Bibliothek definiert wird, wird der geladene Programmblock automatisch neu definiert.

Dadurch verlieren alle Programmblöcke, die den zuvor geladenen Programmblock referenzieren, ihren Kompilierungsstatus (da der Verweis nicht mehr aufgelöst werden kann).

Wenn Sie einen dieser Programmblöcke erneut zu kompilieren versuchen, sucht Procedure Builder den zuvor geladenen Programmblock in der Liste zugeordneter Bibliotheken. Die Suchreihenfolge wird dabei von der vertikalen Reihenfolge bestimmt, in der die Bibliotheken im Objektnavigator aufgelistet sind. Procedure Builder lädt das erste Exemplar des Programmblocks, das gefunden wird.

Die Reihenfolge, in der die zugeordneten Bibliotheken aufgelistet sind, kann sich folglich darauf auswirken, welcher referenzierte Programmblock geladen wird.

Sie können die zugeordneten Bibliotheken im Objektnavigator neu anordnen, indem Sie eine Bibliothek auswählen und an eine neue Position im Knoten Zugeordnete Bibliotheken ziehen.

Hinweis:  Wenn Sie eine Bibliothek zuordnen, die einen Programmblock mit demselben Namen wie ein momentan geladener Programmblock enthält, der unter dem Knoten Programmblöcke definiert ist, wird der geladene Programmblock nicht automatisch neu definiert. Um den Programmblock der zugeordneten Bibliothek zu benutzen, löschen Sie den geladenen Programmblock unter dem Knoten Programmblöcke.


Bibliotheken erstellen

  Verwandte Themen

So erstellen Sie eine Bibliothek:

1	Klicken Sie auf den Knoten PL/SQL-Bibliotheken, und klicken Sie dann auf [image].

Nun wird die Bibliothek erstellt und bekommt einen eindeutigen Namen mit dem Format Bibliothek LIB_nnn zugewiesen. Die Bibliothek wird automatisch geöffnet, so daß Sie ihren Inhalt sofort bearbeiten können.

2	Speichern Sie die Bibliothek in der Datenbank oder im Dateisystem.


Bibliotheken im Dateisystem speichern

  Verwandte Themen

So speichern Sie eine Bibliothek im Dateisystem:

1	Klicken Sie auf die zu speichernde Bibliothek.

2	Klicken Sie auf [image].

Wenn Sie die Bibliothek das erste Mal speichern, oder wenn Sie Speichern unter aus dem Menü wählen, wird das Dialogfeld Bibliothek speichern angezeigt, in dem Sie zur Angabe des Namens und Speicherorts für die Bibliothek aufgefordert werden. Standardmäßig wird die Dateinamenerweiterung .PLL verwendet.

3	Klicken Sie auf die Optionsschaltfläche Dateisystem im Dialogfeld Bibliothek speichern.

4	Klicken Sie auf Durchsuchen, um den Ordner auszuwählen, in dem die Bibliothek gespeichert werden soll.

5	Klicken Sie im Dialogfeld PL/SQL-Bibliothek auf OK.


Bibliotheken in der Datenbank speichern

  Verwandte Themen

So speichern Sie eine Bibiliothek in der Datenbank:

1	Wenn Sie noch nicht bei einer Datenbank angemeldet sind, wählen Sie Datei [image] Anmelden.  Tip

2	Klicken Sie auf die in der Datenbank zu speichernde Bibliothek.

3	Klicken Sie auf [image].

Wenn Sie die Bibliothek das erste Mal speichern, oder wenn Sie Speichern unter aus dem Menü wählen, wird das Dialogfeld Bibliothek speichern angezeigt, in dem Sie zur Angabe des Namens und Speicherorts für die Bibliothek aufgefordert werden.

4	Klicken Sie auf die Optionsschaltfläche Datenbank im Dialogfeld Bibliothek speichern.

5	Geben Sie ggf. Einen neuen Namen für die Bibliothek ein.

6	Klicken Sie auf OK.

Die Bibliothek wird automatisch in der momentan angemeldeten Datenbank gespeichert.


Bibliotheken öffnen

  Verwandte Themen

So öffnen Sie eine Bibliothek:

1	Wählen Sie im Objektnavigator Datei [image] Öffnen aus dem Menü, um das Dialogfeld Bibliothek öffnen aufzurufen.

2	Klicken Sie auf eine der Optionsschaltflächen im Feld In, um die Quellposition der Bibliothek anzugeben.

3	Geben Sie Speicherort und Name der Bibliothek in das Feld Bibliothek ein, oder klicken Sie auf Durchsuchen, um das Datei-Dialogfeld des Betriebssystems oder das Dialogfeld Datenbankbibliotheken zur Suche nach der Bibliothek anzuzeigen.

4	Klicken Sie auf OK.

Die ausgewählte Bibliothek wird nun unter dem Knoten Bibliotheken im Objektnavigator geöffnet.

Wenn Sie eine Bibliothek öffnen, der Bibliotheken zugeordnet sind, überprüft Procedure Builder die Zeitstempel der zugeordneten Bibliotheken. Falls eine oder mehrere der zugeordneten Bibliotheken neuer als die geöffnete Bibliothek sind, verlieren alle Programmblöcke in der geöffneten Bibliothek ihren Kompilierungsstatus.


Programmblöcke zu einer Bibliothek hinzufügen

  Verwandte Themen

So fügen Sie einen Programmblock zu einer Bibliothek hinzu:

1	Falls der Knoten für die Bibliothek noch nicht eingeblendet ist, doppelklicken Sie darauf, um die untergeordneten Knoten Programmblöcke und Zugeordnete Bibliotheken einzublenden.

2	Klicken Sie im obersten Programmblöcke-Knoten (oder an einer anderen Position) auf den Programmblock, den Sie zu der geöffneten Bibliothek hinzufügen wollen.

3	Ziehen Sie den Programmblock an eine Position unter dem Knoten Programmblöcke der geöffneten Bibliothek.

Wie Sie sehen, ändert sich die Form des Cursors von einem schwarzen Kreis mit einem Schrägstrich zu einem Pfeil mit einem kleinen Kästchen am Ende. Dies zeigt an, daß Sie den Programmblock ablegen dürfen. Wenn Sie den Programmblock ablegen, solange der Cursor die Form des durchgestrichenen Kreises hat, hat dies keine Auswirkung. Lassen Sie die Maustaste los, um eine Kopie des Programmblocks in die geöffnete Bibliothek einzufügen.

Hinweis:  Der Programmblock wird nicht in die geöffnete Bibliothek verschoben. Sein Objekt wird noch immer unter dem Knoten Programmblöcke angezeigt.


Programmblöcke aus einer Bibliothek entfernen

  Verwandte Themen

So entfernen Sie einen Programmblock aus einer Bibliothek:

1	Klicken Sie im Objektnavigator auf den bzw. die Programmblöcke im Knoten Programmblöcke der geöffneten Bibliothek.

2	Klicken Sie in der Symbolleiste des Navigators auf [image].


Bibliotheks-Programmblöcke kompilieren

  Verwandte Themen

So kompilieren Sie alle unkompilierten Programmblöcke in einer Bibliothek:

1	Klicken Sie im Objektnavigator den Knoten PL/SQK-Bibliotheken oder auf einen geöffneten Bibliotheks-Unterknoten.

2	Wählen Sie Programm [image] Kompilieren [image] Inkremental aus dem Menü.

Daraufhin wird das Dialogfeld Kompilieren angezeigt, das den Status des Kompilierungsvorgangs angibt. Etwaige Fehler werden im Ausschnitt für Fehlermeldungen angezeigt. Sie können zu einem Fehler im betreffenden Programmblock navigieren, indem Sie ihn markieren und dann auf Gehe zu Fehler klicken.

So kompilieren Sie alle Programmblöcke in einer Bibliothek unabhängig von ihrem aktuellen Kompilierungsstatus:

1	Klicken Sie im Objektnavigator auf den Knoten PL/SQL-Bibliotheken oder auf einen geöffneten Bibliotheksknoten.

2	Wählen Sie Programm [image] Kompilieren [image] Alle aus dem Menü.

Daraufhin wird das Dialogfeld Kompilieren angezeigt, das den Status des Kompilierungsvorgangs angibt. Etwaige Fehler werden im Ausschnitt für Fehlermeldungen angezeigt. Sie können zu einem Fehler im betreffenden Programmblock navigieren, indem Sie ihn markieren und dann auf Gehe zu Fehler klicken.


Bibliotheken schließen

  Verwandte Themen

So schließen Sie eine Bibliothek:

1	Klicken Sie im Objektnavigator auf den Knoten PL/SQL-Bibliotheken oder auf einen geöffneten Bibliotheksknoten.

2	Klicken Sie in der Symbolleiste des Navigators auf die Schaltfläche Schließen.

Wenn Sie eine geöffnete Bibliothek im Objektnavigator schließen, werden Sie zum Speichern aller noch nicht gespeicherten Änderungen aufgefordert. Bei der Verwendung des Befehls CLOSE in Interpreter werden alle Änderungen, die Sie seit dem letzten Speichervorgang an der Bibliothek vorgenommen haben, automatisch gespeichert.


Bibliotheken zuordnen

  Verwandte Themen

So ordnen Sie eine Bibliothek zu:

1	Wählen Sie Datei [image] Bibliothek zuordnen aus, um das Dialogfeld Bibliothek zuordnen aufzurufen.

2	Klicken Sie auf eine der Optionsschaltflächen im Feld In, um anzugeben, ob die Bibliothek im Dateisystem oder der Datenbank gespeichert ist.

3	Geben Sie Speicherort und Name der Bibliothek in das Feld Bibliothek ein, oder klicken Sie auf Durchsuchen, um das Datei-Dialogfeld des Betriebssystems oder das Dialogfeld Datenbankbibliotheken zur Suche nach der Bibliothek anzuzeigen.

4	Klicken Sie auf Zuordnen, um das Dialogfeld zu schließen.

Die Bibliothek wird nun unter dem Knoten Zugeordnete Bibliotheken im Objektnavigator aufgeführt.

Hinweis:  Sie können auch das Dialogfeld Bibliothek zuordnen anzeigen, indem Sie auf den Knoten Zugeordnete Bibliotheken doppelklicken, wenn dieser leer ist.

Um Programmblöcke referenzieren zu können, die in einer PL/SQL-Bibliothek gespeichert sind, müssen Sie die Bibliothek zuerst zuordnen. Sie ordnen eine Bibliothek entweder der aktuellen Procedure Builder-Sitzung oder einer anderen Bibliothek zu. Wenn Sie die Bibliothek nicht mehr benötigen, heben Sie ihre Zuordnung auf.

Zugeordnete Bibliotheken können nicht bearbeitet werden. Wenn Sie den Inhalt einer zugeordneten Bibliothek ändern möchten, müssen Sie zuerst ihre Zuordnung aufheben und die Bibliothek dann öffnen. Sie können sich eine zugeordnete Bibliothek also als schreibgeschützte Kopie oder Laufzeitversion der Bibliothek vorstellen.


Zuordnung einer Bibliothek aufheben

  Verwandte Themen

So heben Sie die Zuordnung einer Bibliothek auf:

1	Klicken Sie im Objektnavigator unter dem Knoten Zugeordnete Bibliotheken auf den untergeordneten Knoten der Bibliothek.

2	Klicken Sie dann in der Symbolleiste des Navigators auf [image].

Wenn Sie die Zuordnung einer Bibliothek aufheben, löschen Sie die Bibliothek damit nicht. Beim Aufheben der Zuordnung wird die angegebene Bibliothek nur aus der aktuellen Gruppe zugeordneter Bibliotheken entfernt.


Programmblöcke aus einer Bibliothek laden

  Verwandte Themen

So laden Sie Programmblöcke aus einer Bibliothek:

  Sie verwenden den Befehl LOAD, um Bibliothek-Programmblöcke explizit zu laden. Zum Beispiel:

PL/SQL> .LOAD PROCEDURE foo LIBRARY mylib

Programmblöcke, die sich in zugeordneten PL/SQL-Bibliotheken befinden, werden nur dann implizit geladen, wenn sie beim Kompilieren oder zur Laufzeit von einem anderen Programmblock referenziert werden.


Informationen über Bibliotheken anzeigen

  Verwandte Themen

So zeigen Sie Informationen über eine Bibliothek an:

 Sie können Informationen über die Bibliotheken anzeigen, die der aktuellen Procedure Builder-Sitzung zugeordnet und momentan in der Sitzung geöffnet sind.

Der Objektnavigator zeigt eine Liste der geöffneten und zugeordneten Bibliotheken in den Knoten Bibliotheken bzw. Zugeordnete Bibliotheken an. Wählen Sie einen Knoten aus, und klicken Sie in der Navigator-Symbolleiste auf die Schaltfläche Alles einblenden, um sämtliche untergeordneten Knoten anzuzeigen.

Um Informationen über eine bestimmte Bibliothek anzuzeigen (einschließlich ihres Modus, Speicherorts und Inhalts), geben Sie den Befehl DESCRIBE an der Interpreter-Eingabeaufforderung PL/SQL> ein.

Zum Beispiel:

PL/SQL> .DESCRIBE LIB lib1
   Library:  LIB1
   Mode:  Open(READWRITE)
   Modified:  YES
   External Location:  lib1.pll
   Contents:
     Procedure Body BONUSES
     Procedure Body MAIN


Bibliotheken umbenennen

  Verwandte Themen

So benennen Sie eine Bibliothek um, die geöffnet ist, aber noch nicht gespeichert wurde:

1	Wählen Sie Datei [image] Speichern unter aus dem Menü, um das Dialogfeld Bibliothek speichern aufzurufen.

2	Geben Sie einen neuen Namen für die Bibliothek in das Textfeld Bibliothek ein, oder klicken Sie auf Durchsuchen, um das Datei-Dialogfeld des Betriebssystems zum Durchsuchen des Dateisystems anzuzeigen.

3	Geben Sie einen neuen Namen für die Bibliotheksdatei ein.

4	Klicken Sie auf OK, um die Bibliotheksdatei unter dem neuen Namen zu speichern.

So benennen Sie eine Bibliothek um, die bereits in einer Datei gespeichert wurde:

  Benennen Sie die Datei mit Hilfe des entsprechenden Verfahrens Ihres Betriebssystems um.

So benennen Sie eine Bibliothek um, die in der Datenbank gespeichert ist:

 Geben Sie den Befehl RENAME an der Interpreter-Eingabeaufforderung PL/SQL> ein. Zum Beispiel:

PL/SQL> .RENAME LIB LIB35 TO scott_lib


Zugriffsberechtigung für Bibliotheken erteilen und entziehen

  Verwandte Themen

Sie können den Zugriff auf Bibliotheken steuern, die im Dateisystem oder der Datenbank gespeichert sind, indem Sie Zugriffsberechtigungen für diese Bibliotheken erteilen und entziehen.

Um Zugriffsberechtigungen für im Dateisystem gespeicherte Bibliotheken zu erteilen bzw. zu entziehen, verwenden Sie die Verfahren Ihres Betriebssystems zum Erteilen bzw. Beschränken des Zugriffs auf Dateien.

Wenn Sie Zugriffsberechtigungen für in der Datenbank gespeicherte Bibliotheken erteilen bzw. entziehen möchten, stellen Sie zunächst sicher, daß die folgenden Bedingungen erfüllt sind:

•	Sie sind entweder der Eigentümer der Bibliothek oder sind selbst für die Bibliothek zugriffsberechtigt.

•	Der Benutzer, dem Sie die Zugriffsberechtigung erteilen möchten, verfügt über eine gültige Benutzer-ID für die aktuelle Datenbank.

•	Sie sind bei der Datenbank angemeldet.

So erteilen und entziehen Sie die Zugriffsberechtigung für Bibliotheken:

1	Klicken Sie im Objektnavigator unter dem Knoten Datenbankobjekte auf den untergeordneten Knoten, für den Sie die Datenbankberechtigung einstellen möchten.

2	Wählen Sie Datei [image] Verwaltung [image] Zugriff auf Bibliothek aus, um das Dialogfeld Liste der Zugriffsberechtigten anzuzeigen.

Um einen Benutzer zum Zugriff zu berechtigen, geben Sie die gültige ID des Datenbankbenutzers in das Feld Benutzer ein, und klicken Sie auf Hinzufügen.

Sie entziehen einem Benutzer die Zugriffsberechtigung, indem Sie die Benutzer-ID im Feld Liste markieren und auf Löschen klicken.

3	Klicken Sie auf OK, um das Dialogfeld zu schließen.


Bibliotheken löschen

  Verwandte Themen

So löschen Sie eine Datei, die eine Bibliothek enthält:

  Verwenden Sie das entsprechende Betriebssystemverfahren.

So löschen Sie eine in der Datenbank gespeicherte Bibliothek:

1	Klicken Sie auf den Bibliotheksknoten im Objektnavigator.

2	Klicken Sie in der Symbolleiste des Navigators auf [image].


Über den Ladepfad

Wenn Sie einen Befehl für ein PL/SQL-Dokument im Dateisystem aufrufen (beispielsweise LOAD, INTERPRET), den Speicherort (also den Verzeichnispfad) des Dokuments jedoch nicht vollständig angeben, verwendet Procedure Builder den sogenannten Ladepfad als Suchpfad.

Der Ladepfad umfaßt eine Reihe von Speicherorten oder Ordnern des Dateisystems. Die Ordner werden nacheinander durchsucht, bis das angegebene Dokument gefunden ist.


Ladepfad initialisieren

So initialisieren Sie den Ladepfad:

 	Sie können dem Ladepfad einen oder mehrere Ordner als Ausgangswerte zuweisen, indem Sie die Umgebungsvariable ORAPLSQLLOADPATH einstellen. Sie definieren ORAPLSQLLOADPATH genau wie andere Umgebungsvariablen auf Ihrem Betriebssystem, wobei Sie plattformspezifische Vorschriften wie beispielsweise Pfadlänge usw. beachten. In Microsoft Windows müssen Sie beispielsweise die Registrierung bearbeiten.

Unter UNIX können Sie den Ladepfad mit den Verzeichnissen /usr/plsql und /home/user initialisieren, indem Sie den folgenden Befehl von einer C-Shell aus eingeben:

setenv ORAPLSQLLOADPATH /usr/plsql:/home/user


Ordner zum Ladepfad hinzufügen

  Verwandte Themen

So fügen Sie einen Ordner zum Ladepfad hinzu:

 	Wenn Sie einen Ordner zum Ladepfad hinzufügen, sollten Sie sich zuerst überlegen, an welcher Stelle Sie den neuen Ordner in die Liste einfügen möchten. Die Ordner werden in der Reihenfolge durchsucht, in der sie aufgelistet sind.

Sie können die Einstellungen der Umgebungsvariable direkt bearbeiten oder den Befehl INSERT (load path) an der Interpreter-Eingabeaufforderung eingeben, um einen Pfad am Anfang oder Ende der Liste einzufügen.

So fügen Sie beispielsweise den Ordner C:\libraries am Ende des aktuellen Ladepfads ein:

PL/SQL> .INSERT LOADPATH DIRECTORY C:\libraries

Um den Ordner C:\libraries am Anfang des aktuellen Ladepfads hinzuzufügen, geben Sie den Befehl mit dem Schlüsselwort BEFORE an:

PL/SQL> .INSERT LOADPATH DIRECTORY C:\libraries BEFORE


Ladepfad anzeigen

  Verwandte Themen

So zeigen Sie den Ladepfad an:

 	Sie können überprüfen, welche Ordner momentan im Ladepfad enthalten sind. Dazu verwenden Sie entweder das Betriebssystemverfahren zum Anzeigen der Werte von Umgebungsvariablen, oder geben Sie den Befehl DESCRIBE (load path) an der Interpreter-Eingabeaufforderung ein:

PL/SQL> .DESCRIBE LOADPATH

Nun werden die momentan im Ladepfad enthaltenen Ordner in der Reihenfolge angezeigt, in der sie durchsucht werden.


Ladepfad löschen

  Verwandte Themen

So löschen Sie den Ladepfad:

 	Sie können die Einstellungen der Umgebungsvariable direkt bearbeiten oder den Befehl DELETE (load path) an der Interpreter-Eingabeaufforderung eingeben.

Sie geben beispielsweise folgenden Befehl ein, um alle Ordner aus dem aktuellen Ladepfad zu löschen:

PL/SQL> .DELETE LOADPATH


 Um festzustellen, ob Sie schon bei einem Schema angemeldet sind, überprüfen Sie den Knoten Datenbankobjekte. Wenn er eingeblendet ist oder ein Pluszeichen enthält, sind Sie schon angemeldet.


Über Interpreter-Skripts

Ein Interpreter-Skript kann eine beliebige Kombination aus PL/SQL-Quellcode, Interpreter-Befehlen und SQL-Anweisungen enthalten. Sie führen ein Interpreter-Skript aus (oder lassen es ablaufen), indem Sie es mit dem Befehl INTERPRET in Procedure Builder laden oder von der Befehlszeile aus im Stapelmodus ausführen.

Sie können die meisten Aktionen in Procedure Builder über die in der Schnittstelle enthaltenen Menüs und Dialogfelder oder mit Hilfe von Interpreter-Befehlen durchführen. Interpreter-Skripts sind sehr effektive Hilfsmittel zum Aufzeichnen und Speichern von Interpreter-Befehlen, die Sie zur Durchführung routinemäßiger Aktionen verwenden.


Über Programmblöcke in Skripts

Wenn Sie einen Ihrer PL/SQL-Programmblöcke innerhalb des Skripts aufrufen möchten, sollten Sie anhand der folgenden Kriterien die beste Methode dafür feststellen:

•	Definieren Sie den Programmblock innerhalb des Skripts, und rufen Sie ihn dann auf, um ihn auszuführen. Der Programmblock wird beim Aufruf kompiliert.

•	Definieren und debuggen Sie den Programmblock im Programmblock-Editor, laden Sie ihn dann mit dem Befehl LOAD in das Skript, und rufen Sie ihn dann auf. Der Programmblock wird beim Laden kompiliert.

•	Definieren und debuggen Sie den Programmblock im Programmblock-Editor, und fügen Sie ihn dann zu einer Bibliothek hinzu. Ordnen Sie die Bibliothek mit dem Befehl ATTACH zu, und rufen Sie den Programmblock dann auf. Der Programmblock ist bereits kompiliert.


Interpreter-Skripts erstellen oder bearbeiten

So erstellen oder bearbeiten Sie ein Interpreter-Skript:

 Sie können Interpreter-Skripts mit jedem Editor erstellen und bearbeiten, mit dem sich Dateien als ASCII-Text speichern lassen. Die standardmäßige Dateinamenerweiterung für Interpreter-Skripts ist .pld.


Skripts in Interpreter ausführen

So führen Sie ein Interpreter-Skript in Interpreter aus:

1	Wählen Sie Datei [image] Interpretieren aus dem Menü, um das Dialogfeld Debug-Skript interpretieren aufzurufen.

2	Geben Sie Speicherort und Name des Interpreter-Skripts in das Textfeld Datei ein, oder klicken Sie auf Durchsuchen, um das Datei-Dialogfeld des Betriebssystems zum Durchsuchen des Dateisystems anzuzeigen.

Interpreter-Skripts wird standardmäßig die Erweiterung .pld zugewiesen.

3	Wählen Sie das Kontrollkästchen Echo, damit die Skript-Befehle während der Interpretation wiedergegeben werden.

4	Wählen Sie das Kontrollkästchen Ton aus, um die Wiedergabe von Befehlen und Fehlermeldungen im Interpreter zu unterdrücken.

5	Wählen Sie das Kontrollkästchen Bestätigungen unterdrücken, um Bestätigungsmeldungen während der Verarbeitung der Skripts zu unterdrücken.

6	Klicken Sie auf Interpretieren, um die Einstellungen zu akzeptieren und das Interpreter-Skript auszuführen.

Procedure Builder gibt den Befehl .INTERPRET FILE Dateiname im Interpreter-Ausschnitt wieder. Das Interpreter-Skript wird ausgeführt.

Interpreter-Skripts können eine beliebige Kombination aus PL/SQL-Programmblockquellen, Procedure Builder-Befehlen und SQL-Befehlen enthalten


Skripts im Stapelmodus ausführen

  Beispiel

So führen Sie ein Skript im Stapelmodus aus (Microsoft Windows):

  Verwenden Sie Start [image] Ausführen aus der Windows Task-Leiste, um folgende Syntax einzugeben:

  de60 FILE={scriptname.pld}

Hinweise:

•	Die Ausführung von Skripts im Stapelmodus von einer DOS-Eingabeaufforderung wird nicht unterstützt.

•	Um ein Skript unter Microsoft Windows im Zeilenmodus auszuführen, verwenden Sie Start [image] Programme [image] Forms Developer 6i [image] Procedure Builder - Zeilenmodus aus der Windows Task-Leiste.

So führen Sie ein Skript im Stapelmodus aus (UNIX):

  Geben Sie folgende Syntax ein:

  debld60 MODE={batch | line} FILE={scriptname.pld}

Verwenden Sie MODE=batch, um das Skript im Hintergrund auszuführen. Verwenden Sie MODE=line, um das Skript im Zeilenmodus auszuführen.


Beispiel: Skripts im Stapelmodus ausführen

/* If you want a permanent record of the script run, use the
** LOG command within your script.  For example:
*/

.LOG FILE logfile
...
...
.LOG OFF
.QUIT NOCONFIRM


Datenbank-Trigger erstellen

  Verwandte Themen

So erstellen Sie einen Datenbank-Trigger:

1	Wählen Sie Programm [image] Datenbanktrigger-Editor, um den Datenbanktrigger-Editor anzuzeigen.

2	Wählen Sie den Namen eines Tabelleneigentümers oder eines Schemas aus der Dropdown-Liste Eigentümer Tabelle.

3	Wählen Sie Tabelle oder Ansicht. (Ansicht ist nur verfügbar, wenn Sie bei einer Oracle8-Datenbank angemeldet sind.)

4	Wählen Sie einen Tabellen- oder Ansichtnamen aus der Dropdown-Liste Tabelle/Ansicht.

5	Klicken Sie auf Neu, um einen neuen Datenbank-Trigger zu erstellen.

Dem neuen Trigger wird automatisch ein eindeutiger Triggername (bezogen auf die anderen trigger in demselben Schema) in der Dropdown-Liste Name zugewiesen. Sie können den Triggernamen ändern.

6	Geben Sie die Option Triggerauslösend an:

•	Klicken Sie auf Vor, um anzugeben, daß Oracle den Trigger auslöst, bevor die triggerauslösende Anweisung ausgeführt wird. Diese Option ist nur für Tabellen gültig.

•	Klicken Sie auf Nach, um anzugeben, daß Oracle den Trigger nach Ausführung der triggerauslösenden Anweisung auslöst. Diese Option ist nur für Tabellen gültig.

•	Klicken Sie auf Anstelle von, um anzugeben, daß Oracle den Trigger auslöst, anstatt die triggerauslösende Anweisung auszuführen. Diese Option ist nur für Views gültig. INSTEAD OF-Trigger führen die Aktualisieren-, Einfügen- oder Löschenvorgänge direkt in Basistabellen der View aus.

7	Geben Sie die triggerauslösende SQL-Anweisung an, die den Trigger auslöst. (Sie können mehrere triggerauslösende Anweisungen angeben.)

•	UPDATE-Wählen Sie dieses Kontrollkästchen, damit Oracle den Trigger immer dann auslöst, wenn eine UPDATE-Anweisung einen Wert in einer der Spalten ändert, die in dem Listenfeld Von Spalten angegeben wird.

•	INSERT- Wählen Sie dieses Kontrollkästchen, damit Oracle den Trigger immer dann auslöst, wenn eine INSERT-Anweisung eine Zeile zu der Tabelle hinzufügt.

•	DELETE-Wählen Sie dieses Kontrollkästchen, damit Oracle den Trigger immer dann auslöst, wenn eine DELETE-Anweisung eine Zeile aus der Tabelle entfernt.

8	Wenn Sie UPDATE als triggerauslösendes Ereignis auswählen,  können Sie eine optionale Liste Von Spalten angeben, die in der triggerauslösenden Anweisung aufgenommen werden soll.

In dem Listenfeld Von Spalten wird eine Liste mit Spaltennamen für die Tabelle angezeigt, auf der Sie einen Trigger definieren Klicken Sie auf eine oder mehrere Spalten, um anzugeben, daß dieser Trigger nur dann ausgelöst wird, wenn eine der ausgewählten Spalten aktualisiert wird.

Wenn der Trigger ausgelöst werden soll, wenn eine beliebige Spalte in der Tabelle aktualisiert wird, klicken Sie auf keinen der Spaltennamen in der Liste.

Das Listenfeld Von Spalten ist bei INSTEAD OF-Triggern nicht verfügbar. Oracle löst INSTEAD OF-Trigger immer dann aus, wenn eine UPDATE-Anweisung einen Wert in einer Spalte der View ändert.

9	Geben Sie bei BEFORE- und AFTER-Triggern an, ob der Trigger für jede Anweisung oder Zeile ausgelöst werden soll:

•	Klicken Sie auf Anweisung, damit Oracle den Trigger nur einmal auslöst, wenn die triggerauslösende Anweisung abgesetzt wird (ungeachtet der Anzahl von betroffenen Zeilen), wenn der optionale SQL-Ausdruck im Feld When erfüllt ist.

•	Klicken Sie auf Zeile, damit Oracle den Trigger einmal für jede Zeile ausführt, die von der triggerauslösenden Anweisung betroffen ist, und die Bedingung erfüllt, die von dem optionalen SQL-Ausdruck im Feld When definiert wird.

10	Bei Zeilen-Triggern können Sie Korrelationsnamen wie folgt angeben:

•	Geben Sie einen Korrelationsnamen in das Textfeld OLD als ein, um einen Namenskonflikt zwischen dem Korrelationsnamen und einer Table mit der Bezeichnung Old zu vermeiden.

•	Geben Sie einen Korrelationsnamen in das Textfeld NEW als ein, um einen Namenskonflikt zwischen dem Korrelationsnamen und einer Tabelle mit der Bezeichnung New zu vermeiden.

11	Bei Zeilen-Triggern können Sie eine Trigger-Einschränkung aufnehmen, indem Sie einen Booleschen SQL-Ausdruck im Textfeld When angeben.

Wenn eine Trigger-Einschränkung angegeben wird, löst Oracle den Trigger nur aus, wenn die Auswertung des SQL-Ausdrucks TRUE ergibt. Der SQL-Ausdruck kann Korrelationsnamen enthalten, die speziell die alten und neuen Werte in der aktuellen Zeile referenzieren. Er kann keine Unterabfragen oder PL/SQL-Ausdrücke enthalten.

12	Geben Sie die PL/SQL- und SQL-Anweisung in das Textfeld Trigger-Rumpf ein.

Der Trigger-Rumpf ist ein PL/SQL-Block, der ausgeführt wird, wenn die triggerauslösende Anweisung abgesetzt wird und die Auswertung der optionalen Trigger-Einschränkung (wie im Textfeld When definiert) TRUE ergibt. Er muß die Schlüsselwörter BEGIN und END enthalten und entspricht einer gespeicherten Prozedur. Ein Trigger kann SQL- und PL/SQL-Anweisungen enthalten, und andere gespeicherte Prozeduren aufrufen. Er kann keine SQL-Anweisungen zur Transkationskontrolle enthalten, wie COMMIT und ROLLBACK.

Bei Zeilen-Triggern können Sie Korrelationsnamen im Trigger-Rumpf aufnehmen, um alte und neue Werte speziell in der aktuellen Zeile zu referenzieren. Wenn mehr als eine triggerauslösende Anweisung den Zeilen-Trigger auslösen kann, können Sie auch die bedingten Prädikate INSERTING, DELETING und UPDATING verwenden, um bestimmte Codeblöcke im Trigger-Rumpf auszuführen.

13	Klicken Sie auf Speichern, um den Trigger zu kompilieren und in der Datenbank zu speichern.

Wenn in einem Meldungsfeld eine Fehlermeldung angezeigt wird, klicken Sie auf OK, um dieses Feld zu schließen. Bearbeiten Sie den Trigger, und kompilieren Sie ihn neu.


Datenbank-Trigger bearbeiten

  Verwandte Themen

So bearbeiten Sie einen Datenbank-Trigger:

1	Wählen Sie Programm [image] Datenbanktrigger-Editor, um den Datenbanktrigger-Editor aufzurufen.

2	Wählen Sie den Speicherort und Namen des Datenbank-Triggers mit den Dropdown-Listen Eigentümertabelle, Tabelle/Ansicht und Name.

3	Bearbeiten Sie den Inhalt bzw. die Attribute des Datenbank-Triggers.

4	Klicken Sie auf Speichern, um die Änderungen an dem Trigger zu speichern.

Wenn ein Meldungsfeld mit einer Fehlermeldung angezeigt wird, klicken Sie auf OK, um das Feld zu schließen. Bearbeiten Sie den Trigger, und kompilieren Sie ihn neu.


Datenbank-Trigger deaktivieren

So deaktivieren Sie einen Datenbank-Trigger:

1	Klicken Sie im Objektnavigator auf den Datenbank-Trigger.

2	Wählen Sie Deaktivieren aus dem Popup-Menü, oder wählen Sie Navigator [image] Deaktivieren aus dem Menü, um den ausgewählten Trigger vorübergehend zu deaktivieren.

Beachten Sie, daß neben dem Namen des Datenbank-Triggers im Objektnavigator ein Stern angezeigt wird, mit dem angegeben wird, daß der Trigger deaktiviert ist.


Datenbank-Trigger aktivieren

So aktivieren Sie einen Datenbank-Trigger:

1	Klicken Sie im Objektnavigator auf den Datenbank-Trigger.

2	Wählen Sie Aktivieren aus dem Popup-Menü, oder wählen Sie Navigator [image] Aktivieren aus dem Menü, um den deaktivierten Datenbank-Trigger zu aktivieren.

Beachten Sie, daß der Stern neben dem Namen des Datenbank-Triggers im Objektnavigator gelöscht wird, womit angegeben wird, daß der Trigger wieder aktiviert ist.


Datenbank-Trigger löschen

So löschen Sie einen Datenbank-Trigger:

1	Wählen Sie Programm [image] Datenbanktrigger-Editor, um den Datenbanktrigger-Editor anzuzeigen.

2	Wählen Sie den Datenbank-Trigger mit den Dropdown-Listen Eigentümertabelle, Tabelle/Ansicht und Name.

3	Klicken Sie auf Löschen, um den Datenbank-Trigger aus der Datenbank zu löschen.


Über dynamische Bibliotheken

Mit Programmiersprachen der dritten Generation erstellte Bibliotheken müssen normalerweise zu einem ausführbaren Programm verknüpft werden, damit die in ihnen enthaltenen Funktionen aufgerufen werden können. Eine dynamische Bibliothek kann jedoch als eigenständige Datei vorliegen und von ausführbaren Programmen referenziert werden. Bei den verschiedenen Plattformen tragen diese Bibliotheken unterschiedliche Bezeichnungen. Bei Microsoft Windows werden sie beispielsweise als "DLLs" (Dynamic Link Libraries = dynamische Verknüpfungsbibliotheken) bezeichnet, bei UNIX-Systemen spricht man dagegen meist von "gemeinsam genutzten Bibliotheken".

Mit Procedure Builder können Sie in dynamischen Bibliotheken enthaltene Funktionen innerhalb von PL/SQL aufrufen.


Über Schnittstellen für Fremdfunktionen

  Verwandte Themen

Mit Programmiersprachen der dritten Generation erstellte Routinen in einer dynamischen Bibliothek sind PL/SQL zunächst unbekannt und werden deshalb Fremdfunktionen genannt. Procedure Builder bietet eine PL/SQL-Schnittstelle zum Aufrufen von Fremdfunktionen, und zwar in Form des PL/SQL-Pakets ORA_FFI.

Das Paket ORA_FFI enthält folgende PL/SQL-Konstrukte:

Unterprogramme	Liefern Ihrer Anwendung Informationen über Speicherort und Definition der Funktionen, die Sie aufrufen möchten.
Datentypen	Enthalten Informationen über Status und Struktur definierter Funktionen.
Konstanten	Werden als Argumente für Unterprogramme im Paket ORA_FFI verwendet.
Hinweis:  Die Schnittstelle für Fremdfunktionen unterstützt dynamische Bibliotheken, die die Aufrufstandards von C oder Pascal verwenden. Gleitkommaargumente müssen in Argumente mit doppelter Genauigkeit konvertiert werden.  Wenn Sie ANSI-Deklarationen verwenden müssen, benutzen Sie nur Argumente mit doppelter Genauigkeit in Ihrem Code. Weitere Informationen dazu finden Sie in der Dokumentation zu Ihrem Compiler.


Fremdfunktionen initialisieren

  Beispiele 	  Verwandte Themen

So initialisieren Sie eine Fremdfunktion:

1	Laden Sie die Bibliothek.

2	Registrieren Sie die Fremdfunktionen.

3	Registrieren Sie die Parameter.

4	Registrieren Sie den Rückgabewert.


Bibliothek laden

  Beispiele	  Nächster Schritt

So laden Sie die Bibliothek:

 Bevor Sie eine Funktion aufrufen können, die sich in einer dynamischen Bibliothek befindet, müssen Sie die Bibliothek in Ihre Anwendung laden. Verwenden Sie dazu die Funktion Ora_FfiI.Load_Library.

Die folgende Anweisung lädt zum Beispiel die Bibliothek mylib.dll, die sich im Verzeichnis C:\utils\libs befindet:

lib_handle := Ora_Ffi.Load_Library('C:\utils\libs\',
                                   'mylib.dll');

Hinweis: Wenn Sie einen Bibliotheksspeicherort angeben, müssen Sie die Verzeichnisangabe bei Microsoft Windows unbedingt mit einem abschließenden umgekehrten Schrägstrich beenden. Bei UNIX-Plattformen müssen Sie den Verzeichnispfad mit einem Schrägstrich beenden.

ORA_FFI.Load_Library ist eine Funktion, die ein Handle (d.h. einen Zeiger) für die angegebene Bibliothek zurückgibt. Dieses Handle hat den Datentyp ORA_FFI.Libhandletype. Sie können dieses Handle dann in anderen ORA_FFI-Konstrukten dazu verwenden, die Bibliothek eindeutig zu benennen.


Fremdfunktionen registrieren

  Beispiele	   Nächster Schritt

So registrieren Sie die Fremdfunktion:

 Nachdem Sie die Bibliothek geladen haben, müssen Sie jede der in der Bibliothek enthaltenen Funktionen registrieren, die Sie aufrufen möchten. Dies informiert Ihre Anwendung darüber, wo sie die aufgerufene Funktion findet und welchen Aufrufstandard (C oder Pascal) die Funktion verwendet. Geben Sie diese Informationen mit Ora_Ffi.Register_Function an.

Die nachfolgende Anweisung registriert beispielsweise die Fremdfunktion myfunc, die in der von lib_handle angegebenen Bibliothek enthalten ist:

ff_handle := Ora_Ffi.Register_Function(lib_handle,
                                       'myfunc');

Ora_Ffi.Register_Function ist eine Funktion, die ein Handle (d.h. einen Zeiger) für die angegebene Fremdfunktion zurückgibt. Dieses Handle hat den Datentyp Ora_Ffi.Funchandletype. Sie können dieses Handle dann in anderen ORA_FFI-Konstrukten dazu verwenden, die Fremdfunktion eindeutig zu benennen.


 Parameter registrieren

  Beispiele	   Nächster Schritt

So registrieren Sie Parameter:

Falls die Fremdfunktion Argumente akzeptiert, müssen Sie diese in Ihrer Anwendung registrieren. Dies weist Ihre Anwendung an, wie sie den PL/SQL-Datentyp der einzelnen Argumente einem C-Datentyp zuordnen soll. Geben Sie diese Informationen mit Hilfe der Funktion Ora_Ffi.Register_Parameter an.

Sie müssen die Argumente in der Reihenfolge registrieren, in der sie in der Definition der C-Funktion aufgeführt sind.

Nehmen wir einmal die folgende Definition einer C-Funktion als Beispiel:

void show_error(int errnum, char *errmsg)

Wenn wir voraussetzen, daß die Variable ff_handle ein Handle für diese registrierte Fremdfunktion ist, registrieren die folgenden Anweisungen die beiden Argumente der Funktion:

Ora_Ffi.Register_Parameter(ff_handle, Ora_Ffi.C_Int);
Ora_Ffi.Register_Parameter(ff_handle, Ora_Ffi.C_Char_Ptr);


 Rückgabewert registrieren

  Beispiele

So registrieren Sie einen Rückgabewert:

 Falls der Rückgabetyp der Fremdfunktion nicht der C-Rückgabetyp void ist, müssen Sie den Rückgabetyp in Ihrer Anwendung registrieren. Geben Sie diese Informationen mit Hilfe der Funktion Ora_Ffi.Register_Return an.

Nehmen wir einmal die folgende Definition einer C-Funktion als Beispiel:

int to_power(int x, float y)

Wenn wir voraussetzen, daß die Variable ff_handle ein Handle für diese registrierte Fremdfunktion ist, registriert die folgende Anweisung den Rückgabetyp der Funktion:

Ora_Ffi.Register_Return(ff_handle, Ora_Ffi.C_Int);


 PL/SQL-Schnittstelle zu einer Fremdfunktion erstellen

  Beispiele	  Verwandte Themen

So erstellen Sie eine PL/SQL-Schnittstelle zu einer Fremdfunktion:

1	Verknüpfen Sie ein Unterprogramm mit der Fremdfunktion.

2	Bilden Sie die Definition der Fremdfunktion in der Spezifikation des Unterprogramms nach.

Innerhalb Ihrer PL/SQL-Programmblöcke können Sie nur andere PL/SQL-Konstrukte aufrufen. Sie müssen deshalb ein PL/SQL-Unterprogramm erstellen, das mit dynamischen Bibliotheken kommunizieren kann. Zum Aufrufen der Fremdfunktion rufen Sie dann stattdessen dieses Unterprogramm auf.


Unterprogramme mit einer Fremdfunktion verknüpfen

  Beispiele	   Nächster Schritt

So verknüpfen Sie ein Unterprogramm mit einer Fremdfunktion:

 Ein Unterprogramm, das eine Fremdfunktion aufruft, muß über mindestens einen Parameter verfügen, und der erste Parameter muß ein Handle für diese Fremdfunktion sein. Mit Hilfe der folgenden ORA_FFI-Funktionen können Sie ein Handle für eine Fremdfunktion ermitteln:

•	Ora_Ffi.Find_Function

•	Ora_Ffi.Register_Function

Es folgt ein Beispiel für ein PL/SQL-Unterprogramm, das eine Fremdfunktion aufruft:

PROCEDURE sp_name(ff_handle Ora_Ffi.Funchandletype);
  PRAGMA interface(C, sp_name, 11265);

In diesem Beispiel ist ff_handle ist ein Handle für die Fremdfunktion und sü_name der Name des Unterprogramms.. Beim Aufruf dieser Prozedur übergibt die Anweisung PRAGMA die Steuerung an eine Speicherposition in Ihrem Oracle-Produkt, die mit dynamischen Bibliotheken kommunizieren kann.

Wichtig:  Bis auf den Unterprogrammnamen muß die Anweisung PRAGMA genau wie oben angegeben im Unterprogrammrumpf enthalten sein. In Beispiel 1A für ORA_FFI wird das Unterprogramm mathlib definiert. Das Unterprogramm mathlib umfaßt eine PRAGMA-Anweisung für den Aufruf der C-Funktion pow, die eine Zahl in eine bestimmte Potenz erhöht.

Hinweis:  Die Funktion Ora_Ffi.Generate_Foreign generiert automatisch ein Paket mit PL/SQL-Code, das alle erforderlichen PRAGMA-Anweisungen umfaßt, für alle Fremdfunktionen, die in einer dynamischen Bibliothek definiert sind. Das Beiepiel 1B für ORA_FFI 1B verwendet die Funktion Ora_Ffi.Generate_Foreign anstelle einer PRAGMA-Anweisung, um das Unterprogramm mathlib' zu definieren, das wiederum die C-Funktion pow aufruft, um eine Zahl in eine bestimmte Potenz zu erhöhen.


Definition der Fremdfunktion nachbilden

  Beispiele	  Verwandte Themen

So bilden Sie die Definition der Fremdfunktion nach:

 Das Unterprogramm, das Sie definieren, hat einen direkten Bezug zu einer Fremdfunktion und muß folglich die Definition dieser Funktion nachbilden. Nehmen wir einmal die folgende Definition einer C-Funktion in einer dynamischen Bibliothek als Beispiel:

float tax(float amt, float rate)

Um diese Fremdfunktion in einem PL/SQL-Unterprogramm nachzubilden, müssen Sie eine PL/SQL-Funktion mit zwei NUMBER-Parametern und einem NUMBER-Rückgabetyp erstellen:

FUNCTION ffi_tax(ff_handle Ora_Ffi.FUNCHANDLETYPE,
                 x NUMBER, y NUMBER)
  RETURN NUMBER;
  PRAGMA interface(C, ffi_tax, tax, 11265);

Hier ist ein weiteres Beispiel für die Definition einer C-Funktion:

void show_message(char *msg)

Dieser C-Funktion gibt keinen Wert zurück, Sie sollten sie also mit einer PL/SQL-Prozedur verknüpfen, die einen VARCHAR2-Parameter akzeptiert:

PROCEDURE ffi_show_message(ff_handle Ora_Ffi.FUNCHANDLETYPE,
                           msg IN OUT VARCHAR2);
  PRAGMA interface(C, ffi_show_message, show_message, 11265);

Denken Sie daran, daß das Handle für die Fremdfunktion der erste Parameter sein muß, den Sie an das Unterprogramm übergeben.


C-Typen in PL/SQL-Typen konvertieren

So konvertieren Sie C-Typen in PL/SQL-Typen:

 Die Parameterdefinition und der Rückgabetyp des PL/SQL-Unterprogramms hängen vom entsprechenden C-Datentyp ab. Die folgende Tabelle zeigt die Beziehung zwischen einem C-Datentyp und die für ihn benötigte PL/SQL-Parameterdefinition bzw. den erforderlichen Rückgabetyp:

C-Datentyp	PL/SQL-Parameter	PL/SQL-Rückgabetyp
char	IN VARCHAR2	VARCHAR2
char *	IN OUT VARCHAR2	VARCHAR2
double	IN NUMBER	NUMBER
double *	IN OUT NUMBER	NUMBER
float	IN NUMBER	NUMBER
float *	IN OUT NUMBER	NUMBER
int	IN PLS_INTEGER	PLS_INTEGER
int *	IN OUT PLS_INTEGER	PLS_INTEGER
long int	IN PLS_INTEGER	PLS_INTEGER
long int *	IN OUT PLS_INTEGER	PLS_INTEGER
short	IN PLS_INTEGER	PLS_INTEGER
short *	IN OUT PLS_INTEGER	PLS_INTEGER
void *	IN OUT Ora_Ffi.Pointertype	Ora_Ffi.Pointertype


Beispiel 1A für ORA_FFI

  Verwandte Themen

Dies ist ein Beispiel für eine C-Funktion aus einer dynamischen Bibliothek mathlib und die PL/SQL-Konstrukten, mit denen diese in Procedure Builder aufgerufen wird.

Hinweis: Sie erleichtern sich das Registrieren und Verwalten von Fremdfunktionen, wenn Sie alle PL/SQL-Konstrukte für eine Bibliothek in einem PL/SQL-Paket plazieren. So können Sie vereinfachte Unterprogramme erstellen, bei denen Sie nicht bei jedem Aufruf Handles für Fremdfunktionen übergeben müssen.

Sie möchten eine Schnittestelle für der C-Funktion pow erstellen, die in der folgenden Microsoft Windows Laufzeitbibliothek gespeichert ist:  C:\windows\system\msvcrt.dll. (Die Funktion pow erhebt x in die Potenz y.)

int pow(int x, int y)

Zuerst erstellen Sie eine Paketspezifikation, die die Bibliothek repräsentiert und die PL/SQL-Funktion definiert, die Sie aufrufen möchten:

PACKAGE mathlib IS
   FUNCTION pow(x NUMBER, y NUMBER)
     RETURN NUMBER;
END;

Sie müßten nun die oben definierte PL/SQL-Funktion mathlib.pow aufrufen, um die Fremdfunktion pow in der dynamischen Bibliothek msvcrt.dll.  aufzurufen.

Beachten Sie, daß dieses Unterprogramm kein Handle für die Bibliothek oder die Fremdfunktion benötigt. Zur Arbeitserleichterung werden die verschiedenen Registrierungen im nachfolgend definierten Paketrumpf verarbeitet.

Hinweis: Dieses Beispiel verwendet eine PRAGMA-Compileranweisung, um den PL/SQL-Compiler anzuweisen, daß die Funktion ff_to_power tatsächlich als C-Funktion und nicht als PL/SQL kompiliert werden muß. In Beispiel lB für ORA_FFI wird dargestellt, wie dasselbe Ergebnis mit der Funktion Ora_Ffi.Generate_Foreign erzielt wird, mit der ein PL/SQL-Paket mathlib generiert wird. In Beispiel 1B wird die PRAGMA-Anweisung automatisch von der Funktion Ora_Ffi.Generate_Foreign verarbeitet.

PACKAGE BODY mathlib IS
  /* Declare the library and function handles. */
  mathlib_lhandle   Ora_Ffi.Libhandletype;
  to_power_fhandle  Ora_Ffi.Funchandletype;

  /* Create the PL/SQL function that will actually */
  /* invoke the foreign function.                  */
  FUNCTION ff_to_power(fhandle Ora_Ffi.Funchandletype,
         x NUMBER, y NUMBER)RETURN NUMBER;
  PRAGMA interface(C, ff_to_power, 11265);

  /* Create the PL/SQL function that is defined in */
  /* the package spec.  This function simply       */
  /* passes along the arguments it receives to     */
  /* ff_to_power (defined above), prepending the   */
  /* foreign function handle to the argument List. */
  FUNCTION pow(x NUMBER, y NUMBER) RETURN NUMBER IS
  BEGIN
    RETURN(ff_to_power(to_power_fhandle, x, y));
  END pow;

/* Define the body of package mathlib */
BEGIN

  /* Load the library. */
  mathlib_lhandle := Ora_Ffi.Load_Library
         ('C:\WINDOWS\SYSTEM\', 'msvcrt.dll');

  /* Register the foreign function. */
  to_power_fhandle := Ora_Ffi.Register_Function
         (mathlib_lhandle, 'pow', Ora_Ffi.C_Std);

  /* Register both parameters of function to_power. */
  Ora_Ffi.Register_Parameter (to_power_fhandle,
                             Ora_Ffi.C_DOUBLE);
  Ora_Ffi.Register_Parameter(to_power_fhandle,
                             Ora_Ffi.C_DOUBLE);

  /* Register the return type. */
  Ora_Ffi.Register_Return (to_power_fhandle, Ora_Ffi.C_DOUBLE);

END;  /* Package Body Mathlib */

Um die C-Funktion pow aus mscvrt.dll aufzurufen, rufen Sie einfach die PL/SQL-Funktion pow auf, die in der Paketspezifikation mathlib definiert ist. Zum Beispiel:

PL/SQL>

PROCEDURE raise_to_power (a in number, b in number) IS
   BEGIN
      text_io.put_line(mathlib.pow(a,b));
   END;

PL/SQL> raise_to_power(2,9);

512


Beispiel lB für ORA_FFI

  Verwandte Themen

Das nächste Biespiel ist eine Alternative zur Implementierung der C-Funktion pow, die in Beispiel 1A für ORA_FFI dargestellt wird  Dieses Beispiel benutzt die Funktion Ora_Ffi.Generate_Foreign, um ein PL/SQL-Paket zu generieren. Die PRAGMA-Compileranweisung, die für das Kompilieren der C-Fremdfunktion erforderlich ist, wird automatisch in dem generierten Paket aufgenommen, wird also in dem unten dargestellten Paketrumpf nicht benutzt.

/* Create package mathlib that will generate a PL/SQL
package using a foreign file C function to raise a
number to a power. The parameter, pkg_name, lets you
specify the name of the generated package. */
PACKAGE mathgen IS
   PROCEDURE gen(pkg_name IN VARCHAR2);
END;

PACKAGE BODY mathgen IS
   /* Define the 'gen' procedure that will generate the
      foreign file package. */
   PROCEDURE gen(pkg_name IN VARCHAR2) IS
      /* Declare the library and function handles. */
      mathlib_lhandle   Ora_Ffi.Libhandletype ;
      to_power_fhandle  Ora_Ffi.Funchandletype ;

   BEGIN   /* package body mathlib */
      /* Load the library. */
      mathlib_lhandle := Ora_Ffi.Load_Library
         ('C:\WINDOWS\SYSTEM\', 'msvcrt.dll');

      /* Register the foreign function. */
      to_power_fhandle := Ora_Ffi.Register_Function
         (mathlib_lhandle, 'pow', Ora_Ffi.C_Std);

      /* Register both parameters of the foreign function. */
      Ora_Ffi.Register_Parameter (to_power_fhandle,
                             Ora_Ffi.C_DOUBLE);
      Ora_Ffi.Register_Parameter(to_power_fhandle,
                             Ora_Ffi.C_DOUBLE);

      /* Register the return type of the foreign function. */
      Ora_Ffi.Register_Return (to_power_fhandle, Ora_Ffi.C_DOUBLE);

      /* Generate a PL/SQL package containing the foreign C function,
         'pow.' You can name the new package by specifying a value
          for the parameter, pkg_name, when you generate the package. */
      Ora_Ffi.generate_foreign(mathlib_lhandle, pkg_name);

   END; /* Procedure gen */
END; /* Package Body mathgen */

Um eine Zahl mit dieser Methode in eine Potenz zu erheben, müssen Sie zuerst ein PL/SQL-Paket generieren, wobei Sie das Paket mathgen und die Prozedur gen verwenden. Wenn das generierte PL/SQL-Potenzpaket z.B. den Namen mathlib haben soll, würden Sie es wie folgt generieren:

PL/SQL> mathgen.gen('mathlib');

Um die Potenzfunktion dann aus dem Paket mathlib aufzurufen, würden Sie eine Prozedur wie die folgende schreiben:

PROCEDURE raise_to_power (a in number, b in number) IS
   BEGIN
      text_io.put_line(mathlib.pow(a,b));
   END;

PL/SQL> raise_to_power(5,2);

25


Beispiel 2 für ORA_FFI

  Verwandte Themen

Dies ist ein Beispiel für die Darstellung von C-Funktionen aus einer dynamischen Bildbibliothek und die PL/SQL-Konstrukute, mit denen diese in Procedure Builder aufgerufen werden.

Hinweis: Um die Registrierung und Verwaltung von Fremdfunktionen zu vereinfachen, wird empfohlen, daß Sie alle zusammengehörigen PL/SQL-Konstruktue in eine einzige Bibliothek in einem PL/SQL-Paket setzen. Auf diese Weise können Sie vereinfachte Unterprogramme erstellen, bei denen Sie keine Fremdfunktions-Handles bei jedem Aufruf übergeben müssen.

Sie möchten eine Schnittstelle zu den folgenden C-Funktionen erstellen, die sich in der Bibliothek C:\oralibs\imglib.dll befinden:

void *get_image(char *imgkey)
void show_image(void *binimage, float iscale)

Wir nehmen jetzt an, daß die Funktion get_image ein Schlüsselwortargument zum Laden von Bilddaten verwendet und dann einen allgemeinen Zeiger (also einen Zeiger nicht festgelegten Typs) auf diese binären Daten zurückgibt. Danach übergeben Sie den Zeiger und einen Skalierfaktor an die Funktion show_image, die das Bild auf dem Bildschirm anzeigt.

Zuerst erstellen Sie eine Paketspezifikation, die die Bibliothek repräsentiert und die PL/SQL-Funktionen definiert, die Sie aufrufen möchten:

PACKAGE imglib IS
  FUNCTION get_image(ikey IN OUT VARCHAR2)
    RETURN Ora_Ffi.Pointertype;

  PROCEDURE show_image(idata IN OUT Ora_Ffi.POINTERTYPE,
                       iscale NUMBER);
END;   /* package imglib */

Es folgt die Definition des Paketrumpfs:

PACKAGE BODY imglib IS
  /* Declare the library and function handles. */
  imglib_lhandle      Ora_Ffi.Libhandletype;
  get_image_fhandle   Ora_Ffi.Funchandletype;
  show_image_fhandle  Ora_Ffi.Funchandletype;

  /* Create the PL/SQL function that will actually  */
  /* invoke the 'get_image' foreign function.      */
  FUNCTION ff_get_image(fhandle Ora_Ffi.FUNCHANDLETYPE,
                        ikey IN OUT VARCHAR2)
    RETURN Ora_Ffi.Pointertype;
    PRAGMA interface(C, ff_get_image, 11265);

  /* Create the 'get_image' PL/SQL function that is */
  /* defined in the package spec.                   */
  FUNCTION get_image(ikey IN OUT VARCHAR2)
    RETURN Ora_Ffi.Pointertype IS
  BEGIN
    RETURN(ff_get_image(get_image_fhandle, ikey));
  END;   /* function get_image */

  /* Create the PL/SQL procedure that will actually */
  /* invoke the 'show_image' foreign function.      */
  PROCEDURE ff_show_image(fhandle Ora_Ffi.FUNCHANDLETYPE,
                          idata IN OUT Ora_Ffi.POINTERTYPE,
                          iscale NUMBER);
    PRAGMA interface(C, ff_show_image, 11265);

  /* Create the 'show_image' PL/SQL procedure that is */
  /* defined in the package spec.                     */
  PROCEDURE show_image(idata IN OUT Ora_Ffi.POINTERTYPE,
                       iscale NUMBER) IS
  BEGIN
    ff_show_image(show_image_fhandle, idata, iscale);
  END;   /* procedure show_image */

BEGIN   /* package body imglib */

  /* Load the library. */
  imglib_lhandle := Ora_Ffi.Load_Library
         ('C:\oralibs\', 'imglib.dll');

  /* Register the foreign functions. */
  get_image_fhandle := Ora_Ffi.Register_Function
         (imglib_lhandle, 'get_image', Ora_Ffi.C_Std);
  show_image_fhandle := Ora_Ffi.Register_Function
         (imglib_lhandle, 'show_image', Ora_Ffi.C_Std);

  /* Register the parameters. */
  Ora_Ffi.Register_Parameter(get_image_fhandle,
                             Ora_Ffi.C_Char_Ptr);

  Ora_Ffi.Register_Parameter(show_image_fhandle,
                             Ora_Ffi.C_Void_Ptr);
  Ora_Ffi.Register_Parameter(show_image_fhandle,
                             Ora_Ffi.C_Float);

  /* Register the return type ('get_image' only). */
  Ora_Ffi.Register_Return(get_image_fhandle,
                          Ora_Ffi.C_Void_Ptr);

END;   /* package body imglib */

Zum Aufrufen der Fremdfunktionen müßten Sie dann die in der Paketspezifikation definierten PL/SQL-Prozeduren aufrufen, wie im nachfolgenden Beispiel gezeigt wird:

PROCEDURE display_image(keywrd IN OUT VARCHAR2) IS
  img_ptr  Ora_Ffi.Pointertype;
BEGIN
  img_ptr := imglib.get_image(keywrd);
  imglib.show_image(img_ptr, 2);
END;   /* procedure display_image */


Beispiele für ORA_FFI

1.  Aufruf einer C-Funktion aus einer dynamischen Bibliothek mathlib

•	Explizite Benutzung einer PRAGMA-Compiler-Anweisung

•	Benutzung der Funktion Ora_Ffi.Generate_Foreign

2.  Aufruf einer C-Funktion aus einer dynamischen Bildbibliothek


Über das Protokollieren

  Verwandte Themen

Procedure Builder gibt Ihnen die Möglichkeit, Interpreter-Eingabe/Ausgabe aufzuzeichnen. Nachdem die Protokollierung aktiviert wurde, werden alle in Interpreter eingegebenen Befehle sowie sämtliche daraus resultierenden Interpreter-Ausgabemeldungen in eine Protokolldatei eingefügt bzw. geschrieben, bis Sie das Protokollieren aussetzen oder beenden.

Aktion	Dialogfeld	Zugriff
Beginnen einer neuen Protokolldatei	Interpreter-Protokoll	Datei [image] Protokollieren
Hinzufügen von Einträgen zu einer Protokolldatei	Interpreter-Protokoll	Datei [image] Protokollieren
Deaktivieren der Protokollierung	Interpreter-Protokoll oder PL/SQL-Interpreter-Protokoll	Datei [image] Protokollieren oder Ansicht [image] Interpreter Log
Aktivieren der Protokollierung	Interpreter-Protokoll oder PL/SQL-Interpreter-Protokoll	Datei [image] Protokollieren oder Ansicht [image] Interpreter-Protokoll
Beenden der Protokollierung	PL/SQL-Interpreter-Protokoll	Ansicht [image] Interpreter-Protokoll
Anzeigen der Protokolldatei	PL/SQL-Interpreter-Protokoll	Ansicht [image] Interpreter-Protokoll


Neue Protokolldatei beginnen

  Verwandte Themen

So beginnen Sie eine neue Protokolldatei:

1	Wählen Sie Datei [image] Protokollieren, um das Dialogfeld Interpreter-Protokoll anzuzeigen.

2	Geben Sie einen Verzeichnispfad und Dateinamen in das Textfeld Datei ein, oder klicken Sie auf Suchen, um das Datei-Dialogfeld Ihres Betriebssystems aufzurufen und nach der Datei suchen zu können.

Standardmäßig wird Interpreter-Protokolldateien die Erweiterung .log zugewiesen.

3	Klicken Sie auf OK, um die Aufzeichnung der Interpreter-Eingabe/Ausgabe in der ausgewählten Protokolldatei zu starten.

In Interpreter wird folgender Befehl angezeigt:

PL/SQL> .LOG FILE filename
Log output file set to filename
PL/SQL>


Protokolleinträge zu einer bestehenden Protokolldatei hinzufügen

  Verwandte Themen

So fügen Sie Protokolleinträge zu einer bestehenden Protokolldatei hinzu:

1	Wählen Sie Datei [image] Protokollieren, um das Dialogfeld Interpreter-Protokoll anzuzeigen.

2	Geben Sie den Verzeichnispfad und Dateinamen der bestehenden Protokolldatei in das Textfeld Datei ein, oder klicken Sie auf Suchen, um das Datei-Dialogfeld Ihres Betriebssystems aufzurufen und nach der Datei suchen zu können.

3	Wählen  Sie das Kontrollkästchen Hinzufügen aus.

4	Klicken Sie auf OK, um die Änderungen zu akzeptieren und das Dialogfeld Interpreter-Protokoll zu schließen.

In Interpreter wird folgender Befehl angezeigt:

PL/SQL> .LOG FILE filename APPEND
Log output file set to filename
PL/SQL>


Protokollierung deaktivieren

  Verwandte Themen

So deaktivieren Sie die Protokollierung:

1	Wählen Sie Datei [image] Protokollieren, um das Dialogfeld Interpreter-Protokoll anzuzeigen.

2	Wählen  Sie das Kontrollkästchen Deaktiviert aus.

3	Klicken Sie auf OK, um die Änderungen zu akzeptieren und das Dialogfeld Interpreter-Protokoll zu schließen.

In Interpreter wird folgender Befehl angezeigt:

PL/SQL> .DISABLE LOGGING
Logging disabled.
PL/SQL>


Protokollierung aktivieren

  Verwandte Themen

So aktivieren Sie die Protokollierung:

1	Wählen Sie Datei [image] Protokollieren, um das Dialogfeld Interpreter-Protokoll anzuzeigen.

2	Heben Sie die Auswahl des Kontrollkästchens Deaktiviert auf.

3	Klicken Sie auf OK, um die Änderungen zu akzeptieren und das Dialogfeld Interpreter-Protokoll zu schließen.

In Interpreter wird folgender Befehl angezeigt:

PL/SQL> .ENABLE LOGGING
Logging enabled.
PL/SQL>


Protokolldateien anzeigen

So zeigen Sie die Protokolldatei an:

1	Falls das Menü Ansicht nicht angezeigt ist, klicken Sie auf das Interpreter-Fenster, um es zu aktivieren.

2	Wählen Sie Ansicht [image] Interpreter-Protokoll, um das Dialogfeld PL/SQL-Interpreter-Protokoll aufzurufen.

In diesem Dialogfeld können Sie den Inhalt der aktuellen Protokolldatei anzeigen sowie die Protokollierung ganz ausschalten, vorübergehend deaktivieren und aktivieren.


Protokollierung beenden

So beenden Sie die Protokollierung:

1	Falls das Menü Ansicht nicht angezeigt ist, klicken Sie auf das Interpreter-Fenster, um es zu aktivieren.

2	Wählen Sie Ansicht [image] Interpreter-Protokoll, um das Dialogfeld PL/SQL-Interpreter-Protokoll aufzurufen.

3	Klicken Sie auf Aus, um die Protokollaufzeichnung in der aktuellen Protokolldatei zu beenden und das Dialogfeld zu schließen.

In Interpreter wird folgender Befehl angezeigt:

PL/SQL> .LOG OFF
Logging has been turned off.
PL/SQL>


 Über Debug-Aktionen

Durch das Erstellen von Debug-Aktionen in kompilierten Programmblöcken können Sie sich die Suche nach Laufzeitfehlern und deren Beseitigung erleichtern. Der Großteil Ihrer Debugging-Aktivitäten wird in PL/SQL-Interpreter und im Objektnavigator stattfinden.

Es gibt zwei grundlegende Arten von Debug-Aktionen:

•	Programmstops

•	Debug-Trigger

Darüber hinaus werden bei Beschreibungen des Debugging-Vorgangs die folgenden Begriffe verwendet:

•	ausführbare Quellzeilen

•	Quellposition

•	aktueller Geltungsbereich

•	aktuelle Ausführungsposition


Über Programmstops

  Verwandte Themen

Die am häufigsten verwendete Art von Debug-Aktionen ist der Programmstop. Wenn Sie einen Programmblock ausführen, der einen Programmstop enthält, wird die Ausführung am Beginn der Zeile ausgesetzt, die den Programmstop enthält. Sobald die Ausführung des Programmblocks unterbrochen wird, wird die Steuerung an Interpreter übergeben. Ab diesem Zeitpunkt können Sie den restlichen Programmblockcode inkremental ausführen und dabei die Werte lokaler Variablen überprüfen oder ändern.

Sie können auch einen "Programmstop-Trigger" für einen Programmstop definieren. Ein Programmstop-Trigger ist ein PL/SQL-Block, der bei jedem Erreichen des Programmstops ausgeführt wird. Es gibt mehrere vordefinierte Prozeduren für die Verwendung in Programmstop-Triggern.


Über Debug-Trigger

  Beispiele

Debug-Trigger sind allgemeinere Debug-Aktionen. Ein Debug-Trigger verknüpft einen willkürlich gewählten PL/SQL-Block mit einer bestimmten ausführbaren Quellzeile innerhalb eines Programmblocks.

Procedure Builder führt den Debug-Trigger unmittelbar vor dem Erreichen der Zeile aus, in der der Debug-Trigger angegeben ist. Sie können Debug-Trigger für die Auslösung an jeder der folgenden Positionen zuweisen:

•	beim Erreichen einer einzelnen Zeile in einem Programmblock (zum Beispiel die aktuelle Quellposition, Zeile 5, Zeile 23 etc.);

•	bei jeder Übergabe der Steuerung an Interpreter (das heißt, bei jeder Unterbrechung der Programmausführung aufgrund eines Programmstops, schrittweiser Programmausführung etc.);

•	bei jeder PL/SQL-Quellzeile, die ausgeführt wird.

Debug-Trigger eignen sich besonders als bedingte Programmstops. Sie können die Exception Debug.Break innerhalb der beliebig komplexen Steuerlogik des Triggerrumpfs auslösen. Der nachfolgende Debug-Trigger richtet beispielsweise in Zeile 10 von my_proc einen bedingten Programmstop ein, der nur erreicht wird, wenn die lokale NUMBER-Variable my_sal den Wert 5000 übersteigt:

PL/SQL> .TRIGGER PROC my_proc LINE 10 IS
     +> IF Debug.Getn('my_sal') > 5000 THEN
     +>   RAISE Debug.Break;
     +> END IF;


Über ausführbare Quellzeilen

Debug-Aktionen müssen Programmblock-Quellzeilen zugeordnet sein, die "ausführbar" sind. Eine Quellzeile gilt dann als ausführbar, wenn sie eine oder mehrere Anweisungen enthält, für die der PL/SQL-Compiler Code generiert. So sind beispielsweise Quellzeilen ausführbar, die Zuweisungsanweisungen und Prozeduraufrufe enthalten, wohingegen Quellzeilen mit Kommentaren, Leerzeilen, Deklarationen oder der Anweisung NULL nicht ausführbar sind.


Über die Quellposition

Die Quellposition entspricht der aktuellen Cursor-Position im Interpreter-Quellausschnitt. Bei vielen Procedure Builder-Befehlen können Sie die aktuelle Quellposition als Ziel des Befehls angeben. In der Befehlssyntax steht das Punkt-Schlüsselwort (.) für die aktuelle Quellposition.

Der folgende Befehl erstellt beispielsweise einen Programmstop an der aktuellen Quellposition:

PL/SQL> .BREAK .


Über Aufrufstapel

Der Aufrufstapel stellt die Kette von Unterprogrammaufrufen dar, die beim anfänglichen Eintrittspunkt beginnt und bis zum gerade ablaufenden Unterprogramm geht. Wenn zum Beispiel Prozedur A die Prozedur B aufruft, die wiederum Prozedur C aufruft, und gerade eine Anweisung in Prozedur C ausgeführt wird, lautet die aktuelle Aufrufkette wie folgt:

[0] Procedure Body A Line n[1] Procedure Body B Line n[2] Procedure Body C Line n

Jeder Unterprogrammaufruf wird im Aufrufstapel durch einen Frame dargestellt. Ein Frame enthält Informationen über den zugehörigen Unterprogrammaufruf, und zwar seinen Namen, konkrete Parameterwerte, lokale Variablenwerte sowie die nächste auszuführende Anweisung.

Procedure Builder verwendet das Debugging-Standardmodell eines nach unten erweiterbaren Stapels, bei dem neu gestartete Unterprogramme am Stapelende hinzugefügt werden. Der früheste Frame, der dem anfänglichen Eintrittspunkt entspricht, befindet sich also am Beginn des Stapels, während sich der jüngste Frame, der mit dem am tiefsten verschachtelten Unterprogrammaufruf verknüpft ist, am Stapelende befindet.

Die Frames des Aufrufstapels werden von 0 bis N numeriert, wobei sich Frame 0 am Stapelanfang und Frame N am Stapelende befindet. Frame 0 entspricht folglich dem anfänglichen Eintrittspunkt und Frame N dem aktuell ablaufenden Unterprogramm.

Der Knoten Stapel im Objektnavigator wird automatisch eingeblendet, wenn die Ausführung eines Programmblocks durch eine Debug-Aktion ausgesetzt wird. Jeder untergeordnete Knoten des Knotens Stapel entspricht einem Frame des Aufrufstapels und ist entsprechend numeriert.


Über den aktuellen Geltungsbereich

Der aktuelle Geltungsbereich bestimmt, wo Procedure Builder nach lokalen Variablen und Parametern sucht. Der aktuelle Geltungsbereich entspricht der aktuellen Ausführungsposition eines der PL/SQL-Unterprogramme im Aufrufstapel.

Bei jeder Unterbrechung der Ausführung eines Programmsblocks (etwa durch eine Debug-Aktion) wird dem Geltungsbereich die Ausführungsposition des Unterprogramms am Ende des Aufrufstapels als Ausgangswert zugewiesen. Wenn die Ausführung unterbrochen ist, können Sie den aktuellen Geltungsbereich in einen anderen Frame des Aufruftstapels verlegen. Damit können Sie Lokale in einem Unterprogramm des Aufrufstapels anzeigen.


 Über Debug-Ebenen

Wird die Programmausführung von einer Debug-Aktion unterbrochen, übernimmt Interpreter die Steuerung und richtet eine sogenannte Debug-Ebene ein. Auf einer Debug-Ebene können Sie Befehle und PL/SQL-Anweisungen eingeben, um den Zustand des unterbrochenen Programmblocks zu kontrollieren bzw. zu ändern sowie die Ausführung fortzusetzen.

Da auch interaktiv eingegebener oder auf einer Debug-Ebene erreichter PL/SQL-Code seinerseits wieder unterbrochen werden kann (etwa durch Erreichen eines weiteren Programmstops), ist eine Verschachtelung von Debug-Ebenen möglich. Damit sich die einzelnen Debug-Ebenen besser voneinander unterscheiden lassen, sind sie numeriert. Der am tiefsten verschachtelten Ebene wird dabei die höchste Nummer zugewiesen. Die Numerierung beginnt bei der äußersten Ebene mit Null.

Die 0-te oder äußerste Ebene wird häufig als die oberste Ebene bezeichnet und nicht explizit numeriert. Mit der obersten Ebene ist kein Programmstatus verknüpft, da sie die äußerste Ebene ist, auf der Programmblöcke anfänglich aufgerufen werden. Wird der auf der obersten Ebene aufgerufene Code unterbrochen, wird die Debug-Ebene 1 eingerichtet. Bei einer Unterbrechung des auf Debug-Ebene 1 aufgerufenen Codes wird die Debug-Ebene 2 eingerichtet usw.

Die Interpreter-Eingabeaufforderung gibt die aktuelle Debug-Ebene an. Befindet sich Interpreter auf Ebenen unterhalb der obersten Ebene, enthält die Eingabeaufforderung ein Präfix mit der aktuellen Nummer der Debug-Ebene. So lautet die Interpreter-Eingabeaufforderung auf Debug-Ebene 1 beispielsweise wie folgt:

(Debug 1)PL/SQL>


Über die aktuelle Ausführungsposition

Die aktuelle Ausführungsposition gibt die als nächste auszuführende PL/SQL-Quellzeile an. Die aktuelle Ausführungsposition entspricht dem Programmzähler. Wird die Steuerung während der Ausführung eines Programms an Interpreter übergeben (beispielsweise bei Erreichen eines Programmstops oder nach einem Step-Vorgang), wird die aktuelle Ausführungsposition im Quellausschnitt mit dem Symbol => gekennzeichnet.


Über den Debugging-Prozeß

Der PL/SQL-Interpreter ist der zentrale Arbeitsbereich von Procedure Builder für das Debugging. Der Debugging-Prozeß besteht aus den folgenden Phasen:

•	Programmblockquelle im Interpreter anzeigen

•	Debug-Aktion erstellen:

Programmstop

Debug-Trigger

•	Programmblock ausführen

•	Lokale Variablenwerte überprüfen und ändern

•	Ausführung des Programmblocks überprüfen:

Code schrittweise ablaufen lassen

Ausführung des Programmblocks fortsetzen

Aktuelle Debug-Ebene verlassen

Beachten Sie, daß Debug-Aktionen beim Beenden von Procedure Builder verworfen werden.


Programmblockquelle in Interpreter anzeigen

  Nächster Schritt	  Verwandte Themen

So zeigen Sie die Programmblockquelle in Interpreter an:  Hinweis

1	Falls PL/SQL-Interpreter nicht schon geöffnet ist, wählen Sie Programm [image] PL/SQL-Interpreter aus, um Interpreter aufzurufen.

2	Ordnen Sie die Fenster so auf dem Desktop an, daß sowohl PL/SQL-Interpreter als auch der Objektnavigator sichtbar sind.

3	Klicken Sie im Objektnavigator auf den Programmblock, der die anzuzeigende Quelle enthält.

Im Quellausschnit des PL/SQL-Interpreters wird daraufhin eine schreibgeschützte Kopie des Programmblocks (mit Zeilennummern) angezeigt.

Der Quellausschnitt in PL/SQL-Interpreter dient während des Debugging-Prozesses dazu, die aktuelle Ausführungsposition des unterbrochenen Programmblocks zu finden. Sobald die Quelle des Programmblocks angezeigt wird, können Sie bestimmen, wo Debug-Aktionen erstellt werden sollen.

Standardmäßig ist die aktuelle Quellzeile die erste Anweisung im Ausschnitt. Mit dem Befehl LIST können Sie eine Zeilennummer für die aktuelle Quellposition angeben.


Dieser Prozeß ist bei server-seitigen Programmblöcken identisch.


Einfache Programmstops erstellen

  Nächster Schritt	  Verwandte Themen

So erstellen Sie einen einfachen Programmstop:  Hinweis

1	Klicken Sie im Objektnavigator auf den Programmblock, in dem Sie den Programmstop erstellen möchten, um ihn im Quellausschnit des Pl/SQL-Interpreter anzuzeigen.

2	Doppelklicken Sie auf die ausführbare Quellzeile, in der der Programmstop erstellt werden soll.

Nun wird ein Programmstop erstellt, dem eine eindeutige, numerische ID zugewiesen wird. Geben Sie diese ID an, um den Programmstop bei der Verwendung von Procedure Builder-Befehlen oder dem DEBUG-Paket zu referenzieren.


Programmstops mit Triggern erstellen

  Beispiele	  Nächster Schritt	          Verwandte Themen

So erstellen Sie einen Programmstop mit einem Trigger:  Hinweis

1	Klicken Sie im Objektnavigator auf den Programmblock, um ihn im Quellausschnitt des PL/SQL-Interpreters anzuzeigen.

2	Klicken Sie im Quelleausschnit des PL/SQL-Interpreters auf die ausführbare Quellzeile, in der der Programmstop erstellt werden soll.

3	Wählen Sie Programmstop aus dem Popup-Menü im Quellausschnitt aus (wird in Windows mit der rechten Maustaste aufgerufen), um das Dialogfeld PL/SQL-Programmstop aufzurufen.

4	Geben Sie den Rumpf des Programmstop-Triggers in das Textfeld Trigger ein.

Hierbei müssen die Schlüsselwörter BEGIN und END nicht angegeben werden.

5	Klicken Sie auf OK, um den Programmstop-Trigger zu kompilieren und den Programmstop zu erstellen.

Nun wird ein Programmstop erstellt, dem eine eindeutige, numerische ID zugewiesen wird. Geben Sie diese ID an, um den Programmstop bei der Verwendung von Procedure Builder-Befehlen oder dem DEBUG-Paket zu referenzieren.

Der Trigger wird jedesmal ausgelöst, wenn die Programmausführung den Programmstop erreicht.


Beispiel: Programmstops mit Triggern erstellen

Im folgenden Beispiel wird ein Programmstop erstellt, der immer dann einen Trigger auslöst, wenn der Programmstop erreicht wird.

PL/SQL> .break proc my_proc line 10 trigger
     +> DEBUG.INTERPRET('.SHOW LOCALS');


Debug-Trigger erstellen

  Beispieles	  Nächster Schritt	          Verwandte Themen

So erstellen Sie einen Debug-Trigger:  Hinweis

1	Klicken Sie im Objektnavigator auf den Programmblock, um ihn im Quellausschnitt des PL/SQL-Interpreters anzuzeigen

2	Klicken Sie im Quellausschniit des Pl/SQL-Interpreters auf die ausführbare Quellzeile, in der Sie den Debug-Trigger erstellen möchten.

3	Wählen Sie Trigger aus dem Popup-Menü im Quellausschnitt aus (wird bei Windows mit der rechten Maustaste aufgerufen), um das Dialogfeld PL/SQL-Trigger aufzurufen.

4	Wählen Sie entweder eine Position aus der Drop-Down-Liste Speicherort aus, oder akzeptieren Sie die Standardposition (gilt nur für den aktuellen Programmblock).

Die Positionseinstellung gibt an, wo der Debug-Trigger ausgelöst werden soll.

5	Geben Sie den Debug-Trigger in das Feld Triggerrumpf ein.

Hierbei müssen die Schlüsselwörter BEGIN und END nicht angegeben werden.

6	Klicken Sie auf OK, um den Debug-Trigger zu kompilieren und zu erstellen.

Es wird ein Trigger erstellt, dem eine eindeutige, numerische ID zugewiesen wird. Geben Sie diese ID an, um den Trigger bei der Verwendung von Procedure Builder-Befehlen oder dem Debug-Paket zu referenzieren.

Wenn Sie einen Debug-Trigger für die Verwendung in einer anderen Sitzung speichern möchten, können Sie den anonymen Block in einer Textdatei speichern, die Sie dann später laden, oder ihn in eine Bibliothek verschieben.

Mit Debug-Triggern lassen sich Bedingungen für die Durchführung einer bestimmten Debug-Aktion festlegen. Sie können jedes der mit Procedure Builder gelieferten Pakete zum Definieren von Debug-Aktionen verwenden.


Beispiel: Debug-Trigger

  Verwandte Themen

Die folgenden Beispiele zeigen Einsatzmöglichkeiten für Debug-Trigger mit dem DEBUG-Paket.

Beispiel 1

Sie verfügen über einen Programmblock namens foo, der das Unterprogramm bar aufruft. Dieses Unterprogramm (bar) wird jedoch auch von vielen anderen Programmblöcken aufgerufen. Sie möchten jetzt einen Programmstop in bar erstellen. Dieser soll allerdings nur aktiviert werden, wenn das Unterprogramm vom Programmblock foo aufgerufen wird, und nicht, wenn bar in einem anderen Programmblock aufgerufen wird.

Dazu müssen Sie die folgenden Schritte durchführen:

1	Erstellen Sie in der Prozedur bar einen Programmstop an der Stelle, an der die Ausführung unterbrochen werden soll.

2	Deaktivieren Sie den gerade erstellten Programmstop.

Sie können die Arbeitsschritte 1 und 2 innerhalb des Dialogfelds Programmstop durchführen. Erstellen Sie in der Prozedur foo einen Programmstop mit einem Programmstop-Trigger, der den ersten, in der Prozedur bar erstellten Programmstop aktiviert. Zum Beispiel:

PL/SQL>.BREAK PROC foo LINE 6 TRIGGER
>BEGIN
>  Debug.Interpret('.enable break 1');
>  Debug.Interpret('.go');
>END;

Beispiel 2

Wir gehen von derselben Situation wie in Beispiel 1 aus, doch akzeptiert die Prozedur bar jetzt das Argument 'message' von den vielen Prozeduren, die sie aufrufen. Die Prozedur foo übergibt das eindeutige Argument 'hello world' an bar. In diesem Fall können Sie einen Trigger definieren, der nur dann einen Programmstop in der Prozedur bar auslöst, wenn foo sein Argument übergibt:

PL/SQL> .TRIGGER PROC bar LINE 3 IS
>BEGIN
>  IF Debug.Getn('message') = 'hello world' THEN
>    RAISE Debug.Break;
>  END IF;
>END;


 Programmblöcke ausführen

  Verwandte Themen

So führen Sie den Programmblock aus:  Hinweis

Nachdem Sie Debug-Aktionen erstellt haben, können Sie den Programmblock ausführen, um die Ausführung auszusetzen.

  Geben Sie den Namen des Programmblocks an der PL/SQL-Interpreter-Eingabeaufforderung PL/SQL> ein. Drücken Sie die Eingabetaste, um den Programmblock auszuführen.

Schließen Sie den Aufruf unbedingt mit einem Semikolon (;) ab, und geben Sie alle erforderlichen Parameter in Klammern an. Sollten Sie den Namen des Programmblocks falsch eingeben, wählen Sie Neuer Prompt aus dem Popup-Menü im Interpreter-Ausschnitt aus (wird in Windows mit der rechten Maustaste aufgerufen), um eine neue Eingabeaufforderung anzeigen zu lassen.

Falls eine Debug-Aktion erreicht wird, wird in Interpreter eine der folgenden ähnliche Ausgabe angezeigt (dies hängt von der Debug-Aktion ab):

>>Entering BREAKPOINT #n line n of programunit
(Debug1)PL/SQL>

Die aktuelle Ausführungsposition des unterbrochenen Programmblocks wird im Quellausschnitt durch das Symbol => angegeben. Diese Position ändert sich, wenn Sie den Code schrittweise ablaufen lassen.


Einfache Variablen und Parameter überprüfen und ändern

  Verwandte Themen

So überprüfen und ändern Sie einfache Variablen und Parameter:

1	Klicken Sie im Objektnavigator auf den Knoten Stapel.

2	Klicken Sie in der Symbolleiste auf [image], um alle untergeordneten Knoten einzublenden.

Die Variablen und Parameter für jeden Frame im Aufrufstapel sowie ihre entsprechenden aktuellen Werte werden als untergeordnete Knoten angezeigt.

3	Wenn Sie einen Wert bearbeiten möchten, wählen Sie die Variable bzw. den Parameter durch Klicken aus.

4	Klicken Sie dann auf den zu bearbeitenden Wert.

Der Cursor nimmt nun die Form eines Texteditor-Cursors an.

5	Bearbeiten Sie den Wert, und klicken Sie dann auf eine andere Stelle im Objektnavigator, um die Änderung zu speichern.

In Interpreter wird folgender Befehl angezeigt:

Debug.Setc ('variable_name', 'new_value';)


Komplexe Variablen überprüfen und ändern

  Verwandte Themen

So überprüfen und ändern Sie Datensatztabellen:

1	Klicken Sie im Objektnavigator auf den Knoten Stapel.

2	Wählen Sie den Knoten für die zu untersuchende Tabelle aus.

3	Enthält die Tabelle 50 oder mehr Zeilen, wird automatisch das Dialogfeld Auswahl PL/SQL-Tabellenelemente aufgerufen. Falls die zu überprüfende Tabelle weniger als 50 Zeilen enthält, verwenden Sie die entsprechende Kombination aus Klicken und Drücken der Umschalttaste für Ihre Plattform (beispielsweise Klicken mit der rechten Maustaste bei Windows). Daraufhin wird das Dialogfeld Auswahl PL/SQL-Tabellenelemente angezeigt, das eine Liste der Indizes für alle Datensätze der Tabelle enthält. Standardmäßig sind alle Datensätze ausgewählt.

4	Heben Sie die Auswahl der Datensätze auf, die Sie nicht überprüfen möchten. Klicken Sie auf OK, um das Dialogfeld Auswahl PL/SQL-Tabellenelemente zu schließen.

Im Objektnavigator werden jetzt nur die Datensätze eingeblendet, die Sie im Dialogfeld Auswahl PL/SQL-Tabellenelemente ausgewählt haben.


Ausführung des unterbrochenen Programmblocks steuern

  Verwandte Themen

So steuern Sie die Ausführung des unterbrochenen Programmblocks:  Hinweis

Nachdem die Ausführung eines Programmblocks unterbrochen wurde und Sie den Programmstatus überprüft und/oder geändert haben, können Sie folgende Aktionen durchführen:

1	Code schrittweise ablaufen lassen.

2	Ausführung des Programmblocks fortsetzen.

3	Aktuelle Debug-Ebene verlassen.

Sie können die Ausführung eines unterbrochenen Programms vorübergehend wiederaufnehmen und den Code praktisch inkremental ausführen, um so den Programmstatus bei der Ausführung zu überprüfen. Die Steuerung wird wieder an Interpreter übergeben, nachdem die festgelegte Anzahl von Anweisungen ausgeführt wurde.


Code schrittweise ablaufen lassen

  Nächster Schritt	  Verwandte Themen

So lassen Sie den Code schrittweise ablaufen:  Hinweis

Procedure Builder bietet die folgenden Möglichkeiten für die schrittweise Ausführung eines Programmblocks. Die ersten drei Optionen haben dabei dieselbe Funktion, es sei denn, der Programmblock enthält Unterprogrammaufrufe.

Gewünschter Arbeitsschritt	Erforderlicher Befehl
Ausführen der nächsten Anweisung	Hinein
Ausführen der nächsten Anweisung nur im aktuellen Programmblock (Aufrufe an verschachtelte Unterprogramme werden ausgeführt)	Über
Fortsetzen der Ausführung bis zur nächsten ausführbaren Anweisung im ursprünglichen Programmblock (verschachtelte Unterprogrammaufrufe werden abgeschlossen)	Hinaus
Fortsetzen der Ausführung bis zum Erreichen der angegebenen Quellposition	Go
Sie können die Programmausführung mit einer der folgenden Methoden steuern:

  Klicken Sie in der Interpreter-Symbolleiste auf die Schaltflächen Hinein, Über oder Hinaus.

oder

  Wählen Sie Debug [image] Step aus, um das Dialogfeld Step anzuzeigen.

Hinweis:  Die Step-Option Go steht in der Interpreter-Symbolleiste nicht zur Verfügung.

Wenn Sie den Befehl Step aus dem Menü Debug auswählen, wird das Dialogfeld PL/SQL-Step angezeigt. In diesem Dialogfeld können Sie die Step-Option festlegen, indem Sie eine der Optionsschaltflächen im Feld Modus auswählen.


Ausführung des Programmblocks fortsetzen

  Verwandte Themen

So setzen Sie die Programmausführung fort:  Hinweis

  Klicken Sie in der Interpreter-Symbolleiste auf die Schaltfläche Go.

Im Gegensatz zum Befehl STEP führt GO einen vollständigen Durchgang einer FOR-Schleife aus. Die Ausführung des Programmblocks wird unbegrenzt fortgesetzt, d.h. der Programmblock läuft ab, bis entweder die Ausführung des aktuellen Thread abgeschlossen ist oder die Ausführung erneut durch eine Debug-Aktion unterbrochen wird.


Aktuelle Debug-Ebene verlassen

  Verwandte Themen

So verlassen Sie die aktuelle Debug-Ebene:   Hinweis

  Klicken Sie in der Interpreter-Symbolleiste auf die Schaltfläche Zurücksetzen.

Wenn Sie den Befehl RESET in der Befehlszeile angeben, können Sie die Ausführung explizit zu einer vorherigen Debug-Ebene zurücksetzen. Standardmäßig wird die Ausführung zur obersten Debug-Ebene zurückgesetzt. Dabei wird die Steuerung an eine äußere Debug-Ebene übergeben, ohne daß die Ausführung auf der aktuellen Debug-Ebene fortgesetzt wird (wodurch die Ausführung auf der aktuellen Debug-Ebene und eventuell auch auf übergeordneten Debug-Ebenen praktisch abgebrochen wird).


Aktuelle Debug-Aktionen anzeigen

  Verwandte Themen

So zeigen Sie aktuelle Debug-Aktionen an:

  Blenden Sie den Knoten Debug-Aktionen im Objektnavigator ein.

Jede momentan definierte Debug-Aktion wird als untergeordneter Knoten angezeigt. Zum Beispiel:

(Breakpoint: Procedure Body FOO line 3)

Deaktivierte Debug-Aktionen sind mit einem Stern (*) gekennzeichnet:

* (Breakpoint: Procedure Body FOO line 3)


Debug-Aktionen deaktivieren

  Verwandte Themen

So deaktivieren Sie eine Debug-Aktion:

1	Klicken Sie im Objektnavigator auf das Symbol Debug-Aktionen.

2	Wählen Sie Deaktivieren aus dem Popup-Menü (wird bei Windows mit der rechten Maustaste angezeigt).

Im Objektnavigator wird nun hinter der ID des Programmstops ein Stern angezeigt, der darauf hinweist, daß die Debug-Aktion vorübergehend deaktiviert ist. Sie können bestimmte Debug-Aktionen vorübergehend deaktivieren und dann bei Bedarf später wiederherstellen.


Debug-Aktionen aktivieren

  Verwandte Themen

So aktivieren Sie eine Debug-Aktion:

1	Klicken Sie im Objektnavigator auf das Symbol Debug-Aktionen.

2	Wählen Sie Aktivieren aus dem Popup-Menü (wird bei Windows mit der rechten Maustaste angezeigt).

Im Objektnavigator wird nun hinter der ID des Programmstops kein Stern mehr als Deaktivierungskennzeichen angezeigt. Dies gibt an, daß die Debug-Aktion wieder aktiviert ist.


Debug-Aktionen löschen

  Verwandte Themen

So löschen Sie eine Debug-Aktion:

1	Klicken Sie im Objektnavigator auf das Symbol für die Debug-Aktion.

2	Klicken Sie in der Symbolleiste des Navigators auf [image].


Bestimmte Quellpositionen festlegen

  Verwandte Themen

So legen Sie eine bestimmte Quellposition fest:  Hinweis

Sie können mit dem Befehl LIST nicht nur die Quelle eines Programmblocks anzeigen, sondern auch mit Hilfe des Schlüsselworts LINE die aktuelle Quellposition festlegen.

Durch die Eingabe des folgenden Befehls in Interpreter wird beispielsweise der Quelltext der Prozedur bonuses angezeigt und die aktuelle Quellposition auf die Zeile 3 eingestellt:

PL/SQL> .LIST PROC bonuses LINE 3

Der Quellausschnitt hat nun folgenden Inhalt, und der Cursor befindet sich am Anfang von Zeile 3.

00001  PROCEDURE bonuses (my_ename IN CHAR) IS
00002   CURSOR c1 IS
00003 |   SELECT ename, sal*0.15 bonus FROM emp;
00004  BEGIN
00005   FOR c1rec IN c1 LOOP
00006    Text_IO.Putf('%s %s %s %s', 'Employee:',
00007     c1rec.ename, 'Bonus:', TO_CHAR(c1rec.bonus));
00008    Text_IO.New_Line;
00009   END LOOP;
00010  END;


Variablen mit dem DEBUG-Paket überprüfen oder ändern

  Verwandte Themen

So überprüfen oder ändern Sie Variablen mit Hilfe des DEBUG-Pakets:  Hinweis

Das DEBUG-Paket enthält eine Reihe von Prozeduren und Funktionen für die Verwendung in Debug-Triggern. Mit zwei dieser vordefinierten Unterprogramme können die Werte lokaler Variablen und Parameter im Rumpf des Debug-Triggers als solchem abgerufen und geändert werden:

•	die Funktion GETx

•	die Prozedur SETx

Die Funktion GETx ermöglicht Ihnen, den Wert einer lokalen Variablen oder eines lokalen Parameters des Unterprogramms im aktuellen Geltungsbereich abzurufen. Dabei steht x für den Datentyp der Variablen (n für NUMBER, c für CHAR etc.).

Mit der Prozedur SETx können Sie den Wert einer lokalen Variablen oder eines lokalen Parameters des Unterprogramms im aktuellen Geltungsbereich festlegen.


Aktuellen Geltungsbereich ändern

  Verwandte Themen

So ändern Sie den aktuellen Geltungsbereich:

  Klicken Sie im Objektnavigator auf einen Rahmen unter dem Knoten Stapel.

oder

  Geben Sie an der Interpreter-Eingabeaufforderung den Befehl SET SCOPE ein.

Mit dem Befehl SET können Sie eine relative Verschiebung vom aktuellen Frame des Auftrufstapels zu einem anderen Frame festlegen oder eine Verschiebung zu einem bestimmten Unterprogramm im Aufrufstapel durchführen.


Über das server-seitige Debugging

Oracle7 Version 7.3.4 oder höher und Oracle8 Version 8.0.4 oder höher unterstützen das server-seitige Debugging. Dies bedeutet, daß alle Debugging-Aktionen, wie z.B. das Erstellen von Programmstops und Debug-Triggern, die schrittweise Ausführung von Codes und die Überprüfung oder Änderung von lokalen Variablenwerten direkt mit gespeicherten Programmblöcken durchgeführt werden können.

Die Berechtigung ALTER SESSION ist für das server-seitige Debugging erforderlich, damit Sie Ihre Client-Prozeduren nicht neu kompilieren müssen, wenn eine gespeicherte Prozedur, die von diesen abhängig ist, abgeglichen wird. Außerdem ist die Berechtigung ALTER SESSION erforderlich, um die Sitzung aus dem Zeitstempel-Modus in den Signatur-Modus zu versetzen.

Bei Oracle8 Version 8.0.3 und früheren Oracle7 Versionen als 7.3.4 ziehen Sie gespeicherte Programmblöcke auf die Client-Seite, um sie zu debuggen. Nach dem Debugging verschieben Sie die Programmblöcke wieder auf die Server-Seite.

Sie können gespeicherte Programmblöcke und Datenbank-Trigger auch mit dem Paket DBMS_OUTPUT debuggen. Dieses Paket enthält Prozeduren PUT und PUT_LINE, um den Wert von Variablen und Ausdrücken auszugeben. Weitere Informationen über das Paket DBMS_OUTPUT und andere Datenbankpakete finden Sie in Oracle7 Application Developer's Guide oder Oracle8 Application Developer's Guide.


Über PL/SQL-Programmblöcke

  Verwandte Themen

Ein Programmblock ist ein PL/SQL-Konstrukt, das vom PL/SQL-Compiler unabhängig erkannt und verarbeitet werden kann. PL/SQL-Programmblöcke umfassen:

•	anonyme Blöcke

•	Unterprogramme

•	Pakete


Über anonyme Blöcke

  Beispiel 	  Verwandte Themen

Ein anonymer Block definiert eine unbenannte Folge von Aktionen. Hier handelt es sich um einen PL/SQL-Programmblock, der keinen Namen hat und die Schlüsselwörter BEGIN und END nicht benötigt, um die ausführbaren Anweisungen zu begrenzen. Da diese unbenannt sind, können anonyme Blöcke nicht von anderen Programmblöcken referenziert werden.

Ein anonymer Block besteht aus einem optionalen deklarativen Teil, einem ausführbaren Teil und einem oder mehreren optionalen Exception-Handlern.

Der deklarative Teil deklariert PL/SQL-Variablen, Exceptions und Cursor. Der ausführbare Teil enthält PL/SQL-Code und SQL-Anweisungen und kann verschachtelte Blöcke enthalten. Exception-Handler enthalten Code, der aufgerufen wird, wenn die Exception ausgelöst wird.

Anonyme Blöcke werden im allgemeinen im Interpreter benutzt, um andere benannte Programmblöcke interaktiv aufzurufen. Wenn Sie z.B. den folgenden anonymen Block eingeben, wird die Prozedur Put_Line in dem Paket Text_IO aufgerufen:

Text_IO.Put_Line('Hello');


Beispiel für einen anonymen Block

Der folgende anonyme PL/SQL-Block druckt die Namen aller Mitarbeiter in Abteilung 20 in der Tabelle emp_tab mit dem Paket DBMS_OUTPUT:

DECLARE
   emp_name  VARCHAR2(10);
   cursor    c1 IS SELECT ename FROM emp_tab
                     WHERE deptno = 20;
BEGIN
   OPEN c1;
   LOOP
      FETCH c1 INTO emp_name;
      EXIT WHEN c1%NOTFOUND;
      DBMS_OUTPUT.PUT_LINE(emp_name);
   END LOOP;
END;


Über Unterprogramme

  Verwandte Themen

Unterprogramme sind benannte PL/SQL-Blöcke, die Parameter aufnehmen und aufgerufen werden können. Unterprogramme können von anderen Programmblöcken referenziert werden.

PL/SQL verfügt über zwei Typen von Unterprogrammen, die als Prozeduren und Funktionen bezeichnet werden. Im allgemeinen benutzen Sie eine Prozedur zur Ausführung einer Aktion und eine Funktion zur Berechnung eines Wertes.

Unterprogramme können erweitert werden, d.h. Sie können die PL/SQL-Sprache entsprechend Ihren Anforderungen anpassen. Wenn Sie z.B. eine Prozedur benötigen, mit der neue Abteilungen erstellt werden, können Sie diese jederzeit wie folgt schreiben:

PROCEDURE create_dept (new_dname VARCHAR2, new_loc VARCHAR2) IS
BEGIN
  INSERT INTO dept
     VALUES (deptno_seq.NEXTVAL, new_dname, new_loc);
END create_dept;

Unterprogramme ermöglichen außerdem Modularität, d.h. Sie können ein Programm in verwaltbare, einwandfrei definierte logische Module unterteilen. Dies unterstützt einen Top-Down-Entwurf und eine schrittweise Optimierung bei der Problemlösung.

Außerdem vereinfachen Unterprogramme die Wiederverwendbarkeit und Verwaltbarkeit. Nachdem ein Unterprogramm validiert wurde, kann es in einer beliebigen Anzahl von Anwendungen benutzt werden. Wenn die Definition sich ändert, ist nur das Unterprogramm betroffen. Dadurch werden Verwaltung und Erweiterung vereinfacht.

Schließlich vereinfachen Unterprogramme die Abstraktion, d.h. die mentale Trennung von einzelnen Elementen. Um Unterprogramme benutzen zu können, müssen Sie wissen, was diese tun, und nicht, wie sie es tun. Deshalb können Sie Anwendungen von oben nach unten entwickeln, ohne sich um die Details der Implementierung kümmern zu müssen. Mit Pseudounterprogrammen können Sie die Definition von Prozeduren und Funktionen verzögern, bis Sie das Hauptprogramm testen und debuggen.


Über Prozeduren

  Einschränkungen 	  Beispiel	  Verwandte Themen

Eine Prozedur ist ein Unterprogramm, das eine bestimmte Aktion ausführt. Sie schreiben Prozeduren mit folgender Syntax:

PROCEDURE name [(parameter[, parameter, ...])] IS
   [local declarations]
BEGIN
   executable statements
[EXCEPTION
   exception handlers]
END [name];

wobei parameter für die folgende Syntax steht:

parameter_name [IN | OUT [NOCOPY] | IN OUT [NOCOPY]] datatype_name
   [{:= | DEFAULT} expression]

Eine Prozedur hat zwei Teile:

•	Spezifikation (Kurzspez)

•	Rumpf

Spezifikation  Die Prozedurspezifikation beginnt mit dem Schlüsselwort PROCEDURE und endet mit dem Prozedurnamen oder einer Parameterliste. Parameterdeklarationen sind optional. Prozeduren, für die keine Parameter angegeben werden, werden ohne Klammern geschrieben. Die Spezifikation von Prozedur proc1 wird z.B. folgendermaßen dargestellt:

PROCEDURE proc1 (param CHAR);

Rumpf  Der Prozedurrumpf beginnt mit dem Schlüsselwort IS und endet mit dem Schlüsselwort END gefolgt von einem optionalen Prozedurnamen. Der Prozedurrumpf hat drei Teile: einen deklarativen Teil, einen ausführbaren Teil und einen optionalen Teil zur Verarbeitung von Exceptions.

Der deklarative Teil enthält lokale Deklarationen, die zwischen den Schlüsselwörtern IS und BEGIN stehen. Das Schlüsselwort DECLARE, das die Deklarationen in einem anonymen PL/SQL-Block anführt, wird nicht benutzt.

Der ausführbare Teil enthält Anweisungen, die zwischen den Schlüsselwörtern BEGIN und EXCEPTION (oder END) stehen. Mindestens eine Anweisung muß in dem ausführbaren Teil einer Prozedur stehen. Die Anweisung NULL erfüllt diese Anforderung.

Der Teil zur Verarbeitung von Exceptions enthält Exception-Handler, die zwischen den Schlüsselwörtern EXCEPTION und END stehen.

Der Rumpf von Prozedur proc1 wird z.B. unten dargestellt:

PROCEDURE proc1 (param CHAR) IS
BEGIN
  Text_IO.Put_Line('Hello from PROC1');
END;

Eine Prozedur wird als PL/SQL-Anweisung aufgerufen. So könnten Sie z.B. die Prozedur raise_salary wie folgt aufrufen:

DECLARE
   emp_id NUMBER;
   amount REAL;
BEGIN
   ...
   raise_salary(emp_id, amount);


Parameterbeschränkungen

Sie können den Datentyp eines Parameters nicht (z.B. mit NOT NULL) beschränken. Die folgende Deklaration von acct_id ist unzulässig, weil für den Datentyp CHAR eine Größenbeschränkung gilt:

PROCEDURE reconcile (acct_id CHAR(5)) IS ... -- illegal

Sie können jedoch folgende Zwischenlösung verwenden, um indirekt für die Parametertypen eine Größenbeschränkung festzulegen:

DECLARE
   temp CHAR(5);
   SUBTYPE Char5 IS temp%TYPE;
   PROCEDURE reconcile (acct_id Char5) IS ...


Beispiel für eine Prozedur

Betrachten Sie die Prozedur raise_salary, die das Gehalt eines Mitarbeiters um einen bestimmten Betrag erhöht:

PROCEDURE raise_salary (emp_id INTEGER, amount REAL) IS
   current_salary REAL;
   salary_missing EXCEPTION;
BEGIN
   SELECT sal INTO current_salary FROM emp
     WHERE empno = emp_id;
   IF current_salary IS NULL THEN
      RAISE salary_missing;
   ELSE
      UPDATE emp SET sal = sal + amount
        WHERE empno = emp_id;
   END IF;
EXCEPTION
   WHEN NO_DATA_FOUND THEN
      INSERT INTO emp_audit VALUES (emp_id, 'No such number');
   WHEN salary_missing THEN
      INSERT INTO emp_audit VALUES (emp_id, 'Salary is null');
END raise_salary;

Wenn diese Prozedur aufgerufen wird, akzeptiert sie eine Mitarbeiternummer und einen Betrag zur Erhöhung des Gehalts. Die Prozedur verwendet eine Mitarbeiternummer, um das aktuelle Gehalt aus der Datenbanktabelle emp auszuwählen. Wenn die Mitarbeiternummer nicht gefunden wird oder wenn das aktuelle Gehalt null ist, wird eine Exception ausgelöst. Sonst wird das Gehalt aktualisiert.


Über Funktionen

  Beispiel	  Verwandte Themen

Eine Funktion ist ein Unterprogramm, mit dem ein Wert berechnet wird. Funktionen und Prozeduren sind gleich strukturiert, nur verfügen Funktionen über eine Klausel RETURN. Funktionen werden mit folgender Syntax geschrieben:

FUNCTION name [(parameter[, parameter, ...])] RETURN datatype IS
   [local declarations]
BEGIN
   executable statements
[EXCEPTION
   exception handlers]
END [name];

wobei parameter für folgende Syntax steht:

parameter_name [IN | OUT [NOCOPY] | IN OUT [NOCOPY]] datatype_name
   [{:= | DEFAULT} expression]

Wie eine Prozedur hat eine Funktion zwei Teile:

•	Spezifikation (Kurzspez)

•	Rumpf

Spezifikation  Die Funktionsspezifikation beginnt mit dem Schlüsselwort FUNCTION und endet mit der Klausel RETURN, mit der der Datentyp des Ergebniswertes angegeben wird. Parameterdeklarationen sind optional. Funktionen, für die keine Parameter angegeben werden, werden ohne Klammern geschrieben.

Rumpf  Der Funktionsrumpf beginnt mit dem Schlüsselwort IS und endet mit dem Schlüsselwort END gefolgt von einem optionalen Funktionsnamen. Der Funktionsrumpf hat drei Teile: einen deklarativen Teil, einen ausführbaren Teil und einen optionalen Teil zur Verarbeitung von Exceptions.

Der deklarative Teil enthält lokale Deklarationen, die zwischen den Schlüsselwörtern IS und BEGIN stehen. Das Schlüsselwort DECLARE wird nicht benutzt.

Der ausführbare Teil enthält Anweisungen, die zwischen den Schlüsselwörtern BEGIN und EXCEPTION (oder END) stehen. Eine oder mehrere RETURN-Anweisungen müssen in dem ausführbaren Teil einer Funktion stehen.

Der Teil zur Verarbeitung von Exceptions enthält Exception-Handler, die zwischen den Schlüsselwörtern EXCEPTION und END stehen.

Sie können den Datentyp eines Parameter- oder Funktionsergebnisses nicht (z.B. mit NOT NULL) beschränken. Sie können jedoch eine Zwischenlösung benutzen, um deren Größe individuell zu beschränken. Hierzu wird auf Parameterbeschränkungen verwiesen.

Eine Funktion wird als Bestandteil eines Ausdrucks aufgerufen. Die Funktion sal_ok könnte folgendermaßen aufgerufen werden:

DECLARE
   new_sal REAL;
   new_title VARCHAR2(15);
BEGIN
   ...
   IF sal_ok(new_sal, new_title) THEN ...

Der Funktionsbezeichner sal_ok fungiert als Variable, deren Wert von den Parametern abhängig ist, die an die Funktion übergeben werden.

Während ein Prozeduraufruf einfach eine Anweisung darstellt, ist ein Funktionsaufruf ein Ausdruck und kann nur angezeigt werden, wenn Ausdrücke zulässig sind. So könnte z.B. die Funktion TO_CHAR auf der rechten Seite einer Zuweisungsanweisung benutzt werden (charvar := to_char(100);).


Beispiel für eine Funktion

Betrachten Sie die Funktion sal_ok, mit der bestimmt wird, ob das Gehalt eines Mitarbeiters außerhalb des zulässigen Bereichs liegt:

FUNCTION sal_ok (salary REAL, title REAL) RETURN BOOLEAN IS
   min_sal REAL;
   max_sal REAL;
BEGIN
   SELECT losal, hisal INTO min_sal, max_sal
     FROM sals
     WHERE job = title;
   RETURN (salary >= min_sal) AND (salary <= max_sal);
END sal_ok;

Wenn diese Funktion aufgerufen wird, akzeptiert sie ein Mitarbeitergehalt und eine Berufsbezeichnung. Mit der Berufsbezeichnung werden Bereichsgrenzwerte aus der Datenbanktabelle sals ausgewählt. Der Funktionsbezeichner sal_ok wird von der RETURN-Anweisung auf einen Booleschen Wert festgelegt. Wenn das Gehalt außerhalb des zulässigen Bereichs liegt, wird sal_ok auf FALSE festgelegt; sonst wird sal_ok auf TRUE festgelegt.


Über Pakete

  Beispiel	  Verwandte Themen

Mit Paketen wird eine Sammlung von logisch zusammengehörigen Unterprogrammen (Prozeduren und Funktionen), Typen, Variablen und Cursorn definiert. Ein Paket enthält im allgemeinen zwei Teile:

•	Spezifikation (obligatorisch; Kurzspez)

•	Rumpf (optional)

Spezifikation  Die Spezifikation deklariert die öffentliche Schnittstelle zu dem Paket - d.h. Typen, Konstanten, Variablen, Exceptions, Cursor und Unterprogramme, die von anderen Programmblöcken referenziert werden können.

Rumpf  Der Rumpf umfaßt die eigentlichen Implementierungsdetails des Pakets, die private Unterprogramme, Variablen und Datentypen umfassen können. Sie können einen Paketrumpf debuggen, erweitern oder ersetzen, ohne die Spezifikation für das Paket zu ändern. Der Rumpf ist optional, wenn das Paket nur aus Deklarationen besteht - z.B. ein Paket kann einfach eine Gruppe von Datentypen definieren.

Nur die Deklarationen in der Paketspezifikation sind sichtbar und können von Anwendungen aufgerufen werden. Implementierungsdetails im Paketrumpf sind verborgen und können nicht aufgerufen werden. So können Sie den Rumpf (Implementierung) ändern, ohne daß Sie aufrufende Programme neu kompilieren müssen.

Pakete können in der Oracle-Datenbank kompiliert und gespeichert werden, wo ihr Inhalt von vielen Anwendungen gemeinsam benutzt werden kann. Wenn Sie ein in einem Paket integriertes Unterprogramm das erste Mal aufrufen, wird das ganze Paket in den Speicher geladen. Nachfolgende Aufrufe von zugehörigen Unterprogrammen in dem Paket erfordern keine Platten-E/A.

Um Typen, Elemente und Unterprogramme zu referenzieren, die in einer Paketspezifikation deklariert sind, benutzen Sie die Punktschreibweise. Zum Beispiel:

package_name.type_name

package_name.item_name

package_name.subprogram_name

Procedure Builder verfügt über eine Reihe von client-seitigen vordefinierten Paketen, die Sie in Ihren PL/SQL-Programmblöcken benutzen können. Hierzu wird auf Vordefinierte Developer-Pakete verwiesen.


Beispiel für ein Paket

In diesem Beispiel sind zwei Mitarbeiterprozeduren in einem Paket integriert:

CREATE PACKAGE emp_actions AS     -- package specification
   PROCEDURE hire_emp (empno NUMBER, ename CHAR);
   PROCEDURE fire_emp (emp_id NUMBER);
END emp_actions;

CREATE PACKAGE BODY emp_actions AS     -- package body
   PROCEDURE hire_emp (empno NUMBER, ename CHAR) IS
   BEGIN
      INSERT INTO emp VALUES (empno, ename);
   END hire_emp;
   PROCEDURE fire_emp (emp_id NUMBER) IS
   BEGIN
      DELETE FROM emp WHERE empno = emp_id;
   END fire_emp;
END emp_actions;


Über die Kompilierung von Programmblöcken

  Verwandte Themen

Ein Programmblock enthält zunächst Text, und zwar den sogenannten Quellcode. Beim Kompilieren eines Programmblocks werden folgende Komponenten zur Programmblockquelle hinzugefügt:

PCODE	ausführbarer Laufzeitcode
DIANA	detaillierte Informationen über den Kompilierungsstatus des Programmblocks, die auch Querverweise beinhalten
Aspekte der Speichergröße  Aufgrund der zusätzlichen Informationen, die beim Kompilieren generiert werden, nimmt die Größe des Programmblocks zu. Die DIANA eines Programmblocks macht dabei den größten Anteil der Programmblockgröße aus.

Spielt die Größe bei einer bestimmten Gruppe von Programmblöcken, die Sie in einer Bibliothek speichern werden, eine Rolle, haben Sie folgende Möglichkeiten:

•	Sie verwenden den Befehl SAVE mit dem Schlüsselwort NOSOURCE, um eine Laufzeitversion der Programmblöcke zu speichern, in der die DIANA noch enthalten ist.

•	Sie verwenden den Befehl SAVE mit dem Schlüsselwort NODIANA, um nur Quelle und PCODE der Programmblöcke zu speichern.

•	Sie verwenden den Befehl GENERATE, um eine reine Laufzeitversion der Bibliothek zu erstellen, die nur den ausführbaren PCODE der Programmblöcke enthält.

Hinweis:  Wenn Sie einen Programmblock bearbeiten und neu kompilieren möchten, muß der Quellcode vorhanden sein.


Über das Verteilen der Anwendungslogik

  Verwandte Themen

Der Speicherort der PL/SQL-Programmblöcke für Ihre Anwendung kann sich wesentlich auf die Ausführungszeit und Effizienz Ihrer Anwendungen auswirken. In der folgenden Tabelle werden die drei Speicherorte für PL/SQL-Programmblöcke und der entsprechende Ausführungsort für jeden der Programmblöcke aufgeführt:

Speicherort	Ausführungsort
Knoten Programmblöcke	Client
Knoten Zugeordnete Bibliotheken:   im Dateisystem gespeicherte Programmblöcke   in der Datenbank gespeicherte Programmblöcke	Client
Knoten Datenbankobjekte:   Unterknoten Gespeicherte Programmblöcke	Server
Wenn Sie den gesamten PL/SQL-Code für Ihre Anwendung entwickelt haben, sollten Sie entscheiden, an welchem Speicherort Sie den Code am besten ablegen.

Es folgen einige Aspekte, die Sie bei dieser Entscheidung in Betracht ziehen sollten:

•	PL/SQL-Programmblöcke, die innerhalb der Anwendung gespeichert sind, werden beim Start der Anwendung zur Laufzeit in den Speicher geladen.

•	PL/SQL-Programmblöcke, die sich in der Anwendung zugeordneten Bibliotheken befinden, werden nicht in den Speicher geladen, bis sie von der Anwendung aufgerufen werden. Danach bleiben sie im Speicher, damit sie für eine erneute Verwendung schnell verfügbar sind.

•	PL/SQL-Programmblöcke, die in Bibliotheken gespeichert sind, können von anderen Anwendungen verwendet werden.

•	PL/SQL-Programmblöcke, die Transaktionen in einer Datenbank durchführen, können auf dem Server gespeichert werden, um den Datenverkehr zwischen Client und Server auf dem Netz gering zu halten.

Sie können sämtliche Aktivitäten der Anwendungsverteilung durch Ziehen und Ablegen von Objekten (Programmblöcken) im Objektnavigator durchführen.


Über das Ungültigmachen von Programmblöcken

  Verwandte Themen

"Ungültig machen" heißt, daß der Kompilierungsstatus des Programmblocks aufgehoben wird. Wenn Sie die Spezifikation eines Programmblocks (also seinen Namen oder seine Parameterliste) ändern, können dadurch andere Programmblöcke ungültig gemacht werden, die diese Spezifikation referenzieren oder aufrufen. Die Spezifikation definiert, welche Teile eines Programmblocks für andere Programmblöcke sichtbar sind.

Ändern Sie den Rumpf eines Programmblocks, werden Programmblöcke, die ihn aufrufen, nicht auf ungültig gesetzt.

Wenn Sie die Spezifikation eines Programmblocks ändern, der von anderen, momentan definierten Programmblöcken referenziert wird, können Sie im Objektnavigator beobachten, daß diese Programmblöcke ihren Kompilierungsstatus verlieren, sobald Sie den geänderten Programmblock kompilieren.

Ein nicht kompilierter Programmblock wird im Navigator mit einem Symbol für einen nicht einblendbaren Knoten und einem Stern (*) nach dem Programmblocknamen angezeigt.

Sie können den Knoten des geänderten Programmblocks im Objektnavigator einblenden und den Knoten Referenziert von untersuchen, um die Namen der Programmblöcke anzuzeigen, die den geänderten Programmblock referenzieren.

Bei Unterprogrammen besteht die Spezifikation aus der Liste formaler Parameter (und, bei Funktionen, dem Rückgabewert). Die Spezifikation eines Unterprogramms kann in einem separaten Programmblock enthalten oder implizit im Rumpf des Unterprogramms angegeben sein. Am häufigsten werden implizite Spezifikationen verwendet, da sie sehr praktisch sind. Separate Unterprogrammspezifikationen sind jedoch sehr gut für Anwendungsfälle mit Vorwärtsreferenzen geeignet.

Pakete enthalten immer einen separaten Programmblock für die Spezifikation. Sie werden nur dann auf ungültig gesetzt, wenn sich die Paketspezifikation ändert, da ausschließlich die Spezifikation (und nicht der Paketrumpf) für andere Programmblöcke sichtbar ist.


Über das Auflösen von Querverweisen

  Verwandte Themen

Wenn Procedure Builder einen Verweis auf einen Programmblock findet, versucht das Programm, den Verweis aufzulösen, indem es in der folgenden Reihenfolge nach dem Zielprogrammblock sucht:

1	Geladene, kompilierte Programmblöcke.

2	Vordefinierte Programmblöcke.

3	Geladene, nicht kompilierte Programmblöcke.

Wird hier eine Übereinstimmung gefunden, wird der referenzierte Programmblock nun kompiliert.

4	Zugeordnete Bibliotheken.

5	Gespeicherte Programmblöcke in der aktuellen Datenbank.


Programmblöcke im Programmblock-Editor erstellen

  Verwandte Themen

So erstellen Sie einen Programmblock im Programmblock-Editor:

1	Klicken Sie auf den Knoten Programmblöcke im Objektnavigator.

2	Klicken Sie in der Symbolleiste des Navigators auf [image], um das Dialogfeld Neuer Programmblock aufzurufen.

3	Geben Sie einen Namen für den Programmblock in das Textfeld Name ein.

4	Falls der zu erstellende Programmblock keine Prozedur ist (Standard), klicken Sie im Feld Typ auf die Optionsschaltfläche Funktion oder Paket.

5	Im Programmblock-Editor wird die anfängliche Spezifikation für den Programmblock angezeigt.

6	Geben Sie die Programmblockquelle in den Quellausschnitt ein.

7	Klicken Sie auf Kompilieren, um die Programmblockquelle zu kompilieren.

Alle festgestellten Syntaxfehler werden im Ausschnitt für Kompilierungsmeldungen angezeigt.

8	Klicken Sie entweder auf Schließen, um den Programmblock-Editor zu schließen, oder auf Neu, um einen weiteren neuen Programmblock zu erstellen.


Programmblöcke im Interpreter erstellen

  Verwandte Themen

So erstellen Sie einen Programmblock im Interpreter:

  Zum Definieren eines Programmblocks geben Sie seine Quelle einfach direkt im Interpreter ein. An der Eingabeaufforderung PL/SQL> im Interpreter-Ausschnitt kann jede zulässige PL/SQL-Syntax eingegeben werden.

Wenn Sie beispielsweise einen anonymen Block in Procedure Builder erstellen und ausführen möchten, geben Sie den folgenden PL/SQL-Code an der Interpreter-Eingabeaufforderung ein:

PL/SQL> Text_IO.Put_Line('Hello World');


 Über das Importieren externer Programmblöcke

  Verwandte Themen

Eine andere Möglichkeit zum Definieren eines Programmblocks besteht darin, den Programmblock aus einer externen Quelle, etwa einer Textdatei, zu laden. Diese Methode ist besonders dann sehr praktisch, wenn Sie Ihre PL/SQL bisher mit einer externen Anwendung bearbeitet und/oder verwaltet haben (etwa mit Editoren, Werkzeugen zur Konfigurationsverwaltung, Programmen zur Codegenerierung etc.).

Sie haben folgende Möglichkeiten, Programmblöcke aus den folgenden externen Quellen zu importieren:

•	Laden der Textdatei eines einzelnen Programmblocks

•	Ausführen eines Interpreter-Skripts

•	Importieren von Quelltext in den Programmblock-Editor


Einzelne Programmblöcke laden

 Verwandte Themen

So laden Sie einen einzelnen Programmblock:

1	Wählen Sie Datei [image] Laden aus dem Menü, um das Dialogfeld Programmblock laden aufzurufen.

2	Geben Sie den Verzeichnispfad und den Dateinamen in das Feld Datei ein, oder klicken Sie auf Durchsuchen, um das Datei-Dialogfeld Ihres Betriebssystem zur Suche nach der Datei anzuzeigen.

Programmblock-Textdateien haben standardmäßig die Erweiterung .pls.

3	Wenn Sie während des Ladevorgangs nicht jeweils zur Bestätigung aufgefordert werden wollen, wählen Sie das Kontrollkästchen Bestätigungen unterdrücken aus.

Sie werden eventuell zur Bestätigung aufgefordert, wenn der zu ladende Programmblock den gleichen Namen wie ein vorhandener Programmblock hat.

4	Klicken Sie auf Laden, um die ausgewählte Programmblock-Textdatei zu laden und zu kompilieren.

Procedure Builder zeigt den Befehl .LOAD FILE Dateiname (NOCONFIRM) im Interpreter-Ausschnitt an. Dann wird der Programmblock importiert und kompiliert. Im Objektnavigator wird jetzt ein neuer Knoten angezeigt.


Interpreter-Skript ausführen

 Verwandte Themen

So führen Sie ein Interpreter-Skript aus:

1	Wählen Sie Datei [image] Interpretieren aus dem Menü, um das Dialogfeld Debug-Skript interpretieren aufzurufen.

2	Geben Sie den Verzeichnispfad und den Dateinamen des Interpreter-Skripts in das Feld Datei ein, oder klicken Sie auf Durchsuchen, um das Datei-Dialogfeld Ihres Betriebssystem zur Suche nach der Datei anzuzeigen.

Interpreter-Skripts haben im allgemeinen die Erweiterung .pld.

3	Wählen Sie das Kontrollkästchen Echo, damit die Skript-Befehle während der Interpretation im Echoverfahren angezeigt werden

4	Wenn Sie die Anzeige von Befehlen und Fehlermeldungen im Interpreter unterdrücken möchten, klicken Sie jetzt auf das Kontrollkästchen Meldungen nicht anzeigen, um es auszuwählen.

5	Sollen während der Skriptverarbeitung keine Warnfenster zur Bestätigung angezeigt werden, klicken Sie nun auf das Kontrollkästchen Bestätigungen unterdrücken, um es auszuwählen.

Sie werden eventuell zur Bestätigung aufgefordert, wenn das Skript einen Programmblock oder eine Bibliothek mit dem Namen in der aktuellen Sitzung bereits bestehender Programmblöcke oder Bibliotheken erstellt.

6	Klicken Sie auf Interpretieren, um die Einstellungen zu akzeptieren und das Interpreter-Skript auszuführen.

Procedure Builder zeigt den Befehl .INTERPRET FILE Dateiname im Interpreter-Ausschnitt an. Dann wird das Interpreter-Skript ausgeführt. Im Objektnavigator werden nach und nach neu erstellte Programmblöcke und Bibliotheken angezeigt.

Interpreter-Skripts können beliebige Kombinationen aus PL/SQL-Programmblockquellen, Procedure Builder-Befehlen und SQL-Anweisungen enthalten.


Quelltext importieren

  Nächster Schritt	  Verwandte Themen

So importieren Sie Quelltext:

1	Klicken Sie auf den Knoten Programmblöcke im Objektnavigator.

2	Klicken Sie in der Symbolleiste des Navigators auf [image], um das Dialogfeld Neuer Programmblock aufzurufen.

3	Geben Sie einen Namen für den Programmblock in das Textfeld Name ein.

4	Falls der zu erstellende Programmblock keine Prozedur ist (Standard), klicken Sie im Feld Typ auf die Optionsschaltfläche Funktion oder Paket.

Im Programmblock-Editor wird die anfängliche Spezifikation für den Programmblock angezeigt.

5	Plazieren Sie den Cursor an der Stelle im Quellausschnitt, an der Sie den importierten Quelltext einfügen möchten.

6	Wählen Sie Datei [image] Text importieren aus, um das Datei-Dialogfeld des Betriebssystems anzuzeigen.

7	Geben Sie Name und Speicherort der zu importierenden Textdatei ein.

8	Klicken Sie auf OK, um das Datei-Dialogfeld zu akzeptieren und die Datei zu importieren.

Die Textdatei wird nun im Programmblock-Editor angezeigt. Bearbeiten Sie sie, falls nötig.

9	Klicken Sie auf Kompilieren, um den Programmblock zu kompilieren.

10	Wenn Sie fertig sind, klicken Sie auf Schließen, um den Programmblock-Editor zu schließen.


Programmblöcke bearbeiten

  Nächster Schritt	  Verwandte Themen

So bearbeiten Sie einen Programmblock:

  Doppelklicken Sie auf das Symbol des Programmblocks im Objektnavigator, um den Programmblock im Programmblock-Editor anzuzeigen.

Oder

  Klicken Sie im Programmblock-Editor in der Dropdown-Liste Name auf den Namen des Programmblocks.

Bei umfangreicher Bearbeitung sollten Sie Ihre Änderungen während der Arbeit mit Hilfe der Schaltfläche Anwenden speichern. Es wird keine Neukompilierung durchgeführt.


Programmblöcke neu definieren

  Verwandte Themen

So definieren Sie einen Programmblock neu:

  Bearbeiten Sie den Inhalt eines bestehenden Programmblocks im Programmblock-Editor.

Oder

  Laden Sie einen neuen, gleichnamigen, externen Programmblock.

Oder

  Geben Sie im Interpreter die Quelle eines neuen Programmblocks ein, und verwenden Sie dabei den Namen des neu zu definierenden Programmblocks.

Bei kurzen Programmblöcken oder begrenzten Änderungen ist es am praktischsten, den bestehenden Programmblock im Programmblock-Editor zu bearbeiten. Wollen Sie den vorhandenen Programmblock jedoch vollständig verändern und durch einen anderen Programmblock gleichen Namens ersetzen (um alle in anderen Programmblöcken enthaltenen Aufrufe beibehalten zu können), sollten Sie eine der anderen Methoden verwenden.


Programmblockquelle anzeigen

  Verwandte Themen

So zeigen Sie die Programmblockquelle im Programmblock-Editor an:

  Doppelklicken Sie auf das Symbol des Programmblocks im Objektnavigator.

Verwenden Sie den Programmblock-Editor, wenn Sie den Inhalt des Programmblocks als solchen bearbeiten möchten.

So zeigen Sie die Programmblockquelle im Interpreter an:

1	Falls PL/SQL-Interpreter nicht bereits geöffnet ist, wählen Sie Programm [image] PL/SQL-Interpreter aus, um Interpreter aufzurufen.

2	Ordnen Sie die Fenster so an, daß sowohl der Objektnavigator als auch Interpreter sichtbar sind.

3	Klicken Sie im Objektnavigator auf den Programmblock.

Nun wird die Programmblockquelle mit Zeilennummern im Quellausschnitt angezeigt.

Verwenden Sie den Interpreter-Quellausschnitt, wenn Sie die Programmblockquelle mit Zeilennummern anzeigen und eventuell auch Debug-Aktionen für den Programmblock durchführen wollen.

Hinweis:  Die Dropdown-Liste Name listet nur die Programmblöcke auf, die im aktuellen Geltungsbereich (beispielsweise im Knoten Programmblöcke, im Knoten einer offenen Bibliothek etc.) verfügbar sind.


Unterprogramme aufrufen

So rufen Sie ein Unterprogramm auf:

1	Stellen Sie sicher, daß der Programmblock-Editor geöffnet und das aktuelle (also zuletzt ausgewählte) Fenster ist.

2	Plazieren Sie den Cursor an der Stelle im Programmblock-Editor, an der Sie den Unterprogrammaufruf einfügen möchten.

3	Wählen Sie den Knoten einer Programmblockspezifikation im Objektnavigator aus.

Dabei kann es sich um die Unterprogrammspezifikation eines benutzerdefinierten Programmblocks oder ein vordefiniertes Unterprogramm handeln.

4	Wählen Sie Namen einfügen oder Argumente einfügen aus dem Popup-Menü.

Das ausgewählte Unterprogramm wird im Programmblock-Editor eingefügt.

Der Befehl Namen einfügen fügt nur den Namen des Unterprogramms ein. Argumente einfügen fügt dagegen den Namen und festgelegten Argumenttyp ein, den Sie dann durch einen konkreten Wert ersetzen können.


Programmblöcke umbenennen

  Verwandte Themen

So benennen Sie einen Programmblock um:

1	Doppelklicken Sie auf das Symbol des Programmblocks im Objektnavigator, um ihn im Programmblock-Editor zu öffnen.

2	Bearbeiten Sie den Programmblocknamen im Rumpf des Programmblocks.

3	Klicken Sie auf Kompilieren, um den neuen Namen anzuwenden.

4	Klicken Sie auf Schließen, um den Programmblock-Editor zu schließen.

Zuvor kompilierte Programmblöcke, die Aufrufe an den alten Programmblocknamen enthalten, werden im Objektnavigator jetzt als nicht kompiliert angegeben, was der Stern (*) nach ihrem Namen anzeigt.

Hinweis:  Sie können Programmblöcke nur innerhalb des Programmblock-Editors umbenennen. Wenn Sie einen Programmblock umbenennen, der in anderen Programmblöcken referenziert wird, müssen Sie diese Verweise auf den neuen Namen abändern.


Text in einem einzelnen Programmblock suchen und ersetzen

  Verwandte Themen

So suchen und ersetzen Sie Text in einem einzelnen Programmblock:

1	Öffnen Sie den Programmblock, in dem die Suche durchgeführt werden soll, im Programmblock-Editor oder Gespeicherte Programmblöcke-Editor.

2	Plazieren Sie den Cursor an der Stelle, an der die Suche beginnen soll.

Procedure Builder beginnt die Suche bei der aktuellen Position des Cursors in der Programmblockquelle. Beim Erreichen des Endes des aktuellen Programmblocks werden Sie aufgefordert, die Suche (am Anfang des Programmblocks) fortzusetzen.

3	Wählen Sie Bearbeiten [image] Suchen undErsetzen, um das gleichnamige Dialogfeld anzuzeigen.

4	Geben Sie Ihre Suchkriterien und optional auch die Ersatzzeichenkette ein.

Sie können als Suchtext entweder eine Textzeichenkette oder einen regulären Ausdruck angeben. Außerdem läßt sich einstellen, ob die Groß-/Kleinschreibung bei der Suche beachtet werden soll.

5	Klicken Sie auf Suchen, um die Suche zu starten.

Wird ein Vorkommen der Suchkriterien gefunden, können Sie:

•	auf Ersetzen klicken, um dieses Vorkommen zu ersetzen;

•	auf Alle ersetzen klicken, um alle Vorkommen der Suchkriterien im aktuellen Programmblock zu ersetzen;

•	den Text direkt im Programmblock-Editor bearbeiten.


Einzelne Programmblöcke kompilieren

  Verwandte Themen

So kompilieren Sie einen einzelnen Programmblock:

1	Klicken Sie auf das Symbol für den Programmblock im Objektnavigator.

2	Wählen Sie Programm [image] Kompilieren [image] Alle aus dem Hauptmenü aus, um den ausgewählten Programmblock zu kompilieren.

Falls Fehler festgestellt werden, wird der Programmblock-Editor aufgerufen. Der Programmblock-Editor zeigt die Quelle des ausgewählten Programmblocks sowie den Ausschnitt für Kompilierungsmeldungen mit den entsprechenden Kompilierungsfehlern an.


Ausgewählte Programmblöcke kompilieren

  Verwandte Themen

So kompilieren Sie ausgewählte Programmblöcke:

1	Klicken Sie auf das Symbol für jeden Programmblock im Objektnavigator aus.

Durch Klicken bei gedrückter Umschalttaste wählen Sie Programmblöcke in einem zusammenhängenden Bereich aus. Wenn Sie beim Klicken die STRG-Taste drücken, weiten Sie die Auswahl auf Programmblöcke aus, die sich nicht in einem zusammenhängenden Bereich befinden.

2	Wählen Sie Programm [image] Kompilieren [image] Alle aus dem Hauptmenü aus, um die ausgewählten Programmblöcke zu kompilieren.

Falls Fehler festgestellt werden, wird der Programmblock-Editor aufgerufen. Der Programmblock-Editor zeigt die Quelle des ersten ausgewählten Programmblocks sowie den Ausschnitt für Kompilierungsmeldungen mit den entsprechenden Kompilierungsfehlern an.


Alle Programmblöcke kompilieren

  Verwandte Themen

So kompilieren Sie alle Programmblöcke:

1	Klicken Sie auf den Knoten Programmblöcke im Objektnavigator.

2	Wählen Sie Programm [image] Kompilieren [image] Alle aus dem Hauptmenü aus, um alle Programmblöcke unabhängig von ihrem aktuellen Kompilierungsstatus zu kompilieren.

Daraufhin wird das Dialogfeld Kompilieren angezeigt, das Sie über den Status der Kompilierung informiert.


Alle unkompilierten Programmblöcke kompilieren

  Verwandte Themen

So kompilieren Sie alle unkompilierten Programmblöcke:

1	Klicken Sie auf den Knoten Programmblöcke im Objektnavigator.

2	Wählen Sie Programm [image] Kompilieren [image] Inkremental aus, um nur die momentan unkompilierten Programmblöcke zu kompilieren.

Daraufhin wird das Dialogfeld Kompilieren angezeigt, das Sie über den Status der Kompilierung informiert.


Informationen über Programmblöcke im Objektnavigator anzeigen

So zeigen Sie Informationen über Programmblöcke im Objektnavigator an:

  Klicken Sie zuerst im Objektnavigator auf den Knoten Programmblöcke und dann in der Symbolleiste des Navigators auf [image].

Nun zeigt der Objektnavigator die folgenden Informationen über den Programmblock an:

•	Programmblocktyp

•	Spezifikation

•	Verweise auf andere Programmblöcke, vordefinierte PL/SQL-Prozeduren etc.

•	Verweise auf diesen Programmblock in anderen Programmblöcken, vordefinierten PL/SQL-Prozeduren etc.


Informationen über Programmblöcke im Interpreter anzeigen

 Verwandte Themen

So zeigen Sie Informationen über Programmblöcke im Interpreter an:

  Geben Sie den Befehl DESCRIBE mit den erforderlichen Schlüsselwörtern und Variablen an der Interpreter-Eingabeaufforderung ein.

Im Interpreter-Quellausschnitt werden nun folgende Informationen über den Programmblock angezeigt:

•	Programmblocktyp

•	Parameter

•	Kompilierungsstatus

•	Verweise auf andere Programmblöcke, vordefinierte PL/SQL-Prozeduren etc.

•	Verweise auf diesen Programmblock in anderen Programmblöcken, vordefinierten PL/SQL-Prozeduren etc.


Programmblöcke in eine Textdatei exportieren

  Verwandte Themen

So exportieren Sie einen Programmblock in eine Textdatei:

1	Doppelklicken Sie im Objektnavigator auf das Symbol für den Programmblock, um den Programmblock-Editor zu öffnen.

2	Falls Sie nur einen Teil des Programmblocks exportieren möchten, wählen Sie jetzt den zu exportierenden Text aus.

3	Wählen Sie Datei [image] Text exportieren aus, um das Datei-Dialogfeld des Betriebssystems aufzurufen.

4	Geben Sie einen Namen und Ordner für die Textdatei des exportierten Programmblocks an.

Programmblock-Textdateien haben standardmäßig die Erweiterung .pls.

5	Klicken Sie auf OK, um das Dialogfeld zu akzeptieren und eine Kopie des aktuellen Programmblocks in die angegebene Textdatei zu exportieren.

Sie können den Quellcode eines Programmblocks in eine Textdatei im Dateisystem exportieren und später wieder zurückladen. So könnten Sie beispielsweise einen Programmblock in Procedure Builder definieren und debuggen, ihn in eine Textdatei exportieren und diese dann zur Aufnahme in andere Oracle-Produkte an verschiedene Benutzer verteilen. Programmblöcke können ganz oder nur teilweise exportiert werden.


Programmblöcke in der Datenbank speichern

  Verwandte Themen

So speichern Sie einen Programmblock in der Datenbank:

1	Blenden Sie den Knoten Datenbankobjekte im Objektnavigator ein.

Wenn Sie momentan nicht bei der Datenbank angemeldet sind, ruft diese Aktion das Dialogfeld Anmelden auf, damit Sie eine Verbindung herstellen können.

2	Blenden Sie den untergeordneten Knoten ein, der dem Datenbankbenutzernamen entspricht, mit dem Sie Zugriffsberechtigung haben und den Programmblock speichern wollen.

Einer der untergeordneten Knoten trägt die Bezeichnung Gespeicherte Programmblöcke. Klicken Sie auf den Programmblock, den Sie in der Datenbank speichern wollen.

3	Ziehen Sie den Programmblock an eine Stelle unterhalb des untergeordneten Knotens Gespeicherte Programmblöcke unter dem Knoten Datenbankobjekte, und lassen Sie die Maustaste los.

Der Befehl STORE wird im Interpreter-Ausschnitt angezeigt:

PL/SQL> .STORE SUBPROGRAM /"puname" BODY

Gespeicherte Programmblöcke sind PL/SQL-Pakete und Unterprogramme, die sich auf dem Oracle-Datenbankserver befinden und dort ausgeführt werden.


Programmblöcke aus dem Objektnavigator löschen

  Verwandte Themen

So löschen Sie einen Programmblock aus dem Objektnavigator:

1	Klicken Sie auf das Symbol für den Programmblock im Objektnavigator aus.

2	Klicken Sie entweder in der Symbolleiste des Navigators auf [image], oder wählen Sie Navigator [image] Löschen aus dem Menü, um den Programmblock zu löschen.

Nun wird ein Meldungsfeld angezeigt, das Sie zum Bestätigen des Löschvorgangs auffordert.

3	Klicken Sie zur Bestätigung auf Ja.

In Interpreter wird folgender Befehl angezeigt:

PL/SQL> .DELETE PROCEDURE /"procname" BODY
Removing procedure procname...
PL/SQL>

Hinweis:  Wenn Sie einen Programmblock löschen, der in anderen Programmblöcken referenziert wird, müssen Sie diese Referenzen löschen.


Programmblöcke aus dem Programmblock-Editor löschen

  Verwandte Themen

So löschen Sie einen Programmblock aus dem Programmblock-Editor:

1	Wählen Sie im Editor den Programmblock gegebenenfalls aus der Dropdown-Liste Name aus.

2	Klicken Sie auf Löschen, um den Programmblock zu entfernen.

Nun wird ein Meldungsfenster angezeigt, das Sie zum Bestätigen des Löschvorgangs auffordert.

3	Klicken Sie zur Bestätigung auf Ja.

Der Programmblock wird gelöscht.

Hinweis:  Wenn Sie einen Programmblock löschen, der in anderen Programmblöcken referenziert wird, müssen Sie diese Referenzen löschen.


Über gespeicherte PL/SQL-Programmblöcke

  Verwandte Themen

Gespeicherte PL/SQL-Programmblöcke sind PL/SQL-Pakete und -Unterprogramme (Prozeduren und Funktionen), die in einem Oracle Datenbank-Server als Schemaobjekte erstellt und gespeichert werden. Nachdem ein gespeicherter Programmblock erstellt und kompiliert wurde, wird er zu einem benannten Objekt, das ohne erneute Kompilierung in der Datenbank ausgeführt werden kann.

Der Gespeicherte Programmblöcke-Editor bietet Funktionen für das Erstellen, Bearbeiten und Kompilieren für die Entwicklung von gespeicherten Programmblöcken. Gespeicherte Programmblöcke werden im Schema eines Benutzers erstellt und können mit den Berechtigungen des Eigentümers (Definierungs-Berechtigungen) oder mit den Berechtigungen des aktuellen Benutzers (Berechtigungen des aufrufenden Benutzers) ausgeführt werden.

Bei der Kompilierung führt der PL/SQL-Compiler, der in der Oracle PL/SQL-Engine enthalten ist, folgende Schritte aus:

•	analysiert den Quellcode in einem gespeicherten PL/SQL-Programmblock und erzeugt einen Analysebaum

•	generiert den Pseudocode oder P-Code basierend auf dem analysierten Code

Wenn der gespeicherte Programmblock aufgerufen wird, führt die PL/SQL-Engine den P-Code aus, nachdem Oracle folgendes überprüft hat:

•	Der aufrufende Benutzer ist der Eigentümer des gespeicherten Programmblocks oder verfügt über die EXECUTE-Berechtigung für diesen Programmblock. Der Benutzer, der den gespeicherten Programmblock ausführt, benötigt keinen Zugriff zu Objekten, die in dem gespeicherten Programmblock referenziert werden. Nur der Ersteller benötigt Berechtigungen für den Zugriff auf die referenzierten Objekte.

•	Der Status des gespeicherten Programmblocks ist gültig. Wenn er ungültig ist, kompiliert Oracle ihn automatisch neu.

Mit Procedure Builder können Ihre client-seitigen Programmblöcke Unterprogramme nahtlos aufrufen, die innerhalb der server-seitigen gespeicherten Programmblöcke definiert sind.

Weitere Informationen über gespeicherte Programmblöcke finden Sie in Oracle8 Concepts Manual.


Über das Auflösen von Namen gespeicherter Programmblöcke

  Verwandte Themen

Verweise auf gespeicherte Unterprogramme werden erst aufgelöst, nachdem alle zugeordneten Bibliotheken durchsucht wurden. Wenn also der Compiler oder das Laufzeitsystem auf einen Verweis auf den Namen eines Programmblocks stößt, der momentan weder geladen noch in einer zugeordneten PL/SQL-Bibliothek definiert ist, wird versucht, die Referenz mit einem gespeicherten Programmblock aufzulösen (vorausgesetzt, Sie sind bei einem Oracle-Datenbankserver angemeldet).


Über Berechtigungen für gespeicherte Programmblöcke

Sie benötigen die Systemberechtigung CREATE PROCEDURE, um einen gespeicherten Programmblock in Ihrem Schema zu erstellen, oder die Systemberechtigung CREATE ANY PROCEDURE, um einen gespeicherten Programmblock in dem Schema eines anderen Benutzers zu erstellen.

Die EXECUTE-Berechtigung für einen gespeicherten Programmblock gibt einem Benutzer die Berechtigung, einen gespeicherten Programmblock von einem anderen Benutzer auszuführen. Ein gespeichertes Unterprogramm wird unter der Sicherheitsdomäne (oder dem Schema) des Erstellers und nicht des aktuellen Benutzers ausgeführt. Deshalb müssen einem Benutzer niemals die Berechtigungen für die Objekte erteilt werden, die von einem gespeicherten Programmblock referenziert werden.


Gespeicherte Programmblöcke aufrufen

  Verwandte Themen

So rufen Sie einen gespeicherten Programmblock auf:

Die Syntax zum Aufrufen gespeicherter Unterprogramme in einer lokalen Datenbank ist identisch mit der Syntax für den Aufruf client-seitiger Unterprogramme:

[package-name.]subprogram-name(params)

Das heißt, wenn das gespeicherte Unterprogramm innerhalb eines gespeicherten Pakets definiert ist, müssen Sie das Paketpräfix mit angeben, um das gespeicherte Unterprogramm von einem client-seitigen Programmblock aus aufzurufen. Ausnahmen hierbei bilden die Verwendung von Synonymen (siehe nachfolgende Beschreibung) sowie der Aufruf von Unterprogrammen, die im Paket STANDARD oder einer Erweiterung des Pakets STANDARD (beispielsweise DBMS_STANDARD) definiert sind.

Procedure Builder erkennt die Standardwerte optionaler Parameter im Header gespeicherter Unterprogramme nicht. Nehmen wir zum Beispiel an, Sie verfügen über die folgende gespeicherte Funktion:

FUNCTION tax (amt NUMBER, rate NUMBER := 8.25)
  RETURN NUMBER IS
BEGIN
  RETURN(amt * rate);
END;

Außerdem liegt Ihnen eine eigenständige Prozedur mit der folgenden Anweisung vor:

x := tax(20);

Diese Anweisung wird nicht erfolgreich kompiliert werden. Procedure Builder erkennt den Standardwert für rate nicht und nimmt an, daß Sie den Parameter nicht angegeben haben. Sie müssen deshalb optionale Parameter immer angeben. Beispiel:

x := tax(20, 8.25);


Synonyme verwenden

So verwenden Sie Synonyme:

Zum Referenzieren eines gespeicherten Unterprogramms, das im Schema eines anderen Benutzers oder einer entfernten Datenbank definiert ist, müssen Sie ein Synonym erstellen. Das Synonym verbirgt den Benutzernamen und/oder den Namen des Datenbank-Links vor dem PL/SQL-Compiler, so daß der Verweis die oben definierte, allgemeine Aufrufsyntax einhält. Es wird also auch folgende Syntax unterstützt:

subprogram-synonym(params) | package-synonym.subprogram-name(params)

Sie können folglich Synonyme für folgende Kombinationen erstellen:

schema-name.subprogram-name
schema-name.package-name
subprogram-name@database-link
package-name@database-link
schema-name.subprogram-name@database-link
schema-name.package-name@database-link

Nehmen wir einmal an, innerhalb des Schemas PKGOWNER gibt es ein gespeichertes Paket namens STOREDPKG und STOREDPKG definiert eine Prozedur namens STOREDPROC. Sie könnten nun folgendes Synonym für PKGOWNER.STOREDPKG erstellen:

CREATE SYNONYM storedpkgsyn
  FOR pkgowner.storedpkg

Danach könnten Sie STOREDPROC folgendermaßen in einem client-seitigen Programmblock aufrufen:

storedpkgsyn.storedproc(param1, param2, ...);

Als Alternative hierzu könnten Sie jedoch auch ein Synonym für die eigentliche Prozedur erstellen:

CREATE SYNONYM storedprocsyn
  FOR pkgowner.storedpkg.storedproc

Dann müßten Sie STOREDPROC wie folgt aufrufen:

storedprocsyn(param1, param2, ...);

In unserem letzten Beispiel gehen wir davon aus, daß STOREDPKG auf einem entfernten Rechner definiert ist, auf den Sie über den Datenbank-Link REMOTESITE zugreifen. Sie könnten nun folgendermaßen ein Synonym für die entfernte Prozedur erstellen:

CREATE SYNONYM remoteprocsyn
  FOR pkgowner.storedpkg.storedproc@remotesite

Dann hätten Sie die Möglichkeit, die entfernte Prozedur wie folgt aufzurufen:

remoteprocsyn(param1, param2, ...);


Text in mehreren Programmblöcken suchen und ersetzen

  Verwandte Themen

Mit dem Dialogfeld Suchen und Ersetzen in Programmblöcken können Sie Text in ausgewählten Programmblöcken oder über alle Programmblöcke hinweg in der aktuellen Sitzung suchen und ersetzen.

Um das Dialogfeld Suchen und Ersetzen in Programmblöcken anzuzeigen, wählen Sie Programm [image] Suchen und Ersetzen in Programmblöcken aus dem Menü.

In dem Dialogfeld Suchen und Ersetzen in Programmblöcken können Sie:

•	die Such- und Ersatzfolge eingeben und angeben, wann die Suche vorgenommen werden soll.

•	alle Vorkommen der gefundenen Zeichenfolge suchen und ersetzen.

•	Vorkommen der gefundenen Zeichenfolge suchen und selektiv ersetzen.

•	den Quellcode bearbeiten, in dem die übereinstimmende Zeichenfolge gefunden wird.


So geben Sie die Suchkriterien an:

Geben Sie im Dialogfeld Suchen und Ersetzen in Programmblöcken die Suchkriterien in das Kombinationsfeld Suchen ein, oder wählen Sie Suchkriterien aus der Dropdown-Liste. In der Dropdown-Liste werden bis zu 16 vorherige Suchfolgen angezeigt.

1	Um reguläre Ausdrücke in der Suchfolge zu benutzen, klicken Sie auf die Schaltfläche Ausdruck neben dem Kombinationsfeld Suchen und wählen einen Ausdruck aus der Liste. Wenn Sie einen Ausdruck wählen, wird das Sonderzeichen in das Kombinationsfeld eingefügt.

2	Geben Sie die Ersatzfolge in das Kombinationsfeld Ersetzen durch ein, oder wählen Sie eine Ersatzfolge aus der Dropdown-Liste. In diesem Fall werden bis zu 16 vorherige Ersatzfolgen angezeigt.

3	Wählen Sie das Kontrollkästchen Ausdruck verwenden, wenn Sie reguläre Ausdrücke in der Suchfolge verwenden.

4	Wählen Sie Groß-/Kleinschreibung beachten, wenn bei der Suche die Groß-/Kleinschreibung berücksichtigt werden soll.

5	Geben Sie in dem Feld Suchen wo an, wo die Suche vorgenommen werden soll.

In dem Feld Suchen wo werden die PL/SQL-Bibliotheken angezeigt, die in der aktuellen Programmierumgebung geöffnet sind. Alle Bibliotheken (Knoten) sind standardmäßig ausgewählt. Wenn Sie nur in einem bestimmten Knoten suchen möchten, klicken Sie auf den Knoten.

Hinweis:  In Procedure Builder Standalone stellt / den obersten Knoten Programmblöcke im Objektnavigator dar. Alle PL/SQL-Bibliotheken, die in der aktuellen Sitzung geöffnet sind, werden unter / aufgeführt.


So führen Sie einen Stapel-Ersetzenvorgang durch:

Bei einem Stapel-Ersetzenvorgang können Sie alle Vorkommen der Suchfolge in den Programmblöcken unter allen oder ausgewählten Knoten in dem Feld Suchen wo ersetzen.

1	Geben Sie die Suchkriterien und die zu durchsuchenden Knoten im Dialogfeld Suchen und Ersetzen in Programmblöcken an.

2	Um nach allen Vorkommen der Suchfolge zu suchen und diese durch die Ersatzfolge zu ersetzen, klicken Sie auf Alle ersetzen.

Daraufhin werden Sie in einem Meldungsfeld aufgefordert, den Ersetzenvorgang im Stapelverfahren zu bestätigen.

3	Klicken Sie auf Ja.

Daraufhin wird das Feld Fortschritt Suchen/Ersetzen angezeigt, in dem die Such- und Ersatzfolge, die Position der Suche und der Fortschritt des Suchen-/Ersetzenvorgangs angezeigt werden. Klicken Sie auf die Schaltfläche Stop, um die Suche zu beenden und die bis dahin gefundenen und ersetzten Instanzen anzuzeigen.

Nach Abschluß wird ein Meldungsfeld angezeigt, in dem angegeben wird, wie viele Folgen ersetzt wurden.

4	Klicken Sie auf OK, um das Meldungsfeld zu schließen.

Die Ergebnisse des Suchen-/Ersetzenvorgangs werden in dem Listenfeld Ergebnisse angezeigt. Die Position jeder übereinstimmenden Zeichenfolge wird mit dem Knoten, Programmblocknamen sowie den Zeilen- und Spaltennummern der Quellzeile angegeben. Die Statuszeile über dem Listenfeld Ergebnisse zeigt die Anzahl von gefundenen und ersetzten Instanzen.

5	Klicken Sie auf Schließen, um das Dialogfeld Suchen und Ersetzen in Programmblöcken zu beenden.


So führen Sie selektive Ersetzenvorgänge durch:

Mit selektiven Ersetzenvorgängen können Sie zuerst nach Vorkommen der übereinstimmenden Zeichenfolge suchen. Danach können Sie die Vorkommen auswählen, die ersetzt werden sollen.

1	Geben Sie die Suchkriterien und die zu durchsuchenden Knoten im Dialogfeld Suchen und Ersetzen in Programmblöcken an.

2	Um nach jedem Vorkommen zu suchen, ohne schon einen Ersetzenvorgang durchzuführen, klicken Sie auf Alle suchen.

Daraufhin wird das Feld Suchfortschritt angezeigt, in dem die Suchfolge, die Position der Suche sowie der Fortschritt der Suche angegeben wird. Kicken Sie auf die Schaltfläche Stop, um die Suche zu beenden und die bis dahin gefundenen Instanzen anzuzeigen.

Nach Abschluß werden die Instanzen der gefundenen übereinstimmenden Zeichenfolge im Listenfeld Ergebnisse angezeigt. Die Position jeder übereinstimmenden Zeichenfolge wird mit dem Knoten, dem Programmblocknamen sowie den Zeilen- und Spaltennummern der Quellzeile angegeben. Jede Statuszeile über dem Listenfeld Ergebnisse zeigt die Anzahl von gefundenen Instanzen an.

3	Um selektive Ersetzenvorgänge vorzunehmen, klicken Sie mit gedrückter Umschalt- oder Strg-Taste auf die Instanzen im Listenfeld Ergebnisse und klicken dann auf Ersetzen.

Daraufhin wird die Anzahl von vorgenommenen Ersetzenvorgängen in einem Meldungsfeld angezeigt.

4	Klicken Sie auf OK, um das Meldungsfeld zu schließen.

5	Klicken Sie auf Schließen, um das Dialogfeld Suchen und Ersetzen in Programmblöcken zu beenden.


So bearbeiten Sie den Quellcode der gefundenen übereinstimmenden Zeichenfolgen:

Geben Sie die Suchkriterien und die zu durchsuchenden Knoten im Dialogfeld Suchen und Ersetzen in Programmblöcken an.

1	Klicken Sie auf Alle suchen oder Alle ersetzen, um mit dem Suchen oder Suchen/Ersetzen zu beginnen.

Nach Abschluß werden die Instanzen der gefundenen (oder gefundenen/ersetzten) übereinstimmenden Zeichenfolge im Listenfeld Ergebnisse angezeigt.

2	Um zu überprüfen, ob ein Ersetzenvorgang vorgenommen wurde, oder um den Code direkt zu bearbeiten, klicken Sie auf eine Instanz im Listenfeld Ergebnisse und klicken dann auf Bearbeiten, um den Programmblock-Editor zu öffnen.

3	Nachdem Sie die Änderungen vorgenommen und gespeichert haben, klicken Sie auf Schließen, um den Programmblock-Editor zu beenden.

4	Klicken Sie auf Schließen, um das Dialogfeld Suchen und Ersetzen in Programmblöcken zu beenden.


Über PL/SQL

  Verwandte Themen

PL/SQL ist eine prozedurale Spracherweiterung zu SQL von Oracle. Hier handelt es sich um eine erweiterte 4GL-Programmiersprache (Programmiersprache der vierten Generation), die Datenkapselung, Überladen, Collection-Typen, Verarbeitung von Exceptions und Verbergen von Informationen ermöglicht.

Mit PL/SQL können Sie SQL-Anweisungen verwenden, um Oracle-Daten und -Flußsteuerungsanweisungen zur Verarbeitung der Daten zu bearbeiten. Außerdem können Sie Konstanten und Variablen deklarieren, Prozeduren und Funktionen definieren und Laufzeitfehler abfangen. Auf diese Weise kombiniert PL/SQL die Leistungsfähigkeit der Datenverarbeitung von SQL mit der Leistungsfähigkeit der Datenverarbeitung von prozeduralen Sprachen.

Die PL/SQL-Engine ist ein Werkzeug, mit dem Sie PL/SQL-Programmblöcke definieren, kompilieren und ausführen können. Diese Engine ist eine Spezialkomponente im Oracle Datenbank-Server oder in einem Werkzeug zur Anwendungsentwicklung wie z.B. Oracle Procedure Builder, Oracle Form Builder und Oracle Report Builder.

Ein Oracle-Server kann PL/SQL-Blöcke und Unterprogramme sowie einzelne SQL-Anweisungen verarbeiten. Der Oracle-Server übergibt die Blöcke und Unterprogramme an die lokale PL/SQL-Engine.

Wenn ein Werkzeug zur Anwendungsentwicklung die PL/SQL-Engine enthält, übergibt sie PL/SQL-Blöcke und -Unterprogramme direkt an die lokale PL/SQL-Engine. Die Engine führt alle prozeduralen Anweisungen auf dem Anwendungsrechner aus und sendet nur SQL-Anweisungen an Oracle. Wenn ein Block keine SQL-Anweisungen enthält, führt die Engine den ganzen Block auf dem Anwendungsrechner aus.

Diese beiden Umgebungen (Server und Werkzeug) sind unabhängig.


PL/SQL-Beispielprogramm

Dieses Beispielprogramm verarbeitet einen Auftrag für Tennisschläger. Als erstes deklariert es eine Variable vom Typ NUMBER zur Speicherung der vorhandenen Menge an Tennisschlägern. Danach wird die vorhandene Menge aus einer Datenbanktabelle mit der Bezeichnung inventory abgerufen. Wenn die Menge größer ist als null, aktualisiert das Programm die Tabelle und fügt einen Einkaufsdatensatz in eine andere Tabelle mit der Bezeichnung purchase_record ein. Sonst fügt das Programm einen Nicht-auf-Lager-Datensatz in die Tabelle purchase_record ein.

DECLARE
   qty_on_hand NUMBER(5);
BEGIN
   SELECT quantity INTO qty_on_hand
     FROM inventory
     WHERE product = 'TENNIS RACKET'
   FOR UPDATE OF quantity;
   IF qty_on_hand > 0 THEN -- check quantity
      UPDATE inventory SET quantity = quantity - 1
        WHERE product = 'TENNIS RACKET';
      INSERT INTO purchase_record
        VALUES ('Tennis racket purchased', SYSDATE);
   ELSE
      INSERT INTO purchase_record
        VALUES ('Out of tennis rackets', SYSDATE);
   END IF;
   COMMIT;
END;


Über die PL/SQL-Blockstruktur

  Beispiel 	  Verwandte Themen

PL/SQL ist eine block-strukturierte Sprache. Das heißt, die Grundeinheiten (Prozeduren, Funktionen und anonymen Blöcke), aus denen ein PL/SQL-Programm besteht, sind logische Blöcke, die eine beliebige Anzahl von verschachtelten Unterblöcken enthalten können. Typischerweise entspricht jeder Programmblock (oder logische Block) einem zu lösenden Problem oder Unterproblem.

Ein PL/SQL-Block hat drei Teile: einen deklarativen Teil, einen ausführbaren Teil und einen Teil zur Verarbeitung von Exceptions. (In PL/SQL wird eine Warnung oder Fehlerbedingung als Exception bezeichnet.) Nur der ausführbare Teil ist obligatorisch.

Die Reihenfolge der Teile ist logisch. Zuerst kommt der deklarative Teil, in dem Elemente deklariert werden können. Nachdem sie deklariert wurden, können Elemente im ausführbaren Teil verarbeitet werden. Exceptions, die während der Ausführung ausgelöst werden, können in dem Teil zur Verarbeitung von Exceptions behandelt werden.

Sie können Unterblöcke in dem ausführbaren Teil und dem Teil zur Verarbeitung von Exceptions eines PL/SQL-Blocks oder -Unterprogramms verschachteln, jedoch nicht im deklarativen Teil. Außerdem können Sie lokale Unterprogramme im deklarativen Teil eines beliebigen Blocks definieren. Sie können jedoch lokale Unterprogramme nur aus dem Block aufrufen, in dem sie definiert sind.

Neben Blöcken und Unterprogrammen stellt PL/SQL eine Paketfunktion bereit, mit der Sie zusammengehörige Programmelemente in größeren Einheiten zusammenfassen können.


Anmeldung bei einem Datenbank-Server

  Verwandte Themen

So melden Sie sich bei einem Datenbank-Server in Procedure Builder an:

1	Wählen Sie Datei [image] Anmelden, um das Dialogfeld Anmelden anzuzeigen.

2	Geben Sie im Textfeld Benutzername den Benutzernamen ein, der Ihnen zugewiesen wurde, z.B. SCOTT.

3	Geben Sie in dem Textfeld Kennwort Ihr Kennwort ein, z.B. TIGER. Die Eingabe im Textfeld Kennwort wird nicht wiedergegeben.

4	Geben Sie im Textfeld Datenbank die DB-Adresse für die Datenbank ein, bei der Sie sich anmelden möchten, z.B. DEMO.

5	Klicken Sie auf Anmelden.

Wenn die Datenbankankmeldung erfolgreich verläuft, wird vor dem Knoten Datenbankobjekte im Objektnavigator ein + (Pluszeichen) angezeigt.


So beenden Sie die aktuelle Datenbankverbindung:

  Verwandte Themen

Wählen Sie Datei [image] Abmelden, um die aktuelle Datenbankverbindung zu schließen.


Kompilierung von Programmblöcken

Über das Kompilieren von Programmblöcken

Einzelne Programmblöcke kompilieren

Alle Programmblöcke kompilieren

Alle nicht kompilierten Programmblöcke kompilieren

Ausgewählte Programmblöcke kompilieren

Syntaxfehler während der Kompilierung suchen


Über die Pakete Object Iron

Object Iron besteht aus einer Gruppe von Datenbankpaketen, mit denen Sie auf Tabellen zugreifen können, die Instanzen von Oracle8-Objekttypen enthalten. Die Pakete generieren ein tabellen-spezifisches Paket, mit dem Sie dann auf die Daten aus der angegebenen Tabelle zugreifen.

Nach der Generierung wird das tabellen-spezifische Paket unter dem Knoten Gespeicherte Programmblöcke im Objektnavigator angezeigt. Dieses Paket enthält Prozeduren, mit denen Sie Datensätze in der angegebenen Tabelle auswählen, einfügen, aktualisieren, löschen und sperren können. Sie können den Code gegebenenfalls anzeigen und ändern. Das generierte tabellen-spezifische Paket wird besonders für das Erstellen eines Forms-Datenblocks eingesetzt, der gespeicherte Prozeduren benutzt.

Sie benötigen bestimmte Berechtigungen, damit Sie mit dem Paket Object Iron ein tabellen-spezifisches Paket erstellen können. Außerdem müssen die Tabellen bestimmten Bedingungen gerecht werden.


Pakete Object Iron installieren

Sie können die Pakete Object Iron aus dem Interpreter in Procedure Builder oder aus SQL*Plus installieren.

So installieren Sie die Pakete aus Procedure Builder:

1	Wählen Sie Datei [image] Anmelden, um sich bei der Datenbank anzumelden.

Benutzen Sie den Schemanamen, in dem die Objekttabelle gespeichert ist, als Benutzernamen.

2	Wählen Sie Datei [image] Interpretieren, um das Skript genpkgs.pld im Interpreter auszuführen.

Das Skript erstellt die Pakete OPB_O8API and OPB_OBJ auf der Server-Seite und die Prozedur  OBJIRON auf der Client-Seite.

So installieren Sie die Pakete aus SQL*Plus:

1	Melden Sie sich bei der Datenbank an.

2	Geben Sie genpkgs.sql an der Eingabeaufforderung ein.

Das Skript erstellt die Pakete OPB_O8API und OPB_OBJ sowie die Prozedur OBJIRON auf der Server-Seite.

Hinweis:  Das Paket OPB_OBJ enthält die Methoden für das Erstellen und Entfernen eines tabellen-spezifischen Pakets. Das Paket OPB_O8API verfügt über keine Unterprogramme für den externen Gebrauch. Es wird intern von Oracle benutzt.


Tabellen-spezifische Pakete generieren und benutzen

Sie müssen die Pakete Object Iron installieren , bevor Sie ein tabellen-spezifisches Paket generieren können.

So generieren Sie ein tabellen-spezifisches Paket:

  Führen Sie die Prozedur OBJIRON für jede Tabelle aus, auf die Sie zugreifen möchten.

Zum Beispiel:

  PL/SQL> OBJIRON('TABLENAME', 'OWNERNAME');

wobei TABLENAME der Name der Tabelle ist, auf die Sie zugreifen möchten, und OWNERNAME der Eigentümer der Tabelle.

In dem Beispiel generiert die Prozedur OBJIRON ein Paket mit dem Namen OPB$TABLENAME.

Hinweis:  Der generierte Paketname kann maximal 30 Zeichen umfassen. Wenn der Name der Tabelle länger ist als 30 Zeichen, werden nur die ersten 26 Zeichen in dem generierten Paketnamen benutzt, weil die Prozedur den Präfix OPB$ zu jedem Paketnamen hinzufügt.

Tabellen-spezifische Pakete verwenden

Die Prozedur OBJIRON generiert ein tabellen-spezifisches Paket, das fünf Prozeduren umfaßt. In diesem Beispiel ist das generierte Paket OPB$TABLENAME und die Prozeduren in dem Paket sind:

OPB$TABLENAME.O_Select
OPB$TABLENAME.O_Insert
OPB$TABLENAME.O_Update
OPB$TABLENAME.O_Delete
OPB$TABLENAME.O_Lock

Wenn Sie eine Prozedur in Ihrem Code aufrufen, müssen Sie unbedingt den entsprechenden Paketnamen davorsetzen.

Die Prozedur OBJIRON ist eine bequeme Umgebung für den Aufruf der Pakete Object Iron. Sie können eine benutzerdefinierte WHERE-Klausel einfügen, um die Daten zu filtern, die von O_Select zurückgegeben werden. Sie können aber auch das Flag O_Lock WAIT/NOWAIT ändern, indem Sie die Prozedur ändern. Weitere Informationen über die Flags WAIT/NOWAIT finden Sie in Oracle8 SQL Reference Manual.


Tabellen-spezifische Pakete löschen

Wenn Sie ein tabellen-spezifisches Paket nicht weiter benötigen, führen Sie die Prozedur OPB_OBJ.drp aus. Zum Beispiel:

PLSQL> declare
    +>   outstr VARCHAR2(240);
    +> begin
    +>   outstr := OPB_OBJ.drp ('TABLENAME', 'OWNERNAME');
    +>   -- use text_io or dbms_output to see the result
    +> end;

wobei TABLENAME der Name der zu löschenden Tabelle ist, und OWNERNAME der Eigentümer der Tabelle.

Diese Prozedur führt die Anweisung 'DROP PACKAGE OPB$TABLENAME' aus, die die verknüpften Pakete aus der Datenbank löscht und den ihnen zugewiesenen Speicherplatz freigibt.


Forms-Datenblöcke basierend auf einem tabellen-spezifischen Paket erstellen

Das Erstellen eines Forms-Datenblocks basierend auf einem tabellen-spezifischen Paket kann mit dem Erstellen eines Datenblocks basierend auf einer Gruppe von gespeicherten Prozeduren verglichen werden.

Wenn Sie eine gespeicherte Prozedur als Datenquelle für Ihren Datenblock auswählen, müssen Sie unbedingt den genauen Prozedurnamen mit dem entsprechenden Paketnamen als Präfix angeben. Wenn Sie z.B. mit dem Paket OPB$TABLENAME auf die Tabelle TABLENAME zugreifen, verwenden Sie die folgenden Prozeduren für die gewünschte Aktion in dem Datenblock:

•	Prozedur OPB$TABLENAME.O_Select für Abfragen

•	Prozedur OPB$TABLENAME.O_Insert für das Einfügen von Datensätzen

•	Prozedur OPB$TABLENAME.O_Update für das Aktualisieren von Datensätzen

•	Prozedur OPB$TABLENAME.O_Delete für das Löschen von Datensätzen

•	Prozedur OPB$TABLENAME.O_Lock für das Sperren von Datensätzen


Berechtigungen und Bedingungen für die Benutzung der Pakete Object Iron

Berechtigungen

Der Eigentümer der Objekttabelle muß die Berechtigung CREATE ANY PROCEDURE haben, um mit den Paketen Object Iron tabellen-spezifische Pakete zu generieren. Der Systemadministrator erteilt diese Berechtigung.

Bedingungen

Die Objekttabelle, aus der Sie ein Paket generieren möchten, muß folgenden Bedingungen gerecht werden:

•	Die Tabelle darf nur einfache zusammengesetzte Objekte und REFs enthalten. Die Oberfläche Object Iron unterstützt RAW, LONG RAW, CLOB, BLOB, LOB, NESTED TABLES oder VARRAYs nicht.

•	Alle zusammengesetzten Objekttypen, die von den Spalten in der Tabelle referenziert werden, müssen zu demselben Schema wie die Tabelle gehören.


Neu [Menü Datei]

Dieser Menübefehl zeigt ein überlappendes Menü mit folgenden Optionen an:

•	Programmblock - zum Erstellen eines neuen Programmblocks;

•	PL/SQL-Bibliothek - zum Erstellen einer neuen Bibliothek.


Neu - Programmblock [Menü Datei]

Dieser Menübefehl ruft das Dialogfeld Neuer Programmblock auf, in das Sie einen Namen und Typ für den Programmblock eingeben können, den Sie erstellen werden.


Neu - PL/SQL-Bibliothek [Menü Datei]

Dieser Menübefehl erstellt eine neue Bibliothek.mit einem temporären Namen.


Öffnen [Menü Datei]

Dieser Menübefehl zeigt das Dialogfeld Öffnen an, in dem Sie den Namen und Speicherort einer zu öffnenden Bibliothek angeben können.


Schließen [Menü Datei]

Dieser Menübefehl schließt die aktuelle oder ausgewählte Bibliothek.

Falls die Bibliothek noch nicht gespeichert wurde, werden Sie dazu aufgefordert, die an der Bibliothek vorgenommenen Änderungen vor dem Schließen zu speichern.


Speichern [Menü Datei]

Dieser Menübefehl speichert die Bibliothek am angegebenen Speicherort.

Falls die Bibliothek noch nicht gespeichert wurde, zeigt Procedure Builder das Dialogfeld Bibliothek speichern an, in dem Sie einen Speicherort und Datei- bzw. Modulnamen für die Bibliothek festlegen können.


Speichern unter [Menü Datei]

Dieser Menübefehl zeigt das Dialogfeld Speichern an, in dem Sie einen Namen für die Bibliothek und einen Speicherort angegeben können, an dem sie abgelegt werden soll.


Wiederherstellen [Menü Datei]

Dieser Menübefehl setzt das Dokument auf seinen zuletzt gespeicherten Zustand zurück und löscht dabei alle Änderungen, die seit der letzten Speicherung vorgenommen wurden.


Text importieren [Menü Datei]

Mit diesem Menübefehl können Sie eine Programmblock-Textdatei zum Kompilieren in den Programmblock-Editor importieren. Dieser Befehl ruft das Datei-Dialogfeld Ihres Betriebssystems auf, in dem Sie einen Speicherort und Dateinamen einer Textdatei auswählen können, die einen Programmblock enthält.


Text exportieren [Menü Datei]

Dieser Menübefehl gibt Ihnen die Möglichkeit, einen Programmblock in einer Textdatei auf dem Dateisystem zu speichern. Dieser Befehl ruft das Datei-Dialogfeld Ihres Betriebssystems auf, in dem Sie einen Speicherort und Dateinamen auswählen können, an bzw. unter dem der exportierte Programmblock gespeichert werden soll.

Programmblock-Textdateien erhalten automatisch die Erweiterung .pls.


Bibliothek zuordnen [Menü Datei]

Dieser Menübefehl zeigt das Dialogfeld Bibliothek zuordnen an, in dem Sie den Namen und Speicherort der Bibliothek angeben können, die Sie der aktuellen Sitzung zuordnen möchten.


Laden [Menü Datei]

Dieser Menübefehl ruft das Dialogfeld Programmblock laden auf, in dem Sie den Namen und Speicherort des zu ladenden Programmblocks angeben können. Der Programmblock wird beim Laden kompiliert.


Interpretieren [Menü Datei]

Dieser Menübefehl zeigt das Dialogfeld Debug-Skript interpretieren an, in dem Sie den Namen und Speicherplatz des auszuführenden Interpreter-Skripts angeben können.


Protokollieren [Menü Datei]

Dieser Menübefehl ruft das Dialogfeld Interpreter-Protokoll auf, in dem Sie den Namen und Speicherplatz einer neuen oder bereits bestehenden Protokolldatei angeben können, in der Interpreter-Eingabe/Ausgabe aufgezeichnet werden soll.


Anmelden [Menü Datei]

Dieser Menübefehl zeigt das Dialogfeld Anmelden an, in dem Sie eine DB-Adresse angeben können, um sich bei einer Datenbankinstanz anzumelden.


Abmelden [Menü Datei]

Dieser Menübefehl beendet die aktuelle Verbindung zu einer Datenbank.


Verwaltung [Menü Datei]

Dieser Menübefehl zeigt ein überlappendes Menü mit folgenden Optionen an:

•	Zugriff auf Bibliothek - zum Erteilen bzw. Entziehen der Zugriffsberechtigung für Bibliotheken in der Datenbank;

•	Check-In - zum Hinzufügen einer neuen Datei zur Versionskontrolle;

•	Check-Out - zum Austragen einer Datei aus der Versionskontrolle;

•	Versionskontrolloptionen - zum Anzeigen des Dialogfelds Optionen.


Verwaltung - Zugriff auf Bibliothek [Menü Datei]

Dieser Menübefehl ruft das Dialogfeld Liste der Zugriffsberechtigten auf, in dem Sie Benutzern die Zugriffsberechtigung für in der Datenbank gespeicherte Dokumente erteilen bzw. entziehen können.


Beenden [Menü Datei]

Dieser Menübefehl beendet die aktuelle Sitzung. Abhängig von Ihrem Status, werden Sie eventuell dazu aufgefordert, alle noch nicht gespeicherten Änderungen vor dem Beenden zu speichern.


Drucken [Menü Datei]

Dieser Menübefehl druckt das ausgewählte Dokument.


Druckereinrichtung [Menü Datei]

Dieser Menübefehl zeigt das Dialogfeld Druckereinrichtung an, in dem Sie einen Drucker auswählen und andere Druckoptionen einstellen können.


Mail [Menü Datei]

Dieser Menübefehl schickt das markierte Dokument an die ausgewählten Empfänger.


Verwaltung - Check-In [Menü Datei]

Dieser Menübefehl zeigt das Dialogfeld Check-In an, in dem Sie den Namen der zu archivierenden Datei und den Namen des Archivs angeben können, in dem die Datei eingetragen werden soll.


 Verwaltung - Check-Out [Menü Datei]

Dieser Menübefehl zeigt das Dialogfeld Check-Out an, in dem Sie den Namen des Archivs und der Datei angeben können, die abgerufen werden soll.


Verwaltung -Versionskontrolloptionen [Menü Datei]

Dieser Menübefehl zeigt das Dialogfeld Optionen an, in dem Sie Archiv-Ordner hinzufügen/entfernen, Archive sperren bzw. deren Sperre aufheben, ein Protokoll mit Archivierungsaktivitäten generieren und Archivberichte  erstellen können.


Seite einrichten [Menü Datei]

Dieser Menübefehl zeigt das Dialogfeld Seite einrichten Ihres Betriebssystems an, in dem Sie die Druckoptionen angeben und einen Drucker auswählen können.


Rückgängig [Menü Bearbeiten]

Dieser Menübefehl hebt den zuletzt durchgeführten Vorgang auf.


Ausschneiden [Menü Bearbeiten]

Dieser Menübefehl löscht den markierten Text bzw. das markierte Objekt und legt ihn/es in der Zwischenablage ab.

Der Inhalt der Zwischenablage wird bei jeder Ausführung des Befehls Kopieren oder Ausschneiden überschrieben.


Kopieren [Menü Bearbeiten]

Dieser Menübefehl kopiert den markierten Text bzw. das markierte Objekt und legt die Kopie in der Zwischenablage ab, ohne den Text bzw. das Objekt an seiner ursprünglichen Position zu löschen.

Der Inhalt der Zwischenablage wird bei jeder Ausführung des Befehls Kopieren oder Ausschneiden überschrieben.


Einfügen [Menü Bearbeiten]

Dieser Menübefehl fügt den Inhalt der Zwischenablage (also das zuletzt ausgeschnittene oder kopierte Objekt) an der aktuellen Cursor-Position ein.


Löschen [Menü Bearbeiten]

Dieser Menübefehl löscht den markierten Text bzw. das markierte Objekt, speichert ihn/es jedoch nicht in der Zwischenablage.


Duplizieren [Menü Bearbeiten]

Dieser Menübefehl erstellt eine Kopie des markierten Objekts.


Suchen und Ersetzen [Menü Bearbeiten]

Dieser Menübefehl ruft das Dialogfeld Suchen und Ersetzen auf, in dem Sie Suchkriterien festlegen und optional auch eine Ersatzzeichenkette angeben können.

Die Suche beginnt bei Ihrer letzten Cursor-Position und endet am Ende des aktuellen Dokuments. Wurde die Suche nicht am Beginn des Dokuments begonnen, werden Sie beim Erreichen des Dokumentendes aufgefordert, die Suche am Beginn des Dokuments fortzusetzen. Wenn Sie dieser Aufforderung nachkommen, wird die Suche bis zu dem Punkt fortgesetzt, an dem Sie den Suchvorgang ursprünglich begonnen haben.

Die Funktion Suchen und Ersetzen sucht eine festgelegte Zeichenkette bzw. einen regulären Ausdruck und ersetzt diese wahlweise durch eine andere Zeichenkette. Die Funktion Suchen und Ersetzen ist besonders beim Durchsuchen umfangreicher Programmblockquellen nützlich.


Suchen und Alles ersetzen [Menü Bearbeiten]

Dieser Menübefehl ruft das Dialogfeld Suchen und Ersetzen auf, in dem Sie Suchkriterien festlegen und optional auch eine Ersatzzeichenkette angeben können. Bei Ihren Suchkriterien kann es sich entweder um eine Zeichenkette oder einen regulären Ausdruck handeln.

Dieser Befehl führt Suchen und Ersetzen-Vorgänge in mehreren Programmblöcken durch. Wenn Sie einen Suchen und Ersetzen-Vorgang durchführen wollen, der alle aktuellen Programmblöcke umfaßt, wählen Sie den Knoten Programmblöcke im Objektnavigator aus. Sie wählen den Knoten einer geöffneten Bibliothek im Navigator aus, um einen Suchen und Ersetzen-Vorgang für alle Programmblöcke in dieser Bibliothek durchzuführen.


Alles markieren [Menü Bearbeiten]

Dieser Menübefehl markiert alle Elemente im aktuellen Kontext. Befinden Sie sich beispielsweise im Programmblock-Editor, markiert dieser Befehl den gesamten Text im aktuellen Programmblock.


Einrücken [Menü Bearbeiten]

Dieser Menübefehl rückt die ausgewählten Quellzeilen im aktiven Editor ein. Wenn keine Zeile ausgewählt ist, werden die Zeichen rechts neben der aktuellen Cursorposition eingerückt.


Ausrücken [Menü Bearbeiten]

Dieser Menübefehl rückt die ausgewählten Quellzeilen im aktiven Editor aus.


Wiederholen [Menü Bearbeiten]

Dieser Menübefehl macht den letzten Rückgängig-Vorgang rückgängig.


Einblenden [Menü Navigator]

Dieser Menübefehl zeigt die untergeordneten Knoten (sofern vorhanden) des ausgewählten Knotens an.


Ausblenden [Menü Navigator]

Dieser Menübefehl verbirgt die untergeordneten Knoten (sofern vorhanden) des ausgewählten Knotens.


Alles einblenden [Menü Navigator]

Dieser Menübefehl zeigt die untergeordneten Knoten des ausgewählten Knotens, deren untergeordnete Knoten usw. an.

Mit Alles einblenden werden jedoch keine Oracle8 Datentyp- und Attributknoten rekursiv eingeblendet.


Alles ausblenden [Menü Navigator]

Dieser Menübefehl verbirgt die untergeordneten Knoten des ausgewählten Knotens, deren untergeordnete Knoten usw.


Erstellen [Menü Navigator]

Dieser Menübefehl erstellt ein neues Objekt desselben Typs wie dem des markierten Objekts bzw. des ausgewählten Titelknotens.


Löschen [Menü Navigator]

Dieser Menübefehl entfernt das ausgewählte Objekt. Abhängig vom Objekttyp werden Sie eventuell zur Bestätigung des Löschvorgangs aufgefordert.


Lesezeichen hinzufügen [Menü Navigator]

Dieser Menübefehl setzt eine Referenzmarkierung im ausgewählten Knoten. So können Sie mit anderen Objekten im Navigator arbeiten und dann zum markierten Knoten zurückkehren.

Es gibt nur jeweils eine aktive Markierung. Wenn Sie eine neue Markierung setzen, wird die vorherige gelöscht.


Gehe zu Lesezeichen [Menü Navigator]

Dieser Menübefehl kehrt zu dem Knoten zurück, in dem Sie ein Lesezeichen gesetzt haben.


Deaktivieren [Menü Navigator]

Dieser Menübefehl deaktiviert die aktuelle bzw. ausgewählte Debug-Aktion oder den ausgewählten Datenbanktrigger.


Aktivieren [Menü Navigator]

Dieser Menübefehl aktiviert die aktuelle Debug-Aktion oder den aktuellen Datenbanktrigger bzw. eine Debug-Aktion oder einen Datenbanktrigger, der vorher deaktiviert war.


Name einfügen [Menü Navigator]

Mit diesem Menübefehl können Sie einen Aufruf an ein vordefiniertes Unterprogramm hinzufügen, indem Sie das ausgewählte vordefinierte Unterprogramm an der Cursor-Position in den Programmblock-Editor oder die Befehlszeile von PL/SQL-Interpreter einfügen.


Argumente einfügen [Menü Navigator]

Mit diesem Menübefehl können Sie einen Aufruf an ein vordefiniertes Unterprogramm mit Argumentspezifikationen hinzufügen, indem Sie das ausgewählte vordefinierte Unterprogramm und seine Argumentspezifikation an der Cursor-Position in den Programmblock-Editor oder die Befehlszeile von PL/SQL-Interpreter einfügen. Ersetzen Sie die Argumentspezifikation dann durch die entsprechenden Argumente.


Tabellenelemente [Menü Navigator]

Mit Hilfe des Dialogfelds Auswahl PL/SQL-Tabellenelemente können Sie ausgewählte Zeilen einer Tabelle anzeigen, ohne die gesamte Tabelle im Objektnavigator einblenden zu müssen. Standardmäßig sind Indizes für alle Zeilen der Tabelle ausgewählt. Zum Reduzieren der Auswahl wählen Sie die Zeilen ab, die nicht angezeigt werden sollen, und akzeptieren Sie das Dialogfeld dann. Die ausgewählten Zeilen werden dann vollständig im Objektnavigator angezeigt.


Kompilieren [Menü Programm]

Dieser Menübefehl zeigt ein überlappendes Menü mit folgenden Optionen an:

•	Inkremental - zum Kompilieren nur unkompilierter Programmblöcke

•	Alle - zum Kompilieren aller Programmblöcke

Die Kompilierung hängt davon ab, welcher Knoten ausgewählt ist:

Programmblöcke	Alle Programmblöcke im Knoten Programmblöcke
Bibliotheken	Alle Programmblöcke in sämtlichen geöffneten Bibliotheken, die im Knoten enthalten sind
Bestimmte Bibliothek	Alle Programmblöcke in der ausgewählten Bibliothek


Kompilieren - Inkrementell [Menü Programm]

Dieser Menübefehl kompiliert nur die Programmblöcke im ausgewählten Knoten, die kompiliert werden müssen. Der Befehl ruft das Dialogfeld Kompilieren auf, in dem alle Fehler angezeigt werden, die bei der Kompilierung der Programmblöcke einer Bibliothek generiert werden.


Kompilieren - Alle [Menü Programm]

Dieser Menübefehl kompiliert alle Programmblöcke im ausgewählten Knoten unabhängig von ihrem aktuellen Kompilierungsstatus. Der Befehl ruft das Dialogfeld Kompilieren auf, in dem alle Fehler angezeigt werden, die bei der Kompilierung der Programmblöcke einer Bibliothek generiert werden.


Programmblock-Editor [Menü Programm]

Dieser Menübefehl zeigt den Programmblock-Editor an, in dem Sie vorhandene Programmblöcke bearbeiten und neue Programmblöcke erstellen können.


PL/SQL-Interpreter [Menü Programm]

Dieser Menübefehl zeigt ein neues PL/SQL-Interpreter-Fenster an, in dem Sie PL/SQL-Code, SQL-Befehle oder PL/SQL-Interpreter-Befehle ausführen können.


Gespeicherte Programmblöcke-Editor [Menü Programm]

Dieser Menübefehl zeigt den Gespeicherten Programmblöcke-Editor an, in dem Sie vorhandene gespeicherte Programmblöcke bearbeiten und neue gespeicherte Programmblöcke erstellen können. Mit diesem Editor können Sie auch die Typspezifikation und den typrumpf von benutzerdefinierten Oracle8-Datentypen bearbeiten. Damit Sie diesen Editor anzeigen können, müssen Sie bei der Datenbank angemeldet sein und Zugriff auf darin gespeicherte Datentypen und Programmblöcke haben.


Datenbanktrigger-Editor [Menü Programm]

Dieser Menübefehl zeigt den Datenbanktrigger-Editor an, in dem Sie vorhandene Datenbanktrigger bearbeiten und neue Datenbanktrigger erstellen können. Damit Sie diesen Editor anzeigen können, müssen Sie bei der Datenbank angemeldet sein.


Suchen und Ersetzen in Programmblöcken [Menü Programm]

Zeigt das Dialogfeld Suchen & Ersetzen in Programmblöcken an, mit dem Sie Text über mehrere client-seitige Programmblöcke hinweg suchen und ersetzen können, ohne individuelle Instanzen des Programmblock-Editors öffnen zu müssen.


Syntaxpalette [Menü Programm]

Zeigt die Syntaxpalette an, in der Sie die Konstrukte von PL/SQL-Sprachelementen oder vordefinierten Prozeduren auswählen und anzeigen können. Sie können die Syntaxpalette auch in einen Texteditor kopieren.


Programmstop [Menü Debug]

Dieser Menübefehl ruft das Dialogfeld Programmstop auf, in dem Sie Optionen zum Erstellen eines Programmstops festlegen können.


Trigger [Menü Debug]

Dieser Menübefehl zeigt das Dialogfeld Trigger an, in das Sie einen Debug-Trigger eingeben können.


Bearbeiten [Menü Debug]

Dieser Menübefehl ruft den Programmblock-Editor auf, in dem Sie den in Interpreter angezeigten Programmblock bearbeiten können.


Step [Menü Debug]

Dieser Menübefehl zeigt das Dialogfeld Step an, in dem Sie Optionen für die schrittweise Ausführung des unterbrochenen Programmblocks einstellen können.


Go [Menü Debug]

Dieser Menübefehl setzt die Ausführung des unterbrochenen Programmblocks bis zum Erreichen der nächsten Debug-Aktion bzw. bis zum Ende des Programmblocks fort.


Zurücksetzen [Menü Debug]

Dieser Menübefehl verläßt die aktuelle Debug-Ebene. Handelt es sich bei der aktuellen Debug-Ebene um die Ebene 1, beendet dieser Befehl die unterbrochene Ausführung.


Befehle des Menüs Datei

Neu

Programmblock

PL/SQL-Bibliothek

Öffnen

Schließen

Speichern

Speichern unter

Wiederherstellen

Text importieren

Text exportieren

Bibliothek zuordnen

Laden

Interpretieren

Protokollieren

Seite einrichten

Drucken

Anmelden

Abmelden

Verwaltung

Zugriff auf Bibliothek

Check-In

Check-Out

Versionskontrolloptionen

Beenden


Befehle des Menüs Bearbeiten

Rückgängig

Wiederholen

Ausschneiden

Kopieren

Einfügen

Löschen

Duplizieren

Einrücken

Ausrücken

Alles markieren

Suchen & Ersetzen


Befehle des Menüs Ansicht

Quell-Ausschnitt

Navigator-Ausschnitt

Interpreter-Ausschnitt

Interpreter-Protokoll


Befehle des Menüs Navigator

Einblenden

Ausblenden

Alle einblenden

Alle ausblenden

Erstellen

Löschen

Lesezeichen hinzufügen

Gehe zu Lesezeichen

Deaktivieren

Aktivieren

Name einfügen

Argumente einfügen

Tabellenelemente


Befehle des Menüs Programm

Kompilieren

Inkremental

Alle

Programmblock-Editor

PL/SQL-Interpreter

Gespeicherter Programmblock-Editor

Datenbanktrigger-Editor

Suchen und Ersetzen in Programmblöcken

Syntaxpalette


Befehle des Menüs Debug

Programmstop

Trigger

Bearbeiten

Step

Go

Zurücksetzen


Befehle des Menüs ? (Hilfe)

Procedure Builder-Hilfethemen

Kurzanleitung

Lernprogramm

Handbücher

Info Procedure Builder


Procedure Builder-Hilfethemen [Menü ?]

Dieser Menübefehl ruft das Online-Hilfesystem von Oracle Developer auf.


Suchen [Menü ?]

Dieser Menübefehl zeigt die Seite Suchen des Online-Hilfesystems an, in der Sie eine Volltextsuche nach einem Element im Hilfesystem durchführen können.


Lernprogramm [Menü ?]

Dieser Menübefehl ruft das Lernprogramm auf, in dem die Durchführung gängiger Tasks schrittweise beschrieben wird und wichtige Konzepte und Prozesse grafisch dargestellt werden.


Kurzanleitung [Menü ?]

Dieser Menübefehl startet die Kurzanleitung. Die Kurzanleitung soll Sie in die Konzepte des Arbeitens mit Forms Developer einführen. Um die Kurzanleitung ausführen zu können, muß Oracle Media Objects Player installiert sein.

Wird ein Fehler gemeldet, wenn Sie die Kurzanleitung zu starten versuchen, wurden die erforderlichen Dateien nicht installiert.

Wenden Sie sich an den Systemverwalter, oder führen Sie das Installationsprogramm erneut aus, wobei Sie die Kurzanleitung auswählen.


Handbücher [Menü ?]

Dieser Menübefehl zeigt die Online-Handbücher zu Oracle Developer an.


Info Procedure Builder [Menü ?]

Dieser Menübefehl ruft das Dialogfeld Info zu Procedure Builder auf, das die Version der verwendeten Oracle Developer-Komponente, mit ihr zusammenhängende Teilkomponenten sowie einen Copyright-Hinweis enthält.


Quell-Ausschnitt [Menü Ansicht]

Dieser Menübefehl blendet den Quellausschnitt in PL/SQL-Interpreter ein bzw. aus.


Navigator-Ausschnitt [Menü Ansicht]

Dieser Menübefehl blendet den Navigator-Ausschnitt in PL/SQL-Interpreter ein bzw. aus.


Interpreter-Ausschnitt [Menü Ansicht]

Dieser Menübefehl blendet den Interpreter-Ausschnitt in PL/SQL-Interpreter ein bzw. aus.


Interpreter-Protokoll [Menü Ansicht]

Dieser Menübefehl zeigt das Suchfeld PL/SQL-Interpreter-Protokoll an, das eine schreibgeschützte Aufzeichnung der aktuellen Interpreter-Protokollierungssitzung enthält.


Menü Fenster [Menü Fenster]
Menü Fenster

Dieses Menü listet alle geöffneten Oracle Developer-Fenster auf. Sie können aus dieser Liste das zu aktivierende Fenster auswählen.

Das ausgewählte Fenster wird zum aktiven Fenster gemacht und damit vor allen anderen Fenstern angezeigt.


Datenbanktrigger-Editor

  Verwandte Themen

Der Datenbanktrigger-Editor ist eine grafische Benutzeroberfläche für die Anweisung CREATE TRIGGER. Mit dieser Oberfläche können Zeilen- und Anweisungs-Trigger für Datenbanktabellen und -Views einfach erstellt, bearbeitet und kompiliert werden. Sie können BEFORE/AFTER-Trigger für Tabellen und INSTEAD OF-Trigger für Views und Objekt-Views erstellen und bearbeiten. Eine Funktion für Fehlerberichte zeigt ein Meldungsfeld an, wenn Sie versuchen, einen ungültigen Trigger abzurufen, zu speichern oder zu löschen.

Sie müssen bei einer Datenbank angemeldet sein, um den Datenbanktrigger-Editor zu benutzen. Um den Datenbanktrigger-Editor anzuzeigen, wählen Sie Programm [image] Datenbanktrigger-Editor aus dem Menü.

Vollständige Informationen über Datenbank-Trigger finden Sie in Oracle8 Concepts Manual.

Info

Oberfläche Datenbanktrigger-Editor

Datenbank-Trigger


Nicht-modale Form

Der nicht-modale Editor unterbricht die Steuerung der Anwendung nicht, so daß Sie den Dialog nach Bedarf gestalten können. Sie können den nicht-modalen PL/SQL-Interpreter jederzeit aufrufen, wenn Sie einen Programmblock definieren, anzeigen und debuggen möchten, indem Sie Programm [image] PL/SQL-Interpreter aus dem Menü wählen.


Modale Form

Der modale PL/SQL-Interpreter wird angezeigt, wenn eine Laufzeitanwendung einen Programmblock aufruft, der eine Debug-Aktion enthält. Diese Form wird im "Debug-Modus" angezeigt.

Wenn ein Programmblock in einer Anwendung von einer Debug-Aktion unterbrochen wird, geht die Kontrolle an den modalen Interpreter. Im Interpreter-Ausschnitt wird dann die mit dem unterbrochenen Programmblock verknüpfte Quelle angezeigt, sofern sie verfügbar ist.

Nachdem Sie das unterbrochene Programm überprüft und gegebenenfalls seinen Status geändert haben, können Sie die Ausführung wiederaufnehmen, indem Sie den modalen Interpreter schließen.

Die Anwendung übernimmt dann wieder die Kontrolle und setzt die Ausführung bis zum Ende bzw. bis zu der nächsten Debug-Aktion fort.


Programmblock-Editor

  Verwandte Themen

Der Programmblock-Editor bietet Funktionen zum Bearbeiten, Kompilieren und Durchsuchen von Warn-/Fehlermeldungen für die Entwicklung client-seitiger Programmblöcke.

Wählen Sie Programm [image] Programmblock-Editor aus dem Menü, um den Programmblock-Editor anzuzeigen.

Der Editor unterstützt eine Reihe von Funktionen, wie z.B.:

•	Automatische Einzüge

•	Farbiges Markieren der Syntax

•	Spalten- und Zeilenauswahl

•	Textbearbeitung mit Drag-and-Drop

•	Mehrere geteilte Ansichten

•	Drucken

•	Unbegrenztes Rückgängigmachen/Wiederholen

Info

Oberfläche Programmblock-Editor


Gespeicherte Programmblöcke-Editor

  Verwandte Themen

Der Gespeicherte Programmblöcke-Editor bietet Funktionen zum Bearbeiten, Kompilieren und Durchsuchen von Warn-/Fehlermeldungen für die Entwicklung von Programmblöcken, die in einer Datenbank gespeichert sind.

Um den Gespeicherte Programmblöcke-Editor aufzurufen, melden Sie sich zuerst bei einer Oracle-Datenbank an. Danach wählen Sie Programm [image] Gespeicherte Programmblöcke-Editor aus dem Menü.

Der Editor unterstützt eine Reihe von Funktionen, wie z.B.:

•	Automatische Einzüge

•	Farbiges Markieren der Syntax

•	Spalten- und Zeilenauswahl

•	Textbearbeitung mit Drag-and-Drop

•	Mehrere geteilte Ansichten

•	Drucken

•	Unbegrenztes Rückgängigmachen/Wiederholen

Mit dem Gespeicherte Programmblöcke-Editor können Sie auch die Typspezifikation (Attribute) und den Typrumpf (Methoden) von benutzerdefinierten Oracle8-Datentypen bearbeiten.

Info

Oberfläche Gespeicherte Programmblöcke-Editor


PL/SQL-Interpreter

  Verwandte Themen

Der PL/SQL-Interpreter ist der zentrale Arbeitsbereich von Procedure Builder für das Debuggen. Der Interpreter ist ein Arbeitsbereich, in dem Sie Quellcode anzeigen, Debug-Aktionen erstellen, Programmblöcke ausführen, Befehle des Procedure Builder Interpreter ausführen und PL/SQL- oder SQL-Anweisungen ausgeben können.

Um den PL/SQL-Interpreter anzuzeigen, wählen Sie Programm [image] PL/SQL-Interpreter aus dem Menü.

Je nach Arbeitsumgebung kann der PL/SQL-Interpreter in zwei verschiedenen Formen angezeigt werden:

•	nicht-modal

•	modal

Info

Oberfläche PL/SQL-Interpreter


Objektnavigator

  Verwandte Themen

Mit dem Objektnavigator erhalten Sie direkten Zugriff auf jedes Objekt in der Entwicklungsumgebung. Mit ihm können Sie alle PL/SQL-Programmblöcke, Bibliotheken, Debug-Aktionen, Variablen und benutzerdefinierten Oracle8-Datentypen erstellen und bearbeiten. Sie können Befehle im Objektnavigator aus dem Menü und aus der vertikalen Symbolleiste auswählen.

Info

Oberfläche Objektnavigator


Syntaxpalette

  Verwandte Themen

Die Syntaxpalette ist besonders für Programmierer gedacht, die mit der Struktur einer Programmiersprache nicht vertraut sind, oder die häufig benutzte Sprachelemente oder Konstrukte nicht immer wieder eingeben möchten. Die Syntaxpalette ist ein Werkzeug, mit dem Sie die Elemente oder Konstrukte einer Programmiersprache bequem anzeigen und in einen Texteditor kopieren können.

Um die Syntaxpalette anzuzeigen, wählen Sie Programm [image] Syntax-Palette aus dem Menü.

Sie können die Syntaxpalette mit dem Programmblock-Editor oder dem Gespeicherte Programmblöcke-Editor verwenden. Wenn sowohl die Syntaxpalette als auch der Editor geöffnet sind, können Sie die Syntax aus der Palette in die aktuelle Cursorposition kopieren.

Info

Oberfläche Syntaxpalette


Objektnavigator

Im Objektnavigator können Sie direkt auf jedes Objekt in Ihrer Entwicklungsumgebung zugreifen. Außerdem können Sie alle PL/SQL-Programmblöcke, Bibliotheken, Debug-Aktionen, Variablen und benutzerdefinierten Oracle8-Datentypen erstellen und bearbeiten. Sie können Befehle im Objektnavigator aus dem Menü und aus der vertikalen Symbolleiste auswählen.

Objekte im Objektnavigator anzeigen:

Objekte auswählen

Objekte suchen

Knoten einblenden

Knoten ausblenden

Lesezeichen setzen

Zu einem Lesezeichen gehen

Objekte im Objektnavigator erstellen, löschen und verschieben:

Objekte erstellen

Objekte neu anordnen

Objekte löschen

Info

Oberfläche Objektnavigator

Unterstützung von Oracle8-Objekten im Objektnavigator


Oberfläche Objektnavigator

Der Objektnavigator verfügt über die folgenden Komponenten:

Navigator-Symbolleiste  Die vertikale Symbolleiste enthält Schaltflächen für die folgenden gängigen Vorgänge:

Öffnen	Zeigt das Datei-Dialogfeld Ihres Betriebssystems an, damit Sie ein Dokument öffnen können.
Speichern	Versucht, das ausgewählte Dokument im angegebenen Speicherort zu speichern. Wenn das Dokument vorher noch nicht gespeichert wurde, wird das Datei-Dialogfeld Ihres Betriebssystems angezeigt.
Ausschneiden	Löscht den momentan markierten Text bzw. das momentan markierte Objekt und setzt es in die Zwischenablage.
Kopieren	Kopiert den momentan markierten Text bzw. das momentan markierte Objekt und setzt es in die Zwischenablage, ohne es zu löschen.
	Der Inhalt der Zwischenablage wird bei jedem neuen Kopieren- oder Ausschneidenvorgang überschrieben.
Einfügen	Fügt den Inhalt der Zwischenablage (d.h. das zuletzt ausgeschnittene oder kopierte Objekt) bei der aktuellen Cursorposition ein.
Erstellen	Erstellt ein neues Objekt, das denselben Typ wie das momentan markierte Objekt oder der übergeordnete Knoten hat.
Löschen	Löscht das momentan markierte Objekt. Je nach Objekt werden Sie möglicherweise zur Bestätigung aufgefordert.
Einblenden	Zeigt (gegebenenfalls) die untergeordneten Objekte des momentan ausgewählten Knotens an.
Ausblenden	Verbirgt (gegebenenfalls) die untergeordneten Objekte des momentan ausgewählten Knotens.
Alles einblenden	Zeigt die untergeordneten Objekte des momentan ausgewählten Knotens, die untergeordneten Knoten des untergeordneten Knotens usw. an. Mit diesem Befehl werden Oracle8-Datentyp- und Attribut-Knoten nicht rekursiv eingeblendet.
Alles ausblenden	Verbirgt die untergeordneten Objekte des momentan ausgewählten Knotens, die untergeordneten Objekte der untergeordneten Knoten usw.

Knotenanzeige-Bereich  Der Knotenanzeige-Bereich des Objektnavigators enthält eine hierarchische Aufstellung aller Objekte, auf die Sie während der aktuellen Sitzung zugreifen können. Zu jedem im Navigator aufgeführten Objekt werden die folgenden Basiselemente (von links nach rechts) angezeigt:

Indikator für untergeordnete Knoten	Gibt an, ob der Knoten über untergeordnete Knoten verfügt und ob er ein- oder ausgeblendet ist:
+ (plus)	Enthält die Objekte der niedrigeren Ebene, die momentan verborgen sind, weil der Knoten verborgen ist.
- (minus)	Enthält die Objekte der niedrigeren Ebene, die sichtbar sind, weil der Knoten eingeblendet ist.
Typsymbol	Gibt den Objekttyp an (z.B. Programmblock, Bibliothek Oracle8-Datentyp usw.) Wenn Sie bei einigen Objekten auf das Symbol doppelklicken, wird ein Editor oder ein Dialogfeld für diesen Objekttyp angezeigt.
Name	Standardname oder ein Name, den Sie dem Modul oder Objekt zugeordnet haben.
* (Stern)	Ein Stern im Anschluß an den Namen eines Programmblocks gibt an, daß dieser geändert wurde und neu kompiliert werden muß.
@ (At-Symbol)	Ein @-Symbol im Anschluß an den Namen eines Programmblocks gibt an, daß der Programmblock unverändert aus der Bibliothek geladen wurde.

Die Objekte in der Knotenanzeige sind:

Programmblöcke	Client-seitige PL/SQL-Konstrukte, die unabhängig vom PL/SQL-Compiler erkannt und verarbeitet werden können. Diese Konstrukte können Unterprogramme aufrufen, die innerhalb der server-seitigen gespeicherten Programmblöcke definiert sind.
Spezifikation	Name, Parameter und Rückgabetyp (nur Funktionen) des Programmblocks.
Referenzen	Prozeduren, Funktionen, anonyme Blöcke und Tabellen, die der Programmblock referenziert.
Referenziert von	Prozeduren, Funktionen, anonyme Blöcke und Tabellen, die der Programmblock referenziert.
PL/SQL-Bibliotheken	Sammlung von PL/SQL-Paketen, Prozeduren und Funktionen, die in der Datenbank oder dem Dateisystem gespeichert sind. Um einen Programmblock in einer Bibliothek zu bearbeiten oder den Inhalt einer Bibliothek zu ändern, müssen Sie die Bibliothek zuerst öffnen.
Zugeordnete Bibliotheken	Referenzierte Bibliotheken, die in der Datenbank oder dem Dateisystem gespeichert sind. Um einen Programmblock in einer Bibliothek auszuführen, müssen Sie die Bibliothek zuerst zuordnen.
Vordefinierte Pakete	PL/SQL-Konstrukte, die beim Generieren von Anwendungen oder Debuggen von Programmblöcken referenziert werden können.
Debug-Aktionen	Aktionen, mit denen Sie die Ausführung von PL/SQL-Programmblöcken überwachen oder unterbrechen können.
Stapel	Folge von Unterprogrammaufrufen, vom anfänglichen Einsprungspunkt herunter bis zu dem momentan ausgeführten Unterprogramm.
Datenbankobjekte	Schemaobjekte, bei denen es sich um Sammlungen von server-seitigen gespeicherten Programmblöcken, Bibliotheken, Tabellen, Views und Oracle8-Datentypen handelt. Der Knoten kann nur eingeblendet werden, wenn Sie bei einer Datenbank angemeldet sind. Hier werden alle Objekte in Ihrem Schema und die Objekte in anderen Schemata angezeigt, auf die Sie während der Sitzung zugreifen können.
Gespeicherte Programm- blöcke	PL/SQL-Pakete und Unterprogramme, die im Oracle-Datenbankserver gespeichert sind und ausgeführt werden.
PL/SQL-Bibliotheken	Sammlung von PL/SQL-Paketen, Prozeduren und Funktionen, die in der Datenbank gespeichert sind.
Tabellen	Enthält die Tabellen, die Sie in Ihrem Schema erstellen. Trigger und Spalten sind Unterknoten.
Ansichten	Enthält die Ansichten, die Sie in Ihrem Schema erstellen. Trigger und Spalten sind Unterknoten.
Typen	Nur Oracle8. Enthält die benutzerdefinierten Objekttypen und Collection-Typen sowie deren zugeordnete Attribute und Methoden.
Trigger	Before/After-Trigger bei Tabellen und Instead Of-Trigger bei Views und Objekt-Views.
Spalten	Spalten mit Tabellen und Views.

Speicherortindikator  Der Speicherortindikator gibt den Namen des momentan ausgewählten Objekts oder Knotens an.

Textfeld Suchen  Mit dem Textfeld Suchen können Sie nach einem Objekt im Navigator suchen, indem Sie den Namen des Objekts ganz oder teilweise eingegen.

 und [image]  Nach einem Suchenvorgang können Sie mit der Schaltfläche für die Suche in Abwärts- oder Aufwärtsrichtung nach dem letzten oder vorherigen Vorkommen der Suchkriterien im Objektnavigator suchen.


Oberfläche des PL/SQL-Interpreters

Der PL/SQL-Interpreter ist ein Debugging-Arbeitsbereich, in dem Sie Quellcode anzeigen, Debug-Aktionen erstellen, Programmblöcke sowie Interpreter-Befehle, PL/SQL- und SQL-Anweisungen ausführen können.

Standardmäßig sind immer zwei Ausschnitte im PL/SQL-Interpreter geöffnet: der Quellausschnitt und der Interpreter-Ausschnitt.

Standardmäßige Schaltflächen in der Symbolleiste  Alle Ausschnitte im Interpreter benutzen dieselbe Symbolleiste. Mit Ausnahme von Schließen werden die folgenden Schaltflächen nur während der unterbrochenen Ausführung eines Programmblocks aktiviert und werden für das Debugging benutzt.

Hinein		Nimmt die Ausführung des unterbrochenen Programmblocks bis zur nächsten ausführbaren Anweisung wieder auf.
Über		Nimmt die Ausführung des unterbrochenen Programmblocks bis zur nächsten ausführbaren Anweisung auf, wobei über Aufrufe von verschachtelten Unterprogrammen gegangen wird.
Heraus		Nimmt die Ausführung eines verschachtelten Unterprogramms wieder auf, wobei die Ausführung bei der nächsten ausführbaren Anweisung in dem aufrufenden Programmblock unterbrochen wird.
Go		Nimmt die Ausführung des unterbrochenen Programmblocks bis zum Ende des Programmblocks oder bis zur nächsten Debug-Aktion wieder auf.
Zurücksetzen		Beendet die aktuelle Debug-Ebene. Wenn die aktuelle Debug-Ebene 1 ist, wird die unterbrochene Ausführung abgebrochen.
Schließen		Schließt das PL/SQL-Interpreter-Fenster.
Hilfe		Zeigt dieses Hilfethema an.

Quellausschnitt  Im Quellausschnitt wird eine schreibgeschützte Kopie des gerade ausgewählten Programmblocks angezeigt. Schlüsselwörter, Kommentare, Zeichenfolgen und Symbole haben unterschiedliche Farben. Die erste Spalte am linken Rand ist für Symbole reserviert. Quellzeilen werden in der zweiten Spalte numeriert.

Folgende Symbole können angezeigt werden:

Gelber Pfeil		Gibt die aktuelle Ausführungsposition oder PC (Program Counter) an.
Rote Kugel		Gibt einen aktivierten Programmstop oder Trigger an.
Grüne Kugel		Gibt einen deaktivierten Programmstop oder Trigger an.

Außerdem können folgende Symbole im Quellausschnitt angezeigt werden:

|	Gibt die aktuelle Quellposition an. Die aktuelle Quellposition ändert sich je nach Interpreter-Befehlen (z.B. LIST) oder wenn die Ausführung des Programmblocks durch eine Debug-Aktion unterbrochen wird (z.B. einen Programmstop).
B(n)	Gibt die Position eines Programmstops an, wobei n die ID der entsprechenden Debug-Aktion ist.
T(n)	Gibt die Position eines Debug-Triggers an, wobei n die ID der entsprechenden Debug-Aktion ist.

Außerdem können im Quellausschnitt die folgenden Befehle aus einem Popup-Menü aufgerufen werden (wird in Windows mit der rechten Maustaste angezeigt):

Programmstop	Zeigt das Dialogfeld Programmstop an, in dem Sie einen neuen Programmstop definieren können.
Trigger	Zeigt das Dialogfeld Trigger an, in dem Sie einen neuen Debug-Trigger definieren können.
Bearbeiten	Zeigt den Programmblock-Editor an, in dem Sie den aktuellen Programmblock bearbeiten können.

Hinweis:  Nicht alle Systeme unterstützen Popup-Menüs. Die obigen Befehle können auch aus dem Menü Debug aufgerufen werden.

Bildschirmteiler  Mit Bildschirmteilern können Sie den relativen Platz ändern, der von jedem Ausschnitt im Interpreter belegt wird. Wenn der Interpreter das erste Mal angezeigt wird, befindet sich auch zwischen dem Quellausschnitt und dem Interpreter-Ausschnitt ein Bildschirmteiler. Wenn Sie den modalen Interpreter verwenden oder den Navigator-Ausschnitt im nicht-modalen Interpreter eingefügt haben, wird ein zweiter Bildschirmteiler angezeigt.

Interpreter-Ausschnitt  Der Interpreter-Ausschnitt stellt eine Befehlszeilenschnittstelle für PL/SQL, Procedure Builder und SQL dar. Sie können PL/SQL-Anweisungen oder -Blöcke, Befehle von Procedure Builder Interpreter oder SQL-Anweisungen im Anschluß an den PL/SQL> Prompt eingeben. (SQL*Plus-Anweisungen und -Syntax werden nicht unterstützt.)

Mehrzeilige Befehle  Während Sie die PL/SQL-Syntax bei dem PL/SQL> Prompt eingeben, können Sie jederzeit die Eingabetaste drücken, um einen zweiten Prompt in Form von +> aufzurufen. Sie können beliebig viele aufeinanderfolgende sekundäre Prompts anzeigen, bevor Sie den Code mit einem abschließenden Semikolon (;) ausführen.

Debug-Ebenen  Wenn die Programmausführung durch eine Debug-Aktion unterbrochen wird, legt der Interpreter eine Debug-Ebene fest. Auf einer Debug-Ebene können Sie Befehle und PL/SQL-Anweisungen eingeben, die wiederum unterbrochen werden können, so daß es zu verschachtelten Debug-Ebenen kommt. Die aktuelle Debug-Ebene wird durch einen neuen Prompt im Interpreter-Ausschnitt reflektiert, der ein Präfix mit der Nummer der aktuellen Debug-Ebene enthält. So wird z.B. hier der Interpreter-Prompt auf Debug-Ebene 1 dargestellt:

(debug 1)PL/SQL>

Popup-Menü  Der Interpreter-Ausschnitt enthält die folgenden Befehle aus einem Popup-Menü (wird bei Windows mit der rechten Maustaste aufgerufen):

Löschen	Verwirft den gesamten Text im Interpreter-Ausschnitt und gibt einen neuen Prompt aus.
Neuer Prompt	Gibt einen neuen Prompt im Interpreter-Ausschnitt aus. Jede Eingabe nach dem vorherigen Prompt wird ignoriert.
Hinweis:  Nicht alle Systeme unterstützen Popup-Menüs.

Navigator-Ausschnitt  In dem Navigator-Ausschnitt können Sie den aktuellen Aufrufstapel anzeigen sowie Werte von lokalen Variablen und Parametern im aktuellen Geltungsbereich anzeigen und ändern, während Sie debuggen.

Sie können einen Navigator-Ausschnitt zwischen dem Quellausschnitt und dem Interpreter-Ausschnitt einfügen, wenn Sie beim Debuggen von Programmblöcken ganz im Interpreter arbeiten möchten. Um einen Navigator-Ausschnitt einzufügen, wählen Sie Ansicht [image] Navigator-Ausschnitt aus dem Menü. Um den Navigator-Ausschnitt zu verbergen, wählen Sie denselben Befehl erneut. Sie können jeden anderen Ausschnitt ebenfalls verbergen, indem Sie den entsprechenden Befehl aus dem Menü Ansicht auswählen.

Navigator-Symbolleiste  Wenn der Navigator-Ausschnitt angezeigt wird, werden außerdem folgende Schaltflächen in der Symbolleiste angezeigt:

Erstellen		Erstellt eine neue Instanz des gerade ausgewählten Objekts bzw. Knotens.
Löschen		Löscht das ausgewählte Objekt mit einer entsprechenden Bestätigung.
Einblenden		Blendet die erste Unterknotenebene für den gerade ausgewählten Knoten ein.
Ausblenden		Blendet die aktuelle Unterknotenebene des momentan ausgewählten Knotens aus.
Alles einblenden		Blendet alle Unterknotenebenen für den momentan ausgewählten Knoten ein. Blendet jedoch Datentyp- und Attributknoten von Oracle8 nicht rekursiv ein.
Alles ausblenden		Blendet alle Unterknotenebenen für den momentan ausgewählten Knoten aus.
Suchen (Textfeld)		Ermöglicht die Suche nach einem Objekt im Navigator, indem der Name des Objekts ganz oder teilweise eingegeben wird.
Abwärts		Sucht nach dem nächsten Vorkommen der Suchkriterien, die im Feld Suchen angegeben werden.
Aufwärts		Sucht nach dem vorherigen Vorkommen der Suchkriterien, die im Feld Suchen angegeben werden.


Nimmt die Ausführung des unterbrochenen Programmblocks bis zur nächsten ausführbaren Anweisung wieder auf.


Nimmt die Ausführung des unterbrochenen Programmblocks bis zur nächsten ausführbaren Anweisung auf, wobei über Aufrufe von verschachtelten Unterprogrammen gegangen wird.


Nimmt die Ausführung eines verschachtelten Unterprogramms wieder auf, wobei die Ausführung bei der nächsten ausführbaren Anweisung in dem aufrufenden Programmblock unterbrochen wird.


Nimmt die Ausführung des unterbrochenen Programmblocks bis zum Ende des Programmblocks oder bis zur nächsten Debug-Aktion wieder auf.


Beendet die aktuelle Debug-Ebene. Wenn die aktuelle Debug-Ebene 1 ist, wird die unterbrochene Ausführung abgebrochen.


Erstellt eine neue Instanz des gerade ausgewählten Objekts bzw. Knotens.


Löscht das ausgewählte Objekt mit Bestätigung.


Blendet die erste Ebene des Unterknotens für den gerade ausgewählten Knoten ein.


Blendet die aktuelle Ebene des Unterknotens des gerade ausgewählten Knotens aus.


Blendet alle Unterknotenebenen für den gerade ausgewählten Knoten ein. Datentyp- und Attributknoten von Oracle8 werden nicht rekursiv eingeblendet.


Blendet alle Unterknotenebenen für den gerade ausgewählten Knoten aus.


Geben Sie den Namen eines Objekts ein, nach dem im Navigator gesucht werden soll.


Gibt den Namen des aktuellen Programmblocks an und gibt an, ob er sich auf dem Client oder dem Server befindet.


Im Quellausschnitt wird eine schreibgeschützte Kopie des gerade ausgewählten Programmblocks angezeigt. Quellzeilen werden in der zweiten Spalte numeriert.


Mit Bildschirmteilern können Sie den relativen Platz ändern, der von jedem Ausschnitt im Interpreter belegt wird. Wenn der Interpreter das erste Mal angezeigt wird, befindet sich zwischen dem Quellausschnitt und dem Interpreter-Ausschnitt ein Bildschirmteiler. Wenn Sie den modalen Interpreter verwenden oder den Navigator-Ausschnitt im nicht-modalen Interpreter eingefügt haben, wird ein zweiter Bildschirmteiler angezeigt.


In dem Objektnavigator-Ausschnitt können Sie den aktuellen Aufrufstapel anzeigen und die Werte von lokalen Variablen und Parametern im aktuellen Geltungsbereich anzeigen und ändern, während Sie debuggen.


Der Interpreter-Ausschnitt stellt eine Befehlszeilenschnittstelle für PL/SQL, Procedure Builder und SQL dar. Sie können PL/SQL-Anweisungen oder Blöcke, Befehle von Procedure Builder Interpreter oder SQL-Anweisungen im Anschluß an den PL/SQL> Prompt eingeben.


Oberfläche des Datenbanktrigger-Editors

  Verwandte Themen

Mit dem Datenbanktrigger-Editor können Sie BEFORE/AFTER-Trigger für Tabellen und INSTEAD OF-Trigger für Ansichten und Objektansichten erstellen (wenn Sie bei Oracle8 angemeldet sind).

So definieren Sie einen neuen Trigger:

1	Wählen Sie einen Benutzernamen (ein Schema) aus der Dropdown-Liste Eigentümer Tabelle.

2	Wählen Sie einen Tabellennamen aus der Dropdown-Liste Tabelle.

In der Dropdown-Liste Tabelle finden Sie eine Liste der Tabellennamen, die dem Benutzer gehören, der in dem Feld Eigentümer Tabelle angegeben wird. Wenn Sie in dem Feld Eigentümer Tabelle einen anderen Benutzernamen als Ihren eigenen auswählen, werden in der Dropdown-Liste Tabelle nur die Tabellen angezeigt, zu denen Sie eine Zugriffsberechtigung haben.

(Nur bei Ansichten.) Um einen INSTEAD OF-Trigger für eine Objektansicht zu definieren, klicken Sie auf den Pfeil neben Tabelle, um eine Dropdown-Liste anzuzeigen, und wählen Ansicht:. Danach wählen Sie einen Namen aus der Dropdown-Liste Ansicht.

3	Klicken Sie auf Neu, um einen neuen Datenbank-Trigger zu erstellen.

Dem neuen Trigger wird automatisch ein eindeutiger Triggername (bezogen auf die anderen Trigger in demselben Schema) in der Dropdown-Liste Name zugewiesen. Sie können den Triggernamen ändern.

In der Dropdown-Liste Name wird eine Liste mit Triggernamen angezeigt, die mit der Tabelle (oder der Ansicht) verknüpft sind, die in dem Feld Tabelle (oder Ansicht) dargestellt wird. In der Dropdown-Liste Name werden nur die Namen der Datenbanktrigger angezeigt, die mit den Tabellen verknüpft sind, zu denen Sie eine Zugriffsberechtigung haben.

4	Geben Sie die Triggeroptionen an.

Die folgenden Abschnitte enthalten Informationen über die verschiedenen Optionen, die Sie in dem Datenbanktrigger-Editor benutzen können, um einen Datenbanktrigger zu definieren.

5	Nachdem Sie die Triggeroptionen und die Aktion angegeben haben, klicken Sie auf Speichern, um den Trigger zu kompilieren.

Triggerauslösende Optionen:

Before/After	(Nur bei Tabellen.) Entspricht der Option BEFORE oder AFTER des SQL-Befehls CREATE TRIGGER. Gibt an, wann der Triggerrumpf in bezug auf die triggerauslösende Anweisung ausgelöst wird (z.B. UPDATE, INSERT oder DELETE), die gerade ausgeführt wird. BEFORE-Trigger werden vor der triggerauslösenden Anweisung ausgelöst. AFTER-Trigger werden nach Ausführung der triggerauslösenden Anweisung ausgeführt. BEFORE- und AFTER-Trigger gelten sowohl für Zeilen- als auch für Anweisungstrigger.
Instead Of	(Nur bei Ansichten.) Enspricht der Option INSTEAD OF des SQL-Befehls CREATE TRIGGER. Oracle löst den Trigger aus, anstatt die triggerauslösende Anweisung auszuführen. Der Trigger führt die Einfügen-, Aktualisieren- oder Löschen-Aktionen direkt mit den Basistabellen der Ansicht aus.

Anweisungs-Kontrollkästchen:

UPDATE INSERT DELETE	Gibt den Typ der SQL-Anweisung an (triggerauslösende Anweisung), die den Triggerrumpf auslöst. Die möglichen Optionen sind UPDATE, INSERT und DELETE.  Wählen Sie eines oder mehrere der Kontrollkästchen, um die Option in der triggerauslösenden Anweisung aufzunehmen. Wenn die triggerauslösende Anweisung UPDATE angibt, kann eine optionale Liste mit Spalten in der triggerauslösenden Anweisung aufgenommen werden. Hierzu wird auf die Option Der Spalten unten verwiesen. Wenn mehr als eine Option ausgewählt ist, können Sie die bedingten Prädikate UPDATING, INSERTING und DELETING verwenden, um bestimmte Codeblöcke im Triggerrumpf auszuführen. Hierzu wird auf Triggerrumpf unten verwiesen.

Option Der Spalten:

Der Spalten	(Nur bei Tabellen.) Entspricht der OF-Klausel in der triggerauslösenden UPDATE-Anweisung des SQL-Befehls CREATE TRIGGER. Zeigt eine Liste der Spalten für die Tabelle an, die in dem Feld Tabelle ausgewählt wurde. Diese Liste ist nur aktiv, wenn die triggerauslösende Anweisung UPDATE angibt. Klicken Sie auf eine oder mehrere Spalten in diesem Listenfeld, um anzugeben, daß der Trigger nur ausgelöst wird, wenn eine der ausgewählten Spalten aktualisiert wird. Wenn der Trigger ausgelöst werden soll, sobald eine beliebige Spalte in der Tabelle aktualisiert wird, klicken Sie auf keinen der Spaltennamen in der Liste. Diese Option ist bei INSTEAD OF-Triggern nicht verfügbar. Oracle löst INSTEAD OF-Trigger immer dann aus, wenn ein UPDATE einen Wert in einer Spalte der Ansicht ändert. Oracle8-Objekte: Hier können Sie keine verschachtelten Tabellenspalten bzw. LOB-Spalten angeben.

Option Für jede Anweisung:

Anweisung	Entspricht der Option FOR EACH STATEMENT des SQL-Befehls CREATE TRIGGER.  Bezeichnet den Trigger als Anweisungstrigger. Oracle löst einen Anweisungstrigger nur einmal aus, wenn die triggerauslösende Anweisung ausgegeben wird (unabhängig von der Anzahl von betroffenen Zeilen), wenn die optionale Trigger-Integritätsregel in der WHEN-Klausel erfüllt wird. Diese Option ist bei INSTEAD OF-Triggern nicht verfügbar.

Optionen Für jede Zeile:

Zeile	Entspricht der Option FOR EACH ROW des SQL-Befehls CREATE TRIGGER.  Bezeichnet den Trigger als Zeilentrigger. Oracle löst einen Zeilentrigger einmal für jede Zeile aus, die von der triggerauslösenden Anweisung betroffen ist und die optionale Trigger-Integritätsregel erfüllt, die in der WHEN-Klausel angegeben wird.
Referenziert	Gibt Korrerlationsnamen an. Sie können Korrelationsnamen im Triggerrumpf und in der WHEN-Klausel eines Zeilentriggers angeben, um alte und neue Werte der aktuellen Zeile speziell zu referenzieren. Die Standard-Korrelationsnamen sind OLD und NEW. Wenn Ihr Zeilentrigger mit einer Tabelle mit der Bezeichnung OLD oder NEW verknüpft ist, benutzen Sie diese Option, um andere Korrelationsnamen anzugeben, damit es zu  keinem Konflikt zwischen dem Tabellennamen und dem Korrelationsnamen kommt. Gilt nur für Zeilentrigger.
OLD als	Gibt einen Korrelationsnamen an, um einen Konflikt zwischen dem Korrelationsnamen und einer Tabelle zu vermeiden, die den Namen OLD hat.
NEU als	Gibt einen Korrelationsnamen an, um einen Konflikt zwischen dem Korrelationsnamen und einer Tabelle zu vermeiden, die den Namen NEW hat.
Wenn	(Nur bei Tabellen.) Entspricht einem Booleschen SQL-Ausdruck in der WHEN-Klausel des SQL-Befehls CREATE TRIGGER. Gilt nur für Zeilentrigger. Gibt eine optionale Triggereinschränkung an. Wenn er aufgenommen ist, wird der SQL-Ausdruck für jede Zeile ausgewertet, die von dem Trigger betroffen ist. Wenn die Auswertung des Ausdrucks TRUE für eine Zeile ergibt, wird der Triggerrumpf ausgelöst. Wenn die Auswertung des Ausdrucks für eine Zeile FALSE der NOT TRUE ergibt (d.h. unbekannt, wie bei Nullen), wird der Triggerrumpf nicht ausgelöst. Oracle8-Objekte: Sie können Objektspalten oder deren Attribute, VARRAY, verschachtelte Tabellen- oder LOB-Spalten referenzieren. Sie können keine PL/SQL-Funktionen oder -Methoden in der Triggereinschränkung aufrufen.

Angabe der Triggeraktion in:

Triggerrumpf	Der PL/SQL-Block, den Oracle zur Auslösung des Triggers ausführt. Hier handelt es sich um ein mehrzeiliges Textfeld mit Bildlaufmöglichkeit, in dem Sie einen PL/SQL-Block eingeben und bearbeiten können. Triggerrümpfe können SQL- und PL/SQL-Anweisungen umfassen. Die Schlüsselwörter BEGIN und END sind erforderlich. Der Triggerrumpf für Zeilentrigger kann Korrelationsnamen und die Option REFERENZIERT sowie die bedingten Prädikate INSERTING, DELETING und UPDATING enthalten. Wenn mehr als ein Typ einer triggerauslösenden Anweisung für den Zeilentrigger angegeben wird, z.B. INSERT und UPDATE, können Sie die folgenden Bedingungen aufnehmen, um bestimmte Codeblöcke im Triggerrumpf auszuführen: IF INSERTING THEN...END IF; IF UPDATING THEN...END IF;

Die Schaltflächen im Editor sind:

Neu	Erstellt einen neuen Datenbanktrigger. Klicken Sie auf Neu, um mit der Definition eines neuen Triggers zu beginnen.
Speichern	Speichert die Triggeroptionen und kompiliert die Quelle, die im Feld Triggerrumpf angezeigt wird. Als Folge der Kompilierung generierte Fehlermeldungen werden in dem Meldungsfeld angezeigt.
Wiederherstellen	Stellt den Datenbanktrigger in dem Status wieder her, den er beim letzten Speichern- oder Wiederherstellenvorgang hatte.
Löschen	Löscht den aktuellen Datenbanktrigger mit einer entsprechenden Bestätigung aus der Datenbank.
Schließen	Schließt den Datenbanktrigger-Editor.
Hilfe	Zeigt dieses Hilfethema an.


Über Datenbanktrigger

Datenbanktrigger sind Prozeduren, die in der Datenbank gespeichert sind und implizit ausgeführt werden, wenn eine triggerauslösende Anweisung, wie z.B. INSERT, UPDATE oder DELETE für die verknüpfte Tabelle ausgegeben wird. Trigger können nur auf Tabellen und nicht auf Ansichten definiert werden. Allerdings werden Trigger auf der Basistabelle einer Ansicht ausgelöst, wenn eine INSERT-, UPDATE- oder DELETE-Anweisung für die Ansicht ausgegeben wird.

Ein Trigger kann SQL- und PL/SQL-Anweisungen enthalten, die als eine Einheit ausgeführt werden. Außerdem können sie andere gespeicherte Prozeduren aufrufen. Benutzen Sie Trigger nur, wenn erforderlich. Die übermäßige Benutzung von Triggern kann zu kaskadierenden oder rekursiven Triggern führen. Wenn z.B. ein Trigger ausgelöst wird, kann eine SQL-Anweisung im Triggerrumpf potentiell andere Trigger auslösen.

Mit Datenbanktriggern können Sie komplexe Geschäftsregeln erzwingen und sicherstellen, daß sich alle Anwendungen auf dieselbe Weise verhalten. Beim Entwurf von Triggern berücksichtigen Sie folgende Richtlinien:

•	Benutzen Sie Trigger, um sicherzustellen, daß die zugehörigen Aktionen ausgeführt werden, wenn ein bestimmter Vorgang ausgeführt wird.

•	Benutzen Sie Datenbanktrigger nur für zentralisierte, globale Vorgänge, die für die triggerauslösende Anweisung ausgelöst werden sollen, unabhängig davon, welcher Benutzer oder welche Datenbankanwendung die Anweisung ausgibt.

•	Definieren Sie keine Trigger, die eine schon in Oracle integrierte Funktionalität duplizieren. So definieren Sie z.B. keine Trigger, um Regeln der Datenintegrität zu erzwingen, die jederzeit mit deklarativen Integritätsregeln erzwungen werden können.

•	Begrenzen Sie die Größe von Triggern (60 Zeilen oder weniger werden empfohlen). Wenn die Logik für Trigger mehr als 60 Zeilen mit PL/SQL-Code erfordert, wird empfohlen, den größten Teil des Codes in einer gespeicherten Prozedur aufzunehmen und die Prozedur dann aus dem Trigger aufzurufen.

•	Achten Sie darauf, daß Sie keine rekursiven Trigger erstellen. Wenn Sie z.B. einen AFTER UPDATE-Anweisungstrigger auf einer EMP-Tabelle erstellen, die selbst eine UPDATE-Anweisung für EMP ausgibt, wird der Trigger rekursiv ausgelöst, bis kein Speicherplatz mehr vorhanden ist.

Zusätzliche Informationen über die Benutzung von Triggern in Anwendungen finden Sie im racle8 Application Developer's Guide. Weitere Informationen über die verschiedenen Triggertypen finden Sie im Oracle8 Concepts Manual.


Zeigt die Benutzer-ID des Eigentümers der aktuellen Datenbanktabelle an. Klicken Sie auf den Pfeil rechts neben diesem Feld, um eine Dropdown-Liste der Benutzer aufzurufen.


Zeigt den Namen der aktuellen Datenbanktabelle oder Ansicht an. Klicken Sie auf den Pfeil rechts neben diesem Feld, um eine Dropdown-Liste der Tabellen oder Ansichten anzuzeigen, die dem Benutzer gehören, der in dem Feld Eigentümer Tabelle angegeben wird. Klicken Sie auf eine Tabelle oder Ansicht in der Liste, um sie auszuwählen. In der Lste werden nur die Namen der Datenbanktabellen oder Ansichten angezeigt, zu denen Sie Zugriff haben. (Ansichten sind nur bei Oracle8 zutreffend.)


Zeigt den Namen des aktuellen Datenbanktriggers an. Klicken Sie auf den Pfeil rechts neben diesem Feld, um eine Dropdown-Liste der Triggernamen für die Tabelle oder Ansicht in dem Feld Tabelle/Ansicht anzuzeigen. In der Namensliste werden nur die Namen der Datenbanktrigger angezeigt, zu denen Sie Zugriff haben.


Gibt an, wann der Triggerrumpf in bezug auf die auslösende Anweisung ausgelöst wird (z.B. UPDATE, INSERT oder DELETE), die gerade ausgeführt wird. Diese Gruppe mit Optionsschaltflächen entspricht den Optionen BEFORE/AFTER und INSTEAD OF des SQL-Befehls CREATE TRIGGER.


Gibt an, daß der Trigger vor der auslösenden Anweisung ausgelöst wird.


Gibt an, daß der Triggerrumpf nach der auslösenden Anweisung ausgelöst wird.


Gibt an, daß Oracle den Trigger auslöst, anstatt die triggerauslösende Anweisung auszuführen. Nur bei Ansichten.


Gibt den Typ von SQL-Anweisung an, der den Triggerrumpf auslöst. Die möglichen Optionen sind UPDATE, INSERT und DELETE. Nur bei Tabellen.


Gibt an, daß der Trigger bei einem INSERT-Ereignis ausgelöst wird.


Gibt an, daß der Trigger bei einem DELETE-Ereignis ausgelöst wird.


Gibt an, daß der Trigger bei einem UPDATE-Ereignis ausgelöst wird.


Zeigt eine Liste der Spalten für die Tabelle an, die in dem Feld Tabelle ausgewählt wurde. Diese Liste ist nur aktiv, wenn die Option UPDATE im Feld Anweisung aktiviert ist. Nur bei Tabellen.


Gibt einen Zeilentrigger an. Entspricht der Option FOR EACH ROW des Befehls CREATE TRIGGER.


Gibt einen Anweisungstrigger an. Entspricht der Option FOR EACH STATEMENT des Befehls CREATE TRIGGER.


Gibt einen Korrelationsnamen an, um einen Namenskonflikt zwischen den Korrelationsnamen und einer Tabelle oder Ansicht zu vermeiden, die den Namen OLD hat.


Gibt einen Korrelationsnamen an, um einen Namenskonflikt zwischen dem Korrelationsnamen und einer Tabelle oder Ansicht zu vermeiden, die den Namen NEW hat.


Gibt einen Booleschen SQL-Ausdruck in einer WHEN-Klausel an. Wenn er aufgenommen ist, wird der Ausdruck in der WHEN-Klausel für jede Zeile ausgewertet, die von dem Trigger betroffen ist. Wenn die Auswertung des Ausdrucks TRUE für eine Zeile ergibt, wird der Triggerrumpf ausgelöst. Wenn der Ausdruck für eine Zeile FALSE oder NOT TRUE ergibt (d.h. unbekannt, wie bei Nullen), wird der Triggerrumpf nicht ausgelöst. Nur bei Tabellen.


Hier handelt es sich um ein mehrzeiliges Auswahltextfeld, in dem Sie einen PL/SQL-Datenbanktriggerrumpf eingeben und bearbeiten können. Triggerrümpfe sind PL/SQL-Blöcke, die SQL- und PL/SQL-Anweisungen umfassen können.


Erstellt einen neuen, unbenannten Datenbanktrigger.


Speichert die Triggeroptionen und kompiliert die Quelle, die in dem Feld Triggerrumpf angezeigt wird. Fehlermeldungen, die als Folge der Kompilierung generiert werden, werden in einem separaten Meldungsfeld angezeigt.


Stellt den Datenbanktrigger in dem Status wieder her, den er beim letzten Speichern- oder Wiederherstellenvorgang hatte. Wenn kein Speichern- oder Wiederherstellenvorgang eingetreten ist, wird der Datenbanktrigger wieder in den Originalzustand versetzt.


Löscht den aktuellen Datenbanktrigger mit einer entsprechenden Bestätigung aus der Datenbank.


Oberfläche des Programmblock-Editors

  Verwandte Themen

Folgende Schaltflächen und Dropdown-Listen sind vorhanden:

Kompilieren	Kompiliert den aktuellen Programmblock. Als Folge der Kompilierung generierte Fehlermeldungen werden in dem Auswahlausschnitt Kompilierungsmeldungen angezeigt.
Anwenden	Speichert Änderungen, die im Editor an dem Programmblock vorgenommen wurden, seit dieser das erste Mal geöffnet wurde oder seit dem letzten Anwenden- bzw. Wiederherstellenvorgang. Der Programmblock wird nicht neu kompiliert. Der Editor bleibt geöffnet. Der Rückgängig-/Wiederholen-Stack wird gelöscht.
Wiederherstellen	Stellt den Programmblock in dem Status wieder her, den er beim letzten Anwenden- oder Wiederherstellenvorgang hatte. Wenn kein Anwenden- oder Wiederherstellenvorgang stattfand, wird der Programmblock in seinen Originalzustand versetzt.
Neu	Zeigt das Dialogfeld Neuer Programmblock an, in dem Sie Typ und Namen des zu erstellenden Programmblocks angeben können.
Löschen	Löscht den angezeigten Programmblock. Sie werden in einem Meldungsfeld zur Bestätigung aufgefordert.
Schließen	Schließt den Programmblock-Editor.
Hilfe	Zeigt dieses Hilfethema an.
Name	Zeigt den Namen des aktuellen Programmblocks an. Klicken Sie auf den Pfeil rechts neben dem Feld, um eine Dropdown-Liste anderer bestehender Programmblöcke anzuzeigen. Klicken Sie auf einem Programmblock in dieser Liste, um diesen Programmblock im Editor anzuzeigen.

Der Editor enthält außerdem folgende Elemente:

Quellausschnitt	In diesem Ausschnitt wird der Quelltext des PL/SQL-Programmblocks eingegeben und bearbeitet. Mit Bildschirmteilern können Sie bis zu vier separate Ansichten des aktuellen Programmblocks erstellen. Durch jede Ansicht kann ein unabhängiger Bildlauf durchgeführt werden. Um horizontale Ansichten im Quellausschnitt zu erstellen, setzen Sie den Cursor zu dem Bildschirmteiler am oberen Rand der vertikalen Bildlaufleiste und doppelklicken Sie. Dadurch wird der Quellausschnitt horizontal in zwei Ansichten mit gleicher Größe geteilt. Sie können auch auf den Bildschirmteiler klicken und diesen nach unten ziehen, um die gewünschten Ansichtgrößen zu erstellen. Um vertikale Ansichten im Quellausschnitt zu erstellen, setzen Sie den Cursor zu dem Bildschirmteiler ganz außen links in der horizontalen Bildlaufleiste und doppelklicken Sie. Dadurch wird der Quellausschnitt vertikal in zwei Ansichten mit gleicher Größe geteilt. Sie können auch auf den Bildschirmteiler klicken und diesen nach rechts ziehen, um die gewünschten Ansichtgrößen zu erstellen. Um die Größe der Ansichten zu ändern, klicken Sie auf den Bildschirmteiler, der die Ansichten teilt, und ziehen Sie ihn. Um eine horizontale oder vertikale Ansicht zu entfernen, doppelklicken Sie auf den Bildschirmteiler, der die Ansichten teilt, und ziehen Sie diesen an den Rand des Ausschnitts. Um alle vier Ansichten gleichzeitig zu entfernen, setzen Sie den Cursor auf den Schnittpunkt der Bildschirmteiler und ziehen ihn in eine Ecke des Ausschnitts. Um eine Codezeile auszuwählen, setzen Sie den Cursor auf den linken Rand und klicken Sie.
Ausschnitt Kompilierungs- meldungen	Zeigt gegebenenfalls Fehlermeldungen an, die als Folge der Kompilierung generiert wurden. Wenn Sie auf eine Fehlermeldung klicken, wird diese markiert, wird im Quellausschnitt zu der Quellanweisung gegangen, die den Fehler erzeugt und der Cursor an die Position des Fehlers gesetzt. Standardmäßig wird der Ausschnitt Kompilierungsmeldungen nur angezeigt, wenn Kompilierungsfehlermeldungen generiert wurden. Sie können den Ausschnitt Kompilierungsmeldungen jedoch jederzeit manuell anzeigen, indem Sie den Cursor in die untere rechte Ecke des Editor-Fenster verschieben, bis er die Form eines Fadenkreuzes annimmt. Danach klicken und ziehen Sie den Cursor nach oben. Dadurch wird der Bildschirmteiler nach oben verschoben und der Ausschnitt Kompilierungsmeldungen wird sichtbar..
Bildschirmteiler	Der Bildschirmteiler trennt den Quellausschnitt und den Ausschnitt Kompilierungsmeldungen. Mit dem Bildschirmteiler können Sie die relative Größe der Ausschnitte ändern. Wenn der Ausschnitt Kompilierungsmeldungen nicht angezeigt wird, befindet sich der Bildschirmteiler am unteren Rand des Editor-Fensters.
Statuszeile	Zeigt Informationen über den aktuellen Status des Programmblocks am unteren Rand des Editors an.


Kompiliert den Programmblock, der im Quellausschnitt angezeigt wird. Als Folge der Kompilierung generierte Fehlermeldungen werden in dem Auswahlausschnitt Kompilierungsmeldungen angezeigt.


Speichert Änderungen, die im Editor an dem Programmblock vorgenommen wurden, seit dieser das erste Mal geöffnet wurde oder seit dem letzten Anwenden- bzw. Wiederherstellenvorgang. Der Programmblock wird nicht neu kompiliert. Der Editor bleibt geöffnet.


Stellt den Programmblock in dem Status wieder her, den er beim letzten Anwenden- oder Wiederherstellenvorgang hatte. Wenn kein Anwenden- oder Wiederherstellenvorgang stattfand, wird der Programmblock in seinen Originalzustand versetzt.


Zeigt das Dialogfeld Neuer Programmblock an, in dem Sie Typ und Namen des zu erstellenden Programmblocks angeben können.


Löscht den angegebenen Programmblock mit Bestätigung.


Versucht, den Editor zu schließen. Wenn Änderungen vorgenommen, jedoch nicht angewandt wurden, werden Sie in einem Meldungsfeld aufgefordert, die Änderungen anzuwenden oder wiederherzustellen bzw. den Vorgang abzubrechen. Nachdem alle Änderungen angewandt oder wiederhergestellt wurden, wird der Programmblock-Editor geschlossen.


Gibt den Typ des Programmblocks (Trigger, Prozedur usw.) an, der gerade im Editor angezeigt wird.


Gibt an, mit welchem Objekt das Programm verknüpft ist.


Zeigt den Namen des aktuellen Programmblocks an. Klicken Sie auf den Pfeil rechts neben dem Feld, um eine Dropdown-Liste anderer bestehender Programmblöcke anzuzeigen. Klicken Sie auf einem Programmblock in dieser Liste, um diesen Programmblock im Editor anzuzeigen.


Geben Sie den Quelltext des PL/SQL-Programmblocks ein bzw. bearbeiten Sie diesen.


Zeigt Fehlermeldungen an, die während der Kompilierung aufgetreten sind. Klicken Sie auf einen Fehler, um zu der Quelle im Programmblock zu gehen.


Mit dem Bildschirmteiler können Sie den relativen Platz ändern, den zwei Ausschnitte (Quelle und Kompilierungsmeldungen) im Programmblock-Editor belegen. Standardmäßig wird der Ausschnitt Kompilierungsmeldungen nur angezeigt, wenn während der Kompilierung Fehlermeldungen generiert werden.


Auf der linken Seite der Statusleiste werden folgende Meldungen angezeigt:

Nicht geändert	Es wurden keine Änderungen an dem Programmblock vorgenommen, seit dieser das erste Mal angezeigt oder das letzte Mal angewandt wurde.
Geändert	Eine oder mehrere Änderungen wurden an dem Programmblock vorgenommen, seit er das erste Mal angezeigt oder das letzte Mal angewandt wurde.

Auf der rechten Seite der Statusleiste werden die folgenden Meldungen angezeigt:

Nicht kompiliert	Der gerade angezeigte Quelltext des Programmblocks wurde nicht kompiliert.
Erfolgreich kompiliert	Der gerade angezeigte Quelltext des Programmblocks wurde ohne Fehler kompiliert.
Mit Fehlern kompiliert	Der gerade angezeigte Quelltext des Programmblocks wurde mit Fehlern kompiliert. Die Fehler werden im Ausschnitt Kompilierungsmeldungen angezeigt.


 Oberfläche des Gespeicherten Programmblock-Editors

  Verwandte Themen Topics

Folgende Schaltflächen und Dropdown-Listen sind vorhanden:

Neu	Zeigt das Dialogfeld Neuer Programmblock an, in dem Sie Typ und Name des zu erstellenden gespeicherten Programmblocks angeben können.
Speichern	Kompiliert den gespeicherten Programmblock, der im Quellausschnitt angezeigt wird. Als Folge der Kompilierung generierte Fehlermeldungen werden in dem Auswahlausschnitt Kompilierungsmeldungen angezeigt. Der Rückgängig-/Wiederholen-Stack wird gelöscht
Wiederherstellen	Stellt den gespeicherten Programmblock in dem Status wieder her, den er bei dem letzten Speichern- oder Wiederherstellenvorgang hatte. Wenn kein Speichern- oder Wiederherstellenvorgang aufgetreten ist, wird der Programmblock wieder in seinen Originalzustand versetzt.
Löschen	Löscht den aktuellen gespeicherten Programmblock aus der Datenbank. Löscht den angezeigten Programmblock. Sie werden in einem Meldungsfeld zur Bestätigung aufgefordert.
Schließen	Schließt den Programmblock-Editor.
Hilfe	Zeigt dieses Hilfethema an.
Eigentümer	Zeigt die Datenbank-Benutzer-ID des Eigentümers des aktuellen Programmblocks an. Klicken Sie auf den Pfeil auf der rechten Seite dieses Feldes, um eine Dropdown-Liste mit Benutzernamen anzuzeigen. In der Liste Eigentümer werden nur die Namen der Benutzer angezeigt,  zu deren gespeicherten Programmblöcken Sie eine Zugriffsberechtigung haben.
Name	Zeigt den Namen des aktuellen gespeicherten Programmblocks an. Klicken Sie auf den Pfeil auf der rechten Seite dieses Feldes, um eine Dropdown-Liste der gespeicherten Programmblöcke anzuzeigen, die der Benutzer-ID gehören, die im Feld Eigentümer angezeigt wird. In der Namensliste werden nur die Namen der gespeicherten Programmblöcke angezeigt, zu denen Sie eine Zugriffsberechtigung haben.

Außerdem enthält das Editor-Fenster folgende Elemente:

Quellausschnitt	In diesem Ausschnitt wird der Quelltext des gespeicherten Programmblocks eingegeben und bearbeitet. Mit Bildschirmteilern können Sie bis zu vier separate Ansichten des aktuellen gespeicherten Programmblocks erstellen. Durch jede Ansicht kann ein unabhängiger Bildlauf durchgeführt werden. Um horizontale Ansichten im Quellausschnitt zu erstellen, setzen Sie den Cursor zu dem Bildschirmteiler am oberen Rand der vertikalen Bildlaufleiste und doppelklicken Sie. Dadurch wird der Quellausschnitt horizontal in zwei Ansichten mit gleicher Größe geteilt. Sie können auch auf den Bildschirmteiler klicken und diesen nach unten ziehen, um die gewünschten Ansichtgrößen zu erstellen. Um vertikale Ansichten im Quellausschnitt zu erstellen, setzen Sie den Cursor zu dem Bildschirmteiler ganz außen links in der horizontalen Bildlaufleiste und doppelklicken Sie. Dadurch wird der Quellausschnitt vertikal in zwei Ansichten mit gleicher Größe geteilt. Sie können auch auf den Bildschirmteiler klicken und diesen nach rechts ziehen, um die gewünschten Ansichtgrößen zu erstellen. Um die Größe der Ansichten zu ändern, klicken Sie auf den Bildschirmteiler, der die Ansichten teilt, und ziehen Sie ihn. Um eine horizontale oder vertikale Ansicht zu entfernen, doppelklicken Sie auf den Bildschirmteiler, der die Ansichten teilt, und ziehen Sie diesen an den Rand des Ausschnitts. Um alle vier Ansichten gleichzeitig zu entfernen, setzen Sie den Cursor auf den Schnittpunkt der Bildschirmteiler und ziehen ihn in eine Ecke des Ausschnitts. Um eine Codezeile auszuwählen, setzen Sie den Cursor auf den linken Rand und klicken Sie.
Ausschnitt Kompilierungs- meldungen	Zeigt gegebenenfalls Fehlermeldungen an, die als Folge der Kompilierung generiert wurden. Wenn Sie auf eine Fehlermeldung klicken, wird diese markiert, wird im Quellausschnitt zu der Quellanweisung gegangen, die den Fehler erzeugt und der Cursor an die Position des Fehlers gesetzt. Standardmäßig wird der Ausschnitt Kompilierungsmeldungen nur angezeigt, wenn Kompilierungsfehlermeldungen generiert wurden.  Sie können den Ausschnitt Kompilierungsmeldungen jedoch jederzeit manuell anzeigen, indem Sie den Cursor in die untere rechte Ecke des Editor-Fenster verschieben, bis er die Form eines Fadenkreuzes annimmt. Danach klicken und ziehen Sie den Cursor nach oben. Dadurch wird der Bildschirmteiler nach oben verschoben und der Ausschnitt Kompilierungsmeldungen wird sichtbar..
Bildschirmteiler	Der Bildschirmteiler trennt den Quellausschnitt und den Ausschnitt Kompilierungsmeldungen. Mit dem Bildschirmteiler können Sie die relative Größe der Ausschnitte ändern.  Wenn der Ausschnitt Kompilierungsmeldungen nicht angezeigt wird, befindet sich der Bildschirmteiler am unteren Rand des Editor-Fensters.
Statuszeile	Zeigt Informationen über den aktuellen Status des Programmblocks am unteren Rand des Editors an.


Zeigt das Dialogfeld Neuer Programmblock an, in dem Sie Typ und Name des zu erstellenden Programmblocks angeben können.


Kompiliert den gespeicherten Programmblock, der im Quellausschnitt angezeigt wird. Als Folge der Kompilierung generierte Fehlermeldungen werden in dem Auswahlausschnitt Kompilierungsmeldungen angezeigt.


Stellt den gespeicherten Programmblock in dem Status wieder her, den er bei dem letzten Speichern- oder Wiederherstellenvorgang hatte. Wenn kein Speichern- oder Wiederherstellenvorgang aufgetreten ist, wird der Programmblock wieder in seinen Originalzustand versetzt.


Löscht den aktuellen gespeicherten Programmblock aus der Datenbank, wobei eine Bestätigung angefordert wird.


Zeigt die Datenbank-Benutzer-ID des Eigentümers des aktuellen Programmblocks an. Klicken Sie auf den Pfeil auf der rechten Seite dieses Feldes, um eine Dropdown-Liste mit Benutzernamen anzuzeigen, zu deren gespeicherten Programmblöcken Sie eine Zugriffsberechtigung haben.


Zeigt den Namen des aktuellen gespeicherten Programmblocks an. Klicken Sie auf den Pfeil auf der rechten Seite dieses Feldes, um eine Dropdown-Liste der gespeicherten Programmblöcke anzuzeigen, die der Benutzer-ID gehören, die im Feld Eigentümer angezeigt wird. In der Namensliste werden nur die Namen der gespeicherten Programmblöcke angezeigt, zu denen Sie eine Zugriffsberechtigung haben.


Wird benutzt, um den Quelltext des Gespeicherten PL/SQL-Programmblocks einzugeben und zu bearbeiten.


Zeigt Syntaxfehler an, die während der Kompilierung angetroffen wurden. Klicken Sie auf einen Fehler, um zu dem Quellort in dem Programmblock zu gehen.


Mit dem Bildschirmteiler können Sie den relativen Platz ändern, den die beiden Ausschnitte im Gespeicherten Programmblock-Editor belegen. Beachten Sie, daß der Ausschnitt Kompilierungsmeldungen standardmäßig nur angezeigt wird, wenn Fehlermeldungen während der Kompilierung generiert werden.


Dialogfeld Datenbank-Bibliotheken

Im Dialogfeld Datenbank-Bibliotheken wird eine Liste der Bibliotheken angezeigt, die im Augenblick in der Datenbank gespeichert sind.

Bibliothek	Liste der Bibliotheken, die in der Datenbank verfügbar sind, bei der Sie angemeldet sind. Nur Bibliotheken, für die Sie die GRANT-Berechtigung haben, werden in der Liste angezeigt. Klicken Sie auf einen Bibliotheksnamen, um ihn auszuwählen.


Liste der Bibliotheken, die in der Datenbank verfügbar sind, bei der Sie angemeldet sind. Nur Bibliotheken, für die Sie die GRANT-Berechtigung haben, werden in der Liste angezeigt. Klicken Sie auf einen Bibliotheksnamen, um ihn auszuwählen.


Dialogfeld Neuer Programmblock

Im Dialogfeld Neuer Programmblock können Sie Namen und Typ eines zu erstellenden Programmblocks angeben.

Name	Geben Sie den Namen des Programmblocks ein.
Typ	Gibt den Typ des zu erstellenden Programmblocks an.
Prozedur	Ein PL/SQL-Unterprogramm, das eine bestimmte Folge von Aktionen ausführt.
Funktion	Ein PL/SQL-Unterprogramm, das eine bestimmte Folge von Aktionen ausführt und dann einen Wert zurückgibt.
Paketspez.	Datentypen und Unterprogramme, die von anderen Programmblöcken referenziert werden können.
Paketrumpf	Implementierung des Pakets. Kann private Unterprogramme und Datentypen enthalten. Ist optional, wenn das Paket nur aus Deklarationen besteht.
Typspez.	Deklariert Namen, Variablen (Attribute) und teilhabende Unterprogramme (Methoden) für einen Objekttyp oder Collection-Typ.
Typrumpf	Implementierung der teilhabenden Methoden (Funktionen und Prozeduren), die in der Typspezifikation für ein Objekt definiert sind. Für jede in einem Objekttyp angegebene Methode muß ein entsprechender Methodenrumpf vorhanden sein.
Hinweis: Typspez. Und Typrumpf sind nur aktiviert, wenn Sie bei Oracle8 angemeldet sind.


Geben Sie den Namen des Programmblocks ein.


Gibt den Typ des zu erstellenden Programmblocks an.


Dialogfeld Bibliothek öffnen

Im Dialogfeld Bibliothek öffnen können Sie bestehende Bibliotheken aus dem Dateisystem oder der Datenbank öffnen. Außerdem enthält dieses Dialogfeld eine grafische Benutzeroberfläche für den OPEN-Befehl des Interpreters.

Bibliothek	Geben Sie den Namen (und Pfad) der zu öffnenden Bibliothek ein.
Durchsuchen	Wenn im Feld In Dateisystem oder Beiden ausgewählt wurde, wird das Datei-Dialogfeld Ihres Betriebssystems angezeigt. Wenn im Feld In Datenbank ausgewählt wurde, wird das Dialogfeld Datenbank-Bibliotheken angezeigt.
In	Gibt an, ob die Bibliothek im Dateisystem oder in der Datenbank gespeichert ist.


Geben Sie den Namen (und Pfad) der zu öffnenden Bibliothek ein.


Wenn im Feld In Dateisystem oder Beiden ausgewählt wurde, wird das Datei-Dialogfeld Ihres Betriebssystems angezeigt. Wenn im Feld In Datenbank ausgewählt wurde, wird das Dialogfeld Datenbank-Bibliotheken angezeigt.


Gibt an, ob die Bibliothek im Dateisystem oder in der Datenbank gespeichert ist.


Dialogfeld Bibliothek zuordnen

Im Dialogfeld Bibliothek zuordnen können Sie Bibliotheken der aktuellen Sitzung zuordnen. Außerdem enthält dieses Dialogfeld eine grafische Benutzeroberfläche für den ATTACH-Befehl des Interpreters.

Bibliothek	Geben  Sie den Namen (und Pfad) der zuzuordnenden Bibliothek ein.
Durchsuchen	Wenn im Feld In Dateisystem oder Beiden ausgewählt wurde, wird das Datei-Dialogfeld Ihres Betriebssystems angezeigt. Wenn im Feld In Datenbank ausgewählt wurde, wird das Dialogfeld Datenbank-Bibliotheken angezeigt.
In	Gibt an, ob die Bibliothek im Dateisystem oder in der Datenbank gespeichert ist.
Zuordnen	Bestätigt Ihre Auswahlen, ordnet die Bibliothek zu und schließt das Dialogfeld.


Geben Sie den Namen (und Pfad) der zuzuordnenden Bibliothek ein.


Wenn im Feld In Dateisystem oder Beiden ausgewählt wurde, wird das Datei-Dialogfeld Ihres Betriebssystems angezeigt. Wenn im Feld In Datenbank ausgewählt wurde, wird das Dialogfeld Datenbank-Bibliotheken angezeigt.


Gibt an, ob die Bibliothek im Dateisystem oder in der Datenbank gespeichert ist.


Bestätigt Ihre Auswahlen, ordnet die Bibliothek zu und schließt das Dialogfeld.


Dialogfeld Interpreter-Protokoll

Im Dialogfeld Interpreter-Protokoll können Sie Protokollierungsaktivitäten verwalten. Außerdem stellt dieses Dialogfeld eine grafische Benutzeroberfläche für den LOG-Befehl des Interpreters dar.

Datei	Geben Sie den Namen der Datei ein, in der die zu protokollierende Sitzung aufgezeichnet werden soll.
Durchsuchen	Zeigt das Datei-Dialogfeld Ihres Betriebssystems an, in dem Sie nach einem Pfad bzw. einem bestehenden Dateinamen suchen und diesen auswählen können.
Anhängen	Wenn dieses Kontrollkästchen ausgewählt ist, wird die Option APPEND aktiviert, d.h. daß die aktuelle protokollierte Sitzung am Ende der bestehenden Protokoll-Datei angehängt wird, die Sie im Textfeld Datei angegeben haben. Sonst werden die aktuellen Protokollinformationen in der angegebenen Datei von der neuen zu protokollierenden Sitzung überschrieben.
Deaktiviert	Wenn dieses Kontrollkästchen ausgewählt ist, wird die Option DISABLED aktiviert, d.h. die Protokollierung in der angegebenen Datei wird vorübergehend unterbrochen, bis sie wieder aktiviert wird.
Protokoll anzeigen	Wenn dieses Kontrollkästchen ausgewählt ist, wird der Interpreter-Protokoll-Browser angezeigt, wenn das Dialogfeld Interpreter-Protokoll akzeptiert wird. Außerdem können Sie den Interpreter-Protokoll-Browser anzeigen, indem Sie Ansicht [image] Interpreter-Protokoll im Interpreter auswählen.


Geben Sie den Namen der Datei ein, in der die zu protokollierende Sitzung aufgezeichnet werden soll.


Zeigt das Datei-Dialogfeld Ihres Betriebssystems an, in dem Sie nach einem Pfad bzw. einem bestehenden Dateinamen suchen und diesen auswählen können.


Wenn dieses Kontrollkästchen ausgewählt ist, wird die Option APPEND aktiviert, d.h. daß die aktuelle protokollierte Sitzung am Ende der bestehenden Protokoll-Datei angehängt wird, die Sie im Textfeld Datei angegeben haben. Sonst werden die aktuellen Protokollinformationen in der angegebenen Datei von der neuen zu protokollierenden Sitzung überschrieben.


Wenn dieses Kontrollkästchen ausgewählt ist, wird die Option DISABLED aktiviert, d.h. die Protokollierung in der angegebenen Datei wird vorübergehend unterbrochen, bis sie wieder aktiviert wird.


IWenn dieses Kontrollkästchen ausgewählt ist, wird der Interpreter-Protokoll-Browser angezeigt, wenn das Dialogfeld Interpreter-Protokoll akzeptiert wird. Außerdem können Sie den Interpreter-Protokoll-Browser anzeigen, indem Sie Ansicht->Interpreter-Protokoll im Interpreter auswählen.


PL/SQL-Interpreter-Protokoll-Browser

Im PL/SQL-Interpreter-Protokoll-Browser werden die aufgezeichneten Meldungen aus der letzten protokollierten Sitzung angezeigt.

Deaktivieren/Aktivieren	Schaltet den aktiven Status der aktuellen Protokollierungssitzung um.
Aus	Beendet die aktuelle Protokollierungssitzung und schließt den Browser.
Listenfeld mit Meldungen	Ein schreibgeschützter Auswahlbereich, in dem eine Aufzeichnung der Ein- und Ausgabe im Interpreter-Ausschnitt angezeigt wird. Sie können den in dem Listenfeld angezeigten Text auswählen, kopieren und durchsuchen.


Schaltet den aktiven Status der aktuellen Protokollierungssitzung um.


Beendet die aktuelle Protokollierungssitzung und schließt den Browser.


Ein schreibgeschützter Auswahlbereich, in dem eine Aufzeichnung der Ein- und Ausgabe im Interpreter-Ausschnitt angezeigt wird. Sie können den in dem Listenfeld angezeigten Text auswählen, kopieren und durchsuchen.


Dialogfeld Anmelden

Im Dialogfeld Anmelden können Sie eine Verbindung zu einer Datenbankinstanz herstellen. Außerdem stellt dieses Dialogfeld eine grafische Benutzeroberfläche für den CONNECT-Befehl des Interpreters dar.

Benutzername	Geben Sie Ihre Datenbank-Benutzer-ID ein. Sie können die ganze DB-Adresse in dieses Textfeld eingeben, in diesem Fall wird das Kennwort jedoch zurückgegeben.
Kennwort	Geben Sie Ihr Datenbankkennwort ein. In diesem Feld wird das Kennwort nicht zurückgegeben, um die Kennwortsicherheit zu gewährleisten.
Datenbank	Geben Sie die DB-Adresse für die Datenbank ein, bei der Sie sich anmelden wollen. Diese Adresse hat im allgemeinen folgende Form:
	network_protocol:network_node[:database_name]
	Beachten Sie, daß die Felder durch einen Doppelpunkt (:) begrenzt werden. Der Datenbankadministrator gibt Ihnen die richtige DB-Adresse für Ihre Datenbank. Wenn Sie sich bei einer ODBC-Datenquelle anmelden, wird folgende Syntax verwendet:
	username/password@ODBC:datasource[:dbname] Wenn dbname nicht angegeben wird, wird die aktuelle Datenbank für die ODBC-Anmeldung benutzt.
Anmelden	Bestätigt die angegebenen Informationen und versucht, die Verbindung herzustellen. Wenn die Datenbankverbindung erfolgreich ist, wird das Dialogfeld geschlossen. Sonst wird eine Fehlermeldung ausgegeben.


Geben Sie Ihre Datenbank-Benutzer-ID ein. Sie können die ganze DB-Adresse in dieses Textfeld eingeben, in diesem Fall wird das Kennwort jedoch zurückgegeben.


Geben Sie Ihr Datenbankkennwort ein. In diesem Feld wird das Kennwort nicht zurückgegeben, um die Kennwortsicherheit zu gewährleisten.


Geben Sie die DB-Adresse für die Datenbank ein, bei der Sie sich anmelden wollen.


Bestätigt die angegebenen Informationen und versucht, die Verbindung herzustellen. Wenn die Datenbankverbindung erfolgreich ist, wird das Dialogfeld geschlossen. Sonst wird eine Fehlermeldung ausgegeben.


Dialogfeld Liste mit Zugriffsberechtigungen

Im Dialogfeld Liste mit Zugriffsberechtigungen können Sie die Zugriffsberechtigungen zu der gerade ausgewählten Bibliothek oder dem gespeicherten Programmblock im Datenbankserver anzeigen und ändern. Außerdem stellt dieses Dialogfeld eine grafische Benutzeroberfläche für die GRANT- und REVOKE-Befehle des Interpreters dar. Sie benötigen die GRANT-Zugriffsberechtigung für die Bibliothek, um anderen Benutzern eine Zugriffsberechtigung zu erteilen bzw. zu entziehen.

Listenfeld Benutzer	Listet die Benutzer auf, die im Augenblick eine Zugriffsberechtigung zu der ausgewählten Bibliothek oder dem gespeicherten Programmblock haben. Klicken Sie auf einen Benutzernamen, um diesen Namen in das Textfeld Benutzer einzugeben.
Benutzer	Geben Sie den Namen des Benutzers ein, dem Sie eine Zugriffsberechtigung für die ausgewählte Bibliothek oder den gespeicherten Programmblock erteilen oder entziehen wollen. Dieser Benutzername muß ein gültiger Benutzername für die aktuelle Datenbank sein. Wenn der Benutzer schon in dem Listenfeld Benutzer steht, klicken Sie einfach auf den Namen.
Hinzufügen	Fügt den Benutzernamen zu der Liste der Benutzer hinzu, die die GRANT-Zugriffsberechtigung zu der Bibliothek oder dem gespeicherten Programmblock  haben.
Löschen	Löscht den Benutzernamen aus der Liste der Benutzer, die die GRANT-Zugriffsberechtigung zu der Bibliothek oder dem gespeicherten Programmblock haben.


Listet die Benutzer auf, die im Augenblick eine Zugriffsberechtigung zu der ausgewählten Bibliothek haben. Klicken Sie auf einen Benutzernamen, um diesen Namen in das Textfeld Benutzer einzugeben.


Geben Sie den Namen des Benutzers ein, dem Sie eine Zugriffsberechtigung für die ausgewählte Bibliothek erteilen oder entziehen wollen. Dieser Benutzername muß ein gültiger Benutzername für die aktuelle Datenbank sein. Wenn der Benutzer schon in dem Listenfeld Benutzer steht, klicken Sie einfach auf den Namen.


Fügt den Benutzernamen zu der Liste der Benutzer hinzu, die die GRANT-Zugriffsberechtigung zu der Bibliothek haben.


Löscht den Benutzernamen aus der Liste der Benutzer, die die GRANT-Zugriffsberechtigung zu der Bibliothek haben.


Dialogfeld Bibliothek speichern

Im Dialogfeld Bibliothek speichern können Sie eine Bibliothek im Dateisystem oder der Datenbank speichern. Außerdem stellt dieses Dialogfeld eine grafische Benutzeroberfläche für den SAVE-Befehl des Interpreters dar.

Bibliothek	Geben Sie den Namen (und Pfad) der Bibliothek ein, die gespeichert werden soll.
Durchsuchen	Wenn in dem Feld In Dateisystem ausgewählt wurde, wird das Datei-Dialogfeld Ihres Betriebssystems angezeigt. Wenn in dem Feld In Datenbank ausgewählt wurde, wird das Dialogfeld Datenbank-Bibliotheken angezeigt.
In	Gibt an, ob die Bibliothek im Dateisystem oder in der Datenbank gespeichert wird.


Geben Sie den Namen (und Pfad) der Bibliothek ein, die gespeichert werden soll.


Wenn in dem Feld In Dateisystem ausgewählt wurde, wird das Datei-Dialogfeld Ihres Betriebssystems angezeigt. Wenn in dem Feld In Datenbank ausgewählt wurde, wird das Dialogfeld Datenbank-Bibliotheken angezeigt.


Gibt an, ob die Bibliothek im Dateisystem oder in der Datenbank gespeichert wird.


Dialogfeld Suchen/Ersetzen

Im Dialogfeld Suchen/Ersetzen können Sie Zeichenfolgen oder reguläre Ausdrücke in der Quelle Ihres Programmblocks suchen und ersetzen, die momentan im Programmblock- oder Gespeicherten Programmblock-Editor angezeigt werden.

Suchen nach	Geben Sie die zu suchende Zeichenfolge ein. Wenn diese Zeichenfolge als regulärer Ausdruck behandelt werden soll, klicken Sie auf das Kontrollkästchen Regulärer Ausdruck.
Ersetzen durch	Geben Sie die Zeichenfolge ein, durch die die gefundene Zeichenfolge ersetzt werden soll.
Regulärer Ausdruck	Wenn dieses Kontrollkästchen ausgewählt ist, wird die Suchfolge als regulärer Ausdruck und nicht als Zeichenfolge behandelt.
Groß-/Kleinschreibung beachten	Gibt an, ob bei der Suchfolge die Groß- und Kleinschreibung beachtet werden soll. Wenn dieses Kontrollkästchen nicht ausgewählt ist, werden alle Vorkommen der Suchfolge unabhängig von der Schreibweise gefunden.
Weitersuchen	Sucht nach dem nächsten Vorkommen der Suchfolge ab der Cursorposition.
Ersetzen	Ersetzt die zuletzt gefundene Zeichenfolge durch die Zeichenfolge, die in dem Textfeld Ersetzen durch angegeben wird. Wenn keine Übereinstimmung ausgewählt ist, wird nach dem nächsten Vorkommen der Suchfolge gesucht und diese ersetzt.
Alle ersetzen	Ersetzt jedes Vorkommen der Suchfolge durch die Ersetzenfolge (ab der Cursorposition bis zum Ende des Suchbereichs).


Geben Sie die zu suchende Zeichenfolge ein. Wenn diese Zeichenfolge als regulärer Ausdruck behandelt werden soll, klicken Sie auf das Kontrollkästchen Regulärer Ausdruck.


Geben Sie die Zeichenfolge ein, durch die die gefundene Zeichenfolge ersetzt werden soll.


Gibt an, ob bei der Suchfolge die Groß- und Kleinschreibung beachtet werden soll. Wenn dieses Kontrollkästchen nicht ausgewählt ist, werden alle Vorkommen der Suchfolge unabhängig von der Schreibweise gefunden.


Wenn dieses Kontrollkästchen ausgewählt ist, wird die Suchfolge als regulärer Ausdruck und nicht als Zeichenfolge behandelt.


Sucht nach dem nächsten Vorkommen der Suchfolge ab der Cursorposition.


Ersetzt die zuletzt gefundene Zeichenfolge durch die Zeichenfolge, die in dem Textfeld Ersetzen durch angegeben wird. Wenn keine Übereinstimmung ausgewählt ist, wird nach dem nächsten Vorkommen der Suchfolge gesucht und diese ersetzt.


Ersetzt jedes Vorkommen der Suchfolge durch die Ersetzenfolge (ab der Cursorposition bis zum Ende des Suchbereichs).


Dialogfeld PL/SQL-Programmstop

Das Dialogfeld PL/SQL-Programmstop stellt eine grafische Benutzeroberfläche für den BREAK-Befehl des Interpreters dar. Mit ihm können Sie Programmstops und Break-Trigger erstellen oder ändern.

Programmstop	Kennzeichnet den Programmstop und hat die Form Programmstop:  Neu oder Programmstop:  Zahl. Die Beschriftung ist "Neu", wenn Sie einen neuen Programmstop angeben, bzw. eine Zahl, wenn Sie einen bestehenden Programmstop ändern.
Aktiviert	Gibt an, ob der Programmstop aktiviert oder deaktiviert ist.
Programmblock	Kenzzeichnet den Zielprogrammblock, die Position, an der sich der bestehende Programmblock befindet oder an der der neue Programmstop erstellt wird.
Zeile	Kennzeichnet die Quellposition des Programmstops in dem Programmblock.
Trigger	Gibt einen Programmstop-Trigger ein. Falls erforderlich, geben Sie die PL/SQL-Anweisungen ein, die ausgelöst werden, wenn der Programmstop erreicht wird. BEGIN- und ENG-Schlüsselwörter sind in dem Trigger nicht erforderlich. Sie können z.B. DEBUG.INTERPRET verwenden, um einen Interpreter-Befehl auszuführen: DEBUG.INTERPRET('.SHOW LOCALS');.


Kennzeichnet den Programmstop und hat die Form Programmstop:  Neu oder Programmstop:  Zahl. Die Beschriftung ist "Neu", wenn Sie einen neuen Programmstop angeben, bzw. eine Zahl, wenn Sie einen bestehenden Programmstop ändern.


Gibt an, ob der Programmstop aktiviert oder deaktiviert ist.


Kennzeichnet den Zielprogrammblock, in dem sich der bestehende Programmstop befindet oder der neue  Programmstop erstellt wird.


Kennzeichnet die Quellposition des Programmstops in dem Programmblock.


Geben Sie die PL/SQL-Anweisungen ein, die ausgelöst werden, wenn der Programmstop erreicht wird. BEGIN- und END-Schlüsselwörter sind nicht erforderlich.


Dialogfeld PL/SQL-Trigger

Im Dialogfeld PL/SQL-Trigger können Sie einen Debug-Trigger erstellen. Außerdem stellt dieses Dialogfeld eine grafische Benutzeroberfläche für den TRIGGER-Befehl dar.

Trigger	Kennzeichnet den Debug-Trigger und hat die Form Trigger:  Neu oder Trigger:  Zahl. Die Beschriftung ist Neu, wenn Sie einen neuen Debug-Trigger angeben, bzw. eine Zahl, wenn Sie einen bestehenden Debug-Trigger ändern.
Aktiviert	Gibt an, ob der Debug-Trigger aktiviert oder deaktiviert ist.
Speicherort	Gibt die Quellposition des Debug-Triggers an.
	Mit der Option Programmblock (Standard) wird angegeben, daß sich der Debug-Trigger bei einer bestimmten Quellposition in dem Programmblock befindet.
	Mit der Option Debug-Anweisung wird angegeben, daß der Trigger ausgelöst wird, sobald die Ausführung des Programmblocks unterbrochen wird.
	Mit der Option Jede Anweisung wird angegeben, daß der Debug-Trigger direkt vor jeder ausführbaren Anweisung in dem Programmblock ausgelöst wird.
Programmblock	Gibt den Zielprogrammblock an.
Zeile	Gibt die Quellposition des Debug-Triggers in dem Programmblock an.
Triggerrumpf	Gibt die PL/SQL-Anweisungen ein, die als Rumpf der Debug-Trigger benutzt werden sollen. BEGIN- und  END-Schlüsselwörter sind nicht erforderlich. Ein Debug-Trigger kann mit einem bedingten Break-Trigger verglichen werden. Wenn Sie Bedingungen für das Auslösen einer Debug-Aktion angeben, wird der Trigger nur ausgelöst, wenn die Bedingungen wahr sind.   Sie können z.B. DEBUG.BREAK auslösen, wenn eine Variable gleich einem bestimmten Wert ist, z.B. 100.  IF DEBUG.GETC('vnumber') = 100 THEN   RAISE DEBUG.BREAK; END IF;.


Kennzeichnet den Debug-Trigger und hat die Form Trigger:  Neu oder Trigger:  Zahl. Die Beschriftung ist Neu, wenn Sie einen neuen Debug-Trigger angeben, bzw. eine Zahl, wenn Sie einen bestehenden Debug-Trigger ändern.


Gibt an, ob der Debug-Trigger aktiviert oder deaktiviert ist.


Gibt die Quellposition des Debug-Triggers an.


Gibt den Zielprogrammblock an.


Gibt die Quellposition des Debug-Triggers in dem Programmblock an.


Geben Sie die PL/SQL-Anweisungen ein, die als Rumpf des Debug-Triggers benutzt werden sollen.


Dialogfeld PL/SQL-Step

Im Dialogfeld PL/SQL-Step können Sie Optionen festlegen, mit denen Sie beim Debuggen schrittweise durch einen unterbrochenen Programmblockcode gehen können. Dieses Dialogfeld stellt außerdem eine grafische Benutzeroberfläche für den STEP-Befehl des Interpreters dar.

Modus	Gibt an, welche Step-Option benutzt werden soll.
	Bei HINEIN wird die Ausführung bis zur nächsten ausführbaren Anweisung wieder aufgenommen.
	Bei ÜBER wird die Ausführung bis zur nächsten ausführbaren Anweisung im aktuellen Programmblock wieder aufgenommen, wobei eventuelle Unterprogrammaufrufe übersprungen werden.
	Bei HERAUS wird die Ausführung über ein verschachteltes Unterprogramm wieder aufgenommen und bei der nächsten ausführbaren Anweisung in dem aufrufenden Programmblock angehalten.
	Bei AN wird die Ausführung wieder aufgenommen, bis der angegebene Speicherort erreicht ist.
Programmblock	Kennzeichnet den Ziel-Programmblockrumpf für die Befehlsoption STEP AN.
Zeile	Kennzeichnet den Speicherort innerhalb des Ziel-Programmblockrumpfs für die Befehlsoption STEP AN.
Anzahl	Gibt an, wie oft der STEP-Befehl wiederholt wird. Standardmäßig wird die Zahl eins benutzt.
Anwenden	Akzeptiert die angegebenen Optionen und nimmt die Ausführung des Programmblocks entsprechend wieder auf. Da Step-Vorgänge im allgemeinen nacheinander wiederholt werden, wird das Dialogfeld Step angezeigt, bis Sie es explizit schließen oder solange eine aktive Debug-Ebene vorhanden ist.


Gibt an, welche Step-Option benutzt werden soll.


Kennzeichnet den Ziel-Programmblockrumpf für die Befehlsoption STEP AN.


Kennzeichnet den Speicherort innerhalb des Ziel-Programmblockrumpfs für die Befehlsoption STEP AN.


Gibt an, wie oft der STEP-Befehl wiederholt wird. Standardmäßig wird die Zahl eins benutzt.


Akzeptiert die angegebenen Optionen und nimmt die Ausführung des Programmblocks entsprechend wieder auf. Da Step-Vorgänge im allgemeinen nacheinander wiederholt werden, wird das Dialogfeld Step angezeigt, bis Sie es explizit schließen oder solange eine aktive Debug-Ebene vorhanden ist.


Dialogfeld Programmblock laden

Im Dialogfeld Programmblock laden können Sie einen Programmblock importieren und kompilieren, der im Dateisystem gespeichert ist. Außerdem stellt dieses Dialogfeld eine grafische Benutzeroberfläche für den LOAD-Befehl des Interpreters dar.

Datei	Geben Sie den Namen (und Pfad) der Datei ein, die den Quelltext des Programmblocks enthält.
Durchsuchen	Zeigt das Datei-Dialogfeld des Betriebssystems an.
Bestätigungen unterdrücken	Unterdrückt alle Bestätigungsmeldungen während des Laden- und Kompilierenvorgangs, z.B. wenn ein bestehender Programmblock überschrieben wird. Dieses Kontrollkästchen ist standardmäßig deaktiviert, d.h. daß die Bestätigungen nicht unterdrückt werden.
Laden	Bestätigt Ihre Auswahlen, lädt den Programmblock und schließt das Dialogfeld.


Geben Sie den Namen (und Pfad) der Datei ein, die den Quelltext des Programmblocks enthält.


Zeigt das Datei-Dialogfeld des Betriebssystems an.


Unterdrückt alle Bestätigungsmeldungen während des Laden- und Kompilierenvorgangs, z.B. wenn ein bestehender Programmblock überschrieben wird. Dieses Kontrollkästchen ist standardmäßig deaktiviert, d.h. daß die Bestätigungen nicht unterdrückt werden.


Bestätigt Ihre Auswahlen, lädt den Programmblock und schließt das Dialogfeld.


Dialogfeld Debug-Skript interpretieren

Im Dialogfeld Debug-Skript interpretieren können Sie ein Skript importieren und ausführen, das eine beliebige Kombination von Interpreter-Befehlen, PL/SQL-Quellcode oder SQL-Anweisungen enthält. Dieses Dialogfeld stellt außerdem eine grafische Benutzeroberfläche für den INTERPRET-Befehl dar.

Datei	Geben Sie den Namen (und Pfad) der Datei ein, die das zu interpretierende Debug-Skript enthält.
Durchsuchen	Zeigt das Datei-Dialogfeld Ihres Betriebssystems an.
Anzeigen Quelltext	Aktiviert oder deaktiviert das Anzeigen des Quelltextes. Standardmäßig ist dieses Kontrollkästchen deaktiviert, d.h. daß nicht jede Zeile des Skripts auf der Interpreter-Befehlszeile beim Laden des Skripts wiedergegeben wird.
Meldungn nicht anzeigen	Aktiviert oder deaktiviert die Anzeige von Meldungen. Standardmäßig ist dieses Kontrollkästchen deaktiviert, d.h. beim Laden des Skripts werden Statusmeldungen angezeigt.
Bestätigungen unterdrücken	Unterdrückt alle Bestätigungen während des Vorgangs, z.B. beim Überschreiben eines bestehenden Programmblocks. Standardmäßig ist diese Option deaktiviert, d.h. die Bestätigungen werden nicht unterdrückt.
Interpretieren	Bestätigt Ihre Auswahlen, führt das Skript aus und schließt das Dialogfeld.


Geben Sie den Namen (und Pfad) der Datei ein, die das zu interpretierende Debug-Skript enthält.


Zeigt das Datei-Dialogfeld Ihres Betriebssystems an.


Aktiviert oder deaktiviert das Anzeigen des Quelltextes. Standardmäßig ist dieses Kontrollkästchen deaktiviert, d.h. daß nicht jede Zeile des Skripts auf der Interpreter-Befehlszeile beim Laden des Skripts wiedergegeben wird.


Aktiviert oder deaktiviert die Anzeige von Meldungen. Standardmäßig ist dieses Kontrollkästchen deaktiviert, d.h. beim Laden des Skripts werden Statusmeldungen angezeigt.


Unterdrückt alle Bestätigungen während des Vorgangs, z.B. beim Überschreiben eines bestehenden Programmblocks. Standardmäßig ist diese Option deaktiviert, d.h. die Bestätigungen werden nicht unterdrückt.


Bestätigt Ihre Auswahlen, führt das Skript aus und schließt das Dialogfeld.


Dialogfeld Kompilieren

Im Dialogfeld Kompilieren werden Kompilierungsfehlermeldungen während der Stapelkompilierung angezeigt. In diesem Dialogfeld können Sie die Kompilierung anhalten und wieder aufnehmen und zu der Fehlerquelle gehen.

Statuszeile	Zeigt folgende Informationen an, während Programmblöcke kompiliert werden:
	Name und Typ des gerade kompilierten Programmblocks
	[UNTERBROCHEN], wenn Sie auf Unterbrechen klicken
	Prozentsatz von Programmblöcken, die kompiliert wurden
Listenfeld mit Kompilierungs-fehlern	Ein Auswahlbereich, der auf Mausaktionen reagiert und in dem Fehler angezeigt werden, die während der Kompilierung der ausgewählten Programmblöcke auftreten. Klicken Sie auf einen Fehler in dem Listenfeld mit den Kompilierungsfehlern, um den Programmblock-Editor und den Programmblock aufzurufen, in dem der Fehlker aufgetreten ist. Wenn Sie während einer unterbrochenen Kompilierung (nach Klicken auf Unterbrechen) auf einen Fehler in dem Listenfeld mit den Kompilierungsfehlern klicken, werden Sie in einem Warnfenster unterrichtet, daß die Stapelkompilierung abgebrochen wird, wenn Sie zu der Quelle eines Fehlers gehen.
Unterbrechen	Unterbricht die Kompilierung vorübergehend, z.B. wenn zu viele Fehler generiert wurden.
Wiederaufnehmen	Nimmt die Kompilierung nach einer Unterbrechung wieder auf.
Gehe zu Fehler	Zeigt den Programmblock-Editor an, der die Programmblockquelle bei der Position des ersten Fehlers enthält. Wenn Sie während einer unterbrochenen Kompilierung (nach Klicken auf Unterbrechen) auf diese Schaltfläche klicken, werden Sie in einem Warnfenster unterrichtet, daß die Stapelkompilierung abgebrochen wird, wenn Sie zu der Quelle eines Fehlers gehen. Zeigt außerdem das Dialogfeld PL/SQL-Kompilierungsmeldungen an, ein Auswahlfeld, in dem Sie nach allen Fehlern suchen können, die während der Kompilierung der ausgewählten Programmblöcke aufgetreten sind. Klicken Sie auf einen Fehler in dem Listenfeld, um den Programmblock-Editor und den Programmblock anzuzeigen, in dem der Fehler aufgetreten ist.
Gehe zu Fehler	Zeigt den PL/SQL-Editor an, der die Programmblockquelle bei der Position des ersten Fehlers enthält.

Wenn die Kompilierung fehlerfrei beendet wird, wird die Meldung Erfolgreich kompiliert in der Statuszeile angezeigt. Wenn die Kompilierung mit Fehlern beendet wird, wird die Meldung Fehler bei Kompilierung angezeigt.

Das Dialogfeld PL/SQL-Kompilierungsmeldungen ein Auswahlfeld, in dem Sie nach allen Fehlern suchen können, die während der Kompilierung der ausgewählten Programmblöcke aufgetreten sind. Klicken Sie auf einen Fehler in dem Listenfeld, um den Programmblock-Editor und den Programmblock anzuzeigen, in dem der Fehler aufgetreten ist.


Zeigt folgende Informationen an, während Programmblöcke kompiliert werden: Name und Typ des gerade kompilierten Programmblocks, sowie Prozentsatz von Programmblöcken, die kompiliert wurden.


Unterbricht die Kompilierung vorübergehend, z.B. wenn zu viele Fehler generiert wurden. Wenn Sie auf Unterbrechen klicken, wird [UNTERBROCHEN] in der Statuszeile angezeigt.


Nimmt die Kompilierung nach einer Unterbrechung wieder auf.


Zeigt den Browser für PL/SQL-Kompilierungsmeldungen an und ruft den Programmblock-Editor auf, der die Programmblockquelle bei der Position des ersten Fehlers enthält.


 Reguläre Ausdrücke

Reguläre Ausdrücke sind Zeichenfolgen, die eines der folgenden Stellvertreterzeichen enthalten können.

.	Entspricht einem einzelnen Zeichen. So würde z.B. .ie sowohl die als auch sie entsprechen.
( )	Wird benutzt, um die Prioritätsfolge von Operatoren zu erzwingen (z.B. +), wenn die Standardprioritätsfolge nicht eingehalten werden soll. So kommt z.B. die Verkettung von Zeichen (z.B. die) vor anderen Operatoren wie +, so daß die+A gleichbedeutend mit (die)+A ist. Wenn Sie nun dieeeeeeA suchen möchten, können Sie mit Klammern erzwingen, daß + vor der Verkettung steht: di(e+)A.
[ ]	Entspricht einem einzelnen Zeichen in eckigen Klammern. Die eckigen Klammern sind ein logischer OR-Operator. So würde z.B. t[hr]e dem the in Othello und dem tre in Trend entsprechen.
|	Wird zwischen zwei regulären Ausdrücken benutzt. Eine Übereinstimmung wird gefunden, wenn einer der regulären Ausdrücke übereinstimmt.
\	Entspricht dem Sonderzeichen, das auf den umgekehrten Schrägstrich folgt. So würde z.B. \*  dem Zeichen *. entsprechen. Der Backslash ist das Escape-Zeichen. Ein Sonderzeichen, das auf den Backslash folgt, wird nicht als Sonderzeichen behandelt. Nachfolgend einige Verwendungszwecke für das Escape-Zeichen:
	\n entspricht dem Zeichen für neue Zeile
	\t entspricht dem Tabulatorzeichen
	\b entspricht einem Leerzeichen
	\w entspricht \n, \t, \b oder \0
*	Entspricht 0 oder mehreren Vorkommen des regulären Ausdrucks. So würde z.B. (die)*A dem Ausdruck A, dieA und diedieA entsprechen.
+	Entspricht einem oder mehreren Vorkommen des regulären Ausdrucks. So würde z.B. (die)+A sowohl dieA als auch diedieA entsprechen, würde jedoch dem A alleine nicht entsprechen, wie dies bei (die)*A der Fall wäre.

Diese Zeichen haben in eckigen Klammern eine besondere Bedeutung:

~	Entspricht als erstes Zeichen einem Zeichen, das nicht in den Zeichen oder Bereichen innerhalb der eckigen Klammern gefunden wird. So würde z.B. t[~hr]e dem Wort tie, jedoch nicht dem Wort the entsprechen.
-	Entspricht zwischen Zeichenpaaren beliebigen Zeichen in dem Bereich. So würde z.B. [A-E] den Buchstaben A, B, C, D und E entsprechen. Paare von Zeichenbereichen können sein:
	• Buchstaben in derselben Schreibweise, wobei das erste Zeichen vor dem zweiten Zeichen in dem Alphabet steht (bzw. identisch mit diesem ist).
	• Ziffern, wobei die erste Ziffer kleiner als oder gleich der zweiten Ziffer ist  (z.B. [4-9] oder [0-3]).
	Sie können auch das Escape-Zeichen in eckigen Klammern benutzen.
Regeln:  Die Prioritätsfolge von Sonderzeichen in regulären Ausdrücken ist wie folgt: ( ), [ ], verkettete Zeichen (z.B. abc), *, +, ~,  , |, .

In den folgenden Beispielen werden einige der Implikationen der Prioritätsfolge dargestellt:

•	Start|Ende ist gleichbedeutend mit (Start)|(Ende)

•	Start* ist gleichbedeutend mit (Start)*

•	Start|Ende* ist gleichbedeutend mit (Start)|((Ende)*)


Auswahl PL/SQL-Tabellenelemente

Das Dialogfeld Auswahl PL/SQL-Tabellenelemente enthält Indizes für Zeilen in einer ausgewählten Tabelle. In diesem Dialogfeld können Sie die Zeilen auswählen, die voll im Objektnavigator eingeblendet werden sollen.

Listenfeld Datensatzindex	Ein Auswahlbereich, der auf Mausaktionen reagiert und eine Liste mit Indizes für alle Zeilen in der gerade ausgewählten Tabelle enthält.
Alle auswählen	Wählt alle Elemente in der Tabelle aus.
Auswahl ganz aufheben	Hebt die Auswahl aller Elemente in der Tabelle auf.
Standardmäßig sind alle Indizes ausgewählt. Heben Sie einzelne Auswahlen auf, indem Sie mit gedrückter Strg-Taste in der Liste auf diese klicken.


Dialogfeld Suchen/Ersetzen in Programmblöcken

Mit dem Dialogfeld Suchen/Ersetzen in Programmblöcken können Sie einen globalen Suchen- und Ersetzenvorgang über mehrere Programmblöcke hinweg vornehmen.

Suchen nach	Geben Sie die zu suchende Zeichenfolge ein.   Wenn die Zeichenfolge als regulärer Ausdruck behandelt werden soll, wählen Sie das Kontrollkästchen Ausdruck verwenden aus.
Ausdruck	Zeigt eine Liste der regulären Ausdrücke an, die Sie in Ihren Suchkriterien verwenden können. Klicken Sie auf einen Ausdruck, um ihn in das Feld Suchen nach einzugeben.
Ersetzen durch	Geben Sie die Zeichenfolge ein, durch die die Suchfolge ersetzt werden soll.
Ausdruck verwenden	Wählen Sie dieses Kontrollkästchen aus, wenn Sie reguläre Ausdrücke in den Suchkriterien verwenden möchten. Heben Sie die Auswahl des Kontrollkästchens auf, wenn Sie keine regulären Ausdrücke in den Suchkriterien benutzen möchten.
Groß-/Kleinschreibung beachten	Wählen Sie dieses Kontrollkästchen aus, wenn die Schreibweise bei der Suche berücksichtigt werden soll. Heben Sie die Auswahl des Kontrollkästchens auf, wenn alle Vorkommen der Suchfolge unabhängig von der Schreibweise gefunden werden sollen.
Wo suchen	Geben Sie an, wo der Suchen- oder Suchen-/Ersetzen-Vorgang durchgeführt werden soll. In Procedure Builder Standalone stellt / den obersten Programmblöcke-Knoten im Objektnavigator dar. Alle geöffneten PL/SQL-Bibliotheken in der aktuellen Sitzung werden unter / aufgeführt.   Alle Knoten sind standardmäßig ausgewählt. Wenn Sie nur in einem bestimmten Knoten suchen möchten, klicken Sie auf den Knoten.
Alle suchen	Sucht nach jedem Vorkommen der angegebenen Suchfolge. Die Suchfolge wird nicht ersetzt.
All  ersetzen	Ersetzt jedes Vorkommen der Suchfolge durch die angegebene Ersetzenfolge. In einem Meldungsfeld werden Sie zur Bestätigung aufgefordert, bevor der Ersetzenvorgang im Stapelverfahren durchgeführt wird.
Schließen	Schließt das Dialogfeld.
Hilfe	Zeigt dieses Hilfethema an.
Listenfeld Ergebnisse	Zeigt die Vorkommen der gefundenen Zeichenfolgen an. Die Position jeder gefundenen Zeichenfolge wird mit dem Knoten, dem Namen des Programmblocks sowie den Zeilen- und Spaltennumern der Quellzeile angegeben. In der Statusleiste über dem Listenfeld wird die Anzahl von gefundenen Übereinstimmungen dargestellt. Klicken Sie auf ein Vorkommen, um es auszuwählen, damit es bearbeitet oder ersetzt werden kann. Sie können mehr als ein Vorkommen auswählen.
Ersetzen	Ersetzt die Suchfolge durch die Ersetzenfolge nur bei den Vorkommen, die im Listenfeld Ergebnisse ausgewählt wurden.
Bearbeiten	Öffnet die Quelle des ausgewählten Vorkommens im Programmblock-Editor.


Dialogfeld PL/SQL V1-Konvertierungsoptionen

Mit dem Dialogfeld PL/SQL V1-Konvertierungsoptionen können Sie festlegen, wie das Dienstprogramm fortfahren soll, wenn es den jeweiligen Typ der unterstützten PL/SQL V1- oder V2-Syntax antrifft: Ihre Voreinstellungen werden über mehrere Aufrufe des Konvertierungsdienstprogramms hinweg gespeichert: entweder in der Registrierung für Microsoft Windows oder in einem UNIX-Profil.

Problemtyp	Liste der V1 oder V2 PL/SQL-Situationen, die von dem Konvertierungsdienstprogramm unterstützt werden:  CHAR ersetzt durch VARCHAR2  Zeichenfolgenlänge für VARCHAR2 erforderlich  Standardausdrücke für OUT und IN OUT nicht zulässig  RETURN erfordert einen Ausdruck  Veraltete vordefinierte Prozeduren ersetzt  Funktion LENGTH gibt NULL für Zeichenfolgen mit der Länge null zurück  Übergabe von NULL an überladenes Unterprogramm wird nicht richtig aufgelöst  Fehlende RETURN-Anweisung in Funktion
Konvertieren	Alle Instanzen des ausgewählten Problemtyps werden automatisch ohne Bestätigung konvertiert.
Alle konvertieren	Mit dieser Option können alle Problemtypen schnell auf Konvertieren eingestellt werden. Das Dienstprogramm konvertiert automatisch den gesamten PL/SQL V1-oder V2-Code ohne Bestätigung.
Ignorieren	Alle Instanzen des ausgewählten Problemtyps werden ignoriert. Um Compiler-Fehler zu vermeiden, müssen Sie den V1-oder V2-Code manuell ändern.
Alle ignorieren	Mit dieser Option werden alle Problemtypen schnell auf Ignorieren eingestellt. Das Dienstprogramm ignoriert alle Problemtypen und führt keine Konvertierung durch. Um Compiler-Fehler zu vermeiden, müssen Sie den V1- oder V2-Code manuell ändern.
Bitte fragen	Wenn diese Option für einen Problemtyp ausgewählt wird, wird jede Instanz dieses Problems individuell im Dialogfeld Konvertierung angezeigt. Aus dem Dialogfeld können Sie dann Konvertieren oder Ignorieren wählen.
Alle fragen	Mit dieser Option werden alle Problemtypen schnell auf Bitte fragen eingestellt. Das Dienstprogramm fordert Sie zur Bestätigung (im Dialogfeld Konvertierung) auf, bevor eine V1 oder V2 PL/SQL-Folge konvertiert wird.
OK	Bestätigt Ihre Auswahlen und schließt das Dialogfeld.
Abbrechen	Bricht Änderungen an dem Modul ab und schließt das Dialogfeld.


Dialogfeld Konvertierung

Mit dem Dialogfeld Konvertierung können Sie den Konvertierungsvorgang von PL/SQL V1 zu V2 interaktiv steuern. Um Optionen für spätere Konvertierungsvorgänge festzulegen, klicken Sie auf Optionen.

Quellbereich	Zeigt die Programmblockquelle an, bei der die Konvertierungsbedingung erkannt wird. Die zu konvertierende Syntax wird hervorgehoben. Sie können innerhalb dieses Bereichs einen Bildlauf nach oben oder unten vornehmen, um die bislang durchgeführte Konvertierung zu überprüfen.
Bedingung:	Die PL/SQL V1- oder V2-Anweisung, die konvertiert werden muß.
Aktion:	Gibt an, was das Konvertierungsdienstprogramm tut, wenn Sie auf Konvertieren klicken.
Erläutern. . .	Zeigt weitere Details über das Problem an und gibt an, was geschieht, wenn Sie die Konvertierung ignorieren.
Konvertieren	Akzeptiert die empfohlene Standardaktion und geht zur nächsten Anweisung.
Alle konvertieren	Konvertiert alle PL/SQL V1-oder V2-Syntaxprobleme im gesamten Modul, wobei dies mehrere Programmblöcke umfassen kann. Alle Standardaktionen werden akzeptiert.
Ignorieren	Konvertiert die PL/SQL V1- oder V2-Anweisung nicht, die im Feld Problem beschrieben wird; geht zur nächsten Anweisung.
Alle ignorieren	Umgeht den Konvertierungsvorgang für das ganze Modul, in dem mehrere Programmblöcke enthalten sein können.
Optionen. . .	Zeigt das Dialogfeld PL/SQL V1-Konvertierungsoptionen an, in dem Sie Optionen zur Steuerung des Konvertierungsprozesses angeben können.


Dialogfeld Zusammenfassung Konvertierung PL/SQL V1

Das Dialogfeld Zusammenfassung Konvertierung PL/SQL V1 enthält Informationen wie:

•	Quellzeilen, die erfolgreich konvertiert wurden

•	Quellzeilen, die ignoriert wurden

• Quellzeilen, die PL/SQL-Compiler-Fehler generiert haben.

Schaltflächen in der Symbolleiste:

Symbol X	Schließt das Dialogfeld.
Symbol ?	Zeigt den Hilfetext zu dem Dialogfeld an.
Bereich Zusammenfassung:

Suchen	Bietet Standardsuchfunktionen für eingeblendete und ausgeblendete Knoten.
Knoten	Ein Knoten für jeden Programmblock in dem Modul. Wenn der Knoten ein Pluszeichen enthält, klicken Sie auf den Knoten, um eine Zusammenfassung dessen zu erhalten, was konvertiert wurde (und wie es konvertiert wurde) und was ignoriert wurde. Wenn ein Knoten leer ist (kein Plus- oder Minuszeichen), war keine Konvertierung für den Programmblock erforderlich. Um Compiler-Fehler zu beheben - oder um die konvertierte Quelle bzw. die ignorierten Elemente zu überprüfen - doppelklicken Sie auf eine Zeile in einem eingeblendeten Knoten. (Sie können auch die Zeile auswählen und Programm [image] Programmblock-Editor auswählen.) Der Editor wird geöffnet, wobei der Cursor bei der ausgewählten Zeile steht. Hinweis:  Nachdem Sie die Quelle mit dem Programmblock-Editor geändert haben, wird der Cursor möglicherweise nicht richtig positioniert, wenn Sie das nächste Mal auf eine Zeile doppelklicken oder die Schaltfläche Bearbeiten verwenden.
Menüpunkte:

Das Menü Programm enthält zwei Optionen:

Programm-block-Editor	Öffnet die Quelle im Programmblock-Editor. Der Cursor steht in der ausgewählten Zeile.
Konvertie-rungs-optionen	Zeigt das Dialogfeld Konvertierungsoptionen an, damit Sie die angegebenen Optionen anzeigen oder ändern können.
Popup-Menü:

Klicken Sie mit der rechten Maustaste, um ein Popup-Menü anzuzeigen.

Bearbeiten	Öffnet die Quelle im Programmblock-Editor. Der Cursor steht in der ausgewählten Zeile.
Erläutern	Zeigt die Online-Hilfe über die Art der Konvertierung an, die für die ausgewählte Zeile erforderlich ist.


Editierfunktionen

  Verwandte Themen

Diese Editierfunktionen werden nur im Programmblock-Editor (und dem Gespeicherten Programmblock-Editor) unterstützt:

Automatisches Ein-/ Ausrücken	Während Sie Code in den Editoren eingeben, werden Zeilen automatisch entsprechend den Syntaxregeln von PL/SQL ein- oder ausgerückt.
Farbige Markierung der Syntax	Schlüsselwörter, Kommentare, Zeichenfolgen und Symbole wie z.B. = und || werden mit verschiedenen Farben dargestellt.
Auswahl von Spalten und Zeilen	Sie können Textspalten und Zeilen mit Quellcode auswählen. Um eine Spalte auszuwählen, drücken Sie die ALT-Taste. Danach klicken und ziehen Sie horizontal. Um eine Zeile auszuwählen, klicken Sie auf dem äußersten linken Rand der Zeile im Quellausschnitt.
Textverarbeitung mit Drag-and-Drop	Der ausgewählte Text kann mit Drag-and-Drop kopiert oder verschoben werden. Um Text zu kopieren, drücken Sie die Strg-Taste und ziehen den ausgewählten Text. Um Text zu verschieben, ziehen Sie einfach den ausgewählten Text.
Zeilen ein-/ausrücken	Mit den Befehlen Einrücken/Ausrücken im Menü Bearbeiten können Sie ausgewählte Quellzeilen ein- oder ausrücken. Sie können Zeilen auch mit TAB und Umschalttaste-TAB ein- und ausrücken.
Mehrere geteilte Ansichten	Sie können bis zu vier separate Ansichten des aktuellen Programmblocks erstellen. Um horizontale Ansichten zu erstellen, setzen Sie den Cursor auf den Bildschirmteiler am oberen Rand der vertikalen Bildlaufleiste. Danach klicken und ziehen Sie den Bildschirmteiler nach unten. Um vertikale Ansichten zu erstellen, setzen Sie den Cursor auf den Bildschirmteiler ganz außen links in der horizontalen Bildlaufleiste. Danach klicken und ziehen Sie den Bildschirmteiler nach rechts. Um eine horizontale oder vertikale Ansicht zu entfernen, doppelklicken Sie auf den Bildschirmteiler, der die Ansichten teilt.
Drucken	Wählen Sie Datei [image] Drucken, um den aktuellen Programmblock zu drucken.
Unbegrenzte Wiederholung der Befehle Rückgängig/Wieder-holen	Mit den Befehlen Rückgängig/Wiederholen im Menü Bearbeiten können Sie Änderungen bis zum letzten Speichernvorgang rückgängig machen bzw. wiederholen.

Hinweis: Diese Funktionen sind nur in Microsoft Windows verfügbar. In UNIX können Sie nur folgende Funktionen ausführen:

•	Aktuellen Programmblock ausführen

•	Ausgewählte Zeilen mit TAB und Umschalttaste-Tab ein- und ausrücken

•	Ausgewählten Text mit Drag-and-Drop verschieben


 Maus im Editor benutzen

  Verwandte Themen

Die folgenden Mausaktionen werden bei der Benutzung des Programmblock-Editors (oder Gespeicherten Programmblock-Editors) in Microsoft Windows unterstützt:

Funktion:	Mausaktion:
Zeichen in einem Bereich auswählen	Klicken und ziehen Sie den Cursor vom ersten Zeichen bis zum letzten Zeichen in dem auszuwählenden Bereich (wird auch bei UNIX unterstützt). Oder Klicken Sie auf das erste Zeichen, drücken Sie die Umschalttaste, und klicken Sie auf das letzte Zeichen in dem auszuwählenden Bereich.
Wort unter Cursor auswählen	Doppelklicken Sie auf das Wort (wird auch in UNIX unterstützt). Oder  Drücken Sie die Strg-Taste, und klicken Sie dann auf das auszuwählende Wort.
Wörter in einem Bereich auswählen	Drücken Sie die Strg-Taste, klicken Sie, und ziehen Sie den Cursor vom ersten Wort bis zum letzten Wort in dem auszuwählenden Bereich.
Zeile auswählen	Setzen Sie den Cursor auf den linken Rand der auszuwählenden Zeile. Klicken Sie, wenn der Cursor die Form eines Pfeils annimmt.
Mehrere Zeilen auswählen	Setzen Sie den Cursor auf den linken Rand der ersten auszuwählenden Zeile. Wenn der Cursor die Form eines Pfeils annimmt, klicken und ziehen Sie den Cursor zur letzten auszuwählenden Zeile.
Textspalten auswählen	Drücken Sie die Alt-Taste, klicken Sie, und ziehen Sie den Cursor von der ersten Spalte bis zur letzten Spalte in dem auszuwählenden Bereich.
Ausgewählten Text verschieben	Markieren Sie zuerst den Text. Danach klicken und ziehen Sie den ausgewählten Text an die gewünschte Stelle (wird auch in UNIX unterstützt).
Ausgewählten Text kopieren	Markieren Sie zuerst den Text. Danach drücken Sie die Strg-Taste, und ziehen Sie den ausgewählten Text an die Stelle, an der eine Kopie stehen soll, und lassen Sie die Maustaste los.
Fenster in zwei horizontale Ansichten teilen	Doppelklicken Sie auf den Bildschirmteiler am oberen Rand der vertikalen Bildlaufleiste. Oder Klicken und ziehen Sie den Bildschirmteiler am oberen Rand der vertikalen Bildlaufleiste.
Fenster in zwei vertikale Ansichten teilen	Doppelklicken Sie auf den Bildschirmteiler am äußersten linken Rand der horizontalen Bildlaufleiste. Oder Klicken und ziehen Sie den Bildschirmteiler am äußersten linken Rand der horizontalen Bildlaufleiste.
Relative Größe von geteilten Ansichten anpassen	Klicken und ziehen Sie den Bildschirmteiler, der die Ansichten teilt.
Geteilte Ansichten entfernen	Doppelklicken Sie auf den Bildschirmteiler, der die Ansichten teilt. Oder Klicken und ziehen Sie den Bildschirmteiler bis zum Rand des Fensters. Um alle vier Ansichten gleichzeitig zu entfernen, doppelklicken Sie auf den Schnittpunkt, an dem die Bildschirmteiler aufeinandertreffen, oder ziehen Sie den Bildschirmteiler in eine beliebige Ecke des Fensters.


Tastatur im Editor benutzen

  Verwandte Themen

Die folgenden Tastaturaktionen werden unterstützt, wenn Sie den Programmblock-Editor (und Gespeicherten Programmblock-Editor) in Microsoft Windows und UNIX verwenden:

Funktion:	Tastenkombination:
Cursor ein Zeichen nach links verschieben	Pfeiltaste nach links
Zeichen auswählen, während Cursor nach links verschoben wird	Umschalttaste + Pfeiltaste nach links
Cursor ein Zeichen nach rechts verschieben	Pfeiltaste nach rechts
Zeichen auswählen, während Cursor nach rechts verschoben wird	Umschalttaste + Pfeiltaste nach rechts
Ausgewählte Zeichen oder Wörter kopieren	Strg + C
Ausgewählte Zeichen oder Wörter ausschneiden	Strg + X
Inhalt der Zwischenablage einfügen	Strg + V
Zeichen rechts neben der Cursorposition löschen bzw. ausgewählte Zeichen oder Wörter löschen	Entf-Taste
Zeichen links neben der aktuellen Cursorposition löschen	Rücktaste
Cursor zum Ende des Programmblocks verschieben	Strg + Ende	(nur Windows)
Cursor an den Anfang des Programmblocks verschieben	Strg + Pos1	(nur Windows)
Quellzeilen von der aktuellen Cursorposition bis zum Ende des Programmblocks auswählen	Strg + Umschalttaste + Ende	(nur Windows)
Quellzeilen von der aktuellen Cursorposition bis zum Anfang des Programmblocks auswählen	Strg + Umschalttaste + Pos1	(nur Windows)
Cursor zum Ende der aktuellen Zeile verschieben	Ende	(nur Windows)
Cursor zum Anfang der aktuellen Zeile verschieben	Pos1	(nur Windows)
Zeichen von der aktuellen Cursorposition bis zum Ende der aktuellen Zeile markieren	Umschalttaste + Ende	(nur Windows)
Zeichen von der aktuellen Cursorposition bis zum Anfang der aktuellen Zeile markieren	Umschalttaste + Pos1	(nur Windows)
Ausgewählte Zeile oder Zeichen rechts neben der aktuellen Cursorposition	Tabulatortaste
Ausgewählte Zeile ausrücken	Umschalttaste + Tabulatortaste
Cursor eine Zeile nach unten verschieben	Pfeiltaste nach unten
Zeile markieren, während der Cursor nach unten verschoben wird	Umschalttaste + Pfeiltaste nach unten
Cursor eine Zeile nach oben verschieben	Pfeiltaste nach oben
Zeile markieren, während der Cursor nach oben verschoben wird	Umschalttaste + Pfeiltaste nach oben
Um die Anzahl von Zeilen, die im Quellausschnitt dargestellt werden, im Programmblock nach unten blättern	Bild-Ab-Taste
Um die Anzahl von Zeilen, die im Quellausschnitt dargestellt werden, im Programmblock nach unten blättern und die Zeilen gleichzeitig markieren	Umschalttaste + Bild-Ab-Taste
Um die Anzahl von Zeilen, die im Quellausschnitt dargestellt werden, im Programmblock nach oben blättern	Bild-Auf-Taste
Um die Anzahl von Zeilen, die im Quellausschnitt dargestellt werden, im Programmblock nach oben blättern und die Zeilen gleichzeitig markieren	Umschalttaste + Bild-Auf-Taste
Letzte Aktion rückgängig machen	Strg + Z	(nur Windows)
Letzte Rückgängig-Aktion wiederherstellen	Strg + Y	(nur Windows)


Ausführbare Routinen DET60 und DEBLD60

Beschreibung  Mit dieser ausführbaren Routine können Sie ein Interpreter-Skript im Stapelmodus ausführen.

Syntax

Bei Microsoft Windows:

det60 [FILE=scriptname.pld]

Bei UNIX:

debld60 [MODE = {batch | line} FILE=scriptname.pld]

Verwendungshinweise:

•	Bei Microsoft Windows wird die Ausführung von Skripts im Stapelmodus aus einer DOS-Eingabeaufforderung nicht unterstützt. Außerdem startet die ausführbare Routine ohne eine File-Option Procedure Builder in einer 32-Bit-Umgebung.

•	Um Procedure Builder unter Windows im Zeilenmodus auszuführen, verwenden Sie Start [image] Programme [image] Forms Developer 6i [image] Procedure Builder -- Zeilenmodus aus der Task-Leiste von Windows.


MODE

Diese Option bestimmt die Methode für die Ausführung des Interpreter-Skripts. Sie muß zusammen mit dem Schlüsselwort FILE verwendet werden.

Optionen

•	Die Option "batch" bestimmt, daß das Interpreter-Skript im Hintergrund ausgeführt wird.

•	Die Option "line" bestimmt, daß das Interpreter-Skript mit der Standardausgabe ausgeführt wird, damit das Skript während der Ausführung angezeigt wird.

Verwendungshinweise  Die Option MODE ist unter Microsoft Windows nicht gültig.


FILE

Diese Option gibt den Namen des auszuführenden Interpreter-Skripts an.

Sie müssen den absoluten oder relativen Pfadnamen der Skriptdatei angeben. Interpreter-Skripts haben standardmäßig die Erweiterung .pld.


Dateibenennungsregeln

Externe Dokumente werden mit einem Dokumenttyp gekennzeichnet, der Hinweise auf deren Inhalt gibt. Für Dokumente innerhalb des Dateisystems werden die folgenden Standarderweiterungen verwendet:

Erweiterung	Inhalt
log	Eine Protokolldatei von Procedure Builder Interpreter.
pld	Ein Interpreter-Skript von Procedure Builder, das eine Kombination aus PL/SQL-Quellcode, Interpreter-Befehlen und SLQ-Anweisungen enthält.
pll	Eine kompilierte PL/SQL-Bibliothek, die zugeordnet oder bearbeitet werden kann.
pls	PL/SQL-Quelltext eines einzelnen Programmblocks.
plx	Eine kompilierte PL/SQL-Laufzeitbibliothek. Sie enthält nur ausführbaren Code.


Editor-Registrierungseintrag (nur Windows 95)

Standardmäßig gibt es keine Einschränkung für die Größe eines Blocks mit PL/SQL-Code, der bearbeitet werden kann. Wenn Sie im Editor zu dem Grenzwert von 50 K zurückgehen möchten, ändern Sie den Eintrag DE60_PLAIN_EDIT im Abschnitt ORACLE in der Windows 95-Registrierung in "1".


Syntaxfehler beim Kompilieren feststellen

Der Programmblock-Editor zeigt beim Kompilieren einen interaktiven Fehlermeldungsausschnitt an. Werden bei der Kompilierung PL/SQL-Syntaxfehler festgestellt, wird der Fehlermeldungsausschnitt eingeblendet, der die Ursache des Fehlers anzeigt.

Doppelklicken Sie im Meldungsausschnitt auf den Fehler, um in der Programmblockquelle zur Fehlerposition zu navigieren. Dies ist die Stelle, an der der PL/SQL-Compiler den Syntaxfehler ansiedelt. Die eigentliche Ursache des Fehlers kann sich jedoch an einer anderen Stelle befinden.

Wenn Sie beispielsweise vergessen haben, eine ausführbare Anweisung mit einem Semikolon abzuschließen, befindet sich der Syntaxfehler laut dem Compiler am Anfang der nächsten Anweisung und nicht am Ende der fehlerhaften Anweisung.


Unterschied zwischen den Befehlen LOAD und INTERPRET

  Verwandte Themen

Mit dem Befehl LADEN importieren und kompilieren Sie eine Datei, die die Definition eines Programmblocks enthält. Diese Datei darf nur PL/SQL-Anweisungen enthalten.

Mit dem Befehl INTERPRET können Sie eine Datei importieren und ausführen, die eine beliebige Kombination aus PL/SQL-Anweisungen, Interpreter-Befehlen und SQL-Anweisungen enthält.


Vergleich zwischen dem Öffnen und Zuordnen einer Bibliothek
Vergleich zwischen dem Zuordnen und Öffnen einer Bibliothek

  Verwandte Themen

Wenn Sie einen Bibliotheks-Programmblock ausführen möchten, müssen Sie die Bibliothek zuordnen. Zugeordnete Bibliotheken werden im Objektnavigator unter dem Knoten Zugeordnete Bibliotheken aufgelistet.

Eine zugeordnete Bibliothek kann nicht bearbeitet werden.  Wenn Sie einen Bibliotheks-Programmblock bearbeiten oder den Inhalt einer zugeordneten Datei ändern möchten, müssen Sie zuerst die Zuordnung aufheben und sie dann öffnen. Geöffnete Bibliotheken werden unter dem Knoten PL/SQL-Bibliotheken im Objektnavigator angezeigt.

Wenn Sie eine Bibliothek öffnen, der Bibliotheken zugeordnet sind, prüft Procedure Builder die Zeitstempel der zugeordneten Bibliotheken. Wenn eine oder mehrere zugeordnete Bibliotheken neuer sind, als die geöffnete Bibliothek, verlieren alle Programmblöcke in der geöffneten Bibliothek ihren kompilierten Status.


Vordefinierte Unterprogramme einfügen

  Verwandte Themen

Sie können Schreibfehler beim Referenzieren vordefinierter Unterprogramme vermeiden, indem Sie den Befehl Namen einfügen oder Argumente einfügen aus dem Popup-Menü Navigator verwenden.

Bei der Verwendung von Argumente einfügen werden der Unterprogrammname sowie die erforderlichen Parameter eingefügt. Ersetzen Sie die Parametervorlagen durch entsprechende konkrete Werte.


Vordefinierte Unterprogramme schnell finden

Verwenden Sie das Feld Suchen in der rechten oberen Ecke des Objektnavigators, um vordefinierte Unterprogramme schnell zu finden. Während Sie den Namen des Unterprogramms in das Feld Suchen eingeben, blendet der Navigator Knoten ein, um so schrittweise Übereinstimmungen mit der Suchzeichenkette zu suchen.

Mit dieser Funktion können Sie beim Erstellen von Programmblöcken Zeit sparen.


Gleitkommata unter Microsoft Windows 3.1 über ORA_FFI übergeben

Wenn die C-Funktionen, die Sie mit Hilfe von ORA_FFI aufrufen möchten, mit einem ANSI C-Compiler kompiliert wurden, sollten alle Gleitkommata als Doppelzeichen deklariert sein. Bei einem K&R C-Compiler können sowohl Gleitkommata als auch Doppelzeichen verwendet werden.


CHAR-Daten mit ORA_FFI an eine C-Funktion übergeben

Wenn Sie CHAR-Daten an eine C-Funktion übergeben möchten, sollten Sie diese mit mindestens so vielen Zeichen initialisieren wie die C-Funktion in die Daten schreiben wird. Sie sollten beispielsweise anstelle von:

  my_string VARCHAR2(20);

folgende Angabe verwenden:

  my_string VARCHAR2(20) := '20 characters here  ';


Ordnernamen in Aufrufen an die Funktion LOAD_LIBRARY abschließen

Wenn Sie mit Hilfe des vordefinierten Unterprogramms ORA_FFI.LOAD_LIBRARY den Speicherort einer Bibliothek angeben, sollten Sie die Ordnerangabe unter Microsoft Windows unbedingt mit einem abschließenden umgekehrten Schrägstrich (\) beenden. Bei UNIX-Plattformen sollten Sie den Verzeichnispfad mit einem Schrägstrich (/) abschließen.

Beispiel für Windows:

  libhandle := ORA_FFI.LOAD_LIBRARY('c:\libraries\', 'mylib.dll');


Debugging-Arbeitsbereich zentralisieren

Fügen Sie einen Navigator-Ausschnitt in Interpreter ein, um einen zentralen Debugging-Arbeitsbereich zu schaffen. Der Navigator-Ausschnitt wird in der Mitte des Interpreter-Fensters, zwischen Quell- und Interpreter-Ausschnitt eingefügt. Sie können die Ausschnitte mit Hilfe der Bildschirmteiler nach Wunsch skalieren.

So können Sie die Programmblockquelle, lokale Variablenwerte und die Interpreter-Ausgabe beim Debuggen in einem Fenster anzeigen.


Andere STEP-Optionen verwenden

  Verwandte Themen

Beim Debuggen eines großen Programmblocks mit mehreren Referenzen auf andere Programmblöcke können Sie mit Hilfe der Befehle Über und Heraus Verzweigungen in verschachtelte Unterprogramme vermeiden.

Mit dem Befehl Go läßt sich die Programmblockausführung bis zu einem bestimmten Punkt im Programmblock fortsetzen.

Die Verwendung des Befehls Hinein kann beim Debuggen umfangreicher, komplexer Programmblöcke sehr zeitaufwendig sein, da dieser Befehl die Ausführung bei jeder ausführbaren Zeile im Code unterbricht.


Bedingte Programmstops mit Hilfe von Debug-Triggern implementieren

Sie können einen Programmstop erstellen, der nur unter bestimmten Bedingungen ausgelöst wird. Erstellen Sie in der ausführbaren Zeile der Programmblockquelle einen Debug-Trigger, und erstellen Sie im PL/SQL-Block mit Hilfe des vordefinierten Unterprogramms DEBUG eine Bedingung wie die folgende:

IF Debug.Getn ('my_sal') > 5000 THEN

  RAISE Debug.Break;

END IF;

Bei diesem Beispiel wird die Funktion Debug.Getn zum Abrufen eines Werts für die lokale Variable 'my_sal' verwendet. Erst wenn der zurückgegebene Wert 5000 übersteigt, wird die Exception Debug.Break ausgelöst und erstellt einen Programmstop.

Bedingte Programmstops sparen beim Debuggen Zeit, da die Ausführung des Programmsblocks nur unter bestimmten, festgelegten Bedingungen ausgesetzt wird.


Interpreter-Aktivitäten in einer Protokolldatei speichern

Zeichnen Sie sämtliche Interpreter-Aktivitäten einer Sitzung in einer Protokolldatei auf. Protokolldateien können sich als sehr hilfreich erweisen, wenn Sie Ihre Aktionen zurückverfolgen müssen. Außerdem können Sie Informationen aus der Interpreter-Protokolldatei ausschneiden und direkt in Interpreter oder den Programmblock-Editor einfügen, und damit die erneute Eingabe komplexer Befehle oder Abfragen vermeiden sowie Debug-Trigger oder Programmblöcke erneut erstellen.


Debug-Aktionen speichern

Debug-Aktionen, wie beispielsweise Trigger, werden beim Beenden einer Debugging-Sitzung nicht gespeichert. Damit Sie komplexe Debug-Aktionen in nachfolgenden Sitzungen nicht erneut eingeben müssen, sollten Sie sie in einer Interpreter-Protokolldatei speichern.

Starten Sie vor dem Debugging-Prozeß eine Protokollierungssitzung. Damit Ihre Debug-Aktionen aufgezeichnet werden, sollten Sie sie unter Verwendung der Befehle BREAK und TRIGGER an der Interpreter-Eingabeaufforderung PL/SQL> eingeben. In der Interpreter-Protokolldatei werden nur Aktivitäten aufgezeichnet, die direkt in Interpreter eingegeben werden.


Vordefinierte Prozedur TEXT_IO verwenden

Debug-Trigger können im Hintergrund ausgeführt werden, wodurch Sie die Ursache von Laufzeitfehlern feststellen können, ohne einen Programmblock schrittweise ablaufen zu lassen. Dabei lassen Sie die Werte der Variablen mit Hilfe der vordefinierten Prozedur TEXT_IO in eine Datei ausgeben, anstatt einen Programmstop einzurichten und die Variablenwerte wiederholt im Aufrufstapel des Objektnavigators zu überprüfen.

Beispiel für die Anwendung im PL/SQL-Block eines Debug-Triggers:

print1 := Debug.Getc ('emp_name');

print2 := Debug.Getn 'sal');

Text_IO.Putf ('%s Salary is %d', print1, print2);


Startskripts verwenden

  Verwandte Themen

Wenn beim Starten einer Procedure Builder-Sitzung automatisch ein Interpreter-Skript ausgeführt werden soll, verwenden Sie die Befehlszeilenoption FILE=scriptname. Das Skript kann eine beliebige Kombination aus Interpreter-Befehlen, SQL-Anweisungen und PL/SQL-Quellcode enthalten.

Startskripts können Routinevorgänge durchführen, beispielsweise die Anmeldung bei einer Datenbank vornehmen oder mehrere Programmblöcke laden.


Empfohlener Speicherort für Programmblöcke zum Erzielen optimaler Leistung

  Verwandte Themen

Sie sollten für eine Anwendung spezifische, kleinere Programmblöcke mit der eigentlichen Anwendung speichern. Dazu gehören Programmblöcke, die nicht von mehreren Anwendungen gemeinsam genutzt werden. Diese Programmblöcke werden beim Starten der Anwendung in den Speicher geladen.

Größere Programmblöcke oder Programmblöcke, die von mehreren Anwendungen gemeinsam genutzt werden, sollten in Bibliotheken gespeichert werden. Bibliotheken lassen sich mehreren Anwendungen zuordnen, wodurch Code gemeinsam genutzt werden kann. In Bibliotheken gespeicherte Programmblöcke werden erst dann in den Speicher geladen, wenn die Anwendung sie aufruft.

Programmblöcke sollten in der Datenbank gespeichert werden, wenn sie Datenbankobjekte (etwa Tabellen) referenzieren. Dadurch wird der Datenverkehr im Netzwerk zwischen der Anwendung und dem Server verringert. In der Datenbank gespeicherte Programmblöcke dürfen keine Verweise auf client-seitige vordefinierte Prozeduren wie TEXT_IO, ORA_FFI etc. enthalten.


Größe einer Bibliothek verringern

Bei der Entwicklung:   Ist Speicherplatz ausschlaggebend, verwenden Sie den Befehl SAVE mit dem Schlüsselwort NODIANA, um nur Quelle und PCODE der Bibliothek zu speichern. Ist die Zeit der Hauptfaktor, verwenden Sie den Befehl SAVE ohne Schlüsselwörter, um alle Komponenten der kompilierten Bibliothek zu speichern.

Zur Laufzeit:   Ist Speicherplatz ausschlaggebend, verwenden Sie den Befehl SAVE mit den Schlüsselwörtern NODIANA und NOSOURCE, um eine Laufzeitbibliothek zu erstellen. Als Alternative können Sie auch den Befehl GENERATE verwenden. Bei beiden Möglichkeiten wird eine Datei mit der Erweiterung .plx erstellt, die anzeigt, daß es sich um eine reine Laufzeitbibliothek handelt. Zur Laufzeit sucht das System zuerst nach .plx-Dateien, bevor nach .pll-Dateien gesucht wird.


Pakete in Bibliotheken speichern

In Bibliotheken gespeicherte Programmblöcke werden von einer Anwendung in den Speicher geladen, wenn die Anwendung den Programmblock aufruft. Denken Sie daran, daß auch ein Paket ein Programmblocktyp ist. Wenn eine Anwendung ein in einer zugeordneten Bibliothek gespeichertes vordefiniertes Unterprogramm aufruft, wird das GANZE Paket, und nicht nur das aufgerufene Unterprogramm, in den Speicher geladen. Die Anwendung ruft in diesem Fall praktisch das Paket auf.


Große Pakete aufteilen, die die maximale Programmblockgröße überschreiten

Die Gesamtgröße eines kompilierten Programmblocks (einschließlich Quelle, PCODE und DIANA) darf unter Microsoft Windows 64 KB nicht übersteigen. Dies verhindert oftmals die Implementierung großer PL/SQL-Pakete. Um dieses Problem zu umgehen, können Sie große Pakete in mehrere kleinere Pakete unterteilen.

Damit Sie beim Aufrufen nicht mit verschiedenen Paketnamen umgehen müssen, können Sie große Pakete entsprechend dem nachfolgenden Beispiel aufteilen. Hier wird angenommen, daß Sie über ein Paket namens "reallybig" verfügen, das unter einem anderen Betriebssystem erstellt und kompiliert wurde:

/* package specification */
package reallybig is
  procedure bp1;
. . .
  procedure bpN;
end reallybig;

/* package body */
package body reallybig is
  procedure bp1 is
    begin
    /* bp1 stuff */
    end;
...
  procedure bpN is
    begin
    /* bpN stuff */
    end;
end reallybig;

Sie möchten das Paket "reallybig" jetzt unter Windows verwenden, es überschreitet jedoch die Maximalgröße von 64 KB. Sie können den Inhalt des Paketrumpfs nun ganz oder teilweise in eines oder mehrere Pakete unterteilen, ohne daß sich dies auf die Spezifikation des ursprünglichen Pakets auswirkt. Damit vermeiden Sie, daß sich die Unterteilung auf Anwendungen auswirkt, die im ursprünglichen Paket enthaltene Unterprogramme aufrufen. Ihr Sekundärpaket müßte ungefähr folgendermaßen aussehen:

/* body of secondary package*/
package body helper1 is
  procedure bp1 is
    begin
    /* bp1 stuff */
    end;
. . .
  procedure bp2 is
    begin
    /* bp2 stuff */
    end;
. . .
end helper1;

Die einzige Änderung, die Sie am ursprünglichen Paket "reallybig" vornehmen, besteht darin, daß Sie im Paketrumpf die Programmblöcke referenzieren, die Sie in das Sekundärpaket verschoben haben:

/* package body */
package body reallybig is
  procedure bp1 is
    begin
    helper1.bp1;
    end;
. . .
  procedure bp2 is
    begin
    helper1.bp2;
    end;
. . .
end reallybig;


Programmblöcke aus einer geöffneten Bibliothek ausführen

Problem:   Beim Versuch, einen Bibliothek-Programmblock auszuführen, wird die Fehlermeldung "Prozedur nicht definiert" erhalten.

Lösung:   Stellen Sie sicher, daß die Bibliothek, aus der Sie den Programmblock aufrufen, nicht im Objektnavigator geöffnet ist. Um einen Bibliothek-Programmblock aufzurufen, ordnen Sie zuerst die Bibliothek zu, und rufen Sie dann den Programmblock auf. Wird die Bibliothek im Navigator unter dem Knoten Bibliotheken aufgelistet, speichern und schließen Sie die Bibliothek, und ordnen Sie sie dann mit Hilfe von Datei [image] Bibliothek zuordnen zu.


Programmblöcke auf dem Server erneut kompilieren

Problem:   Beim Versuch, einen Programmblock auf den Server zu verschieben, kann dieser jetzt nicht kompilieren.

Lösung:   Stellen Sie sicher, daß der Programmblock keine Referenzen auf client-seitige vordefinierte Prozeduren enthält. Dazu zählen auch alle Programmblöcke, die im Knoten Vordefinierte Prozeduren des Objektnavigators enthalten sind. Da diese Prozeduren nicht auf dem Server definiert sind, kann der Compiler Verweise auf diese Prozeduren nicht auflösen. Programmblöcke, die client-seitige vordefinierte Prozeduren referenzieren, sollten auf dem Client belassen werden.


Validierung von Programmblöcken wiederherstellen

Problem:   Die Fehlermeldung "Name von Prozedurrumpf wurde ungültig gemacht. " wurde ausgegeben.

Lösung:   Falls einer oder mehrere Ihrer Programmblöcke Objekte in einer Datenbank referenzieren, sich selbst jedoch auf dem Client befinden, werden diese Programmblöcke bei der Abmeldung von dieser Datenbankinstanz auf ungültig gesetzt, da die Verweise auf die Datenbankobjekte nicht mehr aufgelöst werden können. Stellen Sie also sicher, daß Sie bei der Datenbank angemeldet sind, in der sich die referenzierten Objekte befinden.


Programmblöcke kompilieren, die "nicht definierte Prozeduren" referenzieren

Problem:   Ein Kompilierungsfehler mit dem Wortlaut "Name ist keine Prozedur oder ist nicht definiert" wurde ausgegeben, obwohl dies nicht richtig ist.

Lösung:   Überprüfen Sie den Knoten Programmblöcke im Objektnavigator. Ist der betreffende Programmblock eine Funktion, überprüfen Sie, ob Sie sie korrekt aufgerufen haben. Eine Funktion gibt einen Wert zurück, der entweder einer lokalen Variablen zugeordnet oder als Argument für ein anderes Unterprogramm verwendet wird, dessen Argumenttyp mit dem Rückgabetyp der Funktion übereinstimmt. Wenn Sie eine Funktion aufrufen, ohne ihren Rückgabetyp zu steuern, glaubt der Compiler, Sie hätten stattdessen eine Prozedur aufgerufen. Wenn der Compiler dann feststellt, daß keine Prozedur mit diesem Namen vorhanden ist, gibt er eine Fehlermeldung aus.

Handelt es sich bei dem Programmblock um eine Prozedur oder eine korrekt aufgerufene Funktion, kontrollieren Sie, ob sich die Spezifikation des Programmblocks geändert hat. Wenn für die alte Spezifikation beispielsweise ein Argument des Typs NUMBER erforderlich war und die Spezifikation seither geändert wurde, so daß jetzt ein Argument des Typs CHAR benötigt wird, können sämtliche Aufrufe an die alte Spezifikation nicht aufgelöst werden.


Programmblöcke kompilieren, die Datenbankobjekte referenzieren

Problem: Beim Versuch, Programmblöcke zu kompilieren, die Datenbankobjekte referenzieren, werden viele Kompilierungsfehler ausgegeben.

Lösung:   Stellen Sie sicher, daß Sie bei der Datenbank angemeldet sind, in der sich die in den Programmblöcken referenzierten Objekte befinden. Außerdem benötigen Sie die entsprechenden Datenbankberechtigungen für die referenzierten Objekte. Melden Sie sich bei der Datenbank an, und versuchen Sie dann erneut, den bzw. die Programmblöcke zu kompilieren.


Lokale Variablen beim Debuggen ändern

Problem:   Der Wert einer lokalen Variablen wurde geändert, doch der alte Wert ist weiterhin vorhanden, wenn die Ausführung des Programmblocks fortgesetzt wird.

Lösung:   Wenn Sie den Wert einer lokalen Variablen im Objektnavigator bearbeiten, müssen Sie auf eine freie Stelle im Navigator klicken, um den Bearbeitungsmodus zu beenden und den neuen Wert einzustellen.


Untergeordnete Interpreter-Eingabeaufforderung entfernen

Problem:    Nach Beginn der Eingabe in die Interpreter-Befehlszeile wird nach Drücken der Eingabetaste "+>" angezeigt.

Lösung:    Dies ist die untergeordnete Eingabeaufforderung von Interpreter. Wenn Sie versehentlich die Eingabetaste drücken, bevor Sie eine Anwendung beendet haben (etwa bevor Sie das Semikolon am Ende einer PL/SQL-Anweisung eingegeben haben), wird die untergeordnete Eingabeaufforderung angezeigt. Interpreter zeigt die untergeordnete Eingabeaufforderung an, damit Sie mehrere Zeilen eingeben können, bevor Sie einen Befehl, eine SQL-Anweisung oder eine PL/SQL-Anweisung ausführen.

Sie können entweder die Eingabe fortsetzen (und beispielsweise das abschließende Semikolon eingeben, um die Anweisung auszuführen) oder die untergeordnete Eingabeaufforderung entfernen, indem Sie den Befehl Neuer Prompt aus dem Popup-Menü im Interpreter-Ausschnitt auswählen.


Auf Variablen in entfernten Paketen zugreifen

Problem:  Auf dem Server wurde ein Paket erstellt. Dieses Paket enthält eine Variable, die in der Paketspezifikation definiert ist.  Der client-seitige Programmblock, der auf die Variable zugreift, kann nicht erfolgreich kompiliert werden. Die Fehlermeldung "Implementierungeinschränkung: '<package_name.variable_name>':  Kein direkter Zugriff auf Variable oder Cursor des entfernten Pakets" wird ausgegeben.

Lösung: Erstellen Sie eine Funktion, die den Wert der Variablen zurückgibt.


PL/SQL-Exceptions verarbeiten

Exceptions werden zur Laufzeit ausgelöst, wenn in einem PL/SQL-Unterprogramm ein Fehler festgestellt wird. Neben den in PL/SQL enthaltenen Exceptions verfügt Oracle außerdem über viele eigene, vordefinierte Exceptions.

Damit Exceptions bei ihrer Auslösung erfaßt werden, müssen Sie Unterbrechungsroutinen für Exceptions im folgenden Format in Ihre PL/SQL-Unterprogramme aufnehmen:

...

EXCEPTION

  WHEN exception_name THEN

    statements

END;

Hierbei steht exception_name für den Namen der ausgelösten Exception, und statements stellt eine Gruppe von PL/SQL-Anweisungen für die Ausführung einer bestimmten Aktion dar.

Sie können jede einzelne Exception anhand des Namens verarbeiten, haben aber auch die Möglichkeit, alle Exceptions allgemein zu verarbeiten. Dazu verwenden Sie folgendes Format:

...

EXCEPTION

  WHEN OTHERS THEN

    statements

END;

Sie können auch eine Kombination aus mehreren speziellen Unterbrechungsroutinen und einer allgemeinen Unterbrechungsroutine verwenden. In diesem Fall muß die allgemeine Unterbrechungsroutine WHEN OTHERS zuletzt angegeben werden.

Durch die Verwendung der allgemeinen Unterbrechungsroutine WHEN OTHERS stellen Sie sicher, daß alle Exceptions zur Laufzeit verarbeitet werden.

Weitere Informationen über PL/SQL-Exceptions finden Sie im Handbuch PL/SQL User's Guide and Reference.


Fehlerbehandlung in PL/SQL APIs

Wenn ein in PL/SQL integriertes System generiert wird, müssen häufig PL/SQL APIs zu der in C implementierten Funktionalität konstruiert werden. (Diese APIs werden auch als "Interface C Definitions", "ICD"s oder "PL/SQL- Bindungen zu C" bezeichnet.) Eine der Herausforderungen für die Programmierer beim Generieren von ICDs besteht in der Fehlerbehandlung. Typischerweise sind die Lösungen zur Fehlerbehandlung in C und PL/SQL recht unterschiedlich. Bei der typischen C-Strategie werden Fehlercodes zurückgegeben und geprüft. Bei PL/SQL werden jedoch Exceptions ausgelöst und Fehlerbehandlungsroutinen implementiert, die die Exceptions wie gewünscht abfangen.

Wie soll der C-Fehlerstatus auf die PL/SQL-Seite weitergeleitet werden? Eine ideale Lösung bestünde darin, eine Exception auf der PL/SQL-Seite auszulösen und den C-Fehlerstatus in Form von Parametern an die Exception zu übergeben. Bedauerlicherweise unterstützt PL/SQL keine parametrisierten Exceptions, so daß diese Lösung nicht durchführbar ist. Die weiteren Möglichkeiten sind:

1.  C-Fehlerstatus wegwerfen und PL/SQL nicht über die Probleme informieren.

2.  C-Fehlerstatus wegwerfen und eine Exception auslösen.

3.  C-Fehlerstatus behalten, eine Exception auslösen und eine PL/SQL-API für den Zugriff auf den C-Fehlerstatus bereitstellen.

Lösung 1 ist nicht wünschenswert, weil sie einen maximalen Informationsverlust darstellt. Lösung 2 könnte mit einem relativ geringen Informationsverlust implementiert werden, wenn eine Exception für jeden möglichen C-seitigen Fehlercode definiert würde. Dies ist jedoch unpraktisch und nicht nahtlos erweiterbar. (Während Fehlercodes hinzugefügt werden, muß die entsprechende PL/SQL-Paketspezifikation geändert werden, um zusätzliche Exceptions zu definieren - dies wiederum macht PL/SQL-Codes ungültig, die von der geänderten Spezifikation abhängig sind, so daß alle abhängigen Codes neu kompiliert werden müssen.) Somit bleibt also nur Lösung 3.

Das Paket TOOL_ERR definiert und implementiert die PL/SQL API auf den Fehlerstatus, der von Tool-Services verwaltet wird, die in C implementiert sind. Die API definiert eine "Fehlerstapel"-Abstraktion (dieser Fehlerstapel wird dem "System"-Fehlerstapel zugeordnet, der in Tools Common Area definiert ist). Jedes Element in dem Fehlerstapel besteht aus einem Code und einer zugehörigen formatierten Meldung. Fehler in dem Stapel sind von 0 (ältester Fehler) bis N-1 (letzter Fehler) indiziert, wobei N die Anzahl von Fehlern darstellt, die momentan in dem Stapel vorhanden sind. Standardmäßig bearbeiten die meisten Services den letzten Fehler in dem Stapel.


Umgebungsvariable NLS_DATE_FORMAT festlegen (nur Windows)

Um zu verhindern, daß die Funktionen TO_CHAR und TO_DATE bei der Arbeit mit Datumsvariablen benutzt werden, können Sie den Standardwert der Umgebungsvariablen NLS_DATE_FORMAT wie folgt ändern:

•	Erstellen Sie einen Registrierungseintrag NLS_DATE_FORMAT, und weisen Sie diesem eine gültige Formatmaske zu, z.B. NLS_DATE_FORMAT = "MM/DD/YYYY".

•	Ändern Sie den Wert NLS_DATE_FORMAT während der Sitzung mit dem Befehl ALTER SESSION SET NLS_DATE_FORMAT.


Objekte erstellen

So erstellen Sie ein Objekt:

1	Wählen Sie den Knoten für den Typ des zu erstellenden Objekts (z.B. Programmblöcke oder Bibliotheken).

2	Klicken Sie in der Symbolleiste auf [image], oder wählen Sie Navigator [image] Erstellen aus dem Menü.

Wenn der Knoten leer ist, können Sie auf den Knoten doppelklicken, um ein neues Objekt dieses Typs zu erstellen.


Objekte auswählen

So wählen Sie ein Objekt aus:

Klicken Sie einmal auf das Objektsymbol oder den Objektnamen.

Klicken Sie mit gedrückter Umschalttaste, um mehrere Objekte in einem zusammenhängenden Bereich auszuwählen. Sie können auch mit gedrückter Strg-Taste klicken, um die Auswahl auf mehrere Objekte auszuweiten, die nicht in einem zusammenhängenden Bereich stehen.


Objekte neu anordnen

So ordnen Sie ein Objekt neu an:

Klicken Sie auf das Objekt, und ziehen Sie es an die gewünschte Stelle innerhalb der Objekthierarchie.

Objekte können nicht bei allen Knoten neu angeordnet werden. So werden die Objekte in dem Knoten Programmblöcke z.B. in alphabetischer Reihenfolge aufgeführt.


Objekte suchen

So suchen Sie nach einem Objekt:

1	Geben Sie den Namen des gesuchten Objektes ganz oder teilweise in das Textfeld Suchen ein.

Sobald Sie mit der Eingabe beginnen, startet Procedure Builder eine inkrementelle Suche in Abwärtsrichtung ausgehend vom Beginn des Objektnavigators, wobei zur Anzeige der aktuellen Position gegebenenfalls Knoten eingeblendet werden. Die inkrementelle Suche wird fortgesetzt, bis Sie die Eingabe beenden.

2	Klicken Sie auf [image] oder [image], um das nächste bzw. vorherige Vorkommen der Suchkriterien im Objektnavigator zu suchen.

Hinweis: Derzeit werden Stellvertreterzeichen nicht unterstützt.


Objekte löschen

So löschen Sie ein Objekt:

1	Wählen Sie den zu löschenden Objektknoten aus.

2	Klicken Sie in der Symbolleiste auf [image], oder wählen Sie Navigator [image] Löschen aus dem Menü.

Je nach dem zu löschenden Objekt werden Sie mit einer Meldung aufgefordert, den Löschenvorgang zu bestätigen.


Knoten einblenden

So blenden Sie einen Knoten ein und zeigen die erste Ebene der untergeordneten Knoten an:

Klicken Sie auf das Pluszeichen (+) neben dem Knoten.

So blenden Sie einen Knoten ein und zeigen alle untergeordneten Objekte in dem Knoten an:

1	Wählen Sie einen ausgeblendeten Knoten aus.

2	Klicken Sie auf die Schaltfläche [image] in der Symbolleiste, oder wählen Sie Navigator [image] Alles einblenden aus dem Menü.

Hinweis:  Bei Auswahl von Alles einblenden werden die Knoten für die Oracle8-Datentypen und -Attribute nicht rekursiv eingeblendet. Wenn z.B. ein Attribut manager mit dem Typ emp_typ ein untergeordneter Typ eines anderen Typs emp_typ ist, wird das Attribut manager durch Auswahl von Alles einblenden nicht eingeblendet.


Knoten ausblenden

So blenden Sie einen Knoten aus und verbergen die erste Ebene mit untergeordneten Knoten:

Klicken Sie auf das Minuszeichen (-) neben einem Knoten.

So blenden Sie einen Knoten aus und verbergen alle untergeordneten Objekte:

1	Wählen Sie einen eingeblendeten Knoten aus.

2	Klicken Sie auf [image] in der Symbolleiste, oder wählen Sie Navigator [image] Alles ausblenden aus dem Menü.


Lesezeichen hinzufügen

So fügen Sie ein Lesezeichen hinzu:

1	Wählen Sie den Knoten aus, den Sie mit einem Lesezeichen versehen möchten.

2	Wählen Sie Navigator [image] Lesezeichen hinzufügen aus dem Menü.

Hinweis:  Sie können nur ein Lesezeichen im Objektnavigator hinzufügen. Jedes nachfolgend erstellte Lesezeichen ersetzt das zuvor eingefügte Lesezeichen.


Zu einem Lesezeichen gehen

So gehen Sie zu einem Lesezeichen:

Wählen Sie Navigator [image] Gehe zu Lesezeichen aus dem Menü.


Interpreter öffnen

So öffnen Sie den Interpreter:

Wählen Sie Programm [image] PL/SQL-Interpreter.


Programmblöcke im Interpreter ausführen

  Beispiel

So führen Sie einen Programmblock im Interpreter aus:

Geben Sie den Namen des Programmblocks gefolgt von einem abschließenden Semikolon (;) an der Eingabeaufforderung PL/SQL> ein.

Wenn für den Programmblock Argumente angegeben werden müssen, setzen Sie diese in Klammern. Drücken Sie die Eingabetaste.

Wenn die untergeordnete Eingabeaufforderung (+>) angezeigt wird, haben Sie möglicherweise vergessen, das abschließende Semikolon einzugeben. Nehmen Sie die Eingabe jetzt vor, und drücken Sie die Eingabetaste erneut.


Beispiel: Programmblöcke im Interpreter ausführen

So führen Sie eine Prozedur mit der Bezeichnung hello_world aus:

PL/SQL> hello_world;

So führen Sie eine Prozedur mit der Bezeichnung printout aus, bei der ein numerisches Argument angegeben werden muß.

PL/SQL> printout(5);


Navigator-Ausschnitt verbergen bzw. anzeigen

So verbergen Sie den Navigator-Ausschnitt bzw. zeigen ihn an:

1	Stellen Sie sicher, daß Interpreter das aktive Fenster ist.

2	Wählen Sie Ansicht [image] Navigator-Ausschnitt.

Dieser Vorgang ist nur im nicht-modalen Interpreter gültig.


Ausschnitte im Interpreter skalieren

So skalieren Sie einen Ausschnitt im Interpreter:

1	Setzen Sie den Cursor so über den Bildschirmteiler, daß er die Form eines Fadenkreuzes (+) annimmt.

Sie können den Bildschirmteiler im Ausschnittbereich des Fensters oder innerhalb der Bildlaufleiste auf der rechten Fensterseite auswählen.

2	Klicken und ziehen Sie den Cursor nach oben oder unten an die gewünschte Stelle.

3	Lassen Sie die Maustaste los, um die neue Ausschnittgröße festzulegen.


Procedure Builder-Fehlermeldungen

Dieser Abschnitt beschreibt die Procedure Builder-Fehlermeldungen. Die Fehler werden in der Reihenfolge der Fehlercodenummern aufgeführt.

PDE-ABP002:	Programmstop wegen Kompilierungsfehler im Triggerrumpf nicht installiert.

 Ursache:	Der Triggerrumpf enthält ein ungültiges PL/SQL-Konstrukt.

 Maßnahme:	Korrigieren Sie den Fehler im PL/SQL-Konstrukt, bevor Sie den Editor    schließen.

PDE-ACX003:	Unzulässiger Versuch, die Ausführung im Debug-Trigger zu unterbrechen.

 Ursache:	Sie haben DEBUGSUSPEND innerhalb des Rumpfs eines Debug-Triggers aufgerufen, dies ist jedoch nicht zulässig.

 Maßnahme:	Löschen Sie den Aufruf von DEBUGSUSPEND aus dem Rumpf des Debug-Triggers.

PDE-AST001	STEP-Vorgang abgebrochen - kein PL/SQL-Code in Ausführung.

 Ursache:	Sie wollten die PL/SQL-Ausführung mit Hilfe des Befehls STEP fortsetzen, doch es war zu diesem Zeitpunkt kein PL/SQL-Programmblock vorhanden, dessen Ausführung unterbrochen war.

 Maßnahme:	Wenn Sie den Befehl STEP verwenden möchten, müssen Sie einen PL/SQL-Programmblock ausführen und seine Ausführung mit Hilfe einer Debug-Aktion unterbrechen. Weitere Informationen dazu finden Sie unter dem Thema Über Debug-Aktionen.

PDE-ATR003	Trigger wurde wegen eines Kompilierungsfehlers im Triggerrumpf nicht installiert.

 Ursache:	Der Triggerrumpf enthält ein ungültiges PL/SQL-Konstrukt.

 Maßnahme:	Korrigieren Sie den Fehler in dem PL/SQL-Konstrukt, bevor Sie den Editor schließen.

PDE-CAT001	In ATTACH-Befehl wurde keine Bibliothek angegeben.

 Ursache:	Sie haben den Befehl ATTACH eingegeben, um eine Bibliothek zuzuordnen, haben jedoch keinen Bibliotheksnamen angegeben.

 Maßnahme:	Überprüfen Sie die Syntax des Befehls ATTACH. Weitere Informationen dazu finden Sie unter ATTACH. Geben Sie den Befehl erneut ein, und geben Sie dabei den Namen der zuzuordnenden Bibliothek an.

PDE-CAT002	Kann <Dateiname> im Dateisystem nicht finden.

 Ursache:	Sie haben den Befehl ATTACH eingegeben, um eine im Dateisystem befindliche Bibliothek zuzuordnen, doch der angegebene Dateiname wurde nicht gefunden.

 Maßnahme:	Überprüfen Sie die Schreibweise des angegebenen Dateinamens, und geben Sie den Befehl erneut ein.

PDE-CAT003	In ATTACH-Befehl wurde kein Namensbereich angegeben.

 Ursache:	Sie haben den Befehl ATTACH mit dem Schlüsselwort NAMESPACE eingegeben, um eine Bibliothek einem Namensbereich zuzuordnen, haben jedoch keinen bestehenden Namensbereich angegeben.

 Maßnahme:	Geben Sie den ATTACH-Befehl erneut mit einem bestehenden Namensbereich ein.

PDE-CAT004	In ATTACH-Befehl wurden zu viele Speicherort-Optionen angegeben.

 Ursache:	Sie haben den Befehl ATTACH mit zu vielen Speicherort-Optionen (BEFORE, AFTER, START, END) angegeben.

 Maßnahme:	Geben Sie den Befehl ATTACH mit nur einer Speicherort-Option erneut ein.

PDE-CAT005	Kann <Bibliotheksname> in Datenbank nicht finden.

 Ursache:	Sie haben den Befehl ATTACH eingegeben, um eine in der Datenbank befindliche Bibliothek zuzuordnen, doch entweder wurde der angegebene Name nicht gefunden oder es besteht momentan keine Verbindung zur Datenbank.

 Maßnahme:	Überprüfen Sie die Schreibweise des angegebenen Bibliotheksnamens, kontrollieren Sie die Datenbankverbindung, und geben Sie den Befehl erneut ein.

PDE-CAT006	Kann <Bibliotheksname> in Datenbank oder Dateisystem nicht finden.

 Ursache:	Sie haben den Befehl ATTACH ohne Speicherortangabe eingegeben, um eine Bibliothek zuzuordnen, doch der angegebene Name wurde weder im Dateisystem noch in der Datenbank gefunden.

 Maßnahme:	Überprüfen Sie die Schreibweise des angegebenen Bibliotheksnamens, und geben Sie den Befehl erneut ein.

PDE-CAT007	Namensbereich <Name> wurde nicht gefunden.

 Ursache:	Sie haben den Befehl ATTACH mit dem Schlüsselwort NAMESPACE angegeben, um eine Bibliothek einem Namensbereich zuzuordnen, der angegebene Namensbereich konnte jedoch nicht gefunden werden.

 Maßnahme:	Prüfen Sie die Schreibweise des angegebenen Namensbereichs. Geben Sie den ATTACH-Befehl erneut mit einem bestehenden Namensbereich an.

PDE-CBR001	Programmstop wegen eines Kompilierungsfehlers im Triggerrumpf nicht eingerichtet.

 Ursache:	Sie haben ein ungültiges PL/SQL-Konstrukt in den Triggerrumpf eingegeben.

 Maßnahme:	Korrigieren Sie das PL/SQL-Konstrukt, bevor Sie den Editor schließen.

PDE-CCL001	Eine zu schließende Bibliothek muß angegeben werden.

 Ursache:	Sie haben den Befehl CLOSE eingegeben, um eine Bibliothek zu schließen, haben dabei jedoch keinen Bibliotheksnamen angegeben.

 Maßnahme:	Überprüfen Sie die Syntax des Befehls CLOSE. Weitere Informationen hierzu finden Sie unter CLOSE. Geben Sie den Befehl erneut ein, und geben Sie dabei den Namen der zu schließenden Bibliothek an.

PDE-CCL002	<Bibliotheksname> ist keine geöffnete Bibliothek.

 Ursache:	Sie haben den Befehl CLOSE eingegeben, um eine Bibliothek zu schließen, haben dabei jedoch keine geöffnete Bibliothek angegeben.

 Maßnahme:	Geben Sie den Befehl CLOSE erneut ein, und geben Sie dabei eine geöffnete Bibliothek an.

PDE-CCM001	Unzureichende Argumente für COMPILE-Befehl.

 Ursache:	Sie haben den Befehl COMPILE eingegeben, um einen oder mehrere Programmblöcke bzw. sämtliche Programmblöcke in einer oder mehreren Bibliotheken zu kompilieren. Sie haben dabei jedoch in der Befehlszeichenfolge keine Schlüsselwörter und/oder Werte angegeben.

 Maßnahme:	Geben Sie den Befehl COMPILE erneut ein, und geben Sie dabei die entsprechenden Schlüsselwörter und Werte an. Weitere Informationen dazu finden Sie unter COMPILE (Bibliotheken) bzw. COMPILE (Programmblöcke).

PDE-CCM002	<Bibliotheksname> ist keine geöffnete Bibliothek.

 Ursache:	Sie haben den Befehl COMPILE eingegeben, um eine momentan nicht geöffnete Bibliothek zu kompilieren. Nicht geöffnete Bibliotheken können jedoch nicht kompiliert werden.

 Maßnahme:	Wenn Sie eine nicht geöffnete Bibliothek kompilieren möchten, müssen Sie die Bibliothek mit Hilfe des Befehls OPEN öffnen und dann erneut den Befehl COMPILE eingeben, um die geöffnete Bibliothek zu kompilieren. Weitere Informationen hierzu finden Sie unter OPEN. Sonst geben Sie COMPILE unter Angabe einer bereits geöffneten Bibliothek erneut ein. Weitere Informationen hierzu finden Sie unter COMPILE (Bibliotheken).

PDE-CCO001	Fehler beim Analysieren der DB-Adresse.

 Ursache:	Sie haben den Befehl CONNECT eingegeben, um sich bei einer Datenbank anzumelden, haben dabei jedoch eine ungültige DB-Adresse angegeben.

 Maßnahme:	Überprüfen Sie die Schreibweise der DB-Adresse, oder geben Sie eine andere DB-Adresse an. Geben Sie den Befehl dann erneut ein.

PDE-CCR001	Zu wenige Argumente für CREATE-Befehl.

 Ursache:	Sie haben den Befehl CREATE eingegeben, um eine neue Bibliothek zu erstellen, haben dabei jedoch in der Befehlszeichenfolge keine Schlüsselwörter und/oder Werte angegeben.

 Maßnahme:	Geben Sie den Befehl CREATE erneut ein, und geben Sie dabei die entsprechenden Schlüsselwörter und Werte an. Weitere Informationen dazu finden Sie unter CREATE (Bibliotheken).

PDE-CCR003	Bibliothek <Bibliotheksname> wird derzeit verwendet.

 Ursache:	Sie haben den Befehl CREATE eingegeben, um eine neue Bibliothek zu erstellen, doch es ist bereits eine gleichnamige Bibliothek geöffnet oder zugeordnet.

 Maßnahme:	Schließen bzw. entfernen Sie die Bibliothek, oder überprüfen Sie die Schreibweise des Bibliotheksnamens. Geben Sie den Befehl CREATE dann erneut ein.

PDE-CCR004	Namensbereich <Name> ist nicht vorhanden.

 Ursache:	Sie haben versucht, eine Bibliothek in einem nicht vorhandenen Namensbereich zu öffnen.

 Maßnahme:	Erstellen Sie den Namensbereich, oder geben Sie einen anderen Namensbereich an.

PDE-CCR005	Es wurde kein Namensbereich angegeben.

 Ursache:	Sie haben den CREATE-Befehl mit dem Schlüsselwort NAMESPACE eingegeben, haben jedoch keinen Namensbereich angegeben.

 Maßnahme:	Prüfen Sie die Syntax des CREATE-Befehls. Weitere Informationen finden Sie unter CREATE. Geben Sie den Befehl erneut mit einem Namen für den Namensbereich ein.

PDE-CCR006	Es wurde keine Datei angegeben.

 Ursache:	Sie haben den Befehl CREATE LIBRARY mit dem Schlüsselwort SOURCE eingegeben, um mit der angegebenen Datei eine Bibliothek zu erstellen. Dabei haben Sie jedoch keinen Dateinamen angegeben.

 Maßnahme:	Überprüfen Sie die Syntax des Befehls CREATE LIBRARY. Weitere Informationen dazu finden Sie unter CREATE (Bibliotheken). Geben Sie den Befehl unter Angabe eines Dateinamens erneut ein.

PDE-CCR007	Vorgang vom Benutzer abgebrochen.

 Ursache:	Sie haben einen CREATE- oder SAVE-Vorgang für eine Bibliothek abgebrochen, da ein externer Speicherplatz bereits belegt war.

 Maßnahme:	Wählen Sie bei Ihrem CREATE- oder SAVE-Vorgang einen neuen Namen für die Bibliothek, oder ersetzen Sie das bestehende Objekt.

PDE-CCR008	Datei <Dateiname> ist keine gültige PL/SQL-Quelldatei.

 Ursache:	Sie haben den Befehl CREATE mit dem Schlüsselwort SOURCE eingegeben, um aus der angegebenen Datei eine Bibliothek zu erstellen. Die angegebene Datei ist jedoch keine gültige PL/SQL-Quelldatei.

 Maßnahme:	Geben Sie den Befehl unter Angabe einer gültigen Quelldatei erneut ein.

PDE-CDE001	Die Bibliothek <Bibliotheksname> wurde nicht zugeordnet.

 Ursache:	Sie haben den Befehl DESCRIBE eingegeben, um Informationen über eine momentan nicht zugeordnete Bibliothek anzuzeigen. Es ist jedoch nicht möglich, Informationen über nicht zugeordnete Bibliotheken anzuzeigen.

 Maßnahme:	Wenn Sie Informationen über eine nicht zugeordnete Bibliothek anzeigen möchten, müssen Sie die Bibliothek mit Hilfe des Befehls ATTACH zuordnen. Dann geben Sie erneut den zuvor verwendeten DESCRIBE-Befehl ein, um die Informationen anzuzeigen. Andernfalls verwenden Sie den Befehl DESCRIBE unter Angabe einer bereits zugeordneten Bibliothek.

PDE-CDE002	<Aktions-ID> ist keine definierte Debug-Aktion.

 Ursache:	Sie haben den Befehl DESCRIBE eingegeben, um Informationen über einen Programmstop oder Debug-Trigger anzuzeigen. Dabei haben Sie jedoch keine ID einer bestehenden Debug-Aktion angegeben.

 Maßnahme:	Geben Sie den Befehl DESCRIBE unter Angabe der ID einer bestehenden Debug-Aktion erneut ein.

PDE-CDE003	Kein Objekt für DESCRIBE angegeben.

 Ursache:	Sie haben den Befehl DESCRIBE eingegeben, um detaillierte Informationen über einen Programmblock, eine Debug-Aktion, eine Bibliothek, eine lokale Variable, einen lokalen Parameter oder den Ladepfad anzuzeigen. Dabei haben Sie jedoch in der Befehlszeichenfolge keine Schlüsselwörter und/oder Werte angegeben.

 Maßnahme:	Geben Sie den Befehl DESCRIBE erneut ein, und geben Sie dabei die Schlüsselwörter und Werte an, die dem anzuzeigenden Informationstyp entsprechen. Weitere Informationen hierzu finden Sie in den folgenden Abschnitten:

DESCRIBE (Debug-Aktionen)

DESCRIBE (Bibliotheken)

DESCRIBE (Ladepfad)

DESCRIBE (Lokale)

DESCRIBE (Programmblöcke)

PDE-CDE004	<Lokale> ist im aktuellen Geltungsbereich nicht definiert.

 Ursache:	Sie haben den Befehl DESCRIBE eingegeben, um Informationen über eine lokale Variable oder einen lokalen Parameter anzuzeigen, doch die angegebene Lokale ist im aktuellen Geltungsbereich nicht vorhanden.

 Maßnahme:	Geben Sie den Befehl DESCRIBE erneut ein, und geben Sie dabei eine lokale Variable oder einen lokalen Parameter an, die/der im aktuellen Geltungsbereich definiert ist. Weitere Informationen hierzu finden Sie unter DESCRIBE (Lokale).

PDE-CDE005	Es gibt kein <Programmblocktyp> namens <Programmblockname>.

 Ursache:	Sie haben den Befehl DESCRIBE eingegeben, um Informationen über einen Programmblock anzuzeigen. Der angegebene Programmblock ist jedoch in der aktuellen Umgebung nicht definiert.

 Maßnahme:	Geben Sie den Befehl DESCRIBE erneut ein, und geben Sie dabei einen Programmblock an, der in der aktuellen Umgebung definiert ist. Weitere Informationen hierzu finden Sie unter DESCRIBE (Programmblöcke).

PDE-CDE006	Es gibt keine Tabelle namens <Tabellenname>.

 Ursache:	Sie haben den Befehl DESCRIBE eingegeben, um Informationen über eine Tabelle anzuzeigen. Die angegebene Tabelle ist jedoch nicht in der Datenbank enthalten.

 Maßnahme:	Geben Sie den Befehl DESCRIBE erneut ein, und geben Sie dabei eine in der Datenbank vorhandene Tabelle an. Weitere Informationen hierzu finden Sie unter DESCRIBE (Tabellen und Ansichten).

PDE-CDE007	Es gibt keine Ansicht namens <Ansichtname>.

 Ursache:	Sie haben den Befehl DESCRIBE eingegeben, um Informationen über eine Ansicht anzuzeigen. Die angegebene Ansicht ist jedoch nicht in der Datenbank enthalten.

 Maßnahme:	Geben Sie den Befehl DESCRIBE erneut ein, und geben Sie dabei eine in der Datenbank vorhandene Ansicht an. Weitere Informationen hierzu finden Sie unter DESCRIBE (Tabellen und Ansichten).

PDE-CDL001	<Aktions-ID> ist keine gültige Aktions-ID.

 Ursache:	Sie haben den Befehl DELETE eingegeben, um einen Programmstop oder Debug-Trigger zu entfernen, haben dabei jedoch keine gültige Debug-Aktions-ID angegeben.

 Maßnahme:	Geben Sie den Befehl DELETE unter Angabe einer gültigen Debug-Aktions-ID erneut ein. Weitere Informationen hierzu finden Sie unter DELETE (Debug-Aktionen).

PDE-CDL002	<Bindevariable> ist kein bekannter Name für Bindevariable.

 Ursache:	Sie haben den Befehl DELETE eingegeben, um eine Bindevariable zu löschen. Dabei haben Sie jedoch keinen gültigen Bindevariablennamen angegeben.

 Maßnahme:	Geben Sie den Befehl DELETE unter Angabe eines gültigen Bindevariablennamens erneut ein. Weitere Informationen hierzu finden Sie unter DELETE (Bindevariablen).

PDE-CDL005	<Bibliotheksname> ist keine geöffnete Bibliothek.

 Ursache:	Sie haben versucht, einen oder mehrere Programmblöcke aus einer momentan nicht geöffneten Bibliothek zu löschen. Es ist jedoch nicht möglich, Programmblöcke aus nicht geöffneten Bibliotheken zu löschen.

 Maßnahme:	Wenn Sie einen oder mehrere Programmblöcke aus einer nicht geöffneten Bibliothek löschen möchten, öffnen Sie die Bibliothek mit Hilfe des Befehls OPEN und geben dann den zuvor verwendeten DELETE-Befehl erneut ein, um den bzw. die Programmblöcke aus der Bibliothek zu entfernen. Sonst geben Sie DELETE erneut ein, und nennen Sie dabei eine bereits geöffnete Bibliothek. Weitere Informationen hierzu finden Sie in den folgenden Abschnitten:

DELETE (Bibliotheks-Programmblöcke)

OPEN

PDE-CDL006	Kann <Programmblocktyp> <Programmblockname> nicht löschen, weil es ein vordefinierter Programmblock ist.

 Ursache:	Sie haben den Befehl DELETE eingegeben, um einen Programmblock zu löschen. Bei diesem Programmblock handelt es sich jedoch um einen vordefinierten Programmblock, der nicht aus Procedure Builder entfernt werden kann.

 Maßnahme:	Sie können nur Programmblöcke löschen, die in Procedure Builder erstellt oder geladen wurden.

PDE-CDL007	Kann Namensbereich nicht löschen, weil er der aktuelle Namensbereich ist.

 Ursache:	Sie haben den DELETE-Befehl eingegeben, um einen Namensbereich zu löschen, der angegebene Namensbereich ist jedoch der aktuelle Namensbereich.

 Maßnahme:	Sie können keinen Namensbereich löschen, bei dem es sich um den aktuellen Namensbereich, einen übergeordneten Namensbereich des aktuellen Namensbereichs oder den globalen Namensbereich handelt. Benutzen Sie den CHANGE-Befehl, um einen anderen Namensbereich als aktuellen Namensbereich auszuwählen, und geben Sie den DELETE-Befehl erneut ein.

PDE-CDL008	Kann Namensbereich nicht löschen, weil er der globale Namensbereich ist.

 Ursache:	Sie haben den DELETE-Befehl eingegeben, um einen Namensbereich zu löschen, der angegebene Namensbereich ist jedoch der globale Namensbereich.

 Maßnahme:	Sie können keinen Namensbereich löschen, bei dem es sich um den aktuellen Namensbereich, einen übergeordneten Namensbereich des aktuellen Namensbereichs oder den globalen Namensbereich handelt.

PDE-CDL009	Kann Namensbereich nicht löschen, weil er nicht vorhanden ist.

 Ursache:	Sie haben den DELETE-Befehl eingegeben, um einen Namensbereich zu löschen, der angegebene Namensbereich ist jedoch nicht vorhanden.

 Maßnahme:	Prüfen Sie die Schreibweise des Namensbereichs, und wiederholen Sie den Befehl.

PDE-CDL010	Im DELETE-Befehl ist keine Bibliothek angegeben.

 Ursache:	Sie haben den Befehl DELETE eingegeben, um eine oder mehrere Bibliotheken zu löschen. Dabei haben Sie jedoch keinen Bibliotheksnamen angegeben.

 Maßnahme:	Überprüfen Sie die Syntax des Befehls DELETE. Weitere Informationen hierzu finden Sie unter DELETE (Bibliotheken). Geben Sie den Befehl erneut ein, und geben Sie dabei den bzw. die Namen der zu löschenden Bibliothek(en) an.

PDE-CDL011	Im DELETE-Befehl ist kein Programmblock angegeben.

 Ursache:	Sie haben den Befehl DELETE eingegeben, um einen oder mehrere Programmblöcke zu löschen. Dabei haben Sie jedoch keinen Programmblocknamen angegeben.

 Maßnahme:	Überprüfen Sie die Syntax des Befehls DELETE. Weitere Informationen hierzu finden Sie unter DELETE (Programmblöcke). Geben Sie den Befehl erneut ein, und geben Sie dabei den bzw. die Namen der zu löschenden Programmblöcke an.

PDE-CDL012	Im DELETE-Befehl ist keine Bibliothek angegeben.

 Ursache:	Sie haben den Befehl DELETE eingegeben, um einen oder mehrere Programmblöcke aus einer geöffneten Bibliothek zu löschen. Dabei haben Sie jedoch keinen Bibliotheksnamen angegeben.

 Maßnahme:	Überprüfen Sie die Syntax des Befehls DELETE. Weitere Informationen hierzu finden Sie unter DELETE (Bibliotheks-Programmblöcke). Geben Sie den Befehl erneut ein, und geben Sie dabei den Namen der Bibliothek an, aus der Sie den bzw. die Programmblöcke entfernen möchten.

PDE-CDL013	Im DELETE-Befehl ist keine Bindevariable angegeben.

 Ursache:	Sie haben den Befehl DELETE eingegeben, um eine oder mehrere Bindevariablen zu löschen. Dabei haben Sie jedoch keinen Bindevariablennamen angegeben.

 Maßnahme:	Überprüfen Sie die Syntax des Befehls DELETE. Weitere Informationen hierzu finden Sie unter DELETE (Bindevariablen). Geben Sie den Befehl erneut ein, und geben Sie dabei den bzw. die Namen der zu löschenden Bindevariablen an.

PDE-CDL014	Kann Namensbereich nicht löschen, da er dem aktuellen Namensbereich übergeordnet ist.

 Ursache:	Sie haben den DELETE-Befehl eingegeben, um einen Namensbereich zu löschen, der angegebene Namensbereich enthält jedoch den aktuellen Namensbereich.

 Maßnahme:	Sie können keinen Namensbereich löschen, bei dem es sich um den aktuellen Namensbereich, einen übergeordneten Namensbereich des aktuellen Namensbereichs oder den globalen Namensbereich handelt. Benutzen Sie den CHANGE-Befehl, um einen anderen Namensbereich als aktuellen Namensbereich auszuwählen, und geben Sie den DELETE-Befehl erneut ein.

PDE-CDS001	<Aktions-ID> ist keine gültige Aktions-ID.

 Ursache:	Sie haben den Befehl DISABLE eingegeben, um einen Programmstop oder Debug-Trigger zu deaktivieren. Dabei haben Sie jedoch keine gültige Debug-Aktions-ID angegeben.

 Maßnahme:	Geben Sie den Befehl DISABLE unter Angabe einer gültigen Debug-Aktions-ID erneut ein. Weitere Informationen hierzu finden Sie unter DISABLE (Debug-Aktionen).

PDE-CDS002	Kein Ziel für DISABLE-Befehl angegeben.

 Ursache:	Sie haben den Befehl DISABLE eingegeben, um eine oder mehrere Debug-Aktionen vorübergehend zu entfernen oder die Protokollierung in der aktuellen Protokolldatei auszusetzen. Dabei haben Sie in der Befehlszeichenfolge jedoch keine Schlüsselwörter und/oder Werte angegeben.

 Maßnahme:	Geben Sie den Befehl DISABLE erneut ein, und geben Sie dabei die Schlüsselwörter und Werte an, die den zu deaktivierenden Elementen entsprechen. Weitere Informationen hierzu finden Sie in den folgenden Abschnitten:

DISABLE (Debug-Aktionen)

DISABLE (Debug-Aktionen)

PDE-CDT001	Es muß eine Bibliothek angegeben werden, deren Zuordnung aufgehoben werden kann.

 Ursache:	Sie haben den Befehl DETACH eingegeben, um die Zuordnung einer Bibliothek aufzuheben. Dabei haben Sie jedoch keinen Bibliotheksnamen angegeben.

 Maßnahme:	Überprüfen Sie die Syntax des Befehls DETACH. Weitere Informationen hierzu finden Sie unter DETACH. Geben Sie den Befehl unter Angabe der zu entfernenden Bibliothek erneut ein.

PDE-CDT002	<Bibliotheksname> ist keine zugeordnete Bibliothek.

 Ursache:	Sie haben den Befehl DETACH eingegeben, um die Zuordnung einer Bibliothek aufzuheben, doch die angegebene Bibliothek ist momentan nicht zugeordnet. Es ist nicht möglich, die Zuordnung nicht zugeordneter Bibliotheken aufzuheben.

 Maßnahme:	Überprüfen Sie die Schreibweise des angegebenen Bibliotheksnamens, und geben Sie den Befehl DETACH dann erneut ein.

PDE-CEN001	<Aktions-ID> ist keine gültige Aktions-ID.

 Ursache:	Sie haben den Befehl ENABLE eingegeben, um einen Programmstop oder Debug-Trigger zu aktivieren. Dabei haben Sie jedoch keine gültige Debug-Aktions-ID angegeben.

 Maßnahme:	Geben Sie den Befehl ENABLE unter Angabe einer gültigen Debug-Aktions-ID erneut ein. Weitere Informationen hierzu finden Sie unter ENABLE (Debug-Aktionen).

PDE-CEN002	Kein Ziel für ENABLE-Befehl angegeben.

 Ursache:	Sie haben den Befehl ENABLE eingegeben, um eine oder mehrere deaktivierte Debug-Aktionen erneut zu aktivieren oder die Protokollierung in der aktuellen Protokolldatei fortzusetzen. Dabei haben Sie in der Befehlszeichenfolge jedoch keine Schlüsselwörter und/oder Werte angegeben.

 Maßnahme:	Geben Sie den Befehl ENABLE erneut ein, und geben Sie dabei die Schlüsselwörter und Werte an, die den zu aktivierenden Elementen entsprechen. Weitere Informationen hierzu finden Sie in den folgenden Abschnitten:

ENABLE (Debug-Aktionen)

ENABLE (Protokollieren)

PDE-CET001	Unzureichende Argumente für SET-Befehl.

 Ursache:	Sie haben den SET-Befehl eingegeben, um den aktuellen Namensbereich festzulegen oder den aktuellen Geltungsbereich zu ändern, haben jedoch in der Befehlsfolge keine Schlüsselwörter und/oder Werte angegeben.

 Maßnahme:	Geben Sie den SET-Befehl erneut mit den entsprechenden Schlüsselwörtern und Werten ein. Weitere Informationen finden Sie unter SET (Geltungsbereich).

PDE-CET002	Der angegebene Namensbereich ist nicht vorhanden.

 Ursache:	Sie haben den Befehl SET NAMESPACE eingegeben, um den aktuellen Namensbereich zu ändern, haben jedoch keinen bestehenden Namensbereich angegeben.

 Maßnahme:	Geben Sie den Befehl SET NAMESPACE erneut mit einem bestehenden Namensbereich ein.

PDE-CET003	Kein aktueller PL/SQL-Ausführungsstapel vorhanden.

 Ursache:	Sie wollten den aktuellen Geltungsbereich mit Hilfe des Befehls SET SCOPE ändern. Der Geltungsbereich konnte jedoch nicht festgelegt werden, da zu diesem Zeitpunkt kein PL/SQL-Programmblock mit unterbrochener Ausführung vorhanden war.

 Maßnahme:	Wenn Sie den Befehl SET SCOPE verwenden möchten, müssen Sie einen PL/SQL-Programmblock ausführen und seine Ausführung mit Hilfe einer Debug-Aktion unterbrechen. Weitere Informationen hierzu finden Sie unter dem Thema Über Debug-Aktionen.

PDE-CET004	Kein Programmblock angegeben.

 Ursache:	Sie wollten den aktuellen Geltungsbereich mit Hilfe des Befehls SET SCOPE ändern. Der Geltungsbereich konnte jedoch nicht festgelegt werden, da Sie keinen PL/SQL-Programmblock angegeben haben.

 Maßnahme:	Geben Sie den Befehl SET SCOPE unter Angabe eines Programmblocks erneut ein. Weitere Informationen hierzu finden Sie unter SET (Geltungsbereich).

PDE-CEX001	Keine Zieldatei für EXPORT-Befehl angegeben.

 Ursache:	Sie haben den Befehl EXPORT eingegeben, um die Quelle eines oder mehrerer Programmblöcke in eine Datei zu schreiben. Dabei haben Sie jedoch keinen Dateinamen angegeben.

 Maßnahme:	Überprüfen Sie die Syntax des Befehls EXPORT. Weitere Informationen hierzu finden Sie unter EXPORT. Geben Sie den Befehl erneut ein, und geben Sie dabei den Namen der Datei an, in die die Programmblockquelle geschrieben werden soll.

PDE-CEX002	Kein Programmblock für EXPORT-Befehl angegeben.

 Ursache:	Sie haben den Befehl EXPORT eingegeben, um die Quelle eines oder mehrerer Programmblöcke in eine Datei zu schreiben. Dabei haben Sie jedoch keine Programmblocknamen angegeben.

 Maßnahme:	Überprüfen Sie die Syntax des Befehls EXPORT. Weitere Informationen hierzu finden Sie unter EXPORT. Geben Sie den Befehl erneut ein, und geben Sie dabei den bzw. die Namen der Programmblöcke an, deren Quelle exportiert werden soll.

PDE-CEX003	Die Datei <Dateiname> kann nicht für den Export geöffnet werden.

 Ursache:	Sie haben den Befehl EXPORT eingegeben, um die Quelle eines oder mehrerer Programmblöcke in eine Datei zu schreiben. Sie verfügen jedoch nicht über die notwendigen Berechtigungen, die zum Schreiben in die angegebene Datei erforderlich sind.

 Maßnahme:	Ändern Sie Ihre Berechtigungen so, daß Sie in die Datei schreiben dürfen, oder geben Sie eine andere Datei an, für die Sie schreibberechtigt sind.

PDE-CEX004	Die Bibliothek <Bibliotheksname> ist nicht zugeordnet.

 Ursache:	Sie haben den Befehl EXPORT eingegeben, um den Inhalt einer momentan nicht zugeordneten Bibliothek zu exportieren. Es ist jedoch nicht möglich, nicht zugeordnete Bibliotheken zu exportieren.

 Maßnahme:	Wenn Sie eine nicht zugeordnete Bibliothek exportieren möchten, ordnen Sie die Bibliothek mit Hilfe des Befehls ATTACH zu und geben dann den zuvor verwendeten EXPORT-Befehl erneut ein. Weitere Informationen hierzu finden Sie unter ATTACH. Sonst geben Sie den Befehl EXPORT unter Angabe einer bereits zugeordneten Bibliothek erneut ein.

PDE-CEX005	Keine Bibliothek für EXPORT-Befehl angegeben.

 Ursache:	Sie haben den Befehl EXPORT eingegeben, um den Inhalt einer Bibliothek zu exportieren, haben dabei jedoch keinen Bibliotheksnamen angegeben.

 Maßnahme:	Überprüfen Sie die Syntax des Befehls EXPORT. Weitere Informationen hierzu finden Sie unter EXPORT. Geben Sie den Befehl erneut ein, und geben Sie dabei den Namen der Bibliothek an, deren Quelle exportiert werden soll.

PDE-CEX006	Es ist keine momentane Datenbankverbindung vorhanden.

 Ursache:	Sie haben den EXPORT-Befehl mit dem Schlüsselwort STORED eingegeben, um gespeicherte Programmblöcke zu exportieren, sind jedoch momentan nicht bei einer Datenbank angemeldet.

 Maßnahme:	Melden Sie sich bei einer Datenbank an, und geben Sie den EXPORT-Befehl erneut ein. Weitere Informationen finden Sie unter EXPORT (Gespeicherte Programmblöcke)

PDE-CEX007	Die gespeicherten Programmblöcke <Name1, Name2…> sind in der Datenbank nicht vorhanden.

 Ursache:	Sie haben den EXPORT-Befehl eingegeben, um einen oder mehrere gespeicherte Programmblöcke zu exportieren, die angegebenen gespeicherten Programmblöcke sind jedoch in der Datenbank nicht vorhanden.

 Maßnahme:	Geben Sie den EXPORT-Befehl erneut mit den richtigen Namen für die gespeicherten Programmblöcke ein.

PDE-CGE001	Keine Dateien für GENERATE angegeben.

 Ursache:	Sie haben den GENERATE-Befehl eingegeben, um eine ".c"-Datei aus einem Programmblock zu erstellen, ohne den Namen der zu generierenden Datei anzugeben.

 Maßnahme:	Geben Sie den GENERATE-Befehl erneut mit dem Schlüsselwort FILE und dem entsprechenden Argument ein.

PDE-CGE002	Angegebener Programmblock wurde nicht erfolgreich kompiliert.

 Ursache:	Sie haben den GENERATE-Befehl eingegeben, um eine ".c"-Datei aus einem Programmblock zu generieren, ohne den Programmblock vorher zu kompilieren.

 Maßnahme:	Kompilieren Sie den Programmblock, und geben Sie den GENERATE-Befehl erneut ein.

PDE-CGE003	Für GENERATE wurde sowohl SPEC als auch BODY angegeben.

 Ursache:	Sie haben den GENERATE-Befehl eingegeben, um eine ".c"-Datei aus einem Programmblock zu erstellen, wobei Sie beide Schlüsselwörter, SPEC und BODY, angegeben haben. Eine ".c"-Datei kann nur das Schlüsselwort SPEC oder BODY enthalten, jedoch nicht beide.

 Maßnahme:	Benutzen Sie zwei GENERATE-Befehle, wobei Sie SPEC und BODY separat angeben.

PDE-CGE004	Es wurde kein Programmblock für den GENERATE-Befehl gefunden.

 Ursache:	Sie haben den GENERATE-Befehl eingegeben, um eine ".c"-Datei aus einem Programmblock zu erstellen, ohne einen Programmblock anzugeben. Wenn ein Programmblock angegeben wurde, entspricht dessen Typ nicht dem Schlüsselwort SPEC oder BODY.

 Maßnahme:	Geben Sie den GENERATE-Befehl erneut mit einem gültigen Programmblock-Schlüsselwort und -Argument ein.

PDE-CGE005	Fehler beim Öffnen der Datei GENERATE.

 Ursache:	Bei dem Versuch, die ".c"-Datei in einem GENERATE-Befehl zu öffnen, ist ein Betriebssystemfehler aufgetreten.

 Maßnahme:	Geben Sie den Befehl GENERATE erneut mit einem gültigen FILE-Schlüsselwort und -Argument ein.

PDE-CGE006	LIBRARY-Schlüsselwort fehlt.

 Ursache:	Ein GENERATE-Befehl wurde ohne das Schlüsselwort LIBRARY ausgegeben.

 Maßnahme:	Geben Sie den GENERATE-Befehle erneut mit dem Schlüsselwort LIBRARY ein. Weitere Informationen finden Sie unter GENERATE.

PDE-CGE007	Kein Symbol für GENERATE angegeben.

 Ursache:	Sie haben den GENERATE-Befehl eingegeben, um eine ".c"-Datei aus einem Programmblock zu erzeugen, ohne einen Symbolnamen anzugeben.

 Maßnahme:	Geben Sie den GENERATE-Befehl erneut mit dem Symbolnamen ein.

PDE-CGE008	<Bibliotheksname> ist keine geöffnete Bibliothek.

 Ursache:	Sie wollten eine Laufzeitbibliothek für eine momentan nicht geöffnete Bibliothek generieren. Dieser Vorgang kann jedoch mit ungeöffneten Bibliotheken nicht durchgeführt werden.

 Maßnahme:	Stellen Sie sicher, daß die zu generierende Bibliothek geöffnet ist, oder überprüfen Sie die Schreibweise des angegebenen Bibliotheksnamens. Geben Sie den Befehl dann erneut ein. Weitere Informationen finden Sie in den folgenden Abschnitten:

OPEN

GENERATE

PDE-CGE009	Keine Bibliothek für GENERATE angegeben.

 Ursache:	Sie haben den Befehl GENERATE eingegeben, um eine Laufzeitbibliothek zu erstellen. Dabei haben Sie jedoch den Namen der Quellbibliothek nicht angegeben.

 Maßnahme:	Geben Sie den Befehl GENERATE unter Angabe des Schlüsselworts LIBRARY und des zugehörigen Arguments erneut ein. Weitere Informationen hierzu finden Sie unter GENERATE.

PDE-CGR001	Beim Erteilen einer Berechtigung muß eine Bibliothek angegeben werden.

 Ursache:	Sie haben den Befehl GRANT eingegeben, um einen Benutzer zum Zugriff auf eine in der Datenbank gespeicherte Bibliothek zu berechtigen. Dabei haben Sie jedoch keinen Bibliotheksnamen angegeben.

 Maßnahme:	Überprüfen Sie die Syntax des Befehls GRANT. Weitere Informationen hierzu finden Sie unter GRANT. Geben Sie den Befehl erneut ein, und geben Sie dabei die Bibliothek an, für die Sie die Zugriffsberechtigung erteilen wollen.

PDE-CGR002	Beim Erteilen einer Berechtigung muß ein Benutzer angegeben werden.

 Ursache:	Sie haben den Befehl GRANT eingegeben, um einen Benutzer zum Zugriff auf eine in der Datenbank gespeicherte Bibliothek zu berechtigen. Dabei haben Sie jedoch keinen Benutzernamen angegeben.

 Maßnahme:	Überprüfen Sie die Syntax des Befehls GRANT. Weitere Informationen hierzu finden Sie unter GRANT. Geben Sie den Befehl erneut ein, und geben Sie dabei den Benutzernamen des Benutzers an, dem Sie die Zugriffsberechtigung erteilen wollen.

PDE-CHE001	Für den Befehl <Befehl> ist keine Hilfe vorhanden.

 Ursache:	Sie haben den Befehl HELP eingegeben, um Informationen über einen Procedure Builder-Befehl anzuzeigen, haben jedoch keinen gültigen Befehl angegeben.

 Maßnahme:	Geben Sie den Befehl HELP erneut ein, und geben Sie dabei den Procedure Builder-Befehl an, zu dem Sie Hilfeinformationen wünschen. Weitere Informationen hierzu finden Sie unter HELP.

PDE-CIN001	Kein Ziel für den INTERPRET-Befehl angegeben.

 Ursache:	Sie haben den Befehl INTERPRET eingegeben, um eines oder mehrere Procedure Builder-Skripts auszuführen. Sie haben dabei jedoch in der Befehlszeichenfolge keine Schlüsselwörter und/oder Werte angegeben.

 Maßnahme:	Geben Sie den Befehl INTERPRET erneut ein, und geben Sie dabei die entsprechenden Schlüsselwörter und Werte an. Weitere Informationen hierzu finden Sie unter INTERPRET.

PDE-CIN002	Unerwartetes Dateiende bei der Interpretation der Datei.

 Ursache:	Sie haben den Befehl INTERPRET eingegeben, um den Inhalt einer Datei zu interpretieren, doch der letzte PL/SQL-Block der Datei ist unvollständig.

 Maßnahme:	Überprüfen Sie den Inhalt der Datei. Beheben Sie etwaige Fehler, und geben Sie den Befehl erneut ein.

PDE-CIN003	Datei <Dateiname> ist keine gültige PL/SQL-Quelldatei.

 Ursache:	Sie haben den Befehl INTERPRET mit dem Schlüsselwort FILE eingegeben, doch die angegebene Datei ist keine gültige PL/SQL-Quelldatei.

 Maßnahme:	Geben Sie den Befehl unter Angabe einer gültigen Quelldatei erneut ein.

PDE-CIS001	Nicht genügend Argumente für INSERT-Befehl

 Ursache:	Sie haben den Befehl INSERT eingegeben, haben dabei jedoch in der Befehlszeichenfolge nicht genügend Argumente angegeben.

 Maßnahme:	Überprüfen Sie die Syntax des Befehls INSERT. Weitere Informationen hierzu finden Sie in den folgenden Abschnitten:

INSERT (Bibliotheks-Programmblöcke)

INSERT (Ladepfad)

PDE-CIS002	Ein oder mehrere Programmblöcke müssen zum Einfügen in Bibliothek angegeben werden.

 Ursache:	Sie haben den Befehl INSERT eingegeben, um einen oder mehrere Programmblöcke in eine geöffnete Bibliothek einzufügen. In der Befehlszeichenfolge haben Sie jedoch keine Programmblöcke angegeben.

 Maßnahme:	Überprüfen Sie die Syntax des Befehls INSERT. Weitere Informationen hierzu finden Sie unter INSERT (Bibliotheks-Programmblöcke). Geben Sie den Befehl erneut ein, und geben Sie dabei den bzw. die Programmblöcke an, die zur Bibliothek hinzugefügt werden sollen.

PDE-CIS003	<Bibliotheksname> ist keine geöffnete Bibliothek.

 Ursache:	Sie haben den Befehl INSERT eingegeben, um einen oder mehrere Programmblöcke in eine Bibliothek einzufügen, die momentan nicht geöffnet ist. Sie können Programmblöcke jedoch nur zu geöffneten Bibliotheken hinzufügen.

 Maßnahme:	Wenn Sie einen oder mehrere Programmblöcke zu einer Bibliothek hinzufügen möchten, die nicht geöffnet ist, öffnen Sie die Bibliothek mit dem Befehl OPEN und geben dann den zuvor verwendeten INSERT-Befehl ein, um den bzw. die Programmblöcke zur Bibliothek hinzuzufügen. Sonst geben Sie den Befehl INSERT erneut ein, und nennen dabei eine bereits geöffnete Bibliothek. Weitere Informationen hierzu finden Sie unter OPEN.

PDE-CIS004	Ein oder mehrere Ordner müssen zum Einfügen in den Ladepfad angegeben werden.

 Ursache:	Sie haben den Befehl INSERT eingegeben, um den Ladepfad zu ändern, haben dabei jedoch keine Schlüsselwörter und/oder einzufügende(n) Verzeichnispfad(e) angegeben.

 Maßnahme:	Überprüfen Sie die Syntax des Befehls INSERT. Weitere Informationen hierzu finden Sie unter INSERT (Ladepfad). Geben Sie den Befehl erneut ein, und geben Sie dabei die Schlüsselwörter und/oder den bzw. die in den Ladepfad einzufügenden Verzeichnispfade an.

PDE-CIS005	Namensbereich <Name> ist nicht vorhanden.

 Ursache:	Sie haben den INSERT-Befehl eingegeben, um einen oder mehrere Programmblöcke in einen Namensbereich einzufügen, der nicht vorhanden ist.

 Maßnahme:	Prüfen Sie die Schreibweise des angegebenen Namensbereichs, oder erstellen Sie einen neuen Namensbereich mit dem CREATE-Befehl, und geben Sie den INSERT-Befehl erneut ein.

PDE-CIS006	Kein Namensbereich angegeben.

 Ursache:	Sie haben den INSERT-Befehl mit dem Schlüsselwort NAMESPACE eingegeben, um einen oder mehrere Programmblöcke in einen Namensbereich einzufügen, haben jedoch keinen Namensbereich angegeben.

 Maßnahme:	Geben Sie den INSERT-Befehl erneut mit einem bestehenden Namensbereich ein.

PDE-CLG001	Unzureichende Argumente für LOG-Befehl.

 Ursache:	Sie haben den Befehl LOG ohne Schlüsselwörter und/oder Werte in der Befehlsfolge angegeben

 Maßnahme:	Geben Sie den Befehl LOG erneut ein, und geben Sie dabei die entsprechenden Schlüsselwörter und Werte an. Weitere Informationen hierzu finden Sie unter LOG.

PDE-CLG002	Die Datei <Dateiname> konnte nicht geöffnet werden.

 Ursache:	Sie haben den Befehl LOG eingegeben, um die Aufzeichnung der Interpreter-Eingabe/Ausgabe in einer Protokolldatei zu starten. Sie verfügen jedoch nicht über die notwendigen Berechtigungen zum Schreiben in die angegebene Datei.

 Maßnahme:	Ändern Sie Ihre Berechtigungen so, daß Sie in die Datei schreiben dürfen, oder geben Sie eine andere Datei an, für die Sie schreibberechtigt.

PDE-CLG003	Keine Datei mit LOG-Befehl angegeben.

 Ursache:	Sie haben den Befehl LOG mit dem Schlüsselwort FILE eingegeben, hben jedoch keinen Dateinamen angegeben.

 Maßnahme:	Geben Sie den Befehl LOG unter Angabe eines Dateinamens erneut ein. Weitere Informationen hierzu finden Sie unter LOG.

PDE-CLO001	Die angegebene Bibliothek wurde nicht zugeordnet.

 Ursache:	Sie haben den Befehl LOAD eingegeben, um einen oder mehrere Programmblöcke zu laden, der bzw. die in einer momentan nicht zugeordneten Bibliothek gespeichert sind. In einer nicht zugeordneten Bibliothek gespeicherte Programmblöcke können jedoch nicht geladen werden.

 Maßnahme:	Wenn Sie die in der Bibliothek gespeicherten Programmblöcke laden möchten, ordnen Sie die Bibliothek zuerst mit dem Befehl ATTACH zu und geben dann den Befehl LOAD ein, um die Programmblöcke zu laden. Weitere Informationen hierzu finden Sie in den folgenden Abschnitten:

ATTACH

LOAD (Bibliotheks-Programmblöcke)

PDE-CLO002	Kein Ziel im LOAD-Befehl angegeben.

 Ursache:	Sie haben den Befehl LOAD eingegeben, ohne in der Befehlszeichenfolge Schlüsselwörter und/oder Werte angegeben zu haben.

 Maßnahme:	Geben Sie den Befehl LOAD erneut ein, und geben Sie dabei die entsprechenden Schlüsselwörter und Werte an. Mit dem Befehl LOAD können Sie einen oder mehrere Programmblöcke aus einer zugeordneten Bibliothek, einer Datei oder der Datenbank laden. Weitere Informationen hierzu finden Sie in den folgenden Abschnitten:

LOAD (Bibliotheks-Programmblöcke)

LOAD (Programmblöcke)

LOAD (Gespeicherte Programmblöcke)

PDE-CLO003	Keine Programmblöcke zum Laden angegeben.

 Ursache:	Sie haben den Befehl LOAD eingegeben, hanen dabei jedoch keine zu ladenden Programmblöcke angegeben.

 Maßnahme:	Geben Sie den Befehl LOAD erneut ein, und geben Sie dabei den bzw. die Namen der zu ladenden Programmblöcke an. Weitere Informationen hierzu finden Sie in den folgenden Abschnitten:

LOAD (Bibliotheks-Programmblöcke)

LOAD (Programmblöcke)

LOAD (Gespeicherte Programmblöcke)

PDE-CLO004	Der angegebene gespeicherte Programmblock ist in der Datenbank nicht vorhanden.

 Ursache:	Sie haben den Befehl LOAD eingegeben, um einen oder mehrere Programmblöcke zu laden, die in der Datenbank gespeichert sind. Der angegebene gespeicherte Programmblock ist jedoch nicht vorhanden.

 Maßnahme:	Geben Sie den Befehl LOAD erneut ein, und geben Sie dabei den bzw. die Namen der gespeicherten Programmblöcke an. Weitere Informationen hierzu finden Sie unter LOAD (Gespeicherte Programmblöcke).

PDE-CLO005	Es besteht keine Verbindung zur Datenbank.

 Ursache:	Sie haben den Befehl LOAD mit dem Schlüsselwort STORED eingegeben, um einen oder mehrere in der Datenbank gespeicherte Programmblöcke zu laden. Sie sind jedoch momentan nicht bei einer Datenbank angemeldet.

 Maßnahme:	Melden Sie sich bei einer Datenbank an, und geben Sie den Befehl LOAD erneut ein.

PDE-CLO006	Der angegebene Namensbereich ist nicht vorhanden.

 Ursache:	Sie haben den LOAD-Befehl mit dem Schlüsselwort NAMESPACE eingegeben, um einen Programmblock in einen Namensbereich zu laden, der angegebene Namensbereich ist jedoch nicht vorhanden.

 Maßnahme:	Geben Sie den LOAD-Befehl erneut mit einem bestehenden Namensbereich ein.

PDE-CLO007	Es wurde kein Ziel-Namensbereich zum Laden angegeben.

 Ursache:	Sie haben den LOAD-Befehl mit dem Schlüsselwort NAMESPACE eingegeben, haben jedoch keinen Namensbereich angegeben, in den geladen werden soll.

 Maßnahme:	Geben Sie den LOAD-Befehl erneut mit den entsprechenden Schlüsselwörtern und Werten ein, um anzugeben, welche gespeicherten Programmblöcke geladen werden sollen. Weitere Informationen finden Sie unter LOAD (Gespeicherte Programmblöcke).

PDE-CLO008	Es wurde keine Datei angegeben.

 Ursache:	Sie haben den Befehl LOAD mit dem Schlüsselwort FILE eingegeben, haben dabei jedoch keine Datei angegeben, aus der Programmblöcke geladen werden sollen.

 Maßnahme:	Geben Sie den Befehl LOAD erneut ein, und geben Sie dabei den Namen der Datei an, aus der der bzw. die Programmblöcke geladen werden sollen. Weitere Informationen hierzu finden Sie unter LOAD (Programmblöcke).

PDE-CLO009	Datei <Dateiname> ist keine gültige PL/SQL-Quelldatei.

  Ursache:	Sie haben den Befehl LOAD mit dem Schlüsselwort FILE eingegeben, die angegebene Datei ist jedoch keine gültige PL/SQL-Quelldatei.

 Maßnahme:	Geben Sie den Befehl unter Angabe einer gültigen Quelldatei erneut ein.

PDE-COP001	Keine Bibliothek im OPEN-Befehl angegeben.

 Ursache:	Sie haben den Befehl OPEN eingegeben, um eine Bibliothek zu öffnen, haben jedoch keinen Bibliotheksnamen angegeben.

 Maßnahme:	Überprüfen Sie die Syntax des Befehls OPEN. Weitere Informationen hierzu finden Sie unter OPEN. Geben Sie den Befehl erneut ein, und geben Sie dabei den Namen der zu öffnenden Bibliothek an.

PDE-COP002	Kann <Dateiname> im Dateisystem nicht finden.

 Ursache:	Sie haben den Befehl OPEN eingegeben, um eine im Dateisystem befindliche Bibliothek zu öffnen, doch der angegebene Dateiname wurde nicht gefunden.

 Maßnahme:	Überprüfen Sie die Schreibweise des angegebenen Dateinamens, und geben Sie den Befehl erneut ein.

PDE-COP003	Namensbereich <Name> ist nicht vorhanden.

 Ursache:	Sie haben versucht, eine Bibliothek in einem nicht vorhandenen Namensbereich zu öffnen.

 Maßnahme:	Erstellen Sie den Namensbereich, oder geben Sie einen anderen Namensbereich an.

PDE-COP004	Kein Namensbereich im OPEN-Befehl angegeben.

 Ursache:	Sie haben den OPEN-Befehl eingegeben, um eine Bibliothek unter einem Namensbereich zu öffnen, haben jedoch keinen Namensbereich angegeben.

 Maßnahme:	Prüfen Sie die Syntax des OPEN-Befehls. Weitere Informationen finden Sie unter OPEN. Geben Sie den Befehl erneut mit einem Namensbereich ein.

PDE-CPL001	Es ist keine momentane Datenbankverbindung vorhanden.

 Ursache:	Sie haben versucht, eine SQL DDL-Anweisung auszugeben, sind jedoch momentan nicht bei einer Datenbank angemeldet.

 Maßnahme:	Melden Sie sich bei einer Datenbank an, und wiederholen Sie die SQL DDL-Anweisung.

PDE-CRK001	Beim Entzug einer Berechtigung muß der Bibliotheksname angegeben werden.

 Ursache:	Sie haben den Befehl REVOKE eingegeben, um einem Benutzer die Zugriffsberechtigung für eine in der Datenbank gespeicherte Bibliothek zu entziehen, haben dabei aber keinen Bibliotheksnamen angegeben.

 Maßnahme:	Überprüfen Sie die Syntax des Befehls REVOKE. Weitere Informationen hierzu finden Sie unter REVOKE. Geben Sie den Befehl erneut ein, und geben Sie dabei die Bibliothek an, für die Sie die Zugriffsberechtigung entziehen wollen.

PDE-CRK002	Beim Entzug einer Berechtigung muß der Benutzer angegeben werden.

 Ursache:	Sie haben den Befehl REVOKE eingegeben, um einem Benutzer die Zugriffsberechtigung für eine in der Datenbank gespeicherte Bibliothek zu entziehen, haben dabei aber keinen Benutzernamen angegeben.

 Maßnahme:	Überprüfen Sie die Syntax des Befehls REVOKE. Weitere Informationen hierzu finden Sie unter REVOKE. Geben Sie den Befehl erneut ein, und geben Sie dabei den Benutzernamen des Benutzers an, dem Sie die Zugriffsberechtigung entziehen wollen.

PDE-CRN001	Alter Name wurde nicht angegeben.

 Ursache:	Sie haben den Befehl RENAME eingegeben, um den Namen einer in der aktuellen Datenbank gespeicherten Bibliothek zu ändern, haben dabei jedoch den alten Namen der Bibliothek nicht angegeben.

 Maßnahme:	Überprüfen Sie die Syntax des Befehls RENAME. Weitere Informationen hierzu finden Sie unter RENAME (Bibliotheken). Geben Sie den Befehl unter Angabe des alten Namens erneut ein.

PDE-CRN002	Neuer Name wurde nicht angegeben.

 Ursache:	Sie haben den Befehl RENAME eingegeben, um den Namen einer in der aktuellen Datenbank gespeicherten Bibliothek zu ändern, haben dabei jedoch keinen neuen Namen für die Bibliothek angegeben.

 Maßnahme:	Überprüfen Sie die Syntax des Befehls RENAME. Weitere Informationen hierzu finden Sie unter RENAME (Bibliotheken). Geben Sie den Befehl unter Angabe eines neuen Namens erneut ein.

PDE-CRN003	Zur Zeit kann auf keine DB-Bibliothek namens <Bibliothekname> zugegriffen werden.

 Ursache:	Sie haben den Befehl RENAME eingegeben, um den Namen einer Bibliothek zu ändern, doch der Befehl konnte aus einem der folgenden Gründe nicht ausgeführt werden:

A:	Die angegebene Bibliothek ist nicht in der aktuellen Datenbank vorhanden.

B:	Sie sind nicht dazu berechtigt, die genannte Bibliothek umzubenennen.

 Maßnahme:	Sie können diesen Fehler durch folgende Maßnahmen beheben:

Bei A:	Geben Sie den Befehl RENAME mit dem richtigen Bibliotheksnamen erneut ein.

Bei B:	Lassen Sie sich die zum Umbenennen der Bibliothek notwendigen Berechtigungen erteilen, und geben Sie den Befehl RENAME erneut ein.

PDE-CRN004	Bibliothek kann ohne Datenbankverbindung nicht umbenannt werden.

 Ursache:	Sie haben den Befehl RENAME eingegeben, um den Namen einer Bibliothek zu ändern, sind jedoch nicht bei einer Datenbank angemeldet.

 Maßnahme:	Melden Sie sich bei der Datenbank an, in der die Bibliothek gespeichert ist, und geben Sie den Befehl dann erneut ein.

PDE-CRN007	<Alter Bibliotheksname> kann nicht in <neuer Bibliotheksname> umbenannt werden, da <neuer Bibliotheksname> momentan zugeordnet ist.

 Ursache:	Sie haben den Befehl RENAME eingegeben, um den Namen einer in der aktuellen Datenbank gespeicherten Bibliothek zu ändern. Es ist jedoch momentan eine Bibliothek zugeordnet, deren Name mit dem neuen Namen identisch ist. Sie dürfen eine Bibliothek nicht in den Namen einer bereits zugeordneten Bibliothek umbenennen.

 Maßnahme:	Heben Sie die Zuordnung der gleichnamigen Bibliothek mit Hilfe von DETACH auf, oder verwenden Sie einen anderen neuen Namen. Geben Sie den Befehl RENAME dann erneut ein. Weitere Informationen zum Befehl DETACH finden Sie unter DETACH.

PDE-CRN008	<Alter Bibliotheksname> kann nicht in <neuer Bibliotheksname> umbenannt werden, da <neuer Bibliotheksname> momentan geöffnet ist.

 Ursache:	Sie haben den Befehl RENAME eingegeben, um den Namen einer in der aktuellen Datenbank gespeicherten Bibliothek zu ändern. Es ist jedoch momentan eine Bibliothek geöffnet, deren Name mit dem neuen Namen identisch ist. Sie dürfen eine Bibliothek nicht in den Namen einer geöffneten Bibliothek umbenennen.

 Maßnahme:	Schließen Sie die gleichnamige Bibliothek mit Hilfe von CLOSE, oder verwenden Sie einen anderen neuen Namen. Geben Sie den Befehl RENAME dann erneut ein. Weitere Informationen zum Befehl CLOSE finden Sie unter CLOSE.

PDE-CRS001	Die angegebene Debug-Ebene ist nicht vorhanden.

 Ursache:	Sie haben den Befehl RESET eingegeben, um die Ausführung auf eine bestimmte Debug-Ebene zurückzusetzen, diese Debug-Ebene gibt es jedoch nicht.

 Maßnahme:	Überprüfen Sie die Syntax für das Schlüsselwort LEVEL des Befehls RESET. Weitere Informationen hierzu finden Sie unter RESET. Geben Sie den Befehl mit einer gültigen Debug-Ebene erneut ein.

PDE-CRS002	Derzeit wird kein Code ausgeführt.

 Ursache:	Sie haben den Befehl RESET eingegeben, um die Ausführung eines PL/SQL-Programmblocks abzubrechen. Es war jedoch zu diesem Zeitpunkt kein Programmblock vorhanden, dessen Ausführung unterbrochen war.

 Maßnahme:	Wenn Sie den Befehl RESET verwenden wollen, müssen Sie einen PL/SQL-Programmblock ausführen und seine Ausführung mit Hilfe einer Debug-Aktion unterbrechen. Weitere Informationen hierzu finden Sie unter dem Thema Über Debug-Aktionen.

PDE-CRV001	Zum Wiederherstellen des alten Zustandes muß eine Bibliothek angegeben werden.

 Ursache:	Sie haben den Befehl REVERT eingegeben, um eine Bibliothek wiederherzustellen, haben dabei aber keinen Bibliotheksnamen angegeben.

 Maßnahme:	Überprüfen Sie die Syntax des Befehls REVERT. Weitere Informationen hierzu finden Sie unter REVERT. Geben Sie den Befehl erneut ein, und geben Sie dabei den Namen der wiederherzustellenden Bibliothek an.

PDE-CRV002	<Bibliotheksname> ist keine geöffnete Bibliothek.

 Ursache:	Sie haben den Befehl REVERT eingegeben, um eine Bibliothek wiederherzustellen, die momentan nicht geöffnet ist. Es ist jedoch nicht möglich, ungeöffnete Bibliotheken wiederherzustellen.

 Maßnahme:	Stellen Sie sicher, daß Sie eine geöffnete Bibliothek wiederherzustellen versuchen. Überprüfen Sie die Schreibweise des angegebenen Bibliotheksnamens, und geben Sie den Befehl erneut ein.

PDE-CSA001	Eine Bibliothek muß zum Speichern angegeben werden.

 Ursache:	Sie haben den Befehl SAVE eingegeben, um eine Bibliothek zu speichern, haben dabei jedoch keinen Bibliotheksnamen angegeben.

 Maßnahme:	Überprüfen Sie die Syntax des Befehls SAVE. Weitere Informationen hierzu finden Sie unter SAVE. Geben Sie den Befehl erneut ein, und geben Sie dabei den Namen der zu speichernden Bibliothek an.

PDE-CSA002	<Bibliotheksname> ist keine geöffnete Bibliothek.

 Ursache:	Sie haben den Befehl SAVE eingegeben, um eine Bibliothek zu speichern, die momentan nicht geöffnet ist. Es ist jedoch nicht möglich, ungeöffnete Bibliotheken zu speichern.

 Maßnahme:	Stellen Sie sicher, daß Sie eine geöffnete Bibliothek zu speichern versuchen. Überprüfen Sie die Schreibweise des angegebenen Bibliotheksnamens, und geben Sie den Befehl erneut ein.

PDE-CSA003	Ein Ziel muß zum Speichern angegeben werden.

 Ursache:	Sie haben den Befehl SAVE mit der Option AS eingegeben, um eine Bibliothek in einer angegebenen Datei zu speichern, haben dabei jedoch keinen Dateinamen angegeben.

 Maßnahme:	Überprüfen Sie die Syntax des Befehls SAVE. Weitere Informationen hierzu finden Sie unter SAVE. Geben Sie den Befehl erneut ein, und geben Sie dabei den Namen der Datei an, in der die Bibliothek gespeichert werden soll.

PDE-CSE001	Es besteht keine Verbindung zur Datenbank.

 Ursache:	Sie haben eine SQL SELECT-Anweisung eingegeben, sind jedoch momentan nicht bei einer Datenbank angemeldet.

 Maßnahme:	Melden Sie sich bei einer Datenbank an, und geben Sie die Anweisung erneut ein. Weitere Informationen über das Anmelden bei einer Datenbank finden Sie in der Dokumentation zu Ihrem Oracle-Produkt.

PDE-CSH001	Kein aktueller PL/SQL-Ausführungsstapel vorhanden.

 Ursache:	Sie wollten Frames im Aufrufstapel mit Hilfe des Befehls SHOW anzeigen lassen, es war jedoch kein Aufrufstapel vorhanden, da es zu diesem Zeitpunkt keinen PL/SQL-Programmblock mit unterbrochener Ausführung gab.

 Maßnahme:	Wenn Sie Frames im Aufrufstapel mit dem Befehl SHOW auflisten lassen möchten, müssen Sie einen PL/SQL-Programmblock ausführen und seine Ausführung mit Hilfe einer Debug-Aktion unterbrechen. Weitere Informationen dazu finden Sie unter dem Thema Über Debug-Aktionen.

PDE-CSR001	Es wurden keine Programmblöcke zum Speichern in der Datenbank angegeben.

 Ursache:	Sie haben den Befehl STORE eingegeben, haben dabei jedoch keine zu speichernden Programmblöcke angegeben.

 Maßnahme:	Geben Sie den Befehl STORE erneut ein, und geben Sie dabei die entsprechenden Schlüsselwörter und Werte an, um die zu speichernden Programmblöcke festzulegen. Weitere Informationen hierzu finden Sie unter STORE.

PDE-CSR002	Der angegebene Programmblock ist nicht vorhanden.

 Ursache:	Sie haben den Befehl STORE eingegeben, um einen oder mehrere Programmblöcke in der Datenbank zu speichern. Der angegebene Programmblock ist jedoch nicht vorhanden.

 Maßnahme:	Geben Sie den Befehl STORE mit dem richtigen Programmblocknamen erneut ein. Weitere Informationen hierzu finden Sie unter STORE.

PDE-CSR003	Es besteht keine Verbindung zur Datenbank.

 Ursache:	Sie haben den Befehl STORE eingegeben, um einen oder mehrere Programmblöcke in der Datenbank zu speichern. Sie sind jedoch momentan nicht bei einer Datenbank angemeldet.

 Maßnahme:	Melden Sie sich bei einer Datenbank an, und geben Sie den Befehl STORE erneut ein.

PDE-CSR004	Speichern von <Programmblocktyp> <Programmblockname> nicht möglich, da vordefinierter Programmblock.

 Ursache:	Sie haben den Befehl STORE eingegeben, um einen Programmblock in der Datenbank zu speichern, der angegebene Programmblock ist jedoch ein vordefinierter Programmblock.

 Maßnahme:	Sie können nur Programmblöcke speichern, die Sie in Procedure Builder erstellt oder geladen haben.

PDE-CSR005	Die Quelle des Programmblocks ist unvollständig.

 Ursache:	Sie haben den Befehl STORE eingegeben, um einen Programmblock in der Datenbank zu speichern. Die Quelle des Programmblocks ist jedoch kein vollständiges PL/SQL-Konstrukt.

 Maßnahme:	Geben Sie ein vollständiges PL/SQL-Konstrukt als Quelle des Programmblocks ein, und setzen Sie den Befehl STORE dann erneut ab.

PDE-CSR006	Kein Eigentümer angegeben.

 Ursache:	Sie haben den Befehl STORE mit dem Schlüsselwort OWNER eingeben, haben dabei aber keinen Eigentümernamen angegeben.

 Maßnahme:	Geben Sie den Befehl STORE unter Angabe eines Eigentümernamens erneut ein. Weitere Informationen hierzu finden Sie unter STORE.

PDE-CSR007	Speichern der Prozedur oder Funktionsspezifikation nicht möglich.

 Ursache:	Sie haben den Befehl STORE eingegeben, um eine Funktions- oder Prozedurspezifikation in der Datenbank zu speichern. Es können jedoch nur Paketspezifikationen gespeichert werden.

 Maßnahme:	Stellen Sie sicher, daß die zu speichernde Funktion oder Prozedur über einen Rumpf verfügt. Geben Sie den Befehl STORE dann ohne das Schlüsselwort SPECIFICATION ein. Weitere Informationen hierzu finden Sie unter STORE.

PDE-CTR001	Trigger-Rumpf nicht angegeben.

 Ursache:	Sie haben den Befehl TRIGGER eingeben, um einen Debug-Trigger zu erstellen, haben dabei jedoch keine PL/SQL-Anweisung oder keinen PL/SQL-Block als Rumpf des Triggers angegeben.

 Maßnahme:	Überprüfen Sie die Syntax des Befehls TRIGGER. Weitere Informationen hierzu finden Sie unter TRIGGER. Geben Sie den Befehl mit einem gültigen Triggerrumpf erneut ein.

PDE-CTR002	Trigger wurde wegen eines Kompilierungsfehlers im Triggerrumpf nicht installiert.

 Ursache:	Sie haben ein ungültiges PL/SQL-Konstrukt in den Triggerrumpf eingegeben.

 Maßnahme:	Korrigieren Sie das PL/SQL-Konstrukt, bevor Sie den Editor schließen.

PDE-CXC001	Für EXECUTE-Befehl wurde kein Programmblock gefunden.

 Ursache:	Sie haben den Befehl EXECUTE eingegeben, um eine parameterlose Prozedur auszuführen, haben dabei jedoch keinen Prozedurnamen angegeben.

 Maßnahme:	Überprüfen Sie die Syntax des Befehls EXECUTE. Weitere Informationen hierzu finden Sie unter EXECUTE. Geben Sie den Befehl erneut ein, und geben Sie dabei den Namen der parameterlosen Prozedur an, die ausgeführt werden soll.

PDE-CXC002	Angegebener Programmblock wurde nicht erfolgreich kompiliert.

 Ursache:	Sie haben den Befehl EXECUTE eingegeben, um eine parameterlose Prozedur auszuführen, ohne die Prozedur kompiliert zu haben.

 Maßnahme:	Kompilieren Sie die Prozedur (mit dem Befehl COMPILE), und geben Sie den Befehl EXECUTE dann erneut ein. Weitere Informationen hierzu finden Sie in den folgenden Abschnitten:

COMPILE (Programmblöcke)

EXECUTE

PDE-DDB001	<Lokale> ist im aktuellen Geltungsbereich nicht definiert.

 Ursache:	Sie haben die Funktion DEBUG.GETx oder die Prozedur DEBUG.SETx aufgerufen, um auf den Wert eines lokalen Parameters oder einer lokalen Variablen zuzugreifen. Die angegebene Lokale ist jedoch im aktuellen Geltungsbereich nicht definiert.

 Maßnahme:	Listen Sie mit Hilfe des Befehls SHOW LOCALS die lokalen Parameter und Variablen des aktuellen Geltungsbereichs auf. Ändern Sie dann den DEBUG.GETx- oder DEBUG.SETx-Aufruf so ab, daß der Name einer gültigen Lokalen übergeben wird. Weitere Informationen hierzu finden Sie in den folgenden Abschnitten:

SHOW (Lokale)

Das DEBUG-Paket

PDE-DDB002	<Lokale> ist nicht vom angegebenen Typ.

 Ursache:	Sie haben die Funktion DEBUG.GETx oder die Prozedur DEBUG.SETx aufgerufen, um auf den Wert eines lokalen Parameters oder einer lokalen Variablen zuzugreifen, doch der Basistyp der angegebenen Lokalen stimmte nicht mit x überein. Diese Fehlermeldung wird beispielsweise ausgegeben, wenn Sie versuchen, den Wert einer lokalen CHAR-Variablen mit Hilfe der lokalen NUMBER-Funktion DEBUG.GETN einzulesen.

 Maßnahme:	Überprüfen Sie den Basistyp der angegebene Lokalen, und rufen Sie dann das DEBUG.GETx- oder DEBUG.SETx-Unterprogramm auf, das für diesen Typ vorgesehen ist. Weitere Informationen hierzu finden Sie unter Das DEBUG-Paket.

PDE-DDB004	Der Wert kann nicht festgelegt werden. Keine Debug-Information.

 Ursache:	Sie haben versucht, den Wert einer Variablen festzulegen, für die keine Debugging-Informationen verfügbar sind.

 Maßnahme:	Kompilieren Sie das Paket oder die Prozedur mit Debugging-Informationen neu.

PDE-DDB005	Fehler bei dem Versuch, den Wert einer Variablen zu ändern.

 Ursache:	Sie haben versucht, den Wert einer Variablen auf einen unzulässigen, zu langen oder außerhalb des zulässigen Bereichs liegenden Wert festzulegen.

 Maßnahme:	Prüfen Sie die Definition der Variablen, und legen Sie sie richtig fest.

PDE-DDB006	Funktionalität nicht implementiert (z.B. Festlegen einer IN-Variablen).

 Ursache:	Sie haben versucht, eine nicht implementierte Funktion auszuführen (z.B. den Wert einer IN-Variablen im Debugger festzulegen).

 Maßnahme:	Sie können diese Funktionalität noch nicht benutzen.

PDE-DFF001	Nicht unterstützter Datentyp für Argument.

 Ursache:	Sie haben einen Aufruf einer Fremdfunktion definiert und dabei einen oder mehrere Datentypen verwendet, die das Paket ORA_FFI nicht unterstützt.

 Maßnahme:	Verwenden Sie Datentypen, die vom Paket ORA_FFI unterstützt werden. Weitere Informationen zu unterstützten Datentypen finden Sie in der Oracle-Produktdokumentation für Ihr Betriebssystem.

PDE-DFF002	Nicht unterstützter Datentyp für Rückgabewert.

 Ursache:	Sie haben einen Aufruf einer Fremdfunktion definiert und dabei einen Datentyp für den Rückgabewert verwendet, den das Paket ORA_FFI nicht unterstützt.

 Maßnahme:	Verwenden Sie einen Datentyp für den Rückgabewert, der vom Paket ORA_FFI unterstützt wird. Weitere Informationen zu unterstützten Datentypen finden Sie in der Oracle-Produktdokumentation für Ihr Betriebssystem.

PDE-DFF003	Bibliothek <Bibliotheksname> kann nicht geöffnet werden.

 Ursache:	Sie versuchten, eine Funktion in einer Fremdbibliothek aufzurufen. Die angegebene Bibliothek existiert jedoch nicht oder konnte nicht geöffnet werden.

 Maßnahme:	Überprüfen Sie, ob die angegebene Fremdbibliothek existiert. Stellen Sie außerdem sicher, daß Sie zum Lesen ihres Inhalts berechtigt sind. Überprüfen Sie darüber hinaus auch die Schreibweise des Bibliotheksnamens in Ihrem Aufruf.

PDE-DFF004	Funktion <Funktionsname> in Bibliothek <Bibliotheksname> nicht auffindbar.

 Ursache:	Sie versuchten, eine Funktion in einer Fremdbibliothek aufzurufen, doch die angegebene Funktion wurde in der Bibliothek nicht gefunden.

 Maßnahme:	Stellen Sie sicher, daß die Funktion in der angegebenen Bibliothek enthalten ist. Überprüfen Sie außerdem die Schreibweisen der Funktions- und Bibliotheksnamen in Ihrem Aufruf.

PDE-DFF005	Falsches Bibliothekshandle.

 Ursache:	Sie versuchten, einen Vorgang für ein Bibliothekshandle einer Fremdbibliothek durchzuführen, doch das angegebene Handle ist ungültig.

 Maßnahme:	Stellen Sie sicher, daß das Bibliothekshandle ein gültiges Ergebnis von ORA_FFI.LOAD_LIBRARY oder ORA_FFI.FIND_LIBRARY ist.

PDE-DFF006	Falsches Funktionshandle.

 Ursache:	Sie versuchten, einen Vorgang für ein Funktionshandle einer Fremdfunktion durchzuführen, doch das angegebene Handle ist ungültig.

 Maßnahme:	Stellen Sie sicher, daß das Funktionshandle ein gültiges Ergebnis von ORA_FFI.REGISTER_FUNCTION oder ORA_FFI.FIND_FUNCTION ist.

PDE-DFF007	Argumente sind zu groß.

 Ursache:	Die Gesamtgröße aller bisher registrierten Argumente ist zu groß.

 Maßnahme:	Ändern Sie die Definition dieser Funktion oder Prozedur auf weniger Argumente ab.

PDE-DIO001	Ungültige Angabe für File Mode: <File Mode>.

 Ursache:	Sie haben die Funktion TEXT_IO.FOPEN zum Öffnen einer Textdatei aufgerufen, haben dabei jedoch ein ungültiges Argument zur Festlegung des File Mode übergeben.

 Maßnahme:	Überprüfen Sie die Syntax der Funktion TEXT_IO.FOPEN. Weitere Informationen hierzu finden Sie unter Das TEXT-E/A-Paket. Ändern Sie den Aufruf von TEXT_IO.FOPEN so ab, daß er ein gültiges Argument zur Festlegung des File Mode übergibt.

PDE-DIO002	Die für den Vorgang ausgewählte Datei ist nicht geöffnet.

 Ursache:	Sie haben ein im TEXT-E/A-Paket enthaltenes Unterprogramm aufgerufen, um Daten aus einer Textdatei zu lesen bzw. in eine Textdatei zu schreiben, haben dabei jedoch ein Dateihandle-Argument übergeben, das nicht mit einer geöffneten Datei verknüpft ist.

 Maßnahme:	Verwenden Sie die Funktion TEXT_IO.FOPEN, um die Datei zu öffnen und ein gültiges Dateihandle zurückzugeben. Rufen Sie dann das TEXT-E/A-Unterprogramm erneut auf und übergeben Sie dabei das gültige Dateihandle als Argument. Weitere Informationen hierzu finden Sie unter Das TEXT-E/A-Paket.

PDE-DLI001	Ungültige Position.

 Ursache:	Die angegebene Position war ungültig.

 Maßnahme:	Geben Sie eine neue Position an, die größer als oder gleich 0 und kleiner als die Länge der Liste ist.

PDE-DST001	Gespeichertes Unterprogramm hat zu viele Argumente.

 Ursache:	Sie haben ein gespeichertes (server-seitiges) Unterprogramm in einem client-seitigen Programmblock aufgerufen, die Ausführung schlug jedoch fehl, da das gespeicherte Unterprogramm mehr Argumente benötigt als Procedure Builder momentan unterstützt (100).

 Maßnahme:	Ändern Sie die Definition des gespeicherten Unterprogramms auf weniger Argumente ab, oder definieren Sie ein neues gespeichertes Unterprogramm mit weniger Argumenten, das das alte Unterprogramm auf seiten der Datenbank aufruft. Weitere Informationen hierzu finden Sie unter dem Thema Über gespeicherte Programmblöcke.

PDE-DST002	Mehrere Einträge für die gespeicherte Prozedur <Prozedurname> in SYS.PSTUBTBL gefunden.

 Ursache:	Bei der vorhergehenden Ausführung eines Programms wurden Datensätze nicht aus der Tabelle SYS.PSTUBTBL gelöscht.

 Maßnahme:	Löschen Sie alle Einträge aus der Tabelle SYS.PSTUBTBL, und führen Sie den Vorgang erneut durch.

PDE-DST005	Client-Stub für gespeicherten Programmblock <Name> kann nicht erstellt werden; ein Programmblock mit diesem Namen ist schon vorhanden.

 Ursache:	Ein Aufruf eines gespeicherten Programmblocks erstellt einen Stub-Programmblock mit demselben Namen auf der Client-Seite. Dieser Stub konnte nicht erstellt werden, weil schon ein bestehender Programmblock mit demselben Namen vorhanden ist.

 Maßnahme:	Benennen Sie den bestehenden Programmblock um.

PDE-FCA001	Subsystem-Fehler.

 Ursache:	Ein Vorgang, der den Kernel oder das PL/SQL-Subsystem involviert, ist auf einen Fehler gestoßen.

 Maßnahme:	Treffen Sie die entsprechende Maßnahme für den Subsystem-Fehler.

PDE-ICD003	Unbekanntes Schlüsselwort: <Schlüsselwort>

 Ursache:	Sie haben einen Befehl eingegeben und haben dabei in der Befehlszeichenfolge ein ungültiges Schlüsselwort angegeben.

 Maßnahme:	Überprüfen Sie die Syntax des Befehls. Weitere Informationen hierzu finden Sie unter Interpreter-Befehle benutzen. Geben Sie den Befehl erneut ein, und geben Sie dabei die entsprechenden Schlüsselwörter, Werte und Optionen für den Befehl an.

PDE-ICD004	Der Befehl '<Befehl>' wurde von <Produktname> deaktiviert.

 Ursache:	Sie haben einen Procedure Builder-Befehl eingegeben, den ein anderes Produkt deaktiviert hat.

 Maßnahme:	Überprüfen Sie die Syntax des verwendeten Befehls innerhalb des Produkts, mit dem Sie gerade arbeiten. Geben Sie den Befehl dann in der richtigen Form erneut ein, und geben Sie dabei die entsprechenden Schlüsselwörter, Werte und Optionen für den Befehl an.

PDE-IIN002	Die Datei <Dateiname> kann nicht geöffnet werden.

 Ursache:	Sie haben den Befehl INTERPRET eingegeben, um ein in einer Datei gespeichertes Procedure Builder-Skript auszuführen. Die angegebene Datei existiert jedoch nicht, oder Sie sind nicht zum Lesen der Datei berechtigt.

 Maßnahme:	Geben Sie den Befehl INTERPRET erneut ein, und geben Sie dabei eine Datei mit einem Procedure Builder-Skript an, für die Sie leseberechtigt sind.

PDE-IIN003	Kein aktueller PL/SQL-Ausführungsstapel vorhanden.

 Ursache:	Sie haben einen Vorgang durchgeführt, bei dem versucht wurde, auf den PL/SQL-Ausführungsstatus zuzugreifen, doch es war zu diesem Zeitpunkt kein PL/SQL-Programmblock vorhanden, dessen Ausführung unterbrochen war.

 Maßnahme:	Wenn Sie diesen Vorgang durchführen möchten, müssen Sie einen PL/SQL-Programmblock ausführen und seine Ausführung mit Hilfe einer Debug-Aktion unterbrechen. Weitere Informationen hierzu finden Sie unter dem Thema Über Debug-Aktionen.

PDE-IIN004	Ausführung kann nicht fortgesetzt werden - Laufzeitstatus von Debug-Aktion auf ungültig gesetzt.

 Ursache:	Sie haben versucht, einen Programmblock auszuführen, doch die Ausführung wurde abgebrochen, da der Ausführungsstatus des Programmblocks durch die Aktionen eines Debug-Triggers auf ungültig gesetzt wurde. Diese Fehlermeldung wird beispielsweise ausgegeben, wenn Sie einen Programmblock aufrufen, für den ein Debug-Trigger definiert ist, der den Befehl RESET aufruft.

 Maßnahme:	Starten Sie die Ausführung des ursprünglichen Programmblocks neu, und vermeiden Sie den Vorgang, durch den der Programmblock auf ungültig gesetzt wurde.

PDE-IIN005	<Befehl> ist ein unbekannter Befehl.

 Ursache:	Sie haben einen Befehl abgesetzt, den es nicht gibt.

 Maßnahme:	Geben Sie .HELP COMMAND in die Interpreter-Befehlszeile ein, um eine Liste der gültigen Befehle aufzurufen. Eine vollständige Beschreibung der Procedure Builder-Befehle finden Sie unter dem Thema Alphabetische Befehlsliste.

PDE-IIN006	Ungültiger Null-Befehl.

 Ursache:	Sie haben einen Null-Befehl abgesetzt (z.B. DEBUG.INTERPRET('');).

 Maßnahme:	Ändern Sie die Befehlszeichenfolge in einen gültigen Befehl.

PDE-IKP002	Zusätzliche Befehlsschlüsselwörter werden übergangen: <Schlüsselwörter>.

 Ursache:	Sie haben einen Befehl eingegeben, haben dabei jedoch zu viele oder zusätzliche Schlüsselwörter angegeben, die in dem Kontext, in dem der Befehl ausgeführt wurde, nicht zulässig sind. Diese Fehlermeldung wird beispielsweise ausgegeben, wenn Sie den Befehl .SHOW PROCEDURES BREAKPOINTS eingeben, da Sie nicht mit einem Befehl sowohl Prozeduren als auch Programmstops auflisten lassen können.

 Maßnahme:	Überprüfen Sie die Syntax des Befehls. Weitere Informationen hierzu finden Sie unter Interpreter-Befehle benutzen. Geben Sie den Befehl erneut ein, und geben Sie dabei die entsprechenden Schlüsselwörter, Werte und Optionen für den Befehl an.

PDE-IKP003	Keine Datenbankverbindung angegeben.

 Ursache:	Sie haben den Befehl CONNECT eingegeben, um sich bei einer Datenbank anzumelden, haben dabei jedoch keine DB-Adresse angegeben.

 Maßnahme:	Überprüfen Sie die Syntax des Befehls CONNECT. Weitere Informationen hierzu finden Sie unter CONNECT. Geben Sie den Befehl erneut ein, und geben Sie dabei das entsprechende Schlüsselwort und die DB-Adresse an.

PDE-IKP004	Es besteht keine Verbindung zur Datenbank.

 Ursache:	Sie haben einen Befehl eingegeben, der auf die Datenbank zugreift, doch es besteht momentan keine Datenbankverbindung.

 Maßnahme:	Melden Sie sich bei einer Datenbank an, und geben Sie den Befehl erneut ein.

PDE-IKP005	<Programmblocktyp> <Programmblockname> nicht definiert.

 Ursache:	Sie haben einen Befehl eingegeben, in dem Sie einen oder mehrere Programmblöcke angegeben haben  (z.B. LIST, DESCRIBE, BREAK etc.), doch mindestens einer der angegebenen Programmblöcke ist nicht in der Umgebung definiert.

 Maßnahme:	Geben Sie den Befehl erneut ein, und geben Sie dabei nur Programmblöcke an, die in der Umgebung definiert sind.

PDE-IKP006	Die Debug-Aktion <Aktions-ID> ist nicht definiert.

 Ursache:	Sie haben einen Befehl eingegeben, bei dem Sie eine Quellposition anhand einer Debug-Aktions-ID angegeben haben  (z.B. LIST, BREAK etc.), doch die angegebene ID bezeichnet keine vorhandene Debug-Aktion.

 Maßnahme:	Geben Sie den Befehl unter Angabe einer gültigen Debug-Aktions-ID erneut ein.

PDE-IKP008	Der aktuelle Geltungsbereich ist nicht definiert.

 Ursache:	Sie haben einen Procedure Builder-Befehl eingegeben, bei dem Sie entweder keine Position angegeben (etwa LIST, STEP, BREAK etc.) oder eine aktuelle Position genannt haben, obwohl es diese nicht gibt.

 Maßnahme:	Geben Sie den Befehl unter Angabe einer gültigen Position erneut ein.

PDE-IKP010	Der angegebene Trigger verweist auf mehrere Quellzeilen.

 Ursache:	Sie haben einen Befehl eingegeben, bei dem Sie eine Quellposition anhand einer Debug-Aktions-ID angegeben haben  (z.B. LIST, BREAK etc.), doch die angegebene ID bezeichnet einen Trigger, der mehreren Quellzeilen zugeordnet ist (etwa einen DEBUG- oder *-Trigger).

 Maßnahme:	Geben Sie den Befehl erneut ein, und geben Sie dabei entweder eine ID an, die eine mit nur einer Quellzeile verknüpfte Debug-Aktion bezeichnet, oder spezifizieren Sie die Quellposition auf andere Weise.

PDE-IKP011	Durch Leerzeichen begrenztes Zeichen erwartet.

 Ursache:	Sie haben einen Procedure Builder-Befehl eingegeben (z.B. CONNECT) und ein Schlüsselwort (etwa DB) angegeben, das als Argument eine Zeichenfolge aus mit Leerzeichen begrenzten Zeichen erfordert. Sie haben jedoch kein derartiges Argument angegeben.

 Maßnahme:	Geben Sie den Befehl erneut ein, und geben Sie dabei das entsprechende Argument für das Schlüsselwort an.

PDE-IKP012	Dateiname erwartet.

 Ursache:	Sie haben einen Befehl eingegeben (z.B. LOAD) und ein Schlüsselwort (etwa FILE) angegeben, das einen oder mehrere Dateinamen als Argumente erfordert. Sie haben jedoch keine Dateinamen angegeben.

 Maßnahme:	Überprüfen Sie die Syntax des Befehls. Weitere Informationen hierzu finden Sie unter Interpreter-Befehle benutzen. Geben Sie den Befehl erneut ein, und geben Sie dabei die entsprechenden Schlüsselwörter, Werte und Optionen für den Befehl an.

PDE-IKP013	Name erwartet.

 Ursache:	Sie haben einen Befehl eingegeben (z.B. DELETE) und ein Schlüsselwort (etwa PROCEDURE) angegeben, das einen oder mehrere Objektnamen als Argumente erfordert. Sie haben jedoch keine Objektnamen angegeben.

 Maßnahme:	Überprüfen Sie die Syntax des Befehls. Weitere Informationen hierzu finden Sie unter Interpreter-Befehle benutzen. Geben Sie den Befehl erneut ein, und geben Sie dabei die entsprechenden Schlüsselwörter, Werte und Optionen für den Befehl an.

PDE-IKP014	Benutzername erwartet.

 Ursache:	Sie haben einen Procedure Builder-Befehl (z.B. BREAK) eingegeben und das Schlüsselwort USER angegeben. Für USER ist ein Argument (Benutzername) erforderlich, es wurde jedoch keines angegeben.

 Maßnahme:	Prüfen Sie die Syntax des gerade eingegebenen Befehls. Weitere Informationen finden Sie unter Interpreter-Befehle benutzen. Geben Sie den Befehl erneut mit den richtigen Schlüsselwörtern, Werten und Optionen ein.

PDE-IKP015	Benutzername und Trennzeichen gefunden.

 Ursache:	Sie haben einen Procedure Builder-Befehl (z.B. BREAK) eingegeben und das Schlüsselwort USER eingegeben. Sie haben außerdem den Namen eines Programmblocks in Form von USER.PU eingegeben. Sie müssen sich für eine Methode zur Angabe des Benutzernamens entscheiden. Die Syntax PACKAGE.PU wird momentan nicht unterstützt.

 Maßnahme:	Prüfen Sie die Syntax des gerade eingegebenen Befehls. Weitere Informationen finden Sie unter Interpreter-Befehle benutzen. Geben Sie den Befehl erneut mit den richtigen Schlüsselwörtern, Werten und Optionen ein..

PDE-IKP016	USER gefunden, aber nicht angemeldet.

 Ursache:	Sie haben einen Procedure Builder-Befehl (z.B. BREAK) eingegeben und das Schlüsselwort USER angegeben oder die Schreibweise USER.PU verwendet. Sie sind jedoch nicht bei einer Oracle-Datenbank angemeldet. Die Syntax PACKAGE.PU wird nicht unterstützt.

 Maßnahme:	Melden Sie sich bei einer Oracle-Datenbank an und wiederholen Sie den Befehl.

PDE-IKP017	Dieser Vorgang ist bei vordefinierten Programmblöcken nicht zulässig.

 Ursache:	Sie haben einen Procedure Builder-Befehl (z.B. LIST, BREAK) und einen oder mehrere Programmblöcke angegeben. Mindestens einer der Programmblöcke ist jedoch vordefiniert, und dieser Vorgang ist bei vordefinierten Programmblöcken nicht zulässig.

 Maßnahme:	Geben Sie den Befehl erneut mit Programmblöcken ein, bei denen es sich nicht um vordefinierte Programmblöcke handelt.

PDE-IPR002	Gültiger ganzzahliger Wert als Argument erwartet.

 Ursache:	Sie haben einen Befehl mit einem Schlüsselwort eingegeben (z.B. LINE, COUNT), für das ein ganzzahliger Wert als Argument erwartet wird. Sie haben jedoch keine gültige Ganzzahl angegeben.

 Maßnahme:	Überprüfen Sie die Syntax des Befehls. Weitere Informationen hierzu finden Sie unter Interpreter-Befehle benutzen. Geben Sie den Befehl erneut ein, und geben Sie dabei die entsprechenden Schlüsselwörter, Werte und Optionen für den Befehl an.

PDE-IPR003	Dateiname zu lang.

 Ursache:	Sie haben einen Befehl mit einem Schlüsselwort eingegeben (z.B. FILE), für das ein oder mehrere Dateinamen als Argumente erwartet werden. Einer der angegebenen Dateinamen überschreitet jedoch die unterstützte Maximallänge von 128 Byte.

 Maßnahme:	Benennen Sie die Datei um, oder verschieben Sie sie an einen anderen Speicherort, damit der Dateiname kürzer wird und für seine Angabe nicht mehr die Höchstzahl an Byte überschritten wird. Geben Sie den Befehl dann mit dem kürzeren Dateinamen erneut ein.

PDE-IPR004	SQL- oder PL/SQL-Name muß mit einem Buchstaben beginnen.

 Ursache:	Sie haben einen Befehl mit einem Schlüsselwort eingegeben (z.B. PROCEDURE), für das ein oder mehrere gültige SQL- oder PL/SQL-Namen als Argumente erwartet werden. Einer der angegebenen Namen beginnt jedoch nicht mit einem Buchstaben.

 Maßnahme:	Geben Sie den Befehl erneut ein, und geben Sie dabei die korrekten SQL- oder PL/SQL-Objektnamen an, die mit einem Buchstaben beginnen.

PDE-IPR005	Abschließendes Anführungszeichen fehlt bei Eingabe.

 Ursache:	Sie haben einen Befehl mit einem Schlüsselwortargument eingegeben, das mit einem doppelten Anführungszeichen beginnt, haben jedoch das zugehörige abschließende Anführungszeichen nicht eingegeben.

 Maßnahme:	Geben Sie den Befehl erneut ein, und geben Sie dabei das zugehörige abschließende Anführungszeichen für das in Anführungszeichen gesetzte Argument an.

PDE-IPR006	SQL- oder PL/SQL-Name überschreitet die maximal zulässige Länge von 30 Bytes.

 Ursache:	Sie haben einen Befehl mit einem Schlüsselwort eingegeben (z.B. PROCEDURE), für das ein oder mehrere gültige SQL- oder PL/SQL-Namen als Argumente erwartet werden. Einer der angegebenen Namen überschreitet jedoch die maximal zulässige Bezeichnerlänge von 30 Byte.

 Maßnahme:	Geben Sie den Befehl erneut ein, und geben Sie dabei SQL- oder PL/SQL-Objektnamen an, die die zulässige Maximallänge nicht übersteigen.

PDE-IPR007	PL/SQL-Konstrukt anstelle von Kommentar erwartet.

 Ursache:	Sie haben einen Befehl (z.B. TRIGGER) mit einem Schlüsselwort (etwa IS) eingegeben, auf das eine PL/SQL-Anweisung oder ein PL/SQL-Block folgen sollte, doch Sie haben stattdessen nur einen PL/SQL-Kommentar angegeben.

 Maßnahme:	Geben Sie den Befehl erneut ein, und geben Sie dabei anstelle des ursprünglich verwendeten Kommentars eine PL/SQL-Anweisung oder einen PL/SQL-Block an. Wenn Sie einen Kommentar mit dem PL/SQL-Konstrukt verknüpfen möchten, geben Sie einen Block ein und setzen den Kommentar innerhalb die Schlüsselwörter BEGIN und END.

PDE-IPR008	Eingabe überschreitet die maximal zulässige Länge (128 Byte).

 Ursache:	Sie haben einen Befehl (z.B. CONNECT) mit einem Schlüsselwort (etwa DB) eingegeben, das ein durch Leerzeichen begrenztes Argument erfordert. Das von Ihnen angegebene Argument überschreitet jedoch die maximal zulässige Länge von 128 Byte.

 Maßnahme:	Geben Sie den Befehl mit einem kürzeren Argumentwert erneut ein.

PDE-IPR009	<Zeichenfolge> ist kein gültiger SQL-Name.

 Ursache:	Sie haben einen Befehl (z.B. CONNECT) eingegeben und eine Zeichenfolge angegeben, die die SQL-Benennungsregeln einhalten sollte. Die eingegebene Zeichenfolge ist jedoch ungültig.

 Maßnahme:	Geben Sie den Befehl mit einem gültigen SQL-Namen erneut ein.

PDE-MCL001	Schlüsselwort <Schlüsselwort> mehr als einmal angegeben.

 Ursache:	Sie haben in der Befehlszeile ein Argument mehrmals angegeben.

 Maßnahme:	Geben Sie das Argument nur einmal an. Wenn Sie mehrere Werte angeben möchten, spezifizieren Sie sie als Listenwert.

PDE-MCL002	<Schlüsselwort> ist kein gültiges Schlüsselwort.

 Ursache:	Sie haben in der Befehlszeile ein ungültiges Schlüsselwortargument angegeben.

 Maßnahme:	Geben Sie das korrekte Schlüsselwortargument an.

PDE-MCL003	Positionsargument nach Schlüsselwortargument angegeben.

 Ursache:	Sie haben nach einem Schlüsselwortargument ein Positionsargument angegeben.

 Maßnahme:	Sämtliche Positionsargumente müssen vor Schlüsselwortargumenten angegeben werden. Auf ein Schlüsselwortargument dürfen in der Befehlszeile nur weitere Schlüsselwortargumente folgen.

PDE-MCL004	Ungültiger Wert für Schlüsselwort <Schlüsselwort>.

 Ursache:	Sie haben in der Befehlszeile einen ungültigen Wert für ein Schlüsselwortargument angegeben.

 Maßnahme:	Geben Sie den richtigen Schlüsselwortwert an.

PDE-MCL005	Nicht korrekt formatierter Listenwert.

 Ursache:	Sie haben einen nicht korrekt formatierten Listenwert für ein Schlüsselwortargument in der Befehlszeile angegeben.

 Maßnahme:	Geben Sie das korrekte Listenformat an.

PDE-MCL006	Ungültiger Listeneintrag für Schlüsselwort <Schlüsselwort>.

 Ursache:	Sie haben einen Listenwert für ein Schlüsselwort angegeben, das keine Listenwerte akzeptiert.

 Maßnahme:	Geben Sie einen Einzelwert für das Schlüsselwort an.

PDE-OGN001	Quellknotentyp stimmt nicht mit Zielknotentyp überein.

 Ursache:	Sie haben im Objektnavigator versucht, ein Objekt falschen Typs einzufügen oder abzulegen.

 Maßnahme:	Wählen Sie einen Knoten des passenden Typs, um das Objekt abzulegen oder einzufügen.

PDE-OSC002	Alle ausgewählten Objekte müssen vom gleichen Typ sein.

 Ursache:	Sie wollten im Objektnavigator einen Vorgang durchführen, bei dem alle ausgewählten Objekte vom gleichen Typ sein müssen.

 Maßnahme:	Wählen Sie Objekte vom gleichen Typ aus, und wiederholen Sie den Vorgang.

PDE-PAL001	Ein Speichervorgang schlug beim Zuordnen einer Bibliothek fehl.

 Ursache:	Procedure Builder erhält vom System nicht genügend Speicher zugeordnet, um einen Vorgang mit einer zugeordneten Bibliothek abzuschließen.

 Maßnahme:	Stellen Sie wenn möglich mehr Speicher zur Verfügung, oder bitten Sie den Systemverwalter um Unterstützung.

PDE-PAL005	Bibliothek <Bibliotheksname> kann nicht zugeordnet werden - eine Bibliothek mit diesem Namen wurde bereits zugeordnet.

 Ursache:	Sie wollten eine Bibliothek zuordnen, die bereits zugeordnet ist.

 Maßnahme:	Da die Bibliothek bereits zugeordnet ist, muß sie nicht erneut zugeordnet werden.

PDE-PAL006	Kann Bibliothek <Bibliotheksname> nicht löschen, da sie momentan zugeordnet oder geöffnet ist.

 Ursache:	Sie haben den Befehl DELETE eingegeben, um eine Bibliothek aus der Datenbank zu löschen, doch die angegebene Bibliothek ist momentan zugeordnet oder geöffnet.

 Maßnahme:	Heben Sie die Zuordnung der Bibliothek mit dem Befehl DETACH auf, oder schließen Sie die Bibliothek mit dem Befehl CLOSE. Geben Sie dann den zuvor verwendeten DELETE-Befehl erneut ein, um die Bibliothek aus der Datenbank zu löschen. Weitere Informationen hierzu finden Sie unter DETACH bzw. CLOSE.

PDE-PAL007	Bibliothek <Bibliotheksname> kann nicht aus Datenbank gelöscht werden.

 Ursache:	Sie haben den Befehl DELETE eingegeben, um eine in der Datenbank gespeicherte Bibliothek zu löschen, dieser Vorgang schlug jedoch aus einem der folgenden Gründe fehl:

A:	Sie haben einen falschen Bibliotheksnamen angegeben.

B:	Sie haben eine momentan zugeordnete Bibliothek angegeben.

 Maßnahme:	Sie können diesen Fehler durch folgende Maßnahmen beheben:

Bei A:	Geben Sie den Befehl DELETE mit dem richtigen Bibliotheksnamen erneut ein.

Bei B:	Heben Sie die Zuordnung der angegebenen Bibliothek mit Hilfe des Befehls DETACH auf, und geben Sie den Befehl DELETE erneut ein.

PDE-PAL008	Auf angegebene Bibliothek kann nicht verwiesen werden, da sie momentan nicht zugeordnet ist.

 Ursache:	Sie wollten eine Bibliothek referenzieren, die momentan nicht zugeordnet ist.

 Maßnahme:	Wiederholen Sie den Vorgang, und geben Sie dabei den Namen einer zugeordneten Bibliothek an. Weitere Informationen zum Zuordnen von Bibliotheken finden Sie unter ATTACH.

PDE-PAL015	Es wurde versucht, eine generierte Bibliothek <Bibliotheksname> zuzuordnen.

 Ursache:	Sie wollten eine generierte, ausschließlich für die Laufzeit konzipierte Bibliothek (Erweiterung .PLX) zuordnen, doch dies wird nicht unterstützt.

 Maßnahme:	Ordnen Sie statt dessen die Quellbibliothek zu (Erweiterung .PLL).

PDE-PBV002	Eine Bindevariable namens <Variablenname> ist bereits vorhanden.

 Ursache:	So wollten mit Hilfe des Befehls CREATE eine neue Procedure Builder-Bindevariable deklarieren, es gibt jedoch bereits eine gleichnamige Bindevariable.

 Maßnahme:	Geben Sie den Befehl CREATE erneut ein, und geben Sie dabei einen anderen, eindeutigen Namen für die Bindevariable an.

PDE-PCB002	Versuch, auf eine undefinierte Bindevariable Bezug zu nehmen.

 Ursache:	Sie haben in einem PL/SQL-Programmblock eine Bindevariable referenziert, doch die angegebene Bindevariable ist nicht definiert.

 Maßnahme:	Bearbeiten Sie den Programmblock, ändern Sie die Bindevariablenreferenz auf einen gültigen Bindevariablennamen ab, und kompilieren Sie den Programmblock neu.

PDE-PCX002	Unterbrechung oder Wiederaufnahme nicht möglich, da derzeit kein Code ausgeführt wird.

 Ursache:	Sie wollten die PL/SQL-Ausführung mit dem Befehl GO oder STEP fortsetzen, doch es war zu diesem Zeitpunkt kein PL/SQL-Programmblock vorhanden, dessen Ausführung unterbrochen war.

 Maßnahme:	Wenn Sie den Befehl GO oder STEP verwenden möchten, müssen Sie einen PL/SQL-Programmblock ausführen und seine Ausführung mit Hilfe einer Debug-Aktion unterbrechen. Weitere Informationen dazu finden Sie unter dem Thema Über Debug-Aktionen.

PDE-PCX012	SYS.PSTUBTBL enthält unerwartet Zeilen.

 Ursache:	Bei der vorhergehenden Ausführung eines Programms wurden Datensätze nicht aus der Tabelle SYS.PSTUBTBL der Datenbank gelöscht.

 Maßnahme:	Löschen Sie alle Einträge aus der Tabelle SYS.PSTUBTBL, und führen Sie den Vorgang erneut durch.

PDE-PCX021	Abmelden nicht möglich, während ein unterbrochener entfernter Programmblock ausgeführt wird.

 Ursache:	Sie haben einen entfernten (server-seitigen) Programmblock ausgeführt, der bei einem Programmstop unterbrochen wird. Wenn Sie sich jetzt abmelden könnten, würden alle abhängigen Programmblöcke ungültig. Sie können sich erst abmelden, wenn die Ausführung zurückgesetzt wird oder abgeschlossen ist.

 Maßnahme:	Setzen Sie die Ausführung des Programmblocks zurück oder beenden Sie sie, und melden Sie sich dann ab.

PDE-PEP005	Codierte Programmblöcke einer unbekannten Maschinenarchitektur nicht entschlüsselbar.

 Ursache:	Procedure Builder versuchte, einen Programmblock zu decodieren, der auf einer anderen Maschinenarchitektur erstellt wurde. Dies erfordert eine Neukompilierung des Programmblocks, doch es wurde kein Quellcode gefunden.

 Maßnahme:	Geben Sie einen Programmblock an, der auf der aktuellen Maschinenarchitektur erstellt wurde, oder verwenden Sie eine Kopie des von der Fremdmaschine stammenden Programmblocks, die mit Quellcode gespeichert wurde.

PDE-PEP006	Codierter Programmblock in unbekanntem Format.

 Ursache:	Procedure Builder versuchte, einen Programmblock zu decodieren, der von einer nicht unterstützten Version des Bibliotheksverwaltungscodes codiert wurde.

 Maßnahme:	Dies ist ein interner Fehler. Informationen über das weitere Vorgehen finden Sie unter Anormale Bedingungen.

PDE-PEP011	Programmblock <Programmblockname> ist zu groß, um gespeichert zu werden.

 Ursache:	Sie wollten einen Programmblock in einer Bibliothek speichern, doch seine gespeicherte Darstellung überschreitet die bei diesem Betriebssystem maximal zulässige Größe.

 Maßnahme:	Unterteilen Sie den betreffenden Programmblock in kleinere Programmblöcke, und wiederholen Sie den Vorgang.

PDE-PEP014	Programmblock <Programmblockname> wurde in <Programmblockname> umbenannt, weil sein Name identisch mit dem Namen eines vordefinierten Pakets ist.

 Ursache:	In Version 1 konnten Sie mit Procedure Builder einen Programmblock mit demselben Namen wie ein vordefiniertes Paket erstellen. Dies ist in Version 2 nicht zulässig. Wenn Sie einen Programmblock mit demselben Namen wie ein vordefiniertes Paket laden, benennt Procedure Builder den Programmblock um, indem zwei Dollarzeichen angefügt werden. So wird die Prozedur DEBUG z.B. zu DEBUG$$.

 Maßnahme:	Ändern Sie gegebenenfalls den Namen des Programmblocks vor dem Laden, wobei Sie dann auch alle Referenzen auf den Namen des Programmblocks aktualisieren müssen.

PDE-PER001	Interner Fehler: (<Fehlercode>).

 Ursache:	Sie versuchten, einen Vorgang durchzuführen, der einen internen Fehler (auch anormale Bedingung genannt) verursachte. Der Fehlercode (Angabe in Klammern) gibt die interne Routine an, die mit dem Fehler verknüpft ist.

 Maßnahme:	Informationen über das weitere Vorgehen finden Sie unter Anormale Bedingungen.

PDE-PLI005	Versuch, eine Bibliothek zu bearbeiten, die schreibgeschützt (READONLY) ist.

 Ursache:	Sie wollten eine Bibliothek bearbeiten, die schreibgeschützt zugeordnet ist.

 Maßnahme:	Heben Sie die Zuordnung der zu bearbeitenden Bibliothek auf, und ordnen Sie sie dann ohne Schreibschutz neu zu. Weitere Informationen hierzu finden Sie unter ATTACH.

PDE-PLI006	Die zu erstellende Bibliothek ist bereits vorhanden.

 Ursache:	Sie wollten eine neue Bibliothek in der aktuellen Datenbank erstellen, doch es gibt bereits eine gleichnamige Bibliothek.

 Maßnahme:	Geben Sie einen anderen, eindeutigen Namen für die Bibliothek an, und wiederholen Sie den Erstellungsvorgang.

PDE-PLI007	Diese Bibliothek ist in einem alten Format, das nur schreibgeschützte Versionen (READONLY) unterstützt...

 Ursache:	Sie wollten eine Bibliothek bearbeiten, die in Version 1.0.5 oder einer früheren Version von Procedure Builder erstellt wurde. Von neueren Versionen aus kann jedoch nur auf schreibgeschützte Versionen solcher Bibliotheken zugegriffen werden.

 Maßnahme:	Kopieren Sie den Inhalt der alten Bibliothek in eine neue Bibliothek mit Schreibzugriff. Zum Kopieren einer Bibliothek verwenden Sie am besten Datei [image] Speichern unter... im Bibliothekseditor.

PDE-PLI008	Dieser Vorgang wird nur für Datenbank-Bibliotheken unterstützt.

 Ursache:	Sie versuchten, eine im Dateisystem abgelegte Bibliothek mit Hilfe des Befehls RENAME bzw. DELETE umzubenennen bzw. zu löschen, doch dieser Vorgang wird nur bei in der Datenbank gespeicherten Bibliotheken unterstützt.

 Maßnahme:	Verwenden Sie die entsprechenden Funktionen Ihres Betriebssystems zum Umbenennen bzw. Löschen von Bibliotheken, die im Dateisystem gespeichert sind.

PDE-PLI011	Im Objektspeicher fehlt eine gemeinsame Schematabelle für Werkzeuge.

 Ursache:	Sie wollten auf eine in der Datenbank gespeicherte Bibliothek zugreifen bzw. eine solche Bibliothek erstellen. Dieser Vorgang schlug jedoch fehl, da eine Oracle Tools Common Schema-Tabelle fehlte.

 Maßnahme:	Bitten Sie den Datenbankverwalter zu prüfen, ob Oracle Tools Common Schema korrekt installiert ist.

PDE-PLI017	Die angegebene Bibliothek, <Bibliotheksname>, ist in der Datenbank nicht vorhanden.

 Ursache:	Sie wollten einen Vorgang für eine Bibliothek durchführen, doch die angegebene Bibliothek ist nicht in der Datenbank enthalten.

 Maßnahme:	Überprüfen Sie die Schreibweise des Bibliotheksnamens, und wiederholen Sie den Vorgang unter Angabe einer bestehenden Datenbankbibliothek.

PDE-PLI018	Konnte Bibliothek <Bibliotheksname> nicht finden.

 Ursache:	Sie haben einen Befehl eingeben, in dem Sie eine Bibliothek angegeben haben, die weder im Dateisystem noch in der aktuellen Datenbank gefunden wurde bzw. vorhanden war.

 Maßnahme:	Geben Sie den Befehl erneut ein, und geben Sie dabei den korrekten Speicherort und Namen der Bibliothek an, die verwendet werden soll.

PDE-PLI020	Öffnen auf unterer Ebene für Bibliothek <Bibliotheksname> gescheitert.

 Ursache:	Sie wollten einen Vorgang für eine Bibliothek durchführen, doch die angegebene Bibliothek konnte nicht geöffnet werden.

 Maßnahme:	Dieser Fehler wird zusammen mit anderen Fehlern gemeldet. Informationen zur Fehlerbehandlung finden Sie in den Beschreibungen der anderen Fehler.

PDE-PLI021	Konnte <alter Bibliotheksname> nicht umbenennen, Bibliotheksname <neuer Bibliotheksname> wird derzeit verwendet.

 Ursache:	Sie haben den Befehl RENAME eingegeben, um eine in der aktuellen Datenbank gespeicherte Bibliothek umzubenennen, doch der von Ihnen gewählte neue Name ist mit dem Namen einer vorhandenen Bibliothek identisch.

 Maßnahme:	Geben Sie den Befehl RENAME erneut ein, und geben Sie dabei einen anderen neuen Namen an. Andernfalls benennen Sie die Bibliothek um, für die der gewünschte neue Name momentan benutzt wird, und geben den zuvor fehlgeschlagenen Befehl erneut ein.

PDE-PLI023	Bibliothek <Bibliotheksname> konnte nicht erstellt werden.

 Ursache:	Sie wollten eine Bibliothek erstellen, doch die angegebene Datei konnte nicht geöffnet werden. Dies liegt sehr wahrscheinlich an einem der folgenden Gründe:

A:	Sie haben einen ungültigen Bibliotheksnamen angegeben.

B:	Sie haben den Namen einer Bibliothek angegeben, die bereits in einer Datei vorhanden ist, doch Sie verfügen nicht über die notwendigen Berechtigungen zum Bearbeiten der Datei.

 Maßnahme:	Sie können diesen Fehler durch folgende Maßnahmen beheben:

Bei A:	Geben Sie einen gültigen Bibliotheksnamen an, und wiederholen Sie den Vorgang.

Bei B:	Wiederholen Sie den Vorgang unter Angabe eines anderen Bibliotheksnamens. Wenn Sie denselben Bibliotheksnamen verwenden möchten (wodurch die vorhandene Bibliothek überschrieben wird), müssen Sie die erforderlichen Berechtigungen für einen solchen Vorgang haben.

PDE-PLI031	Datensatz konnte nicht aus Tabelle <Tabellenname> abgerufen werden.

 Ursache:	Ein Bibliotheksvorgang versuchte, einen Datensatz abzurufen, dies schlug jedoch fehl.

 Maßnahme:	Stellen Sie sicher, daß alle Ihre Tabellen für Procedure Builder korrekt installiert sind. Sind sämtliche Tabellen korrekt, wenden Sie sich an Oracle Support. Weitere Informationen hierzu finden Sie unter Verbindung mit Oracle Support aufnehmen.

PDE-PLI038	Datei kann nicht als PL/SQL-Bibliothek geöffnet werden.

 Ursache:	Sie wollten eine Datei öffnen, die eine PL/SQL-Bibliothek enthält, doch entweder verfügen Sie nicht über die notwendigen Berechtigungen für die Datei, die angegebene Datei enthält keine gültige Bibliothek oder die Datei wird gerade von einer anderen Anwendung benutzt.

 Maßnahme:	Überprüfen Sie die Schreibweise des angegebenen Dateinamens, die Berechtigungen für die Datei und den Inhalt der Datei, um sicherzustellen, daß Sie eine gültige PL/SQL-Bibliotheksdatei öffnen. Liegen hier keine Probleme vor, prüfen Sie, ob die Datei von anderen Anwendungen oder Benutzern verwendet wird. Wiederholen Sie den Vorgang dann.

PDE-PLI040	Die gespeicherte Darstellung des Programmblocks <Programmblockname> ist zu groß.

 Ursache:	Sie wollten einen Programmblock aus einer Bibliothek laden, doch die gespeicherte Darstellung des Programmsblocks ist zu groß, um bei diesem Betriebssystem in den Speicher geladen werden zu können.

 Maßnahme:	Wechseln Sie zu dem Betriebssystem, unter dem diese Bibliothek ursprünglich erstellt wurde, und unterteilen Sie den betreffenden Programmblock in kleinere Programmblöcke.

PDE-PLI041	Die angegebene Bibliothek in der Datenbank konnte nicht gesperrt werden.

 Ursache:	Sie versuchten, eine Bibliothek aus einer Datenbank mit Schreibzugriff (READ/WRITE) zuzuordnen, doch die Bibliothek konnte nicht gesperrt werden. Der wahrscheinlichste Grund dafür ist, daß ein anderer Benutzer die Bibliothek mit Schreibzugriff (READ/WRITE) zugeordnet hat.

 Maßnahme:	Ordnen Sie die Bibliothek wenn möglich schreibgeschützt (READONLY) zu. Stellen Sie andernfalls den Benutzer fest, der die Bibliothek mit Schreibzugriff (READ/WRITE) zugeordnet hat, und wiederholen Sie den Vorgang, nachdem dieser Benutzer die Zuordnung der Bibliothek aufgehoben hat.

PDE-PLI043	Alte Bibliotheksversion konnte nicht aktualisiert werden.

 Ursache:	Ein Bibliotheksvorgang versuchte, eine alte Version der Bibliothek zu aktualisieren.

 Maßnahme:	Ist die Bibliothek, die gerade geschlossen oder gespeichert wird, in der Datenbank gespeichert, muß die Tabelle DE_ATTACHED_LIBS aktualisiert werden. Informationen dazu, wie Sie diese Tabelle aktualisieren, finden Sie in der Installationsanleitung für Ihre Plattform. Ist die Bibliothek in einer Datei gespeichert, speichern Sie die Bibliothek mit Hilfe des Befehls SAVE AS in einer anderen Datei. Danach benennen Sie die Datei in den Dateinamen der ursprünglichen, alten Version um, um diese zu ersetzen.

PDE-PLI044	Keine Schreibsperre auf <Bibliothek> möglich. Wahrscheinlich wird ein anderer Prozeß durchgeführt.

 Ursache:	Ein Bibliotheksvorgang versuchte, eine temporäre Datei in den tatsächlichen Dateinamen umzubenennen, konnte jedoch keine Schreibsperre für die Datei erreichen.

 Maßnahme:	Stellen Sie sicher, daß Sie für die Datei, die Sie speichern, schreibberechtigt sind, und die Datei nicht von einem anderen Benutzer gesperrt wurde. Sie können die Daten auch mit Hilfe des Befehls SAVE AS in einer anderen Datei speichern.

PDE-PLI045	Temporäre Datei <Dateiname1> konnte nicht in <Dateiname2> umbenannt werden. Daten bleiben in <Dateiname1>.

 Ursache:	Ein Bibliotheksvorgang versuchte, eine temporäre Datei in den tatsächlichen Dateinamen umzubenennen, das schlug jedoch fehl. Dies führte zu einer Konfliktsituation, so daß die Daten in einer temporären Datei belassen werden mußten.

 Maßnahme:	Öffnen Sie die Bibliothek aus der temporären Datei erneut, und speichern Sie sie mit Hilfe des Befehls SAVE AS.

PDE-PLI046	Versionsnummer von <Bibliothek> ist größer als zulässiger Höchstwert

 Ursache:	Eine Bibliothek wurde zu oft geändert.

 Maßnahme:	Erstellen Sie die Bibliothek neu, und kompilieren Sie sie neu.

PDE-PLU005	Der Programmblock ist nicht kompiliert.

 Ursache:	Sie wollten einen Vorgang für einen Programmblock ausführen, bei dem der Programmblock kompiliert sein muß, dies ist jedoch nicht der Fall.

 Maßnahme:	Kompilieren Sie den Programmblock, und wiederholen Sie den Vorgang.

PDE-PLU008	Externe Referenz <Referenz> kann nicht geladen werden.

 Ursache:	Sie wollten einen Vorgang für einen Programmblock durchführen, der von einem externen Programmblock abhängt, der in Procedure Builder geladen werden muß. Der Vorgang schlug fehl, da der externe Programmblock nicht gefunden wurde.

 Maßnahme:	Führen Sie eine der folgenden Maßnahmen durch, damit Procedure Builder die Referenz auflösen kann:

  Laden Sie den externen Programmblock manuell aus einer Datei oder Bibliothek, und wiederholen Sie den Vorgang.

  Ordnen Sie eine Bibliothek zu, die den externen Programmblock enthält, und wiederholen Sie den Vorgang.

  Melden Sie sich bei einem Oracle Server an, der die externe Referenz als gespeicherten Programmblock definiert, und wiederholen Sie den Vorgang.

PDE-PLU011	Der extern referenzierte Programmblock <Programmblockname> enthält keine Debugging-Symbole.

 Ursache:	Sie wollten einen Vorgang für einen Programmblock ausführen, bei dem ein extern referenzierter Programmblock Debugging-Symbole aufweisen muß, doch der referenzierte Programmblock enthält keine Debugging-Symbole.

 Maßnahme:	Kompilieren Sie den referenzierten Programmblock in Procedure Builder neu, und wiederholen Sie den Vorgang.

PDE-PLU012	Der Programmblock <Programmblockname> enthält keine Debugging-Symbole.

 Ursache:	Sie wollten einen Vorgang für einen Programmblock ausführen, bei dem der Programmblock Debugging-Symbole aufweisen muß, dies ist jedoch nicht der Fall.

 Maßnahme:	Kompilieren Sie den Programmblock in Procedure Builder neu, und wiederholen Sie den Vorgang.

PDE-PLU021	Der Programmblock hat keine Quelle.

 Ursache:	Sie haben versucht, einen Programmblock zu kompilieren, der keinen Quellcode hat.

 Maßnahme:	Geben Sie den Quellcode für den Programmblock an, und kompilieren Sie dann neu.

PDE-PLU022	Kein Zugriff zu dem gespeicherten Programmblock <Programmblock> in Schema <Schema>.

 Ursache:	Sie haben versucht, auf einen gespeicherten Programmblock zuzugreifen, für den Sie keine Zugriffsberechtigung haben. Wahrscheinlich befindet sich der Programmblock in einem anderen Schema.

 Maßnahme:	Verschaffen Sie sich die Zugriffsberechtigung zu dem Programmblock.

PDE-PLV001	Kein aktueller PL/SQL-Ausführungsstapel vorhanden.

 Ursache:	Sie wollten einen Vorgang durchführen, bei dem der Wert einer Lokalen geprüft oder geändert wird, doch es war zu diesem Zeitpunkt kein PL/SQL-Programmblock vorhanden, dessen Ausführung unterbrochen war.

 Maßnahme:	Wenn Sie den Wert einer Lokalen innerhalb von Procedure Builder prüfen oder ändern möchten, müssen Sie einen PL/SQL-Programmblock ausführen und seine Ausführung mit Hilfe einer Debug-Aktion unterbrechen. Weitere Informationen dazu finden Sie unter dem Thema Über Debug-Aktionen.

PDE-PLV003	Für diesen Programmblock stehen keine Debugging-Symbole zur Verfügung.

 Ursache:	Sie wollten einen Vorgang durchführen, bei dem der Wert einer Lokalen geprüft oder geändert wird, doch der Programmblock enthält nicht genügend Debugging-Informationen für diesen Vorgang.

 Maßnahme:	Kompilieren Sie den Programmblock neu, und wiederholen Sie den Vorgang.

PDE-PMS001	Die angegebene Frame-Nummer des Aufrufstapels liegt außerhalb des gültigen Bereichs.

 Ursache:	Sie wollten mit Hilfe des Befehls SET SCOPE einen Frame im Aufrufstapel ansteuern, doch der angegebene Frame existiert nicht.

 Maßnahme:	Geben Sie den Befehl erneut ein, und geben Sie dabei einen gültigen Frame im Aufrufstapel an. Weitere Informationen hierzu finden Sie unter SET (Geltungsbereich).

PDE-PMS002	Der aktuelle Geltungsbereich ist nicht definiert.

 Ursache:	Sie wollten den aktuellen Geltungsbereich mit dem Befehl SET SCOPE festlegen, doch momentan wird keine PL/SQL ausgeführt, weshalb es auch keinen Aufrufstapel gibt.

 Maßnahme:	Der Befehl SET SCOPE kann nur verwendet werden, wenn es einen PL/SQL-Aufrufstapel gibt. Weitere Informationen hierzu finden Sie unter SET (Geltungsbereich).

PDE-PMS003	Kann <Programmblock-Frame> oberhalb des aktuellen Geltungsbereichs nicht finden.

 Ursache:	Sie wollten mit dem Befehl SET SCOPE UP PROGRAMUNIT innerhalb des Aufrufstapels nach oben zu einem bestimmten Programmblock-Frame gehen, doch oberhalb des aktuellen Frames gibt es keinen Frame, der mit dem angegebenen Programmblock verknüpft ist.

 Maßnahme:	Geben Sie den Befehl erneut ein, und geben Sie dabei den Namen eines Programmblocks an, der sich im Aufrufstapel oberhalb des aktuellen Frames befindet. Weitere Informationen hierzu finden Sie unter SET (Geltungsbereich).

PDE-PMS004	Kann <Programmblock-Frame> unterhalb des aktuellen Geltungsbereichs nicht finden.

 Ursache:	Sie wollten mit dem Befehl SET SCOPE DOWN PROGRAMUNIT innerhalb des Aufrufstapels nach unten zu einem bestimmten Programmblock-Frame gehen, doch unterhalb des aktuellen Frames gibt es keinen Frame, der mit dem angegebenen Programmblock verknüpft ist.

 Maßnahme:	Geben Sie den Befehl erneut ein, und geben Sie dabei den Namen eines Programmblocks an, der sich im Aufrufstapel unterhalb des aktuellen Frames befindet. Weitere Informationen hierzu finden Sie unter SET (Geltungsbereich).

PDE-PMS005	Kann Geltungsbereich nicht über höchsten Stapel-Frame setzen.

 Ursache:	Sie wollten sich mit dem Befehl SET SCOPE UP innerhalb des Aufrufstapels nach oben bewegen, doch der angegebene Frame liegt oberhalb des Stapelanfangs.

 Maßnahme:	Geben Sie den Befehl erneut ein, und geben Sie dabei einen gültigen Frame im Aufrufstapel an. Weitere Informationen hierzu finden Sie unter SET (Geltungsbereich).

PDE-PMS006	Kann Geltungsbereich nicht unter den niedrigesten Stapel-Frame setzen.

 Ursache:	Sie wollten sich mit dem Befehl SET SCOPE DOWN innerhalb des Aufrufstapels nach unten bewegen, doch der angegebene Frame liegt unterhalb des Stapelendes.

 Maßnahme:	Geben Sie den Befehl erneut ein, und geben Sie dabei einen gültigen Frame im Aufrufstapel an. Weitere Informationen hierzu finden Sie unter SET (Geltungsbereich).

PDE-PMS007	Kein PL/SQL-Programmblock wird zur Zeit ausgeführt oder unterbrochen.

 Ursache:	Sie wollten einen Procedure Builder-Vorgang durchführen, der den Aufrufstapel prüft bzw. auf den Wert einer Lokalen zugreift, doch es war zu diesem Zeitpunkt kein PL/SQL-Programmblock vorhanden, dessen Ausführung aktiv oder unterbrochen war.

 Maßnahme:	Wenn Sie innerhalb von Procedure Builder den Aufrufstapel prüfen oder auf den Wert einer Lokalen zugreifen möchten, müssen Sie einen PL/SQL-Programmblock ausführen und seine Ausführung mit Hilfe einer Debug-Aktion unterbrechen. Weitere Informationen hierzu finden Sie unter dem Thema Über Debug-Aktionen.

PDE-PNS006	Name von Namensbereich zweimal angegeben.

 Ursache:	Sie haben versucht, eine neuen Namensbereich zu erstellen, der denselben Namen wie ein anderer Namensbereich unter demselben übergeordneten Namensbereich hat.

 Maßnahme:	Wählen Sie einen anderen Namen, und wiederholen Sie den Befehl.

PDE-PNS009	Kann zugeordnete Bibliothek <Bibliotheksname> nicht finden.

 Ursache:	Sie haben den Namen einer zugeordneten Bibliothek eingegeben, die nicht gefunden wurde.

 Maßnahme:	Überprüfen Sie die Schreibweise des Bibliotheksnamens, und geben Sie den Befehl erneut ein.

PDE-PNS010	Versuch, einen untergeordneten Namensbereich mit einem übergeordneten Bereich Null zu erstellen.

 Ursache:	Sie haben versucht, einen Namensbereich zu erstellen, für den kein übergeordneter Namensbereich vorhanden ist.

 Maßnahme:	Erstellen Sie zuerst den übergeordneten Namensbereich und danach den untergeordneten Bereich.

PDE-POL001	Ein Speichervorgang schlug beim Zuordnen einer Bibliothek fehl

 Ursache:	Procedure Builder erhält vom System nicht genügend Speicher zugeordnet, um einen Vorgang mit einer geöffneten Bibliothek abzuschließen.

 Maßnahme:	Stellen Sie wenn möglich mehr Speicher zur Verfügung, oder bitten Sie den Systemverwalter um Unterstützung.

PDE-POL005	Kann Bibliothek <Bibliotheksname> nicht öffnen - eine Bibliothek mit gleichem Namen ist bereits geöffnet.

 Ursache:	Sie wollten eine Bibliothek öffnen, die bereits geöffnet ist.

 Maßnahme:	Da die Bibliothek bereits geöffnet ist, muß sie nicht erneut geöffnet werden.

PDE-POL007	Bibliothek <Bibliotheksname> kann nicht noch einmal gesperrt werden.

 Ursache:	Beim Speichern oder Schließen einer Bibliothek sperrt Procedure Builder entsprechend dem Oracle-Transaktionsmodell vorübergehend alle geöffneten Bibliotheken. Nach Abschluß des Speicher- oder Schließvorgangs werden alle restlichen geöffneten Bibliotheken erneut gesperrt. Diese Fehlermeldung wird ausgegeben, wenn es einem anderen Benutzer gelingt, zwischen dem Abschluß des Speicher- oder Schließvorgangs und dem erneuten Sperren eine Bibliothek zu sperren.

 Maßnahme:	Wurde die Bibliothek verändert, erstellen Sie mit Hilfe des Befehls SAVE eine neue Bibliothek mit Ihren Änderungen. Wurde die Bibliothek nicht verändert, schließen Sie sie so schnell wie möglich und verwerfen die Änderungen, damit von einem anderen Benutzer vorgenommene Änderungen nicht überschrieben werden. Weitere Informationen hierzu finden Sie in den folgenden Abschnitten:

SAVE

CLOSE

PDE-POL008	Kann Bibliothek <Bibliotheksname> nicht speichern - verwenden Sie SPEICHERN UNTER.

 Ursache:	Sie haben einen SAVE- oder CLOSE-Befehl eingegeben, um eine neue Bibliothek zu speichern bzw. zu schließen, die keinen externen Speicherplatz hat.

 Maßnahme:	Wenn Sie den Inhalt der Bibliothek speichern möchten, verwenden Sie den Befehl SAVE mit der Option AS, um die Änderungen zu speichern, bzw. den Befehl CLOSE mit der Option DISCARD, um die Änderungen zu verwerfen. Trat dieser Fehler bei einem QUIT-Vorgang auf, wiederholen Sie den Vorgang, nachdem Sie die Bibliothek gespeichert bzw. verworfen haben. Weitere Informationen hierzu finden Sie in den folgenden Abschnitten:

SAVE

CLOSE

PDE-POL009	Kann Informationen für zugeordnete Bibliothek <Bibliotheksname> nicht speichern.

 Ursache:	Sie haben den Befehl SAVE eingegeben, um Informationen für eine zugeordnete Bibliothek zu speichern, doch Sie haben einen Verzeichnispfad- und Dateinamen angegeben, der die zulässige Höchstzahl an Zeichen übersteigt.

 Maßnahme:	Wiederholen Sie den Vorgang mit einem kürzeren Namen. Dazu verwenden Sie den Befehl INSERT LOADPATH, um den Verzeichnispfad in den Ladepfad einzufügen. Danach geben Sie den Befehl SAVE erneut ein, und geben dabei nur den Basisnamen der Bibliothek an. Weitere Informationen hierzu finden Sie in den folgenden Abschnitten:

INSERT (Ladepfad)

SAVE

PDE-POL010	Es wurde versucht, die generierte Bibliothek <Bibliotheksname> zu öffnen.

 Ursache:	Sie wollten eine generierte, ausschließlich für die Laufzeit konzipierte Bibliothek (Erweiterung .PLX) öffnen, doch dies wird nicht unterstützt.

 Maßnahme:	Öffnen Sie statt dessen die Quellbibliothek (Erweiterung .PLL).

PDE-POL011	Versuch, eine ungespeicherte Bibliothek im alten Zustand wiederherzustellen.

 Ursache:	Sie haben versucht, eine Bibliothek im alten Zustand wiederherzustellen, die nicht gespeichert wurde.

 Maßnahme:	Speichern Sie die Bibliothek, und stellen Sie sie dann im alten Zustand wieder her.

PDE-PPR001	Momentan keine Datenbankverbindung vorhanden.

 Ursache:	Sie haben einen Procedure Builder-Befehl eingegeben, der auf die Datenbank zugreift, doch momentan besteht keine Datenbankverbindung.

 Maßnahme:	Melden Sie sich bei einer Datenbank an, und geben Sie den Befehl erneut ein.

PDE-PPR003	Diese Datenbank unterstützt kein server-seitiges Debugging.

 Ursache:	Datenbanken vor Version 7.3.3 unterstützen kein server-seitiges Debugging.

 Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf, um Ihre Datenbank auf eine Version umzustellen, die das server-seitige Debugging unterstützt.

PDE-PPU003	Ungültige Zeilenzahl für Vorgang mit Programmblock angegeben.

 Ursache:	Sie wollten einen Vorgang für eine Quellzeile eines Programmblocks durchführen, haben dabei jedoch eine Zeilenzahl angegeben, die außerhalb des gültigen Bereichs liegt.

 Maßnahme:	Wiederholen Sie den Vorgang, und geben Sie dabei eine gültige Zeilenzahl für den Programmblock an.

PDE-PPU007	Kompilierter Status von <Programmblockname> kann während der Ausführung nicht gelöscht werden.

 Ursache:	Sie wollten einen Vorgang durchführen (höchstwahrscheinlich innerhalb eines Debug-Triggers), der den kompilierten Status eines Programmblocks auf ungültig setzt. Dieser Vorgang wurde jedoch nicht zugelassen, da der Programmblock gerade ausgeführt wird.

 Maßnahme:	Warten Sie mit dem Vorgang, bis die Ausführung des Programmblocks beendet ist.

PDE-PPU008	Für die angegebene Quell-Zeile wurde kein ausführbarer Code kompiliert.

 Ursache:	Sie wollten einen Programmstop oder Debug-Trigger für einen Programmblock definieren, doch es gibt keinen ausführbaren Code für die angegebene Quellzeile.

 Maßnahme:	Definieren Sie die Debug-Aktion erneut, und geben Sie dabei eine ausführbare Quellzeile an. Weitere Informationen hierzu finden Sie unter dem Thema Über ausführbare Quellzeilen.

PDE-PPU009	Der angegebene Programmblock ist nicht kompiliert.

 Ursache:	Sie wollten einen Vorgang für einen Programmblock ausführen, bei dem der Programmblock kompiliert sein muß, dies ist jedoch nicht der Fall.

 Maßnahme:	Kompilieren Sie den Programmblock, und wiederholen Sie den Vorgang.

PDE-PPU014	Vordefinierte Programmblöcke können nicht geändert oder bearbeitet werden.

 Ursache:	Sie wollten einen vordefinierten Programmblock ändern oder bearbeiten, derartige Vorgänge sind jedoch bei vordefinierten Programmblöcken nicht zulässig.

 Maßnahme:	Sie können nur Programmblöcke bearbeiten und ändern, die in Procedure Builder erstellt oder geladen wurden.

PDE-PPU015	Der PL/SQL-Compiler ist nicht verfügbar.

 Ursache:	Sie wollten einen Vorgang durchführen, bei dem der PL/SQL-Compiler benötigt wird, befanden sich jedoch in einer Laufzeitumgebung.

 Maßnahme:	Wiederholen Sie den Vorgang in einer Kompilierungsversion des Produkts.

PDE-PPU016	Programmblock <Programmblockname> ist schreibgeschützt.

 Ursache:	Sie wollten die Quelle eines Programmblocks ändern, doch der Programmblock ist schreibgeschützt.

 Maßnahme:	Sie können die Quelle eines schreibgeschützten Programmblocks nicht ändern.

PDE-PPU017	Quelle des Programmblocks muß <Programmblocktyp> definieren.

 Ursache:	Sie wollten die Quelle eines Programmblocks erstellen oder ändern, doch die angegebene Quelle definiert keinen Programmblock vom erforderlichen Typ.

 Maßnahme:	Bearbeiten Sie die Quelle des Programmblocks so, daß sie einen Programmblock vom angegebenen Typ definiert.

PDE-PPU020	Programmblock <Programmblock> ist für eine Kompilierung auf dieser Plattform zu groß.

 Ursache:	Die kompilierte Größe dieses Programmblocks übersteigt die auf der aktuellen Plattform mögliche Maximalgröße.

 Maßnahme:	Reduzieren Sie die Größe des Programmblocks, indem Sie ihn in kleinere Programmblöcke unterteilen.

PDE-PPU026	Kein Zugriff zu dem gespeicherten Programmblock <Programmblock> in Schema <Schema>.

 Ursache:	Sie haben versucht, auf einen gespeicherten Programmblock zuzugreifen, zu dem Sie keine Zugriffsberechtigung haben. Wahrscheinlich befindet sich der Programmblock in einem anderen Schema.

 Maßnahme:	Verschaffen Sie sich die Zugriffsberechtigung zu dem Programmblock.

PDE-PRF003	Resource-Datei <Resource-Dateiname> kann nicht geöffnet werden.

 Ursache:	Procedure Builder versuchte, eine Ressource aus der zugehörigen Resource-Datei zu laden, doch die Datei konnte nicht geöffnet werden.

 Maßnahme:	Installieren Sie Procedure Builder neu, und wiederholen Sie den Vorgang.

PDE-PSD001	Konnte Referenz <Programmblockname> nicht auflösen, während <Programmblockname> geladen wurde.

 Ursache:	Sie wollten einen Programmblock laden, doch eine darin enthaltene Referenz auf einen Programmblock oder ein Datenbankobjekt konnte nicht aufgelöst werden.

 Maßnahme:	Das nicht entschlüsselte Objekt befindet sich eventuell in einer Bibliothek, die nicht zugeordnet ist, oder in einer Datenbank, bei der Sie nicht angemeldet sind. Wiederholen Sie den Vorgang, nachdem Sie die erforderliche Bibliothek zugeordnet bzw. eine Verbindung zu einer anderen Datenbank eingerichtet haben.

PDE-PSP006	Kann Datei <Dateiname> nicht öffnen.

 Ursache:	Sie wollten einen Programmblock aus einer Quelldatei laden, doch die Datei konnte nicht geöffnet werden.

 Maßnahme:	Wiederholen Sie den Ladevorgang, und geben Sie dabei den Namen einer bestehenden Datei an, für die Sie leseberechtigt sind.

PDE-PSP007	Bezeichner zu lang.

 Ursache:	Sie haben einen PL/SQL-Bezeichner (z.B. Name eines Programmblocks) angegeben, der zu lang ist. Bezeichner dürfen maximal 30 Zeichen umfassen.

 Maßnahme:	Wiederholen Sie den Vorgang, und geben Sie dabei einen Bezeichner mit höchstens 30 Zeichen an.

PDE-PSX006	Rahmen ist nicht vorhanden.

 Ursache:	Sie können den Wert von Variablen in diesem Rahmen nicht ändern.

 Maßnahme:	Wählen Sie einen anderen Rahmen.

PDE-PSX007	Keine Debugging-Informationen.

 Ursache:	Der Programmblock enthält keine Debugging-Informationen.

 Maßnahme:	Kompilieren Sie den Programmblock im Debug-Modus neu.

PDE-PSX008	Keine derartige Variable in Rahmen.

 Ursache:	Sie haben versucht, auf eine Variable zuzugreifen und/oder diese zu ändern, die in dem aktuellen Rahmen nicht vorhanden ist.

 Maßnahme:	Wählen Sie einen anderen Rahmen oder eine andere Variable.

PDE-PSX010	Unzulässiger Wert.

 Ursache:	Sie haben versucht, eine Variable auf einen Wert einzustellen, der bei diesem Typ nicht zulässig ist.

 Maßnahme:	Legen Sie die Variable auf einen zulässigen Wert fest.

PDE-PSX011	Der Wert Null kann keinem Nicht-Null-Objekt zugewiesen werden.

 Ursache:	Sie können einem Objekt, dessen Typ NOT NULL ist, keinen Null-Wert zuweisen.

 Maßnahme:	Deklarieren Sie das Objekt mit einem anderen Typ, oder weisen Sie einen anderen Wert als NULL zu.

PDE-PSX014	Laufzeit-Information nicht kompatibel.

 Ursache:	Die Version des PBRUN-Pakets, das auf dem Server installiert ist, ist nicht kompatibel.

 Maßnahme:	Installieren Sie die aktuelle Version des Pakets PBRUN auf dem Server.

PDE-PSX017	Es ist kein ausführbarer Code in der angegebenen Quellzeile vorhanden.

 Ursache:	Sie haben versucht, einen Programmstop in einer unzulässigen Zeile zu setzen.

 Maßnahme:	Setzen Sie den Programmstop auf einer gültigen Zeile.

PDE-PSX018	Kein derartiger Programmstop.

 Ursache:	Sie haben versucht, einen Vorgang mit einem nicht vorhandenen Programmstop durchzuführen.

 Maßnahme:	Setzen Sie den Programmstop, bevor Sie den Vorgang ausführen.

PDE-PSX019	Programmstop wird nicht benutzt.

 Ursache:	Dieser Programmstop wird nicht benutzt.

 Maßnahme:	Löschen Sie den Programmstop.

PDE-PSX020	Programmblock geändert, nachdem Programmstop gesetzt wurde.

 Ursache:	Sie haben den Programmblock geändert, nachdem der Programmstop gesetzt wurde.

 Maßnahme:	Setzen Sie den Programmstop zurück.

PDE-PSX022	Funktionalität nicht implementiert.

 Ursache:	Sie haben versucht, eine Funktionalität zu benutzen, die in Procedure Builder noch nicht implementiert ist.

 Maßnahme:	Suchen Sie nach einer alternativen Methode für die Durchführung der Aufgabe.

PDE-PSX023	Server-seitiges PL/SQL-Debugging nicht richtig auf Server installiert.

 Ursache:	Die server-seitigen PL/SQL-Debugging-Pakete sind nicht richtig auf dem Server installiert.

 Maßnahme:	Installieren Sie die server-seitigen PL/SQL-Debugging-Pakete auf dem Server.

PDE-PSX033	Nicht kompatibles server-seitiges PL/SQL-Debugging-Paket auf Server.

 Ursache:	Das auf dem Server installierte server-seitige PL/SQL-Debugging-Paket ist mit der aktuellen Version von Procedure Builder nicht kompatibel.

 Maßnahme:	Installieren Sie kompatible server-seitige PL/SQL-Debugging-Pakete auf dem Server.

PDE-PSX034	Timeout bei Datenbankzugriff.

 Ursache:	Bei dem Versuch, auf die Datenbank zuzugreifen, ist es zu einem Timeout gekommen.

 Maßnahme:	Versuchen Sie noch einmal, auf die Datenbank zuzugreifen. Wenn Sie wieder nicht auf die Datenbank zugreifen können, fragen Sie den Administrator, ob die Datenbank heruntergefahren ist.

PDE-PSX036	Ungültiger Programmblock.

 Ursache:	Der Programmstop konnte nicht gesetzt werden, weil der Programmblock nicht richtig kompiliert war.

 Maßnahme:	Korrigieren Sie die Fehler in der Programmblockquelle, kompilieren Sie den Programmblock neu, und setzen Sie den Programmstop zurück.

PDE-PSX037	Diese Datenbank unterstützt kein server-seitiges Debugging.

 Ursache:	Datenbanken vor Version 7.3.3 unterstützen kein server-seitiges Debugging.

 Maßnahme:	Nehmen Sie Verbindung mit der Oracle-Kundenunterstützung auf, um Ihre Datenbank auf eine Version umzustellen, die das server-seitige Debugging unterstützt.

PDE-PUP001	<Oracle Server-Fehler>.

 Ursache:	Sie wollten einen Vorgang in Procedure Builder durchführen, dieser schlug jedoch aufgrund dieses Oracle Server-Fehlers fehl.

 Maßnahme:	Informationen über den Fehler finden Sie in dem Oracle Server-Handbuch über Fehlermeldungen.

PDE-PUP002	Datenbankvorgang abgebrochen, da die Verbindung nicht mehr gültig ist.

 Ursache:	Sie wollten einen Vorgang in Procedure Builder durchführen, dieser schlug jedoch fehl, da die Datenbankverbindung nicht mehr gültig war.

 Maßnahme:	Melden Sie sich erneut bei der Datenbank an, und wiederholen Sie den Vorgang.

PDE-PUP004	Verbindung zu der angegebenen Datenbank (<Oracle Server-Fehler>) kann nicht hergestellt werden.

 Ursache:	Sie versuchten, sich bei einer Datenbank anzumelden, doch Ihr Anmeldeversuch schlug sehr wahrscheinlich aus einem der folgenden Gründe fehl: Sie haben die DB-Adresse falsch eingegeben, Sie haben keinen Zugriff auf den Rechner, auf dem sich die Datenbank befindet, oder die Datenbank existiert nicht.

 Maßnahme:	Wiederholen Sie den Vorgang, und stellen Sie sicher, daß Sie die korrekte DB-Adresse eingeben. Überprüfen Sie außerdem Server und Netzwerk, um sicherzugehen, daß die Datenbank existiert und der Zugriff darauf möglich ist.

PDE-PXC002	Ausführung des Programmblocks wegen nicht definierter Exception (<Exception-Code>) abgebrochen.

 Ursache:	Sie haben einen Programmblock ausgeführt, doch seine Ausführung wurde abgebrochen, da eine Exception ausgelöst, aber nicht definiert wurde.

 Maßnahme:	Ändern Sie die Definition des Programmblocks so ab, daß die Exception definiert ist, oder beheben Sie die Ursache der Exception.

PDE-PXC007	Die angegebene Frame-Nummer des Aufrufstapels liegt außerhalb des gültigen Bereichs.

 Ursache:	Sie wollten mit Hilfe des Befehls SET SCOPE einen Frame im Aufrufstapel ansteuern, doch der angegebene Frame existiert nicht.

 Maßnahme:	Geben Sie den Befehl erneut ein, und geben Sie dabei einen gültigen Frame im Aufrufstapel an. Weitere Informationen hierzu finden Sie unter SET (Geltungsbereich).

PDE-PXC016	Ausführung abgebrochen - Abhängigkeit von Status von ungültigem, kompiliertem Programmblock.

 Ursache:	Sie wollten die Ausführung mit Hilfe des Befehls GO oder STEP fortsetzen, doch der unterbrochene PL/SQL-Ausführungsstatus war von einem vorhergehenden Vorgang in Procedure Builder auf ungültig gesetzt worden. Diese Fehlermeldung wird beispielsweise ausgegeben, wenn Sie einen Programmblock während eines Programmstops aus dem aktuellen Aufrufstapel löschen und dann versuchen, die Ausführung mit dem Befehl GO fortzusetzen.

 Maßnahme:	Starten Sie die Ausführung des ursprünglichen Programmblocks neu, und vermeiden Sie den Vorgang, der den Ausführungsstatus auf ungültig setzt.

PDE-PXC017	Die Ausführung des PL/SQL-Programmblocks ist derzeit deaktiviert.

 Ursache:	Sie haben versucht, einen PL/SQL-Programmblock auszuführen, doch die PL/SQL-Ausführung ist in diesem Kontext deaktiviert. Diese Fehlermeldung wird beispielsweise ausgegeben, wenn Sie sich nicht im Laufzeitsimulationsmodus des verwendeten Oracle-Produkts befinden.

 Maßnahme:	Führen Sie den PL/SQL-Programmblock aus, wenn Sie sich im Laufzeitsimulationsmodus des Oracle-Produkts befinden.

PDE-PXC018	Debug-Aktion-Trigger versuchte, Ausführung zu unterbrechen.

 Ursache:	Sie wollten die Ausführung eines Programmblocks mit einem Debug-Trigger oder einem Programmstop unterbrechen (möglicherweise durch Aufrufen von DEBUG.SUSPEND), eine Unterbrechung ist in diesem Kontext jedoch nicht zulässig.

 Maßnahme:	Ändern Sie die Definition des entsprechenden Debug-Triggers oder Programmstops ab, indem Sie die Aufrufe zur Ausführungsunterbrechung aus dem Triggerrumpf löschen, und wiederholen Sie den Vorgang.

PDE-PXC019	<Fehler bei Programmblockausführung>.

 Ursache:	Sie haben einen Programmblock ausgeführt, doch die Ausführung wurde abgebrochen, da ein Anwendungsfehler ausgelöst wurde.

 Maßnahme:	Informationen über die Fehlerursache und geeignete Maßnahmen finden Sie in der Dokumentation zu Ihrer Anwendung.

PDE-PXC024	Anonymer Block mit Argumenten kann nicht ausgeführt werden

 Ursache:	Sie haben versucht, einen anonymen Programmblock (z.B. einen Programmblock, der über die Befehlszeile eingegeben wurde) mit Argumenten auszuführen. Dies wird momentan nicht unterstützt.

 Maßnahme:	Schreiben Sie den Befehl als eigenständigen Programmblock neu, und führen Sie diesen aus der Befehlszeile aus.

PDE-PXC030	An dieser Stelle unzulässiger Befehl.

 Ursache:	Sie wollten einen Vorgang durchführen, der einen aktiven oder gestoppten Debug-Kontext (also einen an einem Programmstop unterbrochenen Programmblock) erfordert, doch es war kein derartiger Kontext vorhanden.

 Maßnahme:	Verwenden Sie den Befehl nur, wenn die Ausführung unterbrochen ist.

PDE-UAC003	Es muß ein Benutzername angegeben werden.

 Ursache:	Sie haben im Dialogfeld Liste der Zugriffsberechtigten die Schaltfläche Hinzufügen bzw. Entfernen gewählt, ohne zuvor einen Benutzer ausgewählt oder eingegeben zu haben.

 Maßnahme:	Wählen Sie einen Benutzernamen aus, bzw. geben Sie einen Benutzernamen ein, und klicken Sie dann auf die entsprechende Schaltfläche.

PDE-UAC004	Benutzer steht bereits in der Liste der Zugriffsberechtigten.

 Ursache:	Sie wollten einen Benutzernamen über das Dialogfeld Liste der Zugriffsberechtigten hinzufügen, der bereits in dieser Liste enthalten ist.

 Maßnahme:	Wählen Sie einen anderen Benutzernamen aus, bzw. geben Sie einen neuen Benutzernamen ein, und wiederholen Sie den Vorgang.

PDE-UAL002	Die Bibliothek muß angegeben werden.

 Ursache:	Sie haben im Dialogfeld Bibliothek zuordnen die Schaltfläche Zuordnen gewählt, ohne eine zuzuordnende Bibliothek angegeben zu haben.

 Maßnahme:	Geben Sie in das Feld Bibliothek eine zuzuordnende Bibliothek ein, bevor Sie auf die Schaltfläche Zuordnen klicken.

PDE-UBK002	Der Programmblock muß angegeben werden.

 Ursache:	Sie haben im Dialogfeld Programmstop die Schaltfläche OK gewählt, ohne einen Programmblock angegeben zu haben.

 Maßnahme:	Geben Sie einen Programmblock für den Programmstop in das Feld Programmblock ein, bevor Sie auf die Schaltfläche OK klicken.

PDE-UBK003	Die Zeilennummer muß angegeben werden.

 Ursache:	Sie haben im Dialogfeld Programmstop die Schaltfläche OK gewählt, ohne eine Zeilennummer angegeben zu haben.

 Maßnahme:	Geben Sie eine Zeilenummer für den Programmstop in das Feld Zeile ein, bevor Sie auf die Schaltfläche OK.

PDE-UBK004	Der Trigger muß ein vollständiger PL/SQL-Code sein.

 Ursache:	Sie haben im Dialogfeld Programmstop die Schaltfläche OK gewählt, ohne im Feld Trigger ein vollständiges PL/SQL-Konstrukt angegeben zu haben.

 Maßnahme:	Geben Sie im Feld Trigger ein vollständiges PL/SQL-Konstrukt an, bevor Sie auf die Schaltfläche OK klicken.

PDE-UBP004	Erste Meldung - Bildlauf nach oben nicht möglich.

 Ursache:	Sie wollten den Cursor im Fenster mit der Fehlerzusammenfassung nach oben verschieben und die vorhergehende Meldung auswählen, doch Sie befinden sich bereits bei der ersten Meldung.

 Maßnahme:	Drücken Sie die Pfeiltaste nach oben nur, wenn Sie sich nicht bei der ersten Meldung befinden.

PDE-UBP005	Letzte Meldung - Bildlauf nach unten nicht möglich.

 Ursache:	Sie wollten den Cursor im Fenster mit der Fehlerzusammenfassung nach unten verschieben und die nächste Meldung auswählen, doch Sie befinden sich bereits bei der letzten Meldung.

 Maßnahme:	Drücken Sie die Pfeiltaste nach unten nur, wenn Sie sich nicht bei der letzten Meldung befinden.

PDE-UCN002	Es muß ein Benutzername angegeben werden.

 Ursache:	Sie haben im Dialogfeld Anmelden die Schaltfläche Anmelden gewählt, ohne einen Benutzernamen angegeben zu haben.

 Maßnahme:	Geben Sie einen gültigen Benutzernamen in das Feld Benutzername ein, bevor Sie auf die Schaltfläche Anmelden klicken.

PDE-UCX005	Fensterressource <Ressourcenname> konnte nicht geladen werden.

 Ursache:	Procedure Builder versuchte, ein Fenster zu erstellen, dies schlug jedoch sehr wahrscheinlich aus einem der folgenden Gründe fehl: Es sind bereits alle Fensterressourcen belegt, oder es trat ein interner Fehler auf.

 Maßnahme:	Wenn viele Fenster geöffnet sind (d.h. mehr als 30), schließen Sie so viele Fenster wie nötig sind, um Fensterressourcen freizugeben. Dann wiederholen Sie den zuvor fehlgeschlagenen Vorgang. Besteht das Problem weiterhin, wenden Sie sich an Oracle Support. Weitere Informationen dazu finden Sie unter Verbindung mit Oracle Support aufnehmen.

PDE-UDD002	Kein Objekt ausgewählt.

 Ursache:	Sie haben eine Schaltfläche ausgewählt, um einen Vorgang mit einem Datenbankobjekt durchzuführen, ohne den Namen des gewünschten Datenbankobjekts ausgewählt oder eingegeben zu haben.

 Maßnahme:	Wählen Sie den Namen eines Datenbankobjekts aus bzw. geben Sie ihn ein, und wiederholen Sie den Vorgang.

PDE-UDD003	Geben Sie einen neuen Namen ein.

 Ursache:	Sie haben im Dialogfeld Bibliothek umbenennen die Schaltfläche Umbenennen gewählt, ohne den neuen Namen für die Bibliothek angegeben zu haben.

 Maßnahme:	Geben Sie den neuen Namen für die Bibliothek in das Feld Neuer Name ein, bevor Sie auf die Schaltfläche Umbenennen klicken.

PDE-UGS002	Programmblock kann nicht gefunden werden.

 Ursache:	Sie haben versucht, einen Ersetzen- oder Bearbeitenvorgang mit einem ausgewählten Programmblock im Feld Ergebnisse des Dialogfeldes Suchen und Ersetzen in Programmblöcken auszuführen, das System konnte den ausgewählten Programmblock jedoch nicht finden.

 Maßnahme:	Die Liste mit Programmblöcken in dem Feld Ergebnisse ist möglicherweise nicht aktuell. Versuchen Sie, noch einmal einen Suchvorgang durchzuführen, um die Liste im Feld Ergebnisse abzugleichen.

PDE-UIN002	Geben Sie einen Dateinamen an.

 Ursache:	Sie haben im Dialogfeld Debug-Skript interpretieren die Schaltfläche Interpretieren gewählt, ohne die zu interpretierende Datei angegeben zu haben.

 Maßnahme:	Geben Sie den Namen der gewünschten Datei in das Feld Datei ein, und wiederholen Sie den Vorgang.

PDE-ULD002	Geben Sie einen Dateinamen an.

 Ursache:	Sie haben im Dialogfeld Programmblock laden die Schaltfläche Laden gewählt, ohne die zu ladende Datei angegeben zu haben.

 Maßnahme:	Geben Sie den Namen der gewünschten Datei in das Feld Datei ein, und wiederholen Sie den Vorgang.

PDE-ULD003	Programmblock <Programmblockname> mit Kompilierungsfehlern geladen.

 Ursache:	Sie haben mit Hilfe des Dialogfelds Programmblock laden einen in einer Datei gespeicherten Programmblock geladen, doch dieser Programmblock enthält einen oder mehrere Kompilierungsfehler.

 Maßnahme:	Bearbeiten und kompilieren Sie den geladenen Programmblock mit dem Programmblock-Editor. Weitere Informationen hierzu finden Sie unter Programmblock-Editor.

PDE-ULD004	Datei <Dateiname> enthält keine gültige PL/SQL-Quelle.

 Ursache:	Sie haben mit Hilfe des Dialogfelds Programmblock laden den Inhalt einer Datei geladen, doch die angegebene Datei enthält keine gültige PL/SQL-Quelle.

 Maßnahme:	Wiederholen Sie den Vorgang, und geben Sie dabei den Namen der Datei ein, die die zu ladende PL/SQL-Quelle enthält.

PDE-ULG002	Die Protokolldatei wurde nicht angegeben.

 Ursache:	Sie haben im Dialogfeld Protokoll die Schaltfläche Protokollieren gewählt, ohne eine Protokolldatei angegeben zu haben.

 Maßnahme:	Geben Sie den Namen der gewünschten Datei in das Feld Datei ein, und wiederholen Sie den Vorgang.

PDE-UMG003	Erste Meldung - Bildlauf nach oben nicht möglich.

 Ursache:	Sie wollten den Cursor im Meldungsausschnitt nach oben verschieben und die vorhergehende Meldung auswählen, doch Sie befinden sich bereits bei der ersten Meldung.

 Maßnahme:	Drücken Sie die Pfeiltaste nach oben nur, wenn Sie sich nicht bei der ersten Meldung befinden.

PDE-UMG004	Letzte Meldung - Bildlauf nach unten nicht möglich.

 Ursache:	Sie wollten den Cursor im Meldungsausschnitt nach unten verschieben und die nächste Meldung auswählen, doch Sie befinden sich bereits bei der letzten Meldung.

 Maßnahme:	Drücken Sie die Pfeiltaste nach unten nur, wenn Sie sich nicht bei der letzten Meldung befinden.

PDE-UMP004	Erste Meldung - Bildlauf nach oben nicht möglich.

 Ursache:	Sie wollten den Cursor im Meldungsausschnitt nach oben verschieben und die vorhergehende Meldung auswählen, doch Sie befinden sich bereits bei der ersten Meldung.

 Maßnahme:	Drücken Sie die Pfeiltaste nach oben nur, wenn Sie sich nicht bei der ersten Meldung befinden.

PDE-UMP005	Letzte Meldung - Bildlauf nach unten nicht möglich.

 Ursache:	Sie wollten den Cursor im Meldungsausschnitt nach unten verschieben und die nächste Meldung auswählen, doch Sie befinden sich bereits bei der letzten Meldung.

 Maßnahme:	Drücken Sie die Pfeiltaste nach unten nur, wenn Sie sich nicht bei der letzten Meldung befinden.

PDE-UNP001	Programmblockname muß angegeben werden.

 Ursache:	Sie haben im Dialogfeld Neuer Programmblock die Schaltfläche OK gewählt, ohne einen Programmblocknamen angegeben zu haben.

 Maßnahme:	Geben Sie einen Programmblocknamen in das Feld Name ein, bevor Sie auf die Schaltfläche OK klicken.

PDE-UNP002	Ein gespeicherter Programmblock namens <Name> ist bereits vorhanden.

 Ursache:	Sie wollten einen neuen gespeicherten Programmblock erstellen, dessen Name mit dem Namen eines bereits vorhandenen gespeicherten Programmblocks identisch ist.

 Maßnahme:	Geben Sie einen anderen Namen für den gespeicherten Programmblock in das Feld Name ein, und wiederholen Sie den Vorgang.

PDE-UNP003	Ungültiger Name für gespeicherten Programmblock.

 Ursache:	Sie wollten einen neuen gespeicherten Programmblock mit einem ungültigen Namen erstellen.

 Maßnahme:	Geben Sie einen gültigen Namen für den gespeicherten Programmblock in das Feld Name ein, und wiederholen Sie den Vorgang.

PDE-UOL002	Die Bibliothek muß angegeben werden.

 Ursache:	Sie haben im Dialogfeld Bibliothek öffnen die Schaltfläche Öffnen gewählt, ohne einen Bibliotheksnamen angegeben zu haben.

 Maßnahme:	Geben Sie einen Bibliotheksnamen in das Feld Bibliothek ein, bevor Sie auf die Schaltfläche Öffnen klicken.

PDE-UPF006	Kann Datei <Dateiname> nicht öffnen.

 Ursache:	Sie befanden sich in einem PL/SQL-Feld und versuchten, Daten aus einer Datei zu importieren bzw. in eine Datei zu exportieren, doch die Datei konnte nicht geöffnet werden.

 Maßnahme:	Wenn Sie Daten zu importieren versuchen, müssen Sie eine vorhandene Datei angeben. Beim Exportieren geben Sie eine Datei an, für die Sie schreibberechtigt sind. Dann wiederholen Sie den Vorgang.

PDE-UPW004	Programmblock <Programmblockname> wird bereits in einem anderen Fenster bearbeitet.

 Ursache:	Sie wollten einen Programmblock bearbeiten, der bereits in einem anderen Editorfenster bearbeitet wird.

 Maßnahme:	Wechseln Sie zu dem bereits offenen Editorfenster, um den Programmblock zu bearbeiten.

PDE-UQT001	Die Kurzanleitung wurde nicht gefunden.

 Ursache:	Die Datei mit der Kurzanleitung wurde nicht richtig installiert.

 Maßnahme:	Installieren Sie die Kurzanleitung neu.

PDE-USR005	Suchfolge muß angegeben werden.

 Ursache:	Sie haben im Dialogfeld Suchen/Ersetzen eine Schaltfläche gewählt, um einen Such- oder Ersetzungsvorgang durchzuführen, haben jedoch in das Feld Suchen keine Suchfolge eingegeben.

 Maßnahme:	Geben Sie eine Suchfolge in das Feld Suchen ein, und wiederholen Sie den Vorgang.

PDE-USR006	Ungültiger regulärer Ausdruck.

 Ursache:	Sie wollten mit dem Dialogfeld Suchen/Ersetzen nach einem regulären Ausdruck suchen, doch die in das Feld Suchen eingegebene Suchfolge konnte nicht analysiert werden.

 Maßnahme:	Überprüfen Sie, ob das Feld Suchen spezielle Platzhalterzeichen (z.B. (, ), ~) enthält. Wenn Sie diese Zeichen als konkrete Zeichen verwenden wollen, müssen Sie ihnen ein Umschaltzeichen (\) voranstellen.

PDE- USW002	Die Quelle des gespeicherten Programmblocks ist unvollständig.

 Ursache:	Sie wollten einen gespeicherten Programmblock in der Datenbank kompilieren, doch die Quelle des Programmblocks ist kein vollständiges PL/SQL-Konstrukt.

 Maßnahme:	Geben Sie ein vollständiges PL/SQL-Konstrukt als Quelle des gespeicherten Programmblocks ein, und wiederholen Sie den Kompilierungsvorgang.

PDE-UTA001	Attributname muß angegeben werden.

 Ursache:	Sie haben die Schaltfläche OK im Dialogfeld Attribut ausgewählt, ohne einen Attributnamen anzugeben.

 Maßnahme:	Geben Sie einen Namen für das Attribut in das Textfeld Attributname ein, und wiederholen Sie den Versuch.

PDE-UTE003	Die Datei <Dateiname> kann nicht geöffnet werden.

 Ursache:	Sie befanden sich in einem Textbearbeitungsfeld und versuchten, Daten aus einer Datei zu importieren bzw. in eine Datei zu exportieren, doch die Datei konnte nicht geöffnet werden.

 Maßnahme:	Wenn Sie Daten zu importieren versuchen, müssen Sie eine vorhandene Datei angeben. Beim Exportieren geben Sie eine Datei an, für die Sie schreibberechtigt sind.

PDE-UTG002	Triggername muß angegeben werden.

 Ursache:	Sie haben im Dialogfeld Datenbanktrigger die Schaltfläche Speichern gewählt, ohne einen Triggernamen angegeben zu haben.

 Maßnahme:	Geben Sie einen Namen für den Trigger in das Feld Name ein, bevor Sie auf die Schaltfläche Speichern klicken.

PDE-UTG003	Tabellenname muß angegeben werden.

 Ursache:	Sie haben im Dialogfeld Datenbanktrigger die Schaltfläche Speichern gewählt, ohne eine Basistabelle angegeben zu haben.

 Maßnahme:	Geben Sie eine Basistabelle für den Trigger in das Feld Name ein, bevor Sie auf die Schaltfläche Speichern klicken.

PDE-UTG004	Triggerrumpf muß vollständiger PL/SQL-Code sein.

 Ursache:	Sie haben im Dialogfeld Datenbanktrigger die Schaltfläche Speichern gewählt, ohne ein vollständiges PL/SQL-Konstrukt für den Triggerrumpf angegeben zu haben.

 Maßnahme:	Geben Sie ein vollständiges PL/SQL-Konstrukt für den Triggerrumpf ein, bevor Sie auf die Schaltfläche Speichern klicken.

PDE-UTG005	Triggering-Anweisung muß angegeben werden.

 Ursache:	Sie haben im Dialogfeld Datenbanktrigger die Schaltfläche Speichern gewählt, ohne eine SQL-Anweisung angegeben zu haben, durch die der Trigger ausgelöst wird.

 Maßnahme:	Geben Sie mindestens eine SQL-Anweisung an, durch die der Trigger ausgelöst wird. Sie können bis zu drei Anweisungen festlegen.

PDE-UTG006	Bearbeitet keinen gültigen Trigger.

 Ursache:	Sie wollten einen Trigger bearbeiten, es war jedoch keiner ausgewählt worden.

 Maßnahme:	Wählen Sie die Schaltfläche Neu aus, um einen neuen Trigger zu erstellen.

PDE-UTG007	Trigger enthält einen Fehler.

 Ursache:	Der Fehler in dem Trigger kann ein Syntaxfehler oder eine nicht aufgelöste Referenz sein.

 Maßnahme:	Bearbeiten Sie den Trigger.

PDE-UTM001	Methodenname muß angegeben werden.

 Ursache:	Sie haben die Schaltfläche OK im Dialogfeld Methode ausgewählt, ohne einen Methodennamen anzugeben.

 Maßnahme:	Geben Sie einen Namen für die Methode in das Textfeld Methodenname ein, und wiederholen Sie den Versuch.

PDE-UTM002	Parametername muß angegeben werden.

 Ursache:	Sie haben die Schaltfläche für das Hinzufügen eines Parameters in dem Dialogfeld Methode ausgewählt, haben jedoch keinen Parameternamen angegeben.

 Maßnahme:	Geben Sie einen Namen für den Parameter in das Textfeld Parametername ein, und wiederholen Sie den Versuch.

PDE-UTR002	Programmblock muß angegeben werden.

 Ursache:	Sie haben im Dialogfeld Trigger die Schaltfläche OK gewählt, ohne einen Programmblock angegeben zu haben.

 Maßnahme:	Geben Sie im Feld Programmblock einen Programmblock für den Trigger an, bevor Sie auf die Schaltfläche OK klicken.

PDE-UTR003	Zeilennummer muß angegeben werden.

 Ursache:	Sie haben im Dialogfeld Trigger die Schaltfläche OK gewählt, ohne eine Zeilennummer angegeben zu haben.

 Maßnahme:	Geben Sie im Feld Zeile eine Zeilennummer für den Trigger an, bevor Sie auf die Schaltfläche OK klicken.

PDE-UTR004	Triggerrumpf muß vollständiger PL/SQL-Code sein.

 Ursache:	Sie haben im Dialogfeld Trigger die Schaltfläche OK gewählt, ohne im Feld Triggerrumpf ein vollständiges PL/SQL-Konstrukt angegeben zu haben.

 Maßnahme:	Geben Sie im Feld Triggerrumpf ein vollständiges PL/SQL-Konstrukt an, bevor Sie auf die Schaltfläche OK klicken.

PDE-UTW002	Typname muß angegeben werden.

 Ursache:	Sie haben keinen gültigen Typnamen eingegeben.

 Maßnahme:	Geben Sie einen Namen für den Typ in das Textfeld Typname ein, bevor Sie zum nächsten Schritt gehen.

PDE-UTW003	Der angegebene benutzerdefinierte Typ konnte in der Datenbank nicht erstellt werden.

 Ursache:	Sie haben versucht, einen benutzerdefinierten Typ über den Typ-Assistenten zu erstellen, der Vorgang war jedoch aus einem unbekannten Grund nicht erfolgreich.

 Maßnahme:	Überprüfen Sie den generierten SQL-Befehl im letzten Register des Typ-Assistenten. Beheben Sie alle Fehler, die Sie finden, und wiederholen Sie den Versuch.

PDE-XDA001	Ein Datumsvorgang war nicht erfolgreich.<Oracle Server-Fehler>.

 Ursache:	Sie wollten in Procedure Builder einen Datumsvorgang durchführen, dieser schlug jedoch wegen diesem Oracle Server-Fehler fehl.

 Maßnahme:	Beheben Sie das Problem, das die Oracle Server-Fehlermeldung beschreibt, und wiederholen Sie den Vorgang. Weitere Informationen finden Sie in dem Oracle Server-Handbuch über Fehlermeldungen.

PDE-XGS004	Suchfolge muß angegeben werden.

 Ursache:	Sie haben eine Schaltfläche in dem Dialogfeld Suchen und Ersetzen ausgewählt, um einen Suchen- und Ersetzenvorgang auszuführen, haben jedoch keine Suchfolge in das Feld Suchen eingegeben.

 Maßnahme:	Geben Sie eine Suchfolge in das Feld Suchen ein, und wiederholen Sie den Vorgang.

PDE-XGS005	Ungültiger regulärer Ausdruck.

 Ursache:	Sie haben versucht, mit dem Dialogfeld Suchen und Ersetzen nach einem regulären Ausdruck zu suchen, die in das Feld Suchen eingegebene Zeichenfolge konnte jedoch nicht analysiert werden.

 Maßnahme:	Prüfen Sie, ob in dem Feld Suchen Joker-Zeichen stehen (z.B. (, ), ~), die Sie als literale Zeichen verwenden wollten, vor die Sie jedoch kein Escape-Zeichen (\) gesetzt haben. Weitere Informationen finden Sie unter Reguläre Ausdrücke.


Über den Typ-Assistenten

Der Typ-Assistent führt Sie durch die Schritte, die beim Erstellen eines neuen benutzerdefinierten Oracle8-Datentyps erforderlich sind. Bei diesem Datentyp kann es sich um einen Objekttyp oder einen Collection-Typ handeln.

Bei einem Objekttyp handelt es sich um eine Vorlage, in der die Elemente oder Attribute einer strukturierten Dateneinheit angegeben werden. Bei Attributen kann es sich um vordefinierte Datentypen oder andere strukturierte Dateneinheiten handeln. Mit einem Objekttyp werden auch die Vorgänge oder Methoden angegeben, die Sie mit der Dateneinheit ausführen können. Methoden sind Funktionen oder Prozeduren, die in PL/SQL geschrieben und in der Datenbank gespeichert sind. Sie könnten auch in C geschrieben und extern gespeichert sein.

Bei einem Collection-Typ kann es sich um einen Tabellentyp oder einen Variierenden Array-Typ handeln. Jeder Collection-Typ beschreibt eine Dateneinheit, die aus einer unbestimmten Anzahl von Elementen besteht, die alle denselben Datentyp aufweisen.

Ein Tabellentyp oder eine verschachtelte Tabelle ist eine nicht geordnete Gruppe von Datenelementen. Der Tabellentyp bzw. die verschachtelte Tabelle hat eine einzelne Spalte, bei der es sich um einen vordefinierten Datentyp oder einen Objekttyp handeln kann. Bei einem Objekttyp kann die Tabelle auch als mehrspaltige Tabelle angezeigt werden mit einer Spalte für jedes Attribut des Objekttyps.

Ein Variierender Array-Typ oder VARRAY ist eine geordnete Gruppe von Datenelementen. Die Anzahl von Elementen ist variabel und bezieht sich auf die Größe des Arrays. Sie müssen eine maximale Größe angeben, wenn Sie den Variierenden Array-Typ deklarieren.

Mit dem Typ-Assistenten können Sie einen Objekttyp (mit Attributen und Methoden), Tabellentyp oder VARRAY erstellen. Im allgemeinen verwenden Sie den Typ-Assistenten zur Ausführung der folgenden Aufgaben:

•	Angabe von Namen, Attributen und Methoden für einen Objekttyp

•	Angabe von Namen und Datentypinformationen für einen Tabellentyp oder VARRAY

•	Hinzufügen, Bearbeiten oder Löschen von Attributen eines Objekttyps

•	Hinzufügen, Bearbeiten oder Löschen von Methoden eines Objekttyps

•	Definieren von Einschränkungen für die Methoden eines Objekttyps

Im Typ-Assistenten navigieren

Mit den folgenden Schaltflächen können Sie durch die Seiten navigieren:

•	Abbrechen – bricht alle Änderungen ab, die Sie vorgenommen haben, und beendet den Assistenten

•	Hilfe – zeigt einen Online-Hilfetext für die aktuelle Seite des Assistenten an

•	Zurück – navigiert zu der vorherigen Seite in dem Assistenten

•	Weiter – navigiert zu der nächsten Seite in dem Assistenten

•	Fertig – speichert Änderungen, die Sie mit dem Assistenten vorgenommen haben, und beendet den Assistenten

Hinweis: Wenn Sie auf Weiter oder Zurück klicken, bevor Sie alle erforderlichen Informationen für eine bestimmte Seite eingegeben haben, hindert der Assistent Sie daran, zu der nächsten (oder vorherigen) Seite zu navigieren. Wenn Sie nicht alle erforderlichen Informationen in den Assistenten eingegeben haben und auf Fertig klicken, führt der Assistent Sie automatisch zu dem Register, in dem Sie die Eingabe der erforderlichen Daten abschließen können.


Typ-Assistent: Register Typ auswählen

  Nächster Schritt	  Verwandte Themen

So wählen Sie einen zu erstellenden Oracle8-Typ:

1	Klicken Sie im Register Typ auswählen auf eine Optionsschaltfläche, um einen zu erstellenden Typ anzugeben: Objekt oder Collection.

Bei Auswahl von:

•	Objekt läßt der Typ-Assistent zu, daß Sie Attribute und Methoden hinzufügen.

•	Collection läßt der Typ-Assistent zu, daß Sie die Art des Collection-Typs und dessen Datentyp angeben.

2	Geben Sie einen Namen in das Textfeld Typname ein.

3	Klicken Sie auf Weiter, um das nächste Register Objekttyp oder Collection-Typ anzuzeigen, je nach Auswahl.


Typ-Assistent: Register Objekttyp-Attribute definieren

  Nächster Schritt	  Verwandte Themen

So fügen Sie ein Attribut hinzu:

  Klicken Sie im Register Objekttyp-Attribute definieren auf Hinzufügen.

Daraufhin wird das Dialogfeld Attribut angezeigt.

So bearbeiten Sie ein Attribut:

  Wählen Sie im Register Objekttyp-Attribute definieren ein Attribut aus, und klicken Sie auf Bearbeiten.

Oder

  Doppelklicken Sie auf ein Attribut in dem Listenfeld.

Daraufhin wird das Dialogfeld Attribut angezeigt.

So entfernen Sie ein Attribut:

1	Wählen Sie im Register Objekttyp-Attribute definieren ein Attribut aus, und klicken Sie auf Entfernen.

Daraufhin werden Sie in einem Meldungsfeld aufgefordert, den Löschenvorgang zu bestätigen.

2	Klicken Sie auf Ja, um das hervorgehobene Attribut zu entfernen.

So ändern Sie die Reihenfolge der Attributdefinition:

  Klicken Sie im Listenfeld auf das zu verschiebende Attribut, und ziehen Sie es an die neue Stelle.

Auf diese Weise ändern Sie die Reihenfolge der Parameter der impliziten Konstruktormethode für den Objekttyp. (Mit der Konstruktormethode wird eine Instanz des Typs erstellt.)

Die Parameter einer Konstruktormethode sind die Attribute des Objekttyps; sie werden in derselben Reihenfolge wie die Attributdefinition für den Typ angezeigt.


Dialogfeld Attribut

Im Dialogfeld Attribut können Sie ein neues Attribut für einen Objekttyp hinzufügen oder ein bestehendes Attribut bearbeiten.

Attribut-name	Geben Sie einen Namen für das Attribut ein.
Datentyp	Geben Sie einen vordefinierten Datentyp in das Kombinationsfeld ein, oder wählen Sie einen Datentyp aus der Dropdown-Liste. Um die verfügbaren Objekttypen zu durchsuchen, klicken Sie auf die Schaltfläche ..., um das Dialogfeld Typauswahl anzuzeigen.
Länge	Geben Sie eine Zahl ein, oder wählen Sie eine Zahl mit den Pfeilen nach oben und unten.
Genauigkeit	(nur bei numerischen Datentypen) Geben Sie eine Zahl für die Gesamtanzahl von Ziffern ein.
Skalierung	(nur bei numerischen Datentypen) Geben Sie eine Zahl ein, um die Anzahl von Dezimalstellen anzugeben.


Dialogfeld Typauswahl

Im Dialogfeld Typauswahl können Sie die bestehenden benutzerdefinierten Oracle8-Datentypen durchsuchen und auswählen, auf die Sie in der momentan angemeldeten Datenbank zugreifen können.

Typ	Wählen Sie Objekt, Collection oder ALLE, um die entsprechenden Datentypen anzuzeigen, die dem Benutzernamen gehören, der in der Dropdown-Liste Eigentümer angezeigt wird. Wenn Sie einen Objekttyp definieren, können Sie einen anderen Objekttyp bzw. Collection-Typ als Datentyp für das Objekt auswählen. Wenn Sie einen Collection-Typ definieren, können Sie keinen anderen Collection-Typ als Datentyp für das Objekt auswählen.
Eigentümer	Zeigt eine Dropdown-Liste der Eigentümer der benutzerdefinierten Datentypen an, auf die Sie zugreifen können.  Wählen Sie einen Eigentümernamen, oder wählen Sie ALLE, um die Datentypen für alle Eigentümer anzuzeigen.
Listenfeld	Zeigt die Typen und Namen der Datentypen an, die in den Feldern Typ und Eigentümer ausgewählt sind. Nur die Datentypen, auf die Sie zugreifen können, werden angezeigt. Wenn in dem Feld Eigentümer ALLE ausgewählt ist, steht vor jedem Namen in der Liste der Schemaname in der Punktschreibweise. Wenn ALLE im Feld Typ ausgewählt ist, wird an jeden Namen dessen Typ in Klammern angehängt. Klicken Sie auf einen Datentypnamen in der Liste, um diesen auszuwählen.
Referenz auf Objekt	Wählen Sie dieses Kontrollkästchen, um eine Objektreferenz (REF) des ausgewählten (hervorgehobenen) Objekttyps in dem Listenfeld auszuwählen. Heben Sie die Auswahl dieses Kontrollkästchens auf, um eine Objektinstanz des ausgewählten (markierten) Objekttyps in dem Listenfeld auszuwählen. Nur für Objekttypen verfügbar.
OK	Wählt den hervorgehobenen Datentyp in der Liste aus und schließt das Dialogfeld.


Typ-Assistent: Register Objekttyp-Methoden definieren

  Nächster Schritt	  Verwandte Themen

Methoden sind Funktionen und Prozeduren, die in PL/SQL geschrieben und in der Datenbank gespeichert sind. Sie könnten auch in C geschrieben und extern gespeichert sein. Mit Methoden wird das Verhalten des Objekttyps charakterisiert.

So fügen Sie eine Methode hinzu:

  Klicken Sie im Register Objekttyp-Methoden definieren auf Hinzufügen.

Daraufhin wird das Dialogfeld Methode angezeigt.

So bearbeiten Sie eine Methode:

  Wählen Sie im Register Objekttyp-Methoden definieren eine Methode aus, und klicken Sie auf Bearbeiten.

Oder

  Doppelklicken Sie auf eine Methode in dem Listenfeld.

Daraufhin wird das Dialogfeld Methode angezeigt.

So entfernen Sie eine Methode:

1	Wählen Sie im Register Objekttyp-Methoden definieren eine Methode aus, und klicken Sie auf Entfernen.

Daraufhin werden Sie in einem Meldungsfeld aufgefordert, den Löschenvorgang zu bestätigen.

2	Klicken Sie auf Ja, um die markierte Methode zu entfernen.

So ändern Sie die Einschränkungen für die Methoden eines Objekttyps:

  Klicken Sie im Register Objekttyp-Methoden auf Ändern.

Daraufhin wird das Dialogfeld Standardeinschränkungen angezeigt.


Dialogfeld Standardeinschränkungen

Im Dialogfeld Standardeinschränkungen können Sie die standardmäßigen Pragma-Einschränkungen für die Methoden eines Objekttyps angeben. Die Pragma-Einschränkungen gelten für Elementfunktionen, die aus SQL-Anweisungen aufgerufen werden. Die Einschränkungen verweigern Elementfunktionen den Lese-/Schreibzugriff zu Datenbanktabellen und/oder vordefinierten Variablen.

So geben Sie die standardmäßigen Pragma-Einschränkungen für die Methoden eines Objekttyps an:

  Wählen Sie eines der Kontrollkästchen aus bzw. heben Sie die Auswahl auf.

Hinweis: Sie können Pragma-Einschränkungen für individuelle Elementfunktionen deklarieren. Derartige Pragmas setzen die Standardeinschränkungen außer Kraft.


Dialogfeld Methode

Das Dialogfeld Methode verfügt über zwei Register: Definition und Einschränkungen. Mit diesen Registern können Sie eine Objekttyp-Methode und deren Parameter sowie die Einschränkungen für den Typ definieren.

Im Register Definition können Sie einen Methodennamen und -typ sowie optionale Parameter angeben. Bei Funktionen können Sie einen Rückgabetyp angeben. Das Register enthält folgende Angaben:

Methodenname	Geben Sie einen Namen für eine Methode ein. Dieser Name kann nicht identisch mit dem Objekttyp-Namen oder einem der Objekttyp-Attribute sein.
Methodentyp	Wählen Sie einen Methodentyp aus der Dropdown-Liste. Die Methodentypen sind Prozedur, Funktion, Zuordnen-Funktion und Sortieren-Funktion. Zuordnen-Funktion und Sortieren-Funktion sind Vergleichsmethoden. Sie können eine Zuordnen-Funktion oder Sortieren-Funktion für einen Objekttyp angeben, jedoch nicht beide.
Rückgabetyp	Für Funktionen wählen Sie einen Rückgabetyp aus der Dropdown-Liste.
Parametername	Geben Sie einen Namen für einen Parameter ein.
Datentyp	Wählen Sie einen vordefinierten Datentyp aus der Dropdown-Liste. Um bestehende Objekttypen zu durchsuchen, klicken Sie auf die Schaltfläche ..., um das Dialogfeld Typauswahl anzuzeigen.
Richtung	Wählen Sie IN, OUT oder IN/OUT aus der Dropdown-Liste.
Standardwert	Geben Sie einen Standardwert für den Parameter ein.
	Klicken Sie, um den Parameter zu der Liste hinzuzufügen. Daraufhin wird das Feld Parametername gelöscht.
	Klicken Sie, um den markierten Parameter aus der Liste zu entfernen. Daraufhin wird ein Meldungsfeld angezeigt, in dem Sie zur Bestätigung aufgefordert werden.
Listenfeld	Zeigt die Liste mit Parametern an, die für die Methode definiert sind. Um die Reihenfolge der Parameterdefinition in dem Listenfeld zu ändern, klicken Sie auf den Parameter und ziehen ihn an die gewünschte Stelle.

Im Register Einschränkungen können Sie die standardmäßigen Pragma-Einschränkungen außer Kraft setzen, die schon für den Objekttyp definiert sind. Pragma-Einschränkungen gelten für Elementfunktionen, die aus SQL-Anweisungen aufgerufen werden. Die Einschränkungen verweigern Elementfunktionen den Lese-/Schreibzugriff zu Datenbanktabellen und/oder vordefinierten Variablen. Das Register Einschränkungen enthält folgende Angaben:

Standardeinschränkungen außer Kraft setzen	Wählen Sie dieses Kontrollkästchen, um die Methodeneinschränkungen anstelle der Standardeinschränkungen zu verwenden. Danach geben Sie die Einschränkungen an, indem Sie die folgenden Optionen auswählen bzw. deren Auswahl aufheben. Heben Sie die Auswahl dieses Kontrollkästchens auf, um die standardmäßigen Pragma-Einschränkungen zu benutzen. Die folgenden Optionen werden deaktiviert, wenn die Auswahl dieses Kontrollkästchens aufgehoben wird.
RNDS, WNDS, RNPS, WNPS	Wählen Sie das entsprechende Kontrollkästchen aus, um die Regel in Kraft zu setzen. Heben Sie die Auswahl des entsprechenden Kontrollkästchens auf, um die Regel zu entfernen.


Typ-Assistent: Register Collection-Typ definieren

  Nächster Schritt	  Verwandte Themen

So definieren Sie einen Collection-Typ:

1	Klicken Sie im Register Collection-Typ definieren auf eine Optionsschaltfläche, um einen zu erstellenden Typ anzugeben: Tabelle oder Variierendes Array (VARRAY).

2	Wenn Sie ein VARRAY erstellen, geben Sie die maximale Größe des Array in das Textfeld Grenzwert ein.

3	Klicken Sie in der Dropdown-Liste Datentyp auf den Pfeil auf der rechten Seite, um einen vordefinierten Datentyp auszuwählen. Um einen bestehenden Objekttyp auszuwählen, klicken Sie auf die Schaltfläche ..., um das Dialogfeld Typauswahl anzuzeigen.

4	(wenn aktiviert) Geben Sie in das Feld Länge eine Zahl ein.

5	(nur bei numerischen Datentypen) Geben Sie im Feld Genauigkeit eine Zahl für die Gesamtanzahl von Ziffern ein.

6	(nur bei numerischen Datentypen) Geben Sie im Feld Skalierung die Anzahl von Dezimalstellen ein.


Typ-Assistent: Register Fertig

  Verwandte Themen

Auf der letzten Seite des Typ-Assistenten wird die SQL-Anweisung angezeigt, die den gerade definierten Oracle8-Typ generiert. Dieses Register ist schreibgeschützt. Sie können die SQL-Anweisung nicht bearbeiten.

Wenn Sie auf Fertig klicken, geht der Typ-Assistent folgendermaßen vor:

•	Bei Collection-Typen – Die SQL-Anweisung CREATE TYPE AS TABLE oder CREATE TYPE AS VARYING ARRAY wird an die Datenbank ausgegeben.

•	Bei Objekttypen – Die SQL-Anweisung CREATE TYPE AS OBJECT wird an die Datenbank ausgegeben. Wenn die Typspezifikation ungültig oder unvollständig ist, wird hinter der Beschriftung Objekttyp im Objektnavigator ein Stern (*) angezeigt.

•	Bei Objekttypen mit Methoden – Ein anfänglicher Objektrumpf wird erstellt und im Editor Gespeicherte Programmblöcke angezeigt. Füllen Sie die Methoden aus, und klicken Sie auf Speichern. Die SQL-Anweisung CREATE TYPE BODY wird an die Datenbank ausgegeben. Wenn der Objektrumpf ungültig ist, werden in dem Fensterbereich Kompilierungsmeldungen Fehlermeldungen angezeigt. Im Anschluß an die Beschriftung Objektrumpf im Objektnavigator wird ein Stern (*) angezeigt.

Hinweis: Der Typ-Assistent speichert den Objekttyp oder Collection-Typ in dem momentan angemeldeten Oracle8 Datenbank-Server.


Über den Typ-Assistenten

  Verwandte Themen

Der Typ-Assistent bietet die schnellste und einfachste Möglichkeit, einen benutzerdefinierten Oracle8-Datentyp zu erstellen. Er führt Sie durch die Schritte, die beim Erstellen eines neuen Objekttyps oder Collection-Typs erforderlich sind, bei dem es sich um einen Tabellentyp oder einen Variierenden Array-Typ (VARRAY) handeln kann. Mit dem Typ-Assistenten können Sie keinen bestehenden Typ bearbeiten.

Mit dem Typ-Assistenten führen Sie insbesondere folgende Aufgaben aus:

•	Angabe von Namen, Attributen und Methoden für einen Objekttyp

•	Angabe von Namen und Datentypinformationen für einen Tabellentyp oder VARRAY

•	Hinzufügen, Bearbeiten oder Löschen von Attributen eines Objekttyps

•	Hinzufügen, Bearbeiten oder Löschen von Methoden eines Objekttyps

•	Definieren von Einschränkungen für die Methoden eines Objekttyps


Benutzerdefinierten Oracle8-Datentyp mit dem Typ-Assistenten erstellen

  Verwandte Themen

Sie müssen bei einem Oracle8 Datenbank-Server angemeldet sein, um einen neuen Oracle8-Datentyp zu erstellen.

So erstellen Sie einen neuen benutzerdefinierten Oracle8-Datentyp:

1	Blenden Sie den Knoten Datenbankobjekte im Objektnavigator ein.

2	Blenden Sie den Schemaknoten ein, auf dem ein neuer Datentyp erstellt werden soll.

3	Klicken Sie auf den Knoten Typen unter dem Schema.

4	Klicken Sie auf [image] in der Navigator-Symbolleiste, oder wählen Sie Navigator [image] Erstellen aus dem Menü, um den Typ-Assistenten anzuzeigen.

5	Führen Sie die angegebenen Schritte aus, um einen Objekttyp oder Collection-Typ zu erstellen. In der Hilfe zu dem Typ-Assistenten finden Sie weitere Unterstützung.

Der Typ-Assistent erstellt und speichert den Objekttyp oder Collection-Typ in dem Oracle8 Datenbank-Server, der momentan angemeldet ist.


Benutzerdefinierten Oracle8-Datentyp bearbeiten

  Verwandte Themen

Mit dem Editor Gespeicherte Programmblöcke ändern Sie bestehende Objekttypen und Collection-Typen.

Sie können die Typspezifikation von Objekttypen und Collection-Typen bearbeiten. Die Spezifikation deklariert die Attribute der Datenstruktur. Bei Objekttypen gibt die Spezifikation außerdem die optionalen Methoden an, mit denen die Daten verarbeitet werden.

Sie können den Rumpf von Objekttypen auch bearbeiten, wodurch die Methoden vollständig definiert und die Spezifikation implementiert wird. Sie können den Rumpf austesten oder ersetzen, ohne die Typspezifikation zu ändern.

So bearbeiten Sie die Typspezifikation eines Objekttyps oder Collection-Typs:

  Doppelklicken Sie im Objektnavigator auf ein Typsymbol, um die Typspezifikation im Editor Gespeicherte Programmblöcke anzuzeigen.

Oder

  Klicken Sie im Popup-Menü für einen Typ im Objektnavigator (wird bei Windows mit der rechten Maustaste aufgerufen) auf Typ bearbeiten, um die Typspezifikation im Editor Gespeicherte Programmblöcke anzuzeigen.

Oder

  Klicken Sie in der Dropdown-Liste Name des Editors Gespeicherte Programmblöcke auf einen Typnamen, um die Quelle anzuzeigen.

Hinweis:  Die Attribute und Standardeinschränkungen eines Objekttyps sind Bestandteil der Typspezifikation.

So bearbeiten Sie die Methoden eines Objekttyps:

  Klicken Sie im Popup-Menü für einen Objekttyp im Objektnavigator (wird bei Windows mit der rechten Maustaste aufgerufen) auf Rumpf bearbeiten, um den Objektrumpf (Methoden) im Editor Gespeicherte Programmblöcke anzuzeigen.

Oder

  Klicken Sie in der Dropdown-Liste Name des Editors Gespeicherte Programmblöcke auf den Namen eines Objekttyps, um die Quelle anzuzeigen.


Benutzerdefinierten Oracle8-Datentyp löschen

  Verwandte Themen

In einem Meldungsfeld werden Sie zur Bestätigung aufgefordert, wenn Sie einen benutzerdefinierten Datentyp löschen.

So löschen Sie einen benutzerdefinierten Datentyp:

 Klicken Sie im Objektnavigator auf einen Objekttyp, Tabellentyp oder Variierenden Array-Typ, und wählen Sie dann Navigator [image] Löschen aus dem Menü, oder klicken Sie auf [image] in der Symbolleiste.

Oder

 Wählen Sie einen Typnamen aus der Dropdown-Liste Name im Editor Gespeicherte Programmblöcke, und klicken Sie dann auf Löschen, um den Typ zu löschen.

Hinweis:  Sie können keinen Typ löschen, der in einem anderen Datentyp, verschachtelten Objekt oder REF-Objekt referenziert wird. Die Referenzen müssen gelöscht werden, bevor Sie die Typdefinition löschen können.


Über benutzerdefinierte Oracle8-Datentypen

  Verwandte Themen

Oracle8 ist ein objekt-relationales Datenbankmanagementsystem, das heißt, Sie können zusätzliche Datenarten definieren – wobei Sie sowohl die Daten als auch die Bearbeitungsmethode der Daten angeben – und diese Arten dann innerhalb des relationalen Modells verwenden können.

Es gibt zwei Kategorien von benutzerdefinierten Datentypen: Objekttypen und Collection-Typen. Benutzerdefinierte Datentypen verwenden die vordefinierten Datentypen (wie z.B. CHAR, VARCHAR2 und NUMBER) und andere benutzerdefinierte Datentypen als Bausteine für Datentypen, die die Struktur und das Verhalten von Daten in Anwendungen modellieren.

Ein Objekttyp dient als Vorlage für Objekte. Ein Objekttyp gibt die Elemente (oder Attribute) an, aus denen eine strukturierte Dateneinheit besteht, wie z.B. eine Bestellung. Einige Attribute, wie z.B. die Liste mit Zeilenelementen, können andere strukturierte Dateneinheiten darstellen. Ein Objekttyp gibt auch die Vorgänge (oder Methoden) an, die Sie mit der Dateneinheit durchführen können, wie z.B. Ermitteln des Gesamtwertes einer Bestellung.

Mit Collection-Typen werden Dateneinheiten beschrieben, die aus einer unbestimmten Anzahl von Elementen bestehen, die alle denselben Datentyp aufweisen. Die Collection-Typen sind Variierende Array-Typen und Tabellentypen.

Ein Variierender Array-Typ gibt eine Dateneinheit mit der Bezeichnung VARRAY an, bei der es sich um eine geordnete Gruppe von Datenelementen handelt, die alle denselben Datentyp aufweisen. Die Anzahl von Elementen in einem VARRAY (oder deren Größe) ist variabel. Sie müssen jedoch eine maximale Größe angeben, wenn Sie den Variierenden Array-Typ deklarieren.

Ein Tabellentyp gibt eine Dateneinheit an, die als verschachtelte Tabelle bezeichnet wird, d.h. eine nicht geordnete Gruppe von Datenelementen, die alle denselben Datentyp aufweisen. Eine verschachtelte Tabelle hat eine einzelne Spalte, und der Typ dieser Spalte entspricht einem vordefinierten Typ oder einem Objekttyp.


Über das PL/SQL V1-Konvertierungsdienstprogramm

  Verwandte Themen

Mit dem PL/SQL V1-Konvertierungsdienstprogramm können Sie die Umstellung von Anwendungen automatisieren, die in PL/SQL V1 oder V2 geschrieben wurden.

Wenn Trigger, Programmblöcke und PL/SQL-Blöcke in den Forms, Berichten und grafischen Anwendungen  in PL/SQL V1 oder V2 geschrieben sind, muß der Code umgestellt werden. Wenn dies nicht geschieht, kann es zu zwei Arten von Problemen kommen:

•	Ein Teil des PL/SQL V1- oder V2-Codes ist in späteren Versionen syntaktisch nicht gültig und erzeugt einen Kompilierungsfehler.

•	Ein Teil des PL/SQL V1- oder V2-Codes ist in späteren Versionen syntaktisch korrekt, hat jedoch eine andere Bedeutung, so daß es zu einem unerwarteten oder fehlerhaften Verhalten kommt.

Das Konvertierungsdienstprogramm löst diese beiden Probleme.


Wie funktioniert das PL/SQL V1-Konvertierungsdienstprogramm
Wie funktioniert das PL/SQLV1-Konvertierungsdienstprogramm?

  Verwandte Themen

Sie können das Konvertierungsdienstprogramm interaktiv oder im Stapelmodus benutzen. In beiden Fällen steuern Sie, ob das Dienstprogramm Ihren Code aktualisiert oder nicht. Der interaktive Modus bietet einen größeren Grad an Flexibilität, da Sie festlegen können, daß das Dienstprogramm einige Änderungen ausführt, während Sie andere manuell ausführen. Im Stapelmodus führt das Dienstprogramm entweder alle Konvertierungen oder gar keine Konvertierungen durch. Unabhängig davon, ob die Konvertierung im interaktiven oder Stapelmodus erfolgt, wird eine Zusammenfassung des Konvertierungsvorgangs in eine Protokolldatei mit der Bezeichnung module.plg geschrieben.

Um das Dienstprogramm interaktiv auszuführen, öffnen Sie gespeicherte Forms, Berichte, grafische Anwendungen oder Bibliotheken, die PL/SQL V1- oder V2-Code enthalten, in dem entsprechenden Builder.

Wenn Sie das Dienstprogramm im Stapelmodus ausführen, wird auf die folgenden Themen verwiesen:

•	Forms im Stapelmodus konvertieren

•	Berichte im Stapelmodus konvertieren

•	Grafische Anwendungen im Stapelmodus konvertieren

Tip

Während das Konvertierungsdienstprogramm Ihren Code umstellen kann, um verschiedene Imkompatibilitäten von V1 oder V2 zu lösen, gibt es doch einige Fälle, die dieses Dienstprogramm nicht lösen kann. Diese führen zu Compiler-Fehlern, die im Dialogfeld Zusammenfassung Konvertierung von PL/SQL V1 (im interaktiven Modus) oder in der Protokolldatei aufgeführt werden, damit Sie diese manuell lösen können. Weitere Informationen finden Sie unter Was kann das PL/SQL V1-Konvertierungsdienstprogramm nicht konvertieren?.

Nachdem das Dienstprogramm eine Anwendung konvertiert und gespeichert hat, wird es für diese Anwendung nie mehr aufgerufen, selbst wenn Sie festgelegt haben, daß alle empfohlenen Konvertierungen ignoriert werden sollen. Dadurch wird verhindert, daß das Dienstprogramm Änderungen überschreibt, die Sie manuell vorgenommen haben.


Bevor Sie entscheiden, welchen Modus Sie benutzen, versuchen Sie, einige Module jedes Typs interaktiv zu konvertieren. Dadurch erhalten Sie eine Vorstellung der Probleme, die bei jedem Modultyp auftreten können, und können Sie entscheiden, wie Sie verfahren. So könnten Sie z.B. feststellen, daß Ihre Forms die sorgfältige Überwachung benötigen, die der interaktive Modus bietet, während die Berichte und PL/SQL-Bibliotheken problemlos im Stapelmodus konvertiert werden können.


PL/SQL V1-Konvertierungsdienstprogramm interaktiv verwenden

  Verwandte Themen

Um das Konvertierungsdienstprogramm interaktiv auszuführen, öffnen Sie Forms, Berichte, grafische Anwendungen oder Bibliotheken, die PL/SQL-Code V1oder V2 enthalten, in dem entsprechenden Builder, und speichern Sie die Anwendung dann.

Wichtig:

•	Nachdem das Konvertierungsdienstprogramm eine Anwendung konvertiert und gespeichert hat, kann das Dienstprogramm nie wieder für diese Anwendung aufgerufen werden  - selbst wenn Sie festlegen, daß alle empfohlenen Konvertierungen ignoriert werden sollen. Dadurch wird verhindert, daß das Dienstprogramm Änderungen überschreibt, die Sie manuell durchgeführt haben.

Jede PL/SQL V1- oder V2-Anweisung in Ihrem Trigger, PL/SQL-Block oder Programmblock wird im Dialogfeld Konvertierung angezeigt. Dieses Dialogfeld enthält auch die Aktion, die das Konvertierungsdienstprogramm ausführt, wenn Sie festlegen, daß die Konvertierung durchgeführt werden soll. Sie haben vollständige Kontrolle darüber, ob die vorgeschlagene Änderung akzeptiert, ignoriert, die ganze Anwendung konvertiert oder der ganze Vorgang gestoppt werden soll. (Sie können auch das PL/SQL V1-Dialogfeld Konvertierungsoptionen benutzen, um die Parameter festzulegen, die den Konvertierungsvorgang im Hintergrund steuern.)

Das Dienstprogramm verfolgt die von Ihnen vorgenommen Änderungen (sowie die Änderungen, die Sie nicht durchführen wollten) und faßt diese am Ende des Konvertierungsvorgangs in einer Protokolldatei mit der Bezeichnung module.plg zusammen. Sie können dann den PL/SQL-Editor aufrufen, um die Anwendung manuell zu aktualisieren.)


PL/SQL V1-Konvertierungsdienstprogramm im Stapelmodus verwenden

  Verwandte Themen

Wenn Sie das Dienstprogramm im Stapelmodus ausführen möchten, wird auf die folgenden Themen verwiesen:

•	Forms im Stapelmodus konvertieren

•	Berichte im Stapelmodus konvertieren

•	Grafische Anwendungen im Stapelmodus konvertieren


Forms im Stapelmodus konvertieren

  Verwandte Themen

So konvertieren Sie eine Form im Stapelmodus:

1	Stellen Sie sicher, daß Sie alle der Form zugeordneten PL/SQL-Bibliotheken konvertiert haben.

2	Führen Sie einen der folgenden Schritte aus:

•	Führen Sie die GUI-Version von Forms Compiler aus.

•	Führen Sie Forms Compiler aus der Befehlszeile aus.

Unabhängig von der ausgewählten Methode wird eine Zusammenfassung des Konvertierungsvorgangs automatisch in die Protokolldatei module.plg geschrieben, wobei module der Name des konvertierten Formmoduls ist.

Verwendungshinweis:

•	Nachdem das Konvertierungsdienstprogramm eine Anwendung konvertiert und gespeichert hat, kann es nie mehr für diese Anwendung aufgerufen werden - selbst wenn Sie festlegen, daß alle empfohlenen Konvertierungen ignoriert werden sollen. Dadurch wird verhindert, daß das Dienstprogramm Änderungen überschreibt, die Sie manuell vorgenommen haben.


Forms mit der GUI-Version von Forms Compiler konvertieren

So konvertieren Sie eine Form mit der GUI-Version des Forms Compilers:

1	Doppelklicken Sie auf das Symbol Form Compiler.

2	Wählen Sie den entsprechenden Modultyp und Modulzugriff.

3	 Wählen Sie das Kontrollkästchen PL/SQL von V1 zu V2.3 umstellen?.

4	Klicken Sie auf OK.


Forms aus der Befehlszeile konvertieren

  Verwandte Themen

So konvertieren Sie eine Form mit dem Form Compiler auf der Befehlszeile:

  Geben Sie folgenden Befehl auf der Befehlszeile ein:

<Form Compiler> MODULE=form BATCH=yes UPGRADE_PLSQL=yes UPGRADE=yes

wobei:

<Form Compiler>	Der Name der ausführbaren Form Compiler-Datei auf Ihrer Plattform ist.
form	Der Name der zu konvertierenden Form ist.
Verwendungshinweise:

•	Wenn Sie UPGRADE_PLSQL=YES angeben, ohne UPGRADE=YES anzugeben, wird eine Fehlermeldung generiert. Da Sie PL/SQL in einer Form nicht konvertieren können, ohne die ganze Form auf 6.0 umzustellen, muß UPGRADE=YES angegeben werden, wenn UPGRADE_PLSQL= YES ist.

•	Wenn Sie viele grafische Anwendungen gleichzeitig konvertieren möchten, verwenden Sie Project Builder. In dem Hilfethema zur Auswahl der Umstellungsmethode in Project Builder finden Sie entsprechende Instruktionen.


Einer Form zugeordnete PL/SQL-Bibliotheken konvertieren

So konvertieren Sie eine PL/SQL-Bibliothek interaktiv:

  Öffnen Sie die Bibliothek in Form Builder, und speichern Sie sie dann.

So konvertieren Sie eine PL/SQL-Bibliothek mit der GUI-Version von Form Compiler:

1	Doppelklicken Sie auf das Symbol Form Compiler.

2	Wählen Sie im Feld Datei die zu konvertierende PL/SQL-Bibliothek aus.

3	Stellen Sie sicher, daß die Zieldatei im Feld Ausgabe in Datei schreiben die Erweiterung .PLL hat.

4	Klicken Sie auf OK.

So konvertieren Sie eine PL/SQL-Bibliothek mit Form Compiler auf der Befehlszeile:

  Geben Sie folgenden Befehl auf der Befehlszeile ein:

<Form Compiler> MODULE=library BATCH=yes UPGRADE_PLSQL=yes UPGRADE=yes

wobei:

<Form Compiler>	Der Name der ausführbaren Form Compiler-Datei auf Ihrer Plattform ist.
library	Der Name der zu konvertierenden Bibliothek ist.
Verwendungshinweis:

•	Wenn Sie UPGRADE_PLSQL=YES angeben, ohne auch UPGRADE=YES anzugeben, wird eine Fehlermeldung generiert. Da Sie PL/SQL in einer Form nicht konvertieren können, ohne die ganze Form auf 6.0 umzustellen, muß UPGRADE=YES angegeben werden, wenn UPGRADE_PLSQL= YES ist.

•	Wenn Sie viele grafische Anwendungen gleichzeitig konvertieren möchten, verwenden Sie Project Builder. In dem Hilfethema zur Auswahl der Umstellungsmethode in Project Builder finden Sie entsprechende Instruktionen.


Form Builder Compiler-Parameter angeben

In dieser Tabelle wird beschrieben, wie sich verschiedene Kombinationen der Parameter BATCH, UPGRADE und UPGRADE_PLSQL auf den Konvertierungsvorgang auswirken:

BATCH	UPGRADE_PLSQL	UPGRADE	Verhalten
NO	YES	YES	PL/SQL in Form wird im Stapelmodus konvertiert (auch wenn BATCH=NO ist). Das Dienstprogramm kann außerhalb von Builder nicht interaktiv aufgerufen werden.
YES	YES	YES	PL/SQL in Form wird im Stapelmodus konvertiert.
NO	NO	YES	PL/SQL in Form wird nicht konvertiert, allerdings wird eine Liste mit empfohlenen Konvertierungen in module.plg geschrieben. Die restliche Form wird auf Forms 6i umgestellt.
YES	NO	YES	PL/SQL in Form wird nicht konvertiert, allerdings wird eine Liste mit empfohlenen Konvertierungen in module.plg geschrieben. Die restliche Form wird auf Forms 6i umgestellt.
NO	NO	NO	Wird benutzt, um eine neue FMX zu kompilieren, ohne die FMB zu ändern. Wenn die Form 1.3 PL/SQL enthält, werden möglicherweise Compiler-Fehler angezeigt, oder der Code verhält sich in V2.3 anders.
YES	NO	NO	Wird benutzt, um eine neue FMX zu kompilieren ohne die FMB zu ändern. Wenn die Form 1.3 PL/SQL enthält, werden möglicherweise Compiler-Fehler angezeigt, oder der Code verhält sich möglicherweise in V2.3 anders.
Wichtig:

Wenn Sie von 45FMT zu 60FMB umstellen und die Option UPGRADE_PLSQL nicht angeben, wird der PL/SQL-Code in der Form nicht konvertiert. Statt dessen wird eine Liste mit empfohlenen Konvertierungen in eine Log-Datei geschrieben. Diese Log-Datei wird im aktuellen Arbeitsverzeichnis gespeichert, das möglicherweise nicht identisch mit dem Verzeichnis ist, in dem die FMT-Datei gespeichert ist.


Berichte im Stapelmodus konvertieren

So konvertieren Sie einen Bericht im Stapelmodus:

1	Stellen Sie sicher, daß Sie alle dem Bericht zugeordneten PL/SQL-Bibliotheken konvertiert haben.

2	Führen Sie einen der folgenden Schritte aus:

•	Führen Sie die GUI-Version von Report Compiler aus.

•	Führen Sie den Report Compiler aus der Befehlszeile aus.

Unabhängig von der ausgewählten Methode wird automatisch eine Zusammenfassung des Konvertierungsvorgangs in die Protokolldatei module.plg geschrieben, wobei module der Name des konvertierten Berichtmoduls ist. Für jedes Modul wird ein separates Protokoll generiert.

Verwendungshinweis:

•	Nachdem das Konvertierungsdienstprogramm eine Anwendung konvertiert und gespeichert hat, kann es nie wieder für diese Anwendung aufgerufen werden - selbst wenn Sie festlegen, daß alle empfohlenen Konvertierungen ignoriert werden sollen. Dadurch wird verhindert, daß das Dienstprogramm Änderungen überschreibt, die Sie manuell durchgeführt haben.


Berichte mit der GUI-Version von Report Compiler konvertieren
Berichte mit der GUI-Version von Reports Compiler konvertieren

So konvertieren Sie einen oder mehrere Berichte mit der GUI-Version von Reports Compiler:

1	Doppelklicken Sie auf das Symbol Report Compiler.

2	Wählen Sie im Feld Dokumenttyp Bericht aus.

3	Wählen Sie den entsprechenden Quell- und Ziel-Typ.

4	Mit der Schaltfläche Durchsuchen im Feld Quelle suchen Sie nach den zu konvertierenden Berichten.

5	Mit der Schaltfläche Durchsuchen im Feld Ziel wählen Sie das Ziel für den konvertierten Bericht aus.

6	Klicken Sie auf OK.


Berichte aus der Befehlszeile konvertieren

So konvertieren Sie einen oder mehrere Berichte aus der Befehlszeile:

  Geben Sie auf der Befehlszeile folgenden Befehl ein:

<Report Compiler> SOURCE=rep1,rep2, UPGRADE_PLSQL=yes

wobei:

<Report Compiler>	Der Name der ausführbaren Report Compiler-Datei auf Ihrer Plattform ist.
rep1,rep2,	Der Name des bzw. der zu konvertierenden Berichte ist.


Einem Bericht zugeordnete PL/SQL-Bibliotheken konvertieren

So konvertieren Sie eine PL/SQL-Bibliothek interaktiv:

  Öffnen Sie die Bibliothek in Report Builder, und speichern Sie sie dann.

So konvertieren Sie eine PL/SQL-Bibliothek mit der GUI-Version von Report Compiler:

1	Doppelklicken Sie auf das Symbol Report Compiler.

2	Geben Sie im Feld Dokumenttyp PL/SQL-Bibliothek an.

3	Geben Sie im Feld Quelltyp .PLL an.

4	Geben Sie im Feld Zieltyp .PLL oder .PLX an. Wenn Sie .PLD angeben, wird PL/SQL V1 oder V2 nicht konvertiert.

So konvertieren Sie eine PL/SQL-Bibliothek mit Report Compiler auf der Befehlszeile:

  Geben Sie auf der Befehlszeile folgenden Befehl aus:

<Report Compiler> SOURCE=lib1,lib2, UPGRADE_PLSQL=yes

wobei:

<Report Compiler>	Der Name der ausführbaren Report Compiler-Datei auf Ihrer Plattform ist.
lib1, lib2	Der Name der zu konvertierenden Bibliothek bzw. Bibliotheken ist.
Verwendungshinweis:

•	Wenn Sie viele grafische Anwendungen gleichzeitig konvertieren möchten, verwenden Sie Project Builder. In dem Hilfethema zur Auswahl der Umstellungsmethode in Project Builder finden Sie entsprechende Instruktionen.


Grafische Anwendungen im Stapelmodus konvertieren

So konvertieren Sie grafische Anwendungen im Stapelmodus:

1	Stellen Sie sicher, daß Sie alle der grafischen Anwendung zugeordneten PL/SQL-Bibliotheken konvertiert haben.

2	Geben Sie den folgenden Befehl aus:

<Graphics Builder> openfile=temp.ogd upgrade_plsql=yes savefile=temp1.ogd quit=yes

wobei:

<Graphics Builder>	Der Name der ausführbaren Graphics Builder-Datei auf Ihrer Plattform ist.
Openfile=temp.ogd	Die grafische Anwendung temp.ogd in Graphics Builder öffnet.
Upgrade_plsql=yes	Den V1 oder V2 PL/SQL-Code konvertiert.
Savefile=temp1.ogd	Die konvertierte grafische Anwendung in temp1.ogd speichert.
Quit=yes	Graphics Builder schließt, nachdem die grafische Anwendung konvertiert wurde.
Verwendungshinweise:

•	Eine Zusammenfassung des Konvertierungsvorgangs wird automatisch in die Protokolldatei mit der Bezeichnung module.plg geschrieben, wobei module der Name der konvertierten grafischen Anwendung ist.

•	Wenn Sie viele grafische Anwendungen gleichzeitig konvertieren möchten, verwenden Sie Project Builder. In dem Hilfethema zur Auswahl der Umstellungsmethode in Project Builder finden Sie entsprechende Instruktionen.

•	Nachdem das Konvertierungsdienstprogramm eine Anwendung konvertiert hat, kann es für diese Anwendung nie wieder aufgerufen werden - selbst wenn Sie festlegen, daß alle empfohlenen Konvertierungen ignoriert werden sollen. Dadurch wird verhindert, daß das Dienstprogramm Änderungen überschreibt, die Sie manuell vorgenommen haben.


Einer grafischen Anwendung zugeordnete PL/SQL-Bibliotheken konvertieren

So konvertieren Sie eine PL/SQL-Bibliothek interaktiv:

  Öffnen Sie die Bibliothek in Graphics Builder, und speichern Sie sie dann.

So konvertieren Sie eine PL/SQL-Bibliothek im Stapelmodus:

Geben Sie den folgenden Befehl aus:

<Graphics Builder> openfile=temp.lib upgrade_plsql=yes savefile=temp1.lib quit=yes

wobei:

<Graphics Builder>	Der Name der ausführbaren Graphics Builder-Datei auf Ihrer Plattform ist.
openfile=temp.lib	Die Bibliothek temp.lib in Graphics Builder öffnet.
Upgrade_plsql=yes	Den V1 oder V2 PL/SQL-Code konvertiert.
Savefile=temp1.lib	Die konvertierte Bibliothek in temp1.lib speichert.
Quit=yes	Graphics Builder schließt, nachdem die Bibliothek konvertiert wurde.
Verwendungshinweise:

•	Eine Zusammenfassung des Konvertierungsvorgangs wird automatisch in die Protokolldatei module.plg geschrieben, wobei module der Name der konvertierten Bibliothek ist.

•	Nachdem das Konvertierungsdienstprogramm eine Anwendung konvertiert hat,kann es nie wieder für diese Anwendung aufgerufen werden - selbst wenn Sie festlegen, daß alle empfohlenen Konvertierungen ignoriert werden sollen. Dadurch wird verhindert, daß das Dienstprogramm Änderungen überschreibt, die Sie manuell vorgenommen haben.

•	Wenn Sie viele grafische Anwendungen gleichzeitig konvertieren möchten, verwenden Sie Project Builder. In dem Hilfethema zur Auswahl der Umstellungsmethode in Project Builder finden Sie entsprechende Instruktionen.


Was konvertiert das PL/SQL V1-Konvertierungsdienstprogramm?

  Verwandte Themen

Das Konvertierungsdienstprogramm kann folgende Fälle innerhalb der Anwendung lösen:

CHAR ersetzt durch VARCHAR2

Zeichenfolgenlänge für VARCHAR2 erforderlich

Standardausdrücke für OUT und IN OUT nicht zulässig

RETURN erfordert einen Ausdruck

Veraltete vordefinierte Prozeduren ersetzt

Funktion Length gibt NULL für Zeichenfolgen mit der Länge null zurück

Übergabe von NULL an überladenes Unterprogramm wird nicht richtig aufgelöst

Fehlende RETURN-Anweisung in Funktion führt zu Laufzeitfehler

Längen-Integritätsregeln entfernt


CHAR ersetzt durch VARCHAR2

In PL/SQL V1 konnten die Datentypen CHAR und VARCHAR2 beliebig austauschbar benutzt werden. In den Versionen nach V1 wird der Datentyp CHAR rechtsbündig mit Leerstellen aufgefüllt.

In PL/SQL V1 ist diese Anweisung:

var1 CHAR(10) := 'hello';

. . .gleichbedeutend mit 'hello'.

In Versionen nach V1 ergibt diese Anweisung jedoch 'hello     ' (insgesamt zehn Zeichen).

Um das V1-Verhalten von CHAR-Variablen beizubehalten, ersetzt das Konvertierungsdienstprogramm alle CHAR(n)-Deklarationen durch die entsprechende VARCHAR2(n)-Anweisung. Im obigen Beispiel wird var1 zu VARCHAR2(10).

Außerdem ersetzt das Konvertierungsdienstprogramm alle VARCHAR-Anweisungen durch den entsprechenden VARCHAR2-Ausdruck.


Zeichenfolgenlänge für VARCHAR2 erforderlich

Versionen nach V1 erfordern eine Länge für alle Variablen vom Typ VARCHAR2. Wenn schon eine Länge für einen Datentyp CHAR angegeben ist, benutzt das Konvertierungsdienstprogramm diese Länge, wenn die Deklaration durch VARCHAR2 ersetzt wird (weitere Informationen finden Sie unter CHAR ersetzt durch VARCHAR2). Zum Beispiel:

var1 CHAR(10);

. . .wird konvertiert in:

var1 VARCHAR2(10);

Wenn das Konvertierungsdienstprogramm eine CHAR- oder VARCHAR2-Anweisung ohne eine Zeichenfolgenlänge entdeckt, empfiehlt es die Länge von einem Zeichen. Zum Beispiel:

var2 CHAR;

. . .wird konvertiert in:

var2 VARCHAR2(1);

Gleichermaßen wird

var3 VARCHAR2;

. . .konvertiert in:

var3 VARCHAR2(1);

Wenn Sie keine Länge für eine VARCHAR2-Deklaration angeben, generiert der Compiler die folgende Fehlermeldung:

FEHLER 215:  Längenintegritätsregel für Zeichenfolge muß im Bereich (1 . . 32767) liegen.


Standardausdrücke für OUT und IN OUT nicht zulässig

  Beispiel

In PL/SQL V1 konnte auf die Parameter OUT und IN OUT ein Standardausdruck folgen, obwohl dieser Ausdruck immer ignoriert wurde. Das Konvertierungsprogramm entfernt die Standardausdrücke für OUT- und IN-Parameter.

Wenn Sie bestehenden Code kompilieren, der OUT- und IN OUT-Parameter mit Standardausdrücken umfaßt, wird die :

Fehlermeldung 230 generiert, die besagt, daß formale OUT- und IN OUT-Parameter keine Standardausdrücke enthalten dürfen.


Beispiel für das Entfernen von Standardausdrücken

  Verwandte Themen 	   Alle Beispiele

Das Konvertierungsdienstprogramm konvertiert diesen PL/SQL V1-Code:

PROCEDURE p (p1 IN OUT NUMBER DEFAULT 25,
             p2 OUT NUMBER DEFAULT 16) IS

BEGIN
. . .
END;

. . . zu:

PROCEDURE p (p1 IN OUT NUMBER, p2 OUT NUMBER) IS

BEGIN
. . .
END;


RETURN erfordert einen Ausdruck

  Beispiel

In PL/SQL V1 konnten Sie eine RETURN-Anweisung ohne einen Ausdruck benutzen, um einen NULL-Wert zurückzugeben. Da alle Funktionen Werte zurückgeben sollten, betrachten Versionen nach V1 die RETURN-Anweisung als obligatorisch. Das Konvertierungsdienstprogramm ersetzt alle RETURN-Anweisungen, auf die kein Ausdruck folgt, durch RETURN NULL.

Wenn Sie bestehenden Code kompilieren, der eine RETURN-Anweisung ohne einen Ausdruck umfaßt, wird die :

Fehlermeldung 503 generiert, die besagt, daß eine RETURN-Anweisung für diesen Rückgabewert erforderlich ist


Beispiel für das Hinzufügen von NULL zu RETURN
Beispiel für Hinzufügen von NULL zu RETURN

  Verwandte Themen 	   Alle Beispiele

Das Konvertierungsdienstprogramm konvertiert diesen PL/SQL V1-Code:

FUNCTION f RETURN NUMBER IS
x NUMBER;
BEGIN
x :=13;
IF . . . THEN
RETURN;
END IF;
RETURN x;
END;

. . . zu:

FUNCTION f RETURN NUMBER IS
x NUMBER;
BEGIN
x :=13;
IF . . . THEN
RETURN NULL;	NULL hier hinzugefügt
END IF;
RETURN x;
END;


Veraltete vordefinierte Prozeduren ersetzt

  Beispiel

Die vordefinierte Prozedur TO_PLS_INTEGER, die Zeichenfolgen in PL/SQL-Ganzzahlen konvertiert, ist in Versionen nach V1 veraltet. Das Konvertierungsdienstprogramm ersetzt TO_PLS_INTEGER durch die vordefinierte Prozedur TO_NUMBER.

Wenn Sie die vordefinierte Prozedur TO_PLS_INTEGER nicht ersetzen, wird der Compiler-

Fehler 201 generiert, der besagt, daß der Bezeichner TO_PLS_INTEGER deklariert werden muß.

Hinweis: Andere veraltete vordefinierte Prozeduren müssen manuell ersetzt werden


Beispiel für das Ersetzen veralteter vordefinierter Prozeduren

  Verwandte Themen 	   Alle Beispiele

.Das Konvertierungsdienstprogramm konvertiert diesen PL/SQL V1-Code:

PROCEDURE foo IS
     v INTEGER;
BEGIN
     v := TO_PLS_INTEGER(24);
END;

. . .in:

PROCEDURE foo IS
     v INTEGER;
BEGIN
     v := TO_NUMBER(24); 	TO_PLS_INTEGER wird ersetzt durch TO_NUMBER
 END;


Funktion Length gibt NULL für Zeichenfolgen mit Nullänge zurück

  Beispiel

In PL/SQL V1 wurde die Funktion LENGTH bei der Anwendung auf einen Null-Ausdruck mit dem Wert null aufgelöst. In Versionen nach V1 wird die Funktion LENGTH bei der Anwendung auf einen Null-Ausdruck mit null ausgewertet.

Um das Verhalten von V1 beizubehalten, fügt das PL/SQL-Konvertierungsdienstprogramm das SQL-Prädikat NVL hinzu, um sicherzustellen, daß die Funktion LENGTH bei der Anwendung für einen Null-Ausdruck mit einem Nullwert aufgelöst wird


Beispiel für die Funktion Length

  Verwandte Themen 	   Alle Beispiele

Das Konvertierungsdienstprogramm konvertiert diesen PL/SQL V1-Code:

c:=null;
l=LENGTH( c );	In V1 ergibt dies 0.

in:

c:=null;
l=NVL(LENGTH( c ),0);	Der Converter bricht die Funktion LENGTH
                                                       mit der vordefinierten Prozedur NVL um,
                                                       und erzwingt somit, daß der Ausdruck mit 0 aufgelöst wird


Übergabe von NULL an überladenes Unterprogramm wird nicht richtig aufgelöst

  Beispiel

In PL/SQL V1 konnten Sie dasselbe Unterprogramm in einem Paket mit zwei verschiedenen Datentypen definieren: VARCHAR2 und RECORD. Dies wird als Überladen des Unterprogramms bezeichnet. Wenn Sie dann einen NULL-Wert an den Programmblock übergeben haben, ist PL/SQL von einem Datentyp VARCHAR2 ausgegangen. Wenn Sie in Versionen nach V1 jedoch einen NULL-Wert an ein überladenes Unterprogramm innerhalb eines Pakets übergeben, müssen Sie dessen Typ definieren.

Um das V1-Verhalten beizubehalten, führt das PL/SQL-Konvertierungsdienstprogramm je nachdem eine der folgenden Aktionen durch, wenn es auf einen NULL-Wert stößt, der an ein überladenes Unterprogramm übergeben wird:

•	Umbruch von NULL mit TO_CHAR( )

•	Umbruch von NULL mit TO_NUMBER( )

•	Umbruch von NULL mit TO_DATE( )

•	Umbruch von NULL mit NOT

Wenn Sie einen NULL-Wert an ein überladenes Unterprogramm übergeben, ohne den gewünschten Datentyp zu definieren, generiert der Compiler die :

Fehlermeldung 307 generiert, die besagt, daß zu viele Deklarationen des PU-Namens diesem Aufruf entsprechen.


Beispiel für die Übergabe von NULL an überladenes Unterprogramm

  Verwandte Themen 	   Alle Beispiele

Das Konvertierungsdienstprogramm konvertiert diesen PL/SQL V1-Code:.

PACKAGE ps1 IS
  TYPE foo IS RECORD(id PLS_INTEGER);
                                    Unterprogramm p ist überladen
  PROCEDURE p(a VARCHAR2);          a ist als Variable vom Typ VARCHAR2 definiert
  PROCEDURE p(a FOO);               a ist außerdem als anderer Datentyps definiert
END;

PROCEDURE foo2 IS
BEGIN
  ps1.p(NULL);                In PL/SQL V1 wird von einem Datentyp VARCHAR2
                                                                      ausgegangen.

END;

... zu:

PACKAGE ps1 IS
  TYPE foo IS RECORD(id PLS_INTEGER);

  PROCEDURE p(a VARCHAR2);
  PROCEDURE p(a FOO);

END;

PROCEDURE foo2 IS
BEGIN
  ps1.p(TO_CHAR(NULL));      Da a vom Typ VARCHAR2 ist, wird der NULL-
                             Wert mit TO_CHAR() umbrochen
END;


Fehlende RETURN-Anweisung in Funktion führt zu Laufzeitfehler

  Beispiel

Wenn die RETURN-Anweisung in einer Funktion in PL/SQL V1 weggelassen wird, führt dies zur Laufzeit zu keinem Problem. In Versionen nach V1 führt dies allerdings zu einem Laufzeitfehler.

Um das V1-Verhalten beizubehalten, fügt das PL/SQL-Konvertierungsdienstprogramm eine RETURN-Anweisung mit einem NULL-Argument zu Funktionen hinzu, die keine RETURN-Anweisung haben.

Hinweis: Eine fehlende RETURN-Anweisung in einer Funktion generiert keinen Compiler-Fehler, sondern einen Laufzeitfehler in Versionen nach V1.


Beispiel für fehlende RETURN-Anweisung

  Verwandte Themen 	   Alle Beispiele

Das Konvertierungsdienstprogramm konvertiert diesen PL/SQL V1-Code:

FUNCTION noreturn (arg IN NUMBER) RETURN char IS
BEGIN
  IF (arg > 100000) THEN
    TEXT_IO.PUT_LINE ('The point of no return.');
  ENDIF;
                         RETURN-Anweisung fehlt
END;

. . . zu:

FUNCTION noreturn (arg IN NUMBER) RETURN char IS
BEGIN
  IF (arg > 100000) THEN
    TEXT_IO.PUT_LINE ('The point of no return.');
  ENDIF;
  RETURN NULL;            RETURN NULL vom Converter hinzugefügt
END;


Längen-Integritätsregeln entfernt

  Beispiel

In PL/SQL V2 werden die Längen-Integritätsregeln bei DATE, BOOLEAN, MLSLABEL und ROWID ignoriert. Dies führt jedoch zu Kompilierungsfehlern in V8.

To preserve V2 behavior, the PL/SQL conversion utility removes the constraints.


Beispiel für das Entfernen von Längen-Integritätsregeln

  Verwandte Themen 	   Alle Beispiele

Das Konvertierungsdienstprogramm konvertiert diesen Code:

PROCEDURE badconstraint IS
d DATE(5);
b BOOLEAN(5);
d MLSLABEL(5); --V2 only
r ROWID(5); --V2 only
BEGIN
  null;
END;

. . . in:

PROCEDURE badconstraint IS
d DATE;
b BOOLEAN;
d MLSLABEL; --V2 only
r ROWID; --V2 only
BEGIN
  null;
END;


Was kann das PL/SQL V1-Konvertierungsdienstprogramm nicht konvertieren?

  Verwandte Themen

Das Konvertierungsdienstprogramm kann zwar viele der angetroffenen PL/SQL-Inkompatibilitäten konvertieren, einige Situationen müssen jedoch manuell gelöst werden:

Eindeutige Namen innerhalb eines Paketes erforderlich

Standard-Paketfunktion nicht mehr benutzt

Neue reservierte Wörter in PL/SQL V2.3 oder höher

%ROWTYPE oder %TYPE in Variablen-Deklarationen erforderlich

Die Warnung "Nicht behebbarer Fehler aufgetreten; Konvertierung in Zeile <Zeilennummer> Spalte <Spalte> abgebrochen" wird angezeigt, wenn ein Compiler-Abbruchfehler vorliegt und der Konvertierungsprozeß nicht fortgesetzt werden kann.


Eindeutige Namen innerhalb eines Pakets erforderlich
Eindeutige Namen innerhalb eines Paketes erforderlich

  Beispiel

Wenn Sie in PL/SQL V1 eine Variable mit demselben Namen wie eine Prozedur oder Funktion in demselben Paket erstellt haben, wurde immer die Variable benutzt. Die Prozedur oder Funktion mit demselben Namen wurde ignoriert. In Versionen nach V1müssen Variablen, Funktionen und Prozeduren innerhalb desselben Pakets eindeutig sein.

Um einen Fehler zu vermeiden, stellen Sie sicher, daß alle Prozeduren innerhalb eines Pakets eindeutige Namen haben, entweder indem Sie dies explizit sicherstellen, oder indem Sie das Wort Unused an den Prozedurnamen anhängen.

Hinweis:  In V1 konnten Sie bei Procedure Builder fälschlicherweise einen Programmblock mit demselben Namen wie ein vordefiniertes Paket erstellen. In Versionen nach V1 ist dies nicht zulässig. Wenn Procedure Builder einen Programmblock mit demselben Namen wie ein vordefiniertes Paket entdeckt, ändert Procedure Builder den Namen des Programmblocks beim Laden, indem zwei Dollarzeichen am Ende des Programmblocknamens angehängt werden. Somit wird  DEBUG zu DEBUG$$.


Beispiel für eindeutige Prozedurnamen in einem Paket

  Verwandte Themen 	   Alle Beispiele

In diesem Beispiel wird zuerst V1 PL/SQL-Code dargestellt, der einen V2.3 Compiler-Fehler erzeugt. Danach wird dargestellt, wie Sie den Code ändern könnten, um den Fehler zu vermeiden.

Ändern Sie diesen Code:

PACKAGE pk1 IS
  v1 NUMBER;	v1 ist als Variable festgelegt
  PROCEDURE v1;	v1 ist auch als Prozedur festgelegt
  PROCEDURE p2 (x OUT NUMBER);
END;

PACKAGE BODY pk1 IS
  PROCEDURE v1 IS
  BEGIN
   . . .
  END;

  PROCEDURE p2 (x OUT NUMBER) IS
  BEGIN
x := pk1.v1;
  END;

END;

. . . zu:

PACKAGE pk1 IS
  v1 NUMBER;
  PROCEDURE v1Unused;	Die Prozedur v1 ist als Unused deklariert
  PROCEDURE p2 (x OUT NUMBER);
END;

PACKAGE BODY pk1 IS
  PROCEDURE v1Unused IS
  BEGIN
   . . .
  END;

  PROCEDURE p2 (x OUT NUMBER) IS
  BEGIN
x := pk1.v1;
  END;

END;


Standard-Paketfunktion nicht mehr benutzt

  Beispiel

In PL/SQL V1 konnten Sie die Funktion FLOOR aus Ihrem eigenen Paket, p1, folgendermaßen aufrufen:

v : = p1.FLOOR(x).

Wenn das Paket p1 keine Funktion mit der Bezeichnung FLOOR hatte, hat PL/SQL die Funktion FLOOR im Standardpaket benutzt. Hier handelte es sich um einen PL/SQL-Codierungsfehler, der in PL/SQL V2.3 oder höher behoben wurde. Deshalb prüft der Compiler in PL/SQL V2.3 das Standardpaket nicht auf den Funktionsnamen, sondern gibt die Situation korrekt als Fehler mit der :

Fehlermeldung 302 an, die besagt, daß die Komponente 'CCCCC' deklariert werden muß,

. . . wobei 'CCCCC' der Funktions- oder Prozedurname ist, der in einem Standardpaket oder einer Standardpaketerweiterung vorhanden ist.

Die Meldung, daß falsche Referenzen in dem vordefinierten Paket V1 aufgelöst werden, wird in das Log geschrieben.

Um den Compiler an das Standardpaket zu verweisen, entfernen Sie den fehlerhaften Paketnamen


Beispiel für das Entfernen des Paketpräfix

  Verwandte Themen 	   Alle Beispiele

Das erste Beispiel enthält einen V1 PL/SQL-Code, der einen V2.3 Compiler-Fehler generiert. Danach wird dargestellt, wie Sie den Code ändern könnten, um den Fehler zu vermeiden.

Ändern Sie diesen Code:

PACKAGE pk1 IS a NUMBER;
END;

PROCEDURE p IS v NUMBER;
BEGIN
v := pk1.FLOOR(20.5);
END;

. . . in:

PACKAGE pk1 IS a NUMBER;
END;

PROCEDURE p IS v NUMBER;
BEGIN
v := FLOOR(20.5);	Präfix entfernt
END;


Neue reservierte Wörter in PL/SQL V2.3 oder höher

  Beispiels

Das Wort VARIANCE ist ein reserviertes Wort in PL/SQL V2.3. Wenn es benutzt wird, generiert es einen Compiler-Fehler.

In dem folgenden Beispiel wird dargestellt, wie VARIANCE benutzt wird, ohne einen Fehler zu generieren


Beispiele für reservierte Wörter

  Verwandte Themen 	   Alle Beispiele

In diesem Beispiel wird zuerst ein V1 PL/SQL-Code dargestellt, der einen V2.3 Compiler-Fehler generiert. Danach wird dargestellt, wie Sie den Code ändern könnten, um den Fehler zu vermeiden.

Beispiel 1:

Ändern Sie diesen Code:

FUNCTION variance (y IN NUMBER)
RETURN NUMBER IS

BEGIN
     . . .
     RETURN . . .;
END;

. . .in:

FUNCTION varianceUniqueName (y IN NUMBER) 	Ein eindeutiger Name wird an Variance angehängt.

RETURN NUMBER IS

BEGIN
     . . .
     RETURN . . .;
END;

Beispiel 2:

Beim Aufruf eines Unterprogramms ändern Sie diesen Code:

PROCEDURE foo IS
     x NUMBER;
     y NUMBER;
BEGIN
     . . .
     x := variance(someNumber);
END;

. . .in:

PROCEDURE foo IS
     x NUMBER;
     y NUMBER;
BEGIN
     . . .
     x := varianceUniqueName(someNumber);
END;


%ROWTYPE oder %TYPE in Variablen-Deklarationen erforderlich

  Beispiele

Der PL/SQL V8 Compiler gibt bei der folgenden unzulässigen Syntax eine Fehlermeldung aus (die der PL/SQL V2 Compiler fälschlicherweise zuläßt):

return variable-expression

procedure (parameter IN <table_name>)

procedure (parameter IN <table_name>.<column_name>)

Die korrekte Syntax wäre:

return variable-type

procedure (parameter IN <table_name>%ROWTYPE)

procedure (parameter IN <table_name>.<column_name>%TYPE)

Um den Fehler zu vermeiden, benutzen Sie den Datentyp des Ausdrucks und hängen %ROWTYPE an den Tabellennamen oder %TYPE an den Spaltennamen an.


Beispiele für Variablen-Deklarationen

  Verwandte Themen 	   Alle Beispiele

In diesen Beispiel wird zuerst PL/SQL V2-Code dargestellt, der den Fehler generiert. Danach wird dargestellt, wie Sie den Code bearbeiten können, um den Fehler zu vermeiden.

Beispiel 1:

Ändern Sie diesen Code:

FUNCTION return_column RETURN dept.dname IS
. . .

. . .in:

FUNCTION return_column RETURN dept.dname%TYPE IS
. . .

Ändern Sie diesen Code:

PROCEDURE foo (name IN dept.dname) IS
. . .

. . .in:

PROCEDURE foo (name IN dept.dname%TYPE) IS
. . .

Beispiel 2:

Ändern Sie diesen Code:

FUNCTION return_table RETURN dept IS
. . .

. . .in:

FUNCTION return_table RETURN dept.%ROWTYPE IS
. . .

Ändern Sie diesen Code:

PROCEDURE foo (name IN dept) IS
. . .

. . .in:

PROCEDURE foo (name IN dept%ROWTYPE) IS
. . .

Beispiel 3:

In diesem Beispiel wird eine Ausnahme dargestellt, in der Sie %TYPE nicht benutzen können.

Bei der Deklaration von Parametern ändern Sie diesen Code:

FUNCTION return_parm (x IN NUMBER)
  RETURN x IS
. . .

.. . in:

FUNCTION return_parm (x IN NUMBER)
  RETURN number IS
. . .


Über Fehlermeldungen

Für jede Komponente gibt es ein eindeutiges Fehlermeldungs-Präfix.

Präfix	Komponente
FRM	Form Builder
OG	Graphics Builder
PDE	Procedure Builder
REP	Report Builder
BRW	Query Builder
BRS	Schema Builder
NX, XBD	Translation Builder
Hinweis: Bei UNIX setzt Report Builder den Wert der Variablen $status, der in einigen Meldungen angezeigt wird, auf  0 (erfolgreicher Abschluß) oder 1 (nicht erfolgreicher Abschluß).

Neben den Fehlermeldungen von Forms Developer oder Reports Developer können möglicherweise auch Fehlermeldungen von anderen Quellen angezeigt werden.

Präfix	Quelle	Hilfe
ORA	Oracle Server	Oracle8 Error Messages-Handbuch
PLS	PL/SQL	Oracle8 Error Messages-Handbuch
NET	SQL*Net	Oracle Network Products Messages-Handbuch
Das Handbuch Oracle8 Error Messages  enthält Fehlermeldungscodes und Beschreibungen für alle Datenbank-Dienstprogramme, wie z.B. SQL*DBA, SQL*Loader,SQL*Module, Export, Import und die Oracle Precompiler.

Systemspezifische Fehlermeldungen werden in der Betriebssystemdokumentation erläutert.


Verbindung mit Oracle Support aufnehmen

Bei einigen Fehlern (d.h. internen Fehlern) müssen Sie Oracle Support anrufen, um den Fehler zu melden. Wenn Sie Verbindung mit Oracle Support aufnehmen, sollten Sie folgende Informationen bereithalten:

1	Ihren Namen, Firmennamen und die ID-Nummer für die Zentrale Kundenunterstützung von Oracle.

2	Hardware, Betriebssystem und Versionsnummer des Betriebssystems, auf dem Oracle Developer läuft.

3	Die vollständige Versionsnummer der Komponenten, die Sie beim Auftreten des Fehlers benutzt haben, einschließlich Revisionsnummer und gegebenenfalls Port-Release-Nummer. (Wenn Sie die Versionsnummer einer Komponenten nicht genau kennen, wählen Sie Hilfe [image] Info.)

4	Alle anderen Produkte (und Versionsnummern), die benutzt wurden, als der Fehler auftrat (z.B. Oracle 8.0.4).

5	Wenn mehrere Fehler oder Meldungen ausgegeben wurden, die genauen Meldungsnummern und die Beschreibung in der Reihenfolge, in der diese angezeigt wurden.

6	Eine Beschreibung des Problems einschließlich ungewöhnlicher Bedingungen.

7	Den Schweregrad des Fehlers entsprechend den folgenden Codes:

•	1:	 Programm kann nicht benutzt werden, kritische Auswirkung auf Vorgänge.

•	2:	 Programm kann benutzt werden, Vorgänge sind ernsthaft eingeschränkt.

•	3:	 Programm kann mit begrenzten Funktionen benutzt werden. Nicht kritisch für den Gesamtbetrieb.

•	4:	 Problem wurde vom Kunden umgangen. Minimale Auswirkung, wenn überhaupt, auf Vorgänge.


Anormale Bedingungen

Gelegentlich werden Sie auf einen Fehler stoßen, der als anormale Bedingung bezeichnet wird. Anormale Bedingungen können folgende Ursachen haben:

•	Ein anderer Benutzer hat eine Funktion ausgeführt, aufgrund derer Ihre Anwendung die angeforderte Task nicht ausführen konnte. Wenn z.B. ein Benutzer die Benutzeroberfläche umgangen und Daten in einer Datenbanktabelle geändert hat, wurde möglicherweise ein ungültiger Wert eingegeben.

•	Die Aufgabe konnte wegen eines Bugs in Oracle Developer nicht erfolgreich ausgeführt werden.

 Maßnahme   Als erstes sollten Sie Verbindung mit dem Systemadministrator aufnehmen, um festzustellen, ob die Meldung von einem anderen Programm als Forms Developer oder Reports Developer verursacht wurde. Wenn Sie feststellen, daß die Meldung nicht auf einen Benutzerfehler oder ein Systemproblem zurückzuführen ist, sollten Sie Verbindung mit Oracle Support aufnehmen aufnehmen.


National Language Support in Forms Developer

  Verwandte Themen

Wenn Sie Anwendungen für den internationalen Gebrauch entwerfen, müssen diese Anwendungen mit Benutzern in deren Landessprache kommunizieren, wobei die spezifischen Ländereinstellungen für die Anzeige der Daten verwendet werden. Der National Language Support (NLS) von Oracle umfaßt die drei folgenden Hauptebenen:

•	Unterstützung von Zeichencodierungsschemata verschiedener Länder.

•	Unterstützung von sprach- und länderspezifischen Regeln.

•	Übersetzung der Oberfläche.

Diese Kombination der Unterstützung auf Zeichenebene, auf Ebene der Datenanzeige und auf Oberflächenebene stellt sicher, daß Ihre Anwendungen in den meisten europäischen und asiatischen Sprachen sowie Sprachen des Mittleren Ostens benutzt werden können, einschließlich Mehr-Byte-Zeichencodierungsschemata und Bidirektionalität.


NLS-Architektur

  Verwandte Themen

Die NLS-Architektur hat zwei Hauptbestandteile:

•	sprachunabhängige Funktionen

•	sprachabhängige Daten

Die sprachunabhängigen Funktionen übernehmen die Verarbeitung von Daten auf die entsprechende Weise, je nach Sprache und Land des Laufzeitoperators, und formatieren diese Daten automatisch entsprechend den lokalen Datums- und Zeitregeln.

Durch das Eingrenzen sprachabhängiger Daten muß Ihre Anwendung nur die Zeichenfolgen übersetzen, die für Ihre Anwendung eindeutig sind.


NLS-Umgebungsvariablen

  Verwandte Themen

Sie können die folgenden Parameter als Umgebungsvariablen zur Angabe der Ländereinstellungen verwenden, die von Forms Developer benutzt werden:

Parameter	Beschreibung:
NLS_CALENDAR	Das benutzte Kalendersystem.
NLS_CREDIT	Zeichenfolge zur Angabe eines positiven Währungsbetrages.
NLS_CURRENCY	Lokales Währungssymbol.
NLS_DATE_FORMAT	Standardformat für Datumsangaben.
NLS_DATE_LANGUAGE	Standardsprache für Datumsangaben.
NLS_DEBIT	Zeichenfolge zur Angabe eines negativen Währungsbetrages.
NLS_ISO_CURRENCY	ISO-Währungssymbol.
NLS_LANG	Die von Forms Developer benutzten Spracheinstellungen.
DEVELOPER_NLS_LANG	Die Sprache für die Forms Developer Builder.
USER_NLS_LANG	Die Sprache für die Laufzeitkomponente von Forms Developer.
NLS_LIST_SEPARATOR	Trennzeichen für Objekte in einer Liste.
NLS_MONETARY_CHARACTERS	Dezimalzeichen und Tausenderzeichen bei Währungsbeträgen.
NLS_NUMERIC_CHARACTERS	Dezimalzeichen und Gruppentrennzeichen bei numerischen Werten.
NLS_SORT	Sortierfolge für Zeichendaten.

Weitere Informationen über diese Parameter finden Sie in Oracle8 Reference.


Umgebungsvariable NLS_LANG

  Beispiele	  Verwandte Themen

Mit der Umgebungsvariablen NLS_LANG werden die Ländereinstellungen festgelegt, die von Forms Developer verwendet werden.

NLS_LANG bestimmt:

•	die Sprache für die Anzeige von Meldungen für den Benutzer, z.B. die Meldung "In Arbeit...".

•	Standardformatmasken für Datums- und Zahlenangaben.

•	Sortierfolge.

•	Zeichen, aus denen der Zeichensatz besteht.

NLS_LANG hat folgende Syntax:

NLS_LANG=language_territory.charset

wobei:

language	die Sprache und deren Regeln zur Anzeige von Meldungen sowie zur Anzeige von Tag und Monat angibt. Wenn keine Sprache angegeben wird, wird standardmäßig Amerikanisch verwendet.
territory	das Land und die Regeln für das Standard-Datumsformat, das für Zahlen benutzte Dezimalzeichen, das Währungssymbol und die Berechnungsgrundlage für Wochen- und Tagesnummern angibt. Wenn kein Land angegeben wird, wird standardmäßig von Amerika ausgegangen.
charset	den Zeichensatz angibt, in dem die Daten dargestellt werden. Hier muß es sich um einen Zeichensatz handeln, der Ihrer Sprache und Plattform entspricht. Dieses Argument steuert außerdem den Zeichensatz, der für die Anzeige von Meldungen benutzt wird.

Weitere Informationen über  NLS_LANG finden Sie in Oracle8 Reference.


Umgebungsvariablen DEVELOPER_NLS_LANG und USER_NLS_LANG

  Beispiele	  Verwandte Themen

In den meisten Fällen reicht die Einstellung eines einzigen Wertes für NLS_LANG aus. Wenn Sie jedoch gleichzeitig auf demselben Rechner zwei Gruppen von Resource- und Meldungsdateien benötigen, stehen zwei weitere Umgebungsvariablen zur Verfügung:

•	DEVELOPER_NLS_LANG gibt die Sprache für den Builder des Produkts an.

•	USER_NLS_LANG gibt die Sprache für die Laufzeitkomponente des Produkts an.

Die Syntax von DEVELOPER_NLS_LANG und USER_NLS_LANG ist identisch mit der Syntax von NLS_LANG.

Benutzen Sie in den folgenden Fällen diese beiden Variablen anstelle der einfachen Variablen NLS_LANG:

•	Sie möchten den Builder in Englisch benutzen, entwickeln jedoch eine Anwendung für eine andere Sprache.

•	Sie erstellen eine Anwendung zur Ausführung in einer Sprache, die einen bidirektionalen Zeichensatz verwendet.

•	Sie erstellen eine Anwendung zur Ausführung in einer Sprache, für die keine lokale Sprachversion des Builder verfügbar ist.

Hinweis  Wenn diese Umgebungsvariablen nicht speziell eingestellt werden, übernehmen sie die Standardwerte von NLS_LANG.

Weitere Informationen über NLS_LANG finden Sie in Oracle8 Reference.


Umgebungsvariablen NLS_LANG einstellen

  Beispiele	  Verwandte Themen

So stellen Sie Umgebungsvariablen NLS_LANG ein:

  Definieren Sie Werte für diese Variablen genau so wie Sie andere Umgebungsvariablen in Ihrem Basisbetriebssystem definieren, wobei Sie plattformspezifische Regeln, wie Pfadlänge usw. berücksichtigen müssen.

So stellen Sie z.B. NLS_LANG für Microsoft Windows NT ein:

1	Wählen Sie Ausführen aus dem Menü Start.

2	Geben Sie 'regedit' ein, und klicken Sie auf OK, um den Registrierungseditor zu öffnen.

Hinweis  Die Windows-Registrierung reagiert empfindlich auf Änderungen. Ändern Sie Umgebungsvariablen nur, wenn dies absolut erforderlich ist. Wenn Sie einen Fehler machen, klicken Sie auf Abbrechen, und beginnen Sie von vorne.

3	Blenden Sie den Knoten HKEY_LOCAL_MACHINE ein. Danach blenden Sie den Knoten SOFTWARE ein.

4	Klicken Sie auf ORACLE, um die Oracle-Umgebungsvariablen im rechten Fensterbereich des Registrierungseditors anzuzeigen.

5	Doppelklicken Sie auf die Umgebungsvariable NLS_LANG.

6	Geben Sie den neuen Wert für NLS_LANG in das Textfeld Wertdaten ein, und klicken Sie auf OK.

Hinweis  Wenn Sie eine NLS-Funktion benutzen möchten, müssen Sie NLS_LANG mindestens so einstellen, daß das Produkt NLS-Komponenten finden kann.


Schriftartalias auf Windows-Plattformen verwenden

  Verwandte Themen

Es gibt möglicherweise Fälle, in denen Sie eine Anwendung mit einer bestimmten Schriftart erstellen, bei der Ausführung dieser Anwendung jedoch feststellen, daß eine andere Schriftart verwendet wird. Diese Probleme treten in den meisten Fällen auf, wenn eine englische Schriftart (wie z.B. MS Sans Serif oder Arial) in einer nicht-westeuropäischen Umgebung eingesetzt wird. Forms Developer prüft nämlich, ob der mit der Schriftart verknüpfte Zeichensatz dem Zeichensatz entspricht, der von der Sprach-Umgebungsvariablen angegeben wird. Wenn die beiden Zeichensätze nicht übereinstimmen, ersetzt Forms Developer die Schriftart automatisch durch eine andere Schriftart, deren zugehöriger Zeichensatz dem Zeichensatz entspricht, der von der Sprachumgebungsvariablen angegeben wird. Dieses automatische Ersetzen stellt sicher, daß die von der Datenbank zurückgegebenen Daten richtig in der Anwendung angezeigt werden.

Hinweis  Wenn Sie lokale Zeichen mit einer englischen Schriftart eingeben, nimmt Windows eine implizite Verknüpfung mit einer anderen Schriftart vor.

Nun gibt es jedoch möglicherweise Fälle, in denen diese Substitution nicht erfolgen soll. Sie können diese vermeiden, indem Sie alle gewünschten Schriftarten dem Zeichensatz WE8ISO8859P1 in der Schrifartalias-Datei zuordnen. Wenn Sie z.B. die Schriftart Arial in Ihrer Anwendung nicht benutzen können, fügen Sie folgende Zeile zu der Schriftartalias-Datei hinzu:

Arial.....=Arial...WE8ISO8859P1


Bei Microsoft Windows unterstützte Zeichensätze

Zeichensatzname	Beschreibung
AR8MSWIN1256	MS Windows Code Page 1256 8-Bit Latin/Arabic
BG8MSWIN	MS Windows 8-Bit Bulgarian Cyrillic
CL8MSWIN1251	MS Windows Code Page 1251 8-Bit Latin/Cyrillic
EE8MSWIN1250	MS Windows Code Page 1250 8-Bit East European
EL8MSWIN1253	MS Windows Code Page 1253 8-Bit Latin/Greek
ET8MSWIN923	MS Windows Code Page 923 8-Bit Estonian
IW8MSWIN1255	MS Windows Code Page 1255 8-Bit Latin/Hebrew
JA16SJIS	Shift-JIS 16-Bit Japanese
KO16KSC5601	KSC5601 16-Bit Korean
LT8MSWIN921	MS Windows Code Page 921 8-Bit Lithuanian
TH8TISASCII	Thai Industrial Standard 620-2533 - ASCII 8-Bit
WE8ISO8859P1	ISO 8859-1 West European
ZHS16CGB231280	CGB2312-80 16-Bit Simplified Chinese
ZHT16BIG5	BIG5 16-Bit Traditional Chinese


Unterstützte arabische Bildschirm-Zeichensätze

ID	Zeichensatzname	Beschreibung
61	AR8ASMO708PLUS	ASMO 708 Plus Client 8-Bit Latin/Arabic
72	AR8XBASIC	EBCDIC XBASIC Client 8-Bit Latin/Arabic
504	AR8NAFITHA711T	Nafitha Enhanced 711 Client 8-Bit Latin/Arabic
505	AR8SAKHR707T	SAKHR 707 Client 8-Bit Latin/Arabic
506	AR8MUSSAD768T	Mussa'd Alarabi/2 768 Client 8-Bit Latin/Arabic
507	AR8ADOS710T	Arabic MS-DOS 710 Client 8-Bit Latin/Arabic
508	AR8ADOS720T	Arabic MS-DOS 720 Client 8-Bit Latin/Arabic
509	AR8APTEC715T	APTEC 715 Client 8-Bit Latin/Arabic
511	AR8NAFITHA721T	Nafitha International 721 Client 8-Bit Latin/Arabic
514	AR8HPARABIC8T	HP ARABIC8 Client 8-Bit Latin/Arabic
567	AR8ARABICMACT	Mac Client 8-Bit Latin/Arabic


Sprach- und länderspezifische Regeln

  Verwandte Themen

Während die Zeichencodierungsschemata sicherstellen, daß die einzelnen für jede Sprache erforderlichen Zeichen verfügbar sind, ermöglicht die Unterstützung nationaler Regeln die richtig lokalisierte Anzeige von Datenobjekten.

Die angegebene Sprache bestimmt die Standardregeln für die folgenden Eigenschaften:

•	Sprache für Server-Meldungen

•	Sprache für Tages- und Monatsnamen und deren Abkürzung (wie in den SQL-Funktionen TO_CHAR und TO_DATE angegeben)

•	Symbole für die Äquivalente von AM, PM, AD und BC

•	Standardsortierfolge für Zeichendaten, wenn ORDER BY angegeben wird (GROUP BY benutzt eine binäre Sortierfolge, es sei denn, ORDER BY wird angegeben)

•	Schreibrichtung

•	bestätigende/negative Antwortfolgen

Wenn die Sprache z.B. auf Deutsch eingestellt ist, werden die Meldungen:

ORA-00942:  table or view does not exist
FRM-10043:  Cannot open file.

wie folgt angezeigt:

ORA-00942: Tabelle oder View nicht vorhanden.
FRM-10043: Datei kann nicht geöffnet werden.

Das angegebene Land bestimmt die Regeln für die folgenden Standardformatierungseigenschaften von Datum und Zahlen:

•	Datumsformat

•	Dezimalzeichen und Gruppentrennzeichen

•	lokales Währungssymbol

•	ISO-Währungssymbol

•	Anfangstag der Woche

•	Haben- und Sollsymbol

•	ISO-Flag für Wochen

•	Trennzeichen für Listen

Wenn das Land z.B. auf Deutschland eingestellt ist, werden Zahlen mit einem Komma als Dezimalzeichen formatiert.


Unterstützte Sprachen

Abkürzung	Sprache
ar	Arabisch
eg	Ägyptisch
us	Amerikanisch
bn	Bengali
ptb	Brasilianisches Portugiesisch
bg	Bulgarisch
dk	Dänisch
d	Deutsch
din	Deutsch DIN
zhs	Einfaches Chinesisch
gb	Englisch
et	Estonisch
sf	Finnisch
f	Französisch
el	Griechisch
iw	Hebräisch
nl	Holländisch
in	Indonesisch
is	Isländisch
I	Italienisch
ja	Japanisch
frc	Kanadisches Französisch
ca	Katalanisch
ko	Koreanisch
hr	Kroatisch
esa	Lateinamerikanisches Spanisch
lv	Lettisch
lt	Litauisch
ms	Malayisch
esm	Mexikanisches Spanisch
n	Norwegisch
pl	Polnisch
pt	Portugiesisch
ro	Rumänisch
ru	Russisch
s	Schwedisch
sk	Slowakisch
sl	Slowenisch
e	Spanisch
th	Thai
zht	Traditionelles Chinesisch
cs	Tschechisch
tr	Türkisch
uk	Ukrainisch
hu	Ungarisch
vn	Vietnamesisch

Hinweis  Die Tatsache, daß eine bestimmte Sprache unterstützt wird, bedeutet nicht unbedingt, daß eine Übersetzung für diese Sprache verfügbar ist.


Unterstützte Länder

Ägypten	Jemen	Rumänien
Algerien	Jordanien	Saudi Arabien
Amerika	Kanada	Schweden
Bahrain	Katalonien	Schweiz
Bangladesh	Korea	Slowakien
Brasilien	Kroatien	Slowenien
Bulgarien	Kuwait	Somalia
China	Lettland	Spanien
CIS	Libanon	Sudan
Dänemark	Libyen	Syrien
Deutschland	Litauen	Taiwan
Djibouti	Malaysia	Thailand
Estonien	Marokko	Tschechische Republik
Finnland	Mauritanien	Tschechoslowakei
Frankreich	Mexiko	Tunesien
Griechenland	Niederlande	Türkei
Hong Kong	Norwegen	Ukraine
Irak	Oman	Ungarn
Island	Österreich	Vereinigte Arabische Emirate
Israel	Polen	Vereinigtes Königreich
Italien	Portugal	Vietnam
Japan	Qatar	Zypern


Bidirektionale Unterstützung in Forms Developer

  Verwandte Themen

Die NLS-Unterstützung für die Sprachen des Mittleren Ostens und Nordafrika umfassen die bidirektionale Unterstützung bei Sprachen, deren natürliche Schreibrichtung von rechts nach links geht.

Mit der bidirektionalen Unterstützung können Entwickler folgendes kontrollieren:

•	Layoutrichtung, einschließlich der Anzeige von Objekten mit Beschriftungen am rechten Rand des Objekts und der richtigen Position der Kontrollkästchen und Optionsschaltflächen.

•	Lesereihenfolge, die die Textrichtung von rechts nach links oder von links nach rechts umfaßt.

•	Ausrichtung, die das Wechseln des Ursprungs von der oberen linken zur unteren rechten Ecke umfaßt.

•	Anfänglicher Tastaturstatus, der automatisch bestimmt, ob lokale oder römische Zeichen erzeugt werden, wenn der Endbenutzer mit der Dateneingabe in Forms beginnt (der Endbenutzer kann diese Einstellung außer Kraft setzen).

Neben der Umgebungsvariablen NLS_LANG können bidirektionale Anwendungen zwei zusätzliche Umgebungsvariablen verwenden:

•	DEVELOPER_NLS_LANG

•	USER_NLS_LANG

Wenn Sie z.B. eine amerikanische Oberfläche bei der Entwicklung einer arabischen Anwendung in einer Windows-Umgebung verwenden möchten, stellen Sie diese Umgebungsvariablen wie folgt ein:

DEVELOPER_NLS_LANG=AMERICAN_AMERICA.AR8MSWIN1256
USER_NLS_LANG=ARABIC_territory.charset


Bidirektionale Unterstützung in Form Builder

  Verwandte Themen

Mit fünf Attributen wird das Erscheinungsbild von Objekten in bidirektionalen Anwendungen angegeben: Richtung, Ausrichtung, Lesereihenfolge, Tastaturstatus und Anfänglicher Tastaturstatus.

Richtung ist ein umfassendes Attribut, das für jedes Objekt so viel Funktionalität wie möglich bereitstellt. Bei allen Objekten, mit Ausnahme von Textobjekten und Anzeigeobjekten, ist das Attribut Richtung das einzige bidirektionale Attribut. Mit seiner Einstellung werden die anderen Aspekte der bidirektionalen Funktion bestimmt. (Listenobjekte umfassen hingegen die Attribute Anfänglicher Tastaturstatus und Tastaturstatus.)

Textobjekte und Anzeigeobjekte haben kein Attribut Richtung. Statt dessen können Sie die Attribute Ausrichtung, Lesereihenfolge, Anfänglicher Tastaturstatus und Tastaturstatus für diese Objekte speziell festlegen.

Sie können den Tastaturstatus auf eine Sprache beschränken. Wenn Sie z.B. Tastaturstatus auf Lokal einstellen, kann der Benutzer die Tastatur nicht zu einer anderen Sprache umschalten.

Wenn die bidirektionalen Attribute auf Standard gesetzt sind, übernehmen diese Attribute ihre Werte von der natürlichen Schreibrichtung, wie mit der Sprach-Umgebungsvariablen angegeben. In den meisten Fällen gewährleistet dies die gewünschte Funktionalität. Sie müssen die bidirektionalen Attribute nur angeben, wenn Sie die geerbten Standardwerte außer Kraft setzen möchten.

In der folgenden Darstellung wird die Vererbung bei bidirektionalen Attributen angegeben:

	Standardeinstellung leitet Wert von diesem Objekt ab
Form	Sprach-Umgebungsvariable
Alle Objekte, wie z.B. Warnfenster, Blöcke, Wertelisten, Fenster und Leinwandausschnitte	Form
Alle Objekte, wie z.B. Textobjekte, Anzeigeobjekte, Kontrollkästchen, Schaltflächen, Optionsgruppen und Listenobjekte	Leinwandausschnitt

Die meisten Attribute, die mit der bidirektionalen Funktion verbunden sind, können programmgesteuert abgerufen und eingestellt werden. Weitere Informationen finden Sie in der Beschreibung des entsprechenden vordefinierten Unterprogramms. Für Informationen über das Abrufen des Wertes des Attributs Richtung für Schaltflächen lesen Sie die Beschreibung von GET_ITEM_PROPERTY.


Bidirektionale Unterstützung in Report Builder

  Verwandte Themen

Mit vier Attributen wird das Erscheinungsbild von Objekten in bidirektionalen Anwendungen angegeben: Ausrichtung, Richtung (bei einem Objekt) und Richtung (bei dem Bericht). Die bidirektionalen Attribute werden in folgender Reihenfolge zu Objekten hinzugefügt:

Modul

Boilerplate

Feld

Externer Boilerplate

Schaltfläche

Parametermasken-Boilerplate

Objekte, die in dieser Liste nicht aufgeführt werden, erfordern entweder keine bidirektionale Unterstützung (z.B. Bilder) oder verwenden automatisch die Standardwerte von einem der obigen Objektattribute.


Unterstützung von Unicode in Forms Developer

  Verwandte Themen

Unicode ist ein globaler Zeichensatz, mit dem mehrsprachige Texte in einer einzigen Anwendung angezeigt werden können. Auf diese Weise können multinationale Unternehmen eine einzige mehrsprachige Anwendung erstellen und diese weltweit einsetzen.

Globale Märkte erfordern einen Zeichensatz, der

•	eine einzige Implementierung eines Produkts für alle Sprachen ermöglicht und dennoch so einfach ist, daß er überall implementiert werden kann.

•	alle wichtigen lebenden Skripts enthält.

•	mehrsprachige Benutzer und Unternehmen unterstützt.

•	den weltweiten Austausch von Daten über das Internet ermöglicht.

Forms Developer unterstützt Unicode. Wenn Sie Unicode verwenden, können Sie mehrere Sprachen in einer Anwendung anzeigen, sowohl Einfach-Byte-Sprachen wie die westeuropäischen, osteuropäischen, bidirektionalen Sprachen des Mittleren Ostens als auch asiatische Mehrfach-Byte-Sprachen wie Chinesisch, Japanisch und Koreanisch.

Durch die Benutzung eines einzigen Zeichensatzes, der alle Sprachen umfaßt, müssen keine weiteren Zeichensätze für verschiedene Sprachen eingesetzt werden.

Um z.B. eine Mehrfach-Byte-Sprache wie Japanisch anzuzeigen, muß die Umgebungsvariable NLS_LANG (bei Windows-Plattformen) folgendermaßen eingestellt werden:

Japan_Japanese.JA16SJIS

Um eine Einfach-Byte-Sprache wie Deutsch anzuzeigen, muß NLS_LANG (bei Windows-Plattformen) folgendermaßen eingestellt werden:

German_Germany.WE8ISO8859P1

Dieses Schema hat den eindeutigen Nachteil, daß Anwendungen nur Zeichen aus jeweils einem Zeichensatz anzeigen können. Daten mit gemischtsprachigen Zeichensätzen können nicht angezeigt werden.

Mit dem Unicode-Zeichensatz können Sie den Zeichensatzabschnitt von NLS_LANG auf UTF8 anstelle des spezifischen Länderzeichensatzes einstellen. Auf diese Weise können Zeichen aus verschiedenen Sprachen und Zeichensätzen gleichzeitig angezeigt werden.

Um z.B. Japanisch und Deutsch gemeinsam auf dem Bildschirm anzuzeigen, muß die Variable NLS_LANG wie folgt eingestellt werden:

Japanese_Japan.UTF8

oder

German_Germany.UTF8

Die Unicode-Funktionalität von Forms Developer gibt dem Anwendungsentwickler und dem Endbenutzer die Möglichkeit, mehrsprachigen Text in einer Form anzuzeigen. Dies umfaßt Text aus einer Datenbank, der Unicode enthält, mehrsprachigen Text, Text in GUI-Objekten (z.B. Beschriftungen von Schaltflächen), Texteingabe über die Tastatur und Text aus der Zwischenablage. Forms Developer unterstützt momentan Unicode auf Windows NT 4.0 und Windows 95/98 (begrenzte Unterstützung).

Hinweis  Wenn Sie Anwendungen für das Web entwickeln, können Sie Unicode verwenden, weil Java Unicode unterstützt.


Erwägungen im Zusammenhang mit der Konfiguration

  Verwandte Themen

UNIX-Server können mehrere ORACLE_HOMEs unterstützen (wobei ORACLE_HOME das Verzeichnis ist, das von und für die Oracle-Software erstellt wird) und können somit mehrere NLS-Einstellungen unterstützen. Dies bedeutet, daß ein einziger UNIX-Server mehrere Sprachen unterstützen kann.

Windows NT kann jedoch nur ein einziges ORACLE_HOME unterstützen und läßt somit nur eine einzige NLS-Einstellung zu. Dies bedeutet, daß Windows NT nur eine Sprache unterstützen kann.


Unterstützung von Unicode-Schriftarten

  Verwandte Themen

Um mehrsprachigen Unicode-Text anzuzeigen, muß eine Schriftart verwendet werden, die die Symbole oder Zeichen der anzuzeigenden Sprachen enthält. Bei Windows NT und Windows 95/98 müssen Sie entweder die von Microsoft bereitgestellten TrueType 'Big Fonts' verwenden oder eine Unicode-Schriftart von einem anderen Hersteller. Wenn Sie versuchen, mehrsprachigen Text einzugeben, anzuzeigen oder auszudrucken und unerwartete Zeichen sehen, benutzen Sie wahrscheinlich keinen Big Font. Die von Microsoft unter NT 4.0 bereitgestellten Big Fonts umfassen:

•	Arial

•	Courier New

•	Lucida Console

•	Lucida Sans Unicode

•	Times New Roman

Wenn die Big Fonts von Windows den Anforderungen nicht gerecht werden, kann auch eine Schriftart von einem anderen Hersteller benutzt werden.


Unicode-Unterstützung aktivieren

  Verwandte Themen

Um die Unicode-Unterstützung in Forms Developer zu aktivieren, stellen Sie NLS_LANG wie folgt ein:

NLS_LANG=language_territory.UTF8


Konvertierung zwischen Zeichensätzen

  Verwandte Themen

Wenn Sie mit der Entwicklung von Anwendungen zur Benutzung in mehreren Sprachen beginnen, müssen Sie die Zeichensätze berücksichtigen, die die Endbenutzer der Anwendung verwenden, sowie die Zeichensätze, die die Anwendungsentwickler benutzen. Während die Konvertierung auf Zeichensatzebene zur Laufzeit automatisch erfolgt, wirkt sich die Konvertierung doch auf die Leistung aus.

Wenn Sie z.B. eine Anwendung in einem Zeichensatz generieren und sie in einem anderen Zeichensatz ausführen, werden Sie möglicherweise eine Verminderung der Leistung feststellen. Wenn ein Zeichensatz kein Äquivalent für ein bestimmtes Zeichen enthält, zeigt er statt dessen ein Ersatzzeichen an, z.B. ein Fragezeichen (?). Auch wenn Sie keinen sichtbaren Unterschied feststellen, werden Sie als Entwickler aufgrund von Leistungsfragen auf die Zeichensätze achten, mit denen Sie Ihre Anwendung generieren.

Hinweis  Forms Developer konvertiert nur zwischen Zeichensätzen für dieselbe Sprache, z.B. AR8MSWIN und AR8ISO oder IW8MSWIN und IW8ISO.

Wenn Sie Anwendungen zur Ausführung in mehr als einer Sprache oder auch zur Ausführung in derselben Sprache mit verschiedenen Zeichensätzen entwickeln, werden Sie Ihre Generierungs-Umgebung der Laufzeitumgebung anpassen, um die optimale Leistung zu erzielen:

•	Bestimmen Sie den Zeichensatz, der zur Laufzeit am häufigsten benutzt wird.

•	Stellen Sie die Sprachumgebungsvariable für die Generierung auf diesen Zeichensatz ein.

Hinweis  Bei Form Builder wird der bei der Generierung benutzte Zeichensatz auch zur Laufzeit benutzt, unabhängig von dem in der Laufzeitumgebung angegebenen Zeichensatz.


Benutzeroberfläche von Forms Developer

  Verwandte Themen

Oracle benutzt eine einzige ausführbare Datei bei der Software-Internationalisierung. Dies bedeutet, daß Sie keine separate ausführbare Datei (z.B. f60des.exe) benötigen, um die europäischen Einfach-Byte-Sprachen oder die asiatischen Mehrfach-Byte-Sprachen zu verarbeiten. Dieselben Werkzeuge können benutzt werden, um englische und anderssprachige Anwendungen zu erstellen.

Hinweis  Forms Developer baut auf dem Microsoft Windows-Betriebssystem bezüglich Schriftart und Eingabemethode für die verschiedenen Sprachen auf. Um Text in einer beliebigen Sprache einzugeben und anzuzeigen, müssen Sie eine Windows-Version ausführen, die diese Sprache unterstützt (d.h. um Thai anzuzeigen, müssen Sie Thai Windows ausführen).

Bei der Installation von Forms Developer wählen Sie die Sprache für die zu installierenden Meldungsdateien. Wenn Sie eine Komponente von Forms Developer verwenden (z.B. Form Builder), wird die entsprechende Meldungsdatei basierend auf der Sprach-Umgebungsvariablen benutzt, um die Oberfläche anzuzeigen. Dies umfaßt:

•	Meldungen

•	Menüs und Menüoptionen

•	Dialogfelder

•	Eingabeaufforderungen und Hinweise

•	Warnfenster

Wenn Forms Developer keine Meldungsdatei findet, die der aktuellen Spracheinstellung entspricht, werden standardmäßig die amerikanischen Meldungsdateien verwendet.

Hinweis  Während der Installation können Sie neben Amerikanisch nur eine Sprache angeben, für die Meldungsdateien installiert werden sollen. Wenn Sie Forms Developer später mit einer anderen Sprache benutzen möchten, müssen Sie Forms Developer mit den entsprechenden Meldungsdateien neu installieren.

Die Namen der Meldungsdateien geben sowohl die Forms Developer-Komponente als auch die Sprache an, wobei folgende Regeln für die Dateibenennung verwendet werden:

<Produkt_ID><Sprach_ID>.MSB

Bei Form Builder gilt z.B.:

FMDUS.MSB enthält standardmäßige (amerikanische) Builder-Meldungen

FMGUS.MSB enthält standardmäßige (amerikanische) Generierungs-Meldungen

FMFUS.MSB enthält standardmäßige (amerikanische) Runform-Meldungen

FMFI.MSB enthält italienische Runform-Meldungen

FMFD.MSB enthält deutsche Runform-Meldungen

Weitere Informationen über die Installation von sprachabhängigen Meldungsdateien finden Sie in dem Installation and User Guide für Ihre Plattform.

Hinweis  Sprachergänzungen sind nicht aufwärtskompatibel. Sie gelten nur für die Version von Forms Developer, mit der sie ausgegeben werden. Wenn Sie schon Sprachergänzungen aus früheren Releases haben, müssen diese aus Ihrem System entfernt werden.


Daten mit CONVERT konvertieren

Mit der SQL-Funktion CONVERT können Sie Daten zwischen Zeichensätzen konvertieren. Diese Funktion konvertiert die Binärdarstellung einer Zeichenfolge in einem Zeichensatz in eine andere Darstellung. Weitere Informationen über die Konvertierung finden Sie unter Konvertierung zwischen Zeichensätzen.

Eine vollständige Beschreibung von CONVERT finden Sie in Oracle8 Server SQL Reference.


Standardformatmasken

  Beispiele	  Verwandte Themen

Die Sprach-Umgebungsvariable legt nicht nur die für die Forms Developer-Oberfläche benutzte Sprache (sowohl Builder als auch Runtime) fest, sondern auch die Gruppe von Standardformatmasken, die für die Anzeige von Daten benutzt werden, es sei denn, der Standard wird durch explizite Formatmasken außer Kraft gesetzt. Als Anwendungsentwickler verfügen Sie außerdem über zusätzliche NLS-bezogene Formatmaskenzeichen, die verfügbar sind, wenn Sie die Standardformatmasken außer Kraft setzen wollen.

Alle in Forms Developer oder die Anwendung eingegebenen Daten benutzen die Standardformatmasken, die mit dem jeweiligen Land verknüpft sind. Somit können Sie also die Sprache wechseln, wenn Sie eine Anwendung generieren und diese ausführen, ohne die Datums- und Zahlenformate ändern zu müssen.

Forms Developer benutzt die Standardformatmasken insbesondere:

•	im Builder: Wenn der Builder Standardwerte für Objekte, Bereiche oder Parameter anzeigt.

•	zur Laufzeit: Wenn ein Benutzer Daten in ein Textobjekt eingibt, dessen Typ länderspezifisch ist, wie z.B. DATE oder NUMBER.

Während Sie bei mehrsprachigen Anwendungen mit Datums- und Währungsfeldern arbeiten, sollten Sie folgendes berücksichtigen:

•	Möglicherweise sollten alle angezeigten Objekte (Boilerplate, Textobjekte, Oberflächenobjekte, wie z.B. Schaltflächen und Wertelisten) länger gemacht werden, um die Übersetzung von Text und sprachspezifische Regeln bei der numerischen Anzeige zu berücksichtigen.

•	Ferner müssen Sie beachten, ob NLS-bezogene Formatmaskenzeichen benutzt werden müssen, um spezielle Formatmasken zu erstellen, oder ob die von NLS_LANG aufgerufenen Standardformatmasken ausreichend sind.


Tip
Für eine implizite Konvertierung von Datentypen erwartet PL/SQL, daß die Objekte das amerikanische Standardformat aufweisen (wie z.B. DD-MON-YY). Wenn Sie also in PL/SQL ein Objekt benutzen, dessen Typ länderspezifisch ist, müssen Sie die richtigen Formatmasken angeben. Oracle empfiehlt, daß Sie länderspezifische Objekte mit TO_DATE in PL/SQL übersetzen.

IF :emp.hiredate < TO_DATE(’30-12-1996’,’DD-MM-YYYY’) THEN
   ...


Formatmaskenzeichen

  Beispiele	  Verwandte Themen

Mit den folgenden Formatmaskenzeichen können Sie die Standardformatmasken außer Kraft setzen.

Datums-Formatmaskenzeichen

Zeichen	Rückgabewert
D	Ziffer für den Tag (1-7)
DY	Name des Tages (abgekürzt)
DAY	Name des Tages (mit Leerstellen auf eine Länge von 9 Zeichen aufgefüllt)
WW	Ziffer für die Woche, berechnet mit dem Algorithmus int((day-jan1)/7)
IW	Ziffer der ISO-Woche
MON	Name des Monats (abgekürzt)
MONTH	Name des Monats (mit Leerzeichen auf eine Länge von 9 Zeichen aufgefüllt)
RM	Zeichen für den römischen Monat
I,IY,IYY,IYYYY	Das letzte bzw. die zwei oder drei letzten Ziffern des ISO-Jahres bzw. das ISO-Jahr
BC,AD,B.C.,A.D.	BC- oder AD-Indikator (mit oder ohne Punkte)
AM,PM,A.M.,P.M.	AM- oder PM-Indikator (mit oder ohne Punkt)
Weitere Informationen über ISO und die zugehörigen Datumsformatmasken finden Sie in Oracle Server SQL Reference.

Zahlen-Formatmaskenzeichen

Zeichen	Rückgabewert
C	Internationales Währungssymbol
L	Lokales Währungssymbol
D	Dezimalzeichen
G	Gruppen- (Tausender-) Trennzeichen


Zeichendaten sortieren

  Einschränkungen	  Beispiele	  Verwandte Themen

Wenn Daten sortiert werden, basiert die Sortierfolge konventionell auf den numerischen Werten der Zeichen, wie mit dem Zeichencodierungsschema definiert. Ein derartiger Sortierenvorgang wird als binäres Sortieren bezeichnet und erzeugt vernünftige Ergebnisse für das englische Alphabet, da die ASCII- und EBCDIC-Standards die Buchstaben A bis Z in aufsteigender numerischer Folge definieren.  Hinweis

Wenn jedoch Zeichen vorhanden sind, die in anderen Sprachen benutzt werden, erzeugt ein binärer Sortierenvorgang im allgemeinen keine vernünftigen Ergebnisse. Eine aufsteigende ORDER BY-Abfrage würde z.B. die Zeichenfolgen ABC, ABZ, BCD, ÄBC in dieser Reihenfolge zurückgeben, wobei das Ä einen höheren numerischen Wert als B im Zeichencodierungsschema hat.

Um eine Sortierfolge zu erzeugen, die der alphabetischen Folge der Zeichen bei einer bestimmten Sprache entspricht, muß eine andere Sortierentechnik verwendet werden, die die Zeichen unabhängig von ihren numerischen Werten im Zeichencodierungsschema sortiert. Diese Technik wird als linguistisches Sortieren bezeichnet. Bei einem linguistischen Sortierenvorgang werden Zeichen durch andere Binärwerte ersetzt, die der richtigen linguistischen Folge des Zeichens entsprechen, so daß ein binärer Sortierenvorgang das gewünschte Ergebnis zurückgibt.

Linguistische Sonderfälle  Linguistische Sonderfälle sind Zeichenfolgen, die beim Sortieren als ein einziges Zeichen behandelt werden müssen. Derartige Sonderfälle werden automatisch berücksichtigt, wenn ein linguistischer Sortierenvorgang benutzt wird. Eine der linguistischen Sortierfolgen für Spanisch gibt z.B. an, daß die doppelten Zeichen ch und ll als einfache Zeichen zwischen C und D bzw. zwischen L und M sortiert werden.

Ein weiteres Beispiel ist das scharfe s (ß) im Deutschen. Bei der linguistischen Sortierfolge für Deutsch kann diese Folge als die beiden Zeichen SS sortiert werden, während die amerikanische linguistische Sortierfolge das Zeichen als SZ sortiert.

Sonderfälle wie diese werden ebenfalls behandelt, wenn Großbuchstaben in Kleinbuchstaben konvertiert werden und umgekehrt. Im Deutschen wird z.B. das scharfe s in Großbuchstaben mit SS geschrieben. Derartige Fälle der Konvertierung der Schreibweise werden von den Funktionen NLS_UPPER, NLS_LOWER und NLS_INITCAP behandelt, entsprechend den Konventionen, die von der linguistischen Sortierfolge festgelegt werden. (Die Standardfunktionen UPPER, LOWER und INITCAP können diese Sonderfälle nicht verarbeiten.)

NLSSORT-Funktion  Sie können die SQL-Funktion NLSSORT benutzen, um Zeichendaten zu sortieren. Diese Funktion ersetzt eine Zeichenfolge durch die entsprechende Sortierfolge, die von dem Sortiermechanismus benutzt wird. Bei einem binären Sortierenvorgang ist die Sortierfolge identisch mit der Eingabefolge. Wenn ein linguistischer Sortierenvorgang benutzt wird, gibt NLSSORT die Binärwerte zurück, durch die die Originalfolge ersetzt wird.


Hinweis
In ASCII-Standard stehen alle Großbuchstaben vor Kleinbuchstaben. Beim EBCDIC-Standard ist das Gegenteil der Fall, alle Kleinbuchstaben stehen vor den Großbuchstaben.


Einschränkungen beim linguistischen Sortieren

  Verwandte Themen

Bei Mehrfach-Byte-Zeichensätzen wird das linguistische Sortieren nicht unterstützt.


Zeichenfolgen in einer WHERE-Klausel vergleichen

  Beispiele	  Verwandte Themen

Zeichenfolgen in einer WHERE-Klausel werden mit den Binärwerten der Zeichen verglichen: Ein Zeichen ist 'größer als' ein anderes Zeichen, wenn es einen höheren Binärwert in dem Zeichensatz der Datenbank hat. Da die Folge von Zeichen aufgrund der Binärwerte möglicherweise nicht der alphabetischen Folge für eine Sprache entspricht, werden die Vergleiche den alphabetischen Regeln häufig nicht gerecht. Benutzen Sie die Funktion NLSSORT, um einen linguistischen Sortierenvorgang anstelle eines binären Sortierenvorgangs vorzunehmen.


ORDER BY-Klausel kontrollieren

  Verwandte Themen

Wenn eine linguistische Sortierfolge benutzt wird, wird NLSSORT implizit für jedes Zeichenobjekt in der ORDER BY-Klausel verwendet. Somit ist der für eine ORDER BY-Klausel benutzte Sortiermechanismus (linguistisch oder binär) für die Anwendung transparent.

Wenn jedoch die Funktion NLSSORT explizit für ein Zeichenobjekt in einer ORDER BY-Klausel angegeben wird, wird die implizite NLSSORT-Funktion nicht ausgeführt. Anders ausgedrückt, der linguistische NLSSORT-Ersetzenvorgang erfolgt nur einmal und nicht zweimal.

Die Funktion NLSSORT ist im allgemeinen in einer ORDER BY-Klausel nicht erforderlich, wenn standardmäßig ein linguistischer Sortierenvorgang erfolgt. Wenn jedoch standardmäßig eine binäre Sortierung durchgeführt wird, benutzt eine Abfrage wie

SELECT ENAME FROM EMP

ORDER BY ENAME

einen binären Sortierenvorgang. Ein linguistischer Sortierenvorgang (im folgenden Beispiel für Deutsch) kann wie folgt erhalten werden:

SELECT ENAME FROM EMP

ORDER BY NLSSORT(ENAME, ’NLS_SORT = GERMAN’)


ALTER SESSION benutzen

  Beispiele	  Verwandte Themen

Mit dem SQL-Befehl ALTER SESSION können Sie die NLS-Standardwerte außer Kraft setzen. Angenommen, Sie erstellen einige Parameter (wie z.B. Sprache, Land usw.), und ein Benutzer gibt Werte für diese Parameter an. In diesem Fall könnten Sie die Sitzung ändern, sobald diese Werte angegeben werden.

Hinweis  Zur Laufzeit führt der Server einen Befehl ALTER SESSION für den Client aufgrund der Werte aus, die in NLS_LANG angegeben sind. Wenn NLS_LANG nicht definiert ist, wird die Anweisung ALTER SESSION nicht ausgeführt.

In Form Builder können Sie jeden der folgenden NLS-Parameter für den Befehl ALTER SESSION angeben. Bei Report Builder und Graphics Builder können Sie jedoch nur den Parameter NLS_SORT angeben.

Parameter	Beschreibung
NLS_LANGUAGE	Vom Server zur Rückgabe von Meldungen und Fehlern benutzte Sprache
NLS_TERRITORY	Land für die Standard-Datums- und Währungsmasken
NLS_DATE_FORMAT	Standardformat für Datumsangaben
NLS_DATE_LANGUAGE	Standardsprache für Datumsangaben
NLS_NUMERIC_CHARACTERS	Dezimalzeichen und Gruppentrennzeichen
NLS_ISO_CURRENCY	Internationales ISO-Währungssymbol
NLS_CURRENCY	Lokales Währungssymbol
NLS_SORT	Zeichensortierfolge
NLS_CALENDAR	Aktuelles Kalendersystem

Weitere Einzelheiten über diese Parameter finden Sie in Oracle8 SQL Reference.


NLS-Parameter in SQL-Funktionen verwenden

  Verwandte Themen

Wo immer Sie SQL verwenden, können Sie das NLS-Standardverhalten mit den folgenden NLS-Parametern außerKraft setzen.

SQL-Funktion	NLS-Parameter
TO_DATE	NLS_DATE_LANGUAGE NLS_CALENDAR
TO_NUMBER	NLS_NUMERIC_CHARACTERS NLS_CURRENCY NLS_ISO_CURRENCY
TO_CHAR	NLS_DATE_LANGUAGE NLS_NUMERIC_CHARACTERS NLS_CURRENCY NLS_ISO_CURRENCY NLS_CALENDAR
NLS_UPPER	NLS_SORT
NLS_LOWER	NLS_SORT
NLS_INITCAP	NLS_SORT
NLSSORT	NLS_SORT

Weitere Einzelheiten über diese Parameter finden Sie in Oracle8 SQL Reference.


NLS-Parameter von Form Builder

  Verwandte Themen

Mit den vordefinierten Funktionen von Form Builder können Sie den aktuellen Wert der NLS-Umgebungsvariablen zur Benutzung in PL/SQL-Code abrufen:

	DEVELOPER_NLS_LANG	USER_NLS_LANG
Vordefinierte Prozedur	GET_FORM_PROPERTY	GET_APPLICATION_PROPERTY
Parameter	MODULE_NLS_LANG	USER_NLS_LANG

Da sowohl USER_NLS_LANG als auch DEVELOPER_NLS_LANG standardmäßig den Wert von NLS_LANG verwenden, enthalten die NLS-Parameter von Form Builder den Wert von NLS_LANG, wenn nicht ausdrücklich eine der Variablen gesetzt ist.

Beide NLS-Parameter von Form Builder haben vier Varianten, damit Sie entweder die vollständige Umgebungsvariable oder einen bestimmten Teil der Variablen abrufen können. In der folgenden Tabelle werden die vier Parameter der vordefinierten Prozedur GET_APPLICATION_PROPERTY dargestellt, die die Umgebungsvariable USER_NLS_LANG zurückgibt:

Parameter	Rückgabewert
USER_NLS_LANG	Ganze Variable USER_NLS_LANG
USER_NLS_LANGUAGE	Nur Sprachteil
USER_NLS_TERRITORY	Nur Landesteil
USER_NLS_CHARACTER_SET	Nur Zeichensatzteil

Um die Umgebungsvariable DEVELOPER_NLS_LANG abzurufen, rufen Sie GET_FORM_PROPERTY mit dem Parameter MODULE_NLS_LANG auf.


Druckerdefinitionsdateien und National Language Support

  Verwandte Themen

Wenn Sie Berichte im Zeichenmodus benutzen, sollten Sie die Breite der physikalischen Seite eines Berichts mit einem Zeichen weniger als die Seitenbreite angeben, die in der Druckerdefinitionsdatei definiert ist (.PRT-Datei). Sonst könnten Mehrfach-Byte-Zeichen mit dem letzten Zeichen einer Zeile beginnen und einen Umbruch zur nächsten Zeile vornehmen, um den Vorgang abzuschließen. Wenn die Breite der physikalischen Seite z.B. 80 Zeichen beträgt und die Breite in der Druckerdefinitionsdatei ebenfalls 80 Zeichen beträgt, könnte ein Mehrfach-Byte-Zeichen bei dem 80. Zeichen beginnen. Da Mehrfach-Byte-Zeichen nicht getrennt werden können, müßte bei dem 81. Zeichen ein Überlauf der Zeile erfolgen, um das Mehrfach-Byte-Zeichen zu vervollständigen. Um dies zu vermeiden, sollte die Breite der physikalischen Seite für den Bericht auf 79 eingestellt werden.

In der Druckerdefinitionsdatei können die folgenden für Arabisch und Hebräisch spezifischen NLS-Parameter eingestellt werden:

Benutzung:	Zweck:	Werte:
nls locale	Einstellung der lokalen Variablen der Druck-Engine	Hebräisch oder Arabisch
nls datastorageorder	Einstellung der logischen oder visuellen Datenspeicherung	Logisch oder Visuell
nls contextuallayout	Durchführung eines Prä-Kontext-Layouts bei arabischen Druckern	Nein oder Ja
nls contextualshaping	Durchführung einer Prä-Kontext-Gestaltung bei arabischen Druckern	Nein oder Ja
nls pcharset	Angabe des Zeichensatzes für den Drucker	Beliebiger Zeichensatz

Weitere Informationen über Druckerdefinitionsdateien finden Sie im Hilfesystem zu Report Builder.


Anwendungen übersetzen

  Verwandte Themen

Alle Fehlermeldungen und der gesamte Boilerplate-Text sollten in derselben Sprache angezeigt werden. Wenn Sie eine Anwendung ausführen, zeigt der Endbenutzer Meldungen und Boilerplate-Text aus drei verschiedenen Quellen an:

•	Fehlermeldungen aus dem Server

•	von Forms Developer erzeugte Laufzeit-Fehlermeldungen

•	als Bestandteil der Anwendung definierte Meldungen und Boilerplate-Text

Der National Language Support von Oracle übernimmt die Übersetzung der beiden ersten Quellen. Sie als Anwendungsentwickler sind für die Übersetzung der Meldungen und des Boilerplate-Texts bei der dritten Quelle verantwortlich.

Im allgemeinen gibt es zwei Arten von anwendungsspezifischen Texten, die Sie übersetzen müssen:

•	übersetzbarer Text, wie z.B. Menüs, Boilerplate-Text, Objektbeschriftungen, Meldungen und Hinweise

•	Zeichenfolgen in Triggern und Prozeduren, einschließlich Warnfenstern und Meldungen, die in Triggern definiert sind

Translation Builder hilft Ihnen bei der Übersetzung von 'übersetzbaren Textflgen' in der Benutzeroberfläche in mehrere Sprachen. Translation Builder unterstützt Sie bei der Übersetzung von nahezu allen mehrsprachigen Anwendungen von Forms Developer, indem separate Binärdateien für jede Sprache generiert werden.

Translation Builder hilft Ihnen zwar dabei, Zeichenfolgen in der Benutzeroberfläche zu suchen und zu übersetzen, kann jedoch nicht alle Zeichenfolgenkonstanten in PL/SQL-Triggern und -Prozeduren extrahieren. Konstanten-Text innerhalb von PL/SQL-Blöcken muß manuell übersetzt werden, da dieser Text nicht eindeutig begrenzt ist und häufig aus Variablen und Teilen von Zeichenfolgen besteht.

Eine vollständige Beschreibung von Translation Builder finden Sie in dem Hilfesystem zu Translation Builder.


Erwägungen im Zusammenhang mit dem Entwurf

  Verwandte Themen

Beim Entwurf einer Anwendung, die übersetzt wird, sollten Sie zusätzlichen Platz für Widgets und Boilerplate-Beschriftungen lassen. Um mehrere Zeichensätze zuzulassen und die durch die Übersetzung verursachte Erweiterung zu berücksichtigen, lassen Sie generell 30% Platz um Felder, Umrandungen und Boilerplate-Text frei.

Zum Beispiel:

Prompt auf der linken Seite des Feldes	Lassen Sie 30% Platz links neben dem Prompt frei.
Prompt über dem Feld	Lassen Sie 30% Platz rechts neben dem Prompt frei.
Schaltflächen, Kontrollkästchen, Optionsgruppen und Popup-Listen	Lassen Sie 30% zusätzlichen Platz frei.
Titel	Gestalten Sie die Größe von Umrandungen so, daß der Titel um 30% nach rechts erweitert werden kann.
Nur-Anzeige-Felder	Machen Sie die Größe 30% breiter als in der Ausgangssprache.
Alle Widgets	Machen Sie die Widgets groß genug für eine Übersetzung. So müssen z.B. Schaltflächen groß genug zur Aufnahme der übersetzten Beschriftungen sein. Überprüfen Sie Höhe und Länge der Schaltfläche, damit das höchste benutzte Zeichen aufgenommen werden kann. Berechnen Sie z.B. die Pixel, die zur Darstellung von Kanji-Zeichen erforderlich sind.


Translation Builder-Lösung benutzen

  Verwandte Themen

Sie können Translation Builder benutzen, um nahezu alle mehrsprachigen Anwendungen von Forms Developer zu übersetzen. Wenn die Endbenutzer bei einer Anwendung zur Laufzeit nicht zwischen den Sprachen umschalten müssen, können Sie Translation Builder benutzen und dann separate Binärdateien für jede Sprache generieren.

Wenn die Endbenutzer zur Laufzeit von einer Sprache zu einer anderen wechseln müssen, beenden die Benutzer die Anwendung, ändern die Sprachumgebungsvariable und starten die Anwendung neu.

Mit der Translation Builder-Lösung würden Sie Ihre Anwendung in folgenden Schritten entwickeln:

•	Erstellen einer grundlegenden Anwendungsdefinition (z.B. .FMB, .RDF) in der Quellsprache.

•	Benutzung von Translation Builder, um Zeichenfolgen zur Übersetzung zu extrahieren, die Übersetzung in eine oder mehrere Sprachen durchzuführen und die Zeichenfolgen dann wieder in die Anwendungsdefinition zurückzuspeichern.

•	Manuelles Übersetzen von Standardmeldungen in PL/SQL-Bibliotheken.

•	Benutzung des Generators, um eine Binärversion der Anwendung für jede Zielsprache zu generieren.

Vorteile  Dies ist der einfachste Weg zur schnellen Implementierung von mehrsprachigen Anwendungen. Mit dieser Lösung können Sie Translation Builder im Hinblick auf optimale Leistung einsetzen. Bei einer stabilen Anwendung kann diese Lösung problemlos benutzt werden.

Wenn Sie z.B. eine Anwendung in vier Sprachen erstellt haben und dann den Text einer Feldbeschriftung ändern müssen, würden Sie die Änderung im Builder vornehmen, die Änderung dann in der Definitionsdatei speichern, die neue Feldbeschriftung mit Translation Builder übersetzen und die neuen Meldungen dann in die Definitionsdatei einfügen und neu generieren, um eine Binärdatei mit der neuen Beschriftung zu erstellen.

Nachteile  Wenn Ihre Anwendungen mehrere Sprachen gleichzeitig unterstützen müssen, müssen Sie statt dessen zur Laufzeit zwischen den Sprachen wechseln.


Zur Laufzeit zwischen den Sprachen wechseln

  Verwandte Themen

Eine kleine Anzahl von Anwendungen muß mehrere Sprachen gleichzeitig unterstützen. Möglicherweise zeigt eine Anwendung als erstes ein Fenster in der englischen Sprache an, das während der ganzen Anwendung angezeigt bleibt, während ein Endbenutzer auf eine Schaltfläche in diesem Fenster klicken kann, um die Prompts in Deutsch anzuzeigen und dann wieder in Englisch.

Wenn bei Ihrer Anwendung zur Laufzeit zwischen den Sprachen gewechselt werden muß, können Sie mehr als eine Sprache in einer einzigen Anwendung aufnehmen, vorausgesetzt, die Sprachen benutzen denselben Zeichensatz. Allerdings können Sie den übersetzbaren Text nicht mit Translation Builder suchen, wenn Sie den Text dynamisch zur Laufzeit auffüllen. Statt dessen erstellen Sie Strukturen wie (IF...THEN...ELSIF), um die Anwendung in eine andere Sprache umzuschalten, indem Sie den Wert der NLS-Umgebungsvariablen mit der vordefinierten Prozedur GET_FORM_PROPERTY überprüfen.

Wenn Sie zur Laufzeit zwischen den Sprachen wechseln, würden Sie Ihre Anwendungen wie folgt entwickeln:

•	Entwicklung der ganzen Anwendung für eine Sprache, einschließlich Bibliotheken.

•	Manuelle Übersetzung jeder Bibliothek.

•	Entwurf von Boilerplate-Beschriftungen in Form von entsprechend skalierten Anzeigeobjekten, die dynamisch zur Laufzeit aufgefüllt werden.

Form Builder unterstützt die Zuordnung mehrerer Bibliotheken, so daß Sie eine Bibliothek speziell für Meldungen benutzen können, die übersetzt werden, und die andere Bibliothek für andere Zwecke.

Vorteile  Der Hauptvorteil dieser Lösung besteht darin, daß Sie hochentwickelte Anwendungen unterstützen können, bei denen die Forms hochdynamisch sein können. In diesen Fällen umgeht diese Lösung einige Wartungsprobleme, weil Sie keine separaten Dateien für jede Sprache generieren müssen, sobald sich die Form ändert.

Nachteile  Diese Lösung ist komplizierter, weil sie einen beträchtlichen Aufwand für das Erstellen des sprachspezifischen Meldungsspeichers, für das Auffüllen und Verwalten der Daten und für die manuelle Übersetzung erfordert. So würden Sie z.B. einen WHEN-NEW-FORM-INSTANCE-Trigger einrichten, mit dem Sie die Beschriftungen für jede Schaltfläche festlegen, wobei die korrekten Beschriftungen aus einer zugeordneten Bibliothek basierend auf dem Wert der NLS-Variablen abgerufen werden.


PL/SQL-Bibliotheken für Zeichenfolgen in Code benutzen

  Beispiele	  Verwandte Themen

Während Translation Builder den Benutzer bei der Übersetzung von Meldungen unterstützt, die Bestandteil der standardmäßigen Builder-Oberfläche sind, erfordern Meldungen, die programmgesteuert angezeigt werden, eine besondere Behandlung. Sie können die PL/SQL-Bibliotheken benutzen, um eine flexible Meldungsstruktur für Meldungen in Triggern oder Prozeduren zu integrieren.

Bei anwendungsspezifischen Meldungen – Meldungen, die programmgesteuert über die vordefinierten Routinen MESSAGE oder CHANGE_ALERT_MESSAGE oder durch Zuweisung einer Meldung an ein Anzeigeobjekt aus einem Trigger oder einer Prozedur auf dem Bildschirm angezeigt werden – können Sie die PL/SQL-Bibliotheken, die zugeordnet werden können, zur Implementierung einer flexiblen Meldungsfunktion verwenden. Die Bibliothek kann auf dem Host gespeichert und dann dynamisch zur Laufzeit zugeordnet werden. Zur Laufzeit können Sie basierend auf dem Suchpfad dann die der Form zugeordnete Bibliothek abrufen. (Eine Bibliothek könnte z.B. nur die italienischen Meldungen enthalten.)


Beispiele für National Language Support

  Verwandte Themen 	  Alle Beispiele

Beispiele für das Vergleichen von Zeichenfolgen

Beispiele für Formatmasken

Beispiele für NLS_LANG

Beispiele für PL/SQL-Bibliotheken


Beispiele für ALTER SESSION

  Verwandte Themen

Die folgende Anweisung ändert das Dezimalzeichen in ein Komma und das Tausendertrennzeichen in einen Punkt:

ALTER SESSION
   SET NLS_NUMERIC_CHARACTERS = ',.'

Diese neuen Zeichen werden zurückgegeben, wenn Sie deren Zahlenformatelemente D und G verwenden:

SELECT TO_CHAR(SUM(sal), 'L999G999D99') Total FROM emp

TOTAL
--------------
   FF29.025,00

Die nächste Anweisung ändert das ISO-Währungssymbol in das ISO-Währungssymbol für Amerika:

ALTER SESSION
   SET NLS_ISO_CURRENCY = America

Das für Amerika definierte ISO-Währungssymbol wird benutzt:

SELECT TO_CHAR(SUM(sal), 'C999G999D99') Total FROM emp

TOTAL
---------------
   USD29.025,00

Die nächste Anweisung ändert das lokale Währungssymbol in DM:

ALTER SESSION
   NLS_CURRENCY = 'DM'

Das neue lokale Währungssymbol wird zurückgegeben, wenn Sie das Zahlenformatelement L verwenden:

SELECT TO_CHAR(SUM(sal), 'L999G999D99') Total FROM emp

TOTAL
--------------
   DM29.025,00


Beispiele für das Vergleichen von Zeichenfolgen

  Verwandte Themen 	  Alle Beispiele

Angenommen, eine Spalte (COL1) enthält die Werte ABC, ABZ, BCD und ÄBC in dem ISO 8859/1 8-Bit-Zeichensatz. Außerdem wird davon ausgegangen, daß Sie die folgende Abfrage geschrieben haben:

SELECT COL1 FROM TAB1 WHERE COL1 > 'B'

Die Abfrage würde sowohl BCD als auch ÄBC zurückgeben, da Ä einen höheren numerischen Wert hat als B.

Sie können linguistische Vergleiche mit NLSSORT in der WHERE-Klausel wie folgt vornehmen:

WHERE NLSSORT(column) operator NLSSORT(string)

Beachten Sie, daß NLSSORT auf beiden Seiten des Vergleichsoperators benutzt werden muß.

SELECT COL1 FROM TAB1 WHERE NLSSORT(COL1) > NLSSORT('B')

Wenn eine deutschsprachige Sortierung vorgenommen wird, gibt diese Anweisung keine Folgen zurück, die mit Ä beginnen, da Ä im deutschen Alphabet vor B steht. Wenn nach der schwedischen Sprache sortiert würde, würden diese Folgen zurückgegeben, da Ä im schwedischen Alphabet hinter Z steht.


Beispiele für Formatmasken

  Verwandte Themen 	  Alle Beispiele

Bei NLS-konformen Anwendungen sollten Sie eine Zeichenfolge, die einen Monatsnamen enthält, nicht fest codieren. Wenn jedoch ein fest codierter Monatsname wichtig ist, sollten Sie die vordefinierte Prozedur COPY nicht benutzen. Wenn Sie COPY verwenden, ist der Monatsname möglicherweise falsch, je nachdem, welche Sprache angegeben ist. (Um ein Datum in einer Bibliothek anzugeben, benutzen Sie eine Variable für das Datum, und COPY kann einwandfrei benutzt werden.)

Sprachabhängiges Beispiel (nicht empfohlen):

:emp.hiredate := '30-DEC-96';

copy ('30-DEC-96','emp.hiredate');

Statt dessen verwenden Sie TO_DATE, wie im folgenden Beispiel dargestellt.

Sprachunabhängiges Beispiel (empfohlen):

:emp.hiredate := to_date(’30-12-1996’,’DD-MM-YYYY’);


Beispiele für NLS_LANG

  Verwandte Themen 	  Alle Beispiele

Angenommen, Ihre Anwendung soll in Französisch ausgeführt werden. Die Anwendung wird in Frankreich benutzt, und die Daten werden mit dem Zeichensatz WE8ISO8895P1 angezeigt. In diesem Fall würden Sie NLS_LANG folgendermaßen einstellen:

NLS_LANG=French_France.WE8ISO8895P1

Nun soll Ihre Anwendung zwar weiter in Französisch ausgeführt werden, dieses Mal wird sie jedoch in der Französischen Schweiz benutzt. In diesem Fall würden Sie NLS_LANG wie folgt einstellen:

NLS_LANG=French_Switzerland.WE8ISO8895P1

Weitere Beispiele:

NLS_LANG=Norwegian_Norway.NDK7DEC
NLS_LANG=Norwegian_Norway.WE8ISO8895P1
NLS_LANG=Japanese_Japan.JA16SJIS
NLS_LANG=Arabic_Egypt.AR8MSWIN1256
NLS_LANG=American_America.AR8MSWIN1256
NLS_LANG=American_America.WE8ISO8859P1


Beispiele für PL/SQL-Bibliotheken

  Verwandte Themen 	  Alle Beispiele

FUNCTION nls_appl_mesg(index_no NUMBER)

RETURN CHAR

IS

   msg CHAR(80);

BEGIN

   IF index_no = 1001 THEN

      msg := 'L''impiegato che Voi cercate non esiste...';

   ELSIF index_no = 1002 THEN

      msg := 'Lo stipendio non puo essere minore di zero.';

   ELSIF ...

   :

   ELSE

      msg := 'ERRORE: Indice messaggio inesistente.';

   END IF;

   RETURN msg;

END;

Eine Routine wie diese könnte überall dort benutzt werden, wo normalerweise ein Zeichenausdruck gültig ist; um z.B. eine Warnmeldung mit der entsprechend übersetzten Anwendungsmeldung anzuzeigen, könnten Sie folgenden Code in Ihrer Form aufnehmen:

Change_Alert_Message('My_Error_Alert', nls_appl_mesg(1001));

n := Show_Alert('My_Error_Alert');

Um die Anwendung in einer anderen Sprache anzuzeigen, ersetzen Sie einfach die PL/SQL-Bibliothek, die die Funktion nls_appl_mesg enthält, durch eine Bibliothek desselben Namens, die die Funktion nls_appl_mesg mit übersetztem Text enthält.

Wenn die Anwendung mehrere Sprachen gleichzeitig unterstützen soll, könnte die obige Funktion einen zusätzlichen Parameter akzeptieren, mit dem die gewünschte Sprache angegeben wird, und der Code würde eine zusätzliche Ebene von IF...THEN...ELSIF...ELSE...END IF enthalten, um die verschiedenen Sprachen zu berücksichtigen.


Über die Versionskontrolle

  Verwandte Themen

Mit der Versionskontrolle können mehrere Versionen derselben Datei in einem Archiv verwaltet und gepflegt werden.

Ein Archiv ist ein benutzerdefinierter Ordner, der eine Textversion der Datei sowie Informationen über jede Revision der Datei enthält, einschließlich einer Beschreibung aller Dateiänderungen und der Angabe des Zeitpunkts dieser Änderungen.

Mit einem Archiv kann ein Mitglied Ihres Entwicklungsteams jede Revision einer Datei sicher und konsistent abrufen, ändern und wieder zurückgeben.

Bei Komponenten (z.B. Form Builder) wird die Versionskontrolle über eine allgemeine Schnittstelle zu einem beliebigen Versionskontrollprogramm realisiert, das Sie verwenden möchten. Plugin-Module sind augenblicklich erhältlich für das Polytron Version Control System (PVCS) von INTERSOLV und Pure-Atria Clearcase, wobei weitere Hersteller hinzukommen werden.

Für Informationen über die Installation und Benutzung von PVCS wird auf die INTERSOLV-Dokumentation verwiesen.

PVCS unterstützt auch das Sperren von Dateien und das Erstellen von Archivberichten.


Über Konfigurationsdateien

Es gibt vier Umgebungsvariablen, die für eine optimale Leistung der Versionskontrolloberfläche eingestellt werden müssen. Unter Windows 3.1 werden sie in oracle.ini eingestellt, während sie unter Windows NT oder Windows 95/98 in der Registrierung in dem Schlüssel SOFTWARE/ORACLE festgelegt werden.

Mit DEV2000_SOURCECONTROL wird angegeben, welches Versionskontrollsystem benutzt werden soll. Diese Umgebungsvariable muß auf  "PVCS" eingestellt werden. Da Komponenten (z.B. Form Builder) standardmäßig PVCS benutzt, kommt es in dieser Version zu keinen spürbaren Auswirkungen, wenn diese Variable weggelassen wird. Sobald jedoch zusätzliche Versionskontrollsysteme hinzugefügt werden, stellt die Einstellung dieser Variablen sicher, daß die Versionskontrolle wie gewünscht funktioniert.

DEV2000_PROJECT tritt anstelle der Variablen TVCCFG aus Forms Developer Version 1.0 und 1.1. Sie identifiziert die PVCS-Projektkonfigurationsdatei (.CFG), die benutzt werden soll. Wenn Sie keine Projektkonfigurationsdatei über eine Umgebungsvariable angeben, müssen Sie in jeder Sitzung eine Datei aus dem Dialogfeld Versionskontrolloptionen auswählen.

Mit DEV2000_SCVIEWER wird festgelegt, welches Programm zur Anzeige der Ergebnisse eines Versionskontrollprotokolls oder eines Differenzberichts verwendet werden soll. Um die Anzeige der Ergebnisse zu dekativieren, muß diese Variable auf null (kein Wert) eingestellt werden.

Mit DEV2000_SCCONVERT wird festgelegt, ob Dateien in ASCII konvertiert werden, bevor sie in PVCS eingetragen werden, und wieder zurück in das Binärformat, bevor sie ausgetragen werden. Es sei denn, Sie haben PVCS schon mit einer früheren Version von Forms Developer benutzt und möchten dieses Verhalten beibehalten, sollten Sie bei diesem Eintrag den Standardwert FALSE beibehalten.

Hier ein Beispielauszug aus oracle.ini:

...

DEV2000_SOURCECONTROL=PVCS

DEV2000_PROJECT=C:\PROJECTS\MYPROJ\MYPROJ.CFG

DEV2000_SCVIEWER=NOTEPAD.EXE

DEV2000_SCCONVERT=FALSE

...


Über die Implementierung von PVCS

Wenn Sie bestimmte Objekte (Forms, Menüs, Berichte, grafische Anwendungen, PL/SQL-Bibliotheken) eintragen, wird die Binärdatei automatisch in ein Textdateiäquivalent konvertiert, und die Textdatei wird in die Versionskontrolle eingetragen. Wenn Sie z.B. MYFORM.FMB eintragen würden, würde MYFORM.FMB automatisch in MYFORM.FMT (das Textäquivalent) konvertiert und MYFORM.FMT in die Versionskontrolle eingetragen.

Wenn Sie eine archivierte Datei austragen, wird die Textversion der Datei wiederum in das entsprechende Binärformat konvertiert, das von den Designer-Schnittstellen gelesen werden kann. Wenn Sie z.B. MYFORM.FMT austragen würden, würde die Datei in MYFORM.FMB konvertiert, damit Sie sie bearbeiten können.

Die Archivierung erfolgt für die Textversion der Datei, damit aussagefähigere Differenzberichte zwischen verschiedenen Revisionen einer Datei generiert werden können. Während PVCS die Archivierung von Binärdateien unterstützt, sind Differenzberichte zwischen Revisionen von Binärdateien nicht möglich.

Diese Dateikonvertierung kann zu zusätzlichen Dateien führen, die in Ihrem Arbeitsordner stehen bleiben, je nach PVCS-Einstellungen. Wenn Ihr Projekt so konfiguriert ist, daß Arbeitsdateien nach dem Check-In schreibgeschützt werden, ist sowohl die Binärdatei als auch eine schreibgeschützte Datei im Textformat in Ihrem Ordner vorhanden. Wenn Ihr Projekt jedoch so konfiguriert ist, daß Arbeitsdateien nach dem Check-In gelöscht werden, bleibt nur die Binärdatei in Ihrem Arbeitsordner stehen.


Über das Eintragen einer Datei

  Verwandte Themen

Jedesmal, wenn Sie eine Datei ändern und in ein Archiv eintragen, wird sie zu einer neuen Revision. Wenn Sie eine Datei eintragen (z.B. eine PL/SQL-Bibliotheksdatei mit der Dateinamenerweiterung .pll), führt PVCS automatisch eine Binär-nach-Text-Konvertierung durch und archiviert die Datei in dem angegebenen Pfad als Textdatei mit der entsprechenden Dateinamenerweiterung (z.B. .pld). PVCS verwendet die Textdatei, um Archivberichte zu erstellen.

Eine Versionsbezeichnung kennzeichnet eine Revision als Bestandteil einer Gruppe von Revisionen, die normalerweise eine vollständige Version Ihrer Anwendung darstellen. Mit Versionsbezeichnungen können Sie mit allen Dateien, die mit einer bestimmten Version verknüpft sind, gleichzeitig arbeiten, indem Sie einen einzigen Namen referenzieren. Wenn Sie schon eine Version des aktuellen Moduls archiviert haben, werden die entsprechenden Informationen automatisch in das Feld Archiv eingegeben.


Über das Austragen einer Datei

  Verwandte Themen

Wenn Sie eine Datei aus einem Archiv austragen, können Sie die Datei durchsuchen, bearbeiten oder ausdrucken. Standardmäßig kann immer nur ein Benutzer gleichzeitig eine bestimmte Version mit einer Sperre austragen.

Wenn Sie eine Datei austragen, wird die Datei automatisch von der archivierten Textversion in das richtige Format konvertiert (z.B. wird eine PL/SQL-Bibliotheksdatei von .pld in .pll konvertiert). Die Datei, die Sie aus einem Archiv austragen, wird als Arbeitsdatei bezeichnet. Jedesmal, wenn Sie eine neue Variation einer Arbeitsdatei eintragen, wird sie zu einer Revision.


Über das Erstellen von Archivberichten

  Verwandte Themen

Mit PVCS können Sie Berichte generieren, in denen die folgenden Archivaktivitäten zusammengefaßt werden:

•	Erstellen von Archiven

•	Attribute von archivierten Dateien

•	Nachfolgende Revisionen

•	Bezeichnungen

•	In der letzten Revision geänderte Zeilen

•	Beschreibung der Arbeitsdatei


Über Promotionsmodelle

Ein Promotionsmodell entspricht einer Hierarchie von Meilensteinen in einem Entwicklungszyklus. Mit der Promotion kontrollieren Sie die Entwicklung des Quellcodes von der Entwurfsphase bis zum endgültigen Release. Jeder Meilenstein wird von einer Promotionsgruppe dargestellt. Beispiele für Promotionsgruppen umfassen Entwicklung, Qualitätssicherung und Produktion. Ein Promotionsmodell ist eine hochentwickelte Funktion. Es wird für Anlagen mit formalen Software-Turnover-Prozeduren empfohlen.

Ein Promotionsmodell kann eine oder mehrere Gruppen auf niedrigster Ebene bzw. Entwicklungsgruppen enthalten. Wenn ein Promotionsmodell aktiv ist, können Benutzer nur Revisionen ändern, die mit einer Entwicklungsgruppe verknüpft sind. Um eine mit einer höheren Gruppe verknüpfte Revision zu bearbeiten, muß ein Benutzer diese aus der Versionskontrolle austragen und beim Austragen wieder mit einer Entwicklungsgruppe verknüpfen. Nach dem erneuten Eintragen der Revision muß diese dann wieder auf eine höhere Ebene gesetzt werden.

Wenn das Promotionsmodell nur eine Entwicklungsgruppe enthält, kann immer nur eine Revision in dem Archiv gleichzeitig gesperrt werden. Um ein Promotionsmodell für die parallele Entwicklung zu entwerfen, müssen Sie mindestens zwei Entwicklungsgruppen vorsehen.

Sie können eine beliebige Anzahl von Zwischen-Promotionsgruppen über der bzw. den Entwicklungsgruppen für die verschiedenen Teststadien oder für Vorab-Releases definieren. Die höchste Ebene ist die Produktionsgruppe, die im allgemeinen darauf hinweist, daß Revisionen für das endgültige Release bereit sind.

Mit einem Promotionsmodell können Sie:

•	Den Projektstatus schnell bestimmen.  Sie können einen Archivbericht über ein Projekt in einem Projekt ausführen, um sofort festzustellen, welche Module einen bestimmten Meilenstein im Entwicklungszyklus noch nicht erreicht haben.

•	Den Revisionszugriff auf Nicht-Entwicklungs-Ebenen steuern.  Da Benutzer keine Revisionen ändern können, die mit Promotionsgruppen nach der Entwicklung verknüpft sind, ist gewährleistet, daß alle Revisionen sorgfältig getestet sind.

•	Ihr eigenes Modell individuell gestalten.  Sie können eine benutzerdefinierte Promotionsstruktur gestalten, die für jedes Projekt speziell zugeschnitten ist, wobei eine beliebige Anzahl von Meilensteinen in der Promotionsstruktur möglich ist.


Archivordner erstellen

  Nächster Schritt	  Verwandte Themen

So erstellen Sie einen Archivordner:  Hinweis:

1	Wählen Sie Datei [image] Verwaltung [image] Versionskontrolloptionen, um das Dialogfeld Versionskontrolle: Optionen anzuzeigen.

2	Wählen Sie das Registertab Projekt aus, wenn es noch nicht ausgewählt ist.

3	Geben Sie den Namen und Pfad Ihres Archivordners in das Feld Neuer Archivordner ein.

4	Klicken Sie auf Neuen Ordner zur Liste hinzufügen, und klicken Sie dann auf Schließen, um das Dialogfeld zu schließen.


Sie können nur dann Archivordner hinzufügen, wenn Sie schon den Parameter DEV2000_PROJECT in der Datei oracle.ini definiert haben. Bei Microsoft Windows definieren Sie den Parameter DEV2000_PROJECT wie folgt:

DEV2000_PROJECT=C:\PVCS\PROJECT1\PROJECT1.CFG

Sie bearbeiten den Parameter DEV2000_PROJECT mit der Datei Oracle.ini für Windows 3.1 und der Registrierung für Windows 95/98 and NT.


Dateien eintragen

  Nächster Schritt	  Verwandte Themen

So tragen Sie eine Datei ein:

1	Wählen Sie Datei [image] Verwaltung [image] Check-In, um das Dialogfeld Versionskontrolle: Check-In anzuzeigen.

2	Geben Sie den Namen der zu archivierenden Datei in das Textfeld Dateiname ein.

3	Geben Sie den Pfad für das Archiv in das Feld Archiv ein.

4	(Optional) Geben Sie gegebenenfalls eine Version, Promotionsgruppe und Beschreibung an.

5	(Optional) Klicken Sie auf das Kontrollkästchen Datei nach Check-In gesperrt lassen, wenn eine nicht schreibgeschützte Kopie der Archivdatei weiter lokal verfügbar sein soll, nachdem die Datei eingetragen wurde. Mit einer nicht schreibgeschützten Kopie der Datei können Sie nachfolgende Änderungen an der Datei ändern und prüfen, ohne die Datei zuerst austragen zu müssen.

6	Klicken Sie auf OK, um die Datei einzutragen.

PVCS archiviert die Datei.


Dateien austragen

  Nächster Schritt	  Verwandte Themen

So tragen Sie eine Datei aus:

1	Wählen Sie Datei [image] Verwaltung [image] Check-Out, um das Dialogfeld Versionskontrolle: Check-Out anzuzeigen.

2	Geben Sie den Pfad des Quellarchivs in das Feld Aus Archiv ein.

3	Geben Sie den Namen der auszutragenden Datei in das Textfeld Dateiname ein.

4	Wählen Sie die gewünschte Dateirevision im Feld Revisionen aus.

5	(Optional) Geben Sie das gewünschte Ziel an, indem Sie einen Pfad in das Feld Ziel eingeben.

6	(Optional) Wenn die auszutragende Datei gesperrt werden soll, müssen Sie die Promotionsgruppe auf Entwicklungsebene auswählen, die der auszutragenden Revision zugewiesen wird.

7	(Optional) Klicken Sie auf das Kontrollkästchen Datei bei Check-Out sperren. Hinweis:

8	(Optional) Klicken Sie auf das Kontrollkästchen  Datei nach Check-Out öffnen. Wenn dieses Kontrollkästchen ausgewählt ist, wird die ausgetragene Datei im Designer geöffnet, nachdem sie aus dem PVCS ausgetragen wurde.

9	Klicken Sie auf OK, um die Datei auszutragen.


Wenn Sie eine Archivdatei ändern möchten, müssen Sie das Kontrollkästchen Datei bei Check-Out sperren aktivieren, um die Änderungen eintragen zu können. Sonst wird eine schreibgeschützte Version der Datei ausgetragen.


Archivberichte erstellen

  Verwandte Themen

So erstellen Sie einen Archivbericht:

1	Wählen Sie Datei [image] Verwaltung [image] Versionskontrolloptionen.

2	Klicken Sie auf das Registertab Bericht, um das Register Versionskontrolle: Berichte anzuzeigen.

3	Geben Sie den Pfad des Archivs in das Feld Archiv ein.

4	Geben Sie den Namen der gewünschten Archivdatei in das Feld Quelldatei ein. PVCS generiert einen Bericht aufgrund des Vergleichs zwischen dieser Datei und der Zieldatei.

5	Geben Sie den Namen der Zieldatei in das Feld Zieldatei ein. Hinweis

6	Wählen Sie die gewünschten Dateirevisionen in den Feldern Quelle bzw. Ziel aus.

7	Geben Sie den Namen und Pfad Ihres Berichts in dem Feld Ausgabedatei an, und klicken Sie dann auf Bericht erstellen.

PVCS erstellt Ihren Bericht. Wenn über die Umgebungsvariable DEV2000_SCVIEWER oder einen Parameter in oracle.ini ein Anzeigeprogramm angegeben wurde, wird dieses zur Anzeige der Berichtausgabe aufgerufen. Sonst öffnen Sie die Berichtdatei mit einem Editor.


Wenn Sie zwei Revisionen mit demselben Archiv vergleichen, geben Sie den Namen der Archivdatei ein, den Sie in Schritt 4 angegeben haben. Wenn Sie unterschiedliche Archivdateien vergleichen, geben Sie eine andere Archivdatei in das Feld Ziel ein.


Dialogfeld Versionskontrolle: Check-In

  Verwandte Themen

In diesem Dialogfeld wird die gewünschte Datei in das angegebene Archiv gemischt.

Das Dialogfeld Check-In enthält die folgenden Optionen:

Arbeitsdatei	Gibt den Namen der einzutragenden Datei an. Wählen Sie Durchsuchen, um ein Datei-Dialogfeld aufzurufen, aus dem Sie eine Datei auswählen können.
In Archiv	Eine Dropdown-Liste aller verfügbaren Archive für das aktuelle Projekt. Wählen Sie ein Archiv aus der Liste, in das die Datei eingetragen werden soll.
Version	(Optional) gibt die Dateiversion an.
Promotionsgruppe	Wenn für Ihr PVCS-Projekt ein Promotionsmodell definiert ist, ist diese Liste aktiviert. Wählen Sie die Promotionsgruppe auf Entwicklungsebene, die der einzutragenden Revision zugewiesen werden soll.
Beschreibung	Gibt eine Beschreibung der Änderungen an, die für diese Revision vorgenommen werden. Auch wenn diese Angabe optional ist, wird empfohlen, daß Sie eine Änderungsbeschreibung eingeben, um die Revisionen beim Check-Out einfacher kennzeichnen zu können.
Datei nach Check-In gesperrt lassen	Gibt an, ob lokal eine nicht schreibgeschützte Kopie der Archivdatei behalten werden soll, selbst nachdem sie eingetragen wurde. Mit einer nicht schreibgeschützten Kopie der Datei können Sie nachfolgende Änderungen an der Datei vornehmen, ohne die Datei zuerst austragen zu müssen.


Dialogfeld Versionskontrolle: Check-Out

  Verwandte Themen

In diesem Dialogfeld wird die angegebene Datei aus einem Archiv abgerufen, damit Sie sie bearbeiten können.

Das Dialogfeld Check-Out enthält folgende Optionen:

Quellarchiv	Gibt den Ordnernamen des Archivs an, aus dem die Datei ausgetragen werden soll.
Dateiname	Gibt den Namen der Datei an, die aus der Versionskontrolle abgerufen werden soll. Wählen Sie Durchsuchen, um ein Datei-Dialogfeld aufzurufen, aus dem Sie eine Datei auswählen können.
Revisionen	Zeigt die verfügbaren Revisionen und Versionen der Datei an, die in dem Feld Dateiname ausgewählt wurden.
Beschreibung	Führt Beschreibungen der verfügbaren Revisionen auf, die in der Liste Revisionen angezeigt werden.
Ziel	(Optional) Gibt den Zielordner für die auszutragende Datei an.
Promotionsgruppe	Wenn ein Promotionsmodell für Ihr PVCS-Projekt definiert ist, ist diese Liste aktiviert. Wenn Sie die Datei nach dem Austragen sperren möchten, müssen Sie die Promotionsgruppe auf Entwicklungsebene wählen, die der auszutragenden Revision zugewiesen wird.
Datei bei Check-Out sperren	Gibt an, ob die auszutragende Datei als gesperrt markiert werden soll. Eine gesperrte Datei ist vor Aktualisierungen durch andere Benutzer geschützt.
Datei nach Check-Out öffnen	Wenn Sie dieses Kontrollkästchen auswählen, wird die ausgetragene Datei im Designer geöffnet, nachdem sie aus PVCS ausgetragen wurde.


Dialogfeld Versionskontrolle: Optionen

  Verwandte Themen

Das Dialogfeld Optionen enthält drei Register:

Projektoptionen

Dateioptionen

Berichtoptionen


Register Versionskontrolle: Projektoptionen

  Verwandte Themen

In diesem Register können Sie Archivordner aus der Projektkonfigurationsdatei hinzufügen und entfernen.

Das Register Projektoptionen enthält folgende Einstellungen:

Aktuelles Projekt	Der Name der aktuellen PVCS-Projektkonfigurationsdatei. Der Ausgangswert ist der Wert von DEV2000_PROJECT in der Datei oracle.ini. Sie können einen Dateinamen direkt eingeben oder können auf Durchsuchen klicken, um das Dialogfeld mit den Betriebssystemdateien anzuzeigen.
Neuer Archivordner	Gibt einen neuen Archivordner an, der zu der Liste mit verfügbaren Archivordnern im aktuellen Projekt hinzugefügt werden soll. Sie können einen Ordnernamen eingeben oder auf Durchsuchen klicken, um das Dialogfeld mit den Betriebssystemdateien anzuzeigen.
Archivordner-Liste	Zeigt die Archivordner an, die im aktuellen Projekt verfügbar sind.
Neuen Ordner zur Liste hinzufügen	Nachdem Sie einen Archivordner in das Textfeld Neuer Archivordner eingegeben haben, klicken Sie auf Neuen Ordner zur Liste hinzufügen, um den Ordner zu dem aktuellen Projekt hinzuzufügen. Der Ordner wird in der Liste angezeigt, nachdem er hinzugefügt wurde.
Ausgewählten Ordner aus der Liste entfernen	Wählen Sie einen Archivordner aus der Liste aus, und klicken Sie auf Ausgewählten Ordner aus der Liste entfernen, um den Ordner aus dem Projekt zu entfernen.


Register Versionskontrolle: Dateioptionen

  Verwandte Themen

Mit diesem Register können Sie ein Archiv sperren oder entsperren bzw. ein Protokoll der Aktivitäten für dieses Archiv generieren.

Das Register Dateioptionen enthält folgende Einstellungen:

Archiv	Eine Dropdown-Liste aller Archivordner in der aktuellen Projektkonfigurationsdatei.
Dateiname	Gibt die aufzurufende Archivdatei an. Sie können den Namen direkt eingeben oder eine Datei mit Durchsuchen wählen. Wenn das PVCS-Projekt so konfiguriert ist, daß Pfade von Arbeitsdateien ignoriert werden, können Sie entweder eine Arbeitsdatei oder eine Archivdatei angeben. Sonst dürfen Sie nur eine Archivdatei angeben.
Revision	In dieser Dropdown-Liste werden alle verfügbaren Revisionen und Versionen der ausgewählten Datei angezeigt. Außerdem enthält diese Liste einen leeren Eintrag, mit dem keine Auswahl angegeben wird. Wenn Sie eine bestimmte Revision auswählen, wird diese Revision gesperrt oder entsperrt. Wenn Sie keine Revision auswählen, hängt das Verhalten beim Sperren davon ab, ob ein Promotionsmodell definiert ist. Wenn kein Modell definiert ist, wird die Tip-Revision gesperrt. Wenn ein Modell definiert ist, wird die der angegebenen Promotionsgruppe zugewiesene Revision gesperrt. Das Verhalten bei Sperren aufheben ohne ausgewählte Revision besteht immer darin, daß alle Sperren freigegeben werden, die Sie für die Datei haben.
Promotionsgruppe	Wenn ein Promotionsmodell für Ihr PVCS-Projekt definiert ist, ist diese Liste aktiviert und enthält alle Promotionsgruppen auf Entwicklungsebene in Ihrem Promotionsmodell. Wenn Sie eine Revision sperren, wird die in dieser Liste angezeigte Promotionsgruppe der Revision zugewiesen.
Protokolldatei	Gibt den Namen der Protokolldatei an.
Protokolltyp	Gibt den Typ der Aktualisierungen an, die in die angegebene Protokolldatei eingetragen werden sollen, wenn eine Datei ein- oder ausgetragen wird.
Revision sperren	Sperrt die im Feld Dateiname angegebene Datei, ohne sie aus der Versionskontrolle abzurufen. Eine gesperrte Datei ist vor Aktualisierungen durch andere Benutzer geschützt. Wenn Sie eine bestimmte Revision aus der Liste Revisionen auswählen, wird diese Revision gesperrt. Wenn Sie keine Revision ausgewählt haben, wird die Tip-Revision (bzw. die Revision, die der angegebenen Promotionsgruppe aktuell zugewiesen ist, gesperrt). Wenn für Ihr PVCS-Projekt ein Promotionsmodell definiert ist, wird die angegebene Promotionsgruppe der gesperrten Revision zugewiesen.
Sperren aufheben	Hebt die Sperre der Datei auf, die in dem Feld Dateiname angegeben ist, so daß andere Benutzer die Archivdatei austragen und ändern können. Wenn Sie eine bestimmte Revision aus der Liste Revision ausgewählt haben, wird die Sperre dieser Revision aufgehoben. Wenn Sie keine Revision ausgewählt haben, werden alle Sperren, die Sie an Revisionen der Datei besitzen, aufgehoben.
Protokoll generieren	Generiert eine Protokolldatei mit dem angegebenen Namen. Der Typ der Einträge in der Protokolldatei wird von der Einstellung der Option Protokolltyp bestimmt. Wenn über die Umgebungsvariable DEV2000_SCVIEWER oder über einen Parameter in oracle.ini ein Editor angegeben wurde, wird dieser zur Anzeige der Ausgabe aufgerufen.


Register Versionskontrolle: Berichtoptionen

  Verwandte Themen

Mit diesem Register können Sie Archivberichte definieren und erstellen.

Das Register Berichtoptionen enthält die folgenden Einstellungen:

Archiv	Eine Dropdown-Liste aller Archivordner in der aktuellen Projektkonfigurationsdatei.
Quelldatei	Gibt die erste Datei zur Benutzung für Differenzberichte an. Sie können den Namen direkt eingeben oder eine Datei mit der Schaltfläche Durchsuchen auswählen. Wenn das PVCS-Projekt so konfiguriert ist, daß Pfade von Arbeitsdateien ignoriert werden, können Sie entweder eine Arbeitsdatei oder eine Archivdatei angeben. Sonst dürfen Sie nur eine Archivdatei angeben.
Quellrevision	Eine Dropdown-Liste aller verfügbaren Revisionen und Versionen der Quelldatei.
Zieldatei	Gibt den Namen der Zieldatei an. PVCS generiert einen Bericht aufgrund eines Vergleichs der Quelldatei mit der Zieldatei.
Zielrevision	Eine Dropdown-Liste aller verfügbaren Revisionen und Versionen der Zieldatei.
Ausgabedatei	Gibt den Ordner und Namen der Zieldatei an, in die der Differenzbericht geschrieben werden soll, nachdem die Dateien miteinander verglichen wurden.
Bericht erstellen	Erstellt einen Bericht entsprechend den angegebenen Optionen. Wenn über die Umgebungsvariable DEV2000_SCVIEWER oder einen Parameter in oracle.ini ein Editor angegeben wurde, wird dieses zur Anzeige der Ausgabe aufgerufen.


Fehlermeldungen

Als nächstes werden die Fehlermeldungen aufgeführt, die bei Benutzung der Versionskontroll-Dialogfelder angezeigt werden können:

D2SCP-001:	Dateizugriff vom Dateisystem abgelehnt

 Ursache:	Sie haben keine ausreichende Zugriffsberechtigung für das Lesen der Archivdatei, das Schreiben der Arbeitsdatei oder das Schreiben von Protokoll- bzw. Berichtdateien.

 Maßnahme:	Wenn Sie die Zugriffsberechtigung für diese Dateien benötigen, nehmen Sie Verbindung mit dem Systemadministrator auf.

D2SCP-002:	Zugriffsberechtigungen reichen nicht aus

 Ursache:	Sie haben die PVCS-Berechtigungen für den Zugriff auf das angegebene Archiv nicht. Diese Fehlermeldung wird auch angezeigt, wenn das Ändern von Archivordnern im Masterprojekt deaktiviert wurde und Sie versuchen, diese Ordner im Register Projektoptionen des Dialogfelds Optionen zu ändern.

 Maßnahme:	Wenn Sie die Berechtigung zu diesem Archiv benötigen, nehmen Sie Verbindung mit dem PVCS-Administrator auf.

D2SCP-003:	Archiv ist schon vorhanden

 Ursache:	Diese Fehlermeldung weist auf einen internen Fehler und sollte eigentlich nicht angezeigt werden.

 Maßnahme:	Wenn die Fehlermeldung bei Wiederholung des Vorgangs wieder angezeigt wird, nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.

D2SCP-004:	Angegebenes Archiv nicht gefunden

 Ursache:	Sie haben eine Datei eingegeben oder ausgewählt, bei der es sich nicht um ein Archiv handelte, während eine Archivdatei erwartet wurde. Dieser Fehler ist im allgemeinen darauf zurückzuführen, daß eine Arbeitsdatei anstelle der Archivdatei ausgewählt wurde (z.B. MYFORM.FMB antelle von MYFORM.FMV).

 Maßnahme:	Klicken Sie auf die Schaltfläche Durchsuchen, um eine Archivdatei zu wählen.

D2SCP-005:	Ungültige Zeichen im Dateinamen bzw. ungültige Laufwerks- oder Pfadangabe

 Ursache:	Der eingegebene Dateiname ist kein gültiger Name einer Betriebssystemdatei.

 Maßnahme:	Prüfen Sie die Syntax des Dateinamens auf Fehler.

D2SCP-006:	Datei wird von einem anderen Prozeß benutzt

 Ursache:	Die Datei, die Sie aufrufen wollten, wird von einem anderen PVCS-Benutzer verwendet.

 Maßnahme:	Wenn Sie den Vorgang nach einer bestimmten Zeit wiederholen, verläuft er im allgemeinen erfolgreich.

D2SCP-007:	Konvertierung nicht erfolgreich. Die Arbeitsdatei ist schreibgeschützt oder wird nicht unterstützt.

 Ursache:	Dieser Fehler kann folgende Ursachen haben:

A.	Die Arbeitsdatei ist möglicherweise schreibgeschützt. Dies geschieht, wenn Sie die Datei austragen, ohne sie zu sperren und sie dann später aus dem Dialogfeld Optionen sperren.

B.	Sie haben versucht, eine Datei ein- oder auszutragen, die nicht erkannt wird.

 Maßnahme:	Dieser Fehler kann wie folgt behoben werden:

Bei A.	Benutzen Sie den Windows Datei-Manager oder Explorer, um den Schreibschutz der Datei aufzuheben, bevor Sie fortfahren.

Bei B.	Tragen Sie die Datei mit der eigenständigen PVCS-Oberfläche ein oder aus.

Sie können jede Datei austragen, können jedoch nur Dateien eintragen, die erkannt werden. Forms Developer nämlich nur anhand der Arbeitsdatei bestimmen, ob es sich um einen unterstützten Dateityp handelt. Beim Eintragen verwenden Sie die Arbeitsdatei, so daß Forms Developer die Datei vor dem Eintragen prüft. Beim Austragen wird die Datei zuerst ausgetragen, um dann die Arbeitsdatei zu erhalten. Nur dann kann Forms Developer die Datei testen. Sie können diesen Fehler also beim Austragen problemlos ignorieren, wenn Sie wissen, daß Sie einen fremden Dateityp austragen.

D2SCP-008:	Ungültige oder nicht ausreichende Werte

 Ursache:	Diese Meldung weist auf einen internen Fehler und sollte nicht angezeigt werden.

 Maßnahme:	Wenn diese Meldung nach Wiederholung des Vorgangs immer noch angezeigt wird, nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.

D2SCP-010:	Angegebene Version ist schon vorhanden

 Ursache:	Sie haben eine Version im Dialogfeld Check-In angegeben, die schon für die einzutragende Datei vorhanden ist. Bei PVCS müssen Versionen eindeutig sein.

 Maßnahme:	Ändern Sie die Version. Um die benutzten Versionen anzuzeigen, verwenden Sie die Protokollfunktion aus dem Register Dateioptionen des Dialogfelds Optionen.

D2SCP-011:	Angegebene Revision ist nicht vorhanden

 Ursache:	Diese Fehlermeldung weist auf einen internen Fehler und sollte nicht angezeigt werden.

 Maßnahme:	Wenn die Fehlermeldung nach Wiederholung des Vorgangs immer noch angezeigt wird, nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.

D2SCP-012:	Ungültige Konfigurationsdatei angegeben

 Ursache:	Dieser Fehler kann folgende Ursachen haben:

A.	Die Datei, die Sie im Register Projektoptionen im Dialogfeld Optionen ausgewählt haben, ist keine gültige PVCS-Konfigurationsdatei.

B.	Wenn dieser Fehler auftritt, während Sie die Dialogfelder Check-In oder Check-Out öffnen, bedeutet dies, daß die in der Umgebungsvariablen DEV2000_PROJECT angegebene Konfigurationsdatei ungültig ist.

 Maßnahme:	Dieser Fehler kann wie folgt behoben werden:

Bei A.	Wählen Sie eine andere, gültige Datei aus.

Bei B.	Ändern Sie die Variable, oder legen Sie im Register Projektoptionen im Dialogfeld Optionen eine gültige Konfigurationsdatei fest.

D2SCP-013:	Sie müssen zuerst ein Projekt aus 'Versionskontrolloptionen' auswählen

 Ursache:	Sie haben versucht, die Dialogfelder Check-In oder Check-Out zu öffnen, haben jedoch kein Projekt entweder über die Umgebungsvariable DEV2000_PROJECT in der Datei ORACLE.INI oder im Register Projektoptionen im Dialogfeld Optionen angegeben.

 Maßnahme:	Wählen Sie im Register Projektoptionen ein Projekt, bevor Sie fortfahren.

D2SCP-014:	Projektkonfigurationsdatei kann nicht aktualisiert werden.

 Ursache:	Sie haben versucht, Archivordner aus der Projektkonfigurationsdatei hinzuzufügen oder zu entfernen, haben jedoch keine Schreibberechtigung für die Datei oder den Ordner, in dem die Datei gespeichert ist.

 Maßnahme:	Wenn Sie diese Zugriffsberechtigung benötigen, nehmen Sie Verbindung mit dem PVCS- oder Systemadministrator auf.

D2SCP-015:	Revision ist nicht gesperrt.

 Ursache:	Sie haben versucht, eine Revision einzutragen, die Sie nicht gesperrt haben, bzw. die Sperre einer Revision aufzuheben, die nicht gesperrt war (aus dem Register Dateioptionen).

 Maßnahme:	Wenn Sie Änderungen vorgenommen haben, sperren Sie die Revision im Register Dateioptionen, bevor Sie sie eintragen.

D2SCP-016:	Angegebene Revision kann nicht gesperrt werden.

 Ursache:	Sie haben versucht, eine Revision mit einer Sperre aus dem Dialogfeld Check-Out auszutragen bzw. eine Revision im Register Dateioptionen zu sperren, PVCS konnte die Sperre jedoch nicht zuweisen. Dieser Fehler kann folgende Ursachen haben:

A.	Die Revision wurde schon von Ihnen oder einem anderen Benutzer gesperrt.

B. 	Ihr Projekt läßt mehrere Sperren nicht zu, und die Revision ist schon gesperrt.

C. 	Wenn das Projekt ein Promotionsmodell hat, ist die angegebene Promotionsgruppe möglicherweise schon einer gesperrten Revision zugewiesen.

 Maßnahme:	Dieser Fehler kann wie folgt behoben werden:

Bei A.	Ermitteln Sie mit der Protokollfunktion, welcher Benutzer die Sperre hat, und wenn Sie die Revision schon gesperrt haben, tragen Sie sie aus, ohne eine Sperre anzufordern. Wenn ein anderer Benutzer die Datei gesperrt hat, warten Sie, bis dieser die Sperre aufhebt, bevor Sie die Datei zur Änderung austragen.

Bei B.	Warten Sie, bis die Revision oder Datei verfügbar wird, oder lassen Sie möglicherweise mehrere Sperren pro Datei in dem Projekt zu.

Bei C.	Warten Sie, bis die Promotionsgruppe verfügbar wird (keiner gesperrten Revision zugewiesen ist), oder benutzen Sie eine andere Promotionsgruppe auf Entwicklungsebene.

D2SCP-017:	Angegebener Ordner ist nicht vorhanden.

 Ursache:	Sie haben einen nicht vorhandenen Ordner angegeben. Dieser Fehler ist wahrscheinlich darauf zurückzuführen, daß Sie eine Datei austragen, während der Pfad, aus dem sie eingetragen wurde, in Ihrer Workstation nicht vorhanden ist.

 Maßnahme:	Wenn dies der Fall ist, ändern Sie das Zielfeld so, daß es auf einen bestehenden Ordner zeigt.

D2SCP-018:	Ausgabe kann nicht an Datei umgeleitet werden

 Ursache:	Der Dateiname, den Sie für das Protokoll oder den Differenzbericht angegeben haben, ist ungültig, oder die Datei ist schreibgeschützt.

 Maßnahme:	Geben Sie eine gültige Datei ohne Schreibschutz an.

D2SCP-100:	PVCS Fehler-Nummer - Schlüsselwort

 Ursache:	Vom PVCS wurde ein Fehler zurückgegeben, den die Versionskontrolloberfläche von Developer/2000 nicht verarbeiten konnte.

Maßnahme:	Schlagen Sie in der PVCS-Dokumentation anhand der Fehlernummer oder dem Fehlerschlüsselwort nach, und beheben Sie den Fehler wie angegeben.


Warum zeigt die Oberfläche des PVCS-Konfigurationsmanagers die neuen Dateien oder Revisionen nicht an?

Nachdem Dateien eingetragen und Versionen zugewiesen wurden, zeigt die Oberfläche des PVCS-Konfigurationsmanagers die neuen Dateien oder Revisionen nicht an. Warum?

Der Projektordner muß mit den neuen Informationen aktualisiert werden, die in den Archiven stehen (neue Dateien und Revisionen). Hierzu wählen Sie Update Project Folder... aus dem Menü Project der obersten Ebene von PVCS. Die neuen Dateien sollten dann in dem PVCS-Fenster "Folders" angezeigt werden.


Warum sind die Versionskontroll-Menüoptionen nur in einem Produkt aktiviert?

Wenn mehrere Produkte ausgeführt werden, sind die Versionskontroll-Menüoptionen nur in einem Produkt aktiviert. Warum?

PVCS on Windows ist nicht reentrant. Dies bedeutet, daß nur ein Programm (entweder ein PVCS-aktiviertes Programm wie Report Builder oder die PVCS-Oberfläche selbst) gleichzeitig auf PVCS-Dienste zugreifen kann. Sie müssen sowohl das Programm beenden, in dem die Menüs aktiviert sind, als auch das Programm, aus dem Sie auf die PVCS-Dienste zugreifen möchten. Danach starten Sie das Programm neu, in dem Sie den PVCS-Zugriff benötigen.


Warum wird eine Fehlermeldung ausgegeben, daß PVCS das Archiv nicht finden kann?

Beim Versuch, einen Bericht auszutragen, wurde die .RDV-Datei (Archivdatei) ausgewählt. Daraufhin wird die Fehlermeldung ausgegeben, daß PVCS das Archiv nicht finden kann. Warum?

Auch wenn Sie eine .RDV-Datei gewählt haben, war diese möglicherweise nicht das Archiv. Report Builder schreibt die Zwischendateien (ASCII-Dateien) in eine Datei mit der Erweiterung .RDV, bevor sie eingetragen werden. (Weitere Einzelheiten finden Sie unter Über die Implementierung von PVCS.) Sie müssen unbedingt eine .RDV-Datei aus dem Archivordner und nicht aus dem Arbeitsordner auswählen. Es gibt drei Möglichkeiten, dieses Problem zu umgehen:

•	Stellen Sie die PVCS-Projektoption so ein, daß Arbeitsdateien nach der Eintragung gelöscht werden. Dadurch wird verhindert, daß .RDV-Zwischendateien von Reports weiter auf der Festplatte stehen.

•	Ändern Sie die Suffixregel, so daß einer .RDV-Datei beim Eintragen ein anderes Suffix zugewiesen wird, z.B. .VRD. Danach suchen Sie beim Austragen nach der .VRD-Datei und nicht nach .RDV.

•	Konfigurieren Sie das Projekt so, daß Arbeitsdateipfade ignoriert werden, wenn Sie nach Archiven suchen. Auf diese Weise können Sie die Arbeitsdatei (in diesem Fall .RDF) und nicht das Archiv beim Austragen angeben.

Diese Optionen können über die Benutzerschnittstelle des PVCS-Konfigurationsmanagers aus dem Menü Configure Project... ausgewählt werden.


Wie kann sichergestellt werden, daß der richtige Benutzername beim Sperren einer Datei benutzt wird?

Wenn eine Datei gesperrt (oder mit einer Sperre ausgetragen) wird, ist die Benutzer-ID auf "UNKNOWN" gesetzt. Auf diese Weise können andere Benutzer die Datei eintragen oder entsperren. Wie kann sichergestellt werden, daß der richtige Benutzername verwendet wird?

Es gibt eine PVCS-Option zur Projektkonfiguration, "Login Source", im Abschnitt "network" der PVCS-Optionen zur Projektkonfiguration (im PVCS Version Manager Interface), mit der Sie dies verhindern können. Mit dieser Option können Sie definieren, wie PVCS Ihre aktuelle Benutzer-ID bestimmt. Wenn Sie z.B. ein NETWARE-Netzwerk verwenden, können Sie PVCS anweisen, die aktuelle NETWARE Login-ID zu benutzen. Bei Windows NT können Sie die NT Login-ID verwenden, indem Sie die Login-Quelle "HOST" wählen. Weitere Einzelheiten finden Sie in der PVCS-Dokumentation.


Wie können Arbeitsdateien für das Austragen ausgewählt werden?

Wie können Arbeitsdateien und keine Archivdateien für das Austragen ausgewählt werden?

Es gibt eine PVCS-Option zur Projektkonfiguration, "Ignore Workfile Path", im Abschnitt "Archive Searching" der PVCS-Optionen zur Projektkonfiguration (im PVCS Version Manager Interface), die Sie verwenden können. Wenn Sie diese Option einschalten, können Sie Arbeitsdateien oder Archivdateien in den Dialogfeldern Check-Out und Versionskontrolle: Optionen auswählen.


Warum wird eine Fehlermeldung ausgegeben, daß VCSDIR in der Projektkonfigurationsdatei nicht zulässig ist?

Das Masterprojekt wurde so konfiguriert, daß das Ändern der Archivordner nicht zulässig ist. Im PVCS Version Manager Interface können Archivordner in einem Unterprojekt nicht geändert werden, was korrekt ist. In Forms Developer war dies jedoch möglich. Nachher wurde vom PVCS Version Manager Interface eine Fehlermeldung ausgegeben, daß VCSDIR in der Projektkonfigurationsdatei nicht zulässig ist. Warum?

Das PVCS Version Manager Interface sucht im Stammverzeichnis nach einer Standarddatei MASTER.CFG und hat diese wahrscheinlich gefunden. Deshalb wurde die Fehlermeldung ausgelöst, nachdem Sie Archivordner in geändert haben. Damit die Masterkonfigurationsdatei erkannt wird, müssen Sie PVCS mit dem Befehl VCONFIG konfigurieren. Dadurch wird der Name der Masterkonfigurationsdatei in den PVCS-Bibliotheken codiert und wird gewährleistet, daß niemand die Liste mit Archivordnern versehentlich ändern kann. Hierzu wird auf die Abschnitte über Masterkonfigurationsdateien und den Befehl VCONFIG in dem INTERSOLV PVCS Command-Line Reference Guide verwiesen.


• 9


Auf fremde Datenquellen zugreifen

  Verwandte Themen

Über Oracle Open Client Adapter (OCA) kann sich die Anwendung bei jeder ODBC-Datenquelle anmelden. Für die unten aufgeführten Datenquellen erhalten Sie spezifische Informationen.

Klicken Sie auf die Datenquelle, auf die Sie zugreifen möchten:

Personal Oracle Lite

Microsoft SQL Server  (Versionen 4.2, 6.0 und 6.5)

Microsoft Access  (Version 2.0 und höher)

Oracle Rdb  (Versionen 5.1, 6.1 und 7.0)

Sybase   (SQL Server Version 4.9, System 10 und System 11)

Tandem NonStop SQL

Informix   (SE und Online Versions 5.x, 6.x und 7.x)


Vorbereitung zur Benutzung von Open Client Adapter (OCA)

  Verwandte Themen

So richten Sie Ihr System zur Benutzung von OCA ein:

1	Installieren Sie die erforderliche Datenbank-Server- und Client-Software, einschließlich Netzwerkbibliotheken. Konfigurieren Sie die Datenbank, erstellen Sie Datenbank-Accounts, und erteilen Sie die entsprechenden Zugriffsberechtigungen für die Benutzer. Beachten Sie, daß bei einigen Einzelbenutzer-, Einzelplatz-Datenquellen, wie z.B. bei Microsoft Access, kein Hinweis auf einen Datenbank-Server und Datenbank-Client vorhanden ist und daß keine besondere Einrichtung erforderlich ist (Sie müssen jedoch die Datenbankdatei erstellen, um Datenbanktabellen zu speichern).

2	Installieren Sie die erforderlichen ODBC-Treiber auf dem Client-Rechner, und konfigurieren Sie die Datenquelle mit dem Microsoft ODBC Administrator (der automatisch mit den Treibern installiert wird). ODBC-Treiber von Intersolv (für SQL Server, Rdb, Sybase, Informix, Ingres und viele andere Datenbanken) können von der Installations-CD installiert werden. Außerdem können Sie Treiber von Microsoft, IBM und anderen Herstellern von ODBC-Treibern verwenden.


Auf Personal Oracle Lite zugreifen

  Verwandte Themen 	  Open oca_info.pdf

So greifen Sie auf Personal Oracle Lite zu:

1	Richten Sie Ihr System zur Benutzung von Open Client Adapter (OCA) ein.

2	Lesen Sie die Versionshinweise und das PDF-Dokument (oca_info.pdf).

3	Führen Sie die SQL-Skripts aus, um Data-Dictionary-Ansichten auf der Serverseite zu erstellen, mit denen Entwurfskomponenten Datenbankobjektnamen zur Auswahl beim Entwurf anzeigen können. Hinweis

UBT32.EXE user/password@ODBC:datasource[:dbname] @sqlscript  Beispiel

Wenn dbname nicht angegeben wird, werden die Ansichten in der 'aktuellen' Datenbank für die ODBC-Anmeldung erstellt.

4.	Starten Sie den Builder.

5	(Optional)  Führen Sie die SQL-Skripts aus, um Demotabellen zu erstellen und aufzufüllen.  Beispiel

6	(Nur Form Builder) Stellen Sie das Attribut Primärschlüssel für jedes Datenobjekt auf Ja ein. Datenobjekte entsprechen Spalten in Ihrer Datenquelle.

7	Wenn Sie bereit sind, sich bei der Datenquelle von Personal Oracle Lite anzumelden, geben Sie die folgende DB-Adresse in das Dialogfeld Anmelden ein:

[user[/password]]@ODBC:datasource[:dbname]  Beispiel

Weitere Informationen über den Zugriff zu Personal Oracle Lite finden Sie unter oca_info.pdf.


Init_Form ist die OPENDB-Routine, die Ihre Attribute auf Formebene automatisch ändert, so daß Sie mit einer ODBC-Datenquelle kommunizieren können.


OCA.PLL ist in dem Verzeichnis ORACLE_HOME\oca20 gespeichert. Damit Form Builder die Datei OCA.PLL finden kann, müssen Sie das Verzeichnis ORACLE_HOME\oca20 zu der Umgebungsvariablen FORMS50_PATH in der Registrierung hinzufügen.


Auf Microsoft SQL Server zugreifen

  Verwandte Themen	  Open oca_info.pdf

So greifen Sie auf Microsoft SQL Server zu:

1	Richten Sie Ihr System zur Benutzung von Open Client Adapter (OCA) ein.

2	Lesen Sie die Versionshinweise und das PDF-Dokument (oca_info.pdf)..

3	Führen Sie die SQL-Skripts aus, um Data-Dictionary-Ansichten auf der Serverseite zu erstellen, mit denen Entwurfskomponenten Datenbankobjektnamen zur Auswahl beim Entwurf anzeigen können. Hinweis

UBT32.EXE user/password@ODBC:datasource[:dbname] @sqlscript  Beispiel

Wenn dbname nicht angegeben wird, werden die Ansichten in der 'aktuellen' Datenbank für die ODBC-Anmeldung erstellt.

4.	Starten Sie den Builder.

5	(Optional)  Führen Sie die SQL-Skripts aus, um Demotabellen zu erstellen und aufzufüllen.  Beispiel

6	(Nur Form Builder) Stellen Sie das Attribut Primärschlüssel für jedes Datenobjekt auf Ja ein. Datenobjekte entsprechen Spalten in Ihrer Datenquelle.

7	Wenn Sie bereit sind, sich bei der Datenquelle von Microsoft SQL Server anzumelden, geben Sie die folgende DB-Adresse in das Dialogfeld Anmelden ein:

[user[/password]]@ODBC:datasource[:dbname]  Beispiel

Weitere Informationen über den Zugriff zu Microsoft SQL Server finden Sie unter oca_info.pdf.


Auf Oracle Rdb zugreifen

  Verwandte Themen 	  Open oca_info.pdf

So greifen Sie auf Oracle Rdb zu:

1	Richten Sie Ihr System zur Benutzung von Open Client Adapter (OCA) ein.

2	Lesen Sie die Versionshinweise und das PDF-Dokument (oca_info.pdf).

3	Führen Sie die SQL-Skripts aus, um Data-Dictionary-Ansichten auf der Serverseite zu erstellen, mit denen Entwurfskomponenten Datenbankobjektnamen zur Auswahl beim Entwurf anzeigen können. Hinweis

UBT32.EXE user/password@ODBC:datasource[:dbname] @sqlscript  Beispiel

Wenn dbname nicht angegeben wird, werden die Ansichten in der 'aktuellen' Datenbank für die ODBC-Anmeldung erstellt.

4.	Starten Sie den Builder.

5	(Optional)  Führen Sie die SQL-Skripts aus, um Demotabellen zu erstellen und aufzufüllen.  Beispiel

6	(Nur Form Builder). Ordnen Sie die Bibliothek OCA.PLL Ihrer Anwendung zu. Erstellen Sie dann einen Pre-Form- oder When-New-Form-Instance-Trigger, der die Routine OPENDB.Init_Form umfaßt.

7	Wenn Sie bereit sind, sich bei der Oracle Rdb-Datenquelle anzumelden, geben Sie die folgende DB-Adresse in das Dialogfeld Anmelden ein:

[user[/password]]@ODBC:datasource[:dbname]  Beispiel

Weitere Informationen über den Zugriff zu Oracle Rbd finden Sie unter oca_info.pdf.


Auf Microsoft Access zugreifen

  Verwandte Themen	  Open oca_info.pdf

So greifen Sie auf Microsoft Access zu:

1	Richten Sie Ihr System zur Benutzung von Open Client Adapter (OCA) ein.

2	Lesen Sie die Versionshinweise und das PDF-Dokument (oca_info.pdf).

3	(Optional) Führen Sie die SQL-Skripts aus, um Demotabellen mit dem UBT-Dienstprogramm zu erstellen und aufzufüllen:

UBT32.EXE user/password@ODBC:datasource[:dbname] @sqlscript  Beispiel

Wenn dbname nicht angegeben wird, werden die Ansichten in der 'aktuellen' Datenbank für die ODBC-Verbindung erstellt.

1. 	Starten Sie den Builder-

1. 	(Nur Form Builder) Stellen Sie das Attribut Primärschlüssel für jedes Datenobjekt auf Ja ein. Datenobjekte entsprechen Spalten in Ihrer Datenquelle.

6	Wenn Sie bereit sind, sich bei der Microsoft Access-Datenquelle anzumelden, geben Sie die DB-Adresse in das Dialogfeld Anmelden ein:

[user[/password]]@ODBC:datasource[:dbname]  Beispiel

Weitere Informationen über den Zugriff zu Microsoft Access finden Sie unter oca_info.pdf.


Auf Sybase zugreifen

  Verwandte Themen 	  Open oca_info.pdf

So greifen Sie auf Sybase zu:

1	Richten Sie Ihr System zur Benutzung von Open Client Adapter (OCA) ein.

2	Lesen Sie die Versionshinweise und das PDF-Dokument (oca_info.pdf).

3	Führen Sie die SQL-Skripts aus, um Data-Dictionary-Ansichten auf der Serverseite zu erstellen, mit denen Entwurfskomponenten Datenbankobjektnamen zur Auswahl beim Entwurf anzeigen können. Hinweis

UBT32.EXE user/password@ODBC:datasource[:dbname] @sqlscript  Beispiel

Wenn dbname nicht angegeben wird, werden die Ansichten in der 'aktuellen' Datenbank für die ODBC-Anmeldung erstellt.

4.	Starten Sie den Builder.

5	(Optional)  Führen Sie die SQL-Skripts aus, um Demotabellen zu erstellen und aufzufüllen.  Beispiel

6.	(Nur Form Builder) Stellen Sie das Attribut Primärschlüssel für jedes Datenobjekt auf Ja ein. Datenobjekte entsprechen Spalten in Ihrer Datenquelle.

5	Wenn Sie bereit sind, sich bei der Sybase-Datenquelle anzumelden, geben Sie die folgende DB-Adresse in das Dialogfeld Anmelden ein.

[user[/password]]@ODBC:datasource[:dbname]  Beispiel

Weitere Informationen über den Zugriff zu Sybase finden Sie unter oca_info.pdf.


Auf Tandem NonStop SQL zugreifen

  Verwandte Themen 	  Open oca_info.pdf

So greifen Sie auf Tandem NonStop SQL zu:

1	Richten Sie Ihr System zur Benutzung von Open Client Adapter (OCA) ein.

2	Lesen Sie die Versionshinweise und das PDF-Dokument (oca_info.pdf).

3	Führen Sie die SQL-Skripts aus, um Data-Dictionary-Ansichten auf der Serverseite zu erstellen, mit denen Entwurfskomponenten Datenbankobjektnamen zur Auswahl beim Entwurf anzeigen können. Hinweis

UBT32.EXE user/password@ODBC:datasource[:dbname] @sqlscript  Beispiel

Wenn dbname nicht angegeben wird, werden die Ansichten in der 'aktuellen' Datenbank für die ODBC-Anmeldung erstellt.

4.	Starten Sie den Builder.

5	(Optional)  Führen Sie die SQL-Skripts aus, um Demotabellen zu erstellen und aufzufüllen.  Beispiel

6.	(Nur Form Builder) Stellen Sie das Attribut Primärschlüssel für jedes Datenobjekt auf Ja ein. Datenobjekte entsprechen Spalten in Ihrer Datenquelle.

7	Wenn Sie bereit sind, sich bei der Datenquelle von Tandem NonStop SQL anzumelden, geben Sie die folgende DB-Adresse in das Dialogfeld Anmelden ein:

[user[/password]]@ODBC:datasource[:dbname]  Beispiel

Weitere Informationen über den Zugriff zu Tandem NonStop SQL finden Sie unter oca_info.pdf.


Auf Informix zugreifen

  Verwandte Themen 	  Open oca_info.pdf

So greifen Sie auf Informix zu:

1	Richten Sie Ihr System zur Benutzung von Open Client Adapter (OCA) ein.

2	Lesen Sie die Versionshinweise und das PDF-Dokument (oca_info.pdf).

3	Führen Sie die SQL-Skripts aus, um Data-Dictionary-Ansichten auf der Serverseite zu erstellen, mit denen Entwurfskomponenten Datenbankobjektnamen zur Auswahl beim Entwurf anzeigen können. Hinweis

UBT32.EXE user/password@ODBC:datasource[:dbname] @sqlscript  Beispiel

Wenn dbname nicht angegeben wird, werden die Ansichten in der 'aktuellen' Datenbank für die ODBC-Anmeldung erstellt.

4.	Starten Sie den Builder.

5	(Optional)  Führen Sie die SQL-Skripts aus, um Demotabellen zu erstellen und aufzufüllen.  Beispiel

6.	(Nur Form Builder) Stellen Sie das Attribut Primärschlüssel für jedes Datenobjekt auf Ja ein. Datenobjekte entsprechen Spalten in Ihrer Datenquelle.

7	Wenn Sie bereit sind, sich bei der Informix-Datenquelle anzumelden, geben Sie die folgende DB-Adresse in das Dialogfeld Anmelden ein:

[user[/password]]@ODBC:datasource[:dbname]  Beispiel

Weitere Informationen über den Zugriff zu Informix finden Sie unter oca_info.pdf.


Über Open Client Adapter (OCA)

 oca_info.pdf öffnen

Mit Oracle Open Client Adapter (OCA) für ODBC können Anwendungen auf Microsoft Windows 3.1, Windows 95/98 und Windows NT auf OBDC-konforme Datenquellen über ODBC-Treiber zugreifen. OCA erfordert, daß der ODBC-Treiber mit ODBC Ebene 1 konform ist. OCA benutzt auch eine bestimmte ODBC-Funktionalität der Ebene 2, um eine bessere Leistung zu erzielen, wenn diese Möglichkeit vom ODBC-Treiber vorgesehen ist.

Mit OCA kann eine Anwendung konsistent auf verschiedene Datenquellen zugreifen. Auf diese Weise kann ein Anwendungsentwickler eine Anwendung erstellen, die ohne Änderung mit einer von mehreren Datenquellen ausgeführt werden kann. Alternativ kann die Anwendung für eine spezifische Datenquelle bestimmt sein und die für dieses System spezifischen Funktionen nutzen.

OCA wird mit dem Oracle-Installer installiert, der alle erforderlichen Dateien in den Ordner ORACLE_HOME kopiert. Eine dieser Dateien ist oca.pll, eine PL/SQL-Bibliothek mit Funktionen, die Sie in Anwendungen benutzen können, um folgende Schritte auszuführen:

•	Zusätzliche Anmeldungen bei anderen Datenquellen neben der Hauptanmeldung der Anwendung.

•	Ausführung beliebiger SQL-Anweisungen und Gespeicherter Prozedur-Aufrufe bei einer beliebigen Anmeldung.

•	Abrufen von Ergebnisgruppen aus fremden gespeicherten Prozeduren.

•	Abrufen der DBMS- und ODBC-Treibernamen und Versionen für eine bestimmte Anmeldung.

•	Automatische Anpassung von Form- und Datenblockattributen zur Laufzeit entsprechend der Datenquelle.

Klicken Sie auf die Schaltfläche [image] am Anfang dieses Themas, um mehr über diese Funktionen zu erfahren.

Weitere Einzelheiten über installierte Dateien finden Sie in den Versionshinweisen.


Standardmäßig ist oca_info.pdf in ORACLE_HOME\TOOLS\DOC60\US installiert. Wenn Adobe Acrobat Reader im Standardverzeichnis installiert ist, klicken Sie auf die Schaltfläche [image] am Anfang dieses Hilfethemas, um dieses Dokument anzuzeigen. Sonst starten Sie den PDF-Viewer, und öffnen Sie oca_info.pdf.


Über das UBT-Dienstprogramm

Oracle Open Client Adapter (OCA) für ODBC umfaßt ein SQL*Plus-ähnliches Dienstprogramm mit der Bezeichnung Universal Backend Tester (UBT). Mit UBT können SQL-Befehle innerhalb des Interpreters oder über Befehlsdateien bearbeitet werden.

Die ausführbare UBT-Datei (UBT32.EXE bei Windows NT und Windows 95/98 und UBT.EXE bei Windows 3.1) ist in ORACLE_HOME\BIN installiert.

Weitere Informationen über Oracle Client Adapter finden Sie unter oca_info.pdf (einschließlich Informationen über das UBT-Dienstprogramm).


Die Versionshinweise zu OCA sind in RELNOTES.TXT auf der Installations-CD enthalten.


Standardmäßig sind die Informationen über den Zugriff zu Personal Oracle Lite in ORACLE_HOME\TOOLS\DOC60\US\\oca_info.pdf installiert. Wenn Adobe Acrobat Reader im Standardverzeichnis installiert ist, klicken Sie auf die Schaltfläche [image] am Anfang dieses Hilfethemas, um dieses Dokument anzuzeigen. Sonst starten Sie PDF-Viewer, und öffnen Sie oca_info.pdf.


Dies ist optional bei der Anwendungsentwicklung und zur Laufzeit nicht obligatorisch. Bei einigen Datenbanken (z.B. Microsoft Access) können Data-Dictionary-Ansichten wegen einer nicht ausreichenden Darstellung der Datenbank-Kataloginformationen und wegen fehlender Unterstützung beim Erstellen von Ansichten nicht erzeugt werden. In diesem Fall können Sie die Namen der Datenbankobjekte beim Entwurf eingeben, anstatt sie aus einer Liste auszuwählen.


Standardmäßig sind die SQL-Skripts für das Erstellen von Data-Dictionary-Ansichten für Personal Oracle Lite in ORACLE_HOME\OCA20\SQL\POLITE installiert:

polvudrp.sql	Entfernt alte Versionen der Ansichten.

polvubld.sql	Erstellt die erforderlichen Ansichten.


UBT32.EXE scott/tiger@ODBC:polite_ds @polvubld.sql


Standardmäßig ist das SQL-Skript für das Erstellen von Demotabellen für Personal Oracle Lite in ORACLE_HOME\OCA20\SQL\POLITE installiert:

poldmbld.sql	Erstellt Demotabellen.

Das SQL-Skript für das Auffüllen von Demotabellen ist in ORACLE_HOME\OCA20\DEMO installiert:

demodata.sql	Fügt Daten in Demotabellen ein.


UBT32.EXE scott/tiger@ODBC:polite_ds @poldmbld.sql


scott/tiger@ODBC:polite_ds


Standardmäßig sind Informationen über den Zugriff zu Microsoft SQL Server in ORACLE_HOME\ TOOLS\DOC60\US\oca_info.pdf installiert. Wenn Adobe Acrobat Reader im Standardverzeichnis installiert ist, klicken Sie auf die Schaltfläche [image] am Anfang dieses Themas, um dieses Dokument anzuzeigen. Sonst starten Sie den PDF-Viewer, und öffnen Sie oca_info.pdf.


Standardmäßig sind die SQL-Skripts für das Erstellen von Data-Dictionary-Ansichten für Microsoft SQL Server in ORACLE_HOME\OCA20\SQL\SQLSRV installiert:

sqsvudrp.sql	Entfernt alte Versionen der Ansichten.

sqsvubld.sql	Erstellt für SQL Server Version 4.2 die erforderlichen Ansichten.

sqs60bld.sql	Erstellt für SQL Server Version 6.0 die erforderlichen Ansichten.


UBT32.EXE scott/tiger@ODBC:sqlserver_ds @sqsvubld.sql


Standardmäßig ist das SQL-Skript für das Erstellen von Demotabellen für Microsoft SQL Server in ORACLE_HOME\OCA20\SQL\SQLSRV installiert:

sqsdmbld.sql	Erstellt Demotabellen.

Das SQL-Skript für das Auffüllen der Demotabellen ist in ORACLE_HOME\OCA20\DEMO installiert:

demodata.sql	Fügt Daten in Demotabellen ein.


UBT32.EXE scott/tiger@ODBC:sqlserver_ds @sqsdmbld.sql


scott/tiger@ODBC:sqlserver_ds


Standardmäßig sind Informationen über den Zugriff zu  Microsoft Access in ORACLE_HOME\ TOOLS\DOC60\US\oca_info.pdf installiert. Wenn Adobe Acrobat Reader im Standardordner installiert ist, klicken Sie auf die Schaltfläche [image] am Anfang dieses Themas, um dieses Dokument anzuzeigen. Sonst starten Sie PDF-Viewer, und öffnen Sie oca_info.pdf.


Standardmäßig ist das SQL-Skript für das Erstellen von Demotabellen für Microsoft Access in ORACLE_HOME\OCA20\SQL\ACCESS installiert:

accdmbld.sql	Erstellt Demotabellen.

Das SQL-Skript für das Auffüllen der Demotabellen ist in ORACLE_HOME\OCA20\DEMO installiert:

demodata.sql	Fügt Daten in Demotabellen ein.


UBT32.EXE scott/tiger@ODBC:access_ds @accdmbld.sql


scott/tiger@ODBC:access_ds


Standardmäßig sind Informationen über den Zugriff zu Oracle Rdb in ORACLE_HOME\ TOOLS\DOC60\US\oca_info.pdf installiert. Wenn Adobe Acrobat Reader im Standardordner installiert ist, klicken Sie auf die Schaltfläche [image] am Anfang dieses Hilfethemas, um dieses Dokument anzuzeigen. Sonst starten Sie PDF-Viewer, und öffnen Sie oca_info.pdf.


Standardmäßig sind die SQL-Skripts für das Erstellen von Data-Dictionary-Ansichten für Oracle Rdb in ORACLE_HOME\OCA20\SQL\RDB installiert:

rdbvudrp.sql	Entfernt alte Versionen der Ansichten.

rdbvubld.sql	Erstellt die erforderlichen Ansichten.

rdbdual.sql	Erstellt View Dual (zur Unterstützung von SYSDATE).


UBT32.EXE scott/tiger@ODBC:rdb_ds @rdbvubld.sql


Standardmäßig ist das SQL-Skript für das Erstellen von Demotabellen für Oracle Rdb in ORACLE_HOME\OCA20\SQL\RDB installiert:

rdbdmbld.sql	Erstellt Demotabellen.

Das SQL-Skript für das Auffüllen der Demotabellen ist in ORACLE_HOME\OCA20\DEMO installiert:

demodata.sql	Fügt Daten in Demotabellen ein.


UBT32.EXE scott/tiger@ODBC:rdb_ds @rdbdmbld.sql


scott/tiger@ODBC:rdb_ds


Standardmäßig sind Informationen über den Zugriff zu Sybase in ORACLE_HOME\TOOLS\DOC60\oca_info.pdf installiert. Wenn Adobe Acrobat Reader im Standardordner installiert ist, klicken Sie auf die Schaltfläche [image] am Anfang dieses Themas, um dieses Dokument anzuzeigen. Sonst starten Sie PDF-Viewer, und öffnen Sie oca_info.pdf.


Standardmäßig sind die SQL-Skripts für das Erstellen von Data-Dictionary-Ansichten für Sybase in ORACLE_HOME\OCA20\SQL\SYBASE installiert:

sybvudrp.sql	Entfernt alte Versionen der Ansichten.

sybvubld.sql	Erstellt die erforderlichen Ansichten.


UBT32.EXE scott/tiger@ODBC:sybase_ds @sybvubld.sql


Standardmäßig ist das SQL-Skript für das Erstellen von Demotabellen für Sybase in ORACLE_HOME\OCA20\SQL\SYBASE installiert:

sybdmbld.sql	Erstellt Demotabellen.

Das SQL-Skript für das Auffüllen der Demotabellen ist in ORACLE_HOME\OCA20\DEMO installiert:

demodata.sql	Fügt Daten in Demotabellen ein.


UBT32.EXE scott/tiger@ODBC:sybase_ds @sybdmbld.sql


scott/tiger@ODBC:sybase_ds


Standardmäßig sind die Informationen über den Zugriff zu Tandem NonStop SQL in ORACLE_HOME\TOOLS\DOC60\US\oca_info.pdf installiert. Wenn Adobe Acrobat Reader im Standardordner installiert ist, klicken Sie auf die Schaltfläche [image] am Anfang dieses Themas, um dieses Dokument anzuzeigen. Sonst starten Sie PDF-Viewer, und öffnen Sie oca_info.pdf.


Standardmäßig sind die SQL-Skripts für das Erstellen von Data-Dictionary-Ansichten für Tandem NonStop SQL in ORACLE_HOME\OCA20\SQL\NONSTOP installiert:

nssvudrp.sql	Entfernt alte Versionen der Ansichten.

nssvubld.sql	Erstellt erforderliche Ansichten.


UBT32.EXE scott/tiger@ODBC:nonstop_ds @nssvubld.sql


Standardmäßig ist das SQL-Skript für das Erstellen von Demotabellen für Tandem NonStop SQL in ORACLE_HOME\OCA20\SQL\NONSTOP installiert:

nssdmbld.sql	Erstellt Demotabellen.

Das SQL-Skript für das Auffüllen der Demotabellen ist in ORACLE_HOME\OCA20\DEMO installiert:

demodata.sql	Fügt Daten in Demotabellen ein.


UBT32.EXE scott/tiger@ODBC:nonstop_ds @nssdmbld.sql


scott/tiger@ODBC:nonstop_ds


Standardmäßig sind Informationen über den Zugriff zu Informix in ORACLE_HOME\TOOLS\DOC60\US\oca_info.pdf installiert. Wenn Adobe Acrobat Reader im Standardordner installiert ist, klicken Sie auf die Schaltfläche [image] am Anfang dieses Themas, um dieses Dokument anzuzeigen. Sonst starten Sie PDF-Viewer, und öffnen Sie oca_info.pdf.


Standardmäßig sind die SQL-Skripts für das Erstellen von Data-Dictionary-Ansichten und Demotabellen für Informix in ORACLE_HOME\OCA20\SQL\INFORMIX installiert:

infvudrp.sql	Entfernt alte Versionen der Ansichten.

infvubld.sql	Erstellt erforderliche Ansichten.


UBT32.EXE scott/tiger@ODBC:informix_ds @infvubld.sql


Standardmäßig ist das SQL-Skript für das Erstellen von Demotabellen für Informix in ORACLE_HOME\OCA20\SQL\INFORMIX installiert:

infdmbld.sql	Erstellt Demotabellen.

Das SQL-Skript für das Auffüllen der Demotabellen ist in ORACLE_HOME\OCA20\DEMO installiert:

demodata.sql	Fügt Daten in Demotabellen ein.


UBT32.EXE scott/tiger@ODBC:informix_ds @infdmbld.sql


scott/tiger@ODBC:informix_ds


Fehlerbehebung

Wenn eine Anwendung, die früher mit Oracle funktionierte, jetzt mit einer ODBC-Datenquelle nicht ausgeführt werden kann, ist dies wahrscheinlich darauf zurückzuführen, daß eine Einschränkung oder Begrenzung bei ODBC oder der Datenquelle vorliegt.

Um die von OCA ausgegebenen SQL-Anweisungen und die von dem ODBC-Treiber oder der Datenbank generierten Meldungen anzuzeigen, gehen Sie folgendermaßen vor:

1	Prüfen Sie, ob der folgende Eintrag in der ORACLE.INI-Datei bei Windows 3.1 oder in der Registrierung bei Windows NT und Windows 95/98 eingestellt ist:

•	UB=ORACLE_HOME\OCA20

2	Fügen Sie die folgenden Einträge zu der ORACLE.INI-Datei bei Windows 3.1 oder zu der Registrierung unter SOFTWARE\ORACLE bei Windows NT und Windows 95/98 hinzu:

•	OCA_DEBUG_SQL=TRUE

•	OCA_DEBUG_ERROR=TRUE

3	Führen Sie die Anwendung mit der ODBC-Datenquelle aus, um die SQL-Anweisungen oder Fehlermeldungen im Debug-Fenster anzuzeigen. Klicken Sie auf OK, um das Debug-Fenster zu schließen und die Verarbeitung fortzuführen.

4	Wenn das Problem nicht gelöst werden kann, nehmen Sie Verbindung mit Oracle Support auf auf.


OCA-Meldungen

Code	Meldungsbeschreibung

30000	Allgemeiner OCA-Fehler

30001	NULL hostdef

30002	Funktion nicht unterstützt

30003	NULL-Benutzername in DB-Adresse

30004	NULL-Hostname in DB-Adresse

30005	Alle Cursor werden benutzt

30006	Fehler beim Erstellen von Analysebaum

30007	NULL SQL-Anweisung

30008	Speicherzuordnung nicht erfolgreich

30009	Fehler beim Verarbeiten von Bindevariablen

30010	Fehler bei Konvertierung von Oracle- nach ODBC-Datentyp

30011	Fehler bei Konvertierung von ODBC- nach Oracle-Datentyp

30012	Fehler beim Binden von Referenzwert

30013	Keine zu bindenden Parameter

30014	Hostname zu lang

30015	Gespeicherte Prozeduren bei dieser Datenquelle nicht unterstützt

30016	Sequenzen bei dieser Datenbank nicht unterstützt

30017	Fehler beim Anmelden bei Fremddatenbank

30018	Benutzername oder Kennwort zu lang

30019	Fehler beim Bearbeiten von fremden gespeicherten Prozeduren

30020	Name der gespeicherten Prozedur fehlt

30021	Fehler beim Vorbereiten/Ausführen von SQL-Anweisung

30022	Fehler beim Abrufen der Spalte

30023	Fehler beim Abrufen der Ergebnismenge

30024	Fehler beim Abrufen von Spalten-Deskriptoren

30025	Fehler bei Einlesen der Anzahl von Spalten in Ergebnismenge

30026	Fehler beim Abrufen von Prozedur-Deskriptoren

30027	Fehler beim Einstellen von ODBC-Anmelde-/Anweisungsoption

30028	Fehler bei Commit/Rollback

30029	Fehler beim Binden der Spalte

30030	Fehler beim Binden von Parameter

30031	Fehler beim Abrufen von Informationen über Treiber/Datenbank

30032	Fehler bei der Freigabe von Speicherplatz

30033	Fehler bei Zeilenstatus

30034	Tabelle nicht gefunden

30035	Spalte nicht gefunden

30036	Ungültige Berechtigungsangabe

30037	Datenquelle nicht verfügbar

30038	Ungültige Spaltennummer

30039	Unzulässige Kombination gebündelter Vorgänge

30040	Ungültiger Cursor-Kontext

30041	Bindevariable ist nicht vorhanden

30042	Keine Daten gefunden

30043	Abgerufener Spaltenwert ist NULL

30044	Abgerufener Spaltenwert war abgeschnitten

30045	Fehler bei Rückgabe von Ergebnisdaten

30046	Kein Name von Datenquelle angegeben

30047	Nicht unterstützte Transaktions-Isolationsebene

30048	Binden von Arrays nicht unterstützt

30049	Nicht angemeldet

30050	Fehler bei Freigabe von SQL-Anweisung

30051	Fehler beim Abruf von Daten. Nach Commit-Vorgang für diese Datenquelle erneut ausführen

30052	Parameterwert nach Ausführung abgeschnitten

31000	Allgemeiner ODBC-Fehler vom benutzten ODBC-Treiber ausgegeben

Wenn ein Fehler auftritt und die Anwendung die Meldung nicht aus der Meldungsdatei lesen kann, prüfen Sie, ob der folgende Eintrag in der Datei ORACLE.INI in Windows 3.1 oder in der Registrierung bei Windows NT und Windows 95/98 steht:

•	UB=ORACLE_HOME\OCA20


PDF-Dokument

Um das PDF-Dokument anzuzeigen, müssen Sie PDF-Viewer starten und oca_info.pdf aus dem Ordner öffnen, in dem es installiert ist.


Glossar

A

    Abfrage
    Abfragefilterfunktion
    Abgleichen
    Abhängige Daten
    Abhängigkeitsansicht
    Abhängigkeitsbaum
    Abschnitt
    Abtrennbares Menü
    Achsendiagramm
    ActiveX
    Ada
    Adreßetikettenlayout
    Aggregatfunktion
    Aktion
    Aktives Fenster/Aktive Ansicht
    Aktiviert
    Aktualisieren
    Alias
    Anhang
    Anker
    Ankerpunkt
    Anmelden
    Anonymer Block
    Ansicht
    Anweisung
    Anwendung
    Anzeigeobjekt
    Applet
    Argument
    Argument für ausführbares Programm
    ASCII
    Attribut
    Attribut
    Attributklasse
    Attributmaske
    Attributspalte
    Attributwert
    Aufgelöstes Objekt
    Aufgliedern
    Aufrufschnittstelle
    Aufrufstapel
    Ausdruck
    Ausführen
    Ausführung
    Ausrichtung
    Ausschneiden
    Ausschnitt
    Auswahl
    Auswahlskript
    Äußere Umrandung

 B

    Bedingung
    Beenden
    Befehlszeile
    Benutzerdefinierte Aktion
    Benutzerdefinierter Makro
    Benutzerdefiniertes Maß
    Benutzerdefinierter Typ
    Benutzerregistrierung
    Beschriftung
    Bibliothek
    Bild
    Bildschirmteiler
    Bindereferenz
    Bindevariable
    Blatt
    Block
    Boilerplate
    Break-Trigger
    Builder

C

    Cache (Speicher)
    cartridge
    CGI
    CGM
    CHAR-Datentyp
    Client
    Client-/Server-Architektur
    CMDFILE
    Collection-Typ
    Cursor

D

    Darstellungstyp
    Data Dictionary
    DATE
    Dateiknoten
    Datenbank
    Datenbank-Trigger
    Datenlink
    Datenmodell
    Datenquelle
    Datensatz
    Datensatzgruppe
    Datenstruktur-Knoten
    Datentyp
    Datumsachse
    DB-Adresse
    Deaktiviert
    Debug-Aktion
    Debuggen
    Debugger
    Debug-Trigger
    Designer
    Designer (Oracle)
    Detail-Abfrage
    Diagrammelement
    Diagrammobjekt
    Diagrammvorlage
    Dialogfeld
    DIANA
    Dimension
    Dimensionshierarchie
    Dimensionswert
    Dokumentvorlage
    Druckersteuercode
    Duplizieren
    Dynamisch gespeicherte Auswahl

E

    EBCDIC
    Ebene
    Editor
    Einfügen
    Einfügen-Modus
    Eingabeobjekt
    Element
    Elementtyp
    Entfernte Datenbank
    Ersetzen-Modus
    Exception
    Exportdatei
    Exportieren
    Externe Abfrage
    Externe PL/SQL-Bibliothek

F

    Familie
    Farbpalette
    Feld
    Feldvorlage
    Fenster
    Filter
    Firewall
    Flattened Object
    Flex-Modus
    Fokus
    Formatmaske
    Format-Trigger
    Formel
    Formelspalte
    Formlayout
    Fremdschlüssel
    Füllbereich
    Funktion

G

    Gefangen-Modus
    Geltungsbereich
    Generieren
    Generieren
    Gespeicherte Auswahl
    Gespeicherter Programmblock
    Gespeichertes Unterprogramm
    Gleichrangiges Objekt
    Gleichzeitigkeit
    Globale Registrierung
    Globale Variable
    Grafische Anwendung
    Gruppe
    Gruppenbaum
    Gruppenfilter
    Gruppenwechselbericht
    Gruppenwechseldiagramm
    Gültige XML
    GUI

H

    Handle
    Hauptknoten
    Hauptteil
    Hierarchie
    Hintergrundelement
    Hintergrundprozeß
    HTML
    HTTP
    Hyperlink
    Hypertext

I

    ICD
    Implizites Objekt
    Importieren
    Index
    Innere Umrandung
    Integritätsregel
    Internet
    Interpreter-Skript
    Intranet
    IP (Internet Protocol)-Adresse

J

    JAR
    Java
    Join
    Justierung

K

    Kaskadierende Dokumentvorlage
    Kategorie
    Kategorienachse
    Kategorienachse
    Klassifizierung
    Klausel
    Knoten
    Kommentar
    Kompilieren
    Komponente
    Konstrukt
    Kontextbereich
    Kontrollgruppe
    Kontrollkästchen
    Kontrollspalte
    Kontrollsumme
    Koordinaten (x, y)
    Koordinatenebene
    Koordinatensystem
    Korrelierte Unterabfrage
    Kopieren
    Kreuzprodukt
    Kreuztabelle

L

    Laufzeit
    Laufzeit-Parametermaske
    Launcher
    Layouteinheit
    Layout
    Leinwandausschnitt
    Leinwand
    Lesekonsistenz
    Lexikalische Referenz
    Link
    Link-Datei
    Listenfeld
    Listenobjekt
    Logische Operatoren
    Logische Seite
    Lokale Datenbank
    Lokale Registrierung
    Lokale Variable

M

    Makro
    Master-/Detail-Layout
    Maß
    Matrixbericht
    Matrixlayout
    Matrixzelle
    Megabyte (MB)
    Mehrzeilenfeld
    Meldungsfeld
    Methode
    Modales Fenster
    Modul
    Muster

N

    NA-Wert
    Nach unten erweiterbar
    Nicht im Cache vorhandene Spalte
    Nicht-modales Fenster
    NOCACHE
    NULL-Wert
    Numerische Operatoren

O

    Objekte auf Berichtebene
    Objekt
    Objekt
    Objektgruppe
    Objekt-Handle
    Objektknoten
    Objektnavigator
    Objektspalte
    Objekttabelle
    Objekttyp
    ODBC
    OLE
    OLE-Container
    OLE-Server
    Optionsgruppe
    Optionsschaltfläche
    Oracle-Datentyp
    Oracle Designer
    ORACLE_HOME
    Organisationsknoten

P

    Paket
    Paketrumpf
    Paketspezifikation
    Palette
    Parameter
    Parameterliste
    Pcode
    PDF
    Physikalische Seite
    Platzhalter-Benutzername
    PL/SQL
    pld-Datei
    pll-Datei
    pls-Datei
    plx-Datei
    Popup-Liste
    Port
    Primärschlüssel
    Programmblock
    Programmstop
    Projekt
    Projektansicht
    Projekt-Assistent
    Projektdatei
    Projektknoten
    Projektnavigator
    Projektobjekt
    Projektregistrierung
    Protokoll
    Prozedur
    prt-Datei
    Puffer

Q

    Qualifizierende Dimension
    Quelle

R

    Rahmen
    Rand/Auffüllen/Textanzeige
    Rand
    Rand
    Rand
    Rasterlinien
    RC4
    RDBMS
    rdf-Datei
    Referenzlinie
    REF-Spalte
    Registrieren
    Registrierung
    Relationale Operatoren
    rep-Datei
    Reports Background Engine (RWRBE60)
    Reports Queue Manager (RWRQM60)
    Reports Server (RWMTS60S)
    Reports Web Cartridge
    Reports Web CGI (RWCGI60)
    rex-Datei
    RGB
    Richtig formatierte XML
    Routine
    RTF
    Runfile

S

    Schalter
    Schaltfläche
    Schaltfläche Auslassungszeichen
    Schaltflächenprozedur
    Schema
    Schleife
    Schlüsselwort
    Seite
    Seitenumbruch
    SELECT-Anweisung
    Selektor
    Serienbrief-Layout
    Sitzung
    Skript
    Socket
    Spalte
    Spaltenobjekt
    Speichern
    Spezifikation
    SQL
    SQL-Anweisung
    SQL-Datei
    SQL-Skript
    Stamm
    Standard
    Stapel
    Stapel
    Stapelkompilierung
    Statische gespeicherte Auswahl
    Stellvertreterzeichen
    Steuerungspunkt
    Summenspalte
    SYLK
    Symbol
    Symbolleiste
    Syntax
    Systemvariable

T

    Tabellarisch
    Tabelle
    Tabellentyp
    TCP
    Textobjekt
    Titel
    Titelleiste
    Titelseite
    Transaktion
    Trigger
    Typ

U

    Übergeordneter Knoten
    Übergeordnetes Objekt
    Übergeordnetes Objekt
    Überlauf
    Umgebung
    Umrandung
    Umschließendes Objekt
    Unabhängige Daten
    Untergeordnete Abfrage
    Untergeordnetes Objekt
    Untergeordnetes Objekt
    Unterprogramm
    Unterprojekt
    Unterprojektknoten
    URL
    Ursprung
    User Exit

V

    Variable
    Variierender Array-Typ
    VBX
    VBX-Steuerfeld
    Veränderung
    Verborgen
    Vererben
    Vergleichsoperatoren
    Verschachtelte Matrix
    Verschlüsselung
    Virtueller Ordner
    Virtuelles Dateisystem
    Visuelles Attribut
    Vordefinierte Aktion
    Vordefinierte Funktion
    Vordefinierte Prozeduren
    Vordefinierter Datentyp
    Vordefinierter Makro
    Vordefinierter Typ
    Vordergrundelement
    Voreinstellungen
    Vorgänger
    Vorgängergruppe
    Vorschau
    Vorschau

W

    Warnfenster
    Web
    Web-Browser
    Web-Cartridge
    Web-Link
    Web-Server
    Werkzeug
    Werkzeug Abgleichen
    Werkzeug Alle
    Werkzeug Attribut
    Werkzeug Bereich
    Werkzeug Ebene
    Werkzeug Exception
    Werkzeug Familie
    Werkzeug Gespeicherte Auswahl
    Werkzeug Liste
    Werkzeug Oben/Unten
    Werkzeug Selektor
    Werkzeug Sortieren
    Werkzeugpalette
    Wert der Basislinie
    Werteachse
    Werteachse
    Werteliste
    Wertkonstrukt
    Wiederholungsrahmen
    WRB
    WKS
    WWW

X

    XML

Y

Z

    Zeile
    Zeilenobjekt
    Zelle
    Ziehen
    Ziel
    Zielknoten
    Zoom
    Zugeordnete Bibliothek
    Zugriffsberechtigung
    Zustellen
    Zwischenablage


In Project Builder eine Befehlsfolge, die entweder von Project Builder oder vom Benutzer angegeben wird, der für Dateien eines bestimmten Typs zuständig ist. Eine Aktion ist nicht auf einen einzelnen Dateityp beschränkt. Wenn die Aktion "Kompilieren" z.B. sowohl für Forms als auch für C-Quelldateien definiert ist, werden bei Auswahl von "Projekt kompilieren" alle .fmb- und .c-Dateien mit den entsprechenden Tools kompiliert. Siehe auch vordefinierte Aktion, Benutzerdefinierte Aktion


Eine Programmiersprache auf hoher Ebene, die vom U.S. Department of Defense zur Benutzung in eingebetteten Computersystemen entwickelt wurde.


Ein Fenster oder eine Ansicht, die eine Benutzereingabe aufnehmen kann.


(Oracle Express) Die Konsolidierung von Daten für verschiedene Dimensionswerte zu einem einzigen Wert, wie z.B. die Gesamtanzahl von Einheiten, die in allen Städten verkauft wurden, oder zu kleineren Wertegruppen, wie z.B. die durchschnittlich in den Städten einer Region verkauften Einheiten. Daten werden häufig auf der niedrigsten Detailebene erfaßt und mit der Aggregatfunktion im Hinblick auf die Analyse auf höheren Ebenen verbunden.


Ein modales Fenster, das Sie über eine Bedingung unterrichtet, die aufgrund der als letztes von Ihnen ausgeführten Aktion aufgetreten ist. Sie müssen auf ein Warnfenster reagieren.


Mit Ausrichtung wird angegeben, wie die Daten in einem Feld positioniert sind. Die Daten können linksbündig, rechtsbündig, zentriert, im Flattersatz linksbündig, im Flattersatz rechtsbündig oder im Flattersatz zentriert innerhalb der definierten Breite eines Feldes ausgerichtet werden.


Ein sekundärer Name, der in einer SQL-Anweisung zur Bezugnahme auf eine Tabelle, eine Ansicht oder eine Spalte benutzt wird.


(Oracle Express) Ein Werkzeug im Dialogfeld Selektor, mit dem Sie alle Werte in einer Dimension oder alle Werte in einer Dimension bei einer bestimmten Hierarchie auswählen können.


(Oracle Express) Ein Dimensionswert auf einer beliebigen Ebene über einem bestimmten Wert in einer Hierarchie. Der Vorgängerwert entspricht der aggregierten Gesamtsumme der Werte der untergeordneten Objekte. Im folgenden Beispiel wird der Dimensionswert "Europa" als Vorgänger von "Frankreich", "Lyon" und "Paris" in der Dimension GEOGRAPHY dargestellt.


Eine Gruppe, die direkt oder indirekt Eigentümer einer anderen Gruppe ist.


Ein Layoutobjekt, mit dem ein Punkt auf einem Objekt an einem Punkt auf einem anderen Objekt fixiert wird, wobei die Position des ersten Objekts in bezug auf das zweite Objekt verankert wird.


(Oracle Express) Ein spezifischer Dimensionswert, der benutzt wird, wenn Dimensionswerte basierend auf deren Familienzugehörigkeit ausgewählt werden oder durch eine Hierarchie navigiert wird.


Ein PL/SQL-Programmblock, der keinen Namen hat und das Vorhandensein der Schlüsselwörter BEGIN und END zur Einrahmung der ausführbaren Anweisungen nicht explizit fordert. Da anonyme Blöcke unbenannt sind, können andere Programmblöcke sie nicht referenzieren.


Ein Objekt, das im Gruppenbaum eines anderen Objekts über diesem anderen Objekt steht. Jedes Objekt ist ein übergeordnetes Objekt des entsprechenden untergeordneten Objekts.


 Ein Java-Ausdruck für kleine Programme, die dynamisch nach Bedarf in Web-Seiten oder Anwendungen importiert werden können.


Ein oder mehrere Programmodule, mit denen ein bestimmtes Ergebnis erzielt wird. Anwendungen können innerhalb von anderen Anwendungen verschachtelt sein. So könnte z.B. eine Anwendung zur Kontrolle des Lagerbestands einer Firma aus verschiedenen Form Builder-Anwendungen zur Eingabe von Daten und verschiedenen Graphics Builder-Anwendungen zur visuellen Darstellung der Daten bestehen.


1. Ein optionaler Ausdruck, der an einen Programmblock übergeben wird, damit der Programmblock diesen bearbeitet.
2. Klauseln, die Schlüsselwörter und die entsprechenden Werte enthalten.


Akronym für American National Standard Code for Information Interchange.


Eine schreibgeschützte Sammlung von PL/SQL-Unterprogrammen, die im allgemeinen mit einer Anwendung geliefert werden und die entsprechende PL/SQL-Quelle darstellen. Programmblöcke in einer zugeordneten Bibliothek werden implizit geladen, wenn sie zuerst beim Kompilieren oder zur Laufzeit von einem anderen Programmblock aufgerufen werden. Sie bleiben geladen, damit sie schnell wieder benutzt werden können, wodurch die Speicheranforderungen zur Laufzeit reduziert werden und die Leistung einer Anwendung verbessert wird. Siehe auch:  Bibliothek


1. Siehe Attribut.
2.  Ein Teil oder eine Komponente einer Oracle8-Objekttypdefinition. Jedes Attribut hat einen Namen und einen Oracle8-Datentyp. Wenn eine Objekttabelle basierend auf dem Objekttyp erstellt wird, entsprechen die Spalten in der Tabelle den Attributen in der Objekttypdefinition. Wenn ein Spaltenobjekt in einer relationalen Tabelle basierend auf dem Objekttyp erstellt wird, enthält das Spaltenobjekt das Äquivalent von Unterspalten, von denen eine jede einem Attribut in der Objekttypdefinition entspricht. Jedes Oracle8-Objektattribut wird in einer Tabelle als separates Datenobjekt behandelt, so als wäre es eine separate Spalte. Dies gilt sowohl für Objekttabellen als auch für Spaltenobjekte in relationalen Tabellen.
3. (Oracle Express) Eine beschreibende Eigenschaft, die von Dimensionswerten gemeinsam benutzt wird. Attribute stellen logische Gruppierungen dar, mit denen Benutzer Daten basierend auf ähnlichen Eigenschaften auswählen können. In einer Datenbank für Schuhe können Sie z.B. das Attribut Schuhfarbe verwenden, um alle Stiefel, Loafers und Slipper, die dieselbe Farbe haben, auszuwählen.


Die Spalten, aus denen ein Spaltenobjekt besteht (Oracle8).


In Graphics Builder das erste Element in einem Attribut-Deskriptor. Hier handelt es sich um eine 32-Bit-Maske, die das Toolkit über die Attribute unterrichtet, die von einem nachfolgenden Funktionsaufruf gesetzt oder abgerufen werden. Nur die Elemente, bei denen die entsprechenden Bits in der Attributmaske gesetzt sind, werden eingestellt oder abgerufen.


(Oracle Express) Ein Werkzeug im Dialogfeld Selektor, mit dem Sie Dimensionswerte basierend auf Attributen und Attributwerten auswählen können. In einer Datenbank für Soft Drinks könnten Sie z.B. alle Produkte auswählen, deren Größe 1 Liter entspricht. In diesem Beispiel ist Größe ein Attribut und 1 Liter ein Attributwert.


(Oracle Express) Die Werte in der Datenbank, aus denen ein Attribut besteht. In einer Datenbank für Eiscreme könnten die folgenden Attribute zu einem Geschmacksattribut in einer Dimension Produkt gehören: Vanille, Schokolade und Erdbeere. Dimensionswerte auf verschiedenen Ebenen in der Dimension Produkt - z.B. Marke, Präsentation und Größe  -- könnten denselben Wert für Geschmack verwenden.


Eine Diagrammart, bei der die Daten entsprechend ihrer Position auf der Diagrammachse dargestellt werden Ein Achsendiagramm kann zwei oder drei Achsen enthalten, wobei jede eine Werteachse, Kategorienachse oder Datumsachse sein kann.


Der weiße Teil eines Musters. Mit der Füllfarbenpalette weisen Sie dem Hintergrundelement Farben zu.


Ein nicht interaktiver Prozeß, der in einer Betriebssystemumgebung abläuft und einen bestimmten Dienst bzw. eine bestimmte Aktion ausführt. Bestimmte Oracle-Produkte verwenden Hintergrundprozesse für verschiedene Aufgaben, wie z.B. die Ausführung und Koordinierung von Aufgaben für gleichzeitige Benutzer der Datenbank, die Verarbeitung und Zustellung von E-Mails und die Verwaltung von Druckdiensten.


Der Wert, der als Anfangspunkt für die Darstellung von Feldern auf der Werteachse eines Diagramms benutzt wird.


Die ausführbare Datei, die eine Anwendung im Stapelmodus ausführt, ohne ein Fenstersystem zu benutzen.


Bei der Stapelkompilierung werden mehrere PL/SQL-Programmblöcke auf einmal in eine maschinenausführbare Form umgesetzt.


Eine Bezugnahme auf einen Parameter, der einen einzelnen literalen Wert (z.B. eine Zeichenfolge, eine Zahl oder ein Datum) ersetzt, der an einer beliebigen Stelle in einem PL/SQL-Konstrukt oder einer SQL SELECT-Anweisung auftritt. Bei einer Bindereferenz muß vor dem Parameternamen ein Doppelpunkt (:) stehen.


Eine globale Variable, die Sie erstellen und außerhalb eines PL/SQL-Pakets verwenden können.


1. Der Hauptprogrammblock in PL/SQL, der mit den Schlüsselwörtern DECLARE, BEGIN, EXCEPTION und END definiert wird.

2. In Form Builder ein logischer Container, der zu einer Datenbanktabelle oder Ansicht gehört.


1. Enthält dieselben Informationen wie die Programmblockspezifikation und umfaßt außerdem die tatsächliche Implementierung des Unterprogramms (d.h. die Folge von Aktionen). In den meisten Fällen muß nur ein Hauptteil für ein Unterprogramm definiert werden.

2. In Report Builder ein Bereich, der den Großteil des Berichtlayouts enthält (Text, Grafiken, Daten und Berechnungen) und in diesem Fall als Rumpf bezeichnet wird. Der Berichtrumpf steht zwischen den Titel- und Schlußseiten des Berichts.


Text und/oder Grafiken, die bei jeder Ausführung des Berichts in einem Bericht angezeigt werden. Bei einigen Produkten wird dies als "konstanter" Text bzw. "konstante" Grafiken bezeichnet.


Eine benutzerdefinierte Einrahmung eines Layoutobjekts, mit der im allgemeinen der Inhalt des Objekts hervorgehoben wird. Ränder werden so gezeichnet, daß die eine Hälfte der Randbreite außerhalb der Objekteinrahmung und die Hälfte innerhalb der Einrahmung liegt.


Siehe Innere Umrandung, Äußere Umrandung


Ein Achsendiagramm, bei dem zwei Datenkategorien auf einer Achse dargestellt werden.


Eine Abfragespalte, die einer Kontrollgruppe zugewiesen ist.


Eine Gruppe, mit der Berichtdaten aufgeteilt oder kategorisiert werden. Alle Daten in Abfragespalten, die einer Kontrollgruppe zugewiesen sind, werden über den Daten in den Spalten angezeigt, die zu anderen Gruppen gehören. Jeder Datensatz, der für eine Kontrollgruppe abgerufen wird, wird nur einmal angezeigt, während mehrere zusammengehörige Datensätze in anderen Gruppen angezeigt werden können.


Ein Bericht, der Kategorien enthält, mit denen die Berichtdaten in Gruppen aufgeteilt werden.


Ein PL/SQL -Block, der immer dann ausgeführt wird, wenn ein Programmstop erreicht wird. Siehe auch:  Programmstop.


Eine Debug-Aktion, die Sie in eine beliebige ausführbare Quellzeile in einem PL/SQL-Unterprogramm setzen können. Ein Programmstop unterbricht die Ausführung des Programmblocks und übergibt die Kontrolle an den PL/SQL-Interpreter. Mit Programmstops können Sie ein Unterprogramm inkremental ausführen und nach Laufzeitfehlern suchen. Siehe auch: Break-Trigger


Bezieht sich auf eine Komponente, mit der eine bestimmte Art von Dokument erstellt wird. So wird Form Builder z.B. benutzt, um Forms zu erstellen, während mit Report Builder Berichte erstellt werden.


Ein Datentyp, der von dem Oracle-Server definiert und unterstützt wird.


Eine Reihe von Erweiterungen der PL/SQL-Sprache, die zur Benutzung mit der Software ausgelegt sind. Vordefinierte Prozeduren umfassen Datentypen, Prozeduren, Funktionen, Exceptions und Konstanten.


In Project Builder ein mit Project Builder gelieferter Makro. Siehe auch Makro..


Ein temporärer Speicherbereich für Daten während der Übertragung dieser Daten zwischen dem Computer und einem Peripheriegerät oder zwischen Teilen eines Computers. Ein Puffer verhindert einen Datenverlust aufgrund von Differenzen in der Geschwindigkeit bzw. zeitlichen Steuerung des Transfers und beschleunigt bestimmte Funktionen.


1. Ein Oberflächenelement, mit dem ein Aktionsobjekt ausgewählt, ein Dialogfeld angezeigt oder die aktuelle Bedingung bestätigt werden kann.

2. Ein Objekt in einer Anwendung, mit dem eine PL/SQL-Prozedur verknüpft ist. Die Prozedur wird im allgemeinen aufgrund eines vom Benutzer ausgelösten Mausereignisses ausgeführt.


Eine PL/SQL-Prozedur, die mit einem Anwendungsobjekt verknüpft ist, das ausgeführt wird, wenn zur Laufzeit ein bestimmtes Mausereignis für das Objekt eintritt (z.B. das Klicken auf eine Schaltfläche). Die Prozedur wird ausgeführt, indem eine Hierarchie für die abgerufenen Daten mit einer Kontrollgruppe erstellt wird.


Ein temporärer Speicherbereich für Daten der Datenbank, auf die gerade zugegriffen wird oder die von Benutzern geändert werden, bzw. für Daten, die Oracle-Server zur Unterstützung der Benutzer benötigt. Die Begriffe werden häufig austauschbar verwendet.


Eine Schnittstelle, mit der Sie ausführbare Routinen der Forms Developer- oder Reports DeveloperKomponente für andere Oracle-Produkte oder ein 3GL-Programm aufrufen können.


Eine Folge von Unterprogrammaufrufen von der ursprünglichen Eintrittsstelle nach unten bis zu dem gerade ausgeführten Unterprogramm. Jeder Unterprogrammaufruf wird durch einen Rahmen in dem nach unten erweiterbaren Aufrufstapel dargestellt, wobei neu eingegebene Unterprogramme am Ende des Stapels hinzugefügt werden.


Siehe Editor


In Form Builder das Hintergrundobjekt, auf dem Sie die Schnittstellenobjekte positionieren, mit denen die Benutzer in der Laufzeitanwendung arbeiten. Ein Leinwandausschnitt ist im allgemeinen einem Fenster zugeordnet.


Verwaltbare Objekte, die über eine Open API in Client, Anwendungs-Server oder Datenbank eingesteckt werden.


Siehe Dokumentvorlage


Eine Beschriftungskomponente, mit der zwischen Informationen auf der Grundlage einer nicht hierarchischen Darstellung bzw. Einteilung und nicht auf der Grundlage von Empfindlichkeitsebenen unterschieden werden kann. Bei der Klassifizierung werden Kategorien benutzt, um den Zugriff zu Informationen einzuschränken.


Siehe Kategorienachse


Eine Dateninstanz in einem Kalkulationsblatt (z.B. Microsoft Excel).


Akronym für Common Gateway Interface. Die dem Industriestandard entsprechende Technik zur Ausführung von Anwendungen auf einem Web-Server. Während standardmäßige HTML-Dokumente, die von einem Web-Server abgerufen werden, statisch sind (es wird jedesmal genau derselbe Text abgerufen), kann ein auf dem Web-Server ausgeführtes Programm über CGI mit einem anderen Computer kommunizieren, um "dynamische" HTML-Dokumente als Antwort auf vom Benutzer eingegebene Seiten zu generieren.


Akronym für Computer Graphics Metafile. Ein Dateiformat, das international anerkannt ist und für die Speicherung bzw. den Transport objektorientierter Grafiken von einem System oder Programm zu einem anderen benutzt wird.


Ein Oracle-Datentyp, der im Hinblick auf die ANSI/ISO-Kompatibilität enthalten ist. Eine CHAR-Spalte ist eine Spalte mit fester Länge. Sie kann ausdruckbare Zeichen enthalten, wie z.B. A, 3, & oder Leerzeichen und kann von 1 bis 255 Zeichen umfassen bzw. gleich null sein.


Ein Balken, eine Linie, ein Symbol oder ein anderes Grafikobjekt, das einen einzelnen Wert für ein Feld darstellt.


Ein Rechteck mit beliebiger Größe mit einem Rand, mit dem Graphics Builder-Diagramme in eine Form oder einen Bericht eingebettet werden können.


Eine Sammlung von Attributen und Eigenschaften, die das Format eines Diagramms definieren.


Ein Oberflächenelement, das als kleines Quadrat angezeigt wird, das ein Benutzer ein- oder ausschalten kann.


Ein Algorithmus zur Fehlerprüfung.


1. Ein Objekt, das Bestandteil einer Gruppe ist und unmittelbar unter dem Gruppenobjekt in dem entsprechenden Gruppenbaum steht. Die Objekte, die ein Gruppenobjekt bilden, sind untergeordnete Objekte dieser Gruppe. Jedes Objekt ist ein untergeordnetes Objekt des entsprechenden übergeordneten Objekts.

2. (Oracle Express) Ein Dimensionswert auf der Ebene unmittelbar unter einem bestimmten Wert in einer Hierarchie. Werte von untergeordneten Objekten sind in der Berechnung enthalten, die die aggregierte Gesamtsumme für ein übergeordnetes Objekt erzeugt. Ein Dimensionswert kann ein untergeordnetes Objekt von mehr als einem übergeordneten Objekt sein, wenn die Dimension mehr als eine Hierarchie hat. Im folgenden Beispiel werden die Dimensionswerte "Lyon" und "Paris" als untergeordnete Objekte von "Frankreich" in der Dimension GEOGRAPHY dargestellt.


Siehe Detail-Abfrage


Eine hierarchische Ebene, mit der die Empfindlichkeit der beschrifteten Informationen angegeben wird. Mit Klassifizierungen kann der Zugriff zu Informationen begrenzt werden.


Ein Teil einer SQL-Anweisung, der nicht die ganze Anweisung darstellt, z.B. eine "WHERE-Klausel".


Ein Benutzer, eine Softwareanwendung oder ein Computer, der die Dienste, Daten oder eine Verarbeitung von einer anderen Anwendung bzw. einem anderen Computer (dem "Server") anfordert. In einer Zwei-Task-Umgebung ist der Client der Benutzer-Prozeß. In einer Netzwerkumgebung ist der Client der lokale Benutzerprozeß, und der Server kann lokal oder entfernt sein.


Aufteilung der Verarbeitung zwischen zwei Zentraleinheiten, wobei eine als Server dient, der Dienste in einer Transaktion leistet, und die andere als Client in der Transaktion, der Dienste anfordert und empfängt. Alle Verantwortlichkeiten der gemeinsamen Datenverwaltung können von dem Computer verarbeitet werden, auf dem das Datenbankverwaltungssystem ausgeführt wird, während die Workstations, die die Datenbankanwendung ausführen, sich auf die Interpretation und Anzeige von Daten konzentrieren.


Ein Speicherpuffer. Ein Objekt bleibt in der Zwischenablage, bis Sie ein weiteres Objekt ausschneiden oder kopieren bzw. bis Sie die Anwendung beenden.


Ein benutzerdefinierter Datentyp, der eine Dateneinheit beschreibt, die aus einer unbestimmten Anzahl von Elementen besteht, die alle denselben Datentyp aufweisen. Variierende Array-Typen und Tabellentypen sind Collection-Typen.  (Oracle8)


Ein Argument, mit dem Sie eine Datei angeben können, die eine Gruppe von Befehlszeilenargumenten für ausführbare Prozeduren von Forms Developer enthält.


Enthält alle Farben, die für das Fenstersystem, die Zeichnungsoberfläche oder ein Fenster und die zugehörigen Ansichten verfügbar sind.


1. Ein vertikaler Bereich in einer Datenbanktabelle, der eine bestimmte Datendomäne darstellt. Eine Spalte hat einen Spaltennamen (z.B. ENAME) und einen bestimmten Datentyp (z.B. CHAR). In einer Tabelle mit Mitarbeiterdaten würden z.B. die Namen aller Mitarbeiter eine Spalte darstellen. Eine Datensatzgruppenspalte stellt eine Datenbankspalte dar.
2. In Report Builder ein Datenmodellobjekt, das automatisch für jeden Spaltenausdruck in der SELECT-Liste einer Abfrage bzw. manuell erstellt wird, um Summen bzw. Formeln zu berechnen oder als Platzhalter zu fungieren.


In einer relationen Oracle8-Tabelle oder Objekttabelle, eine Spalte, deren Definition auf einem Objekttyp basiert.  Die Spalte ist ein zusammengesetztes Objekt, das den Attributen des Objekttyps entspricht.


Eine Befehlszeile auf Betriebssystemebene. Die meisten Oracle-Produkte können aus einer Befehlszeile mit einer Reihe von Argumenten für ausführbare Programme aufgerufen werden.


Ein Sprachkonstrukt für die Aufnahme von erläuterndem Text in einem Programm, dessen Ausführung davon nicht betroffen wird.


Wenn die Änderung von Daten in der Datenbank festgeschrieben wird, spricht man vom Speichern. Bevor Änderungen gespeichert werden, sind sowohl die alten als auch die neuen Daten vorhanden, so daß Änderungen gespeichert oder die Daten im vorherigen Zustand wiederhergestellt werden können.


(Oracle Express)

>	Größer als

<	Kleiner als

=	Gleich

<=	Kleiner als oder gleich

>=	Größer als oder gleich

<>	Ungleich

Bei Zahlen werden die Operanden auf den niedrigsten gemeinsamen Typ erweitert (Ganzzahl ist vorrangig gegenüber Long, was wiederum vorrangig gegenüber einfacher Genauigkeit ist, was vorrangig gegenüber doppelter Genauigkeit ist). Bei Zeichenfolgen muß die Schreibweise bei dem Vergleich berücksichtigt werden. Der Vergleich basiert auf der Sortierfolge, die von der in der Windows-Systemsteuerung angegebenen Sprache benutzt wird. Das Ergebnis ist 0 bei FALSE und -1 bei TRUE.


Übersetzung eines Quellprogramms in ein binäres, ausführbares Format. PL/SQL-Programmblöcke müssen kompiliert werden, bevor sie ausgeführt werden können.


Ein bestimmtes Zielobjekt, das Bestandteil einer größeren Anwendung ist, z.B. eine Form in einem System zur Auftragseingabe oder eine Bibliothek, die von vielen anderen Elementen gemeinsam genutzt wird. Siehe auch Ziel.


Der gleichzeitige Zugriff auf dieselben Daten durch mehrere Benutzer, die verschiedene Datenbankanwendungen oder dieselbe Anwendung ausführen. Bei der Datenbanksoftware erfordert eine Gleichzeitigkeit eine zusätzliche Logik, um zu gewährleisten, daß alle Benutzer konsistente Daten erhalten und daß alle Änderungen in der richtigen Reihenfolge durchgeführt werden.


Ein Ausdruck, dessen Wert entweder wahr oder falsch ist wie z.B. X> 100. So können Sie z.B. eine Bedingung in einer Abfrage festlegen, wenn die Abfrage nur die Zeilen anzeigen soll, deren Auswertung in dem Ausdruck wahr ist.


Layouteditor-Modus, der verhindert, daß untergeordnete Objekte verschoben oder innerhalb bzw. außerhalb der übergeordneten Objekte skaliert werden.


Zur Anmeldung bei einer Datenbank wird eine DB-Adresse verwendet. Sie müssen sich anmelden, wenn Sie Abfragen erstellen oder ändern bzw. auf Anwendungen zugreifen möchten, die in einer Datenbank gespeichert sind.


Die Gruppe von Parametern, einschließlich einem Protokoll, die SQL*Net benutzt, um sich bei einer bestimmten Oracle-Instanz im Netzwerk anzumelden.


Eine Regel oder Einschränkung, die sich auf bestimmte Daten bezieht (wie z.B. eine NOT NULL-Einschränkung für eine Spalte), die auf Datenbankebene und nicht auf Objekt- oder Anwendungsebene durchgesetzt wird.


Eine PL/SQL-Codestruktur. Es gibt zwei Arten von Konstrukten: Nicht-Wert-Konstrukte, die keinen Wert zurückgeben, und Wert-Konstrukte, die einen Wert zurückgeben.


Ein Arbeitsbereich, in dem Oracle-Server die aktuelle SQL-Anweisung sowie die Spaltenüberschriften und eine Zeile des Ergebnisses speichert, wenn es sich bei der Anweisung um eine Abfrage handelt. Wird auch als Cursor bezeichnet.


Eine Achse, auf der Werte dargestellt werden, die mit einem Wert beginnen und fortgeführt werden, bis ein anderer Wert erreicht ist. Auf diese Weise sind diese Werte mathematisch miteinander verbunden. Abhängige Daten werden im allgemeinen auf dieser Achse dargestellt, die auch als Werteachse bezeichnet wird.


Die vier Eckpunkte des virtuellen Rechtecks, das die Idealform eines Objekts darstellt. Wenn Sie ein Objekt in dem Layout auswählen, werden die Steuerungspunkte angezeigt. Je nach ausgewähltem Objekt können Sie das Objekt ändern, indem Sie einen Steuerungspunkt ziehen.


Das zweidimensionale Raster, in dem gezeichnet wird.


Die Art von x-, y-Einheiten, mit denen Objekte in der Layouteditor-Ansicht positioniert und skaliert werden. Die verfügbaren Koordinatensysteme sind 1) Zeichen, das die ursprüngliche Größe der Zeicheneinheit der Plattform verwendet, und 2) reell, bei dem in Pixel-, Zentimeter-, Zoll- oder Punkt-Einheiten gemessen wird.


Die Positionspunkte für Objekte in dem Layout. Die x- und y-Koordinaten bestimmen die horizontale (x) und vertikale (y) Position von Objekten.


Speichern einer Replik eines ausgewählten Objektes in der Zwischenablage, damit das Objekt gegebenenfalls an einer anderen Stelle im Editor eingefügt werden kann.


Eine Unterabfrage, die auf denselben Tabellen basiert, wie die übergeordnete Abfrage (d.h. Spalten in den Tabellen referenziert, die in der übergeordneten Abfrage enthalten sind).


Gruppe, die zwei oder mehr andere Gruppen besitzt und ein mathematisches Kreuzprodukt erzeugt (d.h. eine Korrelation zwischen den Werten berechnet).


Siehe Matrixzelle


1. Ein kleines Symbol, mit dem die Position der Maus dargestellt wird. Die Cursorform variiert je nach ausgewähltem Tool.

2. Ein interner Zeiger auf Daten, die von einer Abfrage abgerufen werden. Der Cursor zeigt immer nur auf eine Datenzeile gleichzeitig. Sie können jedoch vordefinierte Unterprogramme verwenden, um den Cursor zu einer beliebigen Zeile in der Datengruppe zu setzen.


(Oracle Express) Eine von einem Benutzer erstellte Formel, mit der die Datenanalyse optimiert werden kann. Sie erstellen benutzerdefinierte Maße anhand von Basismaßen in der Datenbank. Wenn die Datenbank z.B. das vorhandene Maß Volume Share enthält, können Sie mit diesem Maß ein benutzerdefiniertes Maß mit der Bezeichnung Volume Share Year Ago erstellen. Mit diesem benutzerdefinierten Maß können Sie den absoluten Anteil eines Produkts im vergangenen Jahr ermitteln.


Löschen von einem oder mehreren Objekten und Speichern dieser Objekte in der Zwischenablage, damit sie gegebenenfalls an einer anderen Stelle im Editor eingefügt werden können.


Eine Ansicht wird verändert, wenn sie voll oder teilweise von einer anderen Ansicht verdeckt wird.


Eine Gruppe von Tabellen und Ansichten, die dem Datenbankadministrator gehören. Dies ist die zentrale Informationsquelle für Oracle-Server und andere relationale Datenbanken.


Ein Datenmodellobjekt, mit dem eine Master-/Detail-Beziehung (Beziehung zwischen übergeordnetem und untergeordnetem Objekt) zwischen einer Gruppe und einer Abfrage definiert wird.


Ein relationales Modell, mit dem definiert wird, welche Daten aus der Datenbank abgerufen werden sollen, welche Daten berechnet werden sollen und wie Daten in einem Bericht angeordnet werden sollen. Report Builder-Objekte, die das Datenmodell definieren, sind Abfragen, Gruppen, Spalten, Parameter und Links.


Eine Quelle für Daten, die von einer Abfrage zurückgegeben werden, einschließlich Datenbankobjekten, wie Tabellen, Ansichten, Synonymen, Snapshots und als Ansichten gespeicherte Abfragen.


In Project Builder ein Knoten im Projektnavigator, der das Projektobjekt angibt, das die Struktur eines offenen Projekts bestimmt. So gibt z.B. der Knoten Globale Registrierung die Globale Registrierung an, die eine Liste von lokalen Registrierungen und eine Liste von globalen Definitionen enthält.


Eine Gruppe von Dictionary-Tabellen und Benutzertabellen, die als eine Einheit benutzt werden.


Ein gespeicherter PL/SQL-Block, der implizit ausgeführt wird, wenn eine triggerauslösende Anweisung INSERT, UPDATE oder DELETE für die zugehörige Tabelle in der Datenbank ausgegeben wird. Siehe auch: Debug-Trigger.


Eine Standardform von Daten. Einige gebräuchliche Oracle-Datentypen sind CHAR, VARCHAR2, DATE, NUMBER, LONG, RAW und LONG RAW.


Ein Datentyp von Oracle-Server. Eine Datumsspalte kann ein Datum und eine Zeit zwischen dem 1. Januar 4712 v.Chr. und dem 31. Dezember 4712 n.Chr. enthalten.


Eine Achse, auf der Datumswerte dargestellt werden, die bei einem Datum beginnen und fortgeführt werden, bis ein anderes Datum erreicht ist.


Erkennen, Diagnostizieren und Beheben von Laufzeitfehlern in Programmen.


Ein vom Benutzer angegebenes Ereignis, das in ein PL/SQL-Unterprogramm gesetzt wird, im allgemeinen im Hinblick auf die Behebung von Laufzeitfehlern.


Eine bedingte Debug-Aktion, die Sie in jede Quellzeile in einem PL/SQL-Unterprogramm setzen können. Wenn die angegebene Bedingung erfüllt wird, wird die angegebene Aktion ausgelöst, bevor die Ausführung des Unterprogramms wiederaufgenommen wird. Siehe auch: Datenbank-Trigger.


Die Funktionalität von Procedure Builder innerhalb einer Software-Komponente, die für das Testen und Debuggen benutzt wird.


In Oracle8 sind Objekttypen und Objekte zusammengesetzte Objekte, die aus Bestandteilen oder Attributen bestehen. Forms Developer oder Reports Developer behandelt jeden Bestandteil bzw. jedes Attribut als unabhängiges, individuell auswählbares Datenobjekt. Dies führt zu einem aufgelösten Objekt (gelegentlich auch als Flattened Object bezeichnet).  Das Objekt ist keine homogene Entität innerhalb der Developer-Umgebung.


Eine Datengruppe, deren Wert von anderen Daten abhängt. So kann z.B. die Betriebsangehörigkeit eines Mitarbeiters den Wert 10 haben, der vom Wert des Mitarbeiternamens abhängt. Wird auch als Wertdaten bezeichnet.


Ein Wert, der vom System geliefert wird, wenn ein Benutzer keinen erforderlichen Befehlsparameter bzw. kein erforderliches Befehlsattribut angibt.


Vorbereitung und Bereitstellung einer fertigen Anwendung zur Verteilung und Benutzung.


In Project Builder der Mechanismus, mit dem Project Builder bestimmt, wie Dateien kompiliert werden, die in Projekten referenziert werden. Objekte am oberen linken Rand des Baums hängen von den Objekten am unteren linken Rand ab. Wenn z.B. eine Kopfzeilendatei entweder veraltet oder neuer ist als die ausführbare Datei, mit der sie generiert wurde, generiert Project Builder die ausführbare Datei mit einem Build-Befehl neu. Abhängigkeiten erstrecken sich auch auf Unterprojekte. Wenn z.B. ein Unterprojekt aus einer Funktionsbibliothek besteht, die neu generiert wurde, weiß Project Builder, daß das abhängige Projekt neu generiert werden muß, um die aktualisierten Bibliotheksfunktionen zu benutzen. Siehe auch Abhängigkeitsansicht


Zeigt in Project Builder die Dateien im Projektnavigator in der Reihenfolge an, in der sie voneinander abhängen, wobei Projektknoten am obersten Punkt in der Hierarchie stehen, gefolgt von Zielknoten, auf die wiederum generierbare Komponenten dieser Ziele folgen. So hängt eine ausführbare Form z.B. von einer .fmb-Datei ab, die auf die Form folgt, die wiederum von einer Bibliothek abhängt und von dieser gefolgt wird, die für eine USEREXIT-Prozedur benutzt wird usw. Siehe auch Projektansicht, Ziel


1. Ein Objekt, das in dem Gruppenbaum eines anderen Objekts an einer beliebigen Stelle unterhalb dieses anderen Objekts steht. Jedes Objekt ist ein untergeordnetes Objekt der entsprechenden übergeordneten Objekte.

2. (Oracle Express) Ein Dimensionswert auf einer beliebigen Ebene unter einem bestimmten Wert in einer Hierarchie. Werte von untergeordneten Objekten sind in der Berechnung enthalten, die die aggregierte Summe für ein Vorgängerobjekt erzeugt. Im folgenden Beispiel werden die Dimensionswerte "Frankreich", "Lyon" und "Paris" als untergeordnete Objekte von "Europa" in der Dimension GEOGRAPHY dargestellt


Die Oberfläche, auf der verschiedene Komponenten einer Forms Developer- oder Reports Developer-Anwendung entworfen werden.


Siehe Oracle Designer..


Eine Gruppe von Werkzeugen zur Modellierung, Entwicklung und Generierung von Anwendungen. Mit Oracle Designer können Sie Forms und Menüs aus Moduldefinitionen generieren, die im Oracle-Repository aufgezeichnet sind.


Bei der Definition eines Master-/Detail-Berichts ruft die Detailabfrage alle zusammengehörigen Datensätze für jeden Datensatz ab, der von der Master- oder übergeordneten Abfrage abgerufen wird.


Ein Teilbildschirm bzw. ein Fenster, in dem Sie aufgefordert werden, die zur Ausführung eines Vorgangs erforderlichen Informationen einzugeben.


Eine Zwischendarstellung eines Programmblocks, die vom Compiler generiert wird. DIANA umfaßt alle syntaktischen und semantischen Informationen für einen kompilierten Programmblock. Um eine Referenz auf einen Programmblock zu kompilieren, muß der Compiler Zugriff zu der referenzierten DIANA-Darstellung des Programmblocks haben. Wenn z.B. Programmblock A Programmblock B aufruft, muß die DIANA-Darstellung für B verfügbar sein, bevor A kompiliert werden kann.


(Oracle Express) Ein Typ eines Datenbankobjekts, bei dem es sich um eine Werteliste handelt, die Kategorien für Daten bereitstellt. Eine Dimension fungiert als Index zur Kennzeichnung von Werten einer Variablen. Angenommen, Umsatzdaten mit separaten Umsatzzahlen für jeden Monat sind vorhanden. In diesem Fall haben die Daten eine Dimension MONTH, d.h. die Daten sind nach Monat organisiert. Eine Dimension kann mit einem Schlüssel in einer relationalen Datenbank verglichen werden.

Jedes Datenobjekt innerhalb einer mehrdimensionalen Variablen kann eindeutig und vollständig ausgewählt werden, indem ein Element aus jeder der Dimensionen der Variablen angegeben wird. Wenn z.B. eine Variable Gehalt nach MONTH, PRODUCT und MARKET dimensioniert ist, wobei "Januar" für die Dimension MONTH, "Stereos" für die Dimension PRODUCT und  "Osten" für die Dimension MARKET angegeben wird, wird nur eine Zelle in der Variablen eindeutig angegeben. Somit bieten Dimensionen eine präzise und intuitive Möglichkeit Daten zu organisieren und auszuwählen, um Abrufen-, Aktualisieren- und Berechnenvorgänge durchzuführen.

Eine Dimension kann einfach sein, mit Werten, bei denen es sich um einfache Text- oder ganzzahlige Werte handelt. Sie kann jedoch auch eine Conjoint-Dimension sein, mit Werten, bei denen es sich um Kombinationen aus anderen Werten in anderen Dimensionen handelt. Ein zusammengesetztes Objekt ist keine Dimension, sondern ein conjoint-ähnliches Objekt, das Express im Hinblick auf die Verarbeitung von selten auftretenden Daten als Dimension behandelt.


 (Oracle Express) Ein Element in der Liste, aus der eine Dimension besteht. Eine Computerfirma könnte z.B. Dimensionswerte mit der Bezeichnung "LAPPC" und "DESKPC" in der Dimension PRODUCT haben. Werte in der Dimension GEOGRAPHY könnten "Boston" und "Paris" umfassen. Werte in der Dimension TIME könnten "MAY96" und "JAN97" umfassen.


Der Status eines Oberflächenelements, mit dem angegeben wird, daß ein Menüpunkt, eine Schaltfläche usw. im aktuellen Kontext nicht benutzt werden kann, d.h. daß das Objekt nicht auf eine Tastatur- oder Mauseingabe reagiert.


Eine Achse, auf der verschiedene Werte in festen Intervallen dargestellt werden. Diese Werte stehen mathematisch nicht in Beziehung zueinander. Unabhängige Daten werden im allgemeinen auf dieser Achse dargestellt.


Ein Graphics Builder-Dokument, das eine beliebige Kombination von Diagrammen, Bildern, Textobjekten und Formeln enthält.


In Form Builder ein Objekt, in dem Informationen gespeichert und angezeigt werden, die mit PL/SQL abgerufen oder programmgesteuert zugewiesen werden müssen.


Zum Aufrufstapel gehörig, in dem neu eingegebene Unterprogramme am Ende des Stapels hinzugefügt werden. Der früheste Rahmen, der dem ursprünglichen Eintrittspunkt in das Programm entspricht, befindet sich am oberen Rand des Stapels, während der letzte Rahmen, der mit dem am tiefsten verschachtelten Unterprogrammaufruf verknüpft ist, am unteren Ende des Stapels steht.


Beim Ziehen halten Sie eine Maustaste gedrückt, während Sie den Mauszeiger zu einer bestimmten Stelle in einem Fenster schieben.


(Oracle Express) Beim Aufgliedern wird in den Aggregationsebenen in einer Dimension, die eine Hierarchie hat, nach oben und unten navigiert. Wenn Sie Dimensionswerte auswählen oder Daten anzeigen, können Sie eine Dimensionshierarchie ein- oder ausblenden, indem Sie in ihr nach oben oder unten aufgliedern. Beim Aufgliedern nach unten wird die Ansicht eingeblendet, damit die untergeordneten Objekte aufgenommen werden, die mit übergeordneten Werten in der Dimensionshierarchie verknüpft sind. Beim Aufgliedern nach oben wird die Liste mit untergeordneten Werten ausgeblendet, die mit einem übergeordneten Wert in der Dimensionshierarchie verknüpft sind.

Sie können auf ein Plus-Symbol ( [image]) klicken, um die Hierarchie einzublenden oder auf ein Minus-Symbol ( [image]), um sie auszublenden.

Im Selektor können Sie auf das Symbol Aufgliedern ( [image]) klicken, um das Dialogfeld Aufgliedern anzuzeigen, so daß Sie eine Detail-Ebene für die ganze Dimension auswählen können.


Eine Option, mit der Sie Objekte direkt auf dem Layout kopieren können, ohne daß sich dies auf den Inhalt der Zwischenablage auswirkt.


(Oracle Express) Eine gespeicherte Auswahl kann bei jeder Auswertung verschiedene Dimensionswerte aufweisen. Die ausgewählten Dimensionswerte können sich von Benutzung zu Benutzung unterscheiden. Dagegen ist eine statische gespeicherte Auswahl eine Liste mit Dimensionswerten, die sich nicht ändert. Ein Skript für eine dynamisch gespeichertes Auswahl könnte "Select the last three Months" enthalten, während ein Skript für eine statisch gespeicherte Auswahl  "Select February 1996, March 1996, and April 1996" enthalten könnte.


Akronym für Extended Binary-Coded Decimal Interchange Code.


Die Umrandung eines Objekts.


Ein Anzeigefeld in der Werkzeugpalette des Layouteditors, in dem die aktuellen Einstellungen für Rand, Füllung, Textmuster und Farben dargestellt werden.


Ein Arbeitsbereich, in dem Sie bestimmte Aufgaben ausführen, wie z.B. einen Programmblock erstellen oder eine Anwendung entwerfen.


Ein wichtiges Objekt, zu dem Sie Informationen aufzeichnen müssen. Elemente werden von Attributen und Verknüpfungen mit anderen Elementen beschrieben.


Ein beliebiges Element im Dictionary wird als Element eines bestimmten Typs eingeordnet. Beispiele für Elementtypen sind Entität, Attribut, Programmodul, Tabelle, Diagramm, Text, Softbox. Vorkommen bzw. Instanzen dieser Elemente werden ebenfalls als Elemente bezeichnet.


(Oracle Express) Diese Schaltfläche zeigt ein Dialogfeld für die gerade ausgeführte Aufgabe an, im allgemeinen, damit Sie einen oder mehrere benötigte Werte auswählen können.


Status eines Oberflächenelements, der angibt, daß ein Menüpunkt, eine Schaltfläche usw. im aktuellen Kontext benutzt werden kann, d.h. auf eine Tastatur- und/oder Cursor-/Mauseingabe reagiert.


Ein Objekt, das ein anderes Objekt enthält. Ein Objekt ist nur dann von einem anderen Objekt umschlossen, wenn folgende Bedingungen alle wahr sind: Beide Objekte gehören zum selben Bereich (Hauptteil, Rand, Titel oder Anhang), das äußerste der beiden Objekte ist ein Rahmen oder Wiederholungsrahmen, das äußerste der beiden Objekte steht hinter dem anderen Objekt, das innerste der beiden Objekte liegt voll innerhalb der Umrandung des anderen Objekts.


Beim Verschlüsseln werden Daten so codiert, daß nur der beabsichtigte Empfänger sie decodieren (entschlüsseln) und lesen kann.


Der Computer-Arbeitsplatz des Benutzers, einschließlich der Tools, die normalerweise benutzt werden, und deren Konfiguration. Bei Project Builder bezieht sich dies auf die Teilmenge von Tools, mit denen verschiedene Aufgaben im Zusammenhang mit der Entwicklung von Forms Developer-Anwendungen ausgeführt werden.


Eine Warn- oder Fehlerbedingung, die von einem PL/SQL-Unterprogramm generiert wird.


(Oracle Express) Ein Werkzeug im Dialogfeld Selektor, mit dem der Benutzer Dimensionswerte auswählen kann, die mit den Daten verknüpft sind, die den von Benutzer angegebenen Bedingungen entsprechen. So könnte der Benutzer z.B. alle Produkte auswählen, deren Umsätze in der Woche, die am 23.Dezember 1995 endet, im Bereich München höher als 10.000 DM waren.


Ein Argument, das Sie an die ausführbare Routine eines Produkts übergeben können, wie z.B. 'OPENFILE=my_disp' und 'PRINT=YES'. Diese Argumente werden im allgemeinen angegeben, wenn die ausführbare Routine über die Befehlszeile aufgerufen wird.


Siehe Ausführen


Speichern einer Kopie von Objekten, Modulen, ausgewählten Texten oder Bildern in einer Datei oder Datenbank. Bei Project Builder wird mit Exportieren der Prozeß bezeichnet, bei dem eine Datei, die Projekt-, Typ-, Aktions- und/oder Makro-Definitionen enthält, in ein portierbares Format zur Verteilung an andere Benutzer geschrieben wird, die möglicherweise auf heterogenen Plattformen arbeiten. Siehe auch Exportdatei, Importieren.


In Project Builder die gemeinsam benutzbare, portierbare Datei, die durch das Exportieren eines Projekts erstellt wird.


1. Ein PL/SQL-Konstrukt, in dem Variablen, Konstanten, Literale und Vorgänge mit den Werten kombiniert werden.

2. (Oracle Express) Ein oder mehrere Datenwerte, die in einem Programm in der Express-Sprache angegeben werden. Sie können z.B. Ausdrücke als Argumente für Programme und Funktionen angeben. Ein Ausdruck kann aus einem der folgenden Elemente bestehen:

•	Ein einfacher, literaler Wert (z.B. 10)

•	Eine Variable oder Formel, die einen oder mehrere Werte enthält

•	Eine Funktion, die einen oder mehrere Werte zurückgibt

•	Eine Berechnung, mit der Werte, wie z.B. Variablen, Formeln oder Funktionen mit arithmetischen oder Booleschen Operatoren kombiniert werden.


Siehe Bibliothek


Eine SQL SELECT-Anweisung im ANSI-Standard, auf die von anderen Oracle-Produkten Bezug genommen werden kann.


(Oracle Express) Eine Gruppe mit zusammengehörigen Dimensionswerten, die den Ebenen der Dimensionshierarchie entsprechen. Dimensionswerte innerhalb einer Familie können in einer Beziehung Vorgänger, übergeordnetes Objekt, untergeordnetes Objekt und Nachfolger zueinander stehen. In dem folgenden Beispiel werden die Familienbeziehungen für den Dimensionswert "Frankreich" in der Dimension GEOGRAPHY dargestellt.


(Oracle Express) Ein Werkzeug im Dialogfeld Selektor, mit dem der Benutzer eine Familie mit Dimensionswerten für eine bestimmte Hierarchie auswählen kann. Eine Familie umfaßt ein übergeordnetes Objekt und alle untergeordneten Dimensionswerte. Der Benutzer kann z.B. alle Familienmitglieder unter der Ebene des Marktes Chicago in der Dimension Geography auswählen.


1. Ein Oberflächenelement, in dem Sie Daten eingeben, bearbeiten oder löschen. 2. In Graphics Builder oder Report Builder ein Layoutobjekt, mit dem definiert wird, wie die Daten für eine bestimmte Abfragespalte angezeigt werden.


In Graphics Builder eine Sammlung von Attributen und Eigenschaften, mit denen bestimmt wird, wie abhängige Daten (Werte) als Diagrammfelder dargestellt werden, wie z.B. Balken oder Linien.


In Project Builder ein Knoten im Projektnavigator, der eine Datei angibt, die im Dateisystem gespeichert ist. So entsprechen z.B. die globalen und lokalen Registrierungsknoten den globalen und lokalen Registrierungsdateien.


Der Bereich innerhalb eines Objekts, für den eine Füllfarbe bzw. ein Füllmuster angewandt werden soll.


Eine PL/SQL-Funktion oder eine anonyme Funktion, die die Daten einschränkt, die von einer Gruppe angezeigt werden.


Ein Computer, der den Zugriff auf Computer in einem lokalen Netzwerk von außen und den Zugriff auf externe Computer aus dem lokalen Netzwerk reguliert.


Siehe Aufgelöstes Objekt.


Layouteditor-Modus, in dem übergeordnete Objekte automatisch skaliert oder verkleinert werden, wenn untergeordnete Objekte verschoben oder skaliert werden, und bei dem die Positionen von anderen Layoutobjekten angepaßt werden, die sonst von der Positionsänderung oder Skalierung der Objekte betroffen wären.


Status einer Entität, die auf die Eingabe vom Benutzer oder dem Client reagieren kann. Wenn eine Entity den Tastaturfokus hat, kann sie Ereignisse empfangen, wenn der Benutzer eine Taste drückt. Wenn eine gezeichnete Ansicht den Zeichnenfokus hat, kann sie auf Client-Routinen reagieren, die sich auf das Zeichnen auswirken.


Der schwarze Teil eines Musters. Mit der Randfarbpalette können Sie Farbe für das Vordergrundelement anwenden.


Ein Wert oder eine Spalte in einer Tabelle, die sich auf einen Primärschlüssel in einer anderen Tabelle bezieht.


In Report Builder ein Standard-Layoutstil, bei dem Beschriftungen links neben den Feldern angezeigt werden und bei dem jeder Datensatz auf einer separaten logischen Seite gedruckt wird.


In Report Builder ein Standard-Layoutstil, der Boilerplate und Felder mischt, wobei Zeilen bei ganzen Wörtern umbrochen werden.


(Feldattribute) Eine Einstellung, die das Format eines Feldwertes definiert. So wird z.B. eine Formatmaske benutzt, um die Anzeige von Währungsbeträgen und Datumsangaben zu bestimmen.


Eine PL/SQL-Funktion, mit der Sie die Formatierungsattribute eines Objekts dynamisch ändern können.


(Oracle Express) Ein Typ eines Datenbankobjekts, das eine gespeicherte Berechnung, einen Ausdruck oder eine Prozedur darstellt, die einen Wert erzeugt. Mit einer Formel können komplexe oder häufig benutzte Beziehungen innerhalb der Daten definiert und gespeichert werden, ohne daß die Daten selbst erneut gespeichert werden müssen. Immer wenn Sie eine Formel benutzen, führt Express die Berechnung oder Prozedur aus, die zur Erzeugung des Wertes erforderlich ist.


Eine vom Benutzer erstellte Spalte, die ihre Daten aus einer PL/SQL-Funktion bzw. einem PL/SQL-Ausdruck, einem User Exit, einer SQL-Anweisung oder einer beliebigen Kombination dieser erhält.


In Graphics Builder der Teil einer Diagrammvorlage, der die Grundstruktur eines Diagramms definiert, jedoch nicht bestimmt, wie die Daten dargestellt werden.
2. In Report Builder ein Layoutobjekt, mit dem andere Layoutobjekte umschlossen werden und mit dem Formatierung, Wiederholung und Position von mehreren Objekten gleichzeitig gesteuert wird.


Ein PL/SQL-Unterprogramm, das eine bestimmte Folge von Aktionen ausführt und dann einen Wert zurückgibt. Es kann auf dem Client und dem Datenbank-Server gespeichert sein und ausgeführt werden.


Speichern einer Anwendung in einer Datei oder Datenbank in einem Binärformat, das von ausführbaren Laufzeit- und Stapel-Routinen ausgeführt werden kann.


Die ausführbare Routine von Form Builder, mit der eine Anwendung in einer Datei oder Datenbank im Binärformat gespeichert wird.


Eine Registrierung von Project Builder, bei der Informationen gespeichert werden, die für die ganze Forms Developer- oder Reports Developer-Installation gelten. Diese Informationen sind auf Typdefinitionen und die zugehörigen Aktionen und vordefinierte bzw. benutzerdefinierte Attribute beschränkt. Die Benutzung der Globalen Registrierung ist optional; ihre Funktionen können von einzelnen Benutzerregistrierungen ausgeführt werden. Siehe auch Registrierung, Benutzerregistrierung


Ein logischer Container, der anwendungsübergreifend vorhanden ist. Wenn eine Anwendung eine globale Variable benutzt, verwaltet die Anwendung die Variable, bis die Anwendung beendet wird oder bis ein anderes Objekt sie explizit entfernt.


Mit einer Zugriffsberechtigung wird einem Benutzer der Zugriff auf ein Modul erteilt. Nur der Modulersteller kann anderen Benutzern den Zugriff auf das Modul erteilen.


In Graphics Builder die Linien, die Zeilen und Spalten im Layouteditor trennen.


1. Ein Objekt, das aus mehreren anderen Objekten besteht.
2. In Report Builder ein Datenmodellobjekt, das automatisch so erstellt wird, daß alle von einer Abfrage ausgewählten Spalten enthalten sind, oder das vom Benutzer so erstellt wird, daß die Hierarchie der Daten in einem Bericht geändert wird; das Modellobjekt wird in erster Linie für das Erstellen von Programmstops in einem Bericht verwendet sowie für das Zurücksetzen von Berechnungen.
3. In Project Builder Sammlungen von zusammengehörigen Objekten, die über Untermenüs aus dem Launcher aufgerufen werden können. Mit Gruppen können Benutzer den Launcher so konfigurieren, daß er im wesentlichen wie das Start-Menü von Windows 95 aussieht mit beliebigen "Gruppen" als Einträgen, die Zugang zu anderen Objekten und/oder Gruppen ermöglichen. So könnte ein Benutzer z.B. eine Gruppe namens "Project Docs" mit einem Projektplan, einer Liste von auszuführenden Aufgaben, Komponentenspezifikationen usw. definieren; bei einigen Dateien kann es sich um .txt-Dateien und bei anderen um .doc-Dateien handeln.


Eine PL/SQL-Funktion, die die Daten einschränkt, die von einer Gruppe abgerufen werden.


Ein hierarchisches Modell, das einem "Stammbaum" entspricht und die Beziehung zwischen Gruppenobjekten und den Objekten beschreibt, aus denen die Gruppenobjekte bestehen.


Akronym für Graphical User Interface (grafische Benutzeroberfläche). Die Benutzung von Bildern und nicht nur Wörtern zur Darstellung der Ein- und Ausgabe eines Programms. Programme mit GUIs laufen unter Systemen in Fenster-Technik (wie z.B. X Windows, Microsoft Windows, Apple Macintosh usw.). Bei GUI-Programmen werden Symbole, Schaltflächen usw. in Fenstern auf dem Bildschirm angezeigt. Benutzer steuern die GUI-Programme im wesentlichen, indem sie einen (typischerweise durch eine Maus gesteuerten) Zeiger bewegen. Wird auch als Bitmap-Oberfläche bezeichnet.


Ein interner Zeiger auf ein Anwendungsobjekt. Um Bezug auf ein Objekt in einem PL/SQL-Programmblock zu nehmen, müssen Sie dessen Handle als Argument an das entsprechende Unterprogramm übergeben.


Ein optionaler Berichtbereich, der einführendes Material für den Bericht enthalten kann, einschließlich Text, Grafiken, Daten und Berechnungen. Der Berichttitel wird zuerst vor dem Hauptteil und dem Anhang angezeigt.


Ein Knoten im Objektnavigator, der einen Objekttyp angibt, der in einem Bericht enthalten oder mit einem Bericht verknüpft sein kann. Durch Auswahl eines übergeordneten Knotens wird kein Objekt in dem Bericht ausgewählt.


(Feldattribute) Ein Attribut, mit dem angegeben wird, ob Report Builder das angegebene Feld bei der entsprechenden Position im Layout unterdrückt. Wenn Verborgen angegeben ist, wird der Feldwert nur angezeigt, wenn in Textobjekten (mit &fieldname) Bezug auf den Feldwert genommen wird.


(Oracle Express) Eine Möglichkeit, Daten zu organisieren und zu strukturieren. Von einer Hierarchie wird gesprochen, wenn Werte innerhalb einer Dimension in Ebenen geordnet sind, wobei jede Ebene die aggregierte Gesamtsumme der Daten aus der Ebene darunter darstellt. Einige Dimensionen haben mehrere Hierarchien, die auf ihnen basieren.

Im folgenden Beispiel wird eine Hierarchie basierend auf der Dimension GEOGRAPHY dargestellt, in der Dimensionswerte in fünf Ebenen angeordnet sind. Daten auf der Ebene Customers werden in der Ebene Cities aggregiert, die wiederum in den Ebenen Countries/Areas, Continents/Regions und Global aggregiert wird.


Akronym für Hypertext Markup Language.  Eine kennzeichen-orientierte ASCII-Sprache, mit der Inhalt und Links zu anderen Dokumenten auf Web-Servern im Internet angegeben werden. Endbenutzer mit Web-Browsern können HTML-Dokumente anzeigen und Links verfolgen, um anderen Dokumente anzuzeigen.


Akronym für Hypertext Transfer Protocol. Das Protokoll, mit dem der WWW-Verkehr zwischen einem Computer mit WWW- Browser und dem WWW-Server bewältigt wird, auf den zugegriffen wird.


Eine Referenz (ein Link) von einem bestimmten Punkt in einem Dokument zu einem bestimmten Punkt in einem anderen Dokument oder einem bestimmten Punkt in demselben Dokument. Ein Web-Browser zeigt im allgemeinen einen Hyperlink unterschiedlich (in einer anderen Farbe, einer anderen Schriftart oder einem anderen Stil) an. Wenn Benutzer Hyperlinks aktivieren (indem sie mit der Maus auf sie klicken), zeigt der Browser das Ziel des Links an.


Eine Sammlung von Dokumenten, die Querverweise enthalten, mit denen die Leser mit Hilfe eines Web-Browsers schnell von einem Dokument zu einem anderen wechseln können.


Querverweise, mit denen Leser mit Hilfe eines Web-Browsers direkt von einem Dokument zu einem anderen gehen können.


Akronym für Interface C Definition - eine PL/SQL-Anwendungsprogrammierschnittstelle zu der in C implementierten Funktionalität.


Eine grafische Darstellung eines Fensters oder Werkzeugs.


Ein Bitmap-Objekt, das in eine Anwendung gespeichert und geladen werden kann. Der Client kann ein importiertes Bild nicht ändern.


In Project Builder ein Projektobjekt, im allgemeinen das Ergebnis einer automatischen Generierung, das Project Builder erkennt und für das es automatisch Einträge im Projektnavigator erstellt. So kann Project Builder z.B. .obj-Dateien erkennen, die während der Kompilierung von C-Quelldateien als Zwischenschritt generiert werden, und kann Einträge für diese im Projektnavigator erstellen. Auch wenn das Zurücksetzen der Attribute eines impliziten Objekts nur von begrenztem Nutzen ist (die nächste Kompilierung zerstört die Änderungen), können derartige Objekte nützlich sein, da sie über Aktionen wie Bearbeiten, Ansicht und Drucken überprüft werden können. Siehe auch Objekt, Aktion.


1. Einlesen eines Moduls aus dem Dateisystem oder der Datenbank und Integration des Moduls in einer Anwendung.
2. Lesen in einer Datei, die Projektinformationen enthält.


Datenelemente, deren Wert nicht von anderen Daten abhängig ist. So kann z.B. der Name eines Mitarbeiters den Wert Johann enthalten, der unabhängig von den Werten der Namen der anderen Mitarbeiter oder zugehöriger Daten ist. Wird auch als Kategoriedaten bezeichnet.


Eine optionale Struktur, die mit einer Tabelle verknüpft ist, mit der Oracle-Server Zeilen der Tabelle schnell sucht und (optional) garantiert, daß jede Zeile eindeutig ist.


In Project Builder die Übernahme von Informationen für Aktionen, Typen, Makros oder Attributdefinitionen aus einem übergeordneten Knoten im Abhängigkeitsbaum. Wenn in einem übergeordneten Knoten zugehörige Attribute vorhanden sind, können diese vererbt werden. So können z.B. Dateisystem-Objekte wie Forms und Dokumente Aktionsdefinitionen von Unterprojekten, Projekten, der Benutzerregistrierung oder der Globalen Registrierung erben. Projekte können Typdefinitionen von der lokalen oder Globalen Registrierung erben usw.


Das virtuelle Rechteck, das die Idealform eines Objekts darstellt und die vier Steuerungspunkte verbindet, unabhängig von der Randstärke oder anderen Attributeinstellungen.


Die Datei, mit der ein Ziel generiert wird: zum Beispiel ist eine .fmb-Datei das Eingabeelement für eine .fmx-Datei. Wird auch als Quelle bezeichnet.


Ein Modus, bei dem jedes eingegebene Zeichen bei der Cursorposition eingefügt wird, wobei die nachfolgenden Zeichen nach rechts verschoben werden. Das Gegenteil von Einfügen-Modus ist Ersetzen-Modus.


Ein weltweites TCP/IP-gestütztes Computernetzwerk.


Eine Datei, die eine Mischung aus PL/SQL-Quellcode, Procedure Builder-Befehlen und SQL-Anweisungen enthält.


Ein internes TCP/IP-Netzwerk. Der Zugriff auf dieses Netzwerk ist (über einen Firewall) auf Einzelpersonen innerhalb eines Unternehmens oder einer Organisation beschränkt. Ein Intranet bietet innerhalb einer Organisation ähnliche Dienste wie das Internet, ist jedoch nicht notwendigerweise an das Internet angeschlossen. Ein allgemeines Beispiel für ein Intranet ist die Einrichtung von einem oder mehreren Web-Servern in einem internen Netzwerk innerhalb eines Unternehmens zur Verteilung von Informationen oder Anwendungen innerhalb des Unternehmens.


Eine aus vier Bestandteilen zusammengesetzte Zahl mit maximal drei Ziffern in jedem Teil, die einen Computer im Internet eindeutig kennzeichnet.


In Project Builder ein Objekt im Dateisystem, das mit dem Projekt verknüpft ist, wie z.B. eine Form oder ein Dokument, auf das ein Knoten im Projektnavigator zeigt bzw. das durch einen Knoten im Projektnavigator dargestellt wird.


In Project Builder ein Eintrag im Projektnavigator-Fenster, der aus einem Symbol und einem beschreibenden Titel besteht. Knoten weisen auf tatsächliche Objekte im Dateisystem hin, wie z.B. Form Builder-Dateien und Dokumente. Siehe auch Knoten, Objekt.


Akronym für Java ARchive.  Eine Datei, mit der viele Dateien (Java-Klassendateien, Bilder usw.) zu einer Datei verbunden werden.


Eine Computersprache, die die Programmierung für das Internet in Form von plattformunabhängigien "Applets" unterstützt.


Kombinieren von Daten aus zwei (oder mehr) Tabellen in einer einzigen SELECT-Anweisung.


Siehe Ausrichtung


1. Teil einer Befehlszeilensyntax, der mit einem entsprechenden Argument angegeben werden muß. 2. Ein obligatorischer Teil eines PL/SQL-Konstrukts.


Text, der die Werte bzw. die Bedeutung der visuellen Objekte einer Anwendung kennzeichnet.


(Oracle Express) Eine Position in einer Dimensionshierarchie. Jede Ebene über das Basisebene stellt die aggregierte Gesamtsumme der Daten aus der Ebene darunter dar. So könnte die Dimension TIME z.B. aufsteigende Ebenen wie Month, Quarter und Year haben. Innerhalb einer Dimensionshierarchie hat ein Dimensionswert auf einer Ebene eine Familienbeziehung mit den Dimensionswerten auf den Ebenen über und unter dieser Ebene.


(Oracle Express) Ein Werkzeug im Dialogfeld Selektor, mit dem der Benutzer Dimensionswerte basierend auf deren Ebene in einer bestimmten Hierarchie auswählen kann. Der Benutzer kann z.B. alle Dimensionswerte auf der Ebene Key Account in der Dimension Geography auswählen.


Der Bereich eines Editors, in dem Sie Objekte erstellen, ändern, positionieren oder löschen können.


Eine Maßeinheit, mit der gewährleistet wird, daß ein konsistentes Maßsystem bei den verschiedenen Anzeigegeräten verwendet wird. Wird zur Angabe einer Position auf dem Layout oder zur Angabe der Abmessungen eines Objekts benutzt.


Eine Referenz auf einen Parameter, mit dem eine Textfolge in einer SQL SELECT-Anweisung dargestellt wird. Für eine lexikalische Referenz muß vor dem Parameternamen ein Et-Zeichen (&) stehen.


Eine Sammlung aus einem oder mehreren PL/SQL-Programmblöcken, die gemeinsam in einer Datei im Client-Dateisystem oder in der Datenbank gespeichert sind. In einer Bibliothek gespeicherte Programmblöcke können von mehreren Anwendungen gleichzeitig referenziert werden. Im Gegensatz zu gespeicherten Programmblöcken, die in der Datenbank gespeichert sind und ausgeführt werden, werden Programmblöcke in Bibliotheken immer innerhalb der PL/SQL-Engine auf der Client-Seite geladen und ausgeführt. Um Programmblöcke zu referenzieren, die in einer Bibliothek gespeichert sind, müssen Sie die Bibliothek zuerst zuordnen. Siehe auch: Zugeordnete Bibliothek..


Ein Datenmodellobjekt, mit dem eine Master-/Detail-Beziehung (Beziehung zwischen übergeordnetem und untergeordnetem Objekt) zwischen einer Gruppe und einer Abfrage definiert wird.


Name einer Datei, mit der ein Boilerplate-Objekt verknüpft ist. Zur Laufzeit importiert Report Builder den Inhalt der Datei in Ihr Berichtlayout.


Eine Liste mit Objekten innerhalb eines Dialogfeldes. Im allgemeinen enthält das Listenfeld verschiedene Optionen zur Auswahl. Außerdem kann ein Bildlauf durch das Listenfeld vorgenommen werden.


In Form Builder ein Objekt, das eine Liste mit Auswahlen anzeigt.


Eine Werteliste entspricht einem Popup-Fenster, durch das ein Bildlauf vorgenommen werden kann und das eine ein- oder mehrspaltige Auswahlliste für den Benutzer anzeigt.


(Oracle Express) Ein Werkzeug im Dialogfeld Selektor, mit dem Sie Dimensionswerte aus einer Liste der momentan ausgewählten Werte in der Dimension auswählen können.


1. Die Datenbank auf dem Computer, auf dem die Anwendung ausgeführt wird. 2. Die Datenbank, mit der eine Anwendung verbunden ist. Diese Datenbank analysiert und führt alle SQL-Anweisungen aus, die von der Anwendung generiert werden.


Siehe Benutzerregistrierung.


Eine PL/SQL-Variable, die nur im Geltungsbereich des aktuellen Programmblocks deklariert wird.


(Oracle Express)

Not	Unäres Not -- Operand kann vom Typ Ganzzahl oder Long sein. Der Vorgang wird bitweise (Einerkomplement) durchgeführt.

And	And - Operanden können vom Typ Ganzzahl oder Long sein. Der Vorgang wird bitweise durchgeführt.

Or	Inklusives Or  -- Operanden können vom Typ Ganzzahl oder Long sein. Der Vorgang wird bitweise durchgeführt.

Xor	Exklusives Or -- Operanden können vom Typ Ganzzahl oder Long sein. Der Vorgang wird bitweise durchgeführt.

Eqv	Äquivalenz -- Operanden können vom Typ Ganzzahl oder Long sein. Der Vorgang wird bitweise durchgeführt. (A Eqv B) ist identisch mit (Not (A Xor B)).

Imp	Implikation -- Operanden können vom Typ Ganzzahl oder Long sein. Der Vorgang wird bitweise durchgeführt. (A Imp B) ist identisch mit ((Not A) OR B).


Eine Seite des tatsächlichen Berichts (es können eine oder mehrere physikalische Seiten angezeigt werden).


In einem PL/SQL-Unterprogramm eine Bedingungsanweisung, die wiederholt wird, bis die Bedingung nicht mehr erfüllt wird.


In Project Builder eine typspezifische Variable, mit der Aktionen individuell gestaltet und erweitert werden können. Bei einem Makro kann es sich entweder um eine Konstante oder einen einfachen Ausdruck handeln (der wiederum andere Konstanten und/oder Ausdrücke enthalten kann). Durch die Benutzung von Makros wird die Ausgabe von Befehlsoptionen wesentlich flexibler gestaltet. Außerdem kann der Benutzer Befehlssätze einfacher ändern, indem er eine Attributdefinition ändert.


Ein Standardlayout, bei dem Datensätze in einer oder mehreren Spalten auf der Seite angezeigt werden. In einem einzelnen Wiederholungsrahmen werden Felder direkt untereinander angezeigt.


Ein optionaler Berichtbereich, der am oberen und unteren Ende jeder logischen Seite im Hauptteil angezeigt wird. Der Rand kann ein beliebiges Layoutobjekt enthalten, enthält jedoch typischerweise Boilerplates und Felder (für Seitennummern, Gesamtanzahl von Seiten, Gesamtsummen und laufendes Datum und Uhrzeit).


Ein Standardlayout, bei dem Detail-Datensätze unter den Master-Datensätzen stehen. Master-Datensätze werden im Form-Layoutstil angezeigt, während Detail-Datensätze im tabellarischen Layoutstil angezeigt werden.


(Oracle Express) Ein Werkzeug im Dialogfeld Selektor, mit dem der Benutzer Dimensionswerte auswählen kann, indem Zeichen in den Namen von Dimensionswerten mit den vom Benutzer angegebenen Zeichen abgeglichen werden. Der Benutzer kann z.B. alle Dimensionswerte in der Dimension Produkt auf der Ebene Marke auswählen, die die Zeichen "neu" enthalten.


Eine Wiederholungsrichtung, bei der jeder Datensatz eines Wiederholungsrahmens als eine Zelle einer Matrix angezeigt wird.


Ein Standardlayout, das einem Raster entspricht, das die vier Datengruppen formatiert, die für einen Matrixbericht erforderlich sind. Eine Datengruppe wird als eine Zeile mit Beschriftungen angezeigt, eine andere als eine Spalte mit Beschriftungen, eine Datengruppe erstellt das Raster, und eine Datengruppe füllt die Zellen des Rasters auf.


Eine Kreuztabellierung von vier Datengruppen: Eine Datengruppe wird horizontal auf der Seite angezeigt, eine Datengruppe wird vertikal auf der Seite angezeigt, eine Datengruppe ist das Kreuzprodukt, das alle möglichen Positionen bestimmt, bei denen horizontale und vertikale Daten in Bezug zueinander stehen, und das eine Zelle an diese Stellen setzt. Schließlich wird noch eine Datengruppe als "Füller" der Zellen angezeigt.


(Oracle Express) Daten die überprüft und analysiert werden können, wie z.B Umsatzzahlen oder Kostendaten. Sie können die Daten in einem Maß auswählen. Maße können als Variablen oder Beziehungen gespeichert werden. Maße können auch mit Hilfe von Formeln berechnet werden.


Eine Speichereinheit, die 1.048.576 Byte (1024 x 1024) entspricht. Wird häufig auf eine Million Byte gerundet.


Ein modales Fenster, das Sie über eine Bedingung unterrichtet, die aufgrund Ihrer letzten Aktion aufgetreten ist. Sie müssen auf ein Meldungsfeld reagieren.


Ausführbarer Code, der über die Objekttypdefinition einem Oracle8-Objekt zugeordnet ist.


Ein Fenster, das eine Antwort vom Operator erfordert, bevor die Anwendung fortgesetzt werden kann.


Ein nicht eingeschränktes Fenster, das so viel Funktionalität aufweisen kann, wie das zur Laufzeit benutzte Fensterverwaltungsprogramm unterstützt.


1. Ein Objekt, das von mehreren Anwendungen benutzt werden kann. Externe Abfragen und PL/SQL-Bibliotheken sind Beispiele für Module. 2. In Form Builder eine wichtige Komponente einer Anwendung (d.h. ein Menümodul).


Ein Feld in einem Fenster oder Dialogfeld, das sich über mehrere Zeilen erstreckt, so daß Sie einen vertikalen Bildlauf durch die Informationen vornehmen können.


(Oracle Express) Ein besonderer Datenwert, mit dem angegeben wird, daß die Daten "nicht anwendbar" (NA) bzw. nicht verfügbar sind. NA entspricht dem Wert einer Zelle, der kein bestimmter Wert zugewiesen wurde oder für die keine Daten berechnet werden können.


Matrixbericht, bei dem die horizontale und/oder vertikale Dimension eine oder mehrere Master-/Detail-Beziehungen enthält. Es gibt keine Grenze für die zulässige Verschachtelungstiefe.


Ein Datentyp, mit dem angegeben wird, daß die Daten abgerufen werden, wenn die Seite formatiert wird, auf der die Daten stehen (und nicht abgerufen und gepuffert werden, bis die Formatierung abgeschlossen ist).


1. Eine bestimmte Position in der Objekthierarchie des Objektnavigators. Knoten können eingeblendet werden, um Informationen über ein Objekt zu geben, wie z.B. Querverweise auf andere Objekte. 2. In Project Builder ein Eintrag im Projektnavigator. Siehe auch Objekt, Objektkknoten, Organisationsknoten.


Eine Berichtspalte, die eine Datenbankspalte vom Typ NOCACHE referenziert.


Das Fehlen eines Wertes.


(Oracle Express)

^	Potenzierung

-,+	Unäres Minus und Plus

*, /	Numerische Multiplikation oder Division. Bei der Division entspricht das Ergebnis einer Zahl mit doppelter Genauigkeit.

\	Ganzzahlige Division. Die Operanden können Ganzzahlen oder Zahlen mit dem Datentyp Long sein.

Mod	Modulus oder Rest. Die Operanden können Ganzzahlen oder Zahlen mit dem Datentyp Long sein.

-, +	Numerische Addition und Subtraktion. Der Operator + kann auch für die Zeichenfolgenverkettung benutzt werden.


1. Ein Objekt, das in das Layout gesetzt werden kann. Beispiele für Objekte sind Rechteck, Linie, Ellipse, Bogen, Polygon, Polygonzug, abgerundetes Rechteck, Freihandzeichnung, Diagramm, Text, Symbol und Textfeld.2.  In Oracle8 eine Instanz eines Objekttyps. Bei einem Objekt kann es sich um eine Zeile in einer Objekttabelle  oder um den Teil einer Zeile handeln, der in einem Spaltenobjekt in einer relationalen Tabelle enthalten ist.


Siehe Spaltenobjekt.


Ein Container für eine Gruppe von Objekten, der die Möglichkeit bietet, zusammengehörige Objekte zu kopieren bzw. zu referenzieren.


Siehe Handle


Ein Fenster, das die hierarchische Liste der Objekte für die aktuelle Sitzung enthält. Die Liste wird gegliedert angezeigt. Mit ihr kann der Benutzer verschiedene Aufgaben ausführen, wie z.B. Objekte erstellen, bearbeiten, umbenennen und löschen.


In Oracle8 eine Tabelle, deren Definition auf einem Objekttyp basiert. Jedes Attribut in dem Objekttyp wird zu einer Spalte in der Objekttabelle. Jede Zeile in der Tabelle ist ein individuelles Oracle8-Objekt.


In Oracle8 eine Benutzerdefinition oder benutzerdefinierte Vorlage, auf der Objekte aufgebaut werden können. Ein Objekttyp ist ein zusammengesetztes Objekt, das aus Attributen besteht. Jedes Attribut hat einen Namen und einen Datentyp. Der Objekttyp als Ganzes hat einen Namen. Ein Objekttyp kann auch eine oder mehrere Methoden umfassen.


Akronym für Open Database Connectivity.  Ein Standard für den Zugriff auf verschiedene Datenbanksysteme. Eine Anwendung kann Anweisungen an ODBC weiterleiten, indem die ODBC-Möglichkeiten von SQL verwendet werden.  ODBC konvertiert diese dann in die Sprache, die die Datenbank versteht. Mit dem Oracle Open Client Adapter (OCA) kann eine Anwendung dann konsistent auf verschiedene Datenbankverwaltungssysteme zugreifen.  Auf diese Weise kann ein Anwendungsentwickler eine Anwendung entwickeln, kompilieren und verteilen, ohne sich nach einem bestimmten DBMS richten zu müssen.


Object Linking and Embedding (Verknüpfen und Einbetten von Objekten).


Eine Anwendung, die OLE-Objekte speichern und anzeigen kann.


Eine Anwendung, die OLE-Objekte erstellt.


Siehe Vordefinierter Datentyp.


Eine Umgebungsvariable, die das Hauptverzeichnis für Oracle-Produkte angibt.


Ein Eintrag im Projektnavigator, wie z.B. "Typen", "Projekte", "Form-Dateien" usw., mit dem der Navigator gegliedert werden kann und der den Dateityp der untergeordneten Objekte angibt. Der Eintrag kann auch einer Datenstruktur innerhalb bestimmter Typen von Dateisystemobjekten entsprechen.


In x- und y-Koordinaten dargestellt. Der Ursprung einer Ansicht gibt die Position der Ansicht auf der übergeordneten Leinwand an. Der Ursprung einer Leinwand gibt die Position der Zeichnung in einer gezeichneten Ansicht an.


Das kleinste virtuelle Rechteck, das ein Objekt vollständig umschließt.


Wenn der Inhalt eines Objekts nicht auf die aktuelle logische Seite paßt, spricht man von Überlauf. Bei einem Überlauf wird ein Teil des Inhalts auf die nächste logische Seite verschoben.


Eine PL/SQL-Funktionder Software, auf die an einer beliebigen Stelle innerhalb eines Programmblocks Bezug genommen werden kann.


Eine Methode für das Verpacken und Speichern zusammengehöriger Prozeduren, Funktionen, Variablen und anderer Paketkonstrukte als eine Einheit in der Datenbank oder auf dem Client. Während Pakete dem Datenbankadministrator oder Anwendungsentwickler Organisationsvorteile bieten, gewährleisten sie außerdem verbesserte Funktionalität und Datenbankleistung. Die Software stellt verschiedene vordefinierte Pakete bereit, die PL/SQL-Konstrukte enthalten, die von client-seitigen Programmblöcken referenziert werden können (z.B. Paket TEXT_IO). Außerdem werden verschiedene Pakete mit dem Oracle Datenbank-Server geliefert, mit denen gespeicherte Programmblöcke referenziert werden können (z.B. Paket DBMS_OUTPUT).


Umfaßt die aktuelle Implementierung des Pakets, das private Unterprogramme und Datentypen enthalten kann. Der Hauptteil ist optional, wenn das Paket nur aus Deklarationen besteht.


Deklariert die öffentliche Schnittstelle zu dem Paket, d.h. die Datentypen und Unterprogramme, die andere Programmblöcke referenzieren können.


(Oracle Express) 1. Ein Datensegment, das in einem Bericht enthalten ist. Auf zusätzlichen Seiten werden zusätzliche Datensegmente angezeigt.

In der folgenden Abbildung werden drei Seiten mit Daten dargestellt.

2. In Express kann eine Seite auch eine Speichereinheit in einer Express-Datenbank referenzieren.


(Oracle Express) Mit dem Seitenumbruch wird angegeben, wie für eine Abfrage ausgewählte Daten in Ihrem Kalkulationsblatt dargestellt werden. Das Seitenlayout hat drei Ränder - Horizontal, Vertikal und Seite. Mit den Rändern wird angegeben, wie ein mehrdimensionaler Datenkubus, der von der Abfrage definiert wird, in einem zweidimensionalen Kalkulationsblatt dargestellt wird. In Dimensionsbeschriftungen werden die Namen und Positionen der Dimensionen angegeben. Mit einer Beschriftung auf dem Horizontalen Rand wird angegeben, daß diese Dimesion als Spalte angezeigt wird. Mit einer Beschriftung auf dem Vertikalen Rand wird angegeben, daß diese Dimension als Zeile angezeigt wird. Mit einer Beschriftung auf dem Rand Seite wird angegeben, daß diese Dimension in einem Seitenfeld über den Ergebnissen angezeigt wird.


Eine Einstellung, mit der festgelegt wird, ob das aktuelle Objekt und die untergeordneten Objekte auf die nächste logische Seite verschoben werden. Sie können Seitenumbrüche vor oder hinter dem aktuellen Objekt in der Berichtausgabe festlegen.


Ein Oberflächenelement, das Werkzeuge, Farben und Muster in einem Editor anzeigt.


Ein bestimmter Teil eines Editors, in dem die Arbeit ausgeführt wird. Die Größe des Ausschnitts kann im allgemeinen geändert werden.


Die Anzahl physikalischer Seiten, die für das Ausdrucken einer logischen Seite erforderlich sind.


1. Ein PL/SQL-Konstrukt, mit dem Informationen an ein Unterprogramm übergeben werden. In dem Unterprogrammaufruf MYPROC (x) ist z.B x ein Parameter. 2. In Forms Developer werden Parameter für die Übergabe von Informationen zwischen Komponenten benutzt, wie z.B. Form Builder und Graphics Builder. 3. Eine Variable, die Sie zur Laufzeit ändern können.


Eine Gruppe mit Parameternamen und zugehörigen Werten zur Übergabe von Informationen zwischen Forms Developer-Komponenten.


1.Ein Objekt, das unmittelbar über einem anderen Objekt in dem entsprechenden Gruppenbaum steht. Ein Gruppenobjekt ist das übergeordnete Objekt von jedem der Objekte, aus denen das Gruppenobjekt besteht. Jedes Objekt ist das übergeordnete Objekt der entsprechenden untergeordneten Objekte.

2. (Oracle Express) Ein Dimensionswert auf der Ebene unmittelbar über einem bestimmten Wert in einer Hierarchie. Der übergeordnete Wert ist die aggregierte Summe der Werte der untergeordneten Objekte. Im folgenden Beispiel wird der Dimensionswert "Frankreich" als übergeordnetes Objekt von "Lyon" und "Paris" in der Dimension GEOGRAPHY dargestellt.


Beim Einfügen wird der Inhalt der Zwischenablage (ausgeschnittene oder kopierte Objekte) bei der aktuellen Cursorposition eingefügt.


Ein grafisches Attribut, das Sie für den Rand oder als Füllmuster für die meisten Objekte benutzen können.


Der Maschinencode oder die Instruktionsliste für einen kompilierten Programmblock.


Akronym für Portable Document Format.  Ein Dateiformat (von Adobe Acrobat) zur Darstellung von Dokumenten auf eine Weise, die unabhängig von der Original-Anwendungssoftware, der Hardware und dem Betriebssystem ist, mit denen die Dokumente erstellt wurden. Eine PDF-Datei kann Dokumente beschreiben, die eine beliebige Kombination von Text, Grafiken und Bildern in einem geräteunabhängigen und auflösungsunabhängigen Format enthalten.


Die Größe einer Seite, die von Ihrem Drucker ausgegeben wird.


Die Elementart, mit der ein Feld in einem Diagramm dargestellt wird, wie z.B. Balken, Linien oder Symbol.


Die Oracle-eigene Erweiterung der SQL-Sprache. Fügt prozedurale und andere Konstrukte zu SQL hinzu, mit denen Anwendungen geschrieben werden können.


Eine Datei, die ein Interpreter-Skriptdatei von Procedure Builder enthält.


Eine PL/SQL-Bibliotheksdatei, die Quellcode und kompilierten Code enthält. Die Datei kann zur Bearbeitung in Procedure Builder geöffnet werden.


Eine Textdatei, die den  PL/SQL-Quellcode eines einzigen Programmblocks enthält.


Eine PL/SQL-Laufzeitbibliothek, die nur ausführbaren Code enthält. Die Datei kann nicht zur Bearbeitung in Procedure Builder geöffnet werden.


Eine Liste, die angezeigt wird, wenn der Benutzer eine bestimmte Aktion ausführt.


Eine Zahl, mit der TCP übertragene Daten zu und von einem bestimmten Programm weiterleitet.


Eine in Project Builder enthaltene Aktion, die dem Benutzer automatisch über einen Menüpunkt und/oder eine Schaltfläche in der Symbolleiste zur Verfügung steht. Vordefinierte Aktionen umfassen Generieren, Zustellen sowie bestimmte Versionskontrolloptionen. Wenn eine vordefinierte Aktion für einen unterstützten Dateityp definiert wird, wird die Aktion für jedes ausgewählte Objekt dieses Typs aufgerufen, wenn der Benutzer die Aktion aus Project Builder aufruft. Siehe auch Aktion, Benutzerdefinierte Aktion.


Siehe Vordefinierten Datentyp


Eine Einstellung, die das Verhalten der Anwendungsschnittstelle beeinflußt.


(Oracle Express) In der Vorschau wird das Skript angezeigt, das generiert wird, wenn Sie die aktuellen Kriterien akzeptieren.  In dem Dialogfeld für jedes Selektor-Werkzeug können Sie die Auswahl anzeigen, indem Sie auf die Schaltfläche Vorschau klicken.


Die Schnittstelle, mit der Sie die Berichtausgabe online anzeigen und einen Bildlauf durch die Berichtausgabe vornehmen können.


Eine Spalte in einer Datenbanktabelle, deren Bestandteile aus eindeutigen Werten bestehen, mit denen eine Zeile in einer Tabelle identifiziert wird.


Siehe Vordefinierter Datentyp.


In einer Druckerdefinitionsdatei eine Escape-Folge, der Sie einen Druckercode zuweisen, der in einem Bericht referenziert werden kann.


Eine Datei, die eine Druckerdefinition im Textformat (z.B. ASCII oder EBCDIC) enthält.


Ein PL/SQL-Unterprogramm, das eine bestimmte Folge von Aktionen ausführt. Das Unterprogramm kann auf dem Client und dem Datenbank-Server gespeichert sein.


Eine PL/SQL-Codestruktur, die von dem PL/SQL-Compiler unabhängig erkannt und verarbeitet werden kann. Anonyme Blöcke, Unterprogrammspezifikationen und -rümpfe (Prozeduren und Funktionen) sowie Paketspezifikationen und -rümpfe sind Typen von Programmblöcken. Programmblöcke können auf dem Client und dem Datenbank-Server gespeichert sein und ausgeführt werden.  Siehe auch: Gespeicherter Programmblock.


Das Projekt ist die Basis-Datenstruktur, die von Project Builder erstellt wird. Projekte sind Sammlungen von Pointern auf alle Dateien, die Sie als Bestandteil der Anwendung betrachten, oder die Sie anderweitig konzeptionell gruppieren möchten. Sie können Editoren, Compiler und andere Werkzeuge definieren, mit denen Sie die in dem Projekt enthaltenen Datenobjekte bearbeiten möchten. Alle Projektinformationen sind in der Projektregistrierung gespeichert. Siehe auch: Projektobjekt, Projektdatei, Exportieren.


In Project Builder sind Projektdateien alle Dateien, die mit einer Anwendung verknüpft sind. Projektdateien können einen beliebigen Typ aufweisen, einschließlich Forms, Berichten, grafischen Anwendungen, 3GL-Modulen, Dokumentation und Testskripts. Siehe auch: Projekt, Projektobjekt.


In Project Builder werden alle Objekte als Projektobjekt bezeichnet, für die Attribute definiert werden können, einschließlich aller Entitäten, die unter dem Knoten Projekte, unter Typen, Aktionen und Makros gespeichert sind. Siehe auch: Projekt, Projektdatei..


Das Fenster mit einer hierarchischen Liste der Projektobjekte für die aktuelle Sitzung. Die Liste wird in Form einer Gliederung angezeigt. Mit ihr kann der Benutzer verschiedene Aufgaben ausführen, wie z.B. Objekte erstellen, bearbeiten, umbenennen und löschen. Auch wenn immer nur ein Schema gleichzeitig sichtbar ist, kann der Benutzer unter zwei verschiedenen Schemata wählen, nach denen die Objekte angeordnet werden sollen.


Der Knoten der obersten Ebene für ein Projekt. Er stellt die Projektdatei dar bzw. zeigt auf die Projektdatei. Siehe auch Projekt, Projektdatei.


In Project Builder die Datei, in der alle mit einem Projekt verknüpften Informationen gespeichert sind: Dateien, die zu dem Projekt gehören, Typen, Aktionen und Makros, die für das Projekt definiert sind, usw.


In der Projektansicht werden Objekte nach Typ und nach Projekt-/Unterprojekt-Beziehung geordnet dargestellt. Die Projekte werden alphabetisch nach Projektdatei und dann alphabetisch nach Kategorie geordnet. Siehe auch  Abhängigkeitsansicht, Projekt, Projektdatei, Ansicht.


Ein Dialogfeld, das den Benutzer bei der Ausführung der Schritte unterstützt, die beim Erstellen eines neuen Projekts oder Unterprojekts erforderlich sind.


Eine Eigenschaft eines Objekts, mit der das Verhalten oder Erscheinungsbild dieses Objekts bestimmt wird.


Ein benanntes Objekt, das eine Liste mit Attributen und deren Einstellungen enthält, mit denen das Erscheinungsbild und die Funktionalität von Objekten aufgrund dieser Klasse global gesteuert wird.


Eine Zeichenfolge, die Sie bei der Anmeldung bei einer Datenbank oder einem Server eingeben können und mit der Sie die Verbindung zu einer entfernten Datenbank bzw. einem entfernten Server herstellen können.


(Oracle Express) Wenn Sie Werte für eine der Dimensionen in einem Maß auswählen, werden die anderen Dimensionen, aus denen das Maß besteht, als qualifizierende Dimensionen bezeichnet.

Angenommen, das Maß Sales ist nach Product, Month und Geography dimensioniert. Wenn Sie die obersten zehn Städte basierend auf Sales auswählen, müssen Sie außerdem angeben, welches Produkt und welcher Monat betrachtet werden woll, wenn Sie die Sales-Werte vergleichen. In diesem Fall sind Product und Month die qualifizierenden Dimensionen.


Eine SQL SELECT-Anweisung, mit der die Daten angegeben werden, die Sie aus einer oder mehreren Tabellen bzw. Ansichten einer Datenbank abrufen möchten.


Eine PL/SQL-Funktion, die bei der Ausführung Daten filtert, die von einer Abfrage abgerufen wurden. Nur die Daten, die den Bedingungen in den Funktionen gerecht werden, werden grafisch dargestellt.


Eine Option, mit der die laufende Sitzung beendet wird und mit der der Benutzer zur Betriebssystemebene zurückkehrt.


Ein Steuerelement (wie z.B. ein Kontrollkästchen), das in Gruppen von zwei oder mehr Schaltflächen auftritt, von denen zu einem bestimmten Zeitpunkt immer nur eine "eingeschaltet" oder "ausgeschaltet" sein kann.


Eine Gruppe aus zwei oder mehr Optionsschaltflächen, von denen immer nur eine "eingeschaltet" oder "ausgeschaltet" sein kann.


(Oracle Express) Ein Werkzeug im Dialogfeld Selektor, mit dem der Benutzer fortlaufende Zeiträume als Dimensionswerte auswählen kann. Diese Zeiträume können auf folgenden Werten basieren:

•	Einer bestimmten Anzahl der letzten Zeiträume

•	Eine Anfangszeitraum und einem letzten Zeitraum

•	Einem Anfangs- und einem Endzeitraum.

Der Benutzer kann z.B. Dimensionswerte für den Bereich ab der Woche wählen, die am 25. November 1996 endet, bis zu der Woche, die am 30. Dezember 1996 endet.


Eine von RSA Data Security, Inc entwickelte Kennung, die Schlüssel mit unterschiedlicher Länge akzeptieren kann und im wesentlichen ein Zufallszahlengenerator ist, wobei die Ausgabe des Generators einem XOR mit dem Datenstrom unterzogen wird, um die verschlüsselten Daten zu generieren. Aus diesem Grund darf derselbe RC4-Schlüssel niemals zur Verschlüsselung von zwei verschiedenen Datenströmen benutzt werden.


Akronym für Relational Database Management System. Eine Datenbank, die die Definition von Datenstrukturen, Speichern- und Abrufenvorgängen und Integritätsregeln ermöglicht. In einer derartigen Datenbank sind die Daten und die Beziehungen zwischen den Daten in Tabellen angelegt.


Eine Datei, die eine einzelne Berichtdefinition im Binärformat enthält. Mit .RDF-Dateien können Berichte sowohl ausgeführt als auch bearbeitet werden.


Eine Datei, die eine einzelne Berichtdefinition im Binärformat enthält. .rep-Dateien werden nur zur Ausführung von Berichten benutzt. Eine .rep-Datei kann nicht bearbeitet werden.


Die Möglichkeit, Daten in der ganzen Datenbank ab einem bestimmten Zeitpunkt abzufragen.


Eine Zeile, die von einer SQL SELECT-Anweisung abgerufen wird.


Ein internes Datenstrukturobjekt mit einem Spalten-/Zeilengerüst, das zu dem Formmodul gehört, in dem es definiert wird.


Ein Spaltentyp, der auf Daten in anderen Spaltenobjekten oder Objekttabellen (Oracle8) zeigt.


Eine Linie, die bei einem bestimmten Wert in einem Diagramm angezeigt wird.


(Oracle Express) Beim Abgleichen werden die neuesten Daten aus einer Express-Datenbank abgerufen, nachdem die Abfrageergebnisse in Ihrem Bericht angezeigt wurden. Wenn Sie eine gespeicherte Express-Abfrage öffnen, werden die Ergebnisse automatisch abgeglichen.


Beim Registrieren wird die Definition eines Typs oder eines neuen Projekts zu der globalen oder lokalen Registrierung hinzugefügt. Nach der Registrierung können für einen neuen Typ Aktionen definiert werden, während bei einem neuen Projekt die Typen der referenzierten Dateien identifiziert werden können, so daß für diese bestimmte Aktionen aufgerufen werden können. Siehe auch Registrierung.


Eine globale und/oder benutzerspezifische Konfigurationsdatei, mit der Projektdefinitionen und Umgebungsinformationen gespeichert werden. Siehe auch Globale Registrierung, Benutzerregistrierung.


Ein Symbol in Suchkriterien, mit dem ein Vergleich zwischen zwei Werten angegeben wird, wie z.B. das Gleichheitszeichen in "WHERE DEPTNO = 10." Zeilen, bei denen der Vergleich "wahr" ergibt, werden in dem Ergebnis zurückgegeben (abgerufen), während Zeilen, bei denen der Vergleich "falsch" ergibt, vom Ergebnis ausgeschlossen werden.


Eine Datenbank auf einem Computer, bei dem es sich nicht um die lokale Datenbank handelt. Im allgemeinen ein Computer im selben Netzwerk, jedoch auf einem anderen Knoten (d.h. eine Datenbank, die Sie über einen Datenbank-Link benutzen).


Ein Layoutobjekt, mit dem Datenzeilen angezeigt werden, die für eine Gruppe abgerufen werden.


Ein Modus, bei dem jedes eingegebene Zeichen das aktuelle Zeichen bei der Cursorposition ersetzt. Das Gegenteil von Einfügen-Modus.


Die Objekte, mit denen das Datenmodell und Layout eines Berichts definiert wird. Objekte auf Berichtebene werden einem einzelnen Bericht zugeordnet und können nicht von anderen Berichten oder anderen Oracle-Produkten gemeinsam benutzt werden. Objekte umfassen Berichte, Abfragen, externe Abfragen, externe PL/SQL-Bibliotheken, Gruppen, Spalten, Parameter, Links, Rahmen, Wiederholungsrahmen, Felder, Boilerplate und Anker.


Nur bei Windows NT und Windows 95 verfügbar. Wartet, bis Befehlszeilen einen Bericht ausführen, setzt diesen Bericht in die Warteschlange zur Ausführung im Hintergrund auf dem lokalen Server. Typischerweise werden Befehlszeilen von Form Builder oder Graphics Builder über RUN_PRODUCT oder von einem anderen Bericht über SRW.RUN_REPORT empfangen. Sie können auch RWISV60 benutzen, um einen Bericht an die Reports Background Engine zu übergeben.


Behält Zeitstempel- und Statusinformationen über Berichte bei, die von Reports Server verwaltet werden.


Bei Windows NT, Windows 95 und UNIX verfügbar. Ermöglicht die Ausführung von Berichten auf einem entfernten Server. Stellt Jobanforderungen in die Warteschlange und ermöglicht eine zeitliche Planung der Ausführung der Berichte durch den Benutzer. RWCLI60 wird verwendet, um einen Bericht an den Reports Server zu senden.


Stellt eine Schnittstelle zwischen dem Web-Server und Reports Runtime dar, so daß Berichte dynamisch aus dem Web-Browser ausgeführt werden können.


Stellt eine Schnittstelle zwischen einem Web Server und dem Reports Server dar.


Eine Datei, die eine Berichtdefinition im Textformat (z.B. ASCII oder EBCDIC) enthält. .REX-Dateien werden für das Portieren von Berichten von einer Plattform zu einer anderen benutzt. Beachten Sie, daß .REX-Dateien nicht mehr erforderlich sind. Sie sind aus Gründen der Abwärtskompatibilität verfügbar.


Bezieht sich auf die Intensität der Rot-, Grün- und Blaukomponenten einer Farbe.


Das Gruppenobjekt, zu dem alle anderen Objekte in einer Anwendung gehören.


Der Knoten auf oberster Ebene für ein Projekt, der die Benutzerumgebung darstellt. Kann der Benutzerregistrierung oder Globalen Registrierung entsprechen, je nachdem, mit welcher Registrierung die Standardwerte festgelegt wurden.


Eine Gruppe mit Feldwerten in einer Tabelle, z.B. die Felder, die einen Mitarbeiter in der Beispieltabelle EMP darstellen.


Ein Objekt in einer Oracle8-Objekttabelle. Jede Zeile in der Tabelle ist ein Objekt. In Forms Developer wird eine Objekttabelle in einzelne Spalte aufgelöst, so daß das Zeilenobjekt nicht mehr als einzelne Entität vorhanden ist (nur als die entsprechenden separaten Attribute).


Ausführung einer Laufzeitversion einer Anwendung oder eines Programmblocks.


Akronym für Rich Text Format. Ein nicht-plattformspezifisches Dateiformat, das auf Steuerwörtern basiert, mit denen unformatierter Text und Bilder in verschiedenen Anwendungen und Betriebssystemen dargestellt werden. RTF benutzt den ANS-I, PC-8-, Macintosh- oder IBM PC-Zeichensatz, um die Darstellung und Formatierung eines Dokuments sowohl auf dem Bildschirm als auch auf dem Ausdruck zu steuern.


Siehe rep-Datei


Die Schnittstelle, mit der die Benutzer eine Laufzeitanwendung anzeigen und mit dieser arbeiten.


Ein Bildschirm oder Fenster, das optional zur Laufzeit angezeigt wird und in dem der Benutzer Druckoptionen und Parameter vor Ausführung des Berichts ändern kann.


(Oracle Express) Eine Gruppe von Dimensionswerten, die entweder als Werteliste oder als Skript gespeichert werden. Sie können von Ihnen generierte Auswahlen speichern, oder der Datenbankadministrator kann gespeicherte Auswahlen erstellen und Ihnen diese zur Verfügung stellen.

Gespeicherte Auswahlen sind eine zeitsparende Funktion: immer wenn Sie eine Auswahl erneut benutzen müssen, rufen Sie einfach eine gespeicherte Auswahl auf, ohne diese neu erstellen zu müssen.


(Oracle Express) Ein Werkzeug im Dialogfeld Selektor, mit dem Sie eine Auswahl von gespeicherten Dimensionswerten abrufen können.


Eine Sammlung zusammengehöriger Datenbankobjekte, die im allgemeinen nach einer Datenbank-Benutzer-ID gruppiert sind. Schemaobjekte umfassen Tabellen, Ansichten, Sequenzen, gespeicherte Programmblöcke, Synonyme, Indizes, Cluster und Datenbank-Links.


Die Ebene, auf der ein Objekt angewendet wird, bzw. der Bereich, in dem ein Objekt angewendet wird. Bei Project Builder: 1. Beschreibt den Dateibereich, der von den Befehlen Kompilieren und Alles kompilieren betroffen ist, die für kompilierbare Projektobjekte aufgerufen werden. 2. Beschreibt den Dateibereich, der von vererbbaren Definitionen betroffen ist.


 Siehe SQL-Skript, Interpreter-Skript


In Report Builder eines von mehreren Layouts in demselben Bericht, wobei ein jedes eine andere Zielperson, ein anderes Ausgabeformat, ein anderes Seitenlayout, eine andere Seitengröße oder Darstellung hat. Ein einziger Bericht kann z.B. eine Zusammenfassung für die Geschäftsleitung in einem Abschnitt und eine detaillierte Aufgliederung für einzelne Manager in einem anderen Abschnitt enthalten.


Eine SQL-Anweisung, mit der angegeben wird, welche Zeilen und Spalten aus einer oder mehreren Tabellen oder Ansichten abgerufen werden sollen.


(Oracle Express) Die Gruppe von Dimensionswerten, die momentan für eine Dimension ausgewählt sind, bzw. das Skript, das Bedingungen oder Kriterien zur Angabe dieser Werte enthält.


(Oracle Express) Wie in verschiedenen Dialogfeldern im Selektor dargestellt, entspricht das Auswahlskript einer Beschreibung der Auswahlen, die der Benutzer bei der Wahl von Dimensionswerten getroffen hat. Bei diesem Skript handelt es sich um eine Übersetzung des Skripts in der Express-Sprache in ein Skript in der normalen Sprache.


(Oracle Express) Eine Gruppe von Werkzeugen, mit denen Sie Dimensionswerte auswählen, die z.B. in einem Bericht, einer Tabelle, einer Grafik oder einem Listenfeld aufgenommen werden sollen. Mit dem Selektor können Sie z.B. die wichtigsten 10 Städte basierend auf Umsätzen oder die Städte auswählen, bei denen die Umsätze die Quote von 15% überschritten haben. Mit dem Selektor können Sie außerdem Dimensionswerte sortieren und gespeicherte Auswahlen erstellen und abrufen.


(Oracle Express) Ein Dialogfeld oder eine Gruppe von Dialogfeldern, mit denen Dimensionswerte auf eine bestimmte Weise ausgewählt oder sortiert werden können. Jedes Selektor-Werkzeug ist Bestandteil des Selektors. Mit den Selektor-Werkzeugen können Sie Dimensionswerte basierend auf deren Ebene in der Hierarchie, deren Attributen, den Zeichen in dem Wertnamen usw. auswählen. Mit den Selektor-Werkzeugen können Sie außerdem die Dimensionswerte sortieren.


Der Zeitraum zwischen dem Aufrufen und Beenden des ausführbaren Programms.


Eines von zwei oder mehr Objekten, die dasselbe übergeordnete Objekt in dem entsprechenden Gruppenbaum haben. Alle Objekte, die zu einem Gruppenobjekt gehören, sind gleichrangig.


Die Kombination einer IP-Adresse und einer Port-Nummer.


(Oracle Express) Ein Werkzeug im Dialogfeld Selektor, mit dem Sie die Reihenfolge der Dimensionswerte in einer angezeigten Auswahl neu ordnen können. Sie können eine Auswahl in aufsteigender oder absteigender Reihenfolge wie folgt sortieren:

•	Nach Alphabet

•	Nach Reihenfolge in der Datenbank

•	Nach Datenwert

•	Nach Reihenfolge oder Ebene in der Hierarchie

•	Nach Zeitraum

Sie können eine Auswahl auch manuell sortieren, indem Sie die Dimensionswerte mit Drag-and-Drop verschieben.


In PL/SQL: Anweisungen in einem Unterprogramm oder Paket. Sie benötigen den Quellcode für einen Programmblock, bevor Sie diesen zu einer ausführbaren Form kompilieren können. In Project Builder: Die Eingabetypen, die für das Erstellen der Zieltypen erforderlich sind.


Definiert nur Namen, Parameter und Rückgabetyp (gilt nur bei Funktionen) des Unterprogramms.


Ein kleines Rechteck am unteren Ende der vertikalen Bildlaufleiste und links neben der horizontalen Bildlaufleiste in einem Editor. Wenn Sie die Maustaste ziehen und loslassen, wird ein neuer Ausschnitt erstellt und die Bildlaufleiste in separate Bildlaufleisten für jeden Ausschnitt geteilt.


Eine Standard-Schnittstelle für das Speichern und Abrufen von Informationen in einer relationalen Datenbank. SQL ist ein Akronym für Structured Query Language.


Eine Datei, die eine im Textformat (ASCII oder EBCDIC) gespeicherte Abfrage enthält.


Eine Datei, die SQL-Anweisungen enthält, die Sie ausführen können, um die Datenbankverwaltung schnell und einfach zu gestalten. Mit Oracle-Produkten werden verschiedene SQL-Skripts geliefert.


Eine SQL-Instruktion für Oracle. Eine SELECT-Anweisung ist eine Art von SQL-Anweisung.


Siehe Aufrufstapel


Ein PL/SQL-Konstrukt, das für konditionale, iterative und sequentielle Steuerungen und für die Fehlerbehandlung benutzt wird. Jede PL/SQL-Anweisung muß mit einem Semikolon (;) abgeschlossen werden.


(Oracle Express) Eine gespeicherte Auswahl, die bei jeder Auswertung dieselben Dimensionswerte enthält. In statisch gespeicherten Auswahlen werden die auszuwählenden Dimensionswerte aufgeführt und nicht die Auswahlkriterien. Ein statisches gespeichertes Auswahlskript könnte z.B. "Februar 1996, März 1996 und April 1996 auswählen" enthalten, während das Skript für eine dynamisch gespeicherte Auswahl "Letzte drei Monate auswählen" enthalten könnte.


Eine Prozedur, eine Funktion oder ein Paket, das in einem Oracle-Datenbankserver gespeichert ist und in diesem ausgeführt wird.


Eine Prozedur oder Funktion, die in einem Oracle-Datenbankserver gespeichert ist und in diesem ausgeführt wird.


HTML-Erweiterungen, die leistungsfähige Formatierungsmöglichkeiten in HTML-Dokumenten bereitstellen. Um ein  HTML-Dokument anzuzeigen, das Dokumentvorlagen verwendet, zeigen Sie dieses in einem Browser an, der Dokumentvorlagen unterstützt.


Eine PL/SQL-Prozedur oder -Funktion.


In Project Builder ein Projekt, das in einer anderen Projektdatei enthalten und nicht in einer eigenen Datei gespeichert ist. Siehe auch Projekt.


In Project Builder ein Knoten, der auf ein Unterprojekt verweist. Siehe auch Projekt, Projektknoten, Unterprojektknoten


Eine Spalte vom Typ Summe, in der Zwischensummen, Gesamtsummen, laufende Summen und andere Summen der Daten in einem Bericht berechnet werden, wobei eine der vordefinierten Summenfunktionen von Report Builder benutzt wird.


Das Dateiformat, das vom Microsoft Excel-Programm verwendet wird.


Das Ordnungssystem, nach dem Befehle, Bezeichner und Parameter zu gültigen Befehlsfolgen kombiniert werden.


Eine der Variablen, die in Reports Developer enthalten sind (z.B. &Logical Page, DESTYPE).


Eine benannte Sammlung zusammengehöriger Informationen, die in einem zweidimensionalen Raster in einer relationalen Datenbank oder einem Server gespeichert sind, wobei das Raster aus Zeilen und Spalten besteht.


Ein Collection-Typ, der eine Dateneinheit definiert, die aus einer ungeordneten Gruppe von Elementen besteht, die alle denselben Datentyp aufweisen. Bei der entsprechenden Dateneinheit handelt es sich um eine verschachtelte Tabelle mit einer einzigen Spalte, deren Spaltentyp ein vordefinierter Typ oder ein Objekttyp ist.  (Oracle8)


Ein Standardlayout, bei dem Beschriftungen am oberen Rand der Seite und Datenzeilen unter den Beschriftungen angezeigt werden.


In Project Builder ein Objekt in der Mitte des Abhängigkeitsbaums. So ist z.B. eine ausführbare Routine ein (Kompilier-) Ziel für eine Bibliothek, während eine Bibliothek ein Ziel für eine Gruppe von Objekten und ein Objekt ein Ziel für eine Quelldatei ist.


Ein Knoten, mit dem das Ziel angegeben wird. Siehe auch Ziel


Akronym für Transmission Control Protocol. Das zugrundeliegende Kommunikationsprotokoll für den Austausch von HTTP-Anforderungen zwischen Clients und Web-Servern.


Ein Untermenü, das der Benutzer mit einer Maus oder einem anderen Zeigegerät von der Quelle entfernen und zu einem anderen Teil des Bildschirms ziehen kann.


In Form Builder ein Objekt, mit dem ein Zeichenfolgenwert angezeigt wird.


Der horizontale Bereich am oberen Rand eines Fensters, in dem der Name der Anwendung oder des Oberflächenelements in diesem Fenster angezeigt wird.


Siehe Titel


Mit einem Schalter wird eine Einstellung ein- oder ausgeschaltet. So können Sie den Objektnavigator z.B. verbergen oder anzeigen.


Eine Schaltfläche in Form eines Symbols, mit der Objekte in einer Anwendung erstellt und bearbeitet werden.


Eine Sammlung von Schaltflächen in Symbolform, die Produktbefehle ausführen. Die Symbolleiste ist im allgemeinen horizontal am oberen Rand oder vertikal am seitlichen Rand eines Fensters ausgerichtet.


Eine Sammlung von Werkzeugen.


(Oracle Express) Ein Werkzeug im Dialogfeld Selektor, mit dem der Benutzer Dimensionswerte basierend auf den obersten x, untersten y oder obersten x und untersten y Datenwerten auswählen kann. Der Benutzer kann z.B. eine Dimensionsauswahl erzeugen, in der Produkte enthalten sind, deren Umsatzvolumen zu den obersten 10 Prozent der Produkte bei den gesamten Verkäufen in dem vierwöchigen Zeitraum gehört, der am 30. Dezember 1995 endet.


Ein optionaler Berichtbereich, der abschließendes Material für den Bericht enthalten kann, einschließlich Text, Grafiken, Daten und Berechnungen. Der Berichtanhang wird als letztes nach Titel und Hauptteil angezeigt.


Eine Folge von SQL-Anweisungen, die als eine einzige Einheit behandelt werden.


Eine PL/SQL-Prozedur, die bei einem bestimmten Ereignis ausgeführt oder "ausgelöst" wird.


Eine Beschreibung eines Dateityps, wie z.B. eine Form, ein Dokument usw., die Informationen wie Typname und Beschreibung enthält. Jede Beschreibung gilt für einen einzigen Dateityp. Außerdem gibt es vier Metatypen "updtext", der für alle Textdateien gilt, "updproj", der für alle Projektdateien gilt, "updlink", der für alle Projekt-Links gilt, und "all", der für jeden Dateityp gilt. Sie sind die Grundlage für die Definition von Aktionen und Makros.


Beim Aktualisieren werden die Werte von Tabellendaten geändert, insbesondere durch Änderung der Datenwerte mit dem SQL-Befehl UPDATE, jedoch auch durch Löschen von Werten mit dem SQL-Befehl DELETE oder durch Einfügen von Werten mit dem SQL-Befehl INSERT.


Akronym für Uniform Resource Locator. Die "Adresse", mit der ein WWW-Server und eine Home Page angegeben werden. Zum Beispiel:
http://www.acme.com/
Dieses Beispiel gibt an, daß die Host-Adresse www.acme.com ist. Ein URL ist in den meisten Fällen ein Dateiname (wahrscheinlich mit einem langen Pfad und im allgemeinen mit einer Erweiterung HTML oder .HTM (bei PC-DOS Dateinamen)).


Eine Möglichkeit zur Übergabe der Kontrolle (und möglicherweise auch von Argumenten) von Forms Developer zu einem anderen Oracle-Produkt oder 3GL und danach zur Rückgabe der Kontrolle (und möglicherweise der Argumente) an Forms Developer.


Eine Aktion, die von einem Benutzer von Project Builder definiert wird. Derartige Aktionen können für einen einzelnen Dateityp oder für alle Dateitypen gelten. Siehe auch  Aktion, Vordefinierte Aktion.


Siehe Objekttyp.


Ein Makro, der von einem Benutzer von Project Builder definiert wird. Mit derartigen Makros können sowohl vordefinierte Aktionen als auch benutzerdefinierte Aktionen geändert werden. Siehe auch Makro, Vordefinierter Makro, Aktion, Vordefinierte Aktion


Eine Projektdatei, in der Konfigurationsinformationen pro Benutzer gespeichert werden. Auf diese Weise können Benutzer ihre individuellen Entwicklungsumgebungen gestalten. Die Benutzerregistrierung übernimmt die Typinformationen von der Globalen Registrierung. In der Benutzerregistrierung können neue Typen definiert und Aspekte der Typdefinitionen außer Kraft gesetzt werden, die in der Globalen Registrierung gespeichert sind. Außerdem enthält die Benutzerregistrierung Umgebungs- und Voreinstellungsinformationen, wie z.B. die DB-Adresse eines bestimmten Benutzers, Benutzeroberflächeneinstellungen, wie z.B. "Symbolleiste anzeigen" und bestimmte allgemeine Projektinformationen wie "Autor". Siehe auch Registrierung, Globale Registrierung.


Siehe Werteachse axis


Eine PL/SQL-Codestruktur, die einen Wert zurückgibt. Wertkonstrukte umfassen Funktionen und Ausdrücke.


Ein benanntes Objekt, dem ein Wert zugewiesen werden kann und dessen zugewiesener Wert sich im Laufe der Zeit ändern kann.


Ein Collection-Typ, der eine Dateneinheit definiert, die aus einer geordneten Gruppe von Elementen besteht, die alle denselben Datentyp aufweisen. Bei der entsprechenden Dateneinheit handelt es sich um ein variierendes Array oder VARRAY. Die Anzahl von Elementen in einem VARRAY (Größe) ist variabel. Bei der Deklaration eines variierenden Array-Typs müssen Sie jedoch eine maximale Größe angeben.


Visual Basic-Dateinamenerweiterung. Wird als Dateinamenerweiterung für bestimmte dynamische Link-Bibliotheken verwendet, die mit Dateien verteilt werden, die vordefinierte VBX-Steuerelemente enthalten.


Ein mit der Microsoft Visual Basic-Sprache generiertes Widget, mit dem die Benutzeroberfläche erweitert, Benutzereingaben empfangen und Ausgaben angezeigt werden (z.B. Schieberegler, Raster und Bedienungsknöpfe).


Eine virtuelle Tabelle, deren Zeilen nicht wirklich in der Datenbank vorhanden sind, die jedoch auf einer Tabelle aufgebaut ist, die physikalisch in der Datenbank gespeichert ist.


Ein symbolischer Ordnername (im allgemeinen eine Abkürzung oder ein Synonym), mit dem das virtuelle Dateisystem Dateien zuordnet, die im Dateisystem des Hostrechners gespeichert sind.


Eine Zuordnung, die in URL verwendete Pfadnamen mit dem Dateisystem verknüpft, das vom Betriebssystem des Hostrechners verwaltet wird.


Schriftart-, Farb- und Musterattribute, die Sie für Objekte festlegen, die auf Ihrer Anwendungsoberfläche angezeigt werden.


Siehe WWW


Ein Programm, das Endbenutzer verwenden, um HTML-Dokumente und Programme zu lesen, die auf einem Computer (der von einem Web-Server bedient wird) gespeichert sind.


Ein Programm, das auf einem Web-Server über den Web Request Broker ausgeführt wird.


Ein Server-Prozeß (HTTP-Daemon), der auf einem Web-Site ausgeführt wird und Web-Seiten als Antwort auf HTTP-Anforderungen von entfernten Web-Browsern sendet.


Ein Zeichen, das für ein 'beliebiges Zeichen' oder eine 'fortlaufende Folge von Zeichen' innerhalb eines Wortes oder Begriffs steht.


1. Ein rechteckiger Bereich auf dem Desktop, der eine Anwendung enthält. Jedes Fenster hat einen Bereich, in dem Sie mit der Anwendung zusammenarbeiten können. Fenster können geöffnet, skaliert, verschoben, als Symbol oder als Vollbild angezeigt werden. 2. In Form Builder ein Objekttyp, den Sie mit einer Leinwandansicht verknüpfen können.


Ein Dateiformat, das von einigen Spreadsheet-Programmen benutzt wird, wie z.B. SQL*Calc oder von Lotus 1-2-3 Programmen.


Akronym für Oracle Web Request Broker. Stellt eine leistungsfähige verteilte Laufzeitumgebung zur Entwickling und Weiterleitung von Anwendungen für das Web dar. Mit der WRB-Laufzeitplattform können Anwendungsentwickler Anwendungen schreiben, die unabhängig von Web-Servern sind und mit einer Reihe von Web-Servern benutzt werden können.


Akronym für World Wide Web. Das Netzwerk mit Servern im Internet, von denen ein jeder eine oder mehrere Home Pages hat, die Informationen und Links zu anderen Dokumenten auf diesem und (im allgemeinen) anderen Servern bereitstellen.


Vergrößern eines Objekts, damit mehr Platz für das Bearbeiten des Feldinhalts vorhanden ist.


Die sekundäre Symbolleiste, die (standardmäßig) auf der linken Seite des Projektnavigators angedockt ist. Die sekundäre Symbolleiste verfügt über Funktionen zur Vereinfachung von Anordnung und Starten von Anwendungen.


 Die neueste Version von OLE-Steuerelementen (OCX).


XML-Ausgabe, die den allgemeinen XML-Prinzipien entspricht, wie richtiges Markieren, Verschachteln sowie die Aufnahme einer XML-Deklaration, z.B.. <?xml version="1.0" encoding="UTF-8"?>.


Mit einem Platzhalter-Benutzernamen können sich Benutzer bei der Datenbank mit ihrem persönlichen Benutzernamen und nicht mit dem Oracle-Datenbankbenutzernamen anmelden (z.B. $user_name@database), wenn Berichte aus einem Web-Browser ausgeführt werden.


Extensible Markup Language -- eine Metasprache, die SGML zur Definition und Strukturierung von Daten verwendet. Report Builder unterstützt die XML-Ausgabe im Hinblick auf Web-Veröffentlichungen sowie den elektronischen Datenaustausch mit Anwendungen von Fremdherstellern. Mit XML können Sie auch Berichtdefinitionen generieren, die zur Laufzeit mit anderen Berichtdefinitionen zusammengeführt oder separat ausgeführt werden können.


XML-Ausgabe, bei der Stuktur und Elementinhalt einer Dokumenttypdefinition (DTD) entspricht. Eine gültige XML weist auch das richtige Format auf.


Umgebungsvariablen

  Verwandte Themen

CA_GPREFS

CA_UPREFS

CUE_PREFS

DEV2000_PROJECT

DEV2000_SOURCECONTROL

DOC60

FORMS60_DEFAULTFONT

FORMS60_EDITOR

FORMSnn_ERROR_DATE/DATETIME_FORMAT

FORMS60_JAVADIR

FORMS60_MAPPING

FORMS60_OUTPUT

FORMSnn_OUTPUT_DATE/DATETIME_FORMAT

FORMS60_PATH

FORMSnn_PLSQLV1_NAME_RESOLUTION

FORMS60_REPFORMAT

FORMS60_TIMEOUT

FORMSnn_USER_DATE/DATETIME_FORMAT

FORMS60_USEREXITS

GRAPHICS60_PATH

INTERRUPT (DOS SQL*Net users only)

LOCAL

NLS_LANG

OleCreateObjPoolInMemory

OleDoNotUpdateLinks

OleUpdateLinksPrompt

ORACLE_HOME

ORACLE_PATH

ORAINFONAV_DOCPATH

REPORTS60_CGIDIAGBODYTAGS

REPORTS60_CGIDIAGHEADTAGS

REPORTS60_CGIHELP

REPORTS60_CGIMAP

REPORTS60_CGINODIAG

REPORTS60_CGIPATHONLYURL

REPORTS60_COOKIE_EXPIRE

REPORTS60_DB_AUTH

REPORTS60_ENCRYPTION_KEY

REPORTS60_OWSDIAGBODYTAGS

REPORTS60_OWSDIAGHEADTAGS

REPORTS60_OWSHELP

REPORTS60_OWSMAP

REPORTS60_OWSNODIAG

REPORTS60_OWSPATHONLYURL

REPORTS60_PATH

REPORTS60_REPORTS_SERVER

REPORTS60_SYS_AUTH

REPORTS60_TERMINAL

REPORTS60_TMP

REPORTS60_USEREXIT

REMOTE

UI_ICON

USERNAME

WIN_REMOTE_SESSIONS

XMITTR(nur DOS-Benutzer)


Registrierung (Windows 95 und Windows NT)

  Umgebungsvariablen

Das Oracle-Installationsprogramm erstellt einen neuen Abschnitt ORACLE in Ihrer Registrierung. Die Oracle-Registrierung enthält Konfigurationsparameter, mit denen Angaben gesteuert werden, wie z.B. der Name des Oracle-Standardverzeichnisses, der Speicherort der Voreinstellungsdatei sowie der Speicherort der Hilfedateien.

Registrierung anzeigen und ändern

Sie können die Microsoft Windows-Registrierung mit dem Registrierungseditor anzeigen und optional bearbeiten. Dieser Editor ist in dem Verzeichnis gespeichert, in dem die Windows-Software installiert ist. Um den Editor zu starten, wählen Sie Start [image] Ausführen, geben REGEDIT ein, und klicken auf OK.

Im Registrierungseditor blenden Sie den Knoten HKEY_LOCAL_MACHINE und danach den Knoten SOFTWARE ein. Klicken Sie auf den Schlüssel ORACLE, um die Oracle-Konfigurationsparameter anzuzeigen.

Sie können jeden Parameterwert ändern, indem Sie auf den Parameternamen doppelklicken, um das Dialogfeld Zeichenfolge bearbeiten anzuzeigen. Ändern Sie den Wert im Textfeld Wert, und klicken Sie dann auf OK, um den neuen Wert zu akzeptieren.


Konfigurationsparameter

  Umgebungsvariablen

Das Oracle-Installationsprogramm stellt viele Parameter automatisch ein. Einige dieser Parameter werden von Oracle-Produkten benötigt, während Sie mit anderen Parametern das Verhalten der Produkte individuell ändern können.

Obligatorische Parameter

Die in diesem Abschnitt aufgeführten Parameter werden automatisch von dem Oracle-Installationsprogramm eingestellt oder entfernt. Sie werden von verschiedenen Oracle-Produkten benötigt, damit diese einwandfrei funktionieren.

Achtung: Ändern Sie die Einstellungen der Parameter nicht, die in diesem Abschnitt aufgeführt werden. Sonst könnten ein oder mehrere Oracle-Produkte nicht mehr einwandfrei funktionieren.

Mit nn bei den unten aufgeführten Parametern wird eine Release-Nummer für ein Produkt oder eine Komponente angegeben. Diese Nummer kann sich ändern, wenn Sie auf eine neue Version eines Oracle-Produkts umstellen.

Parameter	Standardwert
BROWSERnn	ORACLE_HOME\BROWSE25
DEnn	ORACLE_HOME\TOOLS\COMMON60
FORMSnn	ORACLE_HOME\FORMS60
GRAPHICSnn	ORACLE_HOME\GRAPH60
MMnn	ORACLE_HOME\TOOLS\COMMON60
OCLnn	ORACLE_HOME\GRAPH60
PROnn	ORACLE_HOME\PRO18
RDBMSnn	ORACLE_HOME\RDBMS73
RWnn	ORACLE_HOME\REPORT60
TKnn	ORACLE_HOME\TOOLS\COMMON60
VGSnn	ORACLE_HOME\TOOLS\COMMON60
Benutzerdefinierbare Parameter

Die in diesem Abschnitt aufgeführten Parameter steuern verschiedene Aspekte Ihrer Oracle-Produkte. Sie können die Einstellungen dieser Parameter ändern, um das Verhalten des Produkts individuell zu gestalten.

In den folgenden Abschnitten wird die Standardeinstellung (sofern vorhanden) jedes Parameters aufgeführt, die automatisch vom Oracle-Installationsprogramm festgelegt wird. Außerdem werden die Parameter, die nicht automatisch eingestellt werden, ebenfalls aufgeführt. Schließlich finden Sie Beschreibungen der gültigen Werte und Beispiele für die Einstellungen.


CA_GPREFS

Standardwert:  ORACLE_HOME

Gültige Werte:  Beliebiges Verzeichnis in beliebigem Laufwerk

Beispiel:

CA_GPREFS=C:\orawin95

Dieser Parameter gibt den Speicherort der globalen Voreinstellungsdatei CAGPREFS.ORA an. Globale Voreinstellungen werden von den Benutzern in einem Netzwerk gemeinsam benutzt. Produkte suchen nicht nur in dem mit dem Parameter CA_GPREFS angegebenen Verzeichnis, sondern auch im aktuellen Verzeichnis nach der Datei CAGPREFS.ORA.

Die Datei CAGPREFS.ORA wird automatisch vom Oracle-Installationsprogramm erstellt. Um die globalen Voreinstellungen zu ändern, benutzen Sie einen Texteditor, wie z.B. Notepad, um diese Datei manuell zu ändern. Globale Voreinstellungen in CAGPREFS.ORA können durch die lokale Voreinstellungsdatei, CAUPREFS.ORA, außer Kraft gesetzt werden, die mit dem Parameter CA_UPREFS definiert wird.


CA_UPREFS

Standardwert:  ORACLE_HOME

Gültige Werte:  Beliebiges Verzeichnis in beliebigem Laufwerk

Beispiel:

CA_UPREFS=C:\orawin95

Dieser Parameter gibt den Speicherort der Benutzervoreinstellungsdatei, CAUPREFS.ORA, an. Die Datei CAUPREFS.ORA enthält die Voreinstellungen, die Sie mit dem Menübefehl Werkzeuge [image] Voreinstellungen in den Produkten festlegen. Das Produkt sucht nicht nur in dem Verzeichnis, das mit dem Parameter CA_UPREFS angegeben wird, sondern auch im aktuellen Verzeichnis nach der Datei CAUPREFS.ORA.

Verschiedene Oracle-Produkte schreiben ihre Voreinstellungsinformationen in die Datei CAUPREFS.ORA. Um die Benutzervoreinstellungen manuell zu ändern, benutzen Sie einen Texteditor wie Notepad, um diese Datei zu bearbeiten. In CAUPREFS.ORA festgelegte Benutzervoreinstellungen setzen die globalen Voreinstellungen in der Datei CAGPREFS.ORA außer Kraft, die mit dem Parameter CA_GPREFS definiert wird.


CUE_PREFS

Standardwert:  ORACLE_HOME

Gültige Werte:  Beliebiges Verzeichnis in beliebigem Laufwerk

Beispiel:

CUE_PREFS=C:\orawin95

Dieser Parameter gibt den Speicherort der Voreinstellungsdatei für das Lernprogramm, CUEPREF.RES, an. Die Datei CUEPREF.RES enthält die Lernprogrammvoreinstellungen, die Sie im Dialogfeld Lernprogrammoptionen festlegen können.

Ihre Voreinstellungen werden jedesmal, wenn Sie eine Anwendung beenden, in der Datei CUEPREF.RES gespeichert. Sie können diese Datei nicht manuell ändern.


DEV2000_SOURCECONTROL

Standardwert:  Keiner

Gültige Werte:  Schlüsselwörter, mit denen angegeben wird, welches Versionskontrollsystem mit Forms Developer oder Reports Developer benutzt werden soll.

Beispiel:

DEV2000_SOURCECONTROL=PVCS

Mit diesem Parameter wird angegeben, welches Versionskontrollsystem mit Forms Developer oder Reports Developer benutzt werden soll. Momentan können Sie entweder kein Versionskontrollsystem angeben oder diesen Parameter auf den Wert 'PVCS' einstellen. Sobald zusätzliche Versionskontrollsysteme unterstützt werden, können Sie auch Schlüsselwörter für diese zusätzlichen Versionskontrollsysteme angeben.


DEV2000_PROJECT

Standardwert:  Keiner

Gültige Werte:  Schlüsselwörter, die die Projektdatei des Versionskontrollsystems angeben, das mit Forms Developer oder Reports Developer benutzt werden soll.

Beispiel:

DEV2000_PROJECT=c:\pvcs\project1\project1.cfg

Dieser Parameter gibt den Namen der Projektdatei für das Versionskontrollsystem an, das Sie mit dem Parameter DEV2000_SOURCECONTROL ausgewählt haben.


DOC60

Standardwert:  Oracle_Home\tools\doc60

Gültige Werte:  Beliebiges Verzeichnis in beliebigem Laufwerk

Beispiel:

DOC60=c:\orawin95\tools\doc60

Dieser Parameter gibt den Speicherort der Online-Dokumentationsdateien an, einschließlich Online-Hilfe, Lernprogramm und Kurzanleitung.


FORMS60_DEFAULTFONT

Standardwert:  Keiner

Gültige Werte:  Eine Textfolge, die eine beliebige gültige Schriftart angibt.

Beispiel:

FORMS60_DEFAULTFONT="MS Sans Serif.8"

Dieser Parameter gibt die Standardschriftart für Boilerplates im Layouteditor von Form Builder an.


FORMS60_EDITOR

Standardwert:  Keiner

Gültige Werte:  Name und Pfad eines Systemeditors

Beispiel:

FORMS60_EDITOR=C:\windows\notepad.exe

Dieser Parameter definiert den Editor, der von mehrzeiligen Objekten von Form Builder im Designer oder den Runform-Komponenten aufgerufen werden kann. Erst nachdem dieser Parameter definiert wurde, kann ein benutzerdefinierter Editor gestartet werden.

Hinweis:  Wenn Sie den Editor verlassen, muß die Datei wieder als "Nur Text"-Datei gespeichert werden. Eigene Formate von Textverarbeitungsprogrammen werden nicht unterstützt.


FORMSnn_ERROR_DATE/DATETIME_FORMAT

Zweck: Diese beiden Umgebungsvariablen legen die Formatmasken fest, die Forms beim Generieren von Laufzeitfehlermeldungen verwendet, die ausgegeben werden, wenn ein Endbenutzer einen ungültigen Wert in ein Datums- oder Datumzeit-Element eingibt.

Standardwert: Hierzu wird auf das Hilfethema Über Formatmasken für Datumsangaben verwiesen.

Gültige Werte:  Beliebige gültige Datum-/Datumzeit-Formatmaske.

Beispiel:

FORMS65_ERROR_DATE_FORMAT YYYY/MM/DD


FORMS60_JAVADIR

Standardwert:  Oracle_Home\forms60\java

Gültige Werte:  Name und Pfad der Oracle Java-Laufzeitumgebung

Beispiel:

FORMS60_JAVADIR=C:\orant\forms60\java

Dieser Parameter definiert den Speicherort der Oracle Java-Laufzeitumgebungsdateien, die zur Benutzung von Java Bean-Bereichen und zur Vorschau von Web-orientierten Forms aus Form Builder erforderlich sind.


FORMS60_MAPPING

Standardwert:  Keiner

Gültige Werte: Virtueller Pfad des temporären Arbeitsverzeichnisses

Beispiel:

FORMS60_MAPPING=http://myhost.com/webtemp

Um Bilder auf dem Weg zu verarbeiten, überträgt der Forms Server temporäre komprimierte JPEG-Dateien. Wenn Sie Bilder oder Symbole in den Web Forms-Anwendungen verwenden, müssen Sie ein temporäres und ein virtuelles Verzeichnis erstellen (z.B. C:\ORANT\WEBTEMP), das der Forms Server für Bild- und andere Arbeitsdateien verwendet. Sie müssen außerdem die Umgebungsvariablen FORMS60_OUTPUT und FORMS60_MAPPING auf dem Rechner erstellen, auf dem der Forms Server läuft.


FORMS60_OUTPUT

Standardwert:  Keiner

Gültige Werte:  Beliebiges Verzeichnis in beliebigem Laufwerk auf dem Rechner, auf dem der Forms Server ausgeführt wird.

Beispiel:

FORMS60_OUTPUT=C:\ORANT\WEBTEMP\

Um Bilder auf dem Web zu verarbeiten, überträgt der Forms Server temporäre komprimierte JPEG-Dateien. Wenn Sie Bilder oder Symbole in den Web Forms-Anwendungen verwenden, müssen Sie ein temporäres Verzeichnis erstellen (z.B. C:\ORANT\WEBTEMP), das der Forms Server für Bilder und andere Arbeitsdateien benutzt. Außerdem müssen Sie die Umgebungsvariablen FORMS60_OUTPUT und FORMS60_MAPPING auf dem Rechner erstellen, auf dem der Server läuft.


FORMSnn_OUTPUT_DATE/DATETIME_FORMAT

Zweck:  Diese beiden Umgebungsvariablen legen die Formatmasken fest, die Forms für Laufzeitausgabevorgänge bei Datums- und Datumzeitelementen verwendet, die keine eigenen, individuellen Masken haben.

Standardwert:  Siehe das Hilfethema Über Formatmasken für Datumsangaben.

Gültige Werte: Beliebige gültige Datum-/Datumzeit-Formatmaske.

Beispiel:

FORMS65_OUTPUT_DATETIME_FORMAT YYYY/MM/DD HH24:MI:SS


FORMS60_PATH

Standardwert:  ORACLE_HOME\FORMS60\PLSQLLIB

Gültige Werte:  Beliebiges Verzeichnis in beliebigem Laufwerk

Beispiel:

FORMS60_PATH=C:\oracle\apps\forms;C:\myfiles

Dieser Parameter gibt den Suchpfad für Dateien an, die in einer Laufzeitanwendung von Form Builder benutzt werden. Dies umfaßt Formdateien (.fmx), Menüdateien (.mmx), PL/SQL-Bibliotheken (.pll) und andere Objekte, die die Anwendung zur Laufzeit aus einer Datei lädt. Wenn Sie z.B. die Bilddatei scooter.tif importieren, sucht Form Builder in den mit FORMS60_PATH angegebenen Verzeichnissen nach dieser Datei.

Mit FORMS60_PATH können mehrere Verzeichnisse angegeben werden. Trennen Sie die Verzeichnisnamen in einer Liste mit Pfaden durch Semikolon (;).


FORMSnn_PLSQLV1_NAME_RESOLUTION

Standardwert:  OFF

Gültige Werte:  ON, OFF

Beispiel:

FORMS6i_PLSQLV1_NAME_RESOLUTION=ON

Mit dieser Umgebungsvariablen können Sie zwischen dem Verhalten von R4.5 und R5-und-höher für die Auflösung von Programmblocknamen zur Laufzeit wählen. Ein Wert von ON wählt das R4.5-Verhalten. Ein Wert von OFF (oder das Weglassen dieser Umgebungsvariablen überhaupt) wählt das R5-und-höher-Verhalten.

R4.5-Verhalten:

Wenn Forms einen Aufruf eines Programmblocks antrifft, sucht es zuerst in der aktuellen Form oder dem aktuellen Menü nach dem Programmblock. Danach werden die zugeordneten Bibliotheken durchsucht. Dieses Verhalten entspricht einer einfachen dynamischen Namensauflösung, da der aufgerufene Programmblock nicht identisch mit dem Programmblock ist, der während der Kompilierung aufgelöst wurde. In Situationen, in denen dieselbe Bibliothek mehreren Forms zugeordnet wird, behält darüber hinaus jede Form ihre eigenen eindeutigen Bibliotheksinformationen, einschließlich Instantiierungen, Paketstatus und Abhängigkeiten. Dies bedeutet, daß Abhängigkeitsinformationen nicht Forms-übergreifend gemeinsam benutzt werden.

Das R4.5-Verhalten hat folgende Nachteile:

•	Keine Forms-übergreifende gemeinsame Benutzung von Informationen. SHARE_LIBRARY_STATE bleibt wirkungslos.

•	Verlängerte Ausführungszeiten und höhere Speicherplatzbelegung (im Vergleich zu R5+).

R5+-Verhalten:

Wenn Forms einen Aufruf eines Programmblocks antrifft, sucht es ebenfalls zuerst in der aktuellen Form oder dem aktuellen Menü und danach in den zugeordneten Bibliotheken nach dem Programmblock. In den Fällen, in denen dieselbe Bibliothek mehreren Forms zugeordnet wird, behält jede Form jedoch nicht ihre eigenen eindeutigen Bibliotheksinformationen. Statt dessen werden die Instantiierungen von Programmblöcken Forms-übergreifend gemeinsam benutzt. Dies bedeutet, daß Abhängigkeitsinformationen Forms-übergreifend gemeinsam benutzt werden können.

Empfehlung:

Wegen der oben aufgeführten Nachteile und weil diese Umgebungsvariable in künftigen Releases nicht immer unterstützt werden wird, wird empfohlen, daß Sie das R4.5-Verhalten nicht auswählen.

Um eine dynamische Namensauflösung zu erhalten, verwenden Sie statt dessen die vordefinierte Prozedur Execute-Trigger. Wenn Argumente benötigt werden, benutzen Sie globale Variablen.


FORMS60_REPFORMAT

Standardwert:  Keiner

Gültige Werte:  HTML, PDF

Beispiel:

FORMS60_REPFORMAT=HTML

Wenn Sie einen Browser aufrufen, um einen Bericht aus einer Form über RUN_PRODUCT auszuführen, müssen Sie die Umgebungsvariable FORMS60_REPFORMAT festlegen. Mit diesem Parameter wird das Berichtformat angegeben.


FORMS60_TIMEOUT

Standardwert:  15

Gültige Werte:  1-1440 (1 Tag)

Beispiel:

FORMS60_OUTPUT=1440

Dieser Parameter gibt die Zeit in abgelaufenen Minuten an, bevor der Forms Server-Prozeß beendet wird, wenn keine Client-Kommunikation mit dem Forms Server stattfindet.


FORMSnn_USER_DATE/DATETIME_FORMAT

Zweck: Diese beiden Umgebungsvariablen legen die Formatmasken fest, die Forms zur Laufzeit benutzt, um Werte aus Elementen vom Typ DATE und DATETIME zu extrahieren, wenn diese Elemente keine eigenen individuellen, spezifischen Masken haben.

Standardwert: Siehe das Hilfethema Über Formatmasken für Datumsangaben.

Gültige Werte: Beliebige gültige Datum-/Datumzeit-Formatmaske. Mehrere Formatmasken können durch senkrechte Striche getrennt angegeben werden. Während der Konvertierung von Laufzeitelementen werden die Formatmasken in der angegebenen Reihenfolge benutzt, bis eine Konvertierung erfolgreich war (oder keine Formatmasken mehr vorhanden sind).

Beispiel:

FORMS65_USER_DATE_FORMAT  FXFMDD-MM-RRRR


FORMS60_USEREXITS

Standardwert:  Keiner

Gültige Werte:  Beliebige User Exit-DLL (zusammen mit dem absoluten Pfad)

Mit diesem Parameter können Sie mehrere DLLs definieren, die Fremdfunktionen enthalten, die aus der User Exit-Oberfläche aufgerufen werden können. Der Parameter FORMS60_USEREXITS umfaßt auch eine mit Semikolon begrenzte Liste der DLLs der Benutzeroberfläche.

Mit FORMS60_USEREXITS können mehrere DLLs angegeben werden. Benutzen Sie einen umgekehrten Schrägstrich (\), um die Verzeichnisse in einem Pfad voneinander zu trennen, und ein Semikolon (;), um vollständige Pfade voneinander zu trennen.

Wenn dieser Wert nicht explizit eingestellt wird, geht Form Builder von ORACLE_HOME\BIN\F45XTB.DLL aus.

Beispiel:

FORMS60_USEREXITS = C:\mathlib\add.dll;C:\mathlib\mult.dll


GRAPHICS60_PATH

Standardwert:  Keiner

Gültige Werte:  Beliebiges Verzeichnis in beliebigem Laufwerk

Beispiel:

GRAPHICS60_PATH=C:\oracle\apps\graphics;C:\myfiles

Dieser Parameter gibt den Suchpfad für Dateien an, die in einer Graphics-Laufzeitanwendung benutzt werden. Dies umfaßt Dateien von grafischen Anwendungen (.ogr), Bilder, externe Abfragen und andere Objekte, die die Anwendung zur Laufzeit aus einer Datei lädt. Wenn Sie z.B. die Bilddatei scooter.tif importieren, sucht Graphics Builder in den mit GRAPHICS60_PATH angegebenen Verzeichnissen nach dieser Datei.

Mit GRAPHICS60_PATH können mehrere Verzeichnisse angegeben werden. Benutzen Sie einen umgekehrten Schrägstrich (\), um die Verzeichnisse in einem Pfad zu trennen, und ein Semikolon (;), um vollständige Pfade zu trennen.


INTERRUPT (nur DOS SQL*Net-Benutzer)

Standardwert:  Keiner

Gültige Werte:  Derselbe Wert, der auch in der DOS-Datei CONFIG.ORA angegeben wird.

Mit diesem Parameter wird die Interrupt-Vektoradresse angegeben, die Oracle-Produkte unter DOS benutzen. Wenn Sie einen DOS SQL*Net-Treiber für Windows verwenden, überprüfen Sie Ihre Datei CONFIG.ORA im Oracle-Standardverzeichnis bei DOS. Wenn der INTERRUPT-Parameter in CONFIG.ORA eingestellt ist, müssen Sie ihn in der Registrierung auf denselben Wert einstellen. Wenn diese Variable in der DOS-Datei CONFIG.ORA nicht eingestellt ist, müssen Sie sie auch in der Registrierung nicht einstellen.

Hinweis:  Stellen Sie INTERRUPT nicht auf 103 ein, wenn Sie ein Speicherverwaltungsprogramm von einem fremden Hersteller benutzen, wie z.B. QEMM, 386MAX, CEMM oder EMM386. Sonst kommt es zu einem unerwarteten Verhalten nach dem Starten von SQLPME und SQL*Net.


LOCAL

Standardwert:  Keiner

Gültige Werte:  Beliebiges gültiges Präfix für  SQL*Net-Treiber, einschließlich Datenbank-Zeichenfolgenparametern. Weitere Informationen finden Sie in Oracle Network Administrator's Guide.

Dieser Parameter gibt den SQL*Net-Treiber und die vollständige DB-Adresse an, die das Produkt benutzt, wenn Sie bei der Anmeldung bei der Datenbank aus diesem Produkt heraus keinen Kommunikationstreiber angeben.

Wenn Sie den Parameter LOCAL hinzufügen, fügen Sie ihn nicht am Ende der Datei hinzu. Oracle-Produkte erkennen den LOCAL-Parameter nicht, wenn er als letzter Parameter angezeigt wird.

Hinweis:  Wenn Sie einen DOS SQL*Net-Treiber für Windows benutzen, prüfen Sie, ob der Parameter LOCAL in Ihrer Datei CONFIG.ORA im Oracle-Standardverzeichnis bei DOS gespeichert ist. Wenn LOCAL in CONFIG.ORA eingestellt ist, müssen Sie den Parameter in der Registrierung auf denselben Wert einstellen.


NLS_LANG

Standardwert:  AMERICAN_AMERICA.WE8ISO8859P1

Gültige Werte:  Im NLS Reference Manual finden Sie eine aktuelle Liste der verfügbaren Werte. Sie können auch die folgende Datei auf Ihrer CD überprüfen: \bonus\nls\nlsd2r1.wri

Beispiel:

NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1

Dieser Parameter bestimmt die Sprache, in der die Meldungsdateien angezeigt werden. NLS_LANG hat folgende Syntax:

NLS_LANG=<language>_<territory>.<char_set>

wobei:

language	die Sprache und die Regeln für die Anzeige von Meldungen sowie die Anzeige von Tages- und Monatsnamen angibt.
territory	das Land und die Regeln zur Berechnung der Wochen- und Tagesnummern angibt.
char_set	den Zeichensatz angibt, der für die Funktionen UPPER, LOWER und INITCAP verwendet wird, sowie die Sortierart, die von einer Abfrage ORDER BY benutzt wird. Dieses Argument kontrolliert auch den Zeichensatz, der zur Anzeige von Meldungen benutzt wird.


OleCreateObjPoolInMemory

Standardwert:  0

Gültige Werte:  0 oder 1

Beispiel:

OleCreateObjPoolInMemory=0

Bei Report Builder gibt dieser Parameter an, ob der OLE2-Objektpool in temporären Dateien (0) oder im Speicher (1) erstellt werden soll. Wenn Sie den Pool im Speicher erstellen, wird die Leistung verbessert, indem der Plattenzugriff reduziert wird. Wenn eine große Anzahl von OLE2-Objekten oder große OLE2-Objekte (z.B. Bilder) vorhanden sind, wird möglicherweise viel Speicherplatz benötigt. Bei der Festlegung der Anzahl von vorhandenen OLE2-Objekten beachten Sie, daß ein OLE2-Boilerplate-Objekt in einem Wiederholungsrahmen ein OLE2-Objekt enthält. Ein OLE2-Feld enthält ein OLE2-Objekt für jede Instanz des Feldes.


OleDoNotUpdateLinks

Standardwert:  0

Gültige Werte:  0 oder 1

Beispiel:

OleDoNotUpdateLinks=0

Bei Report Builder aktiviert (0) oder deaktiviert (1) dieser Parameter die Aktualisierung von Links, wenn Sie den Layouteditor öffnen oder den Bericht ausführen. Verknüpfte OLE2-Objekte enthalten im Cache gespeicherte Präsentationen von deren Quellobjekten. Diese im Cache gespeicherten Präsentationen werden von dem entsprechenden OLE2-Server basierend auf den bestehenden Objektdaten aktualisiert.

Diese Aktualisierungen erfolgen automatisch oder manuell je nach Linktyp. Da beim Aktualisieren der im Cache gespeicherten Präsentationen der OLE2-Server gestartet werden muß, können Sie die Aktualisierung deaktivieren, um die Leistung zu verbessern, wenn Sie wissen, daß die Quellobjekte nicht geändert wurden oder wenn Sie die neuesten Änderungen nicht benötigen. Beachten Sie, daß Sie Aktualisierungen immer noch aus dem Standard-Dialogfeld abbrechen können, das angezeigt wird, während die OLE2-Objekte aktualisiert werden, selbst wenn Sie diese Option nicht angeben.


OleUpdateLinksPrompt

Standardwert:  0

Gültige Werte:  0 oder 1

Beispiel:

OleUpdateLinksPrompt=0

Bei Report Builder gibt dieser Parameter an, daß eine Eingabeaufforderung ausgegeben (0) oder nicht ausgegeben (1) werden soll, wenn die Quelle eines verknüpften Objekts nicht gefunden wird. Wenn die Quelle eines Objekts während eines Aktualisierungsversuchs nicht gefunden wird, wird ein Dialogfeld angezeigt, in dem Sie die Quelle des Links erneut angeben oder den Fehler ignorieren können. Wenn Sie nicht präsent sind, um das Dialogfeld zu akzeptieren (der Bericht wird z.B. über Nacht ausgeführt), sollten Sie diese Eingabeaufforderung deaktivieren, um sicherzustellen, daß die Berichtausführung abgeschlossen wird.


ORACLE_HOME

Standardwert:  C:\ORAWIN95

Gültige Werte:  Beliebiges Verzeichnis in beliebigem Laufwerk

Beispiel:

ORACLE_HOME=C:\orawin95

Mit diesem Parameter wird das Standardverzeichnis angegeben, in dem Oracle-Produkte für Windows installiert sind. Dieses Verzeichnis ist das "oberste" Verzeichnis in der Oracle-Verzeichnishierarchie.

Verwendungshinweise

•	Wenn Sie Reports Runtime verwenden, darf die kombinierte Länge von ORACLE_HOME und ORACLE_PATH 255 Zeichen nicht überschreiten.


ORACLE_PATH

Standardwert:  Keiner

Gültige Werte:  Beliebiges Verzeichnis in beliebigem Laufwerk

Beispiel:

ORACLE_PATH=C:\oracle\apps\forms;C:\oracle\apps\graphics;
C:\oracle\apps\reports

Dieser Parameter gibt den Suchpfad für Dateien an, die von Forms, Graphics oder Reports Runtime referenziert werden. Beachten Sie, daß die von ORACLE_PATH angegebenen Verzeichnisse nach den Verzeichnissen durchsucht werden, die mit einem produktspezifischen Parameter angegeben werden: FORMS60_PATH, GRAPHICS60_PATH oder REPORTS60_PATH.

ORACLE_PATH kann mehrere Verzeichnisse angeben. Trennen Sie die Verzeichnisnamen in einer Liste mit Pfaden durch ein Semikolon (;).

Verwendungshinweise

•	Wenn Sie Reports Runtime benutzen, darf die kombinierte Länge von ORACLE_HOME und ORACLE_PATH 255 Zeichen nicht überschreiten.


ORAINFONAV_DOCPATH

Standardwert:  Keiner

Gültige Werte:  Beliebiges Verzeichnis in beliebigem Laufwerk

Beispiel:

ORAINFONAV_DOCPATH=C:\orawin95\oin

Dieser Parameter gibt den Speicherort des Inhaltsverzeichnisses und des Index für die Online-Dokumentation an.


REMOTE

Standardwert:  Keiner

Gültige Werte:  Beliebiges gültiges Präfix und Parameter für  SQL*Net-Treiber

Beispiel:

REMOTE=P:PIPER

Dieser Parameter gibt den Standard- und entfernten SQL*Net-Treiber an, der bei der Verbindung über eine lokale Datenbank benutzt werden soll. Dieser Parameter kann die standardmäßigen SQL*Net-Parameter (vollständige DB-Adresse) umfassen,

wobei P: das Netzwerk-Präfix für Named Pipes und Piper der Datenbankname ist.

Wenn sich ein Benutzer anmeldet und eine Verbindung mit einem expliziten Treiberpräfix angibt, das dem in REMOTE angegebenen Präfix entspricht, jedoch keine SQL*Net-Parameter angibt, werden die in REMOTE angegebenen Parameter benutzt. Mit diesem Parameter kann der DBA eine "normale" Netzwerkverbindung definieren, für die der SQL*Net-Benutzer keine Verbindungsparameter angeben muß. Sie können diesen Parameter jederzeit auf der Befehlszeile zurücksetzen.

Hinweis:  Wenn Sie einen DOS SQL*Net-Treiber benutzen, prüfen Sie, ob der Parameter REMOTE in Ihrer Datei CONFIG.ORA im Oracle-Standardverzeichnis bei DOS eingestellt ist. Wenn REMOTE in CONFIG.ORA eingestellt ist, müssen Sie den Parameter in der Registrierung auf denselben Wert einstellen.


REPORTS60_CGIDIAGBODYTAGS

Diese Variable gibt bei Reports Web CGI die HTML-Tags an, die als <BODY...>-Tags in der RWCGI60-Diagnose-/Debugging-Ausgabe eingefügt werden. Mit dieser Umgebungsvariablen können Sie z.B. die Text-/Hintergrundfarbe und Bilder einrichten.


REPORTS60_CGIDIAGHEADTAGS

Diese Variable gibt bei Reports Web CGI HTML-Tags an, die zwischen <HEAD> ... </HEAD>-Tags in der RWCGI60-Diagnose-/Debugging-Ausgabe eingefügt werden. Mit dieser Variablen können Sie z.B. die Tags <TITLE> oder <META...> einrichten.


REPORTS60_CGIHLP

Diese Variable gibt bei Reports Web CGI den URL/URI der Hilfedatei RWCGI60 an, zu dem navigiert wird, wenn RWCGI60 mit einer leeren Anforderung aufgerufen wird:

http://your_webserver/your_virtual_cgi_dir/rwcgi60.exe?

Wenn Sie REPORTS60_CGIHLP z.B. auf http://www.yahoo.com einstellen, wird zu diesem URL gegangen. Wenn die Variable auf myhelpfile.htm eingestellt wird, wird die Datei:

http://your_webserver/myhelpfile.htm

angezeigt. Wenn diese Variable nicht definiert ist, wird ein Standard-Hilfetext angezeigt.


REPORTS60_CGIMAP

Diese Variable definiert bei Reports Web CGI den vollständigen Dateinamen/Speicherort der RWCGI60-Zuordnungsdatei, wenn eine Konfiguration mit Zuordnungsdatei benutzt wird:

c:\orant\report60\mymap.dat


REPORTS60_CGINODIAG

Wenn diese Variable definiert ist, deaktiviert sie bei Reports Web CGI die gesamte Debugging-/Diagnose-Ausgabe von RWCGI60.

http://your_webserver/cgi-bin/rwcgi60.exe/help?

Verwendungshinweis:

Der Parameter kann nicht benutzt werden, wenn REPORTS60_CGINODIAG definiert ist.


REPORTS60_CGIPATHONLYURL

Wenn diese Variable definiert ist (wobei der Wert keine Rolle spielt), erzwingt sie bei Reports Web CGI, daß RWCGI60 alle URLs als partielle, Nur-Pfad-URLs an den Browser zurückgibt, d.h. anstatt folgendes zurückzugeben:

Location: http://your_webserver:port/path

wird nur:

Location: /path

Mit dieser Variablen können Probleme bei der Einrichtung von Web-Servern gelöst werden, die mehrere Ports benutzen, einschließlich einem Standard-Port.


 REPORTS60_COOKIE_EXPIRE

Standardwert:  30

Gültige Werte:  Beliebige Anzahl von Minuten

Beispiel:

REPORTS60_COOKIE_EXPIRE=30

Im Hinblick auf die Sicherheit von Reports Server bestimmt diese Variable die Leerlaufzeit des Cookie (z.B. REPORTS60_COOKIE_EXPIRE=30). Mit Cookies werden codierte Benutzernamen und Kennwörter auf der Client-Seite gespeichert. Wenn CGI einen Cookie von dem Client empfängt, vergleicht CGI die in dem Cookie gespeicherte Zeit mit der aktuellen Systemzeit.

Wenn die Zeit größer ist als die Anzahl von Minuten, die in dem Parameter REPORTS60_COOKIE_EXPIRE definiert ist (z.B. 30 Minuten), weist CGI den Cookie zurück und gibt die Form mit der Datenbank-Berechtigungsprüfung sowie eine Fehlermeldung an den Client zurück. Der Benutzer muß eine erneute Berechtigungsprüfung durchführen, um den Bericht ausführen zu können.


REPORTS60_DB_AUTH

Standardwert:  dbauth.htm

Gültige Werte:  Beliebige html-Datei mit speziellen Berechtigungsprüfungen. Es wird empfohlen, daß Sie den Standardwert beibehalten.

Beispiel:

REPORTS60_DB_AUTH=dbauth.htm

Diese Variable gibt die Vorlage zur Datenbank-Berechtigungsprüfung an, mit der Benutzer sich bei der Datenbank anmelden können.


REPORTS60_SYS_AUTH

Standardwert:  sysauth.htm

Gültige Werte: Beliebige html-Datei mit speziellen Berechtigungsprüfungen. Es wird empfohlen, daß Sie den Standardwert beibehalten.

Example:

REPORTS60_SYS_AUTH=sysauth.htm

Diese Variable gibt die Berechtigungsprüfungsvorlage an, mit der Benutzername und Kennwort geprüft werden können, wenn Benutzer Berichtanforderungen auf einem eingeschränkten Reports Server ausführen.


REPORTS60_ENCRYPTION_KEY

Standardwert:  Reports6.0

Gültige Werte:  Beliebiger Codierungsschlüssel

Beispiel:

REPORTS60_ENCRYPTION_KEY=reports6.0

Gibt den Codierungsschlüssel an, mit dem der Benutzername und das Kennwort codiert werden.


REPORTS60_REPORTS_SERVER

Gültige Werte:  Beliebiger Reports Server-Diensteintragsname

Beispiel:

REPORTS60_REPORTS_SERVER=repserver

Gibt die standardmäßigen Reports Server for Web Cartridge- oder Web CGI-Anforderungen an. Wenn dieser Parameter festgelegt ist, können Sie das Befehlszeilenargument SERVER in Berichtanforderungen weglassen, um diese mit dem Standard-Server auszuführen. Sie können das Befehlszeilenargument SERVER aber auch aufnehmen, um den Standardwert außer Kraft zu setzen.


REPORTS60_OWSDIAGBODYTAGS

Diese Variable gibt bei der Reports Web Cartridge HTML-Tags an, die als <BODY...>-Tag in der RWOWS60-Diagnose-/Debugging-Ausgabe eingefügt werden. Mit dieser Umgebungsvariablen könnten Sie z.B. Text-/Hintergrundfarbe, Bilder usw. einrichten.


REPORTS60_OWSDIAGHEADTAGS

Diese Variable gibt bei der Reports Web Cartridge HTML-Tags an, die zwischen <HEAD> ...</HEAD>-Tags in der RWOWS60-Diagnose-/Debugging-Ausgabe eingefügt werden. Sie könnten diese Umgebungsvariable z.B. benutzen, um <TITLE>- oder <META...>-Tags einzurichten.


REPORTS60_OWSHELP

Gültige Werte:  Beliebiger Pfad- und Dateiname oder URL

Diese Umgebungsvariable definiert bei Reports Web Cartridge den URL/URI der RWOWS60-Hilfedatei, zu dem navigiert wird, wenn RWOWS60 mit einer leeren Anforderung aufgerufen wird:

http://your_webserver/rwows60?

Wenn Sie diese Umgebungsvariable z.B. auf http://www.yahoo.com einstellen, wird zu diesem URL gegangen. Wenn sie auf myhelpfile.htm eingestellt wird, wird die folgende Datei angezeigt:

http://your_webserver/myhelpfile.htm

Wenn dieser Parameter nicht definiert ist, wird ein Standard-Hilfetext angezeigt.


REPORTS60_OWSMAP

Diese Variable definiert bei Reports Web Cartridge den vollständigen Dateinamen/Speicherort der RWOWS60-Zuordnungsdatei (sofern eine Konfiguration mit Zuordnungsdatei benutzt wird):

C:\ORANT\REPORTS60\MYMAP.DAT


REPORTS60_OWSNODIAG

Wenn diese Variable definiert ist, deaktiviert sie bei Reports Web Cartridge die gesamte Debugging-/Diagnose-Ausgabe aus RWOWS60:

http://your_webserver/rwows60/help?

Diese Variable kann nicht benutzt werden, wenn REPORTS60_OWSNODIAG definiert ist.


REPORTS60_OWSPATHONLYURL

Wenn diese Variable definiert ist (wobei der Wert keine Rolle spielt), veranlaßt sie bei Reports Web Cartridge, daß RWOWS60 Nur-Pfad-URLs (z.B. "/rscache/..." anstelle von "http://mywebsrv.com:1550/rscache/..." ) bei der HTTP-Umleitung zu der Berichtausgabe und in der von RWOWS60 generierten Diagnoseausgabe benutzt. Mit dieser Vorgehensweise kann der Client-Browser gezwungen werden, die URL-Originalanforderung in dem Feld "Speicherort:" beizubehalten, nachdem die Berichtausgabe abgerufen wurde. Normalerweise schaltet RWOWS60 den URL auf den Speicherort der Berichtausgabe um (d.h. das Verzeichnis, das mit REPORTS60_WEBLOC angegeben wird) und zeigt den Namen der Berichtausgabedatei an, die einen wenig aussagefähigen Namen wie z.B. 12345679.htm hat, da sie gerade generiert wurde. Durch Einstellung dieses Parameters kann diese "URL-Umschaltung" vermieden werden. Diese Variable kann nur benutzt werden, wenn alle URLs den Standard-Port verwenden (typischerweise 80).

Der Nachteil bei der Einstellung dieses Parameters besteht jedoch darin, daß zugehörige Dateien (wie z.B. Bilddateien), die von der Haupt-Berichtausgabedatei abhängig sind, vom Browser nicht abgerufen werden (obwohl sie erfolgreich an dem Speicherort erstellt wurden, auf den REPORTS60_WEBLOC zeigt). Dies kann umgangen werden, indem entweder ein Tag <BASE HREF="..."> oder <META HREF="..."> (wobei der Speicherort der Hauptdatei als vollständiger oder partieller URL angegeben wird) in der Berichtdefinition angegeben wird, so daß dieses Tag in der Haupt-Berichtausgabedatei aufgenommen wird. Sie können aber auch REPORTS60_WEBLOC so einstellen, daß auf den Speicherort der ausführbaren Datei RWOWS60 gezeigt wird.

Mit der Einstellung von REPORTS60_OWSPATHONLYURL können auch bestimmte Intranet-/Internet-Konfigurationen umgangen werden, bei denen derselbe Rechner mehrere unterschiedliche IP-Adressen gleichzeitig (bei verschiedenen Netzwerkkarten) haben kann, weil die Abhängigkeit der HTTP-Umleitung auf den Rechnernamen oder die IP-Adresse wegfällt.


REPORTS60_PATH

Standardwert:  ORACLE_HOME\REPORT60\DEMO;ORACLE_HOME\REPORT60\DEMO\BITMAP;ORACLE_HOME\REPORT60\DEMO\REQFILES

Gültige Werte:  Beliebiges Verzeichnis in beliebigem Laufwerk

Beispiel:

REPORTS60_PATH=C:\oracle\apps\reports;C:\myfiles

Mit dieser Umgebungsvariablen werden Berichte und externe Objekte gesucht, die Sie in Ihren Berichten verwenden, wie z.B. PL/SQL-Bibliotheken, externe Abfragen und externer Boilerplate. Mit dieser Variablen können Sie Berichte erstellen, die jederzeit betriebssystemübergreifend portiert werden können, indem Verzeichnispfade nicht mehr fest codiert werden müssen.

Hinweis: REPORTSPATH ist auf 256 Zeichen begrenzt.

Definieren Sie REPORTS60_PATH genau so, wie Sie andere Umgebungsvariablen in Ihrem Betriebssystem definieren, wobei Sie plattformspezifische Regeln berücksichtigen müssen, wie Pfadlänge usw.

Neben den Verzeichnispfaden können Sie das Schlüsselwort DB angeben, wenn Sie REPORTS60_PATH definieren. Damit wird Report Builder angewiesen, die Datenbank zu durchsuchen, bei der Sie momentan angemeldet sind.

Angenommen, Sie haben auf einer Unix-Plattform folgende Angaben gemacht:

setenv REPORTS60_PATH
/home/tkostin/pay:/home/tkostin/receive:DB

Report Builder durchsucht zuerst das Verzeichnis /home/tkostin/pay. Wenn die gewünschte Datei nicht gefunden wird, wird /home/tkostin/receive durchsucht. Wenn die Datei immer noch nicht gefunden wird, wird die Datenbank durchsucht, bei der Sie sich bei Beginn der Report Builder-Sitzung angemeldet haben.


REPORTS60_TERMINAL

Standardwert:  Keiner

Gültige Werte:  Beliebiges Verzeichnis in beliebigem Laufwerk

Beispiel:

REPORTS60_TERMINAL=C:\mytermdefs

Mit dieser Umgebungsvariablen werden Terminaldefinitionen gesucht, die Sie in Ihren Berichten im Zeichenmodus verwenden. Der Pfad, den Sie für diese Variable angeben, ist gegenüber der Umgebungsvariablen ORACLE_TERMINAL vorrangig.

Definieren Sie REPORTS60_TERMINAL genau wie andere Umgebungsvariablen in Ihrem Betriebssystem, wobei plattformspezifische Regeln wie Pfadlänge usw. berücksichtigt werden müssen.


REPORTS60_TMP

Standardwert:  Keiner

Gültige Werte:  Beliebiges Verzeichnis in beliebigem Laufwerk

Beispiel:

REPORTS60_TMP=C:\tmp

Mit dieser Umgebungsvariablen wird das Verzeichnis bestimmt, in dem die temporären Dateien von Report Builder gespeichert werden sollen. Report Builder benutzt nur ein Verzeichnis für diesen Zweck. Definieren Sie nicht mehr als ein Verzeichnis.

Definieren Sie VREPORTS60_TMP genau wie andere Umgebungsvariablen in Ihrem Basis-Betriebssystem, wobei plattformspezifische Regeln wie Pfadlänge berücksichtigt werden müssen. Wenn Sie REPORTS60_TMP nicht definieren, wird standardmäßig das aktuelle Arbeitsverzeichnis benutzt.


REPORTS60_USEREXIT

Standardwert:  Keiner

Gültige Werte:  Beliebige User Exit-DLL (zusammen mit dem zugehörigen absoluten Pfad)

Beispiel:

REPORTS60_USEREXIT=C:\mydll.dll;d:\mynew.dll;e:\bin\speed.dll

Mit diesem Parameter können Sie mehrere DLLs zur Benutzung durch Report Builder und die zugehörigen ausführbaren Dateien (z.B. Reports Runtime) definieren. Bei diesen DLLs handelt es sich um Programmodule, die von Ihnen erstellt wurden, damit sie von den ausführbaren Report Builder-Dateien aufgerufen werden können.

Mit REPORTS60_USEREXITS können mehrere DLLs angegeben werden. Trennen Sie die Verzeichnisse in einem Pfad durch einen umgekehrten Schrägstrich (\). Um vollständige Pfade zu trennen, verwenden Sie ein Semikolon (;).

Wenn dieser Wert nicht explizit eingestellt ist, sucht Report Builder nach einer 60xtb32.dll entsprechend der Pfadvariablen des Systems.


UI_ICON

Standardwert:  Keiner

Gültige Werte:  Beliebiges Verzeichnis in beliebigem Laufwerk

Beispiel:

UI_ICON=C:\icon

Diese Umgebungsvariable bestimmt das Verzeichnis, in dem Sie Symbole speichern möchten, die für Schaltflächen in dem Layout verwendet werden. Report Builder verwendet nur ein Verzeichnis für diesen Zweck. Definieren Sie nicht mehr als ein Verzeichnis.

Definieren Sie UI_ICON genau wie Sie andere Umgebungsvariablen in Ihrem Basis-Betriebssystem definieren, wobei plattformspezifische Regeln wie Pfadlänge usw. berücksichtigt werden müssen.


USERNAME

Standardwert:  Keiner

Gültige Werte:  Beliebiger gültiger Oracle-Benutzername (ohne das Präfix OPS$)

Beispiel:

USERNAME=dsanvita

Mit diesem Parameter wird der variable Teil eines standardmäßigen Anmelde-Accounts angegeben. In der Datenbankdokumentation finden Sie weitere Informationen über die Einstellung des Parameters USERNAME.


WIN_REMOTE_SESSIONS

Standardwert:  Keiner

Gültige Werte:  0-33

Wenn Sie bei der Anmeldung eine Fehlermeldung im Bereich ORA-3100 bis ORA-3199 erhalten, ist möglicherweise nicht genügend Echtzeitspeicher vorhanden, um einen Kommunikationspuffer mit einem Oracle-Server herzustellen. Dieses Problem wird mit NETINIT7.EXE gelöst, indem Speicher für Server-Verbindungen reserviert wird.

Dieser Parameter legt die Anzahl von Verbindungen mit einem entfernten Server fest, für die NETINIT7 Speicherplatz reservieren soll. Bei der Einstellung des Parameters WIN_REMOTE_SESSIONS berücksichtigen Sie folgende Regeln:

•	Wenn Sie WIN_REMOTE_SESSIONS auf 0 einstellen, reserviert NETINIT7 keinen Speicherplatz für entfernte Server-Verbidungen.

•	Wenn Sie WIN_REMOTE_SESSIONS auf die Werte 1 bis 33 einstellen, wird Speicher für die angegebene Anzahl von Verbindungen reserviert. Beachten Sie, daß NETINIT7 12 K Echtzeitspeicher für jede entfernte Server-Verbindung reserviert.

•	Ein empfohlener Wert für WIN_REMOTE_SESSIONS ist 5. Wenn Sie WIN_REMOTE_SESSIONS auf 5 einstellen, sollten genügend Sitzungen erstellt werden, damit Sie mehrere Produkte ausführen können.

•	Wenn Sie den Parameter WIN_REMOTE_SESSIONS nicht hinzufügen, reserviert NETINIT7 Speicherplatz für eine entfernte Server-Verbindung.

Führen Sie folgende Schritte aus, um NETINIT7 zu benutzen:

1	Konfigurieren Sie die Anzahl von Sitzungen, indem Sie den Parameter WIN_REMOTE_SESSIONS hinzufügen.

2	Erstellen Sie das Symbol NETINIT7 in der Oracle-Programmgruppe. (Weitere Informationen über das Erstellen von Symbolen finden Sie in der Microsoft Windows-Dokumentation.) Geben Sie den folgenden Pfad in das Feld Befehlszeile im Windows-Dialogfeld Programmeigenschaften ein:

ORACLE_HOME\bin\netinit7.exe

3	Starten Sie NETINIT7, indem Sie in der Oracle-Programmgruppe auf das Symbol doppelklicken. Stellen Sie sicher, daß NETINIT7 gestartet ist, bevor Sie ein Produkt starten. Wenn NETINIT7 automatisch beim Starten von Windows ausgeführt werden soll, nehmen Sie das Symbol NETINIT7 in der Windows-Programmgruppe START auf.

NETINIT7 versucht, Echtzeitspeicher für die konfigurierte Anzahl von Server-Verbindungen zu reservieren. Wenn NETINIT7 den erforderlichen Speicher nicht zuweisen kann, wird eine Warnmeldung angezeigt und die konkrete Anzahl von Sitzungen angegeben, für die Speicherplatz zugewiesen wurde.

Nachdem Speicherplatz zugewiesen wurde, wird NETINIT7 als Symbol angezeigt. Wenn Sie NETINIT7 wiederherstellen, wird die Gesamtanzahl von konfigurierten Sitzungen und der gesamte belegte Speicherplatz angezeigt. Wenn Sie NETINIT7 schließen, wird der nicht benötigte Sitzungsspeicher freigegeben. Wenn eine Anwendung immer noch Sitzungsspeicher benutzt, unterrichtet NETINIT7 Sie, daß sich die Anwendungen abmelden müssen, bevor der Sitzungsspeicher freigegeben werden kann.

Hinweis:  Wenn Sie ein Produkt vor NETINIT7 starten, weist dieses eigenen Sitzungsspeicher zu, der von NETINIT7 nicht erkannt wird. NETINIT7 versucht, den konfigurierten Sitzungsspeicher zusätzlich zu dem Speicher zuzuweisen, der schon von dem von Ihnen gestarteten Produkt zugewiesen wurde.


XMITTR (nur DOS-Benutzer)

Standardwert:  Keiner

Gültige Werte:  Derselbe Wert, wie in der DOS-Datei CONFIG.ORA angegeben.

Dieser Parameter gilt nur für Benutzer von ausführbaren Oracle-Routinen im geschützten Modus. Prüfen Sie die Datei CONFIG.ORA im Oracle-Standardverzeichnis bei DOS. Wenn der Parameter XMITTR in CONFIG.ORA eingestellt ist, müssen Sie ihn in der Registrierung auf denselben Wert einstellen. Wenn diese Variable in der DOS-Datei CONFIG.ORA nicht eingestellt ist, müssen Sie sie in der Registrierung ebenfalls nicht einstellen.

XMITTR (Extended Memory Manager Interrupt Vector) ist eine Variable, mit der der Interrupt-Vektor angegeben wird, der für die Einsprungstelle in die XMM/MTD-Interrupt-Services (Extended Memory Manager/Mode Transition Driver) benutzt werden soll. Um einen anderen Vektor zu benutzen, wird der neue Interrupt-Vektor in Form einer Dezimalzahl ausgedrückt. XMITTR darf nur benutzt werden, wenn ein anderes Programm in Ihrem System Interrupt100 decimal oder 64 hexadecimal benutzen muß.

Hinweis:  Stellen Sie XMITTR nicht auf 103 ein, wenn Sie ein Speicherverwaltungsprodukt von einem fremden Hersteller benutzen, wie z.B. QEMM, 386MAX, CEMM oder EMM386. Sonst kommt es nach dem Laden von SQLPME und SQL*Net zu einem unerwarteten Verhalten.


Online-Hilfe benutzen

Die folgenden Richtlinien sollen Ihnen beim optimalen Einsatz des Online-Hilfesystems helfen:

•	Machen Sie sich mit dem Register Inhalt vertraut, um eine Vorstellung vom Umfang der Themen in der Online-Hilfe zu erhalten.

•	Klicken Sie auf die Schaltfläche Verwandte Themen direkt unter den Titeln, um eine Liste der Themen aufzurufen, die mit dem aktuellen Thema verknüpft sind.

•	Klicken Sie auf die Schaltfläche Optionen am Anfang jedes Themas, um festzulegen, daß die Hilfethemen immer im Vordergrund angezeigt werden sollen, so daß die Hilfethemen bei der Entwicklung von Anwendungen stets auf dem Bildschirm bleiben.

•	Klicken Sie auf die Schaltfläche Glossar am Anfang jedes Themas, um Definitionen für Begriffe aufzurufen, mit denen Sie nicht vertraut sind..


Wegweiser zur Dokumentation

So machen Sie sich mit Oracle Developer vertraut:

1	Verschaffen Sie sich in der Kurzanleitung einen Überblick über die einzelnen Komponenten von Oracle Developer:

•	Wählen Sie Hilfe [image] Kurzanleitung.

2	Führen Sie das Lernprogramm aus, in dem die gebräuchlichsten Aufgaben Schritt für Schritt erläutert werden.

• 	Wählen Sie Hilfe [image] Lernprogramm.

3	Rufen Sie die Online-Handbücher ab (sie sind auch in gedruckter Form verfügbar):

• 	Wählen Sie Hilfe [image] Handbücher.

4	Rufen Sie das Online-Hilfesystem auf:

• 	Wählen Sie Hilfe [image] Hilfethemen.

• 	Für kontextbezogene Hilfetexte drücken Sie [Hilfe] (bei den meisten Plattformen ist dies die Taste F1).


Information Desk


Unterstützung von Oracle8-Server

  Verwandte Themen

Oracle8 Server stellt eine Reihe von neuen Funktionen bereit. Im allgemeinen fallen diese Funktionen in folgende Kategorien:

•	Größere Skalierbarkeit. Oracle8-Datenbanken können z.B. Datenmengen in Terabyte-Größenordnungen enthalten und unterstützen den gleichzeitigen Zugriff durch maximal 10000 Benutzer. Die Tabellen selbst können jetzt bis zu 1000 Spalten enthalten. Die Datentypen CHAR und VARCHAR2 können jetzt maximal 2000 bzw. 4000 Byte umfassen.

•	Größere Leistung und Effizienz. Die Benutzung dieser Oracle8-Funktionen erfolgt automatisch und erfordert kein Eingreifen Ihrerseits. Sie profitieren automatisch von der Geschwindigkeit und Verläßlichkeit, die sich durch die Speicherung von Daten im Oracle8-Server ergibt.

•	Große Objekte (werden gelegentlich als LOBs bezeichnet).

•	Benutzerdefinierte Objekte.

Weitere Unterstützung von Oracle7

Die Funktione von Oracle7-Server (Release 7.3.4 und höher) werden weiter unterstützt.


Unterstützte Oracle8-Datentypen

  Verwandte Themen

Dieses Release unterstützt weiterhin die folgenden Oracle8-Datentypen:

Große Objekte (LOBs)

In Oracle8 können Programmierer große Objekte definieren, die häufig als LOBs bezeichnet werden. In diesen Objekten können Text, Bilder, Klang oder Video gespeichert werden.

Dieses Release unterstützt momentan die folgenden LOB-Datentypen von Oracle8:

•	BLOB (für Binary Large Object)

•	CLOB (für Character Large Object - Einfachbyte)

•	BFILE (für Binary File) (wird gelegentlich als externe Datei bezeichnet).

Benutzerdefinierte Objekte

In Oracle8 können Programmierer Objekttypen (die auch als benutzerdefinierte Typen bezeichnet werden) definieren, bei denen es sich um zusammengesetzte Objekte handelt, basierend auf den bestehenden Einfachelement-Datentypen, die von Oracle8 unterstützt werden. Anhand dieser Objektdefinitionen können Programmierer dann verschiedene Arten von Tabellen erstellen.

Folgende Typen von Oracle8-Objekten werden momentan unterstützt:

•	Objekttabellen, wobei die ganzen Tabellen auf einem einzelnen Objekttyp basieren.

•	Spaltenobjekte in einer relationalen Tabelle, wobei diese Spalten auf einem Objekttyp basieren.

•	REF-Spalten in einer Objekt- oder relationalen Tabelle, wobei die Werte dieser Spalten Pointer auf Zeilen in einer anderen Objekttabelle sind.

Neue skalare Datentypen

Dieses Release unterstützt auch den neuen Oracle8-Datentyp FLOAT. Es ordnet diesen Datentyp seinem eigenen Datentyp NUMBER zu.


Über LOBs von Oracle8

Sie können auf LOB-Datentypen von Oracle8 zugreifen: BLOBs (Binary Large Objects); CLOBs (Character Large Objects) und BFILEs (Binary Files).

Auf einem Oracle8 Server können diese Datentypen Objekte mit maximal 4 GB speichern. Ihr Verwendungszweck entspricht den bekannten Datentypen LONG und LONG RAW von Oracle7, sie bieten allerdings eine Reihe zusätzlicher Vorteile.

Vergleich von LOBs und LONGs

LOBs	LONGs
Maximal 4 GB	Maximal 2 GB
Mehrere LOB-Spalten in einer einzigen Tabelle	Nur eine LONG-Spalte pro Tabelle
Replizierung unterstützt	Keine Replizierung
Wahlfreier Datenzugriff unterstützt	Nur sequentieller Zugriff unterstützt
Bessere Verwaltung des Tabellenspeicher-platzes (nur der LOB-Positionsanzeiger wird gespeichert)	Weniger effizient (Daten werden direkt in Tabellen gespeichert)
In benutzerdefinierten Objekttypen zulässig	Nicht zulässig
Können einfach an Prozeduren und externe Aufrufe übergeben werden	Keine einfache Übergabe
LOBs im Detail:

Mit BLOBs werden große Objekte im Binärformat gespeichert. Mit CLOBs werden Zeichendaten gespeichert. Diese beiden Typen sind auch als interne LOBs bekannt, da ihre Daten innerhalb des Servers gespeichert werden. Die Daten nehmen an Transaktionen und der Integritätskontrolle teil, einschließlich Commits und Rollbacks.

BFILEs hingegen werden außerhalb des Servers gespeichert. Der Server speichert nur die Betriebssystemadresse der Datei. Deshalb können BFILEs nicht an Datenbanktransaktionen teilhaben.

Kompatibilität

Wegen der vielen Vorteile der LOBs (siehe obige Tabelle) sollten Sie LOBs anstelle von LONGs in jeder neuen Anwendung verwenden.

Aus Gründen der Abwärtskompatibilität werden LONGs jedoch weiterhin voll unterstützt.

Forms-Typen

Innerhalb einer Form würde das LOB im allgemeinen einen Steuerelementtyp Text, Bild  oder Klang erhalten, je nach Verwendungsart.

Einschränkungen

•	BFILEs sind schreibgeschützt.

•	Auch wenn  Forms versuchen wird, das gesamte BFILE oder BLOB zu laden, wenn es zur Laufzeit gelesen wird, wird es doch durch den virtuellen Speicherplatz begrenzt, der zur Laufzeit verfügbar ist.

•	Bei CLOBs, hat Forms eine Größenbeschränkung von 65534 Byte.


Über benutzerdefinierte Objekte von Oracle8

  Verwandte Themen  [image]  Beispiele

Durch die Unterstützung des Oracle8-Servers ermöglicht dieses Release den Zugriff auf benutzerdefinierte Objekte von Oracle8. Diese umfassen Objekttabellen, Spaltenobjekte in relationalen Tabellen und eine besondere Art von Spaltenobjekt, die als REF-Spalte bezeichnet wird.

Objekttabellen

In Oracle8 basiert eine Objekttabelle auf der Objekttypdefinition eines Benutzers. Diese Definition selbst ist ein zusammengesetztes Objekt, wobei jedes Attribut bzw. jede Komponente auf einem bekannten vordefinierten Datentyp von Oracle8 basiert. (Eine Objekttypdefinition kann auf einer anderen Objekttypdefinition basieren, schlußendlich beruhen die Definitionen jedoch auf bekannten vordefinierten Oracle8-Datentypen.)

Deshalb wird jede Spalte in einer Objekttabelle als individuelles Datenobjekt behandelt, so wie es die Spalten einer relationalen Tabelle behandelt.

Spaltenobjekte in relationalen Tabellen

Ein Datenbankprogrammierer kann eine Spalte in einer relationalen Tabelle auch auf einer Objekttypdefinition basieren. Dies entspricht dem Einbetten eines zusammengesetzten Objekts in der relationalen Tabelle.

Das eingebettete Spaltenobjekt wird in die entsprechenden Bestandteile erweitert und jeder Teil wird als Spalte für sich selbst behandelt.

Wenn der Oracle8-Server z.B. eine 3spaltige relationale Tabelle enthalten würde, eine dieser Spalten ein Spaltenobjekt wäre und dieses Spaltenobjekt auf einer Objektdefinition basieren würde, die vier Bestandteile oder Attribute hat, würde die Tabelle als 6spaltige Tabelle behandelt (die 2 relationalen Spalten plus den 4 Spalten, aus denen das Objekt besteht).

Falls eines der individuellen Attribute der Definition des Spaltenobjekts auf einem anderen Objekttyp basieren würde, würde dieser Bestandteil weiter erweitert und als Gruppe mit individuellen Spalten behandelt.

REF-Spalten

Eine Spalte in einer Objekt- oder relationalen Tabelle kann als eine Spalte vom Typ REF definiert werden. Eine REF-Spalte enthält nicht direkt Daten, sondern Pointer (Referenzen) auf eine andere Objekttabelle, die die eigentlichen Daten enthält.

Die Referenz kann zur Laufzeit aufgelöst werden, so daß der Benutzer die konkreten referenzierten Daten sieht.


Benutzerdefinierte Objekte von Oracle8: Beispiele

  Verwandte Themen

Um Objekte im Oracle8-Server zu erstellen, definiert ein Datenbankprogrammierer zuerst einen Objekttyp. Danach erstellt er ein spezifisches Objekt basierend auf dieser Typdefinition. Bei dem Ergebnisobjekt kann es sich entweder um eine Objekttabelle oder ein Spaltenobjekt in einer relationalen Tabelle handeln.

Beispiele

Betrachten Sie die folgenden Definitionen. Mit der ersten Definition wird ein Objekttyp erstellt. Die zweite Definition erstellt eine Tabelle dieses Typs.

         CREATE TYPE  emp_type  AS OBJECT

                      (name     CHAR(30),

                       title    CHAR(20),

                       idnum    NUMBER);

         CREATE TABLE  emp  OF emp_type;

Im obigen Beispiel wird eine Objekttabelle mit der Bezeichnung emp erstellt. Sie hat drei Spalten, und diese Spalten haben die Namen und Datentypen, die in den Attributen der Objekttypdefinition emp_type festgelegt werden.

Als nächstes sehen Sie ein Beispiel für ein Spaltenobjekt in einer relationalen Tabelle:

         CREATE TYPE  address_type  AS OBJECT

                      (street    VARCHAR2(40),

                       city      VARCHAR2(25),

                       state     VARCHAR2(2)

                       zip       NUMBER);

         CREATE TABLE  customers

                       (cust_id  NUMBER,

                        name     VARCHAR(40),

                        address  address_type);

In diesem Beispiel wird eine relationale Tabelle mit der Bezeichnung customers erstellt. Die Tabelle hat drei Spalten. Bei den beiden ersten Spalten (cust_id und name) handelt es sich um die üblichen relationalen Spalten. Die dritte Spalte (address) ist ein Spaltenobjekt. Sie basiert auf der Objekttypdefinition mit der Bezeichnung address_type. Diese Adreßspalte hat die Struktur und die Datentypen, die von dieser Objektdefinition festgelegt wurden. Stellen Sie sich die Adreßspalte als eine Spalte mit vier Bestandteilen oder Komponenten vor (street, city, state und zip). Jede dieser Komponenten hat den Datentyp, der in der Objekttypdefinition address_type festgelegt wurde. (In diesem Fall haben alle Komponenten den Datentyp VARCHAR2 mit Ausnahme von zip, die den Datentyp NUMBER hat.)

In der folgenden Darstellung basiert die dritte Spalte einer dreispaltigen relationalen Tabelle auf einem Objekttyp, der selbst drei Bestandteile oder Komponenten hat.

Beachten Sie, daß es sich bei einem Oracle8-Objekt um ein zusammengesetztes Objekt handelt, das aus Bestandteilen oder Komponenten besteht. Jeder der Bestandteile hat einen Namen und einen bekannten Oracle8-Datentyp. Wenn es sich bei dem Objekt um eine Tabelle handelt (in Wirklichkeit eine Zeile in einer Objekttabelle), hat diese so viele Spalten oder Bestandteile, wie Attribute in der Objekttypdefinition vorhanden sind. Wenn eine Spalte in einer relationalen Tabelle auf einem Objekt basiert, können Sie sich jeden der Bestandteile des Objekts als eine zusätzliche Spalte in dieser Tabelle vorstellen. Da jeder dieser Bestandteile auf einem Attribut in der Objekttypdefinition basiert, werden diese Bestandteile gelegentlich als Attributspalten bezeichnet.

So behandelt Developer Objekte

Eine Objekttabelle wird weitestgehend wie eine relationale Tabelle behandelt. Jede Spalte kann individuell ausgewählt werden. Auch wenn alle Spalten ausgewählt werden können, wird jede Spalte als separates Objekt innerhalb der Anwendung behandelt. Die Tabelle selbst verfügt über keine besondere Identität als Objekt innerhalb der Umgebung.

Gleichermaßen wird ein Spaltenobjekt in einer relationalen Tabelle nicht als eine einzelne homogene Entität behandelt. Statt dessen wird jede der Komponenten des Spaltenobjekts als individuelles, unabhängiges Datenobjekt behandelt. Jede Komponente des Spaltenobjekts kann ausgewählt werden. Nachdem die Komponente ausgewählt wurde, wird jede Komponente als unabhängiges Datenobjekt behandelt. Selbst wenn alle Komponenten des Spaltenobjekts ausgewählt sind, hat das Spaltenobjekt selbst keine besondere Identität als Objekt innerhalb der Entwicklungsumgebung.

Datenobjekte, die aus einem Objekt ausgewählt werden, haben den Standardnamen ColumnObjectName_ItemName. Wenn also die Komponente mit der Bezeichnung zip aus dem Spaltenobjekt mit der Bezeichnung address im obigen Beispiel ausgewählt wird, hat das Datenobjekt den Namen address_zip innerhalb der Anwendung.


Über Oracle8-REFs

  Verwandte Themen

REF ist ein neuer Datentyp in Oracle8. Mit ihm wird ein Spaltenobjekt als Pointer auf Daten in einer anderen Objekttabelle festgelegt. Die REF-Spalte selbst enthält die Daten nicht.

Zum Beispiel:

           CREATE TYPE  dept_type  AS OBJECT

                        (deptname     VARCHAR2(24),

                         deptnumber   NUMBER);

           CREATE TABLE  dept_table OF dept_type;

           CREATE TABLE  emp

                         (empname    VARCHAR2(50),

                          empnumber  NUMBER,

                          empdept    REF  dept_type);

In der relationalen Tabelle mit der Bezeichnung emp ist die Spalte empdept eine REF-Spalte. Sie zeigt auf ein Objekt vom Typ dept_type.

Typen und Tabellen

Wenn eine REF-Spalte definiert wird, identifiziert sie einen Objekttyp - und keine bestimmte Objekttabelle. Eine Datenbank kann mehr als eine Objekttabelle basierend auf einer einzigen Objekttypdefinition enthalten. Somit identifiziert die REF-Spaltendefinition selbst die Zieltabelle(n) nicht.

Pointer-Auflösung

Wenn die Tabelle, die die REF-Spalte enthält, initialisiert wird, sind die Werte in der REF-Spalte Pointer auf Zeilen in der bzw. den spezifischen Tabellen, die die gewünschten Daten enthalten. Wenn Benutzer später zur Laufzeit die REF-Spalte betrachten, sehen sie die Daten, auf die gezeigt wird (und nicht die Pointer).

So zeigt Developer REFs beim Entwurf an

Wenn Sie beim Entwurf eine Tabelle sehen möchten, die eine REF-Spalte enthält, wird die REF-Spalte in der erweiterten Form angezeigt. Das heißt, die Attribute in dem Objekttyp, auf die die REF-Originaldefinition zeigt, werden dargestellt.

Im obigen Beispiel würde die REF-Spalte empdept so dargestellt, als enthielte sie zwei Komponenten oder Attributspalten: deptname und deptnumber. Dies waren die beiden Attribute in dem Objekttyp (dept_type), die in der REF-Definition identifiziert wurden.

Genau wie bei einem regulären Spaltenobjekt können Sie eine oder alle referenzierten Komponenten/Spaltenattribute auswählen, damit diese zu Datenobjekten in der Anwendung werden. Im Gegensatz zu den regulären Spaltenobjekten können Sie jedoch auch den REF-Namen selbst auswählen, damit dieser zu einem manipulierbaren Objekt innerhalb der Anwendung wird. Das heißt, Sie können die REF-Spalte in Ihrer PL/SQL-Codierung verwenden. Standardmäßig wird die REF-Spalte zu einem Bestandteil der Null-Leinwand.

So können Sie REF-Daten für die Benutzer anzeigen

Als Anwendungsentwickler können Sie wählen, wie der Laufzeitbenutzer die referenzierten Daten (die aufgelöste REF) sieht:

•	Daten, die in dem Datenblock angezeigt werden, in dem die REF-Spalte vorhanden ist (wird auch gelegentlich als Verweismethode bezeichnet)

•	Daten, die in dem Datenblock angezeigt werden, auf den die REF-Spalte zeigt (Master-Detail-Methode)

Die erste Auswahl (bei der die Daten als Bestandteil des Datenblocks angezeigt werden, in dem die REF vorhanden ist) ist die einfachste. Sie wählen die gewünschten REF-Komponenten als Objekte in Ihrem Datenblock. Zur Laufzeit lösen Developer und Oracle8 die Referenzen auf und setzen die referenzierten Daten in die Anzeigeobjekte. Der Benutzer muß nur einen Block betrachten.

Bei der anderen Auswahl (bei der die Daten in dem Datenblock angezeigt werden, auf den gezeigt wird) ist  die Einrichtung eines Master-Detail-Links erforderlich. Dies entspricht weitestgehend der Einrichtung eines Master-Detail-Links für zwei Blöcke, die eine Primär-/Fremdschlüssel-Beziehung haben. In diesem Fall erstellt die REF den Link zwischen den beiden Blöcken. Der Benutzer sieht beide Blöcke, sieht die REF-Daten jedoch nur in dem referenzierten Block.

Diese Master-/Detail-Beziehung kann mit dem Datenblock-Assistenten von Form Builder eingerichtet werden.


Symbole für Oracle8-Objekte

Der Objektnavigator und die Assistenten geben mit Hilfe von Symbolen an, auf welchen Typ von Oracle8-Daten Sie zugreifen. Diese Symbole und deren Bedeutung sind:

             Normale Tabelle

             Objekttyp

             Objektansicht

             Objekttabelle

             Verschachteltes Objekt

             Verschachtelte Tabelle

             Referenziertes Objekt

             Variierendes Array

             Methode

             Unbekannter Typ

             Server-seitiger Stack-Modus

             Server-seitiger Programmblock

             Datei

             Datentyp Date

             Datentyp Number

             Datentyp Character

             Datentyp Raw

           Datentyp BLOB

             Datentyp BFILE

             Datentyp CLOB

             Rowid

             MLSLABEL


Skalierbarkeit und Leistung bei Oracle8

Durch die Unterstützung des Oracle8-Servers kommen Sie in den Genuß einer Reihe von Verbesserungen bei Skalierbarkeit und Leistung. In den meisten Fällen erhalten Sie diese Vorteile automatisch.

Sie können z.B. auf folgende Funktionen von Oracle8 zugreifen:

•	Größere Größen. Die Datenbank selbst, die Anzahl von gleichzeitigen Benutzern und die Grenzwerte für die Tabellenspalten (jetzt bis zu 1000 Spalten) wurden alle erhöht.

•	Tabellen- und Indexpartitionierung

•	Client-seitiges Speichern von Objekten im Cache

Sie können jetzt außerdem verschiedene andere Oracle8-Funktionen nutzen, durch die die Leistung verbessert wird:

•	Prefetch. Forms benutzt diese Oracle8-Funktion (zusammen mit dem vorhandenen Mechanismus Array-Größe), um Round-Trips und Speichernutzung durch die Datenbank zu reduzieren. Dies geschieht automatisch, ohne Eingreifen des Benutzers.

•	Returning-Klausel. Forms benutzt diese neue DML-Funktion bei Einfügen- und Aktualisierenvorgängen. Durch die Returning-Klausel ist eine zweite Datenabfrage (um server-seitige Trigger-Änderungen an den Daten zu ermitteln) nicht mehr erforderlich, so daß die Verarbeitung beschleunigt wird. Benutzer können dies mit dem Attribut DML-Rückgabewert steuern.

•	INSTEAD-OF-Trigger für das Aktualisieren von Ansichten. Dieser server-seitige Trigger bietet einen Mechanismus für das Aktualisieren von relationalen und Objektansichten, die sonst nicht aktualisiert werden könnten.


Unterstützung von PL/SQL 8

  Verwandte Themen

Dieses Release verwendet PL/SQL 8 auf dem Client und dem Server. Client-seitige Programmblöcke können momentan keine objektbezogene Funktionalität von Oracle8 unterstützen. Gespeicherte Programmblöcke können jedoch alle neuen PL/SQL 8-Funktionen verwenden.

In Anhang A im Handbuch PL/SQL User's Guide and Reference Release 8  werden die neuen PL/SQL 8-Funktionen beschrieben. Dieses Handbuch kann online aufgerufen werden. Wählen Sie Hilfe -> Handbücher, und gehen Sie zu den Referenzhandbüchern unter Online-Handbücher.


Kompatibilität mit früheren PL/SQL-Releases

Bei clientseitigen Programmblöcken, die in PL/SQL 1 oder PL/SQL 2 geschrieben wurden, müssen Sie den Code auf die neue Ebene konvertieren. Das PL/SQL 1-Konvertierungsdienstprogramm automatisiert diesen Umstellungsprozeß.

Gespeicherte Programmblöcke, die mit früheren Releases erstellt wurden, können mit der PL/SQL 8-Engine auf dem Datenbankserver verwendet werden, werden jedoch möglicherweise mit Fehlern kompiliert. Diese Fehler entstehen in einigen Fällen, in denen die Syntax zwischen PL/SQL 8 und PL/SLQ 2 nicht kompatibel ist. Mit einem Kompatibilitäts-Flag in PL/SQL 8 können Sie einen PL/SQL 2-Kompatibilitätsmodus wählen, so daß die PL/SQL 8-Engine derartige Fehler nicht ausgibt, wenn PL/SQL 2-Code im Server kompiliert wird. In Kapitel 6 im Handbuch Oracle8 Server Migration werden die Fälle beschrieben, die von diesem Kompatibilitäts-Flag abgedeckt werden.


Noch nicht unterstützte Oracle8-Funktionen

  Verwandte Themen

In diesem Release werden noch nicht alle Oracle8-Funktionen unterstützt. Die wichtigsten nicht unterstützten Funktionen sind:

•	Collection-Typen (verschachtelte Tabellen und variierende Arrays bzw. Varrays)

•	Gespeicherte Prozeduren, die Objektwerte zurückgeben

•	Skalare Datentypen NCHAR und NVARCHAR2.

Auch  wenndieses Release PL/SQL 8 unterstützt, sollten Sie sich dessen bewußt sein, daß das client-seitige PL/SQL 8 noch nicht alle Funktionen im Oracle8-Server voll unterstützt. (Die server-seitige PL/SQL 8-Unterstützung ist vollständig.)


Oberfläche Syntaxpalette

Mit der Syntaxpalette können Sie die Konstrukte von PL/SQL-Sprachelementen und vordefinierten Paketen anzeigen und kopieren. Mit ihr können Sie die ausgewählte Syntax nur in den Programmblock-Editor oder Gespeicherter Programmblock-Editor kopieren.

Die Syntaxpalette besteht aus folgenden Komponenten:

Register PL/SQL	Mit diesem Register können Sie PL/SQL-Sprachelemente anzeigen und auswählen, um sie zu kopieren. Die PL/SQL-Sprachelemente sind nach Kategorien gruppiert, wie z.B. Flußsteuerung, Cursor, Exceptions usw.
Register Vordefinierte Prozeduren	In diesem Register können Sie PL/SQL-Konstrukte (Funktion oder Prozedur) für das Kopieren anzeigen und auswählen. Die vordefinierten Pakete sind nach Paketnamen wie z.B. EXEC_SQL, DEBUG, DDE usw. gruppiert.

Jede Seite hat folgende Komponenten:

Dropdown-Liste	Zeigt einen PL/SQL-Kategoriennamen oder den Namen eines vordefinierten Pakets an. Klicken Sie auf den Pfeil auf der rechten Seite, um eine PL/SQL-Kategorie oder ein vordefiniertes Paket auszuwählen.
Listenbereich	Zeigt die einzelnen Sprachelemente in einer ausgewählten PL/SQL-Kategorie oder die Konstrukte in einem ausgewählten vordefinierten Paket an. Das erste Element in der Liste ist standardmäßig markiert (ausgewählt).  Klicken Sie auf ein Sprachelement oder Konstrukt, um es auszuwählen und die vollständige Syntax im Anzeigebereich anzuzeigen.
Anzeigebereich	Zeigt die vollständige Syntax eines ausgewählten PL/SQL-Sprachelements oder -Konstrukts an. Reservierte Wörter stehen in Objekten in Großbuchstaben. Nachdem die Syntax in den Editor eingefügt wurde, ersetzen Sie Objekte in Kleinbuchstaben, die nicht in Kommentaren stehen, durch die entsprechenden Werte.  Objekte in Kleinbuchstaben innerhalb von Kommentaren sind optional.
Einfügen	Klicken Sie, um das ausgewählte Objekt in dem Listenbereich an die aktuelle Cursorposition im aktiven Editor-Fenster zu kopieren.
Schließen	Klicken Sie, um die Syntaxpalette zu schließen.
Hilfe	Zeigt dieses Hilfethema an.


Syntaxpalette anzeigen

So zeigen Sie die Syntaxpalette an:

  Wählen Sie Programm [image] Syntaxpalette.


Syntaxpalette schließen

So schließen Sie die Syntaxpalette:

  Klicken Sie auf die Schaltfläche Schließen.


Syntax in einen Editor einfügen

  Verwandte Themen

So fügen Sie Syntax in einen Editor ein:

1	Prüfen Sie, ob der Programmblock-Editor oder Gespeicherter Programmblock-Editor das aktuelle (zuletzt ausgewählte) Fenster ist.

2	Setzen Sie den Cursor an der Stelle in den Editor, an der die Syntax eingefügt werden soll.

3	Klicken Sie in der Syntaxpalette auf das Register PL/SQL oder das Register Vordefinierte Prozeduren.

4	Wählen Sie eine PL/SQL-Kategorie oder ein vordefiniertes Paket aus der Dropdown-Liste.

Wenn Sie auf eine Kategorie oder ein Paket klicken, werden die PL/SQL-Sprachelemente oder PL/SQL-Konstrukte, die zur Auswahl verfügbar sind, in dem darunterstehenden Listenbereich angezeigt.

5	Wählen Sie ein PL/SQL-Sprachelement oder -Konstrukt in dem Listenbereich.

Wenn Sie auf ein PL/SQL-Sprachelement oder -Konstrukt klicken, wird die Syntax in dem Anzeigebereich unter dem Listenbereich angezeigt.

6	Klicken Sie auf Einfügen, um die ausgewählte Syntax zu kopieren.

Die ausgewählte PL/SQL-Syntax mit Platzhaltern wird bei der aktuellen Cursorposition in den aktiven Editor eingefügt.  Reservierte Wörter werden in Großbuchstaben geschrieben.

Ersetzen Sie alle Platzhalter in Kleinbuchstaben, die in innerhalb von Kommentaren stehen, durch die entsprechenden Werte. Objekte innerhalb von Kommentaren sind optional.


Liste der PL/SQL-Kategorien

Abfragen

Benutzertypen

Blöcke

Cursor

Datensätze

Datentypen

Exceptions

Flußsteuerung

Funktionen

Kommentare

Loops

Objekttypen

Pakete

PL/SQL-Tabellen

Prozeduren

SQL-Cursor

Tabellen/Ansichten

Transaktionen

Variablen


Liste der vordefinierten Pakete

EXEC_SQL

TOOL_SQL

ORA_FFI

ORA_DE

ORA_PROF

ORA_NLS

TOOL_RES

TOOL_ENV

TEXT_IO

TOOL_ERR

STPROC

LIST

OLE2

DDE

DEBUG

PLITBLM

STANDARD


Beispiele

  Alphabetische Liste

Beispiele für Interpreter-Befehle

Beispiele für National Language Support

Beispiele für vordefinierte Prozeduren von Forms Developer

Beispiele für Oracle8-Objekte

Beispiele für die Konvertierung von PL/SQL V1


Vordefinierte Prozeduren

  Alphabetische Liste 	  Verwandte Themen

Oracle verfügt über eine Reihe von vordefinierten Prozeduren, die Sie beim Generieren und Debuggen von PL/SQL-basierten Anwendungen benutzen können.

Ihr PL/SQL-Code kann die Prozeduren, Funktionen und Exceptions in den folgenden client-seitigen vordefinierten Prozeduren benutzen:

Vordefinierte Prozeduren von Forms Developer


Bereitgestellte Prozeduren
Bereitgestellte Oracle-Prozeduren

  Verwandte Themen

Mit dem Oracle-Datenbankserver werden verschiedene Prozeduren bereitgestellt, entweder um die Funktionalität der Datenbank zu erweitern oder um PL/SQL den Zugriff auf einige Funktionen von SQL zu ermöglichen.

Oracle stellt z.B. die folgenden vordefinierten Prozeduren bereit, mit denen PL/SQL auf einige Funktionen von SQL zugreifen kann:

•	DBMS_DDL

•	DBMS_SESSION

•	DBMS_TRANSACTION

•	DBMS_UTILITY

Die Prozeduren DBMS_* und UTL_* sind in Oracle enthalten, um die Funktionalität der Datenbank zu erweitern. So können Sie z.B. mit dem Paket DBMS_OUTPUT Meldungen ausTriggern, Prozeduren und Paketen ausgeben. Dies eignet sich besonders für die Anzeige von PL/SQL-Debugging-Informationen.

Server-seitige Prozeduren werden automatisch mit dem Skript CATPROC.SQL auf dem Server installiert. Weitere Informationen über die DBMS-Gruppe und andere bereitgestellte Prozeduren finden Sie in Oracle8 Application Developer's Guide.


Unterstützung von Oracle8-Objekten im Objektnavigator

Die Oracle8-Funktionalität im Objektnavigator ermöglicht den Zugriff auf Objekt-Datentypen, so daß Sie einfacher mit Oracle8-Daten programmieren können. Mit der neuen Unterstützung von Oracle8-Objekten können Sie benutzerdefinierte Datentypen in einem hierarchischen Format anzeigen. Außerdem können Sie Tabellen, Ansichten, Spalten, Trigger, Attribute und Methoden suchen und anzeigen, die mit den benutzerdefinierten Datentypen verknüpft sind.

Der Knoten Datenbankobjekte enthält die Schemata und deren Objekte, auf die Sie in der gerade angemeldeten Datenbank zugreifen können. Wenn Sie bei einer Oracle8-Datenbank angemeldet sind, zeigt der Objektnavigator verfügbare benutzerdefinierte Datentypen (mit deren Attributen und Methoden) im Knoten Typen innerhalb jedes Schemas an. Mit den benutzerdefinierten Datentypen verknüpfte Tabellen, Ansichten, Spalten und Trigger werden in den Knoten Tabellen und Ansichten angezeigt.

Mit der Oracle8-Funktionalität im Objektnavigator können Sie insbesondere folgende Elemente anzeigen und suchen:

•	Objekttabellen und Spaltenobjekte im Knoten Tabellen

•	Objektansichten im Knoten Ansichten

•	Instead-Of-Trigger für Ansichten im Knoten Ansichten

•	Objekttypen, Tabellentypen und variierende Array-Typen im Knoten Typen

•	Attribute und Methoden von Objekttypen im Knoten Typen

Mit Symbolen können Sie relationale Objekte und Oracle8-Objekte im Objektnavigator unterscheiden. So werden z.B. unterschiedliche Symbole zur Darstellung von normalen, relationalen und Objekt-Tabellen sowie zur Darstellung von normalen und Objektansichten verwendet.

Weitere Informationen über benutzerdefinierte Oracle8-Datentypen finden Sie in der Oracle8-Dokumentation.

So erfahren Sie mehr über

Knoten Objekttyp

Knoten Tabellentyp

Knoten Variierender Array-Typ

Knoten Spaltenobjekt

Knoten Objekttabelle

Knoten Objektansicht

Alles einblenden

Symbole für Oracle8-Objekte


Knoten Objekttyp

  Beispiel	  Verwandte Themen

Objekttypen werden in dem Knoten Typen im Objektnavigator angezeigt. Ein Objekttyp-Knoten stellt einen Typ dar, der von der SQL-Anweisung CREATE TYPE AS OBJECT erstellt wurde. Der Objekttyp wird im Objektnavigator wie folgt dargestellt:

Objekttyp-Name ( Objekttyp [ * ] & -Rumpf [ * ] )

Die Beschriftung Objekttyp wird angezeigt, wenn eine Anweisung CREATE TYPE AS OBJECT an die Datenbank ausgegeben wurde. Ein Stern (*) wird angezeigt, wenn die Typspezifikation ungültig oder der Typ unvollständig ist. Ein unvollständiger Typ ist ein Platzhalter zur rekursiven Definition von Typen.

Die Beschriftung Objektrumpf wird angezeigt, wenn ein Typrumpf mit der Anweisung CREATE TYPE BODY erstellt wurde. Ein Stern (*) wird angezeigt, wenn der Typrumpf ungültig ist.

Wenn sowohl Objekttyp als auch Objektrumpf erfolgreich erstellt wurden, wird die Beschriftung in Form von Objekttyp & -rumpf angezeigt.

Bei Objekttyp-Knoten handelt es sich um zusammengesetzte Knoten. Sie verfügen über zwei Unterknoten, Attribute und Methoden. Ein Objekttyp-Knoten kann nur eingeblendet werden, wenn eine gültige Typspezifikation vorhanden ist.

Die Attribute eines Objekttyps werden als Knoten unter dem Unterknoten Attribute dargestellt.

Die Methoden eines Objekttyps werden als Knoten unter dem Unterknoten Methoden dargestellt. Die Methoden werden als Prozeduren und Funktionen angezeigt. Die Methodenbeschriftungen werden im Objektnavigator wie folgt dargestellt:

Methodenname (Prozedur)

und

Methodenname (Funktion)

Wenn eine Zuordnungs- oder Sortiermethode für einen Objekttyp angegeben wird, wird die Methodenbeschriftung wie folgt angezeigt:

Methodenname (Zuordnen-Funktion)

oder

Methodenname (Sortieren-Funktion)

Hinweis:  Die Argumentliste einer Methode wird nicht angezeigt.


Beispiel für den Knoten Objekttyp

  Verwandte Themen 	   Alle Beispiele

Die folgende SQL-Anweisung erstellt den Objekttyp emp_typ.

CREATE TYPE emp_typ AS OBJECT
  (ename VARCHAR2(30), esalary NUMBER(5,2),
  MEMBER PROCEDURE raise(amount NUMBER),
  MEMBER FUNCTION get_salary RETURN NUMBER,
  MAP MEMBER FUNCTION compare RETURN NUMBER);

Der Unterbaum für emp_typ ist:

- Types
  - EMP_TYP (Object Type)
    - Attributes
        ENAME (CHAR)
        ESALARY (NUMBER)
    - Methods
        COMPARE (Map Function)
        GET_SALARY (Function)
        RAISE (Procedure)


Knoten Tabellentyp

  Beispiel	  Verwandte Themen

Tabellentypen werden in dem Knoten Typen im Objektnavigator angezeigt. Ein Tabellentyp-Knoten stellt einen Typ dar, der von der SQL-Anweisung CREATE TYPE AS TABLE erstellt wurde. Der Tabellentyp wird im Objektnavigator wie folgt dargestellt:

Tabellentyp-Name (TABLE OF Tabellenuntertyp-Name)

Der Tabellentyp-Knoten kann nicht eingeblendet werden, wenn es sich bei dem Untertyp um einen vordefinierten Typ handelt. Wenn der Untertyp ein Objekttyp oder ein REF-Objekt ist, werden die Attribute des Objekts als Unterknoten angezeigt.


Beispiel für den Knoten Tabellentyp

  Verwandte Themen 	   Alle Beispiele

Die folgenden SQL-Anweisungen erstellen den Objekttyp emp_typ und den Tabellentyp emp_tbl.

CREATE TYPE emp_typ AS OBJECT
  (ename VARCHAR2(30), esalary NUMBER(5,2),
  MEMBER PROCEDURE raise(amount NUMBER),
  MEMBER FUNCTION get_salary RETURN NUMBER,
  MAP MEMBER FUNCTION compare RETURN NUMBER);

CREATE TYPE emp_tbl AS TABLE OF emp_typ;

Der Unterbaum für emp_tbl ist:

- Types
  - EMP_TBL (TABLE OF EMP_TYP)
      ENAME (CHAR)
      ESALARY (NUMBER)
  + EMP_TYP


Knoten Variierender Array-Typ

  Beispiel	  Verwandte Themen

Variierende Array-Typen werden in dem Knoten Typen im Objektnavigator angezeigt. Ein Knoten Variierender Array-Typ stellt einen Typ dar, der von der SQL-Anweisung CREATE TYPE AS VARYING ARRAY erstellt wurde. Der Variierende Array-Typ wird im Objektnavigator wie folgt dargestellt:

Variierender-Array-Typ-Name (VARRAY (Größe) Variierender-Array-Untertyp-Name)

Der Knoten Variierender Array-Typ kann nicht eingeblendet werden, wenn es sich bei dem Untertyp um einen vordefinierten Typ handelt. Wenn der Untertyp ein Objekttyp oder ein REF-Objekt ist, werden die Attribute des Objekts als Unterknoten angezeigt.


Beispiel für den Knoten Variierender Array-Typ

  Verwandte Themen 	   Alle Beispiele

Die folgenden SQL-Anweisungen erstellen den Objekttyp emp_typ und den Variierenden Array-Typ emp_ary.

CREATE TYPE emp_typ AS OBJECT
  (ename VARCHAR2(30), esalary NUMBER(5,2),
  MEMBER PROCEDURE raise(amount NUMBER),
  MEMBER FUNCTION get_salary RETURN NUMBER,
  MAP MEMBER FUNCTION compare RETURN NUMBER);

CREATE TYPE emp_ary AS VARRAY(7) OF emp_typ;

Der Unterbaum für emp_ary ist:

- Types
  - EMP_ARY (VARRAY(7) OF EMP_TYP)
      ENAME (CHAR)
      ESALARY (NUMBER)
  + EMP_TYP


Knoten Spaltenobjekt

  Beispiele	  Verwandte Themen

Spaltenobjekte werden als Knoten in dem Knoten Spalten angezeigt. Jedes Objekt ist mit einem Namen und dem Typ in Klammern beschriftet. Bei Spaltenobjekt-Knoten handelt es sich um zusammengesetzte Knoten, wobei die Attribute des Typs als Unterknoten angezeigt werden.

Es gibt vier Untertypen von Spaltenobjekten - verschachtelter Objekttyp, Tabellentyp, Variierender Array-Typ und REF-Objekttyp. Spaltenobjekte sind im Objektnavigator wie folgt beschriftet:

Spaltenname (verschachtelter_Objekttyp)

Spaltenname (Tabellentyp-Name:TABLE OF Tabellenuntertyp-Name)

Spaltenname (Variierender_Array-Typ-Name: VARRAY(Größe) OF Variierender_Array-Untertyp-Name)

Spaltenname (REF Referenz-Typ-Name)


Beispiele für den Knoten Spaltenobjekt

  Verwandte Themen 	   Alle Beispiele

In dem folgenden Beispiel ist die Spalte emp_col von Tabelle emp_tab ein verschachteltes Objekt vom Typ emp_typ.

CREATE TYPE emp_typ AS OBJECT (ename VARCHAR2(30), esalary NUMBER(5,2));
CREATE TABLE emp_tab (emp_col emp_typ, dept VARCHAR2(2));

Der Unterbaum für emp_tab ist:

- Tables
  - EMP
    + Trigger
    - Columns
      - EMP_COL (EMP_TYP)
         ENAME (CHAR)
         ESALARY (NUMBER)
        DEPT (CHAR)

Im nächsten Beispiel ist die Spalte emps von Tabelle dept_tab eine verschachtelte Tabelle mit dem Untertyp emp_tab. Die verschachtelte Tabelle enthält Zeilen vom Typ emp_typ.

CREATE TYPE emp_typ AS OBJECT (ename (CHAR(30), esalary NUMBER);
CREATE TYPE emp_tab AS TABLE OF emp_typ;
CREATE TABLE dept (dname CHAR(20), emps emp_tab);

Der Unterbaum für dept_tab is:

- Tables
  - DEPT
    + Triggers
    - Columns
        DNAME (CHAR)
      - EMPS (EMP_TAB: TABLE OF EMP_TYP)
         ENAME (CHAR)
         ESALARY (NUMBER)

Im folgenden Beispiel ist die Spalte emps von Tabelle dept_tab_ary ein Variierendes Array mit dem Untertyp emp_ary. Das Variierende Array enthält Zeilen vom Typ emp_typ.

CREATE TYPE emp_typ AS OBJECT (ename (CHAR(30), esalary NUMBER);
CREATE TYPE emp_ary AS VARRAY (30) OF emp_typ;
CREATE TABLE dept (dname CHAR(20), emps emp_ary);

Der Unterbaum für dept_tab_ary ist:

- Tables
  - DEPT
    + Triggers
    - Columns
        DNAME (CHAR)
      - EMPS (EMP_ARY: VARRAY(30) OF EMP_TYP)
         ENAME (CHAR)
         ESALARY (NUMBER)

Im nächsten Beispiel ist die Spalte manager von Tabelle dept_ref ein referenziertes Objekt vom Typ emp_typ.

CREATE TYPE emp_typ AS OBJECT (ename (CHAR(30), esalary NUMBER);
CREATE TABLE dept (dname CHAR(30), manager REF emp_typ);

Der Unterbaum für dept_ref ist:

- Tables
  - DEPT
    + Triggers
    - Columns
        DNAME (CHAR)
      - MANAGER (REF EMP_TYP)
         ENAME (CHAR)
         ESALARY (NUMBER)


Knoten Objekttabelle

  Beispiel	  Verwandte Themen

Objekttabellen werden in dem Knoten Tabellen im Objektnavigator angezeigt. Ein Objekttabellen-Knoten stellt eine Tabelle dar, die mit der SQL-Anweisung CREATE TABLE OF erstellt wurde. Objekttabellen-Knoten sind im Objektnavigator wie folgt beschriftet:

Objekttabellen-Name (Objekttyp-Name)

Jeder Objekttabellen-Knoten hat zwei Unterknoten, Trigger und Spalten. Der Unterknoten Trigger enthält alle mit der Objekttabelle verknüpften Trigger. Diese Trigger werden genau wie Trigger angezeigt, die mit normalen, relationalen Tabellen verknüpft sind. Der Knoten Spalten enthält alle relationalen Spalten und Spaltenobjekte, die mit einer bestimmten Objekttabelle verknüpft sind. Jede Spalte ist mit einem Namen und dem Typ in Klammern beschriftet.


Beispiel für den Knoten Objekttabelle

  Verwandte Themen 	   Alle Beispiele

Die folgenden SQL-Anweisungen erstellen den Objekttyp person_typ und die Objekttabelle person_tab.

CREATE TYPE person_typ AS OBJECT
  (name VARCHAR2(30), address VARCHAR2(60));

CREATE TABLE person_tab OF person_typ;

Der Unterbaum für person_tab ist:

- Tables
  - PERSON_TAB (PERSON_TYP)
    + Triggers
    - Columns
        NAME (CHAR)
        ADDRESS (CHAR)


Knoten Objektansicht

  Beispiel	  Verwandte Themen

Objektansichten werden in dem Knoten Ansichten im Objektnavigator angezeigt. Ein Objektansicht-Knoten stellt eine Ansicht dar, die mit der Klausel OF object_type erstellt wurde. Objektansicht-Knoten sind mit einem Namen und dem Typ in Klammern beschriftet. Die Attribute des Objekts werden nicht angezeigt.

Jeder Objektansicht-Knoten hat zwei Unterknoten, Trigger und Spalten. Der Unterknoten Trigger enthält alle Trigger, die mit der Objektansicht verknüpft sind, einschließlich Instead Of-Triggern. Wenn ein Instead Of-Trigger mit einer Ansicht verknüpft ist, wird die Beschriftung folgendermaßen angezeigt:

Trigger-Name (INSTEAD OF Trigger-Anweisungen)


Beispiel für den Knoten Objektansicht

  Verwandte Themen 	   Alle Beispiele

Die folgenden SQL-Anweisungen erstellen eine Objektansicht.

CREATE TYPE emp_typ AS OBJECT (ename CHAR(30)), dname CHAR(20));
CREATE TABLE emp (ename CHAR(30), dname CHAR(20));
CREATE VIEW dev_emp OF emp_typ AS
  SELECT ename, dname FROM emp WHERE dname='DEVELOPMENT';

Der Unterbaum für die Objektansicht dev_emps ist:

- Views
  - DEV_EMP (EMP_TYP)
    + Triggers
    + Columns


Alle Oracle8-Objektknoten einblenden

  Verwandte Themen

Der Vorgang Alles einblenden im Objektnavigator blendet die Oracle8-Datentyp- und Attributknoten nicht rekursiv ein.

Wenn z.B. ein Attribut mit der Bezeichnung manager und dem Typ emp_typ als untergeordnetes Attribut von einem anderen Typ emp_typ angezeigt wird, wird das Attribut manager mit Alles einblenden nicht eingeblendet.


Beispiele für Oracle8-Objekte

  Verwandte Themen 	   Alle Beispiele

Objekttyp

Tabellentyp

Variierender Array-Typ

Spaltenobjekt

Objekttabelle

Objektansicht


Beispiele für die PL/SQL V1-Konvertierung

  Verwandte Themen 	   Alle Beispiele

Standardausdrücke entfernen

NULL zu RETURN hinzufügen

Veraltete vordefinierte Prozeduren ersetzen

Length-Funktion

NULL an überladenes Unterprogramm übergeben

Fehlende RETURN-Anweisung

Prozedurnamen eindeutig in einem Paket umbenennen

Paket-Präfix entfernenx

Reservierte Wörter

Längen-Integritätsregeln entfernt

Variablen-Deklarationen