Installation

Titel der Dokumentation | Inhalt
Installationsleitfaden Datenbanksoftware | Standardinstallation und -deinstallation der gesamten MaxDB Software
Installationsleitfaden Web Tools | Installation der MaxDB Web Tools
Anschluss Externer Sicherungswerkzeuge | Konfiguration der MaxDB-Software für die Verwendung verschiedener externer Sicherungswerkzeuge
Installationshandbuch | Installation, Update und Deinstallation von Installationsprofilen und einzelnen Softwarekomponenten, Aktualisierung von Datenbankinstanzen inklusive Software


Installationsleitfaden Datenbanksoftware

Einsatzmöglichkeiten

Diese Dokumentation beschreibt die Installation und Deinstallation der gesamten MaxDB-Software der Version 7.5.x, nachfolgend Standardinstallation und Standard-Deinstallation genannt.

Der vorliegende Installationsleitfaden Datenbanksoftware ist ein Auszug aus dem Installationshandbuch und erläutert nur einen Teil der möglichen Installationsverfahren. Er ist ausschließlich für jene Benutzer bestimmt, die außerhalb eines SAP-Systems die MaxDB-Datenbanksoftware komplett installieren oder komplett deinstallieren wollen.

Sie haben auch die Möglichkeit, einzelne Komponenten der Datenbanksoftware zu installieren, oder zu deinstallieren. Dabei müssen Sie die zwischen den Komponenten bestehenden Abhängigkeiten berücksichtigen, um die Funktionsfähigkeit Ihrer Softwareinstallation zu gewährleisten.

Ebenso ist es möglich, Datenbanksoftware-Installationen mit und ohne Datenbankinstanzen zu aktualisieren.

Eine Installation auf Linux ist auch mit Hilfe des Red Hat Package Manager möglich.

Verwenden Sie dazu die Beschreibungen im Installationshandbuch.

Sie können die Datenbanksoftware unter der Adresse http://www.mysql.com/downloads kostenlos herunterladen.

Siehe auch:

Unterstützte Betriebssysteme und Plattformen

Einschränkungen

Dieser Leitfaden gilt nicht für die Installation und Deinstallation der MaxDB-Datenbanksoftware in SAP-Systemen.

Die Installation und Deinstallation der für SAP-Systeme erforderlichen Datenbanksoftware ist in SAP-spezifischen Installationsleitfäden beschrieben. Diese Leitfäden finden SAP-Kunden auf dem SAP-Service-Marktplatz unter http://service.sap.com. Für die Aktualisierung von Datenbankinstanzen inklusive Software in SAP-Systemen verwenden Sie das Installationshandbuch.

Einführungshinweise

Sie verwenden das Programm SDBINST für die Installation und das Programm SDBUNINST für die Deinstallation der MaxDB-Software. Diese Programme sind Bestandteil des Datenbanksoftware-Pakets.

Allgemeine Informationen zum Datenbanksystem finden Sie in der Dokumentation Datenbankverwaltung .

Standardinstallation mit SDBINST

Standard-Deinstallation mit SDBUNINST


Standardinstallation mit SDBINST (MaxDB: Installationsleitfaden Datenbanksoftware)

Standardinstallation mit SDBINST

Das Programm SDBINST für die Installation der Datenbanksoftware wird für die in diesem Dokument beschriebene Standardinstallation interaktiv eingesetzt.

SDBINST kann auch für die Installation im Hintergrund verwendet werden. Diese Vorgehensweise ist im Installationshandbuch beschrieben.

Standardinstallation auf UNIX

Standardinstallation auf Linux (Intel)

Standardinstallation auf Microsoft Windows


Standardinstallation auf UNIX (MaxDB: Installationsleitfaden Datenbanksoftware)

Standardinstallation auf UNIX

Verwendung

Sie installieren das Installationsprofil all der Datenbanksoftware auf dem Betriebssystem UNIX. Alle dafür notwendigen Informationen werden während des Installationsvorganges vom Programm abgefragt.

Der Installationsvorgang wird vom System protokolliert.

Konventionen

Variablen

Voraussetzungen

· Sie befinden sich in einer root-Shell.

· Sie haben das Installationspaket heruntergeladen und entpackt (Herunterladen und Entpacken der Software auf UNIX).

Vorbereitende Schritte

Wenn die nachfolgend geschilderten Bedingungen für Ihr System zutreffen, müssen Sie vor der Installation noch die genannten Schritte ausführen:

· Das Installationsprogramm wird die erforderlichen Services sql6, sql30 und sapdbni72 in die Datei /etc/services eintragen, wenn sie dort noch nicht vorhanden sind. Wenn für Ihr System die Services zentral im Netz verwaltet werden (NIS), müssen Sie diese wie folgt dort eintragen:
sql6 7210/tcp
sql30 7200/tcp
sapdbni72 7269/tcp

· Bei der Installation muss die Datenbanksoftware einem speziellen Betriebssystembenutzer <sdb_user> als Eigentümer der Software sowie der Gruppe <sdba_group> zugeordnet werden.
Gruppe und Eigentümer sollten zuvor definiert worden sein. Nur Benutzer mit den entsprechenden Rechten können später Datenbankinstanzen erzeugen (siehe auch Berechtigungskonzept für UNIX-Betriebssysteme für Softwareversionen ab 7.5.00).
Der spezielle Betriebssystembenutzer darf sich nicht an das Betriebssystem anmelden. Entziehen Sie ihm deshalb diese Berechtigung. Hinweise dazu finden Sie in Ihrer Betriebssystemdokumentation (lock account).

Wenn Benutzergruppen und Eigentümer auf Ihrem Rechner lokal verwaltet werden, dann empfiehlt es sich, dem Betriebssystem vor Beginn der Installation die Namen der Benutzergruppen und des Eigentümers bekannt zu machen. Sie können diese aber auch während des Installationsvorganges angeben.
Wenn Benutzergruppen und Eigentümer für Ihr System zentral im Netz verwaltet werden, müssen Sie diese dort vor Beginn der Installation anlegen. Erläuterungen über das Anlegen von Betriebssystembenutzern und Benutzergruppen finden Sie in Ihrer Betriebssystemdokumentation.

Die primäre Gruppe (primary group) des Eigentümers der Datenbanksoftware ist die Administratorengruppe.

Aus Gründen der Übersichtlichkeit und für einen eventuellen Supportfall empfehlen wir, die Namen sdb und sdba für den Eigentümer und die Gruppe zu verwenden.

· Wenn der Pfad <independent_program_path>/bin noch nicht in Ihre Umgebungsvariable PATH eingetragen ist, fügen Sie ihn jetzt hinzu. (Hinweise zum Setzen von Umgebungsvariablen finden Sie in Ihrer Betriebssystemdokumentation.)

Vorgehensweise

...

1. Wechseln Sie in das Verzeichnis
maxdb-all-<os>-32|64bit-<arch>-<version>_<build>,
in das Sie das Installationspaket entpackt haben.

2. Geben Sie ./SDBINST ein, um das Installationsprogramm aufzurufen.

3. Das System schlägt Ihnen die möglichen Installationsprofile vor. Geben Sie die ID für das Installationsprofil all ein und bestätigen Sie Ihre Eingabe.

4. Sie werden vom System aufgefordert, folgende Angaben zu machen:

¡ den speziellen Betriebssystembenutzer <sdb_user>, also den Eigentümer der Datenbanksoftware

¡ die Gruppe <sdba_group>

Wenn die Gruppen und der Eigentümer bereits angelegt sind, geben Sie die gültigen Werte an und bestätigen diese. Das System vergleicht Ihre Angaben mit den lokal oder im Netz vorhandenen Werten. Falls Ihre Angaben mit diesen Werten nicht übereinstimmen, bricht die Installation ab.

Wenn die Gruppe und der Eigentümer noch nicht angelegt sind, werden Sie vom System gefragt, ob Sie diese anlegen wollen. Geben Sie die gewünschten Werte an oder bestätigen Sie die Systemvorschläge. Ihre Eingaben legen die Gruppen und den Eigentümer lokal auf Ihrem Rechner an.

5. Das System prüft nun, ob es bereits Installationen des Datenbanksystems auf Ihrem Rechner gibt.

¡ Wenn es auf Ihrem Rechner bereits Installationen des Datenbanksystems gibt, erhalten Sie eine Liste aller vorhandenen Installationen angezeigt. Sie werden aufgefordert, die ID der Installation anzugeben, die Sie aktualisieren möchten.
Um eine Neuinstallation der Datenbanksoftware parallel zu vorhandenen Installationen durchzuführen, geben Sie none an. Sie erhalten dann die Möglichkeit, einen von den vorhandenen Installationen verschiedenen Installationspfad anzugeben. Definieren Sie einen Installationspfad parallel zu den vorhandenen Installationspfaden.

¡ Wenn es auf Ihrem Rechner noch keine Installation der Datenbanksoftware gibt, werden nun nacheinander die im Installationsprofil enthaltenen Softwarekomponenten installiert. Sie werden vom System aufgefordert, folgende Pfade anzugeben:

· Pfad für die Ablage der Daten, Konfigurationen und Arbeitsverzeichnisse der Datenbankinstanzen und -anwendungen (Vorschlagswert des Systems ist /var/opt/sdb/data)

· Pfad für die Ablage der von den Datenbankinstanzen und -anwendungen gemeinsam genutzten Programme und Bibliotheken (Vorschlagswert des Systems ist /opt/sdb/programs)

· Pfad für die Ablage der von der Datenbankversion abhängigen Server-Software
Diese Pfadangabe muss eindeutig sein. Es können viele Verzeichnisse mit verschiedenen Versionen nebeneinander existieren (Vorschlagswert des Systems ist /opt/sdb/<version>).

Geben Sie die gewünschten Pfade an oder bestätigen Sie die Systemvorschläge.

6. Wenn es bislang auf Ihrem Rechner noch keine Installation der Datenbanksoftware gab, erweitern Sie für alle Benutzer, die das Datenbanksystem benutzen wollen, die Umgebungsvariable PATH um den Eintrag <independent_program_path>/bin.

Sie erhalten eine Meldung über den erfolgreichen Abschluss der Installation.

Ergebnis

Das Installationsprofil all der Datenbanksoftware ist nun auf Ihrem Rechner in der neuen Version installiert und registriert. Das Ergebnis der Installation können Sie anhand des Protokolls überprüfen (Protokollierung auf UNIX).

Mit Hilfe des Database Manager können Sie neue Datenbankinstanzen anlegen

(Siehe:

· Anlegen einer Datenbankinstanz in der Dokumentation Database Manager CLI

· oder Dokumentation Web DBM)


Herunterladen und Entpacken der Software auf UNIX (MaxDB: Installationsleitfaden Datenbanksoftware)

Herunterladen und Entpacken der Software auf UNIX

Verwendung

Laden Sie die neueste Version der Datenbanksoftware für Ihr Betriebssystem von der Adresse http://www.sapdb.org herunter.

Beachten Sie die jeweiligen Hinweise zur Plattenkapazität und den getesteten Betriebssystemversionen.

Vorgehensweise

...

1. Wählen Sie das Ihrer Betriebssystemarchitektur entsprechende Datenbanksoftware-Paket für das Installationsprofil all
maxdb-all-<os>-32|64bit-<arch>-<version>_<build>.<tgz>

2. Laden Sie das Softwarepaket herunter und entpacken Sie es mit folgendem Kommando in ein beliebiges lokales Verzeichnis:
tar xvzf maxdb-all-<os>-32|64bit-<arch>-<version>_<build>

Das System legt in diesem lokalen Verzeichnis ein Unterverzeichnis
maxdb-all-<os>-<32|64>bit-<arch>-<version>
an und legt darin die Datenbanksoftware ab.


Protokollierung auf UNIX (MaxDB: Installationsleitfaden Datenbanksoftware)

Protokollierung auf UNIX

Der gesamte Installationsvorgang wird protokolliert. Das Protokoll wird vom System unter folgendem Pfad abgelegt:

<independent_data_path>/wrk/MAXDBall_install-<date>-<time>.log

Wenn im Falle eines Abbruchs der Installation das Verzeichnis <independent_data_path> noch nicht bekannt ist, wird das Protokoll im aktuellen Verzeichnis erstellt.

Standardinstallation auf UNIX


Standardinstallation auf Linux (Intel) (MaxDB: Installationsleitfaden Datenbanksoftware)

Standardinstallation auf Linux (Intel)

Verwendung

Sie installieren/aktualisieren alle Komponenten der Datenbanksoftware auf dem Betriebssystem Linux.
Wenn Sie nur einzelne Komponenten installieren/aktualisieren wollen, müssen Sie die zwischen Softwarekomponenten bestehenden Abhängigkeiten berücksichtigen, um die Funktionsfähigkeit der Softwareinstallation zu gewährleisten. Weitere Informationen dazu finden Sie im Installationshandbuch.

Wenn es auf Ihrem Rechner bereits eine Installation der Datenbanksoftware gibt, die mit Hilfe des Red Hat Package Manager (Installation mit rpm-Paket) ausgeführt wurde, können Sie weitere Installationen nur noch mit diesem Programm durchführen. Weitere Installationen mit Hilfe des Programms SDBINST (Installation mit tgz-Paket) sind nicht mehr möglich.

Siehe Installationshandbuch, Abschnitt Installation/Update mit dem Red Hat Package Manager.

Vorgehensweise

Verfahren Sie, wie im Abschnitt Standardinstallation auf UNIX beschrieben.


Standardinstallation auf Microsoft Windows (MaxDB: Installationsleitfaden Datenbanksoftware)

Standardinstallation auf Microsoft Windows

Verwendung

Sie installieren das Installationsprofil all der Datenbanksoftware auf dem Betriebssystem Microsoft Windows. Alle dafür notwendigen Informationen werden während des Installationsvorganges vom Programm abgefragt.

Der Installationsvorgang wird vom System protokolliert.

Konventionen

Variablen

Voraussetzungen

· Sie haben für Ihren Rechner Administrationsrechte.

· Sie haben das Installationspaket heruntergeladen und entpackt (Herunterladen und Entpacken der Software auf Microsoft Windows).

Vorgehensweise

...

1. Öffnen Sie das Command Prompt und navigieren Sie in das lokale Verzeichnis, das die Installationsdateien enthält:
maxdb-all-win-<32|64>bit-<arch>-<version>,

2. Geben Sie sdbinst ein, um das Installationsprogramm aufzurufen.

3. Das System schlägt Ihnen die möglichen Installationsprofile vor. Geben Sie die ID für das Installationsprofil all ein und bestätigen Sie Ihre Eingabe.

4. Das System prüft nun, ob es bereits Installationen des Datenbanksystems auf Ihrem Rechner gibt.

¡ Wenn es auf Ihrem Rechner bereits Installationen des Datenbanksystems gibt, erhalten Sie eine Liste aller vorhandenen Installationen angezeigt.
Um eine Neuinstallation der Datenbanksoftware parallel zur vorhandenen Installation durchzuführen, geben Sie none an. Sie erhalten dann die Möglichkeit, einen neuen Installationspfad anzugeben. Definieren Sie einen Installationspfad parallel zu vorhandenen Installationspfaden.

¡ Wenn es auf Ihrem Rechner noch keine Installation des Datenbanksystems gibt, werden nun nacheinander die im Installationsprofil enthaltenen Softwarekomponenten installiert. In Abhängigkeit vom gewählten Installationsprofil werden Sie vom System aufgefordert, folgende Pfade anzugeben:

§ Pfad für die Ablage der Daten, Konfigurationen und Arbeitsverzeichnisse von Datenbankinstanzen und -anwendungen (Vorschlagswert des Systems ist C:\Program Files\sdb\data).

§ Pfad für die Ablage der von den Datenbankinstanzen und -anwendungen gemeinsam genutzten Programme und Bibliotheken (Vorschlagswert des Systems ist C:\Program Files\sdb\programs).

§ Pfad für die Ablage der von der Datenbankversion abhängigen Server-Software
Diese Pfadangabe muss eindeutig sein. Es können viele Verzeichnisse mit verschiedenen Versionen nebeneinander existieren (Vorschlagswert des Systems ist C:\Program Files\sdb\<version>).

Geben Sie die gewünschten Pfade an oder bestätigen Sie die Systemvorschläge.

Sie erhalten eine Meldung über den erfolgreichen Abschluss der Installation.

5. Wenn es auf Ihrem Rechner bislang noch keine Installation des Datenbanksystems gab, empfehlen wir Ihnen, nun Ihren Rechner herunterzufahren und neu zu starten, um dem System den <independent_program_path> bekannt zu machen.

Ergebnis

Das Installationsprofil all der Datenbanksoftware ist nun auf Ihrem Rechner in der neuen Version installiert und registriert. Das Ergebnis der Installation können Sie anhand des Protokolls überprüfen (Protokollierung auf Microsoft Windows).

Mit Hilfe des Database Manager können Sie neue Datenbankinstanzen anlegen

(Siehe:

· Anlegen oder Initialisieren einer Datenbankinstanz in der Dokumentation Database Manager GUI

· Anlegen einer Datenbankinstanz in der Dokumentation Database Manager CLI

· oder Dokumentation Web DBM)


Herunterladen und Entpacken der Software auf Microsoft Windows (MaxDB: Installationsleitfaden Datenbanksoftware)

Herunterladen und Entpacken der Software auf Microsoft Windows

Verwendung

Laden Sie die neueste Datenbanksoftware für Ihr Betriebssystem von der Adresse http://www.sapdb.org herunter.

Beachten Sie die jeweiligen Hinweise zur Plattenkapazität und den getesteten Betriebssystemversionen.

Vorgehensweise

...

1. Wählen Sie das Ihrer Betriebssystemarchitektur entsprechende Datenbanksoftware-Paket für das Installationsprofil all
maxdb-all-<win>-<32|64>bit-<arch>-<version>_<build>.<zip>

2. Entpacken Sie das Softwarepaket mit Hilfe von WinZip in ein beliebiges lokales Verzeichnis.

3. Das System legt in diesem lokalen Verzeichnis ein Unterverzeichnis
maxdb-all-<win>-<32|64>bit-<arch>-<version>
an und legt darin die Datenbanksoftware ab.


Protokollierung auf Microsoft Windows (MaxDB: Installationsleitfaden Datenbanksoftware)

Protokollierung auf Microsoft Windows

Der gesamte Installationsvorgang wird protokolliert. Diese Protokoll wird vom System unter folgendem Pfad abgelegt:

<independent_data_path>\wrk\MAXDBall_install-<date>-<time>.log

Wenn das Verzeichnis <independent_data_path> zum Zeitpunkt des Abbruchs noch nicht bekannt ist, wird das Protokoll im aktuellen Verzeichnis erstellt.

Standardinstallation auf Microsoft Windows


Standard-Deinstallation mit SDBUNINST (MaxDB: Installationsleitfaden Datenbanksoftware)

Standard-Deinstallation mit SDBUNINST

Verwendung

Sie verwenden das Programm SDBUNINST. Es ist das Bestandteil Ihrer Datenbanksoftwareinstallation.

Bei der Standard-Deinstallation mit SDBUNINST deinstallieren Sie die gesamte Datenbanksoftware auf Ihrem Rechner.

Sie können das Programm SDBUNINST auch dann verwenden, wenn Sie nur einzelne Softwarekomponenten deinstallieren wollen. In diesem Falle sind jedoch Reihenfolgen und Abhängigkeiten von Softwarekomponenten zu beachten. Für die Deinstallation einzelner Softwarekomponenten siehe Deinstallation der Datenbanksoftware im Installationshandbuch.

Wenn Sie auf dem Betriebssystem Linux arbeiten und die Installation der Datenbanksoftware auf Ihrem Rechner mit Hilfe des Red Hat Package Manager (rpm-Paket) ausgeführt wurde, können Sie die Deinstallation nur mit diesem Programm durchführen.

Siehe Installationshandbuch, Abschnitt Deinstallation mit Hilfe des Red Hat Package Manager

Voraussetzungen

· Sie haben für Ihren Rechner Administrationsrechte.

Vorgehensweise auf Microsoft Windows, UNIX und Linux

...

1. Für UNIX/Linux wechseln Sie in die root-Shell.
Für Microsoft Windows öffnen Sie das Command Prompt auf Ihrem Rechner.

2. Stoppen Sie jede einzelne Datenbankinstanz auf Ihrem Rechner mit folgendem Kommando:
dbmcli –d <database_name> -u <dbm_user>,<password> db_offline

3. Löschen Sie jede einzelne Datenbankinstanz auf Ihrem Rechner mit folgendem Kommando:
dbmcli –d <database_name> -u <dbm_user>,<password> db_drop

4. Rufen Sie das Deinstallationprogramm mit der Option zur Deinstallation der gesamten Datenbanksoftware auf:
sdbuninst –all
Das System listet Ihnen alle vorhanden Softwarekomponenten auf.

5. Starten Sie die Deinstallation mit der Eingabe y.

Sie erhalten eine Meldung über den Abschluss der Deinstallation.

Ergebnis

Die gesamte Datenbanksoftware wurde von Ihrem Rechner gelöscht.


Installationsleitfaden Web Tools

Einsatzmöglichkeiten

Diese Dokumentation beschreibt, wie Sie die MaxDB Web Tools installieren.

Für eine Standardinstallation eines SAP-Systems ist dieser Installationsleitfaden nicht relevant. Die Installation der für SAP-Systeme erforderlichen Datenbanksoftware ist in SAP-spezifischen Installationsleitfäden beschrieben. Diese Leitfäden finden SAP-Kunden auf dem SAP-Service-Marktplatz unter http://service.sap.com

Einführung

· Verwendete Variablen

· Unterstützte Betriebssysteme und Browser

Installationsbeschreibung

Sie können die Web Tools auf folgenden Betriebssystemen installieren:

· Installation auf Linux

· Installation auf UNIX

· Installation auf Windows

Zusatzinformationen

· Aufrufen der Web Tools

· Verwenden der Web Tools mit dem Apache Web Server

· Einrichten des WebDAV-Service

· Deinstallieren der Web Tools

Allgemeine Informationen zum Datenbanksystem MaxDB finden Sie in der Dokumentation Datenbankverwaltung .


Verwendete Variablen (MaxDB: Installationsleitfaden Web Tools)

Verwendete Variablen

Die Tabelle zeigt, welche speziellen Variablen in den Installationsbeschreibungen verwendet werden.

<independent_program_path>/web | Installationsverzeichnis der Web Tools
<log_path> | Verzeichnis der Web Tools-Protokolle
<registry_path> | Registry-Pfad (Microsoft Windows)
<web_server> | Name des Rechners, auf dem der Web Server installiert ist
<port> | Port-Adresse des Web Server

Erläuterungen zu den übrigen verwendeten Variablen finden Sie in der Dokumentation Datenbankverwaltung unter Variablen.


Unterstützte Betriebssysteme und Browser (MaxDB: Installationsleitfaden Web Tools)

Unterstützte Betriebssysteme und Browser

Die Tabelle zeigt, mit welchen Betriebssystemen, Plattformen und Browsern die aktuelle Version der Web Tools getestet wurde.

<os> | <arch> | Browser
aix | ppc | Mozilla 1.1
linux | i386 | Mozilla 1.1, Konqueror 3.0.3
solaris | sparc | Mozilla 1.1
tru64 | alpha | Mozilla 1.1
hpux | hppa | Mozilla 1.1
win | i386, ia64 | Internet Explorer 6.0, Mozilla 1.1


Installationsschritte (MaxDB: Installationsleitfaden Web Tools)

Installationsschritte

Sie können die Web Tools auf folgenden Betriebssystemen installieren:

· Installation auf Linux

· Installation auf UNIX

· Installation auf Windows


Linux: Installation der Web Tools (MaxDB: Installationsleitfaden Web Tools)

Linux: Installation der Web Tools

Vorgehensweise

...

...

1. Installation der Web Tools-Software

2. Konfiguration des MaxDB Web Server

3. Start des MaxDB Web Server

4. Konfiguration des Web-Browser

Zusatzinformationen

· Aufrufen der Web Tools

· Verwenden der Web Tools mit dem Apache Web Server

· Einrichten des WebDAV-Service

· Deinstallieren der Web Tools


Linux: Installation der Web Tools-Software (MaxDB: Installationsleitfaden Web Tools)

Linux: Installation der Web Tools-Software

Verwendung

Wenn Sie das Web Tools-Softwarepaket installieren, werden die Web Tools und der MaxDB Web Server installiert.

Siehe auch: verwendete Variablen, unterstützte Betriebssysteme und Browser

Vorgehensweise unter Verwendung des rpm-Pakets

1. Melden Sie sich auf Ihrem Rechner als Benutzer root an.

2. Wenn auf Ihrem Rechner bereits eine ältere Version der Web Tools installiert ist, stoppen Sie den Web Server.

3. Kopieren Sie das Software-Paket
maxdb-web-<os>-<arch>-<version>.rpm
in ein beliebiges lokales Verzeichnis.

4. Installieren Sie die Web Tools. Geben Sie dazu folgendes Kommando ein:
rpm –U maxdb-web-<os>-<arch>-<version>.rpm

Vorgehensweise unter Verwendung des tgz-Pakets

...

1. Melden Sie sich auf Ihrem Rechner als Benutzer root an.

2. Wenn auf Ihrem Rechner bereits eine ältere Version der Web Tools installiert ist, stoppen Sie den Web Server.

3. Kopieren Sie das Software-Paket
maxdb-webtools-<os>-<arch>-<version>.tgz
in ein beliebiges lokales Verzeichnis.

4. Installieren Sie die Web Tools. Geben Sie dazu folgendes Kommando ein:
gzip -d maxdb-webtools-<os>-<arch>-<version>.tgz tar xf maxdb-webtools-<os>-<arch>-<version>.tar ./SDBINST

5. Folgen Sie den Anweisungen des Installationsprogramms.

Ergebnis

Die Web Tools und der Web Server wurden im Verzeichnis <independent_program_path>/web installiert.

Nächster Installationsschritt

Konfiguration des MaxDB Web Server


Linux: Konfiguration des MaxDB Web Server (MaxDB: Installationsleitfaden Web Tools)

Linux: Konfiguration des MaxDB Web Server

Verwendung

In der Konfigurationsdatei /usr/spool/sql/ini/WebAgent75.ini können Sie den MaxDB Web Server konfigurieren.

Beim Start des MaxDB Web Server können Sie angeben, welche Konfigurationsdatei das System verwenden soll. Sie haben dabei die Möglichkeit, auch eine von WebAgent75.ini verschiedene Konfigurationsdatei anzugeben.

Siehe auch: verwendete Variablen, unterstützte Betriebssysteme und Browser

Voraussetzung

Sie sind als Benutzer root angemeldet.

Vorgehensweise

Der Abschnitt [HTTP] der Konfigurationsdatei WebAgent75.ini enthält folgende Einträge:

Browsable=0
DefaultDocument=index.html
DocumentRoot=<independent_program_path>/web/Documents
LogDirectory=<independent_program_path>/web/Log
LogRequests=1
MaxThreads=10
MimeTypeFile=<independent_program_path>/web/config/mime.types
Port=9999

Browsable

Stellen Sie ein, ob die Inhalte der Verzeichnisse unter DocumentRoot per Browser sichtbar sein sollen.

· 0: Die Inhalte sind nicht sichtbar

· 1: Die Inhalte sind sichtbar.

DefaultDocument

Ändern Sie, wenn gewünscht, die Startseite des WebServer.

DocumentRoot

Ändern Sie, wenn gewünscht, den Pfad für das Root-Directory der Webseiten.

LogDirectory

Wenn Sie LogRequest so eingestellt haben, dass die HTTP-Zugriffe protokolliert werden, erfolgt die Protokollierung der Zugriffe auf den MaxDB Web Server in den Dateien httperr.log und httpreq.log.
Diese Protokolldateien werden in das in LogDirectory angegebene Verzeichnis geschrieben.

LogRequests

Sie können bestimmen, ob die einzelnen HTTP-Zugriffe protokolliert werden sollen.

· 1: Die HTTP-Zugriffe werden protokolliert

· 0: Die HTTP-Zugriffe werden nicht protokolliert.

MaxThreads

Sie können angeben, wieviele Threads maximal zur Abarbeitung der Zugriffe auf den Web Server benutzt werden sollen. Die Threads werden als Thread-Pool beim Starten des Web Server ebenfalls gestartet.

MimeTypeFile

Geben Sie, wenn gewünscht, die MIME-Type-Datei an.

Port

Ändern Sie, wenn gewünscht, die Port-Adresse des Web Server.

Nächster Installationsschritt

Start des MaxDB Web Server


Linux: Start des MaxDB Web Server (MaxDB: Installationsleitfaden Web Tools)

Linux: Start des MaxDB Web Server

Siehe auch: verwendete Variablen, unterstützte Betriebssysteme und Browser

Vorgehensweise (rpm-Paket)

Wenn Sie eine rpm-Installation der Web Tools-Software durchgeführt haben, starten Sie den MaxDB Web Server mit dem Kommando
/etc/rc.d/sdb-web start

Um den Server zu stoppen, benutzen Sie das Kommando
/etc/rc.d/sdb-web stop

Vorgehensweise (tgz-Paket)

Starten Sie den Web Server wie folgt:

...

1. Setzen Sie die Umgebungsvariable LD_LIBRARY_PATH. Geben Sie dazu folgendes Kommando ein:
export LD_LIBRARY_PATH=<independent_program_path>/web/lib:
<independent_program_path>/lib:$LD_LIBRARY_PATH

2. Wechseln Sie in das Verzeichnis <independent_program_path>/web/pgm

3. Geben Sie folgendes Kommando ein: ./wahttp

Aufrufoptionen

wahttp [-f <file>] [&] [-h]

· Mit dem Aufrufparameter -f <file> können Sie eine von der Datei WebAgent75.ini verschiedene Konfigurationsdatei angeben. Geben Sie für <file> den Pfad und Dateinamen der gewünschten Konfigurationsdatei an.

· Mit dem Aufrufparameter & starten Sie den Web Server im Hintergrund.

· Mit dem Aufrufparameter -h können Sie sich alle Aufrufoptionen anzeigen lassen.

Um eine von der Datei WebAgent75.ini verschiedene Konfigurationsdatei zu benutzen, können Sie auch die Angabe der Konfigurationsdatei in der Datei <independent_program_path>/web/pgm/wahttp.conf ändern.

Ergebnis

Mit dem Start des Web Server werden die Web Tools automatisch als Web Server-Services bereitgestellt.

Die Zugriffe auf den Web Server werden protokolliert, wenn Sie bei der Konfiguration des MaxDB Web Server die Protokollierung eingeschaltet haben.

Nächster Installationsschritt

Konfiguration des Web-Browser


UNIX: Installation der Web Tools (MaxDB: Installationsleitfaden Web Tools)

UNIX: Installation der Web Tools

Vorgehensweise

...

1. Installation der Web Tools-Software

2. Konfiguration des MaxDB Web Server

3. Start des MaxDB Web Server

4. Konfiguration des Web-Browser

Zusatzinformationen

· Aufrufen der Web Tools

· Verwenden der Web Tools mit dem Apache Web Server

· Einrichten des WebDAV-Service

· Deinstallieren der Web Tools


UNIX: Installation der Web Tools-Software (MaxDB: Installationsleitfaden Web Tools)

UNIX: Installation der Web Tools-Software

Verwendung

Wenn Sie das Web Tools-Software-Paket installieren, werden die Web Tools und der MaxDB Web Server installiert.

Siehe auch: verwendete Variablen, unterstützte Betriebssysteme und Browser

Vorgehensweise

...

...

1. Melden Sie sich auf Ihrem Rechner als Benutzer root an.

2. Wenn auf Ihrem Rechner bereits eine ältere Version der Web Tools installiert ist, stoppen Sie den Web Server.

3. Kopieren Sie das Software-Paket
maxdb-webtools-<os>-<arch>-<version>.tgz
in ein beliebiges lokales Verzeichnis.

4. Installieren Sie die Web Tools. Geben Sie dazu folgendes Kommando ein:
gzip -d maxdb-webtools-<os>-<arch>-<version>.tgz tar xf sdb-webtools-<os>-<arch>-<version>.tar ./SDBINST

5. Folgen Sie den Anweisungen des Installationsprogramms.

Ergebnis

Die Web Tools und der Web Server wurden im Verzeichnis <independent_program_path>/web installiert.

Nächster Installationsschritt

Konfiguration des MaxDB Web Server


UNIX: Konfiguration des MaxDB Web Server (MaxDB: Installationsleitfaden Web Tools)

UNIX: Konfiguration des MaxDB Web Server

Verwendung

In der Konfigurationsdatei /usr/spool/sql/ini/WebAgent75.ini können Sie den MaxDB Web Server konfigurieren.

Siehe auch: verwendete Variablen, unterstützte Betriebssysteme und Browser

Voraussetzung

Sie sind als Benutzer root angemeldet.

Vorgehensweise

Der Abschnitt [HTTP] der Konfigurationsdatei WebAgent75.ini enthält folgende Einträge:

Browsable=0
DefaultDocument=index.html
DocumentRoot=<independent_program_path>/web/Documents
LogDirectory=<independent_program_path>/web/Log
LogRequests=1
MaxThreads=10
MimeTypeFile=<independent_program_path>/web/config/mime.types
Port=9999

Browsable

Stellen Sie ein, ob die Inhalte der Verzeichnisse unter DocumentRoot per Browser sichtbar sein sollen.

· 0: Die Inhalte sind nicht sichtbar

· 1: Die Inhalte sind sichtbar.

DefaultDocument

Ändern Sie, wenn gewünscht, die Startseite des Web Server.

DocumentRoot

Ändern Sie, wenn gewünscht, den Pfad für das Root-Directory der Webseiten.

LogDirectory

Wenn Sie LogRequest so eingestellt haben, dass die HTTP-Zugriffe protokolliert werden, erfolgt die Protokollierung der Zugriffe auf den MaxDB Web Server in den Dateien httperr.log und httpreq.log.
Diese Protokolldateien werden in das in LogDirectory angegebene Verzeichnis geschrieben.

LogRequests

Sie können bestimmen, ob die einzelnen HTTP-Zugriffe protokolliert werden sollen.

· 1: Die HTTP-Zugriffe werden protokolliert

· 0: Die HTTP-Zugriffe werden nicht protokolliert.

MaxThreads

Sie können angeben, wieviele Threads maximal zur Abarbeitung der Zugriffe auf den Web Server benutzt werden sollen. Die Threads werden als Thread-Pool beim Starten des Web Server ebenfalls gestartet.

MimeTypeFile

Geben Sie, wenn gewünscht, die MIME-Type-Datei an.

Port

Ändern Sie, wenn gewünscht, die Port-Adresse des Web Server.

Nächster Installationsschritt

Start des MaxDB Web Server


UNIX: Start des MaxDB Web Server (MaxDB: Installationsleitfaden Web Tools)

UNIX: Start des MaxDB Web Server

Siehe auch: verwendete Variablen, unterstützte Betriebssysteme und Browser

Vorgehensweise

Starten Sie den MaxDB Web Server wie folgt:

...

...

1. Setzen Sie die Umgebungsvariable LD_LIBRARY_PATH. Geben Sie dazu folgendes Kommando ein:
export LD_LIBRARY_PATH=<independent_program_path>/web/lib:
<independent_program_path>/lib:$LD_LIBRARY_PATH

Wenn Sie die Web Tools-Software für hp-ux (32 Bit) installiert haben, dann geben Sie SHLIB_PATH statt LD_LIBRARY_PATH ein.
Wenn Sie mit einer 64-Bit-Plattform (ausgenommen tru64 und linux IA64) arbeiten, geben Sie statt /lib folgenden Pfad ein: /lib/lib64.

2. Wechseln Sie in das Verzeichnis <independent_program_path>/web/pgm

3. Geben Sie folgendes Kommando ein: ./wahttp

Aufrufoptionen

wahttp [-f <file>] [&] [-h]

· Mit dem Aufrufparameter -f <file> können Sie eine von der Datei WebAgent75.ini verschiedene Konfigurationsdatei angeben. Geben Sie für <file> den Pfad und Dateinamen der gewünschten Konfigurationsdatei an.

· Mit dem Aufrufparameter & starten Sie den Web Server im Hintergrund.

· Mit dem Aufrufparameter -h können Sie sich alle Aufrufoptionen anzeigen lassen.

Um eine von der Datei WebAgent75.ini verschiedene Konfigurationsdatei zu benutzen, können Sie auch die Angabe der Konfigurationsdatei in der Datei <independent_program_path>/web/pgm/wahttp.conf ändern.

Ergebnis

Mit dem Start des MaxDB Web Server werden die Web Tools automatisch als Web Server-Services bereitgestellt.

Die Zugriffe auf den Web Server werden protokolliert, wenn Sie die Protokollierung eingeschaltet haben (Konfiguration des MaxDB Web Server).

Nächster Installationsschritt

Konfiguration des Web-Browser


Windows: Installation der Web Tools (MaxDB: Installationsleitfaden Web Tools)

Windows: Installation der Web Tools

Vorgehensweise

...

1. Installation der Web Tools-Software

2. Konfiguration des MaxDB Web Server

3. Start des MaxDB Web Server

4. Konfiguration des Web-Browser

Zusatzinformationen

· Aufrufen der Web Tools

· Verwenden der Web Tools mit dem Apache Web Server

· Einrichten des WebDAV-Service

· Deinstallieren der Web Tools


Windows: Installation der Web Tools-Software (MaxDB: Installationsleitfaden Web Tools)

Windows: Installation der Web Tools-Software

Verwendung

Wenn Sie das Web Tools-Software-Paket installieren, werden die Web Tools und der MaxDB Web Server installiert.

Siehe auch: verwendete Variablen, unterstützte Betriebssysteme und Browser

Voraussetzung

Sie haben für Ihren Rechner die Administrationsrechte.

Vorgehensweise

...

...

1. Wenn auf Ihrem Rechner bereits eine ältere Version der Web Tools installiert ist, stoppen Sie den Web Server.

2. Kopieren Sie das Software-Paket
maxdb-webtools-<os>-<arch>-<version>.tgz
in ein beliebiges lokales Verzeichnis.

3. Entpacken Sie die Datei maxdb-webtools-<os>-<arch>-<version>.tgz mit dem Programm WinZip in ein beliebiges lokales Verzeichnis.

4. Öffnen Sie einen Command Prompt.

5. Wechseln Sie in das Verzeichnis, in das die Dateien entpackt wurden.

6. Starten Sie die Installation. Geben Sie dazu folgendes Kommando ein:
SDBINST.exe

7. Folgen Sie den Anweisungen des Installationsprogramms.

Ergebnis

Die Web Tools und der Web Server wurden im Verzeichnis <independent_program_path>\web installiert.

Nächster Installationsschritt

Konfiguration des MaxDB Web Server


Windows: Konfiguration des MaxDB Web Server (MaxDB: Installationsleitfaden Web Tools)

Windows: Konfiguration des MaxDB Web Server

Verwendung

Die Konfiguration des MaxDB Web Server können Sie in der Registry im Registry-Pfad HKEY_LOCAL_MACHINE\SOFTWARE\SAP\SAP DBTech\WebAgent75\HTTP vornehmen.

Siehe auch: verwendete Variablen, unterstützte Betriebssysteme und Browser

Voraussetzungen

Sie haben für Ihren Rechner die Administrationsrechte.

Vorgehensweise

Der Registry-Pfad HKEY_LOCAL_MACHINE\ SOFTWARE\SAP\SAP DBTech\WebAgent75\HTTP enthält folgende Einträge:

Browsable=0
DefaultDocument=index.html
DocumentRoot=<independent_program_path>\web\Documents
LogDirectory=<independent_program_path>\web\Log
LogRequests=1
MaxThreads=10
MimeTypeFile=<independent_program_path>\web\config\mime.types
Port=9999

Browsable

Stellen Sie ein, ob die Inhalte der Verzeichnisse unter DocumentRoot per Browser sichtbar sein sollen.

· 0: Die Inhalte sind nicht sichtbar

· 1: Die Inhalte sind sichtbar.

DefaultDocument

Ändern Sie, wenn gewünscht, die Startseite des Web Server.

DocumentRoot

Ändern Sie, wenn gewünscht, den Pfad für das Root-Directory der Webseiten.

LogDirectory

Wenn Sie LogRequest so eingestellt haben, dass die HTTP-Zugriffe protokolliert werden, erfolgt die Protokollierung der Zugriffe auf den MaxDB Web Server in den Dateien httperr.log und httpreq.log.
Diese Protokolldateien werden in das in LogDirectory angegebene Verzeichnis geschrieben.

LogRequests

Sie können bestimmen, ob die einzelnen HTTP-Zugriffe protokolliert werden sollen.

· 1: Die HTTP-Zugriffe werden protokolliert

· 0: Die HTTP-Zugriffe werden nicht protokolliert.

MaxThreads

Sie können angeben, wie viele Threads maximal zur Abarbeitung der Zugriffe auf den Web Server benutzt werden sollen. Die Threads werden als Thread-Pool beim Starten des Web Server ebenfalls gestartet.

MimeTypeFile

Geben Sie, wenn gewünscht, die MIME-Type-Datei an.

Port

Ändern Sie, wenn gewünscht, die Port-Adresse des Web Server.

Nächster Installationsschritt

Start des MaxDB Web Server


Windows: Start des MaxDB Web Server (MaxDB: Installationsleitfaden Web Tools)

Windows: Start des MaxDB Web Server

Verwendung

Beim Installieren der Web Tools-Software wird der MaxDB Web Server automatisch als Service SAP DB WWW mit manuellem Starten (Startup Type manual) eingetragen. Sie können den Server unter Services oder über den Command Prompt starten und stoppen.

Vorgehensweise

· Um den Web Server über den Command Prompt zu starten, geben Sie folgendes Kommando ein: net start sapdbwww

· Um den Web Server über den Command Prompt zu stoppen, geben Sie folgendes Kommando ein: net stop sapdbwww

Um den Web Server mit einer von WebAgent75 verschiedenen Konfiguration zu starten, ändern Sie die Angabe des Registry-Pfads in der Datei <independent_program_path>\web\pgm\wahttp.conf oder rufen Sie den Server direkt auf.

Mit dem Start des MaxDB Web Server werden die Web Tools automatisch als Web Server-Services bereitgestellt.

Die Zugriffe auf den Web Server werden protokolliert, wenn Sie die Protokollierung eingeschaltet haben (Konfiguration des MaxDB Web Server).

Nächster Installationsschritt

Konfiguration des Web-Browser


Direktes Aufrufen des MaxDB Web Server (MaxDB: Installationsleitfaden Web Tools)

Direktes Aufrufen des MaxDB Web Server

Verwendung

Sie können den MaxDB Web Server direkt aufrufen, um ihn zum Beispiel mit einer von WebAgent75 verschiedenen Konfiguration zu starten.

Vorgehensweise

...

...

1. Wechseln Sie in das Verzeichnis <independent_program_path>\web\pgm

2. Um den Web Server zu starten, geben Sie folgendes Kommando ein: wahttp.exe -d

Aufrufoptionen

wahttp.exe [-i] [-u] [-d] [-f <file>] [-h]

· Mit dem Aufrufparameter -i registrieren Sie den Web Server als Service.

· Mit dem Aufrufparameter -u löschen Sie den Serviceeintrag des Web Server.

· Mit dem Aufrufparameter -d starten Sie den Web Server direkt.

· Mit dem Aufrufparameter -f <registry path> können Sie den Registry-Pfad einer von WebAgent75 verschiedenen Konfiguration angeben.

· Mit dem Aufrufparameter -h können Sie sich alle Aufrufparameter anzeigen lassen.

Um den MaxDB Web Server mit einer von WebAgent75 verschiedenen Konfiguration zu starten, können Sie auch die Angabe des Registry-Pfads in der Datei <independent_program_path>\web\pgm\wahttp.conf ändern.


Konfiguration des Web-Browser (MaxDB: Installationsleitfaden Web Tools)

Konfiguration des Web-Browser

Vorgehensweise

Stellen Sie sicher, dass Ihr Browser JavaScript, Style Sheets und Cookies unterstützt. Ändern Sie wenn nötig die entsprechenden Einstellungen Ihres Browsers.

Zusatzinformationen

· Aufrufen der Web Tools

· Einrichten des WebDAV-Service


Aufrufen der Web Tools (MaxDB: Installationsleitfaden Web Tools)

Aufrufen der Web Tools

Nach der Installation der Web Tools stehen Ihnen folgende Datenbankwerkzeuge zur Verfügung:

· der Database Manager Web DBM für die Verwaltung von Max DB Datenbankinstanzen

· das Query Tool Web SQL Studio für den bequemen Zugriff auf die Daten einer Datenbankinstanz

· ein Administrationswerkzeug zum Verwalten der Web-Services und Web Tools

Aufrufen des Web DBM

Öffnen Sie den Web-Browser und geben Sie folgende URL ein:

http://<web_server>:<port>/webdbm

Weitere Informationen zur Verwendung dieses Datenbankwerkzeugs finden Sie in der Dokumentation Web DBM.

Aufrufen des Web SQL Studio

Öffnen Sie den Web-Browser und geben Sie folgende URL ein:

http://<web_server>:<port>/websql

Weitere Informationen zur Verwendung dieses Datenbankwerkzeugs finden Sie in der Dokumentation Web SQL Studio.

Beachten Sie die Hinweise zum Verwenden des Web SQL Studio.

Aufrufen des Administrationswerkzeugs

Öffnen Sie den Web-Browser und geben Sie folgende URL ein:

http://<web_server>:<port>/waadmin.wa

Geben Sie den Benutzernamen und das Kennwort des Web Tools-Administrators an. Im System sind die folgenden Vorschlagswerte voreingestellt:

· Benutzername: admin

· Kennwort: init

Sie können den Benutzernamen und das Kennwort für den Web Tools-Administrator mit dem Administrationswerkzeug unter Global Settings ® General Settings ändern. Die dazugehörigen Registry-Einträge befinden sich im Registry-Pfad \HKEY_LOCAL_MACHINE\SOFTWARE\SAP\SAP DBTech\WebAgent75\GeneralSettings (Windows) oder in der Sektion [BIT32\GeneralSettings] bzw. [BIT64\GeneralSettings] (UNIX).


Hinweise zum Verwenden des Web SQL Studio (MaxDB: Installationsleitfaden Web Tools)

Hinweise zum Verwenden des Web SQL Studio

Wenn Ihre Datenbankinstanz mit einer Softwareversion kleiner als 7.2.05 eingerichtet wurde, beachten Sie die folgenden Hinweise.

Anpassen der Datenbankinstanz

Damit Sie das Web SQL Studio in vollem Umfang nutzen können, müssen Sie in der Datenbankinstanz, auf die Sie mit Web SQL Studio zugreifen wollen, die folgenden Aktionen durchführen:

...

1. Kopieren Sie die Datei <independent_program_path>/web/env/QP.ins in das Verzeichnis <dependent_path>/env.

2. Laden Sie die Systemtabellen neu. Geben Sie dazu folgendes Kommando ein:
dbmcli –u <dbm_user>,<password> -d <database_name> load_systab

Diese Schritte müssen Sie nur einmal ausführen.

Zugriff auf Stored Statements bei geändertem Benutzernamen

Wenn in der Datenbankinstanz, auf die Sie mit Web SQL Studio zugreifen, ein Benutzername geändert wird, dann hat dieser Benutzer nicht mehr wie bisher Zugang zu seinen Stored Statements.

Um dem Benutzer den Zugriff auf seine Stored Statements wieder zu ermöglichen, führen Sie folgende Schritte durch:

...

...

1. Starten Sie Web SQL Studio als Datenbankadministrator (DBA-Benutzer).

2. Geben Sie folgende SQL-Anweisungen ein:
UPDATE sysdba.wa_inode SET "VIEWOWNER" = ’<new_user_name>’ WHERE "VIEWOWNER" = ’<old_user_name>’
UPDATE sysdba.wa_container SET "VIEWOWNER" = ’<new_user_name>’  WHERE "VIEWOWNER" = ’<old_user_name>’

Stored Statements eines gelöschten Benutzernamens löschen

Wenn in der Datenbankinstanz, auf die Sie mit Web SQL Studio zugreifen, ein Benutzername gelöscht wird, dann werden die Stored Statements dieses Benutzers nicht automatisch auch gelöscht.

Um in diesem Fall die Stored Statements zu löschen, führen Sie folgende Schritte durch:

...

1. Starten Sie Web SQL Studio als DBA-Benutzer.

2. Geben Sie folgende SQL-Anweisungen ein:
DELETE sysdba.wa_inode WHERE "VIEWOWNER" = ’<deleted_user>’
DELETE sysdba.wa_container WHERE "VIEWOWNER" = ’<deleted_user>’


Einrichten des WebDAV-Service (MaxDB: Installationsleitfaden Web Tools)

Einrichten des WebDAV-Service

Verwendung

Mit der Installation der Web Tools wird auch ein datenbankbasierter WebDAV-Service installiert. Eine MaxDB Datenbankinstanz dient zur Ablage aller WebDAV-relevanten Daten einschließlich der Web-Ressourcen. Abgelegte XML-Dokumente können indiziert werden; der WebDAV GUI erlaubt dabei eine einfache Handhabung der Dokumente und des Indizierungs-Service.

Bevor Sie den WebDAV-Service nutzen können, müssen Sie die Anbindung zur gewünschten Datenbankinstanz einrichten.

Vorgehensweise

...

1. Starten Sie die Datenbankinstanz mit dem Database Manager.

2. Starten Sie den Web Server.

3. Rufen Sie das Administrationswerkzeug für die Web Tools auf (siehe Aufrufen der Web Tools).

4. Wählen Sie Session Pools ® WebDAV.

5. Geben Sie folgende Parameter an: den Namen der Datenbankinstanz, den Namen des Rechners, auf dem die Datenbankinstanz installiert ist, den Namen des Datenbanksystemadministrators (SYSDBA-Benutzers) und sein Kennwort.

6. Falls gewünscht, passen Sie den Wert Pool Size an. Er gibt an, wie viele parallele Datenbanksitzungen der WebDAV-Service maximal benutzen darf.

7. Wählen Sie Services ® WebDAV und anschließend Reload Service. Der WebDAV-Service wird neu gestartet.

Ergebnis

Der WebDAV-Service ist nun mit der Datenbankanbindung eingerichtet. Der WebDAV-Server wird mit jedem Start des Web-Server automatisch gestartet.

Wenn Sie die Möglichkeiten zur Indizierung von XML-Dokumenten nutzen wollen, müssen Sie nun noch die Indizierungs-Engine konfigurieren.


Informationen zu WebDAV (MaxDB: Installationsleitfaden Web Tools)

Informationen zu WebDAV

WebDAV ist die Abkürzung für „Web-based Distributed Authoring and Versioning“. WebDAV ist ein Standard der Internet Engineering Task Force (IETF) und stellt eine HTTP 1.1-Erweiterung dar.

Das WebDAV-Protokoll ermöglicht die gemeinschaftliche Bearbeitung von Dokumenten über das Internet. Wie in bekannten Dateisystemen können Sie Verzeichnisse anlegen, Objekte ablegen, verschieben, umbenennen und löschen. Dabei ordnet der WebDAV-Service den abgelegten Objekten – den sogenannten Web-Ressourcen – Attribute wie Erstellungsdatum oder Dateityp zu. Unter anderem können die Attribute der Steuerung von Schreibsperren dienen.

Der MaxDB WebDAV-Service erfüllt die WebDAV-Spezifikationen der Klasse 2, unterstützt jedoch nicht das WebDAV Access Control Protocol (ACL) und die Versioning Extension (DeltaV).

Siehe auch Einrichten des WebDAV-Service.

Weitere Informationen finden Sie unter www.webdav.org


Konfigurieren der Indizierungs-Engine für die XML-Indizierung (MaxDB: Installationsleitfaden Web Tools)

Konfigurieren der Indizierungs-Engine für die XML-Indizierung

Verwendung

Mit den Web Tools wird eine Indizierungs-Engine für die Indizierung von XML-Dokumenten in der WebDAV-Ablage (Dokumentenablage) installiert. Bevor Sie diese Indizierungs-Engine bequem mit dem Werkzeug WebDAV GUI nutzen können, müssen Sie sie mit den Angaben zur verwendeten Datenbankinstanz konfigurieren.

Vorgehensweise

1. Ergänzen Sie die Einträge für die Indizierungs-Engine, die vom System während der Installation in der Registry (Microsoft Windows) oder der Datei sapdbxie.ini (UNIX) vorgenommen wurden. Um diese Einträge zu bearbeiten, gehen Sie folgendermaßen vor:

¡ Bei Microsoft Windows-Betriebssystemen öffnen Sie den Registry-Pfad
\HKEY_LOCAL_MACHINE\SOFTWARE\SAP\SAP DBTech\XIE\default

¡ Bei UNIX-Betriebssystemen öffnen Sie die Datei
/usr/spool/sql/ini/sapdbxie.ini und suchen Sie den Abschnitt [SAPDBXIE]

Sie sehen die folgenden Einträge:

Description=WebDAV Asynchronous Indexing
EngineNode=<web_server>
IndexingLibraryDescription=WebDAV Asynchronous Indexing Service
IndexingLibraryFile=<independent_program_path>/web/pgm/sapdbxis
IndexingLibraryVersion=<version>
IndexingServiceName=MediaStore
LogFilename=<log_path>/sapdbxie.log
MaxThreads=10
RegistryName=WebDAV
RegistryNode=
RegistryPassword=DBA
RegistryTraceFilename=
RegistryUser=DBA

Zur Bedeutung der Variablen siehe Verwendete Variablen.

2. Geben Sie unter IndexingServiceName an, mit welchen Indizierungs-Service-Definitionen die Indizierungs-Engine arbeiten soll.

3. Tragen Sie unter RegistryName, RegistryNode, RegistryPassword und RegistryUser die Verbindungsparameter zu der Datenbankinstanz ein, die als WebDAV-Ablage dient. Machen Sie folgende Angaben:

RegistryName | Name der Datenbankinstanz
RegistryNode | Name des Rechners, auf dem die Datenbankinstanz installiert ist Wenn die Datenbankinstanz lokal installiert ist, müssen Sie hier keinen Eintrag machen.
RegistryPassword | Kennwort des Datenbankbenutzers
RegistryUser | Name des Datenbankbenutzers

4. Schließen Sie die Registry oder die Registrationsdatei.

5. Registrieren Sie anschließend die Indizierungs-Engine in der angegebenen Datenbankinstanz, indem Sie in der Kommandozeile folgendes Kommando eingeben:
sapdbxie –i <registration_name>

Ergebnis

Die Indizierungs-Engine ist nun eingerichtet, registriert und funktionsfähig. Mit dem WebDAV GUI können Sie die registrierten Indizierungs-Engines überwachen, bequem durch die Dokumentenablage navigieren, die Indizierung von XML-Dokumenten erreichen sowie nach indizierten Dokumenten suchen.


Verwenden der Web Tools mit dem Apache Web Server (MaxDB: Installationsleitfaden Web Tools)

Verwenden der Web Tools mit dem Apache Web Server

Verwendung

Sie können die Web Tools auch in Kombination mit dem Apache Web Server als Proxy benutzen, zum Beispiel wenn Sie Ihre bestehende Apache-Umgebung nicht ändern möchten.

Vorgehensweise

1. Nehmen Sie in der Datei httpd.conf des Apache Web Server folgende Einträge vor:
LoadModule proxy_module modules/mod_proxy.so
AddModule mod_proxy.c

2. Entfernen Sie die Kommentierung #der proxy server directives und fügen Sie den directives folgende Anweisungen hinzu:
ProxyPass /webdbm http://<web_server:port>/webdbm
ProxyPassReverse /webdbm http://<web_server:port>/webdbm

ProxyPass /sapdb http://<web_server:port>
ProxyPassReverse /sapdb http://<web_server:port>

ProxyPass /WARoot http://<web_server:port>/WARoot
ProxyPassReverse /WARoot http://<web_server:port>/WARoot

ProxyPass /websql http://<web_server:port>/websql
ProxyPassReverse /websql http://<web_server:port>/websql


Deinstallieren der Web Tools (MaxDB: Installationsleitfaden Web Tools)

Deinstallieren der Web Tools

Verwendung

Sie können die Web Tools ab Version 7.3.33 mit dem Programm SDBUNINST deinstallieren.

· Deinstallation unter UNIX/Linux

· Deinstallation unter Windows

Wenn Sie die Web Tools auf Linux unter Verwendung des rpm-Pakets installiert haben, führen Sie auch die Deinstallation mit rpm aus.


Deinstallation unter UNIX/Linux (MaxDB: Installationsleitfaden Web Tools)

Deinstallation unter UNIX/Linux

Voraussetzung

Sie sind als Benutzer root auf Ihrem Rechner angemeldet.

Vorgehensweise

...

1. Stoppen Sie den MaxDB Web Server.

2. Starten Sie die Deinstallation durch Eingabe von
sdbuninst –package Webtools


Linux: Deinstallieren der Web Tools (rpm) (MaxDB: Installationsleitfaden Web Tools)

Linux: Deinstallieren der Web Tools (rpm)

Voraussetzung

Sie sind als Benutzer root angemeldet.

Vorgehensweise

...

...

1. Wechseln Sie in das Verzeichnis /usr/sdb-web.

2. Geben Sie folgendes Kommando ein: rpm –e maxdb-web


Deinstallation unter Windows (MaxDB: Installationsleitfaden Web Tools)

Deinstallation unter Windows

Voraussetzung

Sie haben für Ihren Rechner die Administrationsrechte.

Vorgehensweise

...

1. Stoppen Sie den MaxDB Web Server.

2. Starten Sie die Deinstallation durch Ausführen des Programms SDBUNINST im Command Prompt mit folgendem Kommando:
sdbuninst.exe -package Webtools


Anschluss Externer Sicherungswerkzeuge

Einführungshinweise

Für das Verwalten von MaxDB-Datenbankinstanzen und insbesondere die Gewährleistung der Datensicherheit stehen Ihnen komfortable Datenbankwerkzeuge zur Verfügung. Diese können auch im Zusammenwirken mit externen Sicherungswerkzeugen verwendet werden.

Für das Sichern und Wiederherstellen von MaxDB-Datenbankinstanzen verwenden Sie den Database Manager. Für das Laden und Entladen von Daten in bzw. aus MaxDB-Datenbankinstanzen verwenden Sie den Loader.

Allgemeine Informationen zum Datenbanksystem MaxDB finden Sie in der Dokumentation Datenbankverwaltung. Der Abschnitt Externe Sicherungswerkzeuge enthält eine Aufstellung der von MaxDB unterstützten externen Sicherungswerkzeuge.

Inhalt der Dokumentation

Das vorliegende Dokument beschreibt die Konfiguration der MaxDB-Software für die Verwendung verschiedener externer Sicherungswerkzeuge. Es gibt Ihnen einen Überblick darüber, welche MaxDB-Datenbankversionen an welche externen Sicherungswerkzeuge angeschlossen werden können und für welche Datenbankversionen paralleles Sichern und Wiederherstellen möglich ist.

Verwendung

Wenn Sie beispielsweise den Datenbestand einer Datenbankinstanz sichern wollen oder Daten aus der Datenbankinstanz herausladen wollen, können diese Daten direkt in Dateien, Pipes oder mit Hilfe eines Bandgeräts auf ein Band gesichert werden. Sie haben jedoch auch die Möglichkeit, die Daten mit Hilfe eines externen Sicherungswerkzeugs auf ein dauerhaftes Medium zu sichern. Auch in diesem Falle steuern Sie die Aktionen mit den MaxDB-Datenbankwerkzeugen. Das externe Sicherungswerkzeug stellt die Bänder zur Verfügung, auf die die Daten gesichert oder herausgeladen werden können. Für das Zusammenspiel des MaxDB-Datenbankwerkzeugs mit dem externen Sicherungswerkzeug muss die MaxDB-Software konfiguriert werden.

Bei folgenden Aktionen können Sie externe Sicherungswerkzeuge nutzen:

· Sichern auf externe Sicherungsmedien

¡ inkrementelle Datensicherungen

¡ vollständige Datensicherungen

¡ Log-Sicherungen

¡ Archivieren der Versionsdateien

· Wiederherstellen von externen Sicherungsmedien

¡ Wiederherstellen der Datenbankinstanz mit Hilfe von Datensicherung(en), Log-Sicherungen und archivierten Log-Sicherungen

· Entladen von Daten auf externe Sicherungsmedien

¡ Entladen der gesamten Datenbankinstanz

¡ Entladen des gesamten Datenbankkatalogs

· Laden von Daten von externen Sicherungsmedien

¡ Laden der gesamten Datenbankinstanz

¡ Laden des gesamten Datenbankkatalogs

Die Vorgehensweisen für das Sichern und Wiederherstellen nach der erfolgten Konfiguration entnehmen Sie je nach verwendetem Werkzeug der Dokumentation
Database Manager CLI, Abschnitte Sichern mit externen Sicherungswerkzeugen und Wiederherstellen mit externen Sicherungswerkzeugen, der Dokumentation
Database Manager GUI, Abschnitte Sichern mit externen Sicherungswerkzeugen und Wiederherstellen mit externen Sicherungswerkzeugen.

Die Vorgehensweisen für das Laden und Entladen von Daten nach der erfolgten Konfiguration sind in der Dokumentation Loader, Abschnitte Entladen mit Externen Sicherungswerkzeugen und Laden mit Externen Sicherungswerkzeugen beschrieben.

Testen Sie nach Abschluss der Konfiguration alle geplanten Aktionen. Sie machen sich so mit der Handhabung des entsprechenden MaxDB-Datenbankwerkzeugs vertraut und testen die korrekte Konfiguration der MaxDB-Software für Ihr externes Sicherungswerkzeug. Dies ist die Voraussetzung dafür, dass alle mit dem externen Sicherungswerkzeug durchgeführten Aktionen zum Sichern und Wiederherstellen bzw. Laden und Entladen von Daten im Produktivbetrieb fehlerlos ablaufen.

Wechsel des Betriebssystems

Beim Sichern und Wiederherstellen wird nur der Wechsel von Microsoft Windows nach Linux und umgekehrt unterstützt. D.h. eine auf dem Betriebssystem Microsoft Windows erstellte Sicherung kann nur auf dem gleichen Betriebssystem oder auf Linux wiederhergestellt werden. Eine auf Linux erstellte Sicherung kann nur auf dem gleichen Betriebssystem oder auf Microsoft Windows wiederhergestellt werden.

Wenn Sie eine Migration von Daten zwischen verschiedenen Betriebssystemen planen, empfiehlt sich daher in den meisten Fällen, den Loader zu verwenden. Beim Entladen und Laden von Daten gibt es von Seiten dieses Datenbankwerkzeugs keine Einschränkungen für den Wechsel des Betriebssystems. Eingeschränkt wird ein Wechsel nur durch die begrenzte Betriebssystemunabhängigkeit der verschiedenen Speichergeräte, da beispielsweise ein Bandgerät oder ein externes Sicherungswerkzeug bei einem Wechsel von Microsoft Windows nach UNIX mit beiden Betriebssystemen gleichermaßen kompatibel sein müsste. Prüfen Sie dies vorab anhand der Dokumentation zu Ihrem Speichergerät.


Blockdiagramm Sichern und Wiederherstellen (MaxDB: Anschluss Externer Sicherungswerkzeuge)

Blockdiagramm Sichern und Wiederherstellen

Das nachfolgende Blockdiagramm veranschaulicht die beim Sichern und Wiederherstellen beteiligten Komponenten der Datenbanksoftware und ihr Zusammenwirken mit einem externen Sicherungswerkzeug.

Beschreibung des Sicherungsvorganges

Mit Hilfe des Database Manager Client geben Sie das Kommando zum Sichern der Daten und rufen damit das Programm DBM-Server auf. Unter einem UNIX-Betriebssystem legt der DBM-Server eine oder mehrere Pipes an, unter Microsoft Windows werden die Pipes vom Datenbankkern angelegt. Der DBM-Server übermittelt die Information zum Starten des Sicherungsvorganges an den Datenbankkern. Sobald Daten in die Pipes geschrieben werden, ruft das Programm DBM-Server das externe Sicherungswerkzeug auf. Dieses liest die Daten aus den Pipes und sichert sie auf ein dauerhaftes Medium.

Beschreibung des Wiederherstellungsvorganges

Mit Hilfe des Database Manager Client geben Sie das Kommando zum Wiederherstellen der Daten und rufen damit das Programm DBM-Server auf. Unter einem UNIX-Betriebssystem legt der DBM-Server eine oder mehrere Pipes an, unter Microsoft Windows werden die Pipes vom Datenbankkern angelegt. Das Programm DBM-Server übermittelt die Information zum Starten des Wiederherstellungsvorganges an den Datenbankkern. Anschließend ruft es das externe Sicherungswerkzeug auf und übermittelt diesem die Information, welche Sicherung wiederhergestellt werden soll. Der Client des Sicherungswerkzeugs fordert das angegebene Sicherungsmedium beim Backup-Server an. Der Server beschafft sich das Medium, liest die Daten der Sicherung und überträgt sie an den Client des Sicherungswerkzeugs. Der Client schreibt die Daten in die Pipes. Dort werden sie vom Datenbankkern gelesen und in das Datenbanksystem übertragen.


Blockdiagramm Laden und Entladen von Daten (MaxDB: Anschluss Externer Sicherungswerkzeuge)

Blockdiagramm Laden und Entladen von Daten

Das nachfolgende Blockdiagramm veranschaulicht die beim Laden und Entladen von Daten beteiligten Softwarekomponenten und ihr Zusammenwirken mit einem externen Sicherungswerkzeug.

Beschreibung des Ladevorganges

Mit Hilfe des Loader-Client geben Sie das Kommando zum Laden der Daten und rufen damit das Programm Loader-Server auf. Daraufhin legt der Loader-Server die Pipes an. Parallel dazu ruft er das externe Sicherungswerkzeug auf und übermittelt diesem, von welchem externen Sicherungsmedium die Daten geladen werden sollen. Der Client des externen Sicherungswerkzeugs fordert das angegebene Sicherungsmedium beim Backup-Server an. Der Backup-Server beschafft sich das Medium, liest die zu ladenden Daten vom Sicherungsmedium und überträgt sie an den Client des externen Sicherungsmediums. Der Client schreibt die Daten sequentiell in die Pipes. Dort werden sie vom Loader-Server gelesen und in die Datenbankinstanz geladen.

Beschreibung des Entladevorganges

Mit Hilfe des Loader-Client geben Sie das Kommando zum Entladen der Daten und rufen damit das Programm Loader-Server auf. Daraufhin legt der Loader-Server die Pipes an. Er beginnt, die Daten zu entladen und sequentiell in die Pipes zu schreiben. Parallel dazu ruft er das externe Sicherungswerkzeug auf. Dieses liest die Daten sequentiell aus den Pipes und sichert sie auf ein dauerhaftes Medium.


Anschluss an eine Backint for Oracle-Schnittstelle (MaxDB: Anschluss Externer Sicherungswerkzeuge)

Anschluss an eine Backint for Oracle-Schnittstelle

Eine Vielzahl externer Sicherungswerkzeuge verfügt über eine Backint for Oracle-Schnittstelle. Prinzipiell kann Backint for Oracle beliebige Dateien im Dateisystem sichern, unabhängig davon, ob auf dem Rechner das Datenbanksystem Oracle installiert ist oder nicht. Die nachfolgende Beschreibung für den Anschluss von MaxDB an eine Backint for Oracle-Schnittstelle setzt voraus, dass diese Eigenschaft vom Hersteller des mit der Backint for Oracle-Schnittstelle ausgestatteten externen Sicherungswerkzeugs garantiert wird.

Nach entsprechender Konfiguration der MaxDB-Software können die MaxDB-Datenbankwerkzeuge zum Sichern und Wiederherstellen bzw. Entladen und Laden von Daten an die Backint for Oracle-Schnittstelle eines solches externen Sicherungswerkzeugs angeschlossen werden.

Der Anschluss erfolgt über ein Adapterprogramm, das zusammen mit dem Backint for Oracle des externen Sicherungswerkzeugs ein Backint for MaxDB implementiert. Dieses Adapterprogramm ist Bestandteil Ihrer MaxDB-Installation.

Nachdem sie die gewünschte Aktion über das Datenbankwerkzeug angestoßen haben, kopiert das Adapterprogramm den Datenbestand stückweise in temporäre Dateien. Das Backint for Oracle-Programm wird vom Adapterprogramm mehrmals nacheinander aufgerufen, um diese temporären Dateien mit Hilfe des angeschlossenen externen Sicherungswerkzeugs zu sichern.

Siehe auch:

Einschränkungen für die Verwendung von Backint for Oracle

Funktionsweise des MaxDB-Adapterprogramms

Konfiguration des Backint for Oracle-Anschlusses


Einschränkungen für die Verwendung von Backint for Oracle (MaxDB: Anschluss Externer Sicherungswerkzeuge)

Einschränkungen für die Verwendung von Backint for Oracle

Der Anschluss von MaxDB an ein externes Sicherungswerkzeug über eine Backint for Oracle-Schnittstelle ist für die folgenden MaxDB-Versionen ab den angegebenen Build-Nummern möglich. Es stehen die jeweils angegebenen MaxDB-Datenbankwerkzeuge zur Verfügung.

Die aufgeführten Datenbankversionen gelten für jeden Datenbankinstanztyp.

MaxDB-Versionen und –Werkzeuge für das Sichern und Wiederherstellen über eine Backint for Oracle-Schnittstelle

Version | Build-Nr. | Verfügbare MaxDB-Werkzeuge
7.4.03 | ab 000 | Database Manager CLI, Database Manager GUI
 | ab 002 | auch Web DBM
7.4.02 | ab 000 | Database Manager CLI, Database Manager GUI
 | ab 011 | auch Web DBM
7.4.01 | ab 003 | Database Manager CLI, Database Manager GUI
7.3.32 | ab 000 | Database Manager CLI, Database Manager GUI
7.3.00 | ab 015 | Database Manager CLI, Database Manager GUI
 | ab 025 | auch Web DBM
7.2.05 | ab 008 | Database Manager CLI, Database Manager GUI (nur zum Sichern)*

* Mit dieser Version des Database Manager GUI können Sie nur sichern und nicht wiederherstellen. Wenn Sie jedoch eine neuere Version des Database Manager GUI installiert haben, die das Wiederherstellen unterstützt (z. B. 7.4.03), dann können Sie damit auch Datenbanken älterer Versionen (z. B. 7.2.05) wiederherstellen, da dieses Datenbankwerkzeug abwärts kompatibel ist.


Funktionsweise des MaxDB-Adapterprogramms (MaxDB: Anschluss Externer Sicherungswerkzeuge)

Funktionsweise des MaxDB-Adapterprogramms

Zum Anschluss von Backint for Oracle an MaxDB wird mit der MaxDB-Software ein Adapterprogramm zur Verfügung gestellt, das im Zusammenwirken mit einem Backint for Oracle-Programm die Spezifikation von Backint for MaxDB erfüllt.

Funktionsweise beim Sichern

...

Die Sicherungsdaten des Datenbanksystems werden über eine oder mehrere Pipes in Empfang genommen und in temporären Dateien gesichert. Die Anzahl und Größe dieser Dateien können Sie in der Parameterdatei des MaxDB-Adapterprogramms definieren.

Das Adapterprogramm ruft das externe Sicherungswerkzeug auf und sichert die temporären Dateien unter Verwendung des Backint for Oracle-Programms. Anschließend werden die temporären Dateien gelöscht. Dieser Schritt wird so oft wiederholt, bis alle Daten gesichert sind.

Zur Beschleunigung des Vorganges beim Sichern müssen Sie das Adapterprogramm für das parallele Sichern konfigurieren. Dazu definieren Sie eine Gruppe paralleler Sicherungsmedien und für jede Pipe eine gesonderte Staging Area. Auf diese Weise werden neue temporäre Dateien erstellt und gleichzeitig bereits erstellte temporäre Dateien unter Verwendung von Backint for Oracle gesichert.

Verwaltungsinformationen werden in einer Sicherungshistorie gespeichert, die nach jeder Sicherung ebenfalls über Backint for Oracle gesichert wird.

Funktionsweise beim Wiederherstellen

...

Die Informationen der Sicherungshistorie werden vom Adapterprogramm ausgewertet.

Mit Hilfe der Sicherungshistorie stellt das Adapterprogramm die erforderlichen temporären Dateien in der richtigen Reihenfolge unter Verwendung von Backint for Oracle wieder her. Die erstellten temporären Dateien werden vom Adapterprogramm über eine oder mehrere Pipes an das Datenbanksystem übergeben.

Wenn im Falle eines Fehlers die Sicherungshistorie nicht mehr vorhanden ist, müssen Sie die letzte Version der Sicherungshistorie manuell mit Backint for Oracle wiederherstellen. Machen Sie sich dafür zuvor mit den Möglichkeiten von Backint for Oracle und der Handhabung Ihres Sicherungswerkzeugs gut vertraut.


Konfiguration des Backint for Oracle-Anschlusses (MaxDB: Anschluss Externer Sicherungswerkzeuge)

Konfiguration des Backint for Oracle-Anschlusses

Verwendung

Sie konfigurieren die MaxDB-Software mit dem Ziel, die MaxDB-Datenbankwerkzeuge zum Sichern, Wiederherstellen, Entladen oder Laden von Daten an die Backint for Oracle-Schnittstelle eines externen Sicherungswerkzeugs anzuschließen.

Voraussetzungen

· Ihr externes Sicherungswerkzeug verfügt über eine Backint for Oracle-Schnittstelle.

· Die Version Ihres MaxDB-Datenbanksystems unterstützt den Anschluss einer Backint for Oracle-Schnittstelle (Siehe: Einschränkungen für die Verwendung von Backint for Oracle)

· Ihr Backint for Oracle-Programm ist in der Lage, beliebige Dateien in ein Dateisystem zu sichern, auch wenn kein Oracle-Datenbanksystem auf Ihrem Rechner installiert ist.

Vorgehensweise

Zum Anschluss der MaxDB an die Backint for Oracle-Schnittstelle führen Sie folgende Schritte aus:

...

1. Konfiguration der Backint for Oracle-Schnittstelle des externen Sicherungswerkzeugs entsprechend der Anweisungen des Herstellers. Wenn Sie dazu eine Konfigurationsdatei anlegen müssen, müssen Sie deren Namen in der Parameterdatei des Adapterprogramms (siehe Schritt 2) angeben.

2. Erstellen der Parameterdatei für das MaxDB-Adapterprogramm
Diese Datei verbindet MaxDB mit dem externem Sicherungswerkzeug. In dieser Datei ist gegebenenfalls auch der Name der Konfigurationsdatei des externen Sicherungswerkzeugs (siehe Schritt 1) anzugeben.

Beispiel

3. Erstellen der Konfigurationsdatei für Backint for MaxDB (Fall 1)
Diese Datei verbindet den Database Manager mit dem MaxDB-Adapterprogramm. In dieser Datei ist auch der Name der Parameterdatei des MaxDB-Adapterprogramms (siehe Schritt 1) anzugeben.

Beispiel

4. Exportieren von Umgebungsvariablen des Externen Sicherungswerkzeugs, falls dies vom Hersteller des externen Sicherungswerkzeugs verlangt wird

5. Setzen der Umgebungsvariablen BSI_ENV für das Programm Database Manager

6. Gegebenenfalls Setzen werkzeugunabhängiger Umgebungsvariablen für den Database Manager


Erstellen der Parameterdatei für das MaxDB-Adapterprogramm (MaxDB: Anschluss Externer Sicherungswerkzeuge)

Erstellen der Parameterdatei für das MaxDB-Adapterprogramm

Verwendung

Wenn Sie für ein MaxDB-Datenbanksystem ein externes Sicherungswerkzeug mit einer Backint for Oracle-Schnittstelle verwenden wollen, müssen Sie zunächst den Anschluss von MaxDB an das Backint for Oracle konfigurieren (Konfiguration des Backint for Oracle-Anschlusses). Das Erstellen der Parameterdatei für das MaxDB-Adapterprogramm ist dabei einer der notwendigen Schritte.

Mit der Parameterdatei legen Sie fest, wo das Adapterprogramm die erforderlichen temporären Dateien erzeugen soll und wo das Schnittstellenprogramm Backint for Oracle zu finden ist.

Den Namen dieser Parameterdatei hinterlegen Sie bei der Konfiguration von Backint for MaxDB in der Konfigurationsdatei des Backint for MaxDB (Schlüsselwort PARAMETERFILE).

Vorgehensweise

In jeder Zeile der Parameterdatei legen Sie einen Parameter des MaxDB-Adapterprogramms fest. Dazu müssen Sie am Anfang jeder Zeile das Schlüsselwort für den Parameter und anschließend den oder die gewünschten Wert/e angeben. Zeilen, die nicht durch Schlüsselwörter eingeleitet werden, werden vom System ignoriert.

Syntax

<key_string> <value_string>

<key_string> | Schlüsselwort für einen Parameter, kann aus einem oder mehreren Wörtern bestehen
<value_string> | Wert/e des Parameters

Sie können für das MaxDB-Adapterprogramm folgende Parameter definieren:

Parameter

Syntax

Beschreibung

Absoluter Pfad und Größe einer temporären Datei

STAGING AREA: <absolute_path>/<file_name> <size> [KB|MB|GB]

Sie können bis zu 256 temporäre Dateien definieren.
Wenn Sie keine Einheit für die Größe angeben, dann wird diese in Byte konfiguriert.
Das Programm verwendet genau eine temporäre Datei für jede Pipe.

Maximale Anzahl der temporären Dateien, die gleichzeitig durch Backint for Oracle verarbeitet werden sollen.

FILES PER BACKINT CALL: <number>

Vorschlagswert: 1.
Das Programm kann temporäre Dateien sichern und gleichzeitig andere temporäre Dateien erzeugen, vorausgesetzt, die hier definierte Anzahl <number> ist kleiner als die konfigurierte Zahl temporärer Dateien.

Absoluter Pfad und Name des Backint for Oracle-Programms

BACKINT: <absolute_path>/<file_name>

Absoluter Pfad und Name der Konfigurationsdatei für das Backint for Oracle-Programm

PARAMETERFILE OF BACKINT: <absolute_path>/<file_name>h>

Definieren Sie diesen Parameter nur, wenn für das externe Sicherungswerkzeug eine Konfigurationsdatei zu erstellen ist. Andernfalls verwenden Sie dieses Schlüsselwort nicht.

Absoluter Pfad und Name der Sicherungshistorie

HISTORY FILE: <absolute_path>/<file_name>

Die Sicherungshistorie enthält die für das Wiederherstellen erforderlichen Informationen.

Absoluter Pfad und Name der Standard-Eingabedatei

INPUTFILE FOR BACKINT: <absolute_path>/<file_name>

Diese Dateien müssen von den für den Backint for MaxDB-Anschluss konfigurierten Dateien verschieden sein (siehe INPUT, OUTPUT, ERROROUTPUT in Erstellen der Konfigurationsdatei für Backint for MaxDB)

Absoluter Pfad und Name der Standard-Ausgabedatei

OUTPUT FILE FOR BACKINT: <absolute_path>/<file_name>

Absoluter Pfad und Name der Standard-Fehlerausgabedatei

ERRORFILE FOR BACKINT: <absolute_path>/<file_name>

Maximale Wartezeit in Sekunden zwischen der Erstellung einer temporären Datei und dem Beginn ihres Sicherns mit Backint for Oracle

MAXIMAL DELAY OF BACKINT CALL: <number>

Vorschlagswert: 10
Angabe zur Verhinderung von Deadlocks in Ausnahmesituationen beim parallelen Sichern oder Wiederherstellen

Wenn die temporären Dateien unterschiedlich schnell erzeugt werden und bereits eine temporäre Datei komplett vorliegt, wartet das Adapterprogramm maximal für die hier angegebene Zeitdauer auf die komplette Erstellung einer anderen temporären Datei. Wenn innerhalb der angegebenen Zeitdauer keine weitere Datei erstellt wird, wird die bereits erzeugte temporäre Datei gesichert.

Wählen Sie die Zeitdauer groß genug, um die konfigurierte Anzahl temporärer Dateien (FILES PER BACKINT CALL:) zu sichern. Stellen Sie gleichzeitig sicher, das damit das Ende des Sicherungsvorganges nicht zu lange hinausgezögert wird.

Angabe, ob das Adapterprogramm den abschließenden Schrägstrich (/ oder \) eines absoluten Verzeichnisnamens für Backint for Oracle ignorieren soll.

OMIT LAST DIRECTORY DELIMITER ON RESTORE: <option>

<option> ::= YES | NO

NO: Vorschlagswert
der Schrägstrich wird nicht ignoriert.
 YES: Der Schrägstrich wird ignoriert.
Verwenden Sie diese Option, um Probleme mit Backint for Oracle-Implementierungen zu vermeiden, die am Ende eines Verzeichnisnamens keinen abschließenden Schrägstrich (/ oder \) erwarten.
Dieser Parameter wird für die folgenden MaxDB-Versionen ab den angegebenen Build-Nummern unterstützt:
7.4.03 ab Build 000, 7.4.02 ab Build 002, 7.3.00 ab Build 021, 7.2.05 ab Build 016

Wert der Umgebungsvariablen BI_CALLER

BI_CALLER_VALUE: <value>

Setzen Sie diesen Parameter nur, wenn das Sicherungswerkzeug das Setzen dieses Parameters verlangt. Gemäss Systemvorschlag wird die Variable BI_CALLER vor dem Aufrufen von Backint for Oracle aus der Umgebung entfernt. Bei den meisten Backint for Oracle-Implementierungen muss dieser Wert nicht gesetzt werden, da diese das Fehlern der Umgebungsvariablen BI_CALLER zulassen. Dieser Parameter wird für die folgenden MaxDB-Versionen ab den angegebenen Build-Nummern unterstützt:
alle Versionen ab 7.4.04 Build 000, 7.4.03 ab Build 006, 7.4.02 ab Build 016, 7.3.0 ab Build 029, 7.2.05 ab Build 025

Siehe auch:

Beispiel einer Parameterdatei für das MaxDB-Adapterprogramm


Beispiel einer Parameterdatei für das MaxDB-Adapterprogramm (MaxDB: Anschluss Externer Sicherungswerkzeuge)

Beispiel einer Parameterdatei für das MaxDB-Adapterprogramm

Verwendung

Sie können sich das Erstellen der Parameterdatei für das MaxDB-Adapterprogramm erleichtern, wenn Sie folgendes Beispiel verwenden und Ihren Erfordernissen anpassen. Wenn Sie dabei erreichen wollen, dass ein bestimmter Parameter nicht über die Parameterdatei gesetzt wird, müssen Sie das entsprechende Schlüsselwort ungültig machen oder löschen.

Dateiinhalt

STAGING AREA:                  D:\TEMP\STAGE1 1 GB
STAGING AREA:                  E:\TEMP\STAGE2 1024 MB
STAGING AREA:                  F:\TEMP\STAGE3 1048576 KB
STAGING AREA:                  G:\TEMP\STAGE4 1073741824

FILES PER BACKINT CALL:        2

BACKINT:                       C:\BackupTool\BIN\backint.exe
PARAMETERFILE OF BACKINT:      C:\BackupTool\CONF\backintoraconfig.utl

HISTORY FILE:                  C:\SAPDB\BackintHistory

INPUTFILE FOR BACKINT:         C:\TEMP\backint4Oracle.in
OUTPUTFILE FOR BACKINT:        C:\TEMP\backint4Oracle.out
ERRORFILE FOR BACKINT:         C:\TEMP\backint4Oracle.err

MAXIMAL DELAY OF BACKINT CALL: 30

Erläuterung

Schlüsselwort

Wert/e

Erläuterung

STAGING AREA:

D:\TEMP\STAGE1 1 GB
E:\TEMP\STAGE2 1024 MB
F:\TEMP\STAGE3 1048576 KB
G:\TEMP\STAGE4 1073741824

Das so konfigurierte Adapterprogramm kann maximal vier Pipes gleichzeitig sichern bzw. wiederherstellen. Die dabei erzeugten temporären Dateien erreichen eine Größe von einem Gigabyte, solange nicht das Ende der Pipe erreicht ist.

FILES PER BACKINT CALL:

2

Sobald zwei der vier temporären Dateien komplett erstellt wurden, werden diese durch den Aufruf des Backint for Oracle-Programms gesichert.

BACKINT:

C:\Backuptool\BIN\backint.exe

Der absolute Pfad des Backint for Oracle-Programms lautet: C:\Backuptool\BIN\backint.exe

PARAMETERFILE OF BACKINT:

C:\BackupTool\CONF\backint
oraconfig.utl

Der absolute Pfad der Konfigurationsdatei des Backint for Oracle-Programms lautet: C:\BackupTool\CONF\backintoraconfig.utl.

HISTORY FILE:

C:\SAPDB\BackintHistory

Das Adapterprogramm hinterlegt die Sicherungshistorie am Ende jeder Sicherung unter dem Pfad C:\SAPDB\BackintHistory und sichert diese durch einen weiteren Aufruf des Backint for Oracle-Programms.

INPUTFILE FOR BACKINT:

C:\TEMP\backint4Oracle.in

Standardeingabe für Backint for Oracle: C:\TEMP\backint4Oracle.in

OUTPUTFILE FOR BACKINT:

C:\TEMP\backint4Oracle.out

Standardausgabe für Backint for Oracle: C:\TEMP\backint4Oracle.out

ERRORFILE FOR BACKINT:

C:\TEMP\backint4Oracle.err

Standard-Fehlerausgabe für Backint for Oracle: C:\TEMP\backint4Oracle.err

MAXIMAL DELAY OF BACKINT CALL:

30

Wenn die temporären Dateien unterschiedlich schnell erzeugt werden und bereits eine temporäre Datei komplett vorliegt, wartet das Adapterprogramm maximal 30 Sekunden auf die komplette Erstellung einer der anderen temporären Dateien. Wird keine dieser Dateien innerhalb von 30 Sekunden erstellt, wird die bereits erstellte temporäre Datei unter Verwendung von Backint for Oracle gesichert.


Erstellen der Konfigurationsdatei für Backint for MaxDB (MaxDB: Anschluss Externer Sicherungswerkzeuge)

Erstellen der Konfigurationsdatei für Backint for MaxDB

Verwendung

Sie konfigurieren die MaxDB-Software mit dem Ziel, die MaxDB-Datenbankwerkzeuge zum Sichern, Wiederherstellen, Entladen oder Laden von Daten an ein externes Sicherungswerkzeug anzuschließen.

Mit der Konfigurationsdatei für Backint for MaxDB teilen Sie dem Database Manager mit, wo das Backint for MaxDB-Programm abgelegt ist und wie es angesprochen werden soll.

Fall 1: Anschluss an Backint for Oracle über das MaxDB-Adapterprogramm

Wenn Sie für ein MaxDB-Datenbanksystem ein externes Sicherungswerkzeug mit einer Backint for Oracle-Schnittstelle verwenden wollen, müssen Sie zunächst den Anschluss von MaxDB an das Backint for Oracle-Programm konfigurieren (Konfiguration des Backint for Oracle-Anschlusses). Das Erstellen der Konfigurationsdatei für Backint for MaxDB ist dabei einer der notwendigen Schritte.

(Siehe auch: Funktionsweise des MaxDB-Adapterprogramms)

Fall 2 - Anschluss an die Backint for MaxDB-Schnittstelle eines externen Sicherungswerkzeugs (Fremdhersteller)

Wenn Sie für ein MaxDB-Datenbanksystem ein externes Sicherungswerkzeug mit einer Backint for MaxDB-Schnittstelle verwenden wollen, müssen Sie eine Konfigurationsdatei erstellen. Diese entspricht im Wesentlichen der Konfigurationsdatei gemäß Fall 1. Unterschiede sind in der nachfolgenden Beschreibung berücksichtigt.

Es wird vorausgesetzt, dass die Backint for MaxDB-Schnittstelle des Herstellers des externen Sicherungswerkzeugs der Backint for MaxDB-Spezifikation entspricht (siehe auch: Dokumentation Backint for MaxDB).

Vorgehensweise

In jeder Zeile der Konfigurationsdatei legen Sie einen Parameter des Database Manager fest. Dazu müssen Sie am Anfang jeder Zeile das Schlüsselwort für den Parameter und anschließend den oder die gewünschten Wert/e angeben. Zeilen, die nicht durch Schlüsselwörter eingeleitet werden, werden vom System ignoriert.

Syntax

<key_string> <value_string>

<key_string> | Schlüsselwort für einen Parameter, kann aus einem oder mehreren Wörtern bestehen
<value_string> | Wert/e des Parameters

Sie können für den Anschluss von Backint for MaxDB an den Database Manager folgende Parameter definieren:

Parameter

Syntax

Beschreibung

Absoluter Pfad und Name des Backint-Programms

BACKINT <absolute_path>/<file_name>

Fall 1 - Anschluss an eine Backint for Oracle-Schnittstelle über das MaxDB-Adapterprogramm: Geben Sie den absoluten Pfad und Namen des mit MaxDB ausgelieferten Adapterprogramms an.

Fall 2 - Anschluss an die Backint for MaxDB-Schnittstelle eines externen Sicherungswerkzeugs (Fremdhersteller): Geben Sie den absoluten Pfad und Namen des Backint for MaxDB-Programms an.

Absoluter Pfad und Name der Standard-Eingabedatei

INPUT <absolute_path>/<file_name>

Diese Dateien legt der Database Manager temporär an und verwendet sie als Standardeingabe, -ausgabe und -fehlerausgabe von Backint for MaxDB.

Absoluter Pfad und Name der Standard-Ausgabedatei

OUTPUT <absolute_path>/<file_name>

Absoluter Pfad und Name der Standard-Fehlerausgabedatei

ERROROUTPUT <absolute_path>/<file_name>

Absoluter Pfad und Name der Konfigurationsdatei des Backint for MaxDB-Programms

PARAMETERFILE <absolute_path>/<file_name>

Fall 1 - Anschluss an eine Backint for Oracle-Schnittstelle über das MaxDB-Adapterprogramm: Geben Sie den absoluten Pfad und Namen der Parameterdatei des Adapterprogramms an.

Fall 2 - Anschluss an die Backint for MaxDB-Schnittstelle eines externen Sicherungswerkzeugs (Fremdhersteller): Geben Sie den absoluten Pfad und Namen einer eventuell zu definierenden Konfigurationsdatei des Backint for MaxDB-Programms an.

Zeitangabe in sec,

Zeit nach der sich das Sicherungswerkzeug selbst beendet, nachdem der Datenbankkern alle Daten erfolgreich übertragen hat

TIMEOUT_SUCCESS <number>

Vorschlagswert: 300

Fall 1 - Anschluss an eine Backint for Oracle-Schnittstelle über das MaxDB-Adapterprogramm: Wählen Sie den Wert groß genug, damit das Sicherungswerkzeug alle übertragenenen Daten in dieser Zeit auf Band sichern kann. Maßgeblich dafür sind die Anzahl der temporären Dateien und ihre konfigurierte Größe.

Fall 2 - Anschluss an die Backint for MaxDB-Schnittstelle eines externen Sicherungswerkzeugs (Fremdhersteller): Zeitspanne, nach der der Database Manager das externe Sicherungswerkzeug beenden soll, wenn alle Daten an die Pipes übergeben wurden.

Beachten Sie, dass sich das Sicherungswerkzeug nach der definierten Zeitspanne in jedem Fall beendet, unabhängig davon, ob bereits alle vom Datenbankkern übertragenen Daten tatsächlich vom Sicherungswerkzeug gesichert wurden.

Zeitangabe in sec,

Zeit nach der sich das Sicherungswerkzeug selbst beendet, wenn der Datenbankkern den Sicherungsvorgang aufgrund eines Fehler abgebrochen hat

TIMEOUT_FAILURE <number>

Vorschlagswert: 300

Definieren Sie einen ausreichend großen Wert, der dem Sicherungswerkzeug ermöglicht, alle vom Datenbankkern übertragenen Daten noch zu sichern, da das Sicherungswerkzeug sich nach dem festgelegten Time-out in jedem Fall beendet, auch wenn noch nicht alle übertragenen Daten gesichert wurden. Andererseits sollte der Wert nicht größer als notwendig sein. Nur so können Sie vermeiden, dass ein vom Datenbankkern abgebrochener Sicherungsvorgang das Starten weiterer Sicherungsvorgänge (beispielsweise bei automatischen Nachtläufen) blockiert.

Absoluter Pfad des Arbeitsverzeichnisses der Quelldatenbank

ORIGINAL_RUNDIRECTORY <absolute_path>

Vorschlagswert: Arbeitsverzeichnis der aktuell verwendeten Datenbankinstanz

Dieser Parameter ist nur bei einer Migration anzugeben.
Voraussetzung für eine Migration von einem Rechner auf einen anderen ist, dass das verwendete Backint for MaxDB Sicherungen des Quellrechners auf dem Zielrechner zur Verfügung stellen kann.

Beachten Sie bei der Angabe dieses Wertes Groß- und Kleinschreibung.

Siehe auch:

Beispiel einer Konfigurationsdatei für Backint for MaxDB


Beispiel einer Konfigurationsdatei für Backint for MaxDB (MaxDB: Anschluss Externer Sicherungswerkzeuge)

Beispiel einer Konfigurationsdatei für Backint for MaxDB

Verwendung

Sie können sich das Erstellen der Konfigurationsdatei für Backint for MaxDB erleichtern, wenn Sie folgendes Beispiel verwenden und Ihren Erfordernissen anpassen. Wenn Sie dabei erreichen wollen, dass ein bestimmter Parameter nicht über die Parameterdatei gesetzt wird, müssen Sie das entsprechende Schlüsselwort ungültig machen oder löschen.

Dateiinhalt

Fall 1: - Anschluss an eine Backint for Oracle-Schnittstelle über MaxDB-Adapterprogramm:

BACKINT               C:\SAPDB\TST\db\bin\backint.exe
INPUT                 C:\TEMP\backint4MAXDB.in
OUTPUT                C:\TEMP\backint4MAXDB.out
ERROROUTPUT           C:\TEMP\backint4MAXDB.err
PARAMETERFILE         C:\SAPDB\WRK\TST\backintmaxdbconfig.par
 TIMEOUT_SUCCESS       600
TIMEOUT_FAILURE       300
ORIGINAL_RUNDIRECTORY C:\SAPDB\wrk\CUSTOMERDB

Fall 2: - Anschluss an die Backint for MaxDB-Schnittstelle eines externen Sicherungswerkzeugs (Fremdhersteller)

BACKINT               C:\Backuptool\backint.exe
INPUT                 C:\TEMP\backint4MAXDB.in
OUTPUT                C:\TEMP\backint4MAXDB.out
ERROROUTPUT           C:\TEMP\backint4MAXDB.err
PARAMETERFILE         C:\SAPDB\WRK\TST\backintmaxdbconfig.par
TIMEOUT_SUCCESS       600
TIMEOUT_FAILURE       300
ORIGINAL_RUNDIRECTORY C:\SAPDB\wrk\CUSTOMERDB

Erläuterung

Schlüsselwort | Wert | Erläuterung
BACKINT | C:\Backuptool\backint.exe | Der absolute Pfad des Backint for MaxDB-Programms ist C:\Backuptool\backintsapdb.exe.
INPUT | C:\TEMP\backint4MAXDB.in | Der absolute Pfad der Standardeingabe ist C:\TEMP\backint4MAXDB.in
OUTPUT | C:\TEMP\backint4MAXDB.out | Der absolute Pfad der Standardausgabe ist C:\TEMP\backint4MAXDB.out
ERROROUTPUT | C:\TEMP\backint4MAXDB.err | Der absolute Pfad der Standardfehlerausgabe ist C:\TEMP\backint4MAXDB.err
PARAMETERFILE | C:\SAPDB\WRK\TST\adaptprog.par | Der absolute Pfad der Parameterdatei des Adapterprogramms ist C:\SAPDB\WRK\TST\adaptprog.par.
TIMEOUT_SUCCESS | 600 | Im Erfolgsfall wartet der Database Manager maximal 10 Minuten, um Backint for MaxDB zu beenden.
TIMEOUT_FAILURE | 300 | Im Fehlerfall wartet der Database Manager maximal 5 Minuten, um Backint for MaxDB zu beenden.
ORIGINAL_RUNDIRECTORY | C:\SAPDB\wrk\ CUSTOMERDB | Das Arbeitsverzeichnis der Original-Datenbankinstanz ist C:\SAPDB\wrk\P1.


Exportieren von Umgebungsvariablen für das externe Sicherungswer (MaxDB: Anschluss Externer Sicherungswerkzeuge)

Exportieren von Umgebungsvariablen für das externe Sicherungswerkzeug

Verwendung

Falls der Hersteller des externen Sicherungswerkzeugs den Export von Umgebungsvariablen vorschreibt, können Sie diese vor dem Aufrufen des externen Sicherungswerkzeugs vom Database Manager CLI in die Umgebung exportieren lassen.

Das Exportieren von Umgebungsvariablen wird für die folgenden Datenbankversionen ab den angegebenen Build-Nummern unterstützt:
7.2.05 ab Build 016, 7.3.00 ab Build 021, 7.4.02 ab Build 002, 7.4.03 ab Build 000

Syntax

dbmcli -d <database_name> -n <database_server> -u <dbm_user>,<password> dbm_configset -raw set_variable_<number> <variable>=<value>

<number> | Frei wählbare Nummerierung für die zu setzenden Variablen (0<= number <=100)
<variable> | Umgebungsvariable
<value> | Wert der Umgebungsvariablen

Wenn Sie für eine Umgebungsvariable mehrere Werte hinterlegen, wird dennoch nur der kleinste dieser Werte für diese Umgebungsvariable exportiert.
Beispiel:
Sie haben folgende DBM-Kommandos eingegeben:

dbmcli ... dbm_configset -raw <variable> <value1>
dbmcli ... dbm_configset -raw set_variable_<number> <variable>=<value2>

Wenn number1 < number2, dann exportiert der Database Manager nur den Wert <value1> für die Umgebungsvariable <variable>, andernfalls nur den Wert <value2>.

Wenn Sie eine der Umgebungsvariablen TEMP, TMP, ADINT, ADA_OPT, NSR_ENV, NSR_POOL, NSR_EXPIRE oder BSI_ENV sowohl mit
dbmcli ... dbm_configset -raw <variable> <value1>
bekannt machen als auch mit
dbmcli ... dbm_configset -raw set_variable_<number> <variable>=<value2>
exportieren, dann wird die Umgebungsvariable mit dem Wert <value1> exportiert, bevor ein externes Sicherungswerkzeug aufgerufen wird.


Setzen der Umgebungsvariablen BSI_ENV (MaxDB: Anschluss Externer Sicherungswerkzeuge)

Setzen der Umgebungsvariablen BSI_ENV

Verwendung

Damit der Database Manager oder Loader auf dem Datenbankrechner auf die Konfigurationsdatei für Backint for MaxDB zugreifen können, müssen Sie deren absoluten Pfad in der Umgebungsvariablen BSI_ENV mit Hilfe des Database Manager CLI explizit hinterlegen.

Andernfalls verwendet das System die in der folgenden Tabelle angegebene Datei als Konfigurationsdatei:

Betriebssystem | Datei
UNIX | <run_directory>/bsi.env
Microsoft Windows | <run_directory>\bsi.env

Syntax

dbmcli -d <database_name> -n <database_server> -u <dbm_user>,<password> dbm_configset -raw BSI_ENV <value>

<value>

Wert der Umgebungsvariablen BSI_ENV

Siehe auch:

Database Manager CLI, Abschnitt Ändern eines Konfigurationsparameters des Database Manager


Setzen werkzeugunabhängiger Umgebungsvariablen für den Database (MaxDB: Anschluss Externer Sicherungswerkzeuge)

Setzen werkzeugunabhängiger Umgebungsvariablen für den Database Manager

Verwendung

Damit der Database Manager auf dem Datenbankrechner auf von ihm benötigte Variablen zugreifen kann oder um zu erzwingen, dass der Database Manager vor dem Aufruf eines externen Sicherungswerkzeugs Umgebungsvariablen exportiert, müssen Sie diese Umgebungsvariablen mit Hilfe des Database Manager CLI explizit hinterlegen.

Sie können diese Umgebungsvariablen für jedes externe Sicherungswerkzeug setzen. Die so definierten Werte übersteuern die eventuell in der Umgebung oder in der Konfigurationsdatei des externen Sicherungswerkzeugs definierten Werte für diese Variablen.

¡ Wenn Sie die Umgebungsvariablen TEMP oder TMP übersteuern wollen, verfahren Sie weiter wie im Abschnitt Setzen vom TEMP oder TMP beschrieben.

¡ Wenn Sie für externe Sicherungswerkzeuge von Fremdherstellern Timeouts definieren wollen, verfahren Sie weiter wie im Abschnitt Setzen von DBM_TTO_SUCCESS und DBM_TTO_FAILURE beschrieben.

Sie können damit definieren, wie lange das externe Sicherungswerkzeug Zeit haben soll, um die Sicherung zu beenden, nachdem alle Daten an die Pipe/s übergeben wurden, oder nach welcher Zeitspanne im Falle eines Fehlers der Vorgang abgebrochen werden soll.

Die gleiche Vorgehensweise verwenden Sie für Backint for MaxDB, wenn Sie die in der Konfigurationsdatei definierten Werte für TIMEOUT_SUCCESS und/oder TIMEOUT_FAILURE übersteuern wollen.


Setzen von TEMP oder TMP (MaxDB: Anschluss Externer Sicherungswerkzeuge)

Setzen von TEMP oder TMP

Verwendung

Sie setzen mit Hilfe des Database Manager CLI die Umgebungsvariablen TEMP oder TMP. Die so definierten Werte übersteuern die in der Konfigurationsdatei des Database Manager oder der Umgebung bereits hinterlegten Werte für TEMP oder TMP.

Syntax

dbmcli –d <database_name> -n <database_server> -u <dbm_user>, <password> dbm_configset –raw <variable> <value>

<variable> | Name der Umgebungsvariablen TEMP | TMP
<value> | absoluter Pfad und Name des Verzeichnisses, in dem der Database Manager temporäre Dateien erzeugt


Setzen von DBM_TTO_SUCCESS und DBM_TTO_FAILURE (MaxDB: Anschluss Externer Sicherungswerkzeuge)

Setzen von DBM_TTO_SUCCESS und DBM_TTO_FAILURE

Verwendung

Sie definieren mit Hilfe des Database Manager CLI die Werte für die Umgebungsvariablen DBM_TTO_SUCCESS und DBM_TTO_FAILURE.

Mit der Variablen DBM_TTO_SUCCESS definieren Sie den Zeitraum, nach dem der Database Manager das externe Sicherungswerkzeug beenden soll, wenn der Datenbankkern alle Daten an die Pipes oder Dateien übertragen hat. Es wird auch dann beendet, wenn noch nicht alle vom Datenbankkern übertragenen Daten in Pipes oder Dateien gesichert wurden, um den Sicherungsvorgang bei einem eventuellen Fehler des Sicherungswerkzeugs abzuschließen.

Für Backint for MaxDB übersteuern Sie damit den Wert des Parameters TIMEOUT_SUCCESS in der Konfigurationsdatei für Backint for MaxDB.

Mit der Variablen DBM_TTO_FAILURE definieren Sie den Zeitraum, nach dem der Database Manager das externe Sicherungswerkzeug beenden soll, wenn der Datenbankkern den Sicherungsvorgang aufgrund eines Fehlers abgebrochen hat. Es wird auch dann beendet, wenn der Datenbankkern noch nicht alle Daten an die Pipes oder Dateien übertragen hat, um beispielsweise bei automatischen Nachtläufen das Starten weiterer Sicherungsvorgänge zu ermöglichen.

Für Backint for MaxDB übersteuern Sie damit den Wert des Parameters TIMEOUT_FAILURE in der Konfigurationsdatei für Backint for MaxDB.

Syntax

dbmcli –d <database_name> -n <database_server> -u <dbm_user>, <password> dbm_configset –raw <variable> <value>

<variable> | Name der Umgebungsvariablen DBM_TTO_SUCCESS | DBM_TTO_FAILURE
<value> | Wert des Time-outs in Sekunden


Anschluss an eine Backint for MaxDB-Schnittstelle (MaxDB: Anschluss Externer Sicherungswerkzeuge)

Anschluss an eine Backint for MaxDB-Schnittstelle

Verwendung

Bislang sind externe Sicherungswerkzeuge, die über eine eigene Backint for MaxDB-Schnittstelle verfügen, noch in der Entwicklungsphase. Die Anforderungen an eine solche Schnittstelle sind in der Dokumentation Backint for MaxDB dokumentiert.

Die im Abschnitt Anschluss an eine Backint for Oracle-Schnittstelle dokumentierte Backint for MaxDB-Implementierung mit Hilfe eines Adapterprogramms verwendet ein von SAP entwickeltes und mit dem MaxDB-Softwarepaket ausgeliefertes Programm, das für den Anschluss an Backint for Oracle bestimmt ist. Die dafür zu erstellende Konfigurationsdatei entspricht jedoch der Konfigurationsdatei, die auch für ein externes Sicherungswerkzeug mit eigener Backint for MaxDB-Schnittstelle zu erstellen wäre, wenn vom Hersteller die in der Dokumentation Backint for MaxDB beschriebenen Anforderungen erfüllt werden.

Voraussetzungen

Die Version Ihres MaxDB-Datenbanksystems unterstützt den Anschluss einer Backint for MaxDB-Schnittstelle (Einschränkungen für die Verwendung von Backint for MaxDB).

Vorgehensweise

Für den Anschluss an eine Backint for MaxDB-Schnittstelle führen Sie folgende Schritte aus:

...

1. Erstellen der Konfigurationsdatei für Backint for MaxDB, Fall 2

2. Exportieren von Umgebungsvariablen des Externen Sicherungswerkzeugs, falls dies vom Hersteller des externen Sicherungswerkzeugs vorgesehen ist.

3. Setzen der Umgebungsvariablen BSI_ENV, für den Database Manager

4. Gegebenenfalls Setzen werkzeugunabhängiger Umgebungsvariablen für den Database Manager


Einschränkungen für die Verwendung von Backint for MaxDB (MaxDB: Anschluss Externer Sicherungswerkzeuge)

Einschränkungen für die Verwendung von Backint for MaxDB

Der Anschluss von MaxDB an ein externes Sicherungswerkzeug über eine Backint for MaxDB-Schnittstelle ist für die folgenden MaxDB-Versionen ab den angegebenen Build-Nummern möglich. Es stehen die jeweils angegebenen MaxDB-Datenbankwerkzeuge zur Verfügung.

Die aufgeführten Datenbankversionen gelten für jeden Datenbankinstanztyp.

MaxDB-Versionen und –Werkzeuge für das Sichern und Wiederherstellen über eine Backint for MaxDB-Schnittstelle

Version | Build-Nr. | Verfügbare MaxDB-Werkzeuge
7.4.03 | ab 000 | Database Manager CLI, Database Manager GUI
 | ab 002 | auch Web DBM
7.4.02 | ab 000 | Database Manager CLI, Database Manager GUI
 | ab 011 | auch Web DBM
7.4.01 | ab 003 | Database Manager CLI, Database Manager GUI
7.3.32 | ab 000 | Database Manager CLI, Database Manager GUI
7.3.00 | ab 015 | Database Manager CLI, Database Manager GUI
 | ab 025 | auch Web DBM
7.2.05 | ab 008 | Database Manager CLI, Database Manager GUI (nur zum Sichern)*

* Mit dieser Version des Database Manager GUI können Sie nur sichern und nicht wiederherstellen. Wenn Sie jedoch eine neuere Version des Database Manager GUI installiert haben, die das Wiederherstellen unterstützt (z. B. 7.4.03), dann können Sie damit auch Datenbanken älterer Versionen (z. B. 7.2.05) wiederherstellen, da dieses Datenbankwerkzeug abwärts kompatibel ist.


Anschluss an TSM (MaxDB: Anschluss Externer Sicherungswerkzeuge)

Anschluss an TSM

MaxDB unterstützt den Anschluss an das externe Sicherungswerkzeug TSM der Firma IBM/Tivoli für das Sichern, Wiederherstellen, Laden und Entladen von Daten nach entsprechender Konfiguration der MaxDB-Software.

Beachten Sie die versionsspezifischen Einschränkungen für die Verwendung von TSM bzw. für die Möglichkeit, Daten parallel zu sichern oder wiederherzustellen.

Siehe auch:

Einschränkungen für die Verwendung von TSM

Einschränkungen für das Parallele Sichern und Wiederherstellen mit TSM

Konfiguration des TSM-Anschlusses


Einschränkungen für die Verwendung von TSM (MaxDB: Anschluss Externer Sicherungswerkzeuge)

Einschränkungen für die Verwendung von TSM

Der Anschluss von MaxDB an das externe Sicherungswerkzeug TSM ist für die folgenden Versionen ab den angegebenen Build-Nummern möglich. Es stehen die jeweils angegebenen MaxDB-Datenbankwerkzeuge zur Verfügung.

Die aufgeführten Datenbankversionen gelten für jeden Datenbankinstanztyp.

MaxDB-Versionen und –Werkzeuge für das Sichern und Wiederherstellen mittels TSM

Version | Build-Nr. | Verfügbare MaxDB-Werkzeuge
7.4.03 | ab 000 | Database Manager CLI, Database Manager GUI
 | ab 002 | auch Web DBM
7.4.02 | ab 000 | Database Manager CLI, Database Manager GUI
 | ab 011 | auch Web DBM
7.3.32 | ab 000 | Database Manager CLI, Database Manager GUI (nur zum Sichern)*
7.3.00 | ab 000 | Database Manager CLI, Database Manager GUI (nur zum Sichern)*
 | ab 015 | Database Manager CLI, Database Manager GUI
 | ab 025 | auch Web DBM
7.2.05 | ab 000 | Database Manager CLI, Database Manager GUI (nur zum Sichern)*

* Mit dieser Version des Database Manager GUI können Sie nur sichern und nicht wiederherstellen. Wenn Sie jedoch eine neuere Version des Database Manager GUI installiert haben, die das Wiederherstellen unterstützt (z. B. 7.4.03), dann können Sie damit auch Datenbanken älterer Versionen (z. B. 7.2.05) wiederherstellen, da dieses Datenbankwerkzeug abwärts kompatibel ist.


Einschränkungen für das Parallele Sichern und Wiederherstellen m (MaxDB: Anschluss Externer Sicherungswerkzeuge)

Einschränkungen für das Parallele Sichern und Wiederherstellen mit TSM

Parallele Sicherungen sind nur für Datensicherungen möglich.

Paralleles Sichern und Wiederherstellen mit TSM ist für die folgenden MaxDB-Versionen ab den angegebenen Build-Nummern möglich. Es stehen die jeweils angegebenen MaxDB-Datenbankwerkzeuge zur Verfügung.

MaxDB-Versionen und –Werkzeuge für das parallele Sichern und Wiederherstellen mit TSM

Version | Build-Nr. | Verfügbare MaxDB-Werkzeuge
7.4.03 | ab 000 | Database Manager CLI, Database Manager GUI
 | ab 002 | auch Web DBM
7.4.02 | ab 003 | Database Manager CLI, Database Manager GUI
 | ab 011 | auch Web DBM
7.3.00 | ab 021 | Database Manager CLI, Database Manager GUI
 | ab 025 | auch Web DBM
7.2.05 | ab 017 | Database Manager CLI, Database Manager GUI


Konfiguration des TSM-Anschlusses (MaxDB: Anschluss Externer Sicherungswerkzeuge)

Konfiguration des TSM-Anschlusses

Verwendung

Sie konfigurieren die MaxDB-Software mit dem Ziel, die MaxDB-Datenbankwerkzeuge zum Sichern, Wiederherstellen, Entladen oder Laden von Daten an das externe Sicherungswerkzeug TSM anzuschließen. Sie verwenden dazu den TSM-Client adint2. Sollte dieser auf der von Ihnen verwendeten Plattform nicht verfügbar sein, können Sie TSM auch über Backint for Oracle an MaxDB anschließen.

Siehe auch:

Anschluss an eine Backint for Oracle-Schnittstelle

Das Programm adint2 ist in einer Standardinstallation des TSM-Client nicht enthalten. Es wird von IBM separat bereitgestellt. Weitere Informationen dazu finden Sie unter der Adresse http://www.de.ibm.com.

Voraussetzungen

· Die Version Ihres MaxDB-Datenbanksystems unterstützt den Anschluss von TSM (Einschränkungen für die Verwendung von TSM).

· Sie verfügen über den TSM-Client adint2.

Vorgehensweise

...

1. Wenn Sie parallel sichern oder wiederherstellen wollen, prüfen Sie, ob die Version Ihres Datenbanksystems diese Aktion unterstützt (Einschränkungen für das Parallele Sichern und Wiederherstellen mit TSM).

2. Setzen der Umgebungsvariablen ADINT und ADA_OPT.

3. Gegebenenfalls Setzen werkzeugunabhängiger Umgebungsvariablen für den Database Manager


Setzen der Umgebungsvariablen ADINT und ADA_OPT (MaxDB: Anschluss Externer Sicherungswerkzeuge)

Setzen der Umgebungsvariablen ADINT und ADA_OPT

Verwendung

Damit der Database Manager und der Loader auf dem Datenbankrechner auf die benötigten Umgebungsvariablen ADINT und ADA_OPT zugreifen können, müssen Sie diese mit Hilfe des Database Manager CLI explizit hinterlegen.

Umgebungsvariable | Beschreibung
ADINT | Angabe des Verzeichnisses, in dem sich das Programm adint2 (UNIX) bzw. adint2.exe (Microsoft Windows) befindet. Geben Sie dieses Verzeichnis als absoluten Pfad an, d. h. ohne abschließenden Schrägstrich (/) oder inversen Schrägstrich (\).
ADA_OPT | Absoluter Name der adint2-Konfigurationsdatei. Eine Beispielkonfigurationsdatei initSID.utl finden Sie im Verzeichnis des Programms adint2.

Syntax

dbmcli -d <database_name> -n <database_server> -u <dbm_user>,<password> dbm_configset -raw <variable> <value>

<variable> | Umgebungsvariable ADINT | ADA_OPT
<value> | Wert der Umgebungsvariablen

Siehe auch:

Database Manager CLI , Abschnitt Ändern eines Konfigurationsparameters des Database Manager


Anschluss an NetWorker (MaxDB: Anschluss Externer Sicherungswerkzeuge)

Anschluss an NetWorker

MaxDB unterstützt den Anschluss an das externe Sicherungswerkzeug NetWorker der Firma Legato für das Sichern, Wiederherstellen, Laden und Entladen von Daten nach entsprechender Konfiguration der MaxDB-Software.

Beachten Sie die versionsspezifischen Einschränkungen für die Verwendung von NetWorker bzw. für die Möglichkeit, Daten parallel zu sichern oder wiederherzustellen.

Siehe auch:

Einschränkungen für die Verwendung von NetWorker

Einschränkungen für das Parallele Sichern und Wiederherstellen mit NetWorker

Konfiguration des NetWorker-Anschlusses


Einschränkungen für die Verwendung von NetWorker (MaxDB: Anschluss Externer Sicherungswerkzeuge)

Einschränkungen für die Verwendung von NetWorker

Der Anschluss von MaxDB an das externe Sicherungswerkzeug NetWorker der Firma Legato ist für die folgenden Datenbankversionen ab den angegebenen Build-Nummern möglich. Es stehen die jeweils angegebenen MaxDB-Datenbankwerkzeuge zur Verfügung.

Die aufgeführten Datenbankversionen gelten für jeden Datenbankinstanztyp.

MaxDB-Versionen und –Werkzeuge für das Sichern und Wiederherstellen mittels NetWorker

Version | Build-Nr | Verfügbare MaxDB-Werkzeuge
7.4.03 | ab 000 | Database Manager CLI, Database Manager GUI
 | ab 002 | auch Web DBM
7.4.02 | ab 000 | Database Manager CLI, Database Manager GUI
 | ab 011 | auch Web DBM
7.3.32 | ab 000 | Database Manager CLI, Database Manager GUI
7.3.00 | ab 005 | Database Manager CLI, Database Manager GUI (nur zum Sichern)*
 | ab 015 | Database Manager CLI, Database Manager GUI
 | ab 025 | auch Web DBM
7.2.05 | ab 001 | Database Manager CLI, Database Manager GUI (nur zum Sichern)*

* Mit dieser Version des Database Manager GUI können Sie nur sichern und nicht wiederherstellen. Wenn Sie jedoch eine neuere Version des Database Manager GUI installiert haben, die das Wiederherstellen unterstützt (z. B. 7.4.03), dann können Sie damit auch Datenbanken älterer Versionen (z. B. 7.2.05) wiederherstellen, da dieses Datenbankwerkzeug abwärts kompatibel ist.

Folgende Networker-Versionen sind mindestens erforderlich:

Betriebssystem | NetWorker-Version
UNIX | 5.5
Microsoft Windows | 5.7


Einschränkungen für das Parallele Sichern und Wiederherstellen m (MaxDB: Anschluss Externer Sicherungswerkzeuge)

Einschränkungen für das Parallele Sichern und Wiederherstellen mit NetWorker

Parallele Sicherungen sind nur für Datensicherungen möglich.

Paralleles Sichern und Wiederherstellen mit NetWorker ist für die folgenden MaxDB-Versionen ab den angegebenen Build-Nummern möglich. Es stehen die jeweils angegebenen MaxDB-Datenbankwerkzeuge zur Verfügung.

MaxDB-Versionen und –Werkzeuge für das parallele Sichern und Wiederherstellen mit NetWorker

Version | Build-Nr. | Verfügbare MaxDB-Werkzeuge
7.4.03 | ab 000 | Database Manager CLI, Database Manager GUI
 | ab 002 | auch Web DBM
7.4.02 | ab 000 | Database Manager CLI, Database Manager GUI
 | ab 011 | auch Web DBM
7.3.32 | ab 000 | Database Manager CLI, Database Manager GUI
7.3.00 | ab 009 | Database Manager CLI, Database Manager GUI (nur zum Sichern)*
 | ab 015 | Database Manager CLI, Database Manager GUI
 | ab 025 | auch Web DBM
7.2.05 | ab 004 | Database Manager CLI

* Mit dieser Version des Database Manager GUI können Sie nur sichern und nicht wiederherstellen. Wenn Sie jedoch eine neuere Version des Database Manager GUI installiert haben, die das Wiederherstellen unterstützt (z. B. 7.4.03), dann können Sie damit auch Datenbanken älterer Versionen (z. B. 7.2.05) wiederherstellen, da dieses Datenbankwerkzeug abwärts kompatibel ist.


Konfiguration des NetWorker-Anschlusses (MaxDB: Anschluss Externer Sicherungswerkzeuge)

Konfiguration des NetWorker-Anschlusses

Verwendung

Sie konfigurieren die MaxDB-Software mit dem Ziel, die MaxDB-Datenbankwerkzeuge zum Sichern, Wiederherstellen, Entladen oder Laden von Daten an das externe Sicherungswerkzeug NetWorker anzuschließen.

Voraussetzungen

Die Version Ihres MaxDB-Datenbanksystems unterstützt den Anschluss von NetWorker (Siehe: Einschränkungen für die Verwendung von NetWorker).

Vorgehensweise

...

1. Wenn Sie parallel sichern oder wiederherstellen wollen, prüfen Sie, ob die Version Ihres Datenbanksystems diese Aktion unterstützt (Einschränkungen für das Parallele Sichern und Wiederherstellen mit NetWorker).

2. Setzen der Umgebungsvariablen NSR_ENV

3. Erstellen der Konfigurationsdatei für NetWorker

Setzen Sie bei parallelen Sicherungen mit Datenbanken einer Version kleiner als 7.4.03 den NetWorker-Parameter Target Sessions für jedes Bandlaufwerk auf 1. (Siehe Dokumentation des Herstellers)

4. Gegebenenfalls Setzen werkzeugunabhängiger Umgebungsvariablen für den Database Manager


Setzen der Umgebungsvariablen NSR_ENV (MaxDB: Anschluss Externer Sicherungswerkzeuge)

Setzen der Umgebungsvariablen NSR_ENV

Damit der Database Manager und der Loader auf dem Datenbankrechner auf die Konfigurationsdatei für NetWorker zugreifen können, müssen Sie deren absoluten Pfad in der Umgebungsvariablen NSR_ENV mit Hilfe des Database Manager CLI explizit hinterlegen.

Andernfalls verwendet das System die in der folgenden Tabelle angegebene Datei als Konfigurationsdatei:

Betriebssystem | Datei
UNIX | /nsr/sapdb/env
Microsoft Windows | C:\Program Files\nsr\sapdb\env

Syntax

dbmcli -d <database_name> -n <database_server> -u <dbm_user>,<password> dbm_configset -raw NSR_ENV <value>

<value>

Wert der Umgebungsvariablen NSR_ENV

Siehe auch:

Database Manager CLI, Abschnitt Ändern eines Konfigurationsparameters des Database Manager


Erstellen der Konfigurationsdatei für NetWorker (MaxDB: Anschluss Externer Sicherungswerkzeuge)

Erstellen der Konfigurationsdatei für NetWorker

Sie konfigurieren die MaxDB-Software mit dem Ziel, die MaxDB-Datenbankwerkzeuge zum Sichern, Wiederherstellen, Entladen oder Laden von Daten an das externe Sicherungswerkzeug NetWorker anzuschließen.

Vorgehensweise

In jeder Zeile der Konfigurationsdatei legen Sie einen Parameter des Database Manager fest. Dazu müssen Sie am Anfang jeder Zeile das Schlüsselwort für den Parameter und anschließend den oder die gewünschten Wert/e angeben. Zeilen, die nicht durch Schlüsselwörter eingeleitet werden, werden vom System ignoriert.

Syntax

<key_string> <value_string>

<key_string> | Schlüsselwort für einen Parameter, kann aus einem oder mehreren Wörtern bestehen
<value_string> | Wert/e des Parameters

Sie können für den Anschluss von NetWorker and den Database Manager folgende Parameter definieren:

Parameter

Syntax

Beschreibung

Absoluter Pfad des Verzeichnisses, in dem NetWorker installiert ist

NSR_HOME <absolute_path>

In diesem Verzeichnis befinden sich die NetWorker-Programme SAVE, MMINFO und RECOVER.

Name des NetWorker-Server

NSR_HOST <name>

Name des NetWorker-Band-Pool

NSR_POOL <name>

Angabe übersteuert den im NetWorker konfigurierten Vorschlagswert für das Band-Pool

Verfallsdatum oder Verfallszeitraum der Sicherung

NSR_EXPIRE <value>

Angabe wird an das NetWorker-Programm SAVE übergeben und übersteuert den im NetWorker konfigurierten Vorschlagswert für das Verfallsdatum oder den Verfallszeitraum

Die zulässigen Werte entnehmen Sie der NetWorker-Dokumentation.

Angabe, welches der NetWorker-Programme SAVE und RECOVER mit der Option -v gestartet werden soll

NSR_NOTVERBOSE <option>

<option> ::= NONE | SAVE | RECOVER | "SAVE AND RECOVER"

Angabe für den Fall dass NetWorker-Programme die Option –v nicht unterstützen.

NONE: Vorschlagswert
SAVE und RECOVER werden mit der Option -v gestartet.

SAVE: SAVE wird ohne und RECOVER mit der Option -v gestartet.

RECOVER: SAVE wird mit und RECOVER ohne die Option -v gestartet.

"SAVE AND RECOVER": SAVE und RECOVER werden ohne die Option -v gestartet.

Angabe, ob die Ausgabe des NetWorker-Programms SAVE bei Sicherungen analysiert werden soll

NSR_USEOUTPUT <option>

<option> ::= SAVE | NONE

SAVE: Vorschlagswert
Die Ausgabe von SAVE wird auf Fehlermeldungen überprüft.

NONE: Die Ausgabe von SAVE wird nicht auf Fehlermeldungen überprüft. Es wird nur der Rückgabewert von SAVE verwendet. Da SAVE bei einem Fehler auch den Rückgabewert 0 liefern kann, sollten Sie den Wert NONE nicht verwenden.

Fehlermeldungen des NetWorker-Programms SAVE, die ignoriert werden sollen

NSR_IGNOREERROR <error_text>

Alle Fehlermeldungen der Form <pipe_name>:<error_text> werden ignoriert.

Wiederholen Sie diese Parameterdefinition für jede einzelne Fehlermeldung, die ignoriert werden soll.

Angabe, ob der Database Manager für Wiederherstellungen die Sicherungszeiten oder die NetWorker-Save-Set-Identifier verwenden soll

NSR_EBIDTYPE <option>

<option> ::= NSAVETIME | SSID

NSAVETIME: Vorschlagswert
Sicherungen werden über ihre Sicherungszeit identifiziert
Empfohlener Wert, da vom NetWorker-Programm RECOVER keine Anforderungen an die Rechte des Betriebssystembenutzers gestellt werden

SSID: Sicherungen werden über NetWorker-Save-Set-Identifier identifiziert

Wartezeit zwischen zwei SAVE-Aufrufen bei parallelen Sicherungen in sec.

NSR_SAVEINTERVAL <time>

Vorschlagswert: 10

Name, unter dem die Sicherung in NetWorker abgelegt werden soll

NSR_BACKUPNAME <name>

Vorschlagswert: Name der Datenbankinstanz

Beliebige Zeichenkette, die die Platzhalter <database_name> und/oder <node> enthalten kann. Bei Sicherung/Wiederherstellung mit NetWorker werden die Platzhalter durch den Namen der Datenbankinstanz und/oder des Datenbankrechners ersetzt.

Umgehung eines NetWorker-Softwarefehlers

NSR_AVOIDPSSIDBUG <option>

<option> ::= YES | NO

Ab NetWorker 6.0 ist ein Softwarefehler im MMINFO-Programm bei Verwendung der Option -q pssid=0 (PSSID-Bug) bekannt. Sie können ihn durch Setzen dieses Parameters umgehen.
NO: Vorschlagswert
Aufruf des NetWorker-Programms MMINFO mit der Option -q pssid=0
YES: Umgehung des Softwarefehlers im MMINFO-Programms (nur für NetWorker-Versionen ab 6.0)

Datumsformat, das für die Analyse der Ausgabe des NetWorker-Programms MMINFO verwendet wird

NSR_SAVETIMEFORMAT <format>

<format> ::= mm/dd/yy HH:MM:SS <option> | mm/dd/yyyy HH:MM:SS <option>

<option> ::= AM | PM

Notwendig, falls aktueller Vorschlagswert nicht der NetWorker-Ausgabe entspricht,

Vorschlagswerte sind
mm/dd/yy HH:MM:SS AM für Datumsausgaben von Networker, die 8 Zeichen lang sind, oder

mm/dd/yyyy HH:MM:SS AM: für Datumsausgaben von Networker, die 10 Zeichen lang sind

Sie können nur ein Format konfigurieren. Dies kann auch von den Vorschlagswerten verschieden sein, sofern die angegebenen Syntaxelemente verwendet werden.

yy|yyyy Jahr, mm Monat, dd Tag, HH Stunde, MM Minute, SS Sekunde, AM | PM vormittags oder nachmittags

Angabe, wie die durch das NetWorker-Programm SAVE übermittelte Größenangabe für Sicherungen verwendet werden soll.

NSR_SIZEROUNDUP <option>

<option> ::= NOROUNDUP | FIRSTDECIMAL | NORMAL | LASTINTEGER

Notwendig, falls die von SAVE übermittelte Größenangabe für die Sicherung abgerundet ist.

Dieser Parameter kann erst für die folgenden Datenbankversionen ab den angegebenen Build-Nummern verwendet werden: 7.2.05 ab Build 017, 7.3.00 ab Build 021, 7.4.03 ab Build 000.

NOROUNDUP: Vorschlagswert
 Die Größenangabe soll unverändert übernommen werden.

FIRSTDECIMAL: Die Größenangabe soll um 0.1 erhöht übernommen werden (Beispiel: Sicherungsgröße 14 GB wird mit 14.1 GB weiterverwendet).

NORMAL: Die Größenangabe soll um 0.5 erhöht übernommen werden.

LASTINTEGER: Die Größenangabe soll um 1 erhöht übernommen werden.

Zeichenkette, die als Wert für die MMINFO-Option –t verwendet wird

NSR_AVOIDTIMEBUG <value>

Notwendig, falls MMINFO von NetWorker ohne die Option –t nicht funktioniert.

Dieser Parameter kann erst für die folgenden Datenbankversionen ab den angegebenen Build-Nummern verwendet werden: 7.2.05 ab Build 018, 7.3.00 ab Build 022, 7.4.02 ab Build 004, 7.4.03 ab Build 000.

Die Zeichenkette muss dem von MMINFO erwarteten Format entsprechen. Wenn die Zeichenkette aus mehreren Worten besteht, müssen Sie diese in Hochkomma setzen.
Beachten Sie, dass Sicherungen, die nicht in der durch die Zeichenkette angegebenen Zeitspanne liegen, von MaxDB nicht mehr als für eine Wiederherstellung verfügbar betrachtet werden.

Siehe auch:

Beispiel einer Konfigurationsdatei


Beispiel einer Konfigurationsdatei für NetWorker (MaxDB: Anschluss Externer Sicherungswerkzeuge)

Beispiel einer Konfigurationsdatei für NetWorker

Verwendung

Sie können sich das Erstellen der Konfigurationsdatei für NetWorker erleichtern, wenn Sie folgendes Beispiel verwenden und Ihren Erfordernissen anpassen. Wenn Sie dabei erreichen wollen, dass ein bestimmter Parameter nicht über die Parameterdatei gesetzt wird, müssen Sie das entsprechende Schlüsselwort ungültig machen oder löschen.

Dateiinhalt

NSR_HOST           p47579
NSR_HOME           "C:\Program Files\nsr\bin"
NSR_POOL           MAXDBPOOL
NSR_EXPIRE         year

NSR_NOTVERBOSE     RECOVER
NSR_EBIDTYPE       NSAVETIME

NSR_USEOUTPUT      SAVE
NSR_IGNOREERROR    " unknown error 109 (0x6d)"
NSR_IGNOREERROR    " using unlocked access"
NSR_IGNOREERROR    " The pipe has been ended.”

NSR_SAVEINTERVAL   60
NSR_BACKUPNAME     MAXDB:<database_name>_on_<node>

NSR_AVOIDPSSIDBUG  YES
NSR_SAVETIMEFORMAT "yyyy/mm/dd HH:MM:SS AM"

Erläuterung

Schlüsselwort

Wert

Erläuterung

NSR_HOST

p47579

Der NetWorker-Server läuft auf dem Rechner p47579.

NSR_HOME

"C:\Program Files\nsr\bin"

Der NetWorker-Client ist auf dem Datenbank-Server im Verzeichnis C:\Program Files\nsr\bin installiert.

NSR_POOL

MAXDBPOOL

Sicherungen werden im NetWorker-Pool MAXDBPOOL abgelegt.

NSR_EXPIRE

year

Die Sicherungen haben eine Verfallszeit von einem Jahr.

NSR_NOTVERBOSE

RECOVERY

Das NetWorker-Programm RECOVER wird ohne die Option -v aufgerufen.

NSR_EDITTYPE

NSAVETIME

Zur Identifikation der Sicherungen wird die Sicherungszeit verwendet.

NSR_USEOUTPUT

SAVE

Die Ausgabe des NetWorker-Programms SAVE wird bei jeder Sicherung nach Fehlern durchsucht.

NSR_IGNOREERROR

" unknown error 109 (0x6d)"
 " using unlocked access"
" The pipe has been ended."

Die Meldungen
<pipe_name>: unknown error 109 (0x6d),
<pipe_name>: using unlocked access und
 <pipe_name>: The pipe has been ended werden für die verwendeten Pipes ignoriert.

NSR_SAVEINTERVAL

60

Zwischen zwei SAVE-Aufrufen bei parallelen Sicherungen vergehen 60 Sekunden.

NSR_BACKUPNAME

MAXDB:<database_name>_on_<node>

Wenn die Datenbankinstanz den Namen DB73 und der Datenbankrechner den Namen p47579 hat, werden die Sicherungen mit dem Namen MAXDB:DB73_on_p47579 in NetWorker angelegt.

NSR_AVOIDPSSIDBUG

YES

Das PSSID-Bug des NetWorker-Programms MMINFO wird umgangen.

NSR_SAVETIMEFORMAT

"yyyy/mm/dd HH:MM:SS AM"

Das NetWorker-Programm MMINFO liefert Datumsangaben in der angegebenen Form.
Beispiel: 2001/12/31 11:59:58 AM


Installationshandbuch

Einsatzmöglichkeiten

Diese Dokumentation beschreibt die Grundlagen für die Installation und Deinstallation von MaxDB-Software der Version 7.5 sowie Updates der Datenbanksoftware und die Aktualisierung von Datenbankinstanzen auf die Version 7.5 auf den von MaxDB unterstützten Betriebssystemplattformen.

Insbesondere werden folgende Programme beschrieben:

· SDBINST für die Installation/Update von Installationsprofilen sowie von einzelnen Softwarekomponenten unter Berücksichtigung der zwischen ihnen bestehenden Abhängigkeiten

· SDBUNINST für die Deinstallation von Softwarekomponenten unter Berücksichtigung der zwischen ihnen bestehenden Abhängigkeiten

· SDBUPD für die Aktualisierung von Datenbankinstanzen inklusive Software

.

Eine Kurzfassung der Beschreibung der Standard-Installation/-Update und der Standard-Deinstallation des gesamten MaxDB-Softwarepakets außerhalb von SAP-Systemen finden Sie in der Dokumentation Installationsleitfaden Datenbanksoftware

Allgemeine Informationen zum Datenbanksystem finden Sie in der Dokumentation Datenbankverwaltung .

Die Beschreibung der Aktualisierung von Datenbankinstanzen inklusive Software gilt auch für Datenbankinstanzen in SAP-Systemen.

Einschränkungen

Für die Installation/-Deinstallation von MaxDB-Software in SAP-Systemen ist diese Dokumentation nicht relevant. Die Installation/Deinstallation der für SAP-Systeme erforderlichen MaxDB-Software ist in SAP-spezifischen Leitfäden beschrieben. Diese Leitfäden finden SAP-Kunden auf dem SAP-Service-Marktplatz unter http://service.sap.com.

Einführungshinweise

Die Programme SDBINST, SDBUNINST und SDBUPD sind Bestandteil des Datenbank-Softwarepakets.

Open-Source-Benutzer können die gesamte Datenbanksoftware kostenlos unter der Adresse http://www.mysql.com/downloads herunterladen.

SAP Kunden erhalten die MaxDB-Software mit der SAP-Installations-CD oder über den Service Marktplatz unter http://service.sap.com.

Die nachfolgende Beschreibung basiert auf der Verwendung der online verfügbaren Software unter http://www.mysql.com/downloads und auf dem SAP-Service-Marktplatz.

Installation und Update der Datenbanksoftware

Deinstallation der Datenbanksoftware

Aktualisierung von Datenbankinstanzen inklusive Software


Installation und Update der Datenbanksoftware (MaxDB: Installationshandbuch)

Installation und Update der Datenbanksoftware

Einführungshinweise

Die Installation/Update der Datenbanksoftware können Sie interaktiv oder im Hintergrund ausführen.

Außerdem ist es möglich, vollständige Installationsprofile oder nur einzelne Softwarekomponenten zu installieren/aktualisieren. Das Installationsprogramm erkennt, ob es sich um eine Erstinstallation oder ein Update handelt.

Der Installationsvorgang wird vom System protokolliert.

Bevor Sie mit der Installation/Update der Datenbanksoftware beginnen,

· stellen Sie sicher, dass die häufigsten Fehlerursachen für einen Abbruch von Installation/Update ausgeschlossen sind (Fehlerbehandlung).

· informieren Sie sich im folgenden über die Vor- und Nachteile der interaktiven und der Hintergrundinstallation

· bedenken Sie, ob Sie eine oder mehrere Datenbankinstanzen benötigen werden.

Für den Fall, dass Sie mehrere Datenbankinstanzen planen, empfehlen wir Ihnen, für jede Datenbankinstanz eine gesonderte (parallele) Softwareinstallation. Sie erleichtern sich damit spätere Aktualisierungen, da im Falle eines Fehlers nur eine Datenbankinstanz davon betroffen wäre.

· wählen Sie das geeignete Installationsprofil aus oder entscheiden Sie, ob es im Sonderfall angeraten ist, anstelle der üblichen Installation eines Installationsprofils nur eine oder mehrere einzelne Softwarekomponenten zu installieren/aktualisieren. Allerdings ist die Installation einzelner Komponenten nur im Hintergrund möglich.

Wir empfehlen Ihnen, der Installation/Update mit Hilfe von Installationsprofilen immer den Vorrang zu geben. Sie können damit auf einfache und sichere Weise Datenbanksoftware-Installationen für jeden Zweck erhalten.

Konventionen

Variablen, Unterstützte Betriebssysteme und Plattformen, Berechtigungskonzept für UNIX-Betriebssysteme

Interaktive Installation/Update

Bei der interaktiven Installation/Update installieren Sie vollständige Installationsprofile. Das Installationsprogramm SDBINST erfragt alle notwendigen Informationen und bietet Ihnen für die zu installierenden Installationsprofile und die Installationspfade Vorschlagswerte und Optionen zur Auswahl an. Anschließend installiert das Programm die Softwarepakete und registriert sie.

Installation/Update im Hintergrund

Bei der Installation/Update im Hintergrund geben Sie mit Hilfe der Optionen für das Programm SDBINST zunächst alle notwendigen Informationen an. Der eigentliche Installationsvorgang läuft dann im Hintergrund ab.

Vorteile der Installation im Hintergrund

· Eine Installation/Upgrade im Hintergrund nimmt weniger Zeit in Anspruch.

· Sie haben die Möglichkeit, einzelne Softwarekomponenten, also Teile von Installationsprofilen, zu installieren oder zu aktualisieren.

· Sie können durch die Einbettung in ein Aufrufskript identische Datenbanksoftware-Installationen auf verschiedenen Rechnern erzeugen.

Nachteile der Installation im Hintergrund

· Sie müssen in dem Aufrufskript alle benötigten Optionen richtig und vollständig angeben.

· Einige Optionen werden vom System erst zur Laufzeit aus den Softwarepaketen ermittelt. Damit kann das System die Vollständigkeit der Angaben nicht zu Beginn einer Installation prüfen. Es beginnt mit der Installation und bricht den Vorgang erst dann ab, wenn die fehlende Angabe benötigt wird.

Installation/Update von Installationsprofilen

Sie haben die Wahl zwischen verschiedenen Zusammenstellungen von Softwarekomponenten, wie sie für unterschiedliche Zwecke benötigt werden. Sie wählen das für Ihre Zwecke geeignete Installationsprofil aus und müssen keinerlei Rücksicht auf notwendige Installationsreihenfolgen oder einander bedingende Inhalte von Softwarekomponenten nehmen, um eine funktionierende Softwareinstallation zu erhalten.

Die Standard-Installation/-Update des gesamten Datenbanksoftware-Pakets erhalten Sie mit dem Installationsprofil all.

Eine Kurzfassung der Beschreibung der Standard-Installation/-Update des gesamten Datenbanksoftware-Pakets finden Sie In der Dokumentation Installationsleitfaden Datenbanksoftware

Installation/Update von Softwarekomponenten

Sie installieren einzelne Komponenten der Datenbanksoftware, um einzelne Teile Ihrer Datenbanksoftware-Installation zu aktualisieren. Diese Form der Installation empfiehlt sich nur im Sonderfall.

Sie müssen dabei die zwischen einzelnen Softwarekomponenten bestehenden Abhängigkeiten beachten. Andernfalls erhalten Sie eine entsprechende Fehlermeldung und der Installationsvorgang wird vom System abgebrochen.

Installation der Softwarekomponente Precompiler (CPC <version>) im Hintergrund

Sie wollen nur den C++-Precompiler Ihrer vorhandenen Softwareinstallation aktualisieren. Sie starten die Installation der Softwarekomponente CPC SDK <version>. Das System erkennt, dass diese Komponente eine neue Version der Softwarekomponente CPC Base voraussetzt. Sie werden deshalb darauf hingewiesen, dass das Paket CPC SDK <version> vom Paket CPC Base abhängig ist und zuvor installiert werden muss. Die Installation wird abgebrochen.

Bei umfangreichen Abhängigkeiten müssen sie den Installationsprozess also mehrfach (mit jeweils einem anderen Installationspaket) neu beginnen.

Sie umgehen diese Probleme, indem Sie für das Beispiel das Installationsprofil C Precompiler installieren.

Installation/Update der Software auf UNIX

Installation/Update der Software auf Linux

Installation/Update der Software auf Microsoft Windows


Installation/Update der Software auf UNIX (MaxDB: Installationshandbuch)

Installation/Update der Software auf UNIX

Verwendung

Sie installieren oder aktualisieren ein gewünschtes Installationsprofil oder eine Komponente der Datenbanksoftware. Die nachfolgend beschriebene Vorgehensweise ist für Updates nur dann anzuwenden, wenn sich keine Datenbankinstanzen auf den Installationspfad der zu aktualisierenden Software beziehen.

Wenn sich Datenbankinstanzen auf den Installationspfad der zu aktualisierenden Software beziehen, müssen Sie die Datenbankinstanzen zusammen mit der Software aktualisieren (Aktualisierung von Datenbankinstanzen inklusive Software). Andernfalls riskieren Sie, dass die Datenbankinstanzen nicht mehr mit der Datenbanksoftware kompatibel sind und sich deshalb nicht mehr starten lassen.

Der Installationsvorgang wird vom System protokolliert (Protokollierung).

Vorgehensweise

...

1. Entpacken Sie zunächst die Datenbanksoftware in ein lokales Verzeichnis.

Entpacken der Software auf UNIX

2. Entscheiden Sie nun, ob Sie eine interaktive Installation (nur möglich für Installationsprofile) oder eine Installation im Hintergrund durchführen möchten.

¡ Interaktive Installation/Update auf UNIX

¡ Installation/Update im Hintergrund auf UNIX

Zu den Vor- und Nachteilen dieser Installationsverfahren siehe
Installation und Update der Datenbanksoftware


Entpacken der Software auf UNIX (MaxDB: Installationshandbuch)

Entpacken der Software auf UNIX

Konventionen

Variablen

Vorgehensweise

...

1. Wählen Sie das Ihrer Betriebssystemarchitektur, Ihrem Datenbankinstanztyp und dem gewünschten Installationsprofil entsprechende Softwarepaket.

Wenn Sie nur eine einzelne Softwarekomponente installieren oder aktualisieren wollen, wählen Sie ein Installationsprofil aus, das diese Softwarekomponente enthält.

Installation vom SAP Service Marketplace (service.sap.com,nur für SAP-Kunden)

¡ Für den Datenbankinstanztyp OLTP wählen Sie
SAP Software ® Download ® SAP Support Packages & Patches ® MaxDB ® MaxDB OLTP 64-BIT ® MaxDB <version> OLTP ®<os> ®
MAXDB<version>_<build>-<GUID>.SAR

¡ Für den Datenbankinstanztyp liveCache (SAP-System APO) wählen Sie
SAP Software ® Download ® SAP Support Packages & Patches ® SAP APO ® SAP APO <apo_version> ® Binary Patches ® APO LC<version>/LCAPPS<apo_version> ® <os> ®
LC<version>A<apo_version>_<apo_build>-<GUID>.SAR

Installation von http://www.sapdb.org

¡ Nur Datenbankinstanztyp OLTP:
Wählen Sie im Bereich Software das gewünschte Betriebssystem und folgen Sie den weiteren Erläuterungen zum Herunterladen des Softwarepakets
maxdb-<inst_profile>-<os>-64bit-<arch>-<version>_<build>.tgz

2. Kopieren Sie das Softwarepaket in ein beliebiges lokales Verzeichnis.

3. Entpacken Sie die Software mit folgendem Kommando:

Bei Installation vom SAP Service Marketplace (service.sap.com):

SAPCAR –xvf MAXDB<version>_<build>-<GUID>.SAR

Bei Installation von http://www.sapdb.org:

tar xvzf maxdb-<inst_profile>-<os>-64bit-<arch>-<version>_<build>.tgz

Ergebnis

Das System legt in diesem lokalen Verzeichnis

· für OLTP-Software ein Unterverzeichnis
maxdb-<inst_profile>-<os>-64bit-<arch>-<version>

· für SAP liveCache-Software ein Unterverzeichnis
apo<apo_version>_livecache-<os>-64bit-<arch>-<version>

an und legt darin die Software ab.


Interaktive Installation/Update auf UNIX (MaxDB: Installationshandbuch)

Interaktive Installation/Update auf UNIX

Verwendung

Sie installieren/aktualisieren Installationsprofile der Datenbanksoftware unter Verwendung des Programms SDBINST auf dem Betriebssystem UNIX. Alle dafür notwendigen Informationen werden während des Installationsvorganges vom Programm abgefragt.

Wenn Sie eine vorhandene Datenbanksoftware-Installation aktualisieren wollen, ist die Vorgehensweise abhängig davon, ob die Startversion kleiner als 7.5.00 oder größer/gleich 7.5.00 ist.

Wenn die Startversion kleiner ist als 7.5.00, dann müssen Sie vor dem Installations-/Updatevorgang den X-Server und alle Datenbankinstanzen stoppen. Beachten Sie, dass Sie damit die Kommunikation von Clients zu allen lokalen Datenbankinstanzen unterbrechen. Wenn die Startversion größer oder gleich 7.5.00 ist, unterstützt die X-Server-Software ein Update bei laufendem Betrieb des X-Server. Das Stoppen des X-Server und aller Datenbankinstanzen ist deshalb nicht mehr notwendig. Sie müssen jedoch jene Datenbankinstanzen stoppen, die dem zu aktualisierenden Installationsverzeichnis zugeordnet sind.

Konventionen

Variablen

Voraussetzungen

· Sie befinden sich in einer root-Shell.

· Sie haben das Installationspaket heruntergeladen und in einem beliebigen lokalen Verzeichnis entpackt (Entpacken der Software auf UNIX).

Vorbereitende Schritte

Wenn die nachfolgend geschilderten Bedingungen für Ihr System zutreffen, müssen Sie vor einer Neuinstallation noch die genannten Schritte ausführen:

· Das Installationsprogramm wird die erforderlichen Services sql6, sql30 und sapdbni72 in die Datei /etc/services eintragen, wenn sie dort noch nicht vorhanden sind. Wenn für Ihr System die Services zentral im Netz verwaltet werden (NIS), müssen Sie diese wie folgt dort eintragen:
sql6         7210/tcp
sql30        7200/tcp
sapdbni72    7269/tcp

· Bei der Installation muss die Datenbanksoftware einem speziellen Betriebssystembenutzer <sdb_user> als Eigentümer der Software sowie der Gruppe <sdba_group> zugeordnet werden.
Gruppe und Eigentümer sollten zuvor definiert worden sein. Nur Benutzer mit den entsprechenden Rechten können später Datenbankinstanzen erzeugen (siehe auch Berechtigungskonzept für UNIX-Betriebssysteme für Softwareversionen ab 7.5.00).
Der spezielle Betriebssystembenutzer darf sich nicht an das Betriebssystem anmelden. Entziehen sie ihm deshalb diese Berechtigung. Hinweise dazu finden Sie in Ihrer Betriebssystemdokumentation (lock account).

Wenn Benutzergruppen und Eigentümer auf Ihrem Rechner lokal verwaltet werden, dann empfiehlt es sich, dem Betriebssystem vor Beginn der Installation die Namen der Benutzergruppen und des Eigentümers bekannt zu machen. Sie können diese aber auch während des Installationsvorganges angeben.
Wenn Benutzergruppen und Eigentümer für Ihr System zentral im Netz verwaltet werden, müssen Sie diese dort vor Beginn der Installation anlegen. Erläuterungen über das Anlegen von Betriebssystembenutzern und Benutzergruppen finden Sie in Ihrer Betriebssystemdokumentation.

Die primäre Gruppe (primary group) des Eigentümers der Datenbanksoftware ist die Administratorengruppe.

Für SAP-Systeme müssen Sie für den Eigentümer <sdb_user> und die Gruppe <sdba_group> die Namen sdb und sdba verwenden.

Aus Gründen der Übersichtlichkeit und für einen eventuellen Supportfall empfehlen wir, auch in anderen Systemen die Namen sdb und sdba für den Eigentümer und die Gruppe zu verwenden.

· Wenn der Pfad <independent_program_path>/bin noch nicht in Ihre Umgebungsvariable PATH eingetragen ist, fügen Sie ihn jetzt hinzu. (Hinweise zum Setzen von Umgebungsvariablen finden Sie in Ihrer Betriebssystemdokumentation.)

Vorgehensweise

...

1. Wenn Sie eine vorhandene Datenbanksoftware-Installation aktualisieren wollen,

¡ stoppen Sie gegebenenfalls jede einzelne Datenbankinstanz, die dem zu aktualisierenden Installationsverzeichnis zugeordnet ist, mit dem Kommando
dbmcli –d <database_name> -u <dbm_user>,<password> db_offline

¡ stoppen Sie gegebenenfalls das Programm X-Server (Prozess vserver) mit dem Kommando
x_server stop

Für eine Neuinstallation beginnen Sie mit Schritt 2.

2. Wechseln Sie in das Verzeichnis
maxdb-<inst_profile>-<os>-64bit-<arch>-<version>_<build>,
das die Installationssoftware für das gewünschte Installationsprofil enthält.
Geben Sie ./SDBINST ein, um das Installations-/Update-Programm zu starten.

3. Das System schlägt Ihnen für die Installation das von Ihnen gewählte Installationsprofil vor.
Wenn das gewählte Installationsprofil (z. B. all) weitere Installationsprofile enthält, können Sie nun auch eines dieser Installationsprofile auswählen. Geben Sie dazu die entsprechende ID an. Bestätigen Sie ihre Wahl.

4. Bei einer Erstinstallation oder einem Update zur Softwareversion 7.5.00 werden Sie vom System aufgefordert, folgende Angaben zu machen:

¡ den speziellen Betriebssystembenutzer <sdb_user>, also den Eigentümer der Datenbanksoftware

¡ die Gruppe <sdba_group>

Bei Installation/Update älterer Softwareversionen werden Sie vom System aufgefordert, die Gruppe <group>und den Eigentümer <owner> der Datenbanksoftware anzugeben.

Wenn die Gruppe und der Eigentümer bereits angelegt sind, geben Sie die gültigen Werte an und bestätigen diese. Das System vergleicht Ihre Angaben mit den lokal oder im Netz vorhandenen Werten. Falls Ihre Angaben mit diesen Werten nicht übereinstimmen, bricht die Installation ab.

Wenn die Gruppe und der Eigentümer noch nicht angelegt sind, werden Sie vom System gefragt, ob Sie diese anlegen wollen. Geben Sie die gewünschten Werte an oder bestätigen Sie die Systemvorschläge. Ihre Eingabe legt die Gruppe und den Eigentümer lokal auf Ihrem Rechner an.

5. Das System prüft nun, ob es aktualisierbare Installationen der Datenbanksoftware auf Ihrem Rechner gibt.

Wenn dies der Fall ist, werden alle vorhandenen Installationen aufgelistet.

¡ Wenn Sie eine vorhandene Installation aktualisieren wollen, geben Sie die ID der betreffenden Installation an.
Anschließend wird vom System die unter dem <independent_program_path> abgelegte Software aktualisiert. In Abhängigkeit vom gewählten Profil wird auch die unter dem <dependent_path> abgelegte Software aktualisiert, wenn das Installationspaket neuere Versionen darin vorhandener Dateien enthält.

¡ Wenn Sie eine Neuinstallation der Datenbanksoftware parallel zur vorhandenen Installation durchführen wollen, geben Sie none an. Sie erhalten dann die Möglichkeit, einen neuen Installationspfad anzugeben. Definieren Sie einen Installationspfad parallel zum vorhandenen Installationspfad.

Wenn es auf Ihrem Rechner noch keine Installation der Datenbanksoftware gibt, werden nun nacheinander die im Installationsprofil enthaltenen Softwarekomponenten installiert. In Abhängigkeit vom gewählten Installationsprofil werden Sie vom System aufgefordert, folgende Pfade anzugeben:

¡ Pfad für die Ablage der Daten, Konfigurationen und Arbeitsverzeichnisse der Datenbankinstanzen und -anwendungen (Vorschlagswert des Systems ist /var/opt/sdb/data)

¡ Pfad für die Ablage der von den Datenbankinstanzen und -anwendungen gemeinsam genutzten Programme und Bibliotheken (Vorschlagswert des Systems ist /opt/sdb/programs)

¡ Pfad für die Ablage der von der Datenbankversion abhängigen Server-Software
Diese Pfadangabe muss eindeutig sein. Es können viele Verzeichnisse mit verschiedenen Versionen nebeneinander existieren (Vorschlagswert des Systems ist /opt/sdb/<version>).

Geben Sie die gewünschten Pfade an oder bestätigen Sie die Systemvorschläge.

6. Wenn es bislang auf Ihrem Rechner noch keine Installation der Datenbanksoftware gab, erweitern Sie für alle Benutzer, die das Datenbanksystem benutzen wollen, die Umgebungsvariable PATH um den Eintrag <independent_program_path>/bin.

Sie erhalten eine Meldung über den erfolgreichen Abschluss der Installation.

Ergebnis

Das gewählte Installationsprofil der Datenbanksoftware ist nun auf Ihrem Rechner in der neuen Version installiert und registriert. Das Ergebnis der Installation können Sie anhand des Protokolls überprüfen (Protokollierung).

Mit Hilfe des Database Manager können Sie nun neue Datenbankinstanzen anlegen.

(Siehe:

· Anlegen einer Datenbankinstanz in der Dokumentation Database Manager CLI oder

· Dokumentation Web DBM)


Installation/Update im Hintergrund auf UNIX (MaxDB: Installationshandbuch)

Installation/Update im Hintergrund auf UNIX

Verwendung

Sie installieren/aktualisieren Installationsprofile oder einzelne Komponenten der Datenbanksoftware unter Verwendung des Programms SDBINST auf dem Betriebssystem UNIX. Alle dafür notwendigen Informationen spezifizieren Sie auf der Kommandozeile zusammen mit dem Kommando zum Starten des Installationsprogramms.

Wenn Sie eine vorhandene Datenbanksoftware-Installation aktualisieren wollen, ist die Vorgehensweise abhängig davon, ob die Startversion kleiner als 7.5.00 oder größer/gleich 7.5.00 ist.

Wenn die Startversion kleiner ist als 7.5.00, dann müssen Sie vor dem Installations-/Updatevorgang den X-Server und alle Datenbankinstanzen stoppen. Beachten Sie, dass Sie damit die Kommunikation von Clients zu allen lokalen Datenbankinstanzen unterbrechen. Wenn die Startversion größer oder gleich 7.5.00 ist, unterstützt die X-Server-Software ein Update bei laufendem Betrieb des X-Server. Das Stoppen des X-Server und aller Datenbankinstanzen ist deshalb nicht mehr notwendig. Sie müssen jedoch jene Datenbankinstanzen stoppen, die dem zu aktualisierenden Installationsverzeichnis zugeordnet sind.

Konventionen

Variablen

Voraussetzungen

· Sie sind auf Ihrem Rechner als Benutzer root angemeldet.

· Sie haben die erforderliche Software entpackt (Entpacken der Software auf UNIX).

Vorbereitende Schritte

Wenn die nachfolgend geschilderten Bedingungen für Ihr System zutreffen, müssen Sie vor einer Neuinstallation noch die genannten Schritte ausführen:

· Das Installationsprogramm wird die erforderlichen Services sql6, sql30 und sapdbni72 in die Datei /etc/services eintragen, wenn sie dort noch nicht vorhanden sind. Wenn für Ihr System die Services zentral im Netz verwaltet werden (NIS), müssen Sie diese dort wie folgt eintragen:
sql6      7210/tcp
sql30     7200/tcp
sapdbni72 7269/tcp

· Bei der Installation muss die Datenbanksoftware einem speziellen Betriebssystembenutzer (<sdb_user>) als Eigentümer der Software sowie der Gruppe (<sdba_group>) zugeordnet werden. Gruppe und Eigentümer sollten zuvor definiert worden sein. Nur Benutzer mit den entsprechenden Rechten können später Datenbankinstanzen erzeugen (siehe auch Berechtigungskonzept für UNIX-Betriebssysteme für Softwareversionen ab 7.5.00).

· Wenn der Pfad <independent_program_path>/bin noch nicht in Ihre Umgebungsvariable PATH eingetragen ist, fügen Sie ihn jetzt hinzu.

Vorgehensweise

...

1. Wenn Sie eine vorhandene Datenbanksoftware-Installation aktualisieren wollen,

¡ stoppen Sie gegebenenfalls jede einzelne Datenbankinstanz, die dem zu aktualisierenden Installationsverzeichnis zugeordnet ist, mit dem Kommando
dbmcli –d <database_name> -u <dbm_user>,<password> db_offline

¡ stoppen Sie gegebenenfalls das Programm X-Server (Prozess vserver) mit dem Kommando
x_server stop

Für eine Neuinstallation beginnen Sie mit Schritt 2.

2. Für die OLTP-Software starten Sie den Installations-/Updatevorgang mit folgendem Kommando:
./SDBINST [-b] -profile <inst_profile> [,<inst_profile2>...]| -package <package_name>[,<package_name2>...] -indep_data <independent_data_path> -indep_prog <independent_program_path> -depend <dependent_path> [-o <sdb_user> -g <sdba_group>]

Für die SAP liveCache-Software (nur im SAP-System APO) starten Sie den Installations-/Updatevorgang mit folgendem Kommando:

¡ Für das Installationsprofil APO liveCache
 ./SDBINST [-b] -profile "APO LiveCache" -indep_data <independent_data_path> -indep_prog <independent_program_path> -depend <dependent_path> [-o <sdb_user> -g <sdba_group>]

¡ Für die Softwarekomponente APO LC APPS
./SDBINST [-b] -package "APO LC APPS" -depend <dependent_path>

Den speziellen Betriebssystembenutzer <sdb_user> und die Gruppe <sdba_group> müssen Sie nur bei der Erstinstallation oder dem Upgrade zur Softwareversion 7.5.00 angeben.

Zur Bedeutung der Optionen siehe auch Übersicht der Optionen für das Programm SDBINST.

Namen von Installationsprofilen und Softwarekomponenten, die Leerzeichen enthalten, müssen im Installationskommando in doppelte Anführungszeichen gesetzt werden.

Bei bestimmten Installationsprofilen oder Softwarekomponenten ist die Angabe der Optionen –indep_prog, -indep_data und –depend nicht notwendig. Wenn Sie diese Optionen dennoch angeben, werden sie vom System ignoriert. Informationen dazu finden Sie ebenfalls in der Übersicht der Optionen.

Sie erhalten eine Meldung über den erfolgreichen Abschluss der Installation.

Ergebnis

Die Softwarepakete wurden installiert und registriert. Sie können das Ergebnis Ihrer Installation anhand des Protokolls überprüfen (Protokollierung).

Mit Hilfe des Database Manager können Sie nun neue Datenbankinstanzen anlegen.

(Siehe:

· Anlegen einer Datenbankinstanz in der Dokumentation Database Manager CLI oder

· Dokumentation Web DBM)


Installation/Update der Software auf Linux (MaxDB: Installationshandbuch)

Installation/Update der Software auf Linux

Verwendung

Sie wählen eine gewünschte Softwarekomponente und installieren diese.

Die nachfolgend beschriebene Vorgehensweise ist für Updates nur dann anzuwenden, wenn sich keine Datenbankinstanzen auf den Installationspfad der zu aktualisierenden Software beziehen.

Wenn sich Datenbankinstanzen auf den Installationspfad der zu aktualisierenden Software beziehen, müssen Sie die Datenbankinstanzen zusammen mit der Software aktualisieren (Aktualisierung von Datenbankinstanzen inklusive Software). Andernfalls riskieren Sie, dass die Datenbankinstanzen nicht mehr mit der Datenbanksoftware kompatibel sind und sich deshalb nicht mehr starten lassen.

Wenn Sie auf Ihrem Rechner bereits eine Installation der Datenbanksoftware haben, die mit Hilfe des Red Hat Package Manager (rpm-Paket) ausgeführt wurde, können Sie weitere Installationen oder Updates nur noch mit diesem Programm durchführen.
Weitere Installationen oder Updates mit Hilfe des Programms SDBINST (Installation mit tgz-Paket) sind nicht mehr möglich.

Für die Installation auf Linux stehen Ihnen zwei Programme zur Verfügung:

· Installation/Update mit dem Red Hat Package Manager

· Installation/Update mit SDBINST


Installation/Update mit dem Programm SDBINST (MaxDB: Installationshandbuch)

Installation/Update mit dem Programm SDBINST

Verwendung

Sie installieren/aktualisieren Komponenten der Datenbanksoftware auf dem Betriebssystem Linux. Alle dafür notwendigen Informationen und das Kommando zum Starten des Installationsprogramms spezifizieren Sie auf der Kommandozeile.

Sie müssen dabei die zwischen Softwarekomponenten bestehenden Abhängigkeiten berücksichtigen, um die Funktionsfähigkeit der Softwareinstallation zu gewährleisten.

Wenn Sie auf Ihrem Rechner bereits eine Installation des Datenbanksystems haben, die mit Hilfe des Red Hat Package Manager (Installation mit rpm-Paket) ausgeführt wurde, können Sie weitere Installationen oder Updates nur noch mit diesem Programm durchführen.
Weitere Installationen oder Updates mit Hilfe des Programms SDBINST (Installation mit tgz-Paket) sind nicht mehr möglich.

Vorgehensweise

Verfahren Sie, wie im Abschnitt Installation/Update der Software auf UNIX beschrieben.


Installation/Update mit dem Red Hat Package Manager (MaxDB: Installationshandbuch)

Installation/Update mit dem Red Hat Package Manager

Verwendung

Sie installieren/aktualisieren Komponenten der Datenbanksoftware auf dem Betriebssystem Linux. Alle dafür notwendigen Informationen und das Kommando zum Starten des Installationsprogramms spezifizieren Sie auf der Kommandozeile.

Sie müssen dabei die zwischen Softwarekomponenten bestehenden Abhängigkeiten berücksichtigen, um die Funktionsfähigkeit der Softwareinstallation zu gewährleisten.

Voraussetzungen

· Sie befinden sich in einer root-Shell.

· Die zu installierenden rpm-Pakete sind von Ihrem Rechner aus zugreifbar.

Vorgehensweise

Erstinstallation der Datenbanksoftware

...

1. Führen Sie das Installationskommando aus:
rpm -Uhv maxdb<package_name>.rpm

2. Erweitern Sie für alle Benutzer, die das Datenbanksystem benutzen wollen, die Umgebungsvariable PATH um den Eintrag /opt/sdb/programs/bin.

Update der Datenbanksoftware

Stoppen Sie alle vorhandene Software des Datenbanksystems auf dem Rechner, auf dem eine Softwareversion aktualisiert werden soll.

Stoppen Sie das Programm X-Server (Prozess vserver). Beachten Sie, dass Sie damit die Kommunikation von Clients zu allen lokalen Datenbankinstanzen unterbrechen.

...

1. Stoppen Sie alle Datenbankinstanzen, die dem zu aktualisierenden Installationsverzeichnis zugeordnet sind, mit dem Kommando
dbmcli –d <database_name> -u <dbm_user>,<password> db_offline

2. Führen Sie das Installationskommando aus:
rpm -Uhv maxdb<package_name>.rpm

Ergebnis

Die im Installationsverzeichnis enthaltenen Softwarekomponenten wurden in der neuen Version installiert und registriert.

Mit Hilfe des Database Manager können Sie nun neue Datenbankinstanzen anlegen.

Siehe:

· Anlegen einer Datenbankinstanz in der Dokumentation Database Manager CLI oder

· Dokumentation Web DBM


Installation/Update der Software auf Microsoft Windows (MaxDB: Installationshandbuch)

Installation/Update der Software auf Microsoft Windows

Verwendung

Sie installieren oder aktualisieren ein gewünschtes Installationsprofil oder eine Komponente der Datenbanksoftware. Die nachfolgend beschriebene Vorgehensweise ist für Updates nur dann anzuwenden, wenn sich keine Datenbankinstanzen auf den Installationspfad der zu aktualisierenden Software beziehen.

Wenn sich Datenbankinstanzen auf den Installationspfad der zu aktualisierenden Software beziehen, müssen Sie die Datenbankinstanzen zusammen mit der Software aktualisieren (Aktualisierung von Datenbankinstanzen inklusive Software). Andernfalls riskieren Sie, dass die Datenbankinstanzen nicht mehr mit der Datenbanksoftware kompatibel sind und sich deshalb nicht mehr starten lassen.

Der Installationsvorgang wird vom System protokolliert (Protokollierung).

Vorgehensweise

...

1. Entpacken Sie zunächst die Datenbanksoftware in ein lokales Verzeichnis.

Entpacken der Software auf Microsoft Windows

2. Entscheiden Sie nun, ob Sie eine interaktive Installation (nur möglich für Installationsprofile) oder eine Installation im Hintergrund durchführen möchten.

¡ Interaktive Installation/Update auf Microsoft Windows

¡ Installation/Update im Hintergrund auf Microsoft Windows

Zu den Vor- und Nachteilen dieser Installationsverfahren siehe
Installation und Update der Datenbanksoftware.


Entpacken der Software auf Microsoft Windows (MaxDB: Installationshandbuch)

Entpacken der Software auf Microsoft Windows

Konventionen

Variablen

Vorgehensweise

...

...

1. Wählen Sie das Ihrer Betriebssystemarchitektur und dem gewünschten Installationsprofil entsprechende Datenbanksoftware-Paket aus.

Wenn Sie nur eine einzelne Softwarekomponente installieren oder aktualisieren wollen, wählen Sie ein Installationsprofil aus, das diese Softwarekomponente enthält.

Installation vom SAP Service Marketplace (service.sap.com, nur für SAP-Kunden)

¡ Für den Datenbankinstanztyp OLTP wählen Sie

für die 32-bit-Version
SAP Software ® Download ® SAP Support Packages & Patches ® MaxDB ® MaxDB OLTP ® MaxDB <version> OLTP ® <os> ®
MAXDB<version>_<build>-<GUID>.SAR

für die 64-bit-Version
SAP Software ® Download ® SAP Support Packages & Patches ® MaxDB ® MaxDB OLTP 64-BIT ® MaxDB <version> OLTP ® <os> ®
MAXDB <version>_<build>-<GUID>.SAR

¡ Für den Datenbankinstanztyp liveCache (SAP-System APO) wählen Sie
SAP Software ® Download ® SAP Support Packages & Patches ® SAP APO ® SAP APO <apo_version> ® Binary Patches ® APO LC<version>/LCAPPS<apo_version> ® <os> ®
LC<version>A<apo_version>_<apo_build>-<GUID>.SAR

Installation von http://www.sapdb.org

¡ Nur Datenbankinstanztyp OLTP
Wählen Sie im Bereich Software das gewünschte Betriebssystem und folgen Sie den weiteren Erläuterungen zum Herunterladen des Softwarepakets
maxdb -<inst_profile>-win-<32|64>bit-<arch>-<version>_<build>.zip

2. Kopieren Sie das Softwarepaket in ein beliebiges lokales Verzeichnis.

3. Entpacken Sie

¡ ein sar-Paket mit Hilfe des Programms SAPCAR

¡ ein zip-Paket mit Hilfe des Programms WinZip

in ein beliebiges lokales Verzeichnis.

Ergebnis

Das System legt in diesem lokalen Verzeichnis

· für OLTP-Software ein Unterverzeichnis
maxdb-<inst_profile>-win-<32|64>bit-<arch>-<version>

· für SAP liveCache-Software ein Unterverzeichnis
apo<apo_version>_livecache-win-<32|64>bit-<arch>-<version>

an und legt darin die Software ab.


Interaktive Installation/Update auf Microsoft Windows (MaxDB: Installationshandbuch)

Interaktive Installation/Update auf Microsoft Windows

Verwendung

Sie installieren/aktualisieren Installationsprofile der Datenbanksoftware unter Verwendung des Programms SDBINST auf dem Betriebssystem Microsoft Windows. Alle dafür notwendigen Informationen werden während des Installationsvorganges vom Programm abgefragt.

Vor einem Update der Datenbanksoftware müssen Sie das Programm X-Server stoppen. Beachten Sie, dass Sie damit die Kommunikation von Clients zu allen lokalen Datenbankinstanzen unterbrechen.

Konventionen

Variablen

Voraussetzungen

· Sie haben für Ihren Rechner Administrationsrechte.

· Sie haben das Installationspaket heruntergeladen und entpackt (Entpacken der Software auf Microsoft Windows).

Vorgehensweise

...

1. Wenn Sie eine vorhandene Installation des Datenbanksystems aktualisieren wollen,

¡ stoppen Sie jede einzelne Datenbankinstanz aller installierten Versionen des Datenbanksystems mit folgendem Kommando:
dbmcli –d <database_name> -u <dbm_user>,<password> db_offline

¡ stoppen Sie das Programm X-Server (Service XServer) mit dem Kommando
x_server stop

Für eine Neuinstallation beginnen Sie mit Schritt 2.

2. Öffnen Sie das Command Prompt und navigieren Sie in das lokale Verzeichnis, das die Installationsdateien enthält:

¡ Für OLTP-Software in das Verzeichnis
maxdb-<inst_profile>-win-<32|64>bit-<arch>-<version>,

¡ Für liveCache-Software in das Verzeichnis
apo<apo_version>_<livecache>-win-<32|64>bit-<arch>-<version>

3. Geben Sie sdbinst ein, um das Installations-/Update-Programm aufzurufen.

4. Das System schlägt Ihnen für die Installation das von Ihnen gewählte Installationsprofil vor. Wenn das gewählte Installationsprofil (z.B. all) weitere Installationsprofile enthält, können Sie nun auch eines dieser Installationsprofile auswählen. Geben Sie dazu die entsprechende ID an. Bestätigen Sie ihre Wahl.

5. Das System prüft nun, ob es aktualisierbare Installationen des Datenbanksystems auf Ihrem Rechner gibt.

Wenn dies der Fall ist, werden alle vorhandenen Installationen aufgelistet.

¡ Wenn Sie eine vorhandene Installation aktualisieren wollen, geben Sie die ID der betreffenden Installation an.
Anschließend wird vom System die unter dem <independent_program_path> abgelegte Software aktualisiert. In Abhängigkeit vom gewählten Profil wird auch die unter dem <dependent_path> abgelegte Software aktualisiert, wenn das Installationspaket neuere Versionen darin vorhandener Dateien enthält.

¡ Wenn Sie eine Neuinstallation der Datenbanksoftware parallel zur vorhandenen Installation durchführen wollen, geben Sie none an. Sie erhalten dann die Möglichkeit, einen neuen Installationspfad anzugeben. Definieren Sie einen Installationspfad parallel zum vorhandenen Installationspfad.

Wenn es auf Ihrem Rechner noch keine Installation der Datenbanksoftware gibt, werden nun nacheinander die im Installationsprofil enthaltenen Softwarekomponenten installiert. In Abhängigkeit vom gewählten Installationsprofil werden Sie vom System aufgefordert, folgende Pfade anzugeben:

¡ Pfad für die Ablage der Daten, Konfigurationen und Arbeitsverzeichnisse von Datenbankinstanzen und -anwendungen (Vorschlagswert des Systems ist C:\Program Files\sdb\data)

¡ Pfad für die Ablage der von den Datenbankinstanzen und -anwendungen gemeinsam genutzten Programme und Bibliotheken (Vorschlagswert des Systems ist C:\Program Files\sdb\programs)

¡ Pfad für die Ablage der von der Datenbankversion abhängigen Server-Software
Diese Pfadangabe muss eindeutig sein. Es können viele Verzeichnisse mit verschiedenen Versionen nebeneinander existieren (Vorschlagswert des Systems ist C:\Program Files\sdb\<version>).

Geben Sie die gewünschten Pfade an oder bestätigen Sie die Systemvorschläge.

Sie erhalten eine Meldung über den erfolgreichen Abschluss der Installation.

6. Wenn es auf Ihrem Rechner bislang noch keine Installation der Datenbanksoftware gab, empfehlen wir Ihnen, nun Ihren Rechner herunterzufahren und neu zu starten, um dem System den <independent_program_path> bekannt zu machen.

Bei einem Update der Datenbanksoftware ist dies nicht erforderlich.

Ergebnis

Das gewählte Installationsprofil der Datenbanksoftware wurde in der neuen Version installiert und registriert. Das Ergebnis der Installation können Sie anhand des Protokolls überprüfen (Protokollierung).

Mit Hilfe des Database Manager können Sie neue Datenbankinstanzen anlegen

(Siehe:

· Anlegen oder Initialisieren einer Datenbankinstanz in der Dokumentation Database Manager GUI

· Anlegen einer Datenbankinstanz in der Dokumentation Database Manager CLI

· oder Dokumentation Web DBM)


Installation/Update im Hintergrund auf Microsoft Windows (MaxDB: Installationshandbuch)

Installation/Update im Hintergrund auf Microsoft Windows

Verwendung

Sie installieren/aktualisieren Installationsprofile oder einzelne Komponenten der Datenbanksoftware unter Verwendung des Programms SDBINST auf dem Betriebssystem Microsoft Windows. Alle dafür notwendigen Informationen spezifizieren Sie auf der Kommandozeile zusammen mit dem Kommando zum Starten des Installationsprogramms.

Vor einem Update der Datenbanksoftware müssen Sie das Programm X-Server stoppen. Beachten Sie, dass Sie damit die Kommunikation von Clients zu allen lokalen Datenbankinstanzen unterbrechen.

Konventionen

Variablen

Voraussetzungen

· Sie haben für Ihren Rechner Administrationsrechte.

· Sie haben das Installationspaket heruntergeladen und entpackt (Entpacken der Software auf Microsoft Windows).

Vorgehensweise

1. Wenn Sie eine vorhandene Installation des Datenbanksystems aktualisieren wollen,

¡ stoppen Sie jede einzelne Datenbankinstanz mit dem Kommando
dbmcli –d <database_name> -u <dbm_user>,<password> db_offline

¡ stoppen Sie das Programm X-Server (Service XServer) mit dem Kommando
x_server stop

Für eine Neuinstallation beginnen Sie mit Schritt 2.

2. Für die OLTP-Software starten Sie den Installations-/Updatevorgang mit folgendem Kommando:
sdbinst [-b] -profile <inst_profile> [,<inst_profile2>...]| -package <package_name>[,<package_name2>...] -indep_data <independent_data_path> -indep_prog <independent_program_path> -depend <dependent_path>

Für die liveCache-Software (nur im SAP-System APO) starten Sie den Installations-/Updatevorgang mit folgendem Kommando:

¡ Für das Installationsprofil APO liveCache
 sdbinst [-b] -profile "APO LiveCache" -indep_data <independent_data_path> -indep_prog <independent_program_path> -depend <dependent_path>

¡ Für die Softwarekomponente APO LC APPS
sdbinst [-b] -package "APO LC APPS" -depend <dependent_path>

Zur Bedeutung der Optionen siehe Übersicht der Optionen für das Programm SDBINST.

Namen von Installationsprofilen und Softwarekomponenten, die Leerzeichen enthalten, müssen im Installationskommando in doppelte Anführungszeichen gesetzt werden.

Bei bestimmten Installationsprofilen oder Softwarekomponenten ist die Angabe der Optionen –indep_prog, -indep_data und –depend nicht notwendig. Wenn Sie diese Optionen dennoch angeben, werden sie vom System ignoriert. Informationen dazu finden Sie ebenfalls in der Übersicht der Optionen.

Sie erhalten eine Meldung über den erfolgreichen Abschluss der Installation.

Ergebnis

Die Softwarepakete wurden installiert und registriert. Sie können das Ergebnis Ihrer Installation anhand des Protokolls überprüfen (Protokollierung).

Mit Hilfe des Database Manager können Sie neue Datenbankinstanzen anlegen

(Siehe:

· Anlegen oder Initialisieren einer Datenbankinstanz in der Dokumentation Database Manager GUI

· Anlegen einer Datenbankinstanz in der Dokumentation Database Manager CLI

· oder Dokumentation Web DBM)


Deinstallation der Datenbanksoftware (MaxDB: Installationshandbuch)

Deinstallation der Datenbanksoftware

Einführungshinweise

In Abhängigkeit davon, mit welchem Verfahren die Datenbanksoftware installiert wurde, können Sie sie nun mit Hilfe des Programms SDBUNINST oder mit dem Red Hat Package Manager deinstallieren.

Sie haben in beiden Fällen die Möglichkeit, die gesamte Datenbanksoftware, einzelne Installationsprofile oder einzelne Softwarekomponenten zu deinstallieren.

Wenn die Installation Datenbanksoftware auf Ihrem Rechner mit Hilfe des Red Hat Package Manager (rpm-Paket) ausgeführt wurde, können Sie die Deinstallation nur mit diesem Programm durchführen.

Konventionen

Variablen

Deinstallation mit SDBUNINST auf UNIX, Linux oder Microsoft Windows

Deinstallation mit Hilfe des Red Hat Package Manager


Deinstallation mit SDBUNINST auf UNIX, Linux und Microsoft Windo (MaxDB: Installationshandbuch)

Deinstallation mit SDBUNINST auf UNIX, Linux und Microsoft Windows

Einführungshinweise

Sie verwenden das Deinstallationsprogramm SDBUNINST, um einzelne oder alle Softwarekomponenten unter Berücksichtigung der zwischen ihnen bestehenden Abhängigkeiten zu deinstallieren. Es ist in der Datenbanksoftware ab Version 7.3.00 Build 033 enthalten.

Sie können damit Software des Datenbanksystems ab Version 7.2 deinstallieren.

Übersicht der Optionen für das Programm SDBUNINST

Eine Kurzfassung der Beschreibung der Standard-Deinstallation des gesamten Datenbanksoftware-Pakets mit SDBUNINST finden Sie In der Dokumentation Installationsleitfaden Datenbanksoftware.

Konventionen

Variablen, Unterstützte Betriebssysteme und Plattformen

Voraussetzungen

· Auf Ihrem Rechner sind eine oder mehrere Versionen der Datenbanksoftware installiert. Darunter ist mindestens eine Installation der Version 7.3.00, Build 033 oder größer, in der das Programm SDBUNINST enthalten ist.

· Sie haben für Ihren Rechner Administrationsrechte.

Vorgehensweise

...

1. Unter UNIX/Linux: Wechseln Sie in die root-Shell.

Unter Microsoft Windows: Öffnen Sie das Command Prompt auf Ihrem Rechner.

2. Stoppen Sie jede einzelne Datenbankinstanz auf Ihrem Rechner mit folgendem Kommando:
dbmcli –d <database_name> -u <dbm_user>,<password> db_offline

3. Löschen Sie jede einzelne Datenbankinstanz auf Ihrem Rechner mit folgendem Kommando:
dbmcli –d <database_name> -u <dbm_user>,<password> db_drop

4. Rufen Sie das Deinstallationprogramm mit der gewünschten Option auf:

¡ Wenn Sie alle Softwarekomponenten deinstallieren wollen, geben Sie die Option –all an, andernfalls spezifizieren Sie die gewünschte Komponente mit Hilfe der Option –package.


Deinstallation mit dem Red Hat Package Manager (MaxDB: Installationshandbuch)

Deinstallation mit dem Red Hat Package Manager

Verwendung

Sie installieren/aktualisieren Komponenten der Datenbanksoftware auf dem Betriebssystem Linux. Alle dafür notwendigen Informationen und das Kommando zum Starten des Installationsprogramms spezifizieren Sie auf der Kommandozeile.

Voraussetzungen

Sie befinden sich in einer root-Shell.

Vorgehensweise

1. Führen Sie jede einzelne Datenbankinstanz nacheinander das Kommando zum Stoppen und dann das Kommando zum Löschen einer Datenbankinstanz aus:
dbmcli –d <database_name> -u <dbm_user>,<password> db_offline

dbmcli –d <database_name> -u <dbm_user>,<password> db_drop

2. Führen Sie das Deinstallationskommando aus:
rpm -e maxdb<package_name | *>.rpm

Ergebnis

Die angegebene/n Softwarekomponenten wurde/n deinstalliert.


Aktualisierung von Datenbankinstanzen inklusive Software (MaxDB: Installationshandbuch)

Aktualisierung von Datenbankinstanzen inklusive Software

Einführungshinweise

Sie überführen Datenbankinstanzen von einer Version in eine höhere Version und aktualisieren gleichzeitig deren Datenbanksoftware. Dieser Vorgang wird im Folgenden Upgrade genannt.

Die dabei zu verwendende Strategie ist vom Datenbankinstanztyp sowie der Start- und Zielversion abhängig. Für die Auswahl der geeigneten Upgrade-Strategie stehen Ihnen entsprechende Matrizen zur Verfügung (Siehe: Auswahl der Upgrade-Strategie).

Bei jeder Aktualisierung von Datenbankinstanzen empfiehlt es sich, für mögliche Fehler während des Vorganges vorzusorgen. Stellen Sie deshalb grundsätzlich sicher, dass Sie über vollständige Sicherungen aller Daten der betreffenden Datenbankinstanzen und über die Datenbanksoftware der Startversion verfügen. Nur dann können Sie gegebenenfalls umgehend auf die Startversion zurückgehen und einen längeren Systemstillstand vermeiden.

Stellen Sie vor Beginn des Vorganges sicher, dass die häufigsten Fehlerursachen für einen Abbruch des Upgrade ausgeschlossen sind (Fehlerbehandlung).

Wann immer es möglich ist, führen Sie das Upgrade mit Hilfe des Programms SDBUPD aus. Sie erhalten von diesem Programm eine umfassende Unterstützung für ein problemloses Upgrade. Es kann jedoch nur unter bestimmten Voraussetzungen verwendet werden. Wenn diese Voraussetzungen nicht erfüllt sind, müssen Sie eine andere Upgrade-Strategie verwenden.

Voraussetzungen für die Verwendung des Programms SDBUPD

SAP-Kunden steht für das Upgrade von Datenbankinstanzen in SAP-Systemen das Programm SDPUPD zu Verfügung. Das Programm SDBUPD nimmt dabei alle erforderlichen Prüfungen vor.

Sie können das Programm auch für das Upgrade von Datenbankinstanzen verwenden, wenn diese nicht in SAP-Systeme eingebunden sind. Dafür müssen jedoch folgende Voraussetzungen erfüllt sein:

· Die vorhandene Installation der Software erfolgte mit Hilfe des Programms SDBINST

· Jede der vorhandenen Datenbankinstanzen bezieht sich auf eine separate Softwareinstallation

Konventionen

Variablen, Unterstützte Betriebssysteme und Plattformen


Auswahl der Upgrade-Strategie (MaxDB: Installationshandbuch)

Auswahl der Upgrade-Strategie

Vorgehensweise

Wählen Sie die geeignete Upgrade-Strategie entsprechend des Instanztyps der zu aktualisierenden Datenbankinstanz sowie der Start- und Zielversion der Datenbanksoftware. Verfahren Sie dann weiter, wie für die gewählte Upgrade-Strategie beschrieben.

Wenn die zu aktualisierende Datenbankinstanz die notwendigen Voraussetzungen erfüllt, empfehlen wir Ihnen, das Programm SDBUPD zu verwenden, da das Upgrade mit Hilfe des Programms nur eine geringe Interaktion des Benutzers erfordert, schneller und sicherer abläuft.

Upgrade-Strategien für OLTP-Datenbankinstanzen

 | Zielversion 7.5.x
Startversion ab 7.3.00 Build 025 | In-Place-Migration mit SDBUPD oder* In-Place-Migration mit SDBINST
Startversion 7.4.03 | Patch-Installation mit SDBUPD oder* Patch-Installation mit SDBINST
Startversion 7.5.00 | Patch-Installation mit SDBUPD oder* Patch-Installation mit SDBINST

* Verwenden Sie das Programm SDBUPD, wenn die zu aktualisierende Datenbankinstanz Bestandteil eines SAP-Systems ist.
In Sonderfällen können Sie SDBUPD auch dann verwenden, wenn die Datenbankinstanz nicht Bestandteil eines SAP-Systems ist. Siehe dazu den Abschnitt "Voraussetzungen für die Verwendung des Programms SDBUPD" unter Aktualisierung von Datenbankinstanzen inklusive Software.

Upgrade-Strategien für liveCache-Datenbankinstanzen

 | Zielversion 7.5.00/410
Startversion 7.2.05/30A | Upgrade mittels APO Extract/Load
Startversion 7.4.02/30A | Upgrade mittels APO Extract/Load
Startversion 7.4.02/310 | Upgrade mittels APO Extract/Load
Startversion 7.4.03/400 | Upgrade mittels APO Extract/Load
Startversion 7.5.00/410 | Patch-Installation mit SDBUPD


Patch-Installation mit SDBUPD (MaxDB: Installationshandbuch)

Patch-Installation mit SDBUPD

Verwendung

Sie verwenden das Programms SDBUPD für das Upgrade der Datenbankinstanz. Dabei wird nur die Datenbanksoftware ausgetauscht.

Diese Vorgehensweise ist für Software der Version 7.5.x möglich, wenn sich zwischen Start- und Zielversion nur die Build-Nummer der Version geändert hat, aber auch für Upgrades von der Version 7.4.03 nach 7.5.x (siehe auch Auswahl der Upgrade-Strategie).

Sie verwenden diese Upgrade-Strategie, wenn ihre Datenbankinstanz Bestandteil eines SAP-Systems ist.

Sie können diese Strategie auch verwenden, wenn die Datenbankinstanz nicht in ein SAP-System eingebunden ist. Dafür müssen jedoch folgende Voraussetzungen erfüllt sein:

· Die vorhandene Software wurde mit Hilfe des Installationsprogramms SDBINST installiert (also mittels tgz-Paket oder zip-Datei, nicht mittels rpm-Paket)

· Jede Datenbankinstanz bezieht sich auf eine separate Softwareinstallation

Die Vorgehensweise ist abhängig davon, ob die Startversion kleiner als 7.5.00 oder größer/gleich 7.5.00 ist und auf welchem Betriebssystem Sie arbeiten.

Wenn Sie unter UNIX oder Linux arbeiten und die Startversion kleiner ist als 7.5.00, dann müssen Sie vor dem Upgradevorgang den X-Server und alle Datenbankinstanzen stoppen. Beachten Sie, dass Sie damit die Kommunikation von Clients zu allen lokalen Datenbankinstanzen unterbrechen. Wenn die Startversion größer oder gleich 7.5.00 ist, unterstützt die X-Server-Software ein Update bei laufendem Betrieb des X-Server. Das Stoppen des X-Server nicht mehr notwendig. Die zu aktualisierende Datenbankinstanz wird von SDBUPD während des Upgrade gestoppt.

Wenn Sie unter Microsoft Windows arbeiten, müssen Sie in jedem Fall den X-Server und alle Datenbankinstanzen stoppen.

Voraussetzungen

Überzeugen Sie sich vor Beginn des Upgrade-Vorganges, dass Sie über aktuelle Log-Sicherungen und/oder Datensicherungen verfügen, die es ermöglichen, die zu aktualisierende Datenbankinstanz im Falle eines Fehlers wiederzustellen.

Die Parameter der zu aktualisierenden Datenbankinstanz sollten seit dem letzten Restart nicht mehr geändert worden sein.

· Die zu aktualisierende Datenbankinstanz bezieht sich als einzige auf den Installationspfad der zu aktualisierenden Software.

· Die Datenbankinstanz befindet sich in einem der drei definierten Betriebszustände, d. h. es liegt keine Fehlersituation vor.

Vorgehensweise

...

1. Stoppen Sie gegebenenfalls jede einzelne Datenbankinstanz mit folgendem Kommando:

dbmcli –d <database_name> -u <dbm_user>, <password> db_offline

2. Stoppen Sie gegebenenfalls den X-Server:

x_server stop

3. Starten Sie das Programm SDBUPD für die zu aktualisierende Datenbankinstanz durch die Eingabe des folgenden Kommandos:

UNIX, Linux: | Microsoft Windows:
./SDBUPD –d <database_name> -u <dbm_user>,<password> [-o <sdb_user> -g <sdba_group>] | sdbupd –d <database_name> -u <dbm_user>,<password>

Den speziellen Betriebssystembenutzer <sdb_user> und die Gruppe <sdba_group> gemäß dem Berechtigungskonzept für UNIX-Betriebssysteme müssen Sie nur dann angeben, wenn Sie ein Upgrade zur Softwareversion 7.5.00 durchführen.

Das Programm SDBUPD führt das Upgrade durch, gibt eine Meldung über den erfolgreichen Abschluss des Upgrade aus und kennzeichnet die Installation als abgeschlossen.

Ergebnis

Die spezifizierte Datenbankinstanz und ihre Software wurden aktualisiert.

Wenn Sie eine Datenbankinstanz des Instanztyps liveCache aktualisiert haben, befindet sie sich jetzt im Betriebszustand OFFLINE.

Wenn Sie eine Datenbankinstanz des Instanztyps OLTP aktualisiert haben, befindet sie sich jetzt im Betriebszustand ONLINE.


Patch-Installation mit SDBINST und Nachbereitung (MaxDB: Installationshandbuch)

Patch-Installation mit SDBINST und Nachbereitung

Verwendung

Sie verwenden das Programms SDBINST für das Upgrade von Datenbankinstanzen. Dafür wird nur die Datenbanksoftware ausgetauscht. Anschließend müssen Sie die notwendigen Nachbereitungen mit Hilfe des Programms Database Manager CLI auf der Kommandozeile ausführen.

Diese Upgrade-Strategie ist nur für den Instanztyp OLTP von Bedeutung (Auswahl der Upgrade-Strategie). Sie gilt für alle unterstützten Betriebssystemplattformen.

Die Vorgehensweise ist abhängig davon, ob die Startversion kleiner als 7.5.00 oder größer/gleich 7.5.00 und auf welchem Betriebssystem Sie arbeiten.

Wenn Sie unter UNIX oder Linux arbeiten und die Startversion kleiner ist als 7.5.00, dann müssen Sie vor dem Upgradevorgang den X-Server und alle Datenbankinstanzen stoppen. Beachten Sie, dass Sie damit die Kommunikation von Clients zu allen lokalen Datenbankinstanzen unterbrechen. Wenn die Startversion größer oder gleich 7.5.00 ist, unterstützt die X-Server-Software ein Update bei laufendem Betrieb des X-Server. Das Stoppen des X-Server und aller Datenbankinstanzen ist deshalb nicht mehr notwendig. Sie müssen jedoch jene Datenbankinstanz stoppen, die dem zu aktualisierenden Installationsverzeichnis zugeordnet ist.

Wenn Sie unter Microsoft Windows arbeiten, müssen Sie in jedem Fall den X-Server und alle Datenbankinstanzen stoppen.

Voraussetzungen

Überzeugen Sie sich vor Beginn des Upgrade-Vorganges, dass Sie über aktuelle Log-Sicherungen und/oder Datensicherungen verfügen, die es ermöglichen, die zu aktualisierenden Datenbankinstanzen im Falle eines Fehlers wiederzustellen.

· Alle zu aktualisierenden Datenbankinstanzen beziehen sich auf die gleiche Softwareinstallation.

Vorgehensweise

...

1. Stoppen Sie gegebenenfalls jede einzelne Datenbankinstanz mit folgendem Kommando:

dbmcli –d <database_name> -u <dbm_user>, <password> db_offline

2. Stoppen Sie gegebenenfalls den X-Server.

x_server stop

3. Rufen Sie das Programm SDBINST mit den Optionen für die Installation des Installationsprofils Server auf. Achten Sie darauf, für den <dependent_path> den korrekten Softwareinstallationspfad jener Datenbankinstanz/en anzugeben, die aktualisiert werden soll/en.

UNIX/Linux:

Microsoft Windows:

./SDBINST [-b] -profile server -indep_data <independent_data_path> -indep_prog <independent_program_path> -depend <dependent_path>
[-o <sdb_user> -g <sdba_group>]

sdbinst [-b] -profile server -indep_data <independent_data_path> -indep_prog <independent_program_path> -depend <dependent_path>

Den speziellen Betriebssystembenutzer <sdb_user> und die Gruppe <sdba_group> geben Sie beim Upgrade zur Softwareversion 7.5.00 entsprechend des Berechtigungskonzepts für UNIX-Betriebssysteme an.

4. Starten Sie den X-Server mit folgendem Kommando:

x_server start

5. Melden Sie sich erneut als DBM-Benutzer nacheinander an jede der zu aktualisierenden Datenbankinstanzen an und führen Sie die angegebenen Nachbereitungsschritte aus:

Vorgehensweise

Kommando

...

1.

Melden Sie sich mit den Daten der zu aktualisierenden Datenbankinstanz an den Database Manager CLI an.

dbmcli –d <database_name> -u <dbm_user>, <password>

2.

Aktualisieren Sie die Softwareversion der Datenbankinstanz.

db_reg

3.

Aktualisieren Sie die Parameter der Datenbankinstanz.

param_checkall

4.

Wenn Sie ein Upgrade zur Datenbankversion 7.5.00 auf einem UNIX-Betriebssystem durchführen, dann nehmen Sie folgende Zwischenschritte vor:

a. Melden Sie sich vom Database Manager CLI ab.

b. Rufen Sie das Programm chvolperm auf, das Eigentümer, Gruppe sowie Zugriffsrechte auf die Volumes der Datenbankinstanz entsprechend dem Berechtigungskonzept für UNIX-Betriebssysteme ändert.

c. Melden Sie sich wieder am Database Manager CLI an.

exit | release | quit | bye

<dependent_path>/bin/chvolperm –d <database_name>

dbmcli –d <database_name> -u <dbm_user>, <password>

5.

Überführen Sie die Datenbankinstanz in den Betriebszustand WARM (bis Version 7.3) bzw. ONLINE (ab Version 7.4).

db_online | db_warm

6.

Laden Sie die Systemtabellen.

Sie erhalten eine Meldung über den erfolgreichen Abschluss.

load_systab

7.

Beenden Sie den Database Manager CLI

exit | release | quit | bye

Ergebnis

Sie haben die spezifizierte OLTP-Datenbankinstanz und ihre Software aktualisiert.

Sie befindet sich im Betriebszustand ONLINE.


In-Place-Migration mit SDBUPD (MaxDB: Installationshandbuch)

In-Place-Migration mit SDBUPD

Verwendung

Sie verwenden das Programm SDBUPD für das Upgrade der Datenbankinstanz.

Sie verwenden diese Vorgehensweise, wenn die Datenbankinstanz in ein SAP-System eingebundenen ist.

Diese Upgrade-Strategie ist nur für den Instanztyp OLTP von Bedeutung. Sie gilt für alle unterstützten Betriebssystemplattformen.

Voraussetzungen

· Die zu aktualisierende Datenbankinstanz ist Bestandteil eines SAP-Systems.

· Die Datenbankinstanz ist im Betriebszustand ONLINE.

· Die Datenbankinstanz bezieht sich als einzige auf den Installationspfad der zu aktualisierenden Softwareversion.

· Die Datenbankparameter der zu aktualisierenden Datenbankinstanz sind seit dem letzten Restart nicht geändert worden.

· Die Startversion der Datenbanksoftware ist 7.3 größer/gleich Build 025, die Zielversion ist größer gleich Version 7.5.00 (Siehe auch: Auswahl der Upgrade-Strategie).

Vorgehensweise

...

Beschreibung

Kommando

1.

Melden Sie sich an den Database Manager CLI an und stoppen Sie die zu aktualisierende Datenbankinstanz.

Wenn der vorhandene X-Server kleiner ist als 7.5, dann stoppen Sie mit diesem Kommando nacheinander alle Datenbankinstanzen.

dbmcli –d <database_name> -u <dbm_user>,<password> db_offline

2.

Überführen Sie die zu aktualisierende Datenbankinstanz in den Betriebszustand COLD (bis Version 7.3) bzw. ADMIN (ab Version 7.4)

db_cold | db_admin

3.

Falls Sie über eine jüngere Datensicherung verfügen, führen Sie eine inkrementelle Datensicherung und eine Log-Sicherung durch. Andernfalls führen Sie eine vollständige Datensicherung durch (Sichern der Datenbankinstanz).

backup_start <medium> [<type>] [AUTOIGNORE]

4.

Beenden Sie den Database Manager CLI.

exit | release | quit | bye

5.

Wenn die Startversion kleiner ist als 7.5.00, stoppen Sie den X-Server

Wenn die Startversion größer/gleich 7.5.00 ist, unterstützt die X-Server-Software ein Update bei laufendem Betrieb. Das Stoppen des X-Server ist deshalb nicht mehr notwendig.

x_server stop

6.

Stoppen Sie den X-Server falls Startversion kleiner als 7.5

x_server stop

7.

Starten Sie das Programm SDBUPD.

Das Programm SDBUPD führt das Upgrade durch, gibt eine Meldung über den erfolgreichen Abschluss aus und kennzeichnet die Installation als abgeschlossen.

Die Ausführung dieses Kommandos kann sehr lange dauern. Brechen Sie die Ausführung unter keinen Umständen ab. Andernfalls besteht das Risiko eines kompletten Datenverlusts. Sie haben dann nur die Möglichkeit, mit Hilfe der Datensicherung/en auf den darin gespeicherten Zustand der Datenbankinstanz zurückzugehen.

UNIX/Linux:

./SDBUPD –d <database_name> -u <dbm_user>,<password>
[-o <sapdb_user>
-g <sapdb_admin>]

Den speziellen Betriebssystembenutzer <sdb_user> und die Gruppe <sdba_group> gemäß dem Berechtigungskonzept für UNIX-Betriebssysteme müssen Sie nur dann angeben, wenn Sie ein Upgrade zur Softwareversion 7.5.x durchführen.

Microsoft Windows:

sdbupd –d <database_name> -u <dbm_user>,<password>

Ergebnis

Die spezifizierte OLTP-Datenbankinstanz und ihre Software wurden aktualisiert.

Die Datenbankinstanz befindet sich im Betriebszustand ONLINE.


In-Place-Migration mit SDBINST und Nachbereitung (MaxDB: Installationshandbuch)

In-Place-Migration mit SDBINST und Nachbereitung

Verwendung

Sie verwenden das Programm SDBINST für das Upgrade von Datenbankinstanzen der Version 7.3 nach 7.5. Dafür installieren Sie zunächst die neue Version der Datenbanksoftware. Anschließend migrieren Sie die Datenbankinstanz/en.

Die Startversion der Datenbanksoftware ist Version 7.3.00 Build größer/gleich 025, die Zielversion ist größer/gleich 7.5.00 (Auswahl der Upgrade-Strategie).

Sie verwenden diese Vorgehensweise für Datenbankinstanzen, die nicht in ein SAP-System eingebundenen sind, insbesondere dann, wenn sich mehrere Datenbankinstanzen auf den gleichen Installationspfad beziehen.

Diese Upgrade-Strategie ist nur für Datenbankinstanzen des Instanztyps OLTP von Bedeutung. Sie gilt für alle unterstützten Betriebssystemplattformen.

Voraussetzungen

· Die zu aktualisierende Datenbankinstanz ist nicht Bestandteil eines SAP-Systems.

· Sie verfügen über ein Sicherungsmedium für eine vollständige Datensicherung.

Vorgehensweise

Zur Gewährleistung der Sicherheit Ihrer Daten im Falle eines eventuellen Fehlers während des Migrationsvorganges empfehlen wir Ihnen, als Schritt 6 der Migration eine vollständige Datensicherung der Instanz im Betriebszustand COLD durchzuführen. Wegen des notwendigen Stoppens der Datenbankinstanz führt dies zu einer gewissen Stillstandszeit. Die so entstehende Datensicherung kann jedoch in einem eventuellen Fehlerfall sowohl in eine Datenbankinstanz der Version 7.3 als auch der Zielversion zum Wiederherstellen der Datenbankinstanz eingelesen werden.

Alternativ dazu können Sie auch vor dem Beginn der Migration eine vollständige Datensicherung im Betriebszustand WARM ausführen. Diese Sicherung könnte im Fehlerfall jedoch nur zum Wiederherstellen der Datenbankinstanz in der Startversion verwendet werden und ist deshalb keine vollständige Alternative zur Datensicherung im Betriebszustand COLD während des Migrationsvorganges.

...

1. Installieren Sie die Software der Zielversion mit Hilfe des Programms SDBINST (zip-Datei oder tgz-Paket) im Installationspfad <dependent_path><target_version> parallel zum Installationspfad der Version 7.3.

oder

Installieren Sie die Software der Zielversion mit Hilfe des Red Hat Package Manager (rpm-Paket).

Wenn Sie auf Ihrem Rechner die Datenbanksoftware der Version 7.3 mit Hilfe des Red Hat Package Manager installiert haben, können Sie weitere Installationen nur noch mit diesem Programm durchführen. Weitere Installationen mittels SDBINST sind nicht mehr möglich.

2. Führen Sie die nachfolgenden Migrationsschritte für jede einzelne Ihrer Datenbankinstanzen der Startversion durch.

Vorgehensweise

Kommando

...

1.

Rufen Sie als DBM-Benutzer den Database Manager CLI auf und verbinden Sie sich mit der zu migrierenden Datenbankinstanz.

dbmcli – d <database_name> -u <dbm_user>,<password>

2.

Stoppen Sie die Datenbankinstanz ordnungsgemäß.

Verwenden Sie dazu das Kommando db_offline und nicht das Kommando db_stop. Nur so ist gewährleistet, dass die Datenbankinstanz in einem eventuellen Fehlerfall Restart-fähig bleibt.

db_offline

3.

Überführen Sie die Datenbankinstanz in den Betriebszustand COLD.

db_cold

4.

Führen Sie das Kommando zur Vorbereitung der Migration aus.

util_execute migrate

5.

Eröffnen Sie eine Uitility-Sitzung

util_connect

6.

Führen Sie im Betriebszustand COLD eine vollständige Datensicherung durch.

backup_start <medium>

7.

Beenden Sie die Utility-Sitzung

util_release

8.

Überführen Sie die Datenbankinstanz in den Betriebszustand OFFLINE.

db_offline

9.

UNIX:

Ordnen Sie die Datenbankinstanz der neuen Softwareversion <target_version> zu.

Microsoft Windows:

Löschen Sie die Registrierung der Datenbankinstanz.

UNIX:

db_reg –R <dependent_path><target_version>

Microsoft Windows:

db_drop WITHOUTFILES

10.

Beenden Sie den Database Manager CLI.

nur für Microsoft Windows:

Geben Sie dem Database Manager den Installationspfad der neuen Datenbanksoftware bekannt und erzeugen Sie eine Datenbankinstanz dieser neuen Softwareversion.

exit | release | quit | bye

dbmcli –R <dependent_path><target_version> db_create –d <database_name> -u <dbm_user>,<password>

11.

Melden Sie sich neu an den Database Manager CLI an.

dbmcli – d <database_name> -u <dbm_user>,<password>

12.

Starten Sie die Migration der Datenbankparameter.

param_checkall

13.

Wenn Sie ein Upgrade zu einer Datenbankversion größer/gleich 7.5.00 auf einem UNIX-Betriebssystem durchführen, dann nehmen Sie folgende Zwischenschritte vor. Andernfalls verfahren Sie weiter, wie unter Punkt 14. beschrieben.

a. Melden Sie sich vom Database Manager CLI ab.

b. Rufen Sie das Programm chvolperm auf, das Eigentümer, Gruppe sowie Zugriffsrechte auf die Volumes der Datenbankinstanz entsprechend dem Berechtigungskonzept für UNIX-Betriebssysteme ändert.

c. Melden Sie sich wieder am Database Manager CLI an.

exit | release | quit | bye

<dependent_path>/bin/chvolperm –d <database_name>

dbmcli –d <database_name> -u <dbm_user>, <password>

14.

Überführen Sie die Datenbankinstanz in den Betriebszustand ADMIN.

db_admin

15.

Führen Sie das Migrationskommando aus.

In Abhängigkeit von der Größe der Datenbankinstanz kann die Ausführung des Kommandos längere Zeit in Anspruch nehmen und darf nicht abgebrochen werden.

util_execute migrate database

16.

Überführen Sie die Datenbankinstanz in den Betriebszustand OFFLINE.

db_offline

17.

Starten Sie die Datenbankinstanz neu. Der Datenbankkatalog wird von 7.3 in die Zielversion migriert.

db_online

18.

Laden Sie die Systemtabellen neu.

Sie erhalten eine Meldung über den erfolgreichen Abschluss.

load_systab

Ergebnis

Sie haben die spezifizierte Datenbankinstanz von der Softwareversion 7.3 in die gewünschte Zielversion migriert.

Sie befindet sich im Betriebszustand ONLINE.


Upgrade mittels APO Extract/Load (MaxDB: Installationshandbuch)

Upgrade mittels APO Extract/Load

Verwendung

Sie verwenden das Programm SDBUPD für das Upgrade mittels APO Extract/Load. Dabei müssen Sie zunächst die Transaktionsdaten des Anwendungssystems aus der liveCache-Datenbankinstanz in der APO-Datenbank sichern und anschließend die Software austauschen (Auswahl der Upgrade-Strategie).

Diese Vorgehensweise ist derzeit nur für den Instanztyp liveCache im SAP-System APO von Bedeutung. Sie gilt für alle vom Datenbanksystem unterstützten Betriebsystemplattformen.

Die Vorgehensweise ist abhängig davon, ob die Startversion kleiner als 7.5.00 oder größer/gleich 7.5.00 ist und auf welchem Betriebssystem Sie arbeiten.

Wenn Sie unter UNIX oder Linux arbeiten und die Startversion kleiner ist als 7.5.00, dann müssen Sie vor dem Upgradevorgang den X-Server und alle Datenbankinstanzen stoppen. Beachten Sie, dass Sie damit die Kommunikation von Clients zu allen lokalen Datenbankinstanzen unterbrechen. Wenn die Startversion größer oder gleich 7.5.00 ist, unterstützt die X-Server-Software ein Update bei laufendem Betrieb des X-Server. Das Stoppen des X-Server und der Datenbankinstanzen ist deshalb nicht mehr notwendig.

Wenn Sie unter Microsoft Windows arbeiten, müssen Sie in jedem Fall den X-Server und alle Datenbankinstanzen stoppen.

Voraussetzungen

· Sie haben die liveCache-Transaktionsdaten in der APO-Datenbank gesichert.

Informationen dazu finden SAP-Kunden im Service Marktplatz unter http://service.sap.com/instguides ® Installation ®Installation & Upgrade Guides ® mySAP SCM ® Using SAP SCM 4.1Server... ® Upgrade Information ® Upgrade for SAP SCM 4.1: SAP liveCache 7.5 ® Upgrade Preparations.

· Die Datenbankparameter der zu aktualisierenden Datenbankinstanz sind seit dem letzten Restart nicht geändert worden.

· Die Datenbankinstanz befindet sich in einem beliebigen Betriebszustand.

Vorgehensweise

...

1. Stoppen Sie gegebenenfalls jede einzelne Datenbankinstanz mit folgendem Kommando:

dbmcli –d <database_name> -u <dbm_user>, <password> db_offline

2. Stoppen Sie gegebenenfalls den X-Server.

x_server stop

3. Starten Sie das Programm SDBUPD durch die Eingabe des folgenden Kommandos:

UNIX, Linux: | Microsoft Windows:
./SDBUPD –d <database_name> -u <dbm_user>,<password> [-o <sapdb_user> -g <sapdb_admin>] | sdbupd –d <database_name> -u <dbm_user>,<password>

Den speziellen Betriebssystembenutzer <sdb_user> und die Gruppe <sdba_group> gemäß dem Berechtigungskonzept für UNIX-Betriebssysteme müssen Sie nur dann angeben, wenn Sie ein Upgrade zur Softwareversion 7.5.00 durchführen.

4. Das Programm SDBUPD führt das Upgrade durch und gibt eine Meldung über den erfolgreichen Abschluss aus. Sie werden aufgefordert, den liveCache zu starten.

5. Starten Sie den liveCache ( [image] liveCache starten).

6. Führen Sie das Wiederherstellen der Daten aus dem APO-System in den liveCache durch (Siehe auch obigen Verweis auf Upgrade for SAP SCM 4.1: SAP liveCache 7.5.)

Ergebnis

Die spezifizierte liveCache-Datenbankinstanz im SAP-System APO und ihre Software wurden aktualisiert.

Der liveCache befindet sich im Betriebszustand ONLINE.


Berechtigungskonzept für UNIX-Betriebssysteme (MaxDB: Installationshandbuch)

Berechtigungskonzept für UNIX-Betriebssysteme

Verwendung

Für die Ausführung von MaxDB-Programmen und den Zugriff auf Datenbankdateien enthält das Datenbanksoftware-Ppaket ab Version 7.5.00 ein vorkonfiguriertes Berechtigungskonzept, das sowohl für die Installation innerhalb von SAP-Systemen als auch im Open-Source-Bereich gilt.

Im Rahmen dieses Konzepts gibt es einen speziellen Betriebssystembenutzer <sdb_user> sowie die Betriebssystembenutzergruppe <sdba_group>.

Wenn Betriebssystembenutzer und Benutzergruppen auf Ihrem Rechner lokal verwaltet werden, empfiehlt es sich, vor Beginn der Installation die Namen des speziellen Betriebssystembenutzers und der Benutzergruppen im Betriebssystem anzulegen. Sie können dies aber auch während des Installationsvorgangs tun.

Wenn Betriebssystembenutzer und Benutzergruppen für Ihr System zentral im Netz verwaltet werden, müssen Sie diese dort vor Beginn der Installation anlegen.

Erläuterungen über das Anlegen von Betriebssystembenutzern und Benutzergruppen finden Sie in Ihrer Betriebssystemdokumentation.

Spezieller Betriebssystembenutzer

Der spezielle Betriebssystembenutzer ist Eigentümer der gesamten Datenbanksoftware und der Datenbankprozesse und damit z. B. auch Eigentümer der Volumes, des Datenbank-Trace und der Datenbankprotokolle. Er wird auf einem Rechner einmalig bei der Erstinstallation eines Datenbanksoftware-Pakets einer Version größer/gleich 7.5.00 angelegt. Der Systemvorschlag für seinen Namen ist sdb.

Der spezielle Betriebssystembenutzer ist Mitglied der Administratorengruppe und meldet sich nicht interaktiv an das Betriebssystem an. Die Administratorengruppe ist die primäre Gruppe des Benutzers sdb.

Dieser spezielle Betriebssystembenutzer darf keine Berechtigung haben, sich interaktiv an das Betriebssystem anzumelden. Entziehen Sie ihm deshalb diese Berechtigung. Hinweise dazu finden Sie in Ihrer Betriebssystemdokumentation (lock account).

Administratorengruppe

Der Administratorengruppe werden zum Zeitpunkt der Softwareinstallation einmalig die von den Datenbankinstanzen und Datenbankanwendungen gemeinsam genutzten Programme und Bibliotheken zugewiesen. Der Systemvorschlag für den Namen der Administratorengruppe ist sdba.

Betriebssystembenutzer, die dieser Gruppe angehören, haben Zugriff auf die Datenbankprotokolle. Sie dürfen neue Datenbankinstanzen anlegen und den X-Server starten, stoppen und aktualisieren.

Die Nutzer der Administratorengruppe haben über das Dateisystem Zugriff auf die Volumes von Datenbankinstanzen.


Fehlerbehandlung (MaxDB: Installationshandbuch)

Fehlerbehandlung

Sollte es bei Installation/Update der Datenbanksoftware oder beim Aktualisieren von Datenbankinstanzen inklusive Software zu Fehlern und infolge dessen zu einem Abbruch des Programms kommen, können Sie mit Hilfe der zur Verfügung stehenden Programme, Ihren Datensicherungen und der Software der Startversion zunächst auf die ursprüngliche Version zurückgehen. Sie gewinnen so Zeit für die Problemanalyse und halten die Stillstandszeiten so gering wie möglich.

Löschen Sie bereits installierte Dateien unter keinen Umständen manuell aus dem Dateisystem. Verwenden Sie auch bei abgebrochenen Installationen zur Deinstallation ausschließlich das Programm SDBUNINST. Andernfalls kann es im Verlaufe weiterer Installationen oder Upgrades zu nicht vorhersehbaren Problemen kommen.

Fehler bei der Ausführung des Programms SDBINST

Fehler bei der Ausführung des Programms SDBUPD


Fehler bei der Ausführung des Programms SDBINST (MaxDB: Installationshandbuch)

Fehler bei der Ausführung des Programms SDBINST

Wenn bei der Ausführung des Programms SDBINST Fehler auftreten, bricht das Programm mit einer Meldung über die Fehlerursache ab.

Die häufigsten Ursachen

...

1. Es sind noch Dateien der zu aktualisierenden Software in Benutzung.

¡ Es gibt noch laufende Administrationssitzungen, d.h. das Programm Database Manager CLI ist noch aktiv.

¡ Es laufen noch Anwendungen, die die Runtime oder Scripting-Interfaces des Datenbanksystems benutzen.

2. Der noch freie Plattenplatz reicht für die neu zu installierende Software nicht aus.

3. Sie versuchen, einen 64-bit-Datenbankkern mit Hilfe der Software für einen 32-bit-Datenbankkern zu aktualisieren. Das ist nicht möglich.

4. Sie versuchen, mit Hilfe des Programms SDBINST die Software zu aktualisieren. Dabei vernachlässigen Sie die Abhängigkeiten zwischen einzelnen Softwarekomponenten bezüglich der Installationsreihenfolge oder ihrer Versionen.

Benutzerreaktion

Beseitigen Sie die Fehlerursachen und starten Sie erneut die Ausführung des Programms wie beschrieben.


Fehler bei der Ausführung des Programms SDBUPD (MaxDB: Installationshandbuch)

Fehler bei der Ausführung des Programms SDBUPD

Wenn bei der Ausführung des Programms SDBUPD Fehler auftreten, bricht das Programm mit einer Meldung über die Fehlerursache ab.

Die häufigsten Ursachen

...

1. Bei der Ausführung des Programms SDBUPD ist ein unerwarteter Fehler aufgetreten.

2. Sie versuchen, mit Hilfe des Programms SDBUPD auf eine Softwareversion zu wechseln, die niedriger ist, als die aktuelle (nachfolgend Downgrade genannt). Beispiele für derartige Situationen:

¡ Sie haben irrtümlich eine andere als die gewünschte Softwareversion ausgewählt.

¡ Das Upgrade der Datenbankinstanz ist mit einem Fehler abgebrochen. Sie haben deshalb versucht, mit Hilfe des Programms SDBUPD auf die ursprüngliche Softwareversion zurückzugehen.

¡ Das Upgrade der Datenbankinstanz war erfolgreich, aber sie wollen aus anderen Gründen auf eine niedrigere Softwareversion zurückgehen.

Ein Downgrade mit Hilfe des Programms SDBUPD ist nicht möglich. Für die Verwendung des Programms SDBUPD muss die neu zu installierende Software mindestens eine höhere Build-Nummer aufweisen (Versionsnotierung).

Benutzerreaktion

Folgen Sie den für die verschiedenen Fälle beschriebenen Vorgehensweisen.

Fall 1:

Es gibt noch keine Datenbankinstanzen, die sich auf die höhere Softwareversion beziehen.

Fall 2:

Es gibt bereits Datenbankinstanzen, die sich auf die höhere Softwareinstallation beziehen. Sie wollen einen Downgrade für jene Software durchführen, die ausschließlich von der Datenbankinstanz benutzt wird (Dependent Software).

Fall 3:

Es gibt bereits Datenbankinstanzen, die sich auf die höhere Softwareinstallation beziehen. Sie wollen einen Downgrade für jene Software durchführen, die n i c h t von der Datenbankinstanz benutzt wird oder deren Version für die Datenbankinstanz unerheblich ist (Independent Software).


Fall 1: Es gibt noch keine Datenbankinstanzen (MaxDB: Installationshandbuch)

Fall 1: Es gibt noch keine Datenbankinstanzen

Verwendung

Es gibt noch keine Datenbankinstanzen, die sich auf die höhere Softwareversion beziehen.

Vorgehensweise

Deinstallieren Sie entweder die gesamte Datenbanksoftware mit Hilfe des Programms SDBUNINST

oder

deinstallieren Sie nur jene Softwarekomponenten, die sie in einer niedrigeren Version installieren wollen. Berücksichtigen Sie dabei die zwischen den Komponenten bestehenden Abhängigkeiten.

Deinstallation der Datenbanksoftware


Fall 2: Downgrade für Dependent Software (MaxDB: Installationshandbuch)

Fall 2: Downgrade für Dependent Software

Verwendung

Es gibt bereits Datenbankinstanzen, die sich auf die höhere Softwareinstallation beziehen. Sie wollen einen Downgrade für jene Software durchführen, die ausschließlich von der Datenbankinstanz benutzt wird (Dependent Software).

Vorgehensweise

Löschen Sie die vorhandenen Datenbankinstanzen vor einem Downgrade.

· Wenn das Downgrade nur auf Build-Ebene erfolgen soll, wird es keine Inkompatibilitäten zwischen den Datenbankinstanzen der höheren Version und der Software der zu installierenden niedrigeren Version geben. Verfahren Sie für jede einzelne Datenbankinstanz wie nachfolgend beschrieben:

 | Vorgehensweise | Kommando
... 1. | Rufen Sie als DBM-Benutzer den Database Manager CLI auf und verbinden Sie sich mit der Datenbankinstanz. | dbmcli –d <database_name> -u <dbm_user>,<password>
2. | Löschen Sie die Registrierung der Datenbankinstanz. | db_drop WITHOUTFILES
3. | Beenden Sie den Database Manager CLI. | exit | release | quit | bye
4. | Deinstallieren Sie mindestens den Datenbankkern sowie die gewünschte/n Softwarekomponente/n der höheren Version. | sdbuninst –package "Database Kernel" [, <package_name2>…]
5. | Installieren Sie das gewünschte Installationsprofil der niedrigeren Version (bei OLTP-Datenbankinstanzen mindestens Server, bei liveCache-Datenbankinstanzen APO liveCache). Für die Installation in SAP-Systemen beachten Sie den unten stehenden wichtigen Hinweis. | sdbinst –profile Server | "APO LiveCache" [, <inst_profile2>…]
6. | Registrieren Sie die Datenbankinstanz neu. Geben Sie dafür den Namen und den DBM-Benutzer der alten Datenbankinstanz sowie den Pfad der neu installierten niedrigeren Softwareversion an. | Unix/Linux: <dependent_path>\bin \dbmcli –s –R <dependent_path> db_create <database_name> <dbm_user>,<password> Microsoft Windows: "<dependent_path>\pgm \dbmcli" –s –R "<dependent_path>" db_create <database_name> <dbm_user>,<password>

· Wenn das Downgrade mit einem Versionswechsel (Minor- oder Major-Release, siehe auch Versionsnotierung) der Datenbanksoftware verbunden ist, verfahren Sie wie folgt:

 | Vorgehensweise | Kommando
 | Rufen Sie als DBM-Benutzer den Database Manager CLI auf und verbinden Sie sich mit der Datenbankinstanz. | dbmcli –d <database_name> -u <dbm_user>,<password>
1. | Löschen Sie die Datenbankinstanz. | db_drop
2. | Beenden Sie den Database Manager CLI. | exit | release | quit | bye
3. | Deinstallieren Sie mindestens den Datenbankkern sowie die gewünschte/n Softwarekomponente/n der höheren Version. | sdbuninst –package "Database Kernel" [, <package_name2>…]
4. | Installieren Sie das gewünschte Installationsprofil der niedrigeren Version (bei OLTP-Datenbankinstanzen mindestens Server, bei liveCache-Datenbankinstanzen APO liveCache). Für die Installation in SAP-Systemen beachten Sie den unten stehenden wichtigen Hinweis. | sdbinst –profile Server | "APO LiveCache" [, <inst_profile2>…]
5. | Rufen Sie den Database Manager GUI auf. Verwenden Sie den Installation Wizard zum Anlegen einer neuen Datenbankinstanz unter Verwendung der Parameterdatei aus einer Sicherung. | Wählen Sie Instance ® Install. Folgen Sie den Ausführungen zum Anlegen oder Initialisieren einer Datenbankinstanz. Geben Sie dabei für die neue Datenbankinstanz den Datenbanksystemadministrator an, der in der Parameterdatei der Sicherung gespeichert ist.
6. | Beenden Sie den Database Manager GUI. | Wählen Sie File ® Exit.

Wenn Sie diese Vorgehensweise in SAP-Systemen verwenden, akzeptieren Sie nicht die Vorschlagswerte des Systems. Machen Sie stattdessen folgende Angaben:

<group> | für Zielversionen größer/gleich 7.5.00: sdba für alle vorherigen Datenbankversionen: sapsys
<owner> | für Zielversionen größer/gleich 7.5.00 immer: sdb für alle vorherigen Datenbankversionen · bei OLTP-Datenbankinstanzen: sqdsid · bei liveCache-Datenbankinstanzen: sidadm
<independent_data_path> | UNIX/Linux: /sapdb/data Microsoft Windows: <drive>:\sapdb\data
<independent_program_path> | UNIX/Linux: /sapdb/programs Microsoft Windows: <drive>:\sapdb\programs
<dependent_path> | UNIX/Linux: /sapdb/<SID>/db Microsoft Windows: <drive>:\sapdb\<SID>\db


Fall 3: Downgrade für Independent Software (MaxDB: Installationshandbuch)

Fall 3: Downgrade für Independent Software

Verwendung

Es gibt bereits Datenbankinstanzen, die sich auf die höhere Softwareinstallation beziehen. Sie wollen einen Downgrade für jene Software, die n i c h t von der Datenbankinstanz benutzt wird oder deren Version für die Datenbankinstanz unerheblich ist (Independent Software).

Vorgehensweise

 | Aktion | Kommando
... 1. | Deinstallieren Sie mindestens den Datenbankkern sowie die gewünschte/n Softwarekomponente/n der höheren Version. | sdbuninst –package "Database Kernel" [, <package_name2>…]
2. | Installieren Sie das gewünschte Installationsprofil der niedrigeren Version (bei OLTP-Datenbankinstanzen mindestens Server, bei liveCache-Datenbankinstanzen APO liveCache). Für die Installation in SAP-Systemen beachten Sie den unten stehenden wichtigen Hinweis. | sdbinst –profile Server | "APO LiveCache" [, <inst_profile2>…]

Sollten Sie diese Vorgehensweise in SAP-Systemen verwenden, akzeptieren Sie nicht die Vorschlagswerte des Systems. Machen Sie stattdessen folgende Angaben:

<group> | für Zielversionen größer/gleich 7.5.00: sdba für alle vorherigen Datenbankversionen: sapsys
<owner> | für Zielversionen größer/gleich 7.5.00 immer: sdb für alle vorherigen Datenbankversionen · bei OLTP-Datenbankinstanzen: sqdsid · bei liveCache-Datenbankinstanzen: sidadm
<independent_data_path> | UNIX/Linux: /sapdb/data Microsoft Windows: <drive>:\sapdb\data
<independent_program_path> | UNIX/Linux: /sapdb/programs Microsoft Windows: <drive>:\sapdb\programs
<dependent_path> | UNIX/Linux: /sapdb/<SIS>/db Microsoft Windows: <drive>:\sapdb\<SID>\db


Detailinformationen (MaxDB: Installationshandbuch)

Detailinformationen

Installationsprofile

Softwarekomponenten

Protokollierung

Übersicht der Optionen für das Programm SDBINST

Übersicht der Optionen für das Programm SDBUNINST

Übersicht der Optionen für das Programm SDBUPD


Installationsprofile (MaxDB: Installationshandbuch)

Installationsprofile

Installationsprofile sind verschiedene Zusammenstellungen einzelner Softwarekomponenten, wie sie für verschiedene Zwecke benötigt werden. Unabhängig davon, für welches Installationsprofil sie sich entscheiden, erhalten sie eine funktionierende Softwareinstallation.

Wenn Sie sich einzelne Softwarekomponenten, also Teile von Installationsprofilen installieren wollen, müssen Sie die zwischen Komponenten bestehenden Abhängigkeiten berücksichtigen, um die Funktionsfähigkeit dieser Softwareinstallation zu gewährleisten.

Sie können zwischen folgenden Installationsprofilen wählen:

Name | Enthaltene Softwarekomponenten | Installation/Update von
all | alle Softwarekomponenten | gesamtes Datenbanksoftware-Paket
Server | Base, mehrere PCR <version>, Server Utilities, ODBC, DB Analyzer, Database Kernel, JDBC, Loader | Server- und –Client-Software des OLTP-Datenbanksystems
Web Tools | Base, ODBC, Web Tools, XML Indexing Engine | Web Tools
DB Analyzer | Base, ODBC (nur für MS Windows), DB Analyzer | Database Analyzer
Runtime for SAP AS | Base, mehrere PCR <version>, JDBC, Loader | Client-Software für den SAP-Applikationsserver
APO LiveCache | nur für liveCache im SAP-System APO Base, mehrere PCR <version>, Server Utilities, ODBC (nur für MS Windows), DB Analyzer, Database Kernel, APO LC APPS bzw. APO COM (bis APO Version 4.0) | Server- und –Client-Software des liveCache-Datenbanksystems
C Precompiler | Base, mehrere PCR <version>, CPC Base, CPC SDK <version> | Notwendige Software zur Entwicklung von Precompiler-Anwendungen
Script Interface | Base, Perl Interface, Python Interface | Laufzeiten für Anwendungen, die Programmierschnittstellen benutzen
XML Indexing Engine | Base, ODBC, XML Indexing Engine | XML Indexing Engine
Loader | Base, Loader | Werkzeug Loader
JDBC | Base, JDBC | MaxDB-JDBC-Treiber

Namen von Softwarekomponenten, die Leerzeichen enthalten, müssen im Installationskommando in doppelte Anführungszeichen gesetzt werden.


Softwarekomponenten (MaxDB: Installationshandbuch)

Softwarekomponenten

Verwendung

Sie installieren Installationspakete, die nur einzelne Komponenten der Datenbanksoftware enthalten. Auf diese Weise können Sie einzelne fehlende Komponenten nachträglich installieren ohne andere, für diese Komponente nicht erforderliche Komponenten, zu aktualisieren.

Verglichen mit der Installation von Installationsprofilen ist die Installation von Softwarekomponenten komplexer und verlangt vom Benutzer die Kenntnis und Berücksichtigung der bestehenden Abhängigkeiten, die durch den Inhalt und/oder die Version der Software bedingt sind.

Da die Installation nicht interaktiv sondern nur als Installation im Hintergrund ausgeführt werden kann, müssen Sie sich vor Beginn der Installation informieren, welche weiteren Komponenten für eine bestimmte Komponente erforderlich sind und in welcher Reihenfolge diese installiert werden müssen. Sobald das Installationsprogramm erkennt, dass Abhängigkeiten nicht berücksichtigt sind, bricht es den Installationsvorgang ab. Sie sollten diese Art der Installation deshalb nur im Sonderfall durchführen.

Die Datenbanksoftware ist in folgende Komponenten gegliedert:

Name | Beschreibung
Base | Programme zum Registrieren der Installation, Deinstallationswerkzeug, InstallRegistryViewer und Programme, die vom SAP-Applikationsserver benötigt werden, um auf das Datenbanksystem zugreifen zu können (einschließlich XUSER und SQLCLI)
PCR<version> | Precompiler-Runtime-Paket, enthält Laufzeitbibliotheken für Anwendungen, die mit dem C/C++-Precompiler für Embedded SQL erstellt wurden, kann in mehreren Versionen im lokalen Installationsverzeichnis vorliegen
Server Utilities | Werkzeuge zum Verwalten des Datenbankkerns (einschließlich Database Manager CLI, XPU und XCONS)
Database Kernel | Datenbankkern mit Laufzeitumgebung.
CPC Base | C++-Precompiler-Basis (Aufrufprogramme für den Precompiler)
CPC SDK <version> | C++-Precompiler
ODBC | ODBC-Treiber
DB Analyzer | Database Analyzer: Werkzeug zur Analyse der Datenbank-Performance
Web Tools | Web Server und Web-basierte Datenbankwerkzeuge (WebDBM, WebSQL, WebDAV)
Python Interface | Python-Interface
Perl Interface | Perl-Interface
XML Indexing Engine | XML Indexing Engine, kann auf einem vom Datenbankrechner verschiedenen Computer installiert werden und damit eine höhere Performance gewährleisten
Loader | Loader: Werkzeug zum Laden und Entladen von Daten
JDBC | MaxDB-JDBC-Treiber für den Zugriff auf das Datenbanksystem MaxDB
APO LC APPS (ab APO Version 4.0) bzw. APO COM | nur für SAP liveCache im SAP-System APO: Bibliotheken mit den APO liveCache-Routinen

Namen von Softwarekomponenten, die Leerzeichen enthalten, müssen im Installationskommando in doppelte Anführungszeichen gesetzt werden.

Abhängigkeiten

Zwischen den Softwarekomponenten bestehen folgende Abhängigkeiten:

Base ® PCR <version>
Base ® Server Utilities ® Database Kernel ® APO LC APPS | APO COM
Base [ ® ODBC]* ® DB Analyzer
Base ® ODBC ® Web Tools
Base ® CPC Base
Base ® CPC Base ® CPC SDK <version>
Base ®Perl
Base ®Python
Base ® ODBC ® XML Indexing Engine
Base ® Loader
Base ® JDBC

* Komponente ist nur auf Microsoft Windows Voraussetzung für DB Analyzer

Erläuterung der Abhängigkeiten

· Die Softwarekomponente Base ist unabhängig von allen anderen Paketen.

· Die Softwarekomponente PCR <version> kann erst nach der Installation von Base installiert werden.

· Die Softwarekomponente Server Utilities kann erst nach der Installation von Base installiert werden.

¡ Die Softwarekomponente Database Kernel kann erst nach der Installation von Server Utilities installiert werden.

¡ Die Softwarekomponente APO LC APPS bzw. APO COM kann erst nach Installation von Database Kernel installiert werden.

· Die Softwarekomponente DB Analyzer kann erst nach der Installation von Base (auf UNIX-Betriebssystemen) bzw. Base und ODBC (auf Windows-Betriebssystemen) installiert werden.

· Die Softwarekomponente ODBC kann erst nach der Installation von Base installiert werden.

¡ Die Softwarekomponente Web Tools kann erst nach der Installation von ODBC installiert werden.

· Die Softwarekomponente CPC Base kann erst nach der Installation von Base installiert werden.

¡ Die Softwarekomponente CPC SDK <version> kann erst nach der Installation von CPC Base installiert werden.

· Die Softwarekomponente Perl kann erst nach der Installation von Base installiert werden.

· Die Softwarekomponente Python kann erst nach der Installation von Base installiert werden.

· Die Softwarekomponente ODBC kann erst nach der Installation von Base installiert werden.

¡ Die Softwarekomponente XML Indexing Engine kann erst nach der Installation von ODBC installiert werden.

· Die Softwarekomponente Loader kann erst nach der Installation von Base installiert werden.

· Die Softwarekomponente JDBC kann erst nach der Installation von Base installiert werden.


Protokollierung (MaxDB: Installationshandbuch)

Protokollierung

Verwendung

Alle Schritte bei Installation/Update und der Aktualisierung von Datenbankinstanzen inklusive Software werden in Protokolldateien gespeichert. Der Name der Protokolldatei enthält eine Angabe zum Produktnamen MaxDB oder SAP liveCache.

Konventionen

Variablen

Ablage der Protokolldatei für Installation/Update

· UNIX/Linux ( tgz-Paket):
 <independent_data_path>/wrk/MAXDB<profile>_install-<date>-<time>.log

oder

<independent_data_path>/wrk/SAPliveCache<profile>_install-<date>-<time>.log

· Microsoft Windows:
 <independent_data_path>\wrk\MAXDB<profile>_install-<date>-<time>.log

oder

<independent_data_path>\wrk\SAPliveCache<profile>_install-<date>-<time>.log

Wenn das Verzeichnis <independent_data_path> zur Abbruchzeit noch nicht bekannt ist, wird das Protokoll im aktuellen Verzeichnis erstellt.

Falls Sie einzelne Softwarekomponenten installiert/aktualisiert haben, finden Sie die Protokollierung in der Datei
MAXDBSoftware_install-<date>-<time>.log

oder

SAPliveCache Software_install-<date>-<time>.log

Ablage der Protokolldatei für die Aktualisierung von Datenbankinstanzen inklusive Software (Upgrade)

· UNIX/Linux ( tgz-Paket):
 <independent_data_path>/wrk/MAXDBUpgrade_install-<date>-<time>.log oder

<independent_data_path>/wrk/SAPliveCacheUpgrade_install-<date>-<time>.log

· Microsoft Windows:
 <independent_data_path>\wrk\MAXDBUpgrade_install-<date>-<time>.log

oder

<independent_data_path>\wrk\SAPliveCacheUpgrade_install-<date>-<time>.log


Übersicht der Optionen für das Programm SDBINST (MaxDB: Installationshandbuch)

Übersicht der Optionen für das Programm SDBINST

Bei der Installation/Update von Datenbanksoftware mit dem Programm SDBINST stehen Ihnen folgende Optionen zur Verfügung:

Option

Beschreibung

-b | -batch

Verwendung des Installationsprogramms im Hintergrund

Wenn Sie diese Option angeben, bricht das Installationsprogramm im Falle fehlender Angaben mit einem Fehler ab.

Wenn Sie diese Option nicht angeben, stoppt das Programm im Falle fehlender Angaben und fordert Sie zur Interaktion auf.

-profile <inst_profile>

Installationsprofil

Namen, die Leerzeichen enthalten, müssen im Installationskommando in doppelte Anführungszeichen gesetzt werden.

-package <package_name>

Logischer Name der Softwarekomponente (nicht Dateinamen)

Namen, die Leerzeichen enthalten, müssen im Installationskommando in doppelte Anführungszeichen gesetzt werden.

-indep_data <independent_data_path>

Kann nur bei einer Neuinstallation spezifiziert werden. In allen anderen Fällen wird die Angabe vom System ignoriert. Eine Änderung dieser Pfadangabe ist nur nach einer vollständigen Deinstallation der Datenbanksoftware möglich.

-indep_prog <independent-program_path>

Kann nur bei einer Neuinstallation spezifiziert werden. In allen anderen Fällen wird die Angabe vom System ignoriert. Eine Änderung dieser Pfadangabe ist nur nach einer vollständigen Deinstallation der Datenbanksoftware möglich.

-depend <dependent_path>

Muss nur bei einer Neuinstallation und nur für die Installationsprofile all, Server und APO LiveCache sowie die Softwarekomponenten Database Kernel und APO LC APPS (ab APO Version 4.) bzw.APO COM angegeben werden. In allen anderen Fällen wird die Angabe vom System ignoriert.

-o | -owner <sdb_user>

nur UNIX: Eigentümer der Software

-g | -group <sdba_group>

nur UNIX: Gruppe der Software (Administratorengruppe)

-h | -help

Liste der möglichen Optionen und Beschreibungen

-v | -version

Versionsnummer des Installationsprogramms SDBINST

-l | -list

Anzeigen aller möglichen Installationsprofile und Softwarekomponenten

Siehe auch: Variablen


Übersicht der Optionen für das Programm SDBUNINST (MaxDB: Installationshandbuch)

Übersicht der Optionen für das Programm SDBUNINST

Bei der Deinstallation von Datenbanksoftware mit dem Programm SDBUNINST stehen Ihnen folgende Optionen zur Verfügung:

Option

Beschreibung

-all

Es wird die gesamte für MaxDB registrierte Software deinstalliert.

-package <package>

Logischer Name der Softwarekomponente, die deinstalliert werden soll (nicht Dateiname)

-package_dir <package_directory>

Verzeichnis der angegebenen Softwarekomponente
Diese Angabe ist nur erforderlich, wenn es mehrere Softwarepakete gleichen Namens gibt.

-autoresolve

Das System deinstalliert neben der angegebenen Softwarekomponente auch alle davon abhängigen Komponenten.

-package ODBC –autoresolve

Unter Microsoft Windows werden die Komponenten ODBC und die davon abhängige Komponente Web Tools deinstalliert.

-h | -help

Liste der möglichen Optionen und Beschreibungen

-v | -version

Versionsnummer des Deinstallationsprogramms SDBUNINST

-l | -list

Anzeigen aller möglichen Softwarekomponenten


Übersicht der Optionen für das Programm SDBUPD (MaxDB: Installationshandbuch)

Übersicht der Optionen für das Programm SDBUPD

Beim Upgrade von Datenbankinstanzen der Version 7.3 nach 7.4 mit dem Programm SDBUPD stehen Ihnen folgende Optionen zur Verfügung:

Option

Beschreibung

-b | -batch

Verwendung des Programms SDBUPD im Hintergrund

Wenn Sie diese Option angeben, bricht das Installationsprogramm im Falle fehlender Angaben mit einem Fehler ab.

Wenn Sie diese Option nicht angeben, stoppt das Programm im Falle fehlender Angaben und fordert Sie zur Interaktion auf.

-d <database_name>

Name der Datenbankinstanz

-u <dbm_user>,<password>

Name und Kennwort des DBM-Benutzers

-h | -help

Liste der möglichen Optionen und Beschreibungen

-v | -version

Versionsnummer des Programms SDBUPD

-l | -list

Anzeigen aller möglichen Installationsprofile und Softwarekomponenten

-o <sdb_user>

Eigentümer der Software (nur UNIX) beim Upgrade zur Softwareversion 7.5.00 gemäß dem Berechtigungskonzept

-g <sdba_group>

Administratorengruppe (nur UNIX) beim Upgrade zur Softwareversion 7.5.00


Grundwissen

Titel der Dokumentation | Inhalt
Datenbankverwaltung | Einführung in das Datenbanksystem MaxDB: Architektur, Verzeichnisstruktur, Datenbankparameter, Datenbankwerkzeuge, Benutzer- und Sicherheitskonzepte, Überblick über die Dokumentation, Begriffe usw.
Referenzhandbuch | SQL-Anweisungen und ihre Syntax, Systemtabellen, Besonderheiten im SQL-Modus ORACLE
Meldungen | Liste aller Meldungen des Datenbanksystems: Rück- und Fehlermeldungen des Datenbankkerns, der Datenbankwerkzeuge und des Precompiler, mit kurzen Erläuterungen für die mögliche Fehlerursache und Hinweisen zu ihrer Behebung
Hintergrundwissen | Hintergrundwissen zum Datenbanksystem MaxDB, z. B Log-Konzept, B*-Bäume, Schattendatenbanken
SAP-Sicherheitsleitfaden: MySQL MaxDB | Empfohlene Sicherheitsmaßnahmen für das Datenbanksystem


Datenbankverwaltung

Diese Dokumentation gibt Ihnen einen Überblick über das Datenbanksystem MySQL MaxDB Version 7.5 (früher SAP DB), seine Werkzeuge und Programmierschnittstellen.

Für die Datenbankverwaltung und die Arbeit mit dem Datenbanksystem erhalten Sie Informationen zu folgenden Themen:

· Konfiguration und Betrieb von Datenbankinstanzen, z. B. Datenbankparameter und Datenbankdateien

· Begriffe, z. B. Cache, Volume, Datenbanksitzung, Transaktion und Sperre

· Benutzerkonzept und Sicherheitskonzepte, z. B. Sichern und Wiederherstellen

· Versionsnotierung, technische Spezifikationen und unterstützte Betriebssysteme und Plattformen

In der Übersicht der Dokumentation finden Sie eine Liste aller verfügbaren Dokumentationen zum Datenbanksystem. Die Dokumentation Hintergrundwissen beschreibt detailliert wichtige Konzepte des Datenbanksystems.

Open-Source-Benutzer können die gesamte MaxDB-Software unter der Adresse http://www.mysql.com/downloads herunterladen.

SAP Kunden erhalten die MaxDB-Software mit der SAP-Installations-CD oder über den Service Marktplatz unter http://service.sap.com.

Sie können außerdem Support für Ihr Datenbanksystem erhalten.


SAP DB und MySQL MaxDB (MaxDB: Datenbankverwaltung)

SAP DB und MySQL MaxDB

Im Mai 2003 hat SAP einen Kooperationsvertrag mit MySQL AB geschlossen. Im Zuge dieses Vertrages wird die Datenbank SAP DB ab der Datenbankversion 7.5 unter dem Namen MySQL MaxDB ausgeliefert.

MaxDB 7.5 ist Ergebnis der Weiterentwicklung des SAP DB Quellcodes. Entsprechend der Freigaben für SAP-Anwendungen kann die MaxDB-Software 7.5 als direktes Update für die bisherigen SAP DB-Versionen ab 7.2.04 verwendet werden.

Für SAP Kunden ändert sich durch diesen Kooperationsvertrag nichts. Open-Source-Benutzer können sich über die geänderten Lizenzbedingungen unter der Adresse http://www.sapdb.org/7.4/sapdb_mysql.htm#license informieren.


Datenbanksystem (MaxDB: Datenbankverwaltung)

Datenbanksystem

Das Datenbanksystem ist die Gesamtheit der Software, mit der MaxDB- und liveCache-Datenbankinstanzen erzeugt und verwaltet werden und die Daten dieser Datenbankinstanzen von Benutzern bearbeitet werden können. Zentraler Bestandteil des Datenbanksystems ist der Kern.

Passen Sie die Verzeichnisstruktur des Datenbanksystems an Ihre Hardwarekonfiguration an, um eine optimale Performance zu erreichen.

Siehe auch:

· Datenbankwerkzeuge

· Programmierschnittstellen

· X-Server


Kern (MaxDB: Datenbankverwaltung)

Kern

Der Kern ist der zentrale Teil des Datenbanksystems. Es handelt sich dabei um ein Programm, das laufen muss, um eine Datenbank zu betreiben. Der Kern verwaltet den Zugriff auf die dauerhaft abgelegten Daten und bearbeitet die SQL-Anfragen bzw. bei liveCache-Datenbankinstanzen die OMS-Prozeduren.

Das Datenbanksystem wird mit mehreren unterschiedlichen Varianten des Kerns ausgeliefert.

Beim Starten einer Datenbankinstanz erzeugt der Kern Threads für alle Aufgaben, die parallel ausgeführt werden sollen („multithreaded program“). Zu diesen Aufgaben gehören z. B. der Verbindungsaufbau, die Bearbeitung von SQL-Anfragen, das I/O-Handling und die Überwachung der Datenbankinstanz. Die Ausführung dieser Aufgaben führt zu Zustandsänderungen, die sich in den Daten des Kerns und in den Data- und Log-Volumes widerspiegeln.


Kernvariante (MaxDB: Datenbankverwaltung)

Kernvariante

Kernvarianten sind unterschiedliche Varianten des Kerns des Datenbanksystems. Kernvarianten unterscheiden sich darin, welche Protokollierungen und Laufzeitüberprüfungen im normalen Datenbankbetrieb durchgeführt werden.

Sie können beim Starten, Restart, Überführen in den Betriebszustand ADMIN und Überführen in den Betriebszustand ONLINE explizit angeben, welche Kernvariante die Datenbankinstanz verwenden soll.

Folgende Kernvarianten sind verfügbar:

Kernvariante | Eigenschaften
fast | Systemvorschlag. Schnellste Variante des Kerns, es erfolgen nur minimale Protokollierungen und Laufzeitprüfungen.
quick | Variante des Kerns, bei der zusätzliche Protokollierungen und Laufzeitprüfungen erfolgen.
slow | Variante des Kerns, bei der sehr umfangreiche Protokollierungen und Laufzeitprüfungen erfolgen.

Verwenden Sie die Kernvarianten quick und slow nicht im Produktivbetrieb. Diese Kernvarianten sind wegen der zusätzlichen Protokollierungen und Laufzeitüberprüfungen sehr viel langsamer als die Kernvariante fast und sollten nur vom Support eingesetzt werden.

Siehe auch:

Database Manager CLI, Anzeigen der Variante des Datenbankkerns


Thread (MaxDB: Datenbankverwaltung)

Thread

Zu einer Datenbankinstanz gehören mehrere Betriebssystem-Threads, die unter anderem für das Ausführen von Tasks zuständig sind.

Es wird zwischen User-Kernel-Threads (UKTs) und Spezial-Threads unterschieden. Die Anzahl der User-Kernel-Threads und Spezial-Threads ist abhängig von der Hardwarekonfiguration, der Anzahl der verwendeten Volumes und den eingestellten Datenbankparametern.


User-Kernel-Thread (MaxDB: Datenbankverwaltung)

User-Kernel-Thread

Ein User-Kernel-Thread (UKT) bündelt mehrere Tasks, die unterschiedliche Aufgaben erfüllen. In einem User-Kernel-Thread können folgende Typen von Tasks laufen:

· Pager

· Log-Writer

· Server-Task

· Timer-Task

· Trace-Writer-Task

· User-Task

· Utility-Task

Beim Starten einer Datenbankinstanz werden mehrere User-Kernel-Threads erzeugt. Die Anzahl der User-Kernel-Threads und die Anzahl und Typen von Tasks, die in einem User-Kernel-Thread laufen können, wird über Datenbankparameter festgelegt.


Pager (MaxDB: Datenbankverwaltung)

Pager

Pager (Data-Writer) sind Tasks im User-Kernel-Thread. Sie sind für das Schreiben der Daten vom Data-Cache in die Data-Volumes zuständig. Pager werden bei jedem Savepoint aktiv.

Bei einem großen Data-Cache kann die Durchführung eines Savepoints sehr lange dauern. Die Pager werden dann auch zwischen dem Ende eines Savepoints und dem Beginn des nächsten Savepoints aktiv, um asynchron die geänderten Daten zu sichern.

Beim Restart dienen die Pager dem Einlesen der Converter-Seiten von den Data-Volumes in den Converter (Bestandteil des I/O-Buffer-Caches).

Die Anzahl der benötigten Pager wird vom System selbst berechnet. Sie ist in erster Linie von der Größe des Data-Cache und der Anzahl der Data-Volumes abhängig.


Log-Writer (MaxDB: Datenbankverwaltung)

Log-Writer

Der Log-Writer ist eine Task im User-Kernel-Thread. Er schreibt die Log-Einträge aus der Log-Warteschlange in den Log-Bereich, z. B. bei einem COMMIT. Dabei wird dieselbe Log-Seite immer auf denselben physikalischen Platz im Log-Bereich geschrieben.

Weitere Informationen finden Sie in der Dokumentation Hintergrundwissen im Abschnitt Logging.


Server-Task (MaxDB: Datenbankverwaltung)

Server-Task

Server-Tasks sind Tasks im User-Kernel-Thread. Sie dienen im Wesentlichen der Parallelisierung von Datenbankfunktionen und werden zum Beispiel für Sicherung, Wiederherstellung und das Anlegen von Indizes benötigt.

Die Anzahl der zur Verfügung stehenden Server-Tasks wird durch den speziellen Datenbankparameter MAXSERVERTASKS bestimmt.


Timer-Task (MaxDB: Datenbankverwaltung)

Timer-Task

Timer-Tasks sind Tasks im User-Kernel-Thread. Sie behandeln alle Arten von Timeout-Situationen.


Trace-Writer-Task (MaxDB: Datenbankverwaltung)

Trace-Writer-Task

Die Trace-Writer-Task ist eine Task im User-Kernel-Thread. Bei einem Datenbank-Trace für Diagnosezwecke schreibt die Trace-Writer-Task die entsprechende Protokolldatei.


User-Task (MaxDB: Datenbankverwaltung)

User-Task

Die User-Task ist eine Task im User-Kernel-Thread. Sie ist dafür zuständig, SQL-Anweisungen abzuarbeiten.

Jedem Client (also jedem Benutzer und jedem auf die Datenbankinstanz zugreifenden Anwendungsprogramm) wird beim Eröffnen einer Datenbanksitzung genau eine User-Task fest zugeordnet.

Die Anzahl der zur Verfügung stehenden User-Tasks wird durch den allgemeinen Datenbankparameter MAXUSERTASKS bestimmt. Der allgemeine Datenbankparameter MAXCPU gibt an, auf wie viele User-Kernel-Threads die User-Tasks verteilt werden. Die User-Tasks erzeugen die Hauptlast für den Prozessor; andere Tasks und auch die Spezial-Threads verbrauchen nur sehr wenig Prozessorzeit. Durch den Parameter MAXCPU kann so die Anzahl der von der Datenbankinstanz parallel genutzten Prozessoren begrenzt werden.


Utility-Task (MaxDB: Datenbankverwaltung)

Utility-Task

Die Utility-Task ist eine Task im User-Kernel-Thread. Sie ist ausschließlich für die Verwaltung der Datenbankinstanz reserviert.

Es existiert nur genau eine Utility-Task pro Datenbankinstanz, weswegen nicht mehrere Verwaltungsaufgaben parallel durchgeführt werden können. Eine Ausnahme bildet die automatische Log-Sicherung. Diese kann parallel zu anderen Verwaltungsaufgaben durchgeführt werden.


Spezial-Threads (MaxDB: Datenbankverwaltung)

Spezial-Threads

Spezial-Threads sind Betriebssystem-Threads, die unter anderem für den Zugriff auf externe Ressourcen zuständig sind. Eine Datenbankinstanz verfügt über die folgenden Spezial-Threads:

Coordinator

Der Coordinator überwacht alle Threads der Datenbankinstanz. Er ist der erste Thread, der beim Starten der Datenbankinstanz erzeugt wird. Er koordiniert die Startvorgänge der weiteren Threads. Wenn es zu Betriebsfehlern kommt, kann der Coordinator andere Threads stoppen.

Requester

Der Requester nimmt Anmeldungen der Benutzer an die Datenbank instanz entgegen und ordnet sie einer User-Task innerhalb eines User-Kernel-Threads zu.

Console-Thread

Der Console-Thread verarbeitet die Anfragen, die vom Werkzeug XCONS (Datenbankkonsole) gestellt werden.

Clock-Thread

Der Clock-Thread ermittelt interne Zeiten, z. B. wie lange eine SQL-Anweisung zur Ausführung benötigt. Er wird nur unter Microsoft Windows verwendet.

Dev-Threads

Dev-Threads sind dafür zuständig, Schreib- und Leseaufträge der Tasks auf und von den Volumes abzuwickeln.

Die Anzahl der Dev-Threads ist in erster Linie von der Anzahl der Volumes in der Datenbankinstanz abhängig. Im Normalfall werden für jedes Data-Volume und jedes Log-Volume zwei Dev-Threads aktiviert; für das Schreiben des Datenbank-Trace, wenn dieser eingeschaltet ist, wird ein Dev-Thread aktiviert.

Die Dev-Threads sind durchnummeriert (dev<n>). Der Dev-Thread dev0 spielt eine besondere Rolle: er koordiniert und überwacht die anderen Dev-Threads.

temporäre Dev-Threads

Zur Durchführung von Datensicherungen werden temporäre Dev-Threads (asdev<i>) zum Lesen und Schreiben der Daten aktiviert.

Timer

Timer dienen der Zeitüberwachung bei Timeouts und sind für weitere zeitabhängige interne Steuerungen zuständig.


Task (MaxDB: Datenbankverwaltung)

Task

Tasks führen Aufgaben aus, die von den Benutzern des Datenbanksystems oder vom Kern gestellt werden. Tasks laufen in User-Kernel-Threads.

Die Task-Zustände geben Auskunft über den aktuellen Zustand einer Task.

Es gibt mehrere Typen von Tasks, die jeweils für spezielle Aufgaben zuständig sind. So werden zum Beispiel SQL-Anfragen von den User-Tasks abgearbeitet.


Task-Zustände (MaxDB: Datenbankverwaltung)

Task-Zustände

Die folgende Tabelle zeigt die möglichen Zustände von Tasks. Um die aktuellen Task-Zustände anzuzeigen, können Sie z. B. das Werkzeug XCONS (Datenbankkonsole) verwenden.

AsynClose | Schließen der Ein-/Ausgabekanäle nach dem Sichern / Wiederherstellen
AsynCntl | Task ermittelt Parameter bzw. initialisiert das Sicherungsgerät
AsynOpen | Öffnen der Ein-/Ausgabekanäle zum Sichern/Wiederherstellen
AsynWait | Task wartet auf Ausführung der Ein-/Ausgabeaktivität beim Sichern/Wiederherstellen
Command reply | Task übermittelt das Ergebnis eines Auftrags an die Anwendung
Command wait | Task ist eine Datenbanksitzung ohne Auftrag
Connect wait | freie Datenbanksitzung
Diaginit | Initialisierung des Trace-Volume
DcomObjCalled | Task ist mit der Ausführung einer Datenbankprozedur/eines COM-Objekts beschäftigt
Inactive | Task ist in einem Initialzustand und hält keine Ressourcen (z.B. Stack)
InsertEvent | Task generiert ein Event
IO wait | Task wartet auf I/O (W:Schreiben, R:Lesen)
RescheduleMsec | kurzzeitige Wartesituation, läuft nach einer vorgegebenen Zeitspanne (in Mikrosekunden) automatisch weiter
Runnable | Task ist unmittelbar lauffähig, wurde aber wegen langer Laufzeit oder Bevorzugung einer anderen Task verdrängt
Running | Task läuft, nutzt CPU
Sus... | Spezielle Suspend-Situationen
Terminated | Task wird beendet / Datenbanksitzung wird beendet
Vattach | Öffnen der Ein-/Ausgabekanäle (Volumes, normaler Betrieb)
Vbegexcl | Task wartet auf geschützten Memory-Zugriff
Vdetach | Schließen der Ein-/Ausgabekanäle (Volumes, normaler Betrieb)
Vdevsize | Ermitteln der Größe/ evtl. Formatierung eines Volume
Vendexcl | Task ist lauffähig nach geschütztem Memory-Zugriff, bei dem eine Sperrkollision stattfand
Vopmsg | Es wird eine Meldung in die Datenbankdateien knldiag, knldiag.err und/oder opmsg[n] geschrieben
Vrelease | Beenden der Datenbanksitzung zwischen Datenbankinstanz und Anwendung
Vshutdown | Betriebszustand der Datenbankinstanz ändert sich von ONLINE in ADMIN
Vsleep | kurzzeitige Wartesituation, läuft nach einer vorgegebenen Zeitspanne automatisch weiter
Vsuspend | Task wartet auf B*-Baumsperre (sehr kurz) oder Log-I/O, wird explizit geweckt
Vwait | Task wartet auf SQL-Sperre
WaitForEvent | Task wartet auf Generierung von Events


Verzeichnisstruktur (MaxDB: Datenbankverwaltung)

Verzeichnisstruktur

Sicherheit und Performance des Datenbanksystems werden stark davon beeinflusst, wie die Datenbankverzeichnisse auf den Festplatten verteilt sind. Welche Verzeichnisstruktur optimal ist, hängt von der jeweiligen Hardwarekonfiguration ab.

Folgende Anforderungen müssen erfüllt sein:

· Es muss genügend freier Platz für das Wachstum des Datenbestandes vorhanden sein.

· Die Daten müssen sicher abgelegt sein.

· Die Hardware muss den Leistungsanforderungen genügen.

Wenn Sie die Verzeichnisstruktur für ein Produktivsystem planen, beachten Sie die Tipps für das Einrichten der Datenbankinstanz. Die Datenbankverzeichnisse werden bei der Installation der Datenbanksoftware festgelegt (siehe Installationshandbuch). Sie können hierbei entweder den Systemvorschlag übernehmen oder einen anderen Pfad festlegen.

Bei einer RPM-basierten Installation unter Linux sind die Verzeichnisse nicht frei wählbar, sondern durch die Werte /var/opt/sdb/data, /opt/sdb/programs und /opt/sdb/7500 festgelegt.

Wenn Sie einen Verzeichnispfad oder –namen nachträglich ändern wollen, überprüfen Sie zunächst die Abhängigkeiten zu anderen Verzeichnissen und kontaktieren Sie gegebenenfalls den Support.

Um die Pfade der wichtigsten Datenbankverzeichnisse anzeigen zu lassen, verwenden Sie den Database Manager CLI.

Siehe auch:

Database Manager CLI, Abschnitt Installations- und Registrierungsmanagement


Beispiel: Verzeichnisstruktur (MaxDB: Datenbankverwaltung)

Beispiel: Verzeichnisstruktur

Das Beispiel zeigt eine typische Struktur der Datenbankverzeichnisse unter Microsoft Windows.

C:\Program Files\sdb\

-- 7500

-- bin

-- cluster

-- doc

-- env

-- lib

-- misc

-- pgm

-- sap

-- Support

-- symbols

-- data

-- config

-- install

-- wrk

-- DBInstanz1

-- DBInstanz2

-- programs

-- bin

-- env

-- etc

-- incl

-- install

-- lib

-- misc

-- pgm

-- runtime

-- sdk

-- Support

-- symbols

-- web


Datenbankverzeichnisse (MaxDB: Datenbankverwaltung)

Datenbankverzeichnisse

Die folgende Tabelle zeigt die wichtigsten Verzeichnisse des Datenbanksystems.

Das Installationsverzeichnis der Datenbankwerkzeuge können Sie frei wählen. Sie können die Datenbankwerkzeuge sowohl auf dem Datenbankrechner als auch auf einem anderen Rechner installieren.

Verzeichnisname

Beschreibung

<independent_data_path>/config

Konfigurationsverzeichnis, das unter anderem Konfigurationsdateien für Datenbankparameter, Datenbankwerkzeuge und Dateien für die Benutzerautorisierung enthält

<independent_data_path>/wrk/
<database_name>

Vorschlagswert für das Arbeitsverzeichnis der Datenbankinstanz <database_name>

<independent_program_path>

Von der Version des Datenbanksystems unabhängige Programme. Diese werden nur einmal pro Rechner installiert. Sie finden in diesem Verzeichnis und seinen Unterverzeichnissen immer die Programme der neuesten installierten Version der Datenbanksoftware.

Bibliotheken für die Laufzeitumgebung der Clients. Diese werden einmal pro Rechner installiert, müssen aber in verschiedenen Versionen vorliegen können.

<dependent_path>

Ablage der von der Version des Datenbanksystems abhängigen Software. Diese wird einmal pro Datenbankinstanz installiert.

Die Pfadangabe muss eindeutig sein. Es können viele Verzeichnisse mit verschiedenen Versionen nebeneinander existieren.

Alle Programme in diesen versionsabhängigen Verzeichnissen werden nicht direkt von den Benutzern ausgeführt, sondern über die in <independent_program_path> abgelegten Programme aufgerufen.

Für SAP-Systeme gelten außerdem die folgenden Konventionen:

/sapdb/<database_name>/data | Verzeichnis für Data-Volumes
/sapdb/<database_name>/log | Verzeichnis für Log-Volumes und gespiegelte Log-Volumes
/sapdb/<database_name>/save | Verzeichnis für Sicherungsdateien von Log-Sicherungen und Datensicherungen

Siehe auch:

Beispiel: Verzeichnisstruktur


Arbeitsverzeichnis (MaxDB: Datenbankverwaltung)

Arbeitsverzeichnis

Das Arbeitsverzeichnis dient der Ablage der Protokolldateien einer Datenbankinstanz. Das Verzeichnis wird durch den allgemeinen Datenbankparameter RUNDIRECTORY bestimmt und beim Installieren einer neuen Datenbankinstanz vom Datenbanksystem angelegt.

Der Vorschlagswert für das Arbeitsverzeichnis ist <independent_data_path>/wrk/<database_name>

Bei einem Restart nach einem Datenbankabsturz werden die Protokolldateien der Datenbankinstanz im Arbeitsverzeichnis überschrieben. Ältere Protokolldateien werden deshalb in das Verzeichnis <diag_history_path> verschoben. Der Vorschlagswert für dieses Verzeichnis ist <independent_data_path>/wrk/<database_name>/DIAGHISTORY.

Siehe auch:

Verzeichnisstruktur des Datenbanksystems


Datenbankwerkzeuge (MaxDB: Datenbankverwaltung)

Datenbankwerkzeuge

Für die Arbeit mit Datenbankinstanzen stehen mehrere Datenbankwerkzeuge zur Verfügung.

Die Datenbankwerkzeuge sind in verschiedenen Softwarekomponenten enthalten. Sie können die Datenbankwerkzeuge, ausgenommen das Solution Life Cycle Management (CCMS), kostenfrei unter folgender Adresse herunterladen: http://www.mysql.com/downloads

Die folgende Tabelle zeigt, welche Datenbankwerkzeuge sich für welche Aufgaben eignen.

Werkzeug | Aufgabe | Typische Benutzer | Abwärts- kompatibel
Database Analyzer (CLI) | Analyse der Performance von Datenbankinstanzen (Nachfolger des Programms XWIZARD) | Support Datenbankadministrator | ja
Database Manager: Database Manager GUI Database Manager CLI Web DBM | Anlegen und Verwalten von Datenbankinstanzen und DBM-Benutzern Nicht: Anlegen und Verwalten von Datenbankbenutzern. | Datenbankadministrator | ja, ≥ 7.2
Loader (CLI) | Laden und Entladen von Daten (Import und Export) | Datenbankadministrator Anwendungsentwickler | ja, ≥ 7.3
SQL Studio: SQL Studio (GUI) SQLCLI Web SQL Studio | Zugriff auf Daten und den Datenbankkatalog, SQL-Abfragen, Anlegen und Verwalten von Datenbankobjekten und Datenbankbenutzern | Datenbankbenutzer | SQL Studio: ja, ≥ 7.4.0 SQLCLI: ja, ≥ 7.2
VMAKE (CLI) | Entwicklungsumgebung. Erstellen von MaxDB-Software nach Modifizierung des Quelltexts. | Open-Source-Benutzer, die den MaxDB-Quelltext modifizieren | nein
WebDAV GUI (Web) | Indizierung von XML-Dokumenten im WebDAV-Service und Zugriffsoptimierung | WebDAV-Administrator | ja, ≥ 7.4.3.30
XCONS (CLI) | Datenbankkonsole. Sehr detaillierte Informationen über die vom Datenbanksystem belegten Betriebssystemressourcen | Support Datenbankadministrator | ja
XPU (CLI) | Aktualisieren der Optimiererstatistiken | Support Datenbankadministrator | ja
XUSER (CLI) | Verwalten von benutzerspezifischen Datenbank-Verbindungsdaten | Support Datenbankadministrator Anwendungsentwickler | ja

Nur für SAP-Systeme:

Solution Life Cycle Management:

CCMS OLTP (GUI)

CCMS SAP liveCache (GUI)

Verwalten von MaxDB- und liveCache-Datenbankinstanzen in einem SAP-System

SAP-Administrator

ja

Erläuterungen zur Tabelle

Einige Werkzeuge liegen in unterschiedlichen Varianten vor:

· GUI: grafische Benutzeroberfläche; alle Funktionen verfügbar, muss lokal installiert werden, kann nur unter Microsoft Windows verwendet werden

· CLI: Kommandozeile; alle Funktionen verfügbar, kann als Batch-Skript verwendet und in Scripting-Sprachen (z. B. Python, Perl) eingebettet werden, kann auf allen unterstützten Betriebssystemen verwendet werden

· Web: Browser-Oberfläche; nur die wichtigsten Funktionen verfügbar, wird zentral installiert, Bedienung über einen Web-Browser, plattformunabhängig

Siehe auch:

Programmierschnittstellen


Database Analyzer (MaxDB: Datenbankverwaltung)

Database Analyzer

Der Database Analyzer ist ein Datenbankwerkzeug zur Analyse der Performance von Datenbankinstanzen.

Siehe auch:

Dokumentation zum Database Analyzer


Database Manager (MaxDB: Datenbankverwaltung)

Database Manager

Der Database Manager ist ein Datenbankwerkzeug für das Anlegen und Verwalten von Datenbankinstanzen und Database Manager-Benutzern.

Der Database Manager kann nicht für das Anlegen und Verwalten von Datenbankbenutzern verwendet werden; verwenden Sie hierfür das SQL Studio, den SQLCLI oder das Web SQL Studio.

Es stehen verschiedene Formen des Database Manager zur Verfügung:

· Database Manager GUI

· Database Manager CLI

· Web DBM

Siehe auch:

Architektur des Database Manager

Architektur der Web Tools


Architektur des Database Manager (MaxDB: Datenbankverwaltung)

Architektur des Database Manager

Der Database Manager hat eine Client-Server-Architektur. Der DBM-Server ist für die Funktionalität zuständig, über den Client kann der Benutzer auf das Werkzeug zugreifen.

Die Clients des Database Manager sind remote-fähig. Client und DBM-Server können also auf verschiedenen Rechnern installiert sein. Der DBM-Server muss jedoch immer auf dem selben Rechner installiert sein wie die Datenbankinstanz, auf die Sie mit dem Database Manager zugreifen wollen.

Auf Anforderung des Client (Database Manager GUI oder Database Manager CLI) startet der X-Server den DBM-Server. Nach erfolgreicher Verbindungsaufnahme wird ein zusätzlicher Thread im X-Server-Prozess bzw. ein zusätzlicher Kind-Prozess gestartet, um den Transport der Datenpakete über das Netzwerk zu übernehmen.

Siehe auch:

Architektur der Web Tools


DBM-Server (MaxDB: Datenbankverwaltung)

DBM-Server

Der DBM-Server ist der Server-Teil des Database Manager. Er wird durch die Server-Installation auf dem Datenbankrechner installiert.

Der DBM-Server stellt die Verbindung zur Datenbankinstanz her und kann mit den Mitteln des Betriebssystems auf seine Umgebung zugreifen.

Client-Anwendungen wie der Database Manager GUI oder der Database Manager CLI stellen eine Verbindung zum DBM-Server her und tauschen über einen Anfrage-Antwort-Mechanismus Daten mit dem DBM-Server aus.

Siehe auch:

Architektur des Database Manager


Dateien des Database Manager (MaxDB: Datenbankverwaltung)

Dateien des Database Manager

Für jede Datenbankinstanz wird vom Database Manager eine Reihe von Dateien im Arbeitsverzeichnis der Datenbankinstanz angelegt.

Folgende Dateiarten des Database Manager werden unterschieden:

· Protokolldateien des Database Manager

· Konfigurationsdateien des Database Manager


Protokolldateien des Database Manager (MaxDB: Datenbankverwaltung)

Protokolldateien des Database Manager

Die File-ID und/oder die Dateiklasse sind im Support-Fall beim Packen des Diagnosepakets für den Support anzugeben (siehe Database Manager CLI, Packen von Datenbankdateien).

Dateiname (File-ID) | Dateiklasse | Dateiinhalt
dbm.prt (DBMPRT) | protocol | Protokoll des DBM-Server
dbm.utl (UTLPRT) | protocol | Protokoll der Utility-Kommandos
dbm.ins (INSTPRT) | protocol | Protokoll des Ladens/Aktualisierens der Systemtabellen
dbahist.prt (DBAHIST) | protocol | Protokoll der Datenbankadministrationsaktivitäten
dbm.knl (BACKHIST) | backup | Historie der Sicherungen und Wiederherstellungen (Sicherungshistorie)
dbm.mdf (BACKMDF) | backup | Historie der bei den Sicherungen verwendeten Sicherungsmedien
dbm.ebf (BACKEBF) | backup | Historie der Sicherungen mit externen Sicherungswerkzeugen
dbm.ebp (BACKEBP) | backup | Protokoll der letzten Sicherung mit einem externen Sicherungswerkzeug


Konfigurationsdateien des Database Manager (MaxDB: Datenbankverwaltung)

Konfigurationsdateien des Database Manager

Die folgenden Konfigurationsdateien werden vom Database Manager im Arbeitsverzeichnis der Datenbankinstanz angelegt.

Dateiname (File-ID) | Dateiklasse | Dateiinhalt
dbm.cfg | config | Konfigurationsdatei des Database Manager, wird pro Datenbankinstanz vom System angelegt
dbm.mmm (DBMMDF) | config | Sicherungsmedien des Database Manager

Sie können den Database Manager CLI zum Anzeigen und Ändern der Konfiguration verwenden.

· Database Manager CLI, Anzeigen eines Konfigurationsparameters des Database Manager

· Database Manager CLI, Ändern eines Konfigurationsparameters des Database Manager


Loader (MaxDB: Datenbankverwaltung)

Loader

Der Loader ist ein Datenbankwerkzeug zum Entladen und Laden von Daten (Export und Import).

Mit dem Loader entladene Daten sind nicht zum Wiederherstellen einer Datenbankinstanz geeignet, weil nicht sichergestellt ist, dass die Daten konsistent sind. Entladene Daten können Datensicherungen daher nicht ersetzen.

Siehe auch:

Architektur des Loader

Dokumentation zum Loader


Architektur des Loader (MaxDB: Datenbankverwaltung)

Architektur des Loader

Der Loader hat eine Client-Server-Architektur, kann aber auch als eigenständiges ausführbares Programm (Client und Server in einem Programm) genutzt werden.

Der Client ist die Benutzerschnittstelle zum Loader-Server und übermittelt die zu verarbeitenden Kommandos. Der Loader-Server selbst wiederum ist ein Client bezüglich einer Datenbankinstanz. Er verarbeitet die Kommandos, transformiert die Daten in den Datenströmen und kommuniziert mit dem Datenbankkern.

Der Loader ist remote-fähig, d. h. Loader und Datenbankinstanz können auf verschiedenen Rechnern installiert sein.

In der Praxis wird häufig folgende Konfiguration gewählt: Alle Loader-Komponenten befinden sich auf einem Rechner und die Datenbankinstanz auf einem anderen Rechner.

...

1. Auf Anforderung des Clients (z.B. Loader CLI) wird der Loader direkt, ohne Aufruf des X-Server, gestartet.

2. Die Kommunikation zwischen dem Loader und dem Datenbankkern wird über den X-Server aufgebaut.


Loader-Server (MaxDB: Datenbankverwaltung)

Loader-Server

Der Loader verfügt über einen Loader-Server. Dieser muss auf dem Rechner installiert sein, auf dem die verwendeten Medien liegen.

Der Loader-Server stellt die Verbindung zur Datenbankinstanz her und kann mit den Mitteln des Betriebssystems auf seine Umgebung zugreifen. Sowohl mit der Datenbankinstanz als auch mit dem Client kann der Loader-Server remote kommunizieren.

Siehe auch Architektur des Loader


Entladen von Daten (MaxDB: Datenbankverwaltung)

Entladen von Daten

Sie können den Datenbankkatalog und/oder Anwendungsdaten einer Datenbankinstanz oder Teile des Datenbankkatalogs oder der Anwendungsdaten mit dem Loader entladen.

Der dabei entstehende Datenstrom kann auf unterschiedliche Medien geleitet werden. Als Medium lässt sich auch ein Band verwenden, das über ein externes Sicherungswerkzeug angesprochen wird (Entladen mit externen Sicherungswerkzeugen).

Mit dem Loader entladene Daten sind nicht zum Wiederherstellen einer Datenbankinstanz geeignet, weil nicht sichergestellt ist, dass die Daten konsistent sind. Entladene Daten können Datensicherungen daher nicht ersetzen.


Laden von Daten (MaxDB: Datenbankverwaltung)

Laden von Daten

Sie können den Datenbankkatalog und/oder Anwendungsdaten einer Datenbankinstanz oder Teile des Datenbankkatalogs oder der Anwendungsdaten mit dem Loader laden. Der dazu erforderliche Datenstrom kann von unterschiedlichen Medien eingelesen werden. Als Medium lässt sich auch ein Band verwenden, das über ein externes Sicherungswerkzeug angesprochen wird (Laden mit externen Sicherungswerkzeugen.

Mit dem Loader entladene Daten sind nicht zum Wiederherstellen einer Datenbankinstanz geeignet, weil nicht sichergestellt ist, dass die Daten konsistent sind. Ein Laden von Daten kann eine Wiederherstellung aus einer Datensicherung daher nicht ersetzen.


Query Tools (MaxDB: Datenbankverwaltung)

Query Tools

Unter dem Begriff „Query Tools“ sind diejenigen Datenbankwerkzeuge zusammengefasst, mit denen Sie auf Daten und den Datenbankkatalog zugreifen, SQL-Abfragen erstellen und ausführen und Datenbankobjekte und Datenbankbenutzer anlegen und verwalten können:

· SQL Studio

· SQLCLI

· Web SQL Studio

Siehe auch:

Architektur der Query Tools


SQLCLI (MaxDB: Datenbankverwaltung)

SQLCLI

Der SQLCLI ist ein Datenbankwerkzeug, mit dem Datenbankbenutzer folgende Aufgaben ausführen können:

· Zugriff auf Daten

· Zugriff auf den Datenbankkatalog

· SQL-Anfragen

· Anlegen und Verwalten von Datenbankobjekten

· Anlegen und Verwalten von Datenbankbenutzern

Syntax

sqlcli [–n <database_server>] [-d <database_name>] [-u database_user>,<database_user_password>] [sqlcli_command|sql_command]

sqlcli_command | SQLCLI-Kommando
sql_command | SQL-Anweisung

Eine Liste aller SQLCLI-Kommandos und ihrer Optionen erhalten Sie mit folgendem Befehl:

sqlcli \h

Beispiele

Abfrage allgemeiner Informationen zur Datenbank HOTELDB als Benutzer MONA mit dem Kennwort RED:

sqlcli –d HOTELDB –u MONA,RED \s

Anzeige aller Datensätze der Tabelle customer der Datenbank HOTELDB als Benutzer MONA mit dem Kennwort RED:

sqlcli -d HOTELDB -u MONA,RED SELECT * FROM customer

Siehe auch:

SQL Studio

Web SQL Studio


Architektur der Query Tools (MaxDB: Datenbankverwaltung)

Architektur der Query Tools

Die Query Tools kommunizieren folgendermaßen mit der Datenbankinstanz:

· SQL Studio: Auf Anforderung des Client wird eine Verbindung zur Datenbankinstanz über die ODBC-Schnittstelle aufgebaut. Danach kann die Kommunikation zwischen dem Client und der Datenbankinstanz erfolgen.

· Web SQL Studio: Durch den Aufruf des Web SQL Studio im Web-Browser wird eine Verbindung zum Client (im Web-Server integrierter Web SQL-Service) aufgebaut. Die Kommunikation zwischen diesem Client und der Datenbankinstanz erfolgt über die ODBC-Schnittstelle (siehe auch Architektur der Web Tools).


WebDAV GUI (MaxDB: Datenbankverwaltung)

WebDAV GUI

Der WebDAV GUI ist ein Datenbankwerkzeug, mit dem Sie XML-Dokumente im WebDAV-Service indizieren und den Zugriff auf diese XML-Dokumente im WebDAV-Service optimieren können.

Siehe auch:

Dokumentation zum WebDAV GUI


Web Tools (MaxDB: Datenbankverwaltung)

Web Tools

Unter dem Begriff „Web Tools“ sind diejenigen Datenbankwerkzeuge zusammengefasst, die über eine Weboberfläche verfügen und die Sie mit einem Web-Browser bedienen können.

· Web DBM

· Web SQL Studio

Siehe auch:

Architektur der Web Tools

Installationsleitfaden Web Tools


Architektur der Web Tools (MaxDB: Datenbankverwaltung)

Architektur der Web Tools

Die Web Tools sind als Web-Service implementiert und können sowohl mit dem eigenen MaxDB Web-Server als auch mit dem Web-Server Apache betrieben werden.

Der MaxDB Web-Server wird gemeinsam mit den Web Tools installiert. Falls Sie den Web-Server Apache verwenden wollen, müssen Sie diesen gesondert konfigurieren. Die Datenbankinstanz kann sich auf dem gleichen Rechner oder auf einem anderen Rechner befinden.

Durch den Aufruf eines Web Tools im Web-Browser wird eine Verbindung zum Client (im Web-Server integrierter Web DBM- oder Web SQL-Service) aufgebaut. Die Kommunikation zwischen Client und Datenbankinstanz erfolgt für das Werkzeug Web DBM über den DBM-Server und für Web SQL Studio über die ODBC-Schnittstelle.

Siehe auch:

Architektur der Query Tools

Architektur des Database Manager


XCONS (Datenbankkonsole) (MaxDB: Datenbankverwaltung)

XCONS (Datenbankkonsole)

XCONS (Datenbankkonsole) ist ein Datenbankwerkzeug, mit dem Sie einen schnellen Überblick über die vom Datenbanksystem belegten Betriebssystemressourcen, die Aufteilung der Datenbanksitzungen auf Threads sowie den Status der aktiven Datenbanksitzungen erhalten. XCONS wird von der Kommandozeile aus aufgerufen.

XCONS ist ein Werkzeug, das für die Fehlersuche und für Entwicklungsaufgaben konzipiert wurde. Setzen Sie XCONS im Produktivbetrieb nur nach Rücksprache mit dem Support ein.

Syntax

x_cons <database_name> <command> [<interval> [<repeat>]]

interval | Zeit zwischen zwei Wiederholungen desselben Kommandos. Wenn Sie interval nicht angeben, dann wird das Kommando einmal ausgeführt.
repeat | Anzahl der Wiederholungen des Kommandos. Wenn Sie interval angeben, repeat jedoch nicht, dann wird das Kommando unendlich oft wiederholt.

Anzeigen aller aktiven Tasks der Datenbankinstanz HOTELDB und 10-malige Wiederholung dieses Kommandos im Abstand von 1 s:

x_cons HOTELDB show active 1 10

Kommandos

Überblick über alle Kommandos und ihre Optionen:
x_cons <database_name> help

time <enable | disable>

Einschalten der internen Zeitmessung. Beachten Sie, dass die Performance Ihres Systems hierdurch sinken kann.

cancel <taskindex>

Abbrechen des Kommandos, das von der Task mit dem Index taskindex gerade ausgeführt wird

pagecache_release

Freigeben des Page-Cache

diagnose_pagecache

Analyse des Page-Cache. Die Ergebnisse werden in die Protokolldatei knldiag geschrieben.

kill <taskindex>

Beenden der Sitzung der Task mit dem Index taskindex

affinity <uktindex>

Beachten Sie, dass dieses Kommando für Entwicklungsaufgaben konzipiert wurde und deswegen nicht im Produktivbetrieb verwendet werden sollte. Setzen Sie dieses Kommando nur nach Aufforderung durch den Support ein.

Mit diesem Kommando erlauben Sie, dass der User-Kernel-Thread mit dem Index uktindex an einen Prozessor gebunden werden darf.

procmask <procmask>

Beachten Sie, dass dieses Kommando für Entwicklungsaufgaben konzipiert wurde und deswegen nicht im Produktivbetrieb verwendet werden sollte. Setzen Sie dieses Kommando nur nach Aufforderung durch den Support ein.

Nur unter Microsoft Windows. Festes Binden von User-Kernel-Threads an einzelne Prozessoren

trace_flush

Flushen der Trace-Datei

show io

Anzeigen von Statistiken zum Zugriff auf die Volumes

show aio

Nur für Backups; Anzeigen von Statistiken zum Zugriff auf die Volumes

show storage

Anzeigen des Speicherverbrauchs. Unter Microsoft Windows wird zusätzlich der Task-Stack angezeigt.

show tasks

Anzeigen von Statistiken zu allen Tasks

show active [dw | sv | us | gc]

Anzeigen von Statistiken zu den aktiven Tasks. Optional können Sie nur Statistiken bestimmter Task-Gruppen anzeigen: DW (Data-Writer=Pager), SV (Server-Task), US (User-Task), GC (Garbage-Collector).

show runnable [dw | sv | us | gc]

Anzeigen von Informationen zu den lauffähigen Tasks; optional nur für einzelne Task-Gruppen

show moveinfo

Nur für Load-Balancing; Historie und aktuelle Bewegungen von Tasks zwischen User-Kernel-Threads

show t_cnt [dw | sv | us | gc | <taskindex>]

Anzeigen von Detailinformationen zu allen Tasks einer bestimmten Task-Gruppe oder zur Task mit dem Index taskindex

show t_queue

Anzeigen der Task-Warteschlangen

show t_reg

Anzeigen der Semaphoren (Benutzung der kritischen Regionen durch die Tasks)

show t_stat

Anzeigen von Task-Statistiken

show t_move

Nur für Load-Balancing; Anzeigen, ob Tasks aktuell von einem User-Kernel-Thread in einen anderen wechseln dürfen

show versions

Anzeigen der Version des Datenbankkerns und der Laufzeitumgebung

show regions

Anzeigen von Informationen zu den kritischen Abschnitten

show state

Anzeigen des Betriebszustands der Datenbankinstanz

show rte

Anzeigen von Informationen zur Laufzeitumgebung (Threads etc.)

show queues

Anzeigen der Warteschlangen

show suspends

Anzeigen der Gründe, warum aktuell suspendierte Tasks suspendiert wurden

show sleep

Anzeigen von Statistiken, wie lange die einzelnen User-Kernel-Threads suspendiert waren

show thrd_times

Nur für Microsoft Windows. Anzeigen, wieviel Prozessorzeit die Threads verbraucht haben

show all

Anzeigen aller verfügbaren Informationen und Statistiken

Siehe auch:

· Database Manager CLI, Anzeigen von Informationen zur Datenbankinstanz

· Aufrufen von XCONS im Datenbankassistenten eines SAP-Systems:
Datenbankverwaltung im CCMS: MySQL MaxDB, [image] Datenbankkonsole
Datenbankverwaltung im CCMS: SAP liveCache, [image] Konsole


XPU (MaxDB: Datenbankverwaltung)

XPU

XPU ist ein Datenbankwerkzeug, mit dem Sie die Konsistenz der Volumes einer Datenbankinstanz kontrollieren und die Statistiken für den SQL-Optimierer aktualisieren können.

Bei der Überprüfung der Datenbankinstanz werden alle B*-Bäume analysiert. Dieser Vorgang ist zeitintensiv, weil alle Seiten einmal gelesen werden müssen.

Mit XPU wird keine Reorganisation der Datenbankinstanz durchgeführt, sondern nur deren aktueller Zustand analysiert.

Voraussetzungen

· Die Datenbankinstanz muss sich für die Prüfung mit XPU im Betriebszustand ONLINE befinden.

· Es müssen XUSER-Einträge vorhanden sein, oder die Umgebungsvariable SQLOPT muss folgendermaßen gesetzt sein: SQLOPT="-d <database_name> -u <database_user>,<database_user_password>"

Syntax

xpu -v|-s [-u] count

-v | Konsistenz der Volumes überprüfen
-s | Statistiken für den SQL-Optimierer aktualisieren
-u | Nur in Kombination mit der Option –s; alle Tabellen der Datenbank werden überprüft. Wenn diese Option nicht gesetzt wird, werden nur diejenigen Tabellen analysiert, deren Größe sich seit der letzten Überprüfung am stärksten verändert hat.
count | maximale Anzahl von parallelen Tasks; 1 < count < 50

Beispiel

Überprüfen einer Datenbankinstanz:

xpu –v 10

Siehe auch:

Hintergrundwissen, SQL-Optimierer

Database Manager CLI, Aktualisieren der Optimiererstatistiken mit dem Programm XPU


XUSER (MaxDB: Datenbankverwaltung)

XUSER

XUSER ist ein Datenbankwerkzeug, mit dem Sie XUSER-Einträge für beliebige Benutzer definieren und unter einem Schlüsselnamen (user_key) ablegen können. Sie können also XUSER-Einträge sowohl für Datenbankbenutzer als auch für DBM-Benutzer definieren.

XUSER-Einträge erleichtern Datenbankwerkzeugen, wie dem Database Manager CLI und dem C/C++-Precompiler, die Verbindungsaufnahme zur Datenbankinstanz. Auch SAP-Systeme unterstützen die Verwendung des Werkzeugs XUSER.

Andere Datenbankwerkzeuge wie der Loader und der Database Manager GUI sowie Anwendungen, die die ODBC-Schnittstelle verwenden (z. B. SQL Studio), können nicht auf XUSER-Daten zugreifen.

XUSER-Einträge bestehen aus dem Benutzernamen und dem Benutzerkennwort sowie weiteren Optionen. Diese Angaben und Optionen werden pro Betriebssystembenutzer separat gespeichert. Über die Rechtevergabe im Dateisystem ist gewährleistet, dass diese Einträge nur von jenem Betriebssystembenutzer verwendet und geändert werden können, der sie angelegt hat.

Mit dem Programm XUSER können Benutzerangaben für verschiedene Aufgaben gespeichert und zur Anmeldung benutzt werden. Ein Betriebssystembenutzer kann bis zu 32 Benutzerschlüssel definieren. Wenn mehrere Datenbankbenutzer den gleichen Rechner benutzen, aber unter verschiedenen Benutzernamen arbeiten, können auf diese Weise individuelle Benutzerangaben verwaltet werden.

XUSER ist kein Werkzeug zur Verwaltung von Datenbank- oder DBM-Benutzern. Es verwaltet nur die XUSER-Einträge zu diesen Benutzern im Programm XUSER. Zugriff auf die Datenbankinstanz haben Sie mit einem unter einem XUSER-Eintrag gespeicherten Datenbankbenutzer nur dann, wenn dieser zuvor oder nachträglich mittels SQL-Anweisung auch tatsächlich für diese Datenbankinstanz angelegt wurde. Ebenso können Sie mit einem unter einem XUSER-Eintrag gespeicherten DBM-Benutzer nur dann eine Datenbankinstanz verwalten, wenn Sie diesen beim Anlegen der Datenbankinstanz definiert haben.

Siehe auch:

Anlegen oder Ändern von XUSER-Einträgen

Anmelden mit XUSER-Eintrag

Anzeigen der Daten von XUSER-Einträgen

Löschen von XUSER-Einträgen


Anlegen oder Ändern von XUSER-Einträgen (MaxDB: Datenbankverwaltung)

Anlegen oder Ändern von XUSER-Einträgen

Für das Anlegen neuer XUSER-Einträge ist keine Anmeldung an das Programm XUSER erforderlich. Sie können neue XUSER-Einträge entweder interaktiv anlegen oder aus einer XUSER-Datei einlesen.

Es gibt bereits einen vordefinierten Schlüsselnamen DEFAULT. Dieser Schlüsselname ist nicht änderbar. Wenn unter diesem Schlüsselnamen noch keine Angaben gespeichert sind, wird der erste definierte Eintrag immer unter dem Schlüsselnamen DEFAULT gespeichert, unabhängig von einem eventuell angegebenen Schlüsselnamen.

Wenn Sie beim Anlegen eines XUSER-Eintrags keinen Schlüsselnamen angeben, werden alle Angaben unter dem Schlüsselnamen DEFAULT gespeichert, bereits vorhandene Angaben werden also überschrieben.

Für das Ändern von XUSER-Einträgen müssen Sie sich mit den Daten des Benutzers in dem zu ändernden Eintrag oder mit den Daten unter dem XUSER-Schlüssel DEFAULT an das Programm XUSER anmelden.

Sie ändern einen vorhandenen XUSER-Eintrag, indem sie dessen Daten vollständig überschreiben.

Syntax

xuser [<options>] set

Sie können das Programm XUSER mit den folgenden Optionen aufrufen:

-h

Anzeigen der Hilfetexte

-V

Anzeigen der Version des XUSER-Programms

-A ASCII8

Die XUSER-Daten werden als ASCII8 interpretiert.

-b <file_name>

XUSER-Einträge werden im Hintergrund aus den Angaben in der Datei <file_name> erzeugt.

Siehe: XUSER-Dateien

-U <user_key>

Schlüsselname, unter dem der XUSER-Eintrag im Programm XUSER gespeichert ist

Zeichenkette mit maximal 18 Zeichen (UNICODE: 9 Zeichen), beachten Sie die Groß- und Kleinschreibung

-u <user_name>,<password>

Benutzername und Kennwort

Zeichenketten mit je maximal 18 Zeichen (UNICODE: 9 Zeichen)

Sie sind in doppelte Hochkommas einzuschließen, wenn sie Kleinbuchstaben oder Sonderzeichen enthalten sollen. Andernfalls werden Kleinbuchstaben in Großbuchstaben umgewandelt.

-d <database_name>

Name der Datenbankinstanz, mit der gearbeitet werden soll. Wenn die Datenbankinstanz noch nicht angelegt wurde, beachten Sie die Konventionen für Datenbanknamen.

Wenn <database_name> nicht angegeben ist, dann wird der Name aus der Umgebungsvariablen SERVERDB verwendet. Wenn diese Umgebungsvariable nicht gesetzt ist, dann wird dem XUSER-Eintrag keine Datenbankinstanz zugeordnet.

-n <database_server>

Name des Rechners, auf dem die angesprochene Datenbankinstanz läuft

Zeichenkette mit maximal 64 Zeichen

Beachten Sie die Groß- und Kleinschreibung.

Wenn <database_server> nicht angegeben ist, dann wird der lokale Rechner verwendet.

-S <SQL_mode>

SQL-Modus

Zeichenkette mit maximal 8 Zeichen

Wenn <SQL_mode> nicht angegeben ist, dann wird der SQL-Modus INTERNAL verwendet.

-t <timeout>

Timeout-Wert in Sekunden

Mögliche Werte: -1, <number>, 0

-1: Der Vorschlagswert der Datenbankinstanz wird übernommen.
0: Es wird kein Timeout-Wert verwendet.

Wenn <timeout> nicht angegeben ist, dann wird der Wert –1 verwendet.

-I <isolation_level>

Isolation-Level

(nur für Anwendungsprogramme und Precompiler)

Wenn <isolation_level> nicht angegeben ist, dann wird der Wert –1 verwendet, d. h. der Vorschlagswert der Datenbankinstanz wird übernommen.


Anmelden mit XUSER-Eintrag (MaxDB: Datenbankverwaltung)

Anmelden mit XUSER-Eintrag

Um sich mit Hilfe eines XUSER-Eintrags an eine Datenbankinstanz anzumelden, geben Sie bei der Anmeldung die Option –U <user_key> [<options>] an. <user_key> ist der XUSER-Schlüssel.

Achten Sie bei der Angabe des Benutzerschlüssels auf die Groß- und Kleinschreibung.

Beachten Sie außerdem, dass die Anmeldung nur dann erfolgreich sein kann, wenn der im angegebenen XUSER-Eintrag gespeicherte Benutzer tatsächlich auch zuvor angelegt wurde.

Wenn Sie zusätzlich Optionen angeben, dann übersteuern diese die entsprechenden Angaben im XUSER-Eintrag.

Verschiedene Anwendungen des Datenbanksystems unterstützen das Programm XUSER und bieten die Möglichkeit, sich aus der Anwendung heraus an das Programm anzumelden und den XUSER-Schlüssel zu verwenden:

· Wenn Sie sich über SQL-Anwendungen (z. B. Precompiler) an XUSER anmelden und keinen XUSER-Schlüssel angeben, dann erfolgt die Anmeldung mit den unter dem Schlüsselnamen DEFAULTgespeicherten Benutzerdaten.

· Wenn Sie sich über den Database Manager an XUSER anmelden und keinen XUSER-Schlüssel angeben, dann erfolgt die Anmeldung mit den unter dem Schlüsselnamen DBMUSR gespeicherten Benutzerdaten.


Anzeigen der Daten von XUSER-Einträgen (MaxDB: Datenbankverwaltung)

Anzeigen der Daten von XUSER-Einträgen

Sie können sich die Daten der im Programm XUSER gespeicherten XUSER-Einträge anzeigen lassen. Verwenden Sie dazu das Kommando

xuser [-U <user_key>] list

Sie können sich die Daten zu allen vorhandenen XUSER-Einträgen oder die Daten unter einem bestimmten XUSER-Eintrag anzeigen lassen:

· Um die Daten aller gespeicherten XUSER-Einträge anzuzeigen, verwenden Sie das Kommando ohne Option.

· Um die Daten unter einem bestimmten XUSER-Eintrag anzuzeigen, geben Sie zusätzlich die Option –U und den Schlüsselnamen <user_key> für den XUSER-Eintrag an, den Sie anzeigen wollen.

Siehe auch:

XUSER


Löschen von XUSER-Einträgen (MaxDB: Datenbankverwaltung)

Löschen von XUSER-Einträgen

Um einen oder alle im Programm XUSER gespeicherten XUSER-Einträge zu löschen, verwenden Sie das folgende Kommando:

xuser [-U <user_key>] clear

XUSER ist kein Werkzeug zur Verwaltung von Datenbankbenutzern oder DBM-Benutzern. Es verwaltet nur die XUSER-Einträge zu diesen Benutzern im Programm XUSER. Das Löschen eines XUSER-Eintrags bewirkt kein Löschen des entsprechenden Benutzers. Datenbankbenutzer können nur mit Hilfe einer SQL-Anweisung gelöscht werden. DBM-Benutzer können nur mit Hilfe des Database Manager gelöscht werden.

Sie können einen bestimmten XUSER-Eintrag oder alle XUSER-Einträge des angemeldeten Betriebssystembenutzers löschen:

· Um die Daten eines bestimmten XUSER-Eintrags zu löschen, verwenden Sie das Kommando zusammen mit der Option –U und geben für <user_key> den Schlüsselnamen des zu löschenden XUSER-Eintrags an.

· Um alle Einträge des angemeldeten Betriebssystembenutzers zu löschen, geben Sie keine Optionen an.

Siehe auch:

XUSER


XUSER-Dateien (MaxDB: Datenbankverwaltung)

XUSER-Dateien

XUSER-Einträge können aus XUSER-Dateien eingelesen werden. Der Name der Datei ist frei wählbar. Jeder XUSER-Eintrag in der Datei muss die nachfolgenden Angaben in der angegebenen Reihenfolge enthalten und eine Länge von genau 10 Zeilen haben.

<user_key>
<user_name>
<password>
<database_name>
<database_server>
<SQL_mode>
  (Leerzeile)
<timeout>
<isolation_level>
  (Leerzeile)

Die oben ausgewiesenen Leerzeilen müssen immer in der Datei angegeben werden, da an diesen Stellen weitere XUSER-Daten erwartet werden, die jedoch für die Datenbankversion 7.5 nicht relevant sind.

Wenn Sie optionale Angaben weglassen, dann müssen Sie stattdessen eine zusätzliche Leerzeile einfügen.

Das folgende Beispiel zeigt eine XUSER-Datei (Schlüsselname TESTKEY, Benutzer MONA). Sie enthält keine Angabe zum SQL-Modus und deshalb eine zusätzliche Leerzeile.

TESTKEY
MONA
RED
HOTELDB
GENUA
(Leerzeile)
(Leerzeile)
90
1
(Leerzeile)


X-Server (MaxDB: Datenbankverwaltung)

X-Server

Der X-Server ist der Kommunikationsserver des Datenbanksystems. Er lauscht auf dem Service-Port sql6/TCP auf Verbindungswünsche von Datenbankanwendungen und Datenbankwerkzeugen.

Wenn eine Datenbankanwendung oder ein Datenbankwerkzeug mit einer Datenbankinstanz kommunizieren möchte, die sich auf einem entfernten Rechner befindet, dann wird die Verbindung über den X-Server aufgebaut, der auf dem entfernten Rechner läuft.

Der X-Server arbeitet instanzübergreifend: auch wenn auf einem Rechner mehrere Datenbankinstanzen installiert sind, läuft immer nur ein X-Server.

Auf UNIX-Betriebssystemen dient der X-Server auch der Kommunikation mit dem DBM-Server innerhalb eines Rechners.

SQL-Verbindungen auf UNIX-Systemen sowie alle rechnerinternen Verbindungen auf Windows-Betriebssystemen nutzen Shared Memory. Wenn Sie trotzdem die Nutzung des X-Server erzwingen wollen, dann geben Sie beim Anmelden an die Datenbankinstanz die Option –n localhost an.

Voraussetzungen für die Kommunikation

Um die Kommunikation über den X-Server zu ermöglichen, müssen folgende Voraussetzungen erfüllt sein:

· Auf Microsoft Windows-Betriebssystemen ist der X-Server als System-Dienst XServerregistriert. Dieser Dienst muss aktiv sein. Bei jedem erfolgreichen Verbindungsaufbau über den X-Server wird ein zusätzlicher Thread innerhalb des X-Server-Prozesses erzeugt.

· Auf UNIX-Betriebssystemen muss der X-Server als Prozess vserver im Hintergrund laufen. Bei jedem erfolgreichen Verbindungsaufbau über den X-Server wird ein weiterer Kind-Prozess gestartet.

Starten und Stoppen des X-Server

x_server [<option>] start|stop

Sie können beim Aufruf des X-Server folgende Optionen angeben:

Option | Erläuterung
-Y | unterdrückt die Kommunikation über den NI-Server, der nur für den SAP-Support von Interesse ist
-F | unterdrückt das Ermitteln von DNS-Einträgen und beschleunigt damit den Verbindungsaufbau
-S <service|port> | gibt einen alternativen Service-Port an, auf dem der X-Server lauschen soll

Siehe auch:

· Architektur des Database Manager

· Architektur des Loader


Programmierschnittstellen (MaxDB: Datenbankverwaltung)

Programmierschnittstellen

Das Datenbanksystem MaxDB bietet folgende Schnittstellen für die Programmierung von Datenbankanwendungen:

Schnittstelle | Beschreibung
Backint for MaxDB | Datenbank-Sicherungen mit Hilfe von externen Sicherungswerkzeugen (z. B. TSM, Omniback)
C/C++-Precompiler | Der Precompiler bereitet C/C++-Quellcode mit eingebetteten SQL-Anweisungen (Embedded SQL) für die Übersetzung in ein ausführbares Anwendungsprogramm vor. Er überprüft die eingebetteten Anweisungen syntaktisch und semantisch und setzt sie in Aufrufe von Prozeduren der Precompiler-Laufzeitumgebung um.
JDBC | Der JDBC-Treiber unterstützt die Spezifikationen JDBC 2.0 und JDBC 3.0.
ODBC | Auf Windows-Betriebssystemen werden alle Standard-ODBC-Anwendungen unterstützt. Auf UNIX/Linux-Betriebssystemen können Sie einen der dort verfügbaren ODBC-Treiber-Manager (unixODBC, iODBC) verwenden oder Ihre Anwendung direkt mit der ODBC-Bibliothek der MaxDB linken.
Perl | MaxDB unterstützt DBI via DBD::ODBC, auch auf UNIX/Linux-Betriebssystemen. Außerdem stehen Module zur Verfügung, um DBM-Kommandos und Loader-Kommandos abzusetzen.
PHP | PHP-Anwendungen werden über die ODBC-Funktion von PHP unterstützt.
Python | Um SQL-Kommandos auszuführen, verwenden Sie die Module sapdb.sql und sapdb.dbapi. Zusätzlich stehen Module für DBM-Kommandos und Loader-Kommandos zur Verfügung.
SQLDBC | Mit Hilfe dieser Laufzeitbibliothek können Anwendungen SQL-Anweisungen in der Datenbank ausführen, auf Daten zugreifen und Daten ändern.

Weitere Programmiersprachen und Anwendungen können mit MaxDB genutzt werden, wenn sie über eine Anbindung an ODBC verfügen.

Siehe auch:

Datenbankwerkzeuge


Datenbankinstanz (MaxDB: Datenbankverwaltung)

Datenbankinstanz

Eine Datenbank mit allen für den Betrieb notwendigen Informationen wird als Datenbankinstanz bezeichnet. Eine Datenbankinstanz besteht aus einem Datenbanknamen, Volumes, allen Dateien im Arbeitsverzeichnis und einer Sammlung von Meta-Daten (u. a. Konfigurationsdateien, Datenbankparameter, Pfade der Volumes).

Um eine Datenbankinstanz zu starten, wird der Kern des Datenbanksystems unter Angabe des Datenbanknamens gestartet. Während des Betriebs befinden sich Teile der Daten der Datenbankinstanz in den Caches.

Wenn Sie eine Datenbankinstanz neu anlegen, können Sie je nach Anforderungen zwischen unterschiedlichen Datenbankinstanztypen wählen.

Siehe auch:

· Installationsleitfaden und Installationshandbuch

· Anlegen und Verwalten der Datenbankinstanz mit dem Datenbankwerkzeug Database Manager

· Datenbankverwaltung in SAP-Systemen mit den DBA-Funktionen des CCMS ( [image] CCMS: MySQL MaxDB)


Datenbank (MaxDB: Datenbankverwaltung)

Datenbank

Eine Datenbank ist eine Menge von Daten mit einer regelmäßigen Struktur, auf denen Abfragen und Updates durchgeführt werden können. Eine Datenbank wird vom Datenbanksystem erzeugt und verwaltet.

Die Daten einer Datenbank unterteilen sich in Datenbankkatalog und Anwendungsdaten. Sie werden dauerhaft in Volumes abgelegt. Während des Betriebs einer Datenbank befinden sich Teile der Daten im Cache.

Siehe auch:

Datenbankinstanz


Datenbankkatalog (MaxDB: Datenbankverwaltung)

Datenbankkatalog

Der Datenbankkatalog einer Datenbank enthält die Metadaten aller Datenbankobjekte. Der Datenbankkatalog setzt sich aus folgenden Teilen zusammen:

· Informationen über die Installation des Datenbanksystems und Metadaten mit den Definitionen von Benutzern und Benutzergruppen

· Metadaten der Objekte, die jeweils ein Benutzer oder eine Benutzergruppe erzeugt hat. Dazu gehören unter anderem Metadaten über Basistabellen und View-Tabellen.

Der Zugriff eines Benutzers auf Metadaten eines anderen Benutzers oder einer anderen Benutzergruppe ist nur bei entsprechender Privilegierung möglich (siehe Benutzerkonzept).


Anwendungsdaten (MaxDB: Datenbankverwaltung)

Anwendungsdaten

Die Anwendungsdaten einer Datenbank sind alle Datensätze dieser Datenbank mit ihren Indexeinträgen. Ein Datensatz entspricht einer Zeile in einer Basistabelle, die Anwendungsdaten sind also alle Zeilen aller Basistabellen sowie die zu den Basistabellen angelegten Indexeinträge.

Im Minimalfall belegen die Anwendungsdaten einer Tabelle oder eines Index nur eine Seite. Im Maximalfall kann sich eine Tabelle über alle Data-Volumes der Datenbankinstanz erstrecken. Das Wachsen und Schrumpfen einer Tabelle erfolgt automatisch und ohne jeden administrativen Eingriff. Durch ein datenbankinternes Striping werden die zu einer Tabelle gehörenden Daten gleichmäßig auf alle Data-Volumes verteilt. Es ist also nicht möglich zu ermitteln, wie die Tabellen den einzelnen Data-Volumes zugeordnet sind; dies ist aber auch nicht erforderlich.

Siehe auch:

Datenzugriff in der Dokumentation Hintergrundwissen


Datenbankinstanztyp (MaxDB: Datenbankverwaltung)

Datenbankinstanztyp

Das Datenbanksystem unterstützt verschiedene Anwendungsgebiete. Es wird in unterschiedlichen Ausprägungen ausgeliefert, die das Erstellen, Verwalten und Betreiben unterschiedlicher Typen von Datenbankinstanzen erlauben.

Es werden folgende Datenbankinstanztypen unterschieden:

· OLTP (MySQL MaxDB)

· liveCache (SAP liveCache)

· Archive


OLTP (MySQL MaxDB) (MaxDB: Datenbankverwaltung)

OLTP (MySQL MaxDB)

MySQL MaxDB ist ein relationales Datenbanksystem, das für den OLTP-Betrieb (Online Transaction Processing) entwickelt wurde.

Der Datenbankinstanztyp OLTP ist für die schnelle Bearbeitung einzelner Transaktionen mit einer hohen Anzahl von Benutzern und großen Datenbanken optimiert.


liveCache (SAP liveCache) (MaxDB: Datenbankverwaltung)

liveCache (SAP liveCache)

Der Datenbankinstanztyp liveCache wird nur in SAP-Anwendungen eingesetzt.

SAP liveCache ist eine Erweiterung des relationalen Datenbanksystems MySQL MaxDB. Mit SAP liveCache lassen sich die tatsächlichen Datenstrukturen und Datenströme (wie Netzwerke und Beziehungen) leichter und effektiver abbilden. SAP liveCache arbeitet objektorientiert und operiert im Gegensatz zu MaxDB bei optimaler Konfiguration mit seinen Daten ausschließlich im Hauptspeicher des Datenbanksystems. Dies wird zum Beispiel im Supply Chain Management ausgenutzt, wo große Mengen von Daten ständig erreichbar und änderbar sein müssen.

Im [image] Benutzerhandbuch: SAP liveCache finden Sie spezielle Informationen sowie Hinweise zur Überwachung des SAP liveCache.


Archive (MaxDB: Datenbankverwaltung)

Archive

Damit die Performance eines Datenbanksystems nicht durch zu große Datenmengen beeinträchtigt wird, können Daten abgelaufener Perioden ausgelagert („archiviert“) werden.

Der Datenbankinstanztyp Archive ermöglicht es, diese Daten in einer neben der produktiven Datenbankinstanz existierenden zweiten Datenbankinstanz transparent und direkt zugreifbar zu halten, wobei die Daten dieser zweiten Datenbankinstanz auf preiswerteren Massenspeichermedien abgelegt werden.

Der Instanztyp Archive ist eine OLTP-Instanz, die um die Fähigkeit erweitert ist, ein hierarchisches Speicherverwaltungssystem als Volume anzusprechen. Da diese Funktionalität große Auswirkungen auf die Performance im Normalbetrieb haben kann, wird hierfür ein eigener Instanztyp verwendet.

Eine Archive-Datenbankinstanz wird in der Regel parallel zu einer normalen OLTP-Datenbankinstanz genutzt: die häufig benötigten Daten werden in der OLTP-Datenbankinstanz abgelegt, die selten benötigten Daten in der Archive-Datenbankinstanz. Die Steuerung der Datenverteilung übernimmt die jeweils darüberliegende Anwendung (z. B. ein Business Warehouse).

Eine Archive-Datenbankinstanz hat immer mindestens ein normales Data-Volume und ein Archive-Data-Volume. Archive-Data-Volumes können nur einmalig beim Anlegen der Datenbankinstanz eingerichtet werden, ein nachträgliches Hinzufügen ist nicht möglich.

Anlegen einer Archive-Datenbankinstanz

Database Manager CLI:

· Beispiel für das Anlegen einer Datenbankinstanz vom Typ Archive

· Anlegen einer Datenbankinstanz

· Ändern von Volume-Parametern

Database Manager GUI:

· Anlegen/Initialisieren einer Datenbankinstanz


Betriebszustand (MaxDB: Datenbankverwaltung)

Betriebszustand

Es gibt folgende Betriebszustände einer Datenbankinstanz.

Betriebszustand | Bedeutung
ONLINE | Die Datenbankinstanz ist gestartet und Benutzer können sich anmelden.
STANDBY | Nur für Standby-Instanzen in Hot Standby-Systemen. Standby-Instanzen können keine Verbindungen entgegennehmen. Sie befinden sich ständig im Restart-Zustand.
ADMIN | Die Datenbankinstanz steht nur für administrative Zwecke (Datenbankverwaltung) zur Verfügung.
OFFLINE | Die Datenbankinstanz ist nicht in Betrieb.

Betriebszustand überwachen und ändern

Um den Betriebszustand der Datenbankinstanz zu überwachen oder zu ändern, verwenden Sie den Database Manager oder in SAP-Systemen den Datenbankassistenten des CCMS.

· Database Manager GUI, Betriebszustand überwachen

· Database Manager CLI, Kommandos für den Datenbankbetrieb

· Datenbankverwaltung im CCMS: MySQL MaxDB, DB-Zustand

· Datenbankverwaltung im CCMS: SAP liveCache, liveCache-Zustand und Operating


Datenbankname (MaxDB: Datenbankverwaltung)

Datenbankname

Der Name einer Datenbankinstanz ist bei der Installation dieser Datenbankinstanz prinzipiell frei wählbar. Beachten Sie jedoch folgende Punkte:

· Die maximale Länge eines Datenbanknamens ist 8 Zeichen.

· Der Datenbankname kann jedes Zeichen aus dem 7-bit-ASCII-Zeichensatz enthalten.

· Der Datenbankname darf nicht mit einem Unterstrich oder einem Punkt beginnen.

· Beim Anlegen einer Datenbankinstanz werden alle Kleinbuchstaben im Datenbanknamen vom Database Manager automatisch in Großbuchstaben umgewandelt.


UNICODE (MaxDB: Datenbankverwaltung)

UNICODE

Datentypen wie z. B. CHAR ASCII sind im wesentlichen für den amerikanischen und zentraleuropäischen Sprachraum geeignet. In anderen Sprachräumen wird üblicherweise ein Codeattribut für diese Datentypen verwendet, das einen von ASCII abweichenden Präsentationscode auch zur internen Ablage im Datenbanksystem verwendet. Dies führt zu Problemen, wenn Sie aus anderen Sprachräumen auf diese Datenbanksysteme zugreifen wollen oder wenn ein Datenaustausch zwischen Datenbanksystemen unterschiedlicher Sprachräume erforderlich ist.

Diese Probleme können durch eine Zeichencodierung gemäß UNICODE vermieden werden. UNICODE ist ein internationaler Standard und kann alle in Alphabeten verwendeten Zeichen eindeutig in einem einzigen Zeichensatz ausdrücken.

Eine UNICODE-Datenbank verwendet für Metadaten und Anwendungsdaten UNICODE gemäß ISO 10646. Intern werden die Daten im UTF-16/UCS-2-Format abgelegt.

Die Ablage von Daten im Format UTF-16/UCS-2 benötigt doppelt so viel Speicherplatz wie eine Ablage der Daten im Format ASCII, da die Kodierung mit 16 statt mit 8 Bit erfolgt.

UNICODE in Datenbankschnittstellen

SQL-Anweisungen können UNICODE-Literale und UNICODE-Bezeichner enthalten. Voraussetzung für die Umsetzung dieser SQL-Anweisungen in einer UNICODE-fähigen Datenbankinstanz ist ein UNICODE-fähiger Client (C/C++-Precompiler, JDBC, ODBC oder die Query Tools SQL Studio und Web SQL Studio).

Die Datenbankschnittstellen JDBC, ODBC, der C/C++-Precompiler und Python unterstützen UNICODE.

Datenbankschnittstelle

Besonderheiten in Bezug auf UNICODE

JDBC

Da Java mit UNICODE-Zeichenketten arbeitet, kann Java UNICODE-Spalten lesen und schreiben. Wenn Sie UNICODE auch in SQL-Anweisungen verwenden wollen, dann setzen Sie die UNICODE-CONNECT-Eigenschaft auf true. SQL-Anweisungen werden dann an die Datenbankinstanz im UTF-16/UCS-2-Format übergeben.

Siehe auch Beispiel

ODBC

Microsoft Windows:

Mit der Datenbanksoftware wird ab Version 7.4.03.26 sowohl ein UNICODE-fähiger ODBC-Treiber ausgeliefert als auch ein Treiber ohne UNICODE.

Der Treiber MaxDB (Unicode) (oder SAP DB (Unicode)) entspricht dem bisherigen Treiber SAP DB 7.4. Er implementiert das UNICODE-Interface von ODBC (z. B. SQLConnectW) und kommuniziert mit einem UNICODE-fähigen Datenbankkern nur per UNICODE. Mit einem nicht UNICODE-fähigen Kern erfolgt die Kommunikation in ASCII.

Der Treiber MaxDB (oder SAP DB) implementiert das ASCII-Interface von ODBC (keine Wide-Funktionen wie SQLConnectW) und kommuniziert nur per ASCII mit dem Datenbankkern. Diese Kommunikation ist hinsichtlich der Netzbelastung effizienter und hat weniger Restriktionen, z.B. bezüglich der maximalen Länge von SQL-Anweisungen.

UNIX/Linux:

Auf Plattformen, bei denen der Standard-UNICODE-Typ WCHAR_T mit vier Bytes definiert ist, ist der Einsatz des ODBC-Treibers zur Zeit nicht möglich. Datenbank und ODBC-Treiber verarbeiten UNICODE intern als zwei Byte lange Werte.

Im Treiber sind sowohl die ANSI- als auch die UNICODE-Varianten des ODBC-API definiert.

Applikationen, die die Funktionalität eines Driver Manager nicht benötigen, können statisch mit dem ODBC-Treiber gelinkt werden.

C/C++-Precompiler

Sie können mit UNICODE-Daten arbeiten. Der C/C++-Precompiler überprüft beim Aufbau einer Datenbanksitzung, ob die Datenbank UNICODE-fähig ist.

Python

Python 2.x: Es können UNICODE-Spalten gelesen und geschrieben werden. UNICODE-Zeichenketten können nicht als SQL-Anweisungen verwendet werden.

Python 1.5.2: UNICODE-Ausgabewerte werden nach ASCII konvertiert. Wenn diese Umwandlung fehlschlägt, dann wird ein Fehler gemeldet.


Anlegen einer UNICODE-Datenbank (MaxDB: Datenbankverwaltung)

Anlegen einer UNICODE-Datenbank

Mit dem Datenbanksystem können UNICODE-Datenbanken angelegt und genutzt werden.

Vorgehensweise

Um eine UNICODE-Datenbank anzulegen, gehen Sie wie folgt vor:

...

1. Um die Metadaten der Datenbankinstanz in UNICODE abzulegen, setzen Sie bei der Installation der Datenbankinstanz mit dem Database Manager den speziellen Datenbankparameter _UNICODE auf YES.

Die CHARACTER-Spalten der entsprechenden Systemtabellen besitzen dann das Codeattribut UNICODE. Namen von Datenbankobjekten (z. B. Tabellen- oder Spaltennamen) lassen sich in den Datenbankwerkzeugen im gewünschten Präsentationscode anzeigen.

Sie können den Datenbankparameter _UNICODE nicht mehr ändern, nachdem die Datenbankinstanz installiert ist. Falls Sie ihn doch ändern möchten, müssen Sie die Datenbankinstanz neu initialisieren.

2. Um Anwendungsdaten in einer Tabellenspalte in UNICODE abzulegen, geben Sie bei der Spaltendefinition für die Datentypen CHAR[ACTER], VARCHAR und LONG[VARCHAR] das Codeattribut UNICODE an. Sie können den speziellen Datenbankparameter DEFAULT_CODE verwenden, um UNICODE als Vorschlagswert für das Codeattribut aller Daten einzustellen.


Beispiel: Anzeige von Spalteninformationen (MaxDB: Datenbankverwaltung)

Beispiel: Anzeige von Spalteninformationen

Sie können in einer Unicode-Datenbank einen Defaultcode für CHAR/VARCHAR-Spalten angeben (ASCII oder UNICODE). Die im Beispiel beschriebene Java-Klasse TableDef kann genutzt werden, um die Ergebnisse verschiedener Spaltendefinitionen anzuzeigen.

Definition TableDef

import java.sql.*;

/**

 *

 */

public class TableDef

{

    private Connection connection;

    /**

     * creates a new TableDef

     */

   public

    TableDef (

        String url)

    throws SQLException, ClassNotFoundException

    {

        // load class

        Class.forName ("com.sap.dbtech.jdbc.DriverSapDB");

        // create connection

        this.connection = DriverManager.getConnection(url,

            new java.util.Properties ());

        this.connection.setAutoCommit (false);

    }

    /**

     *

     */

    protected void

    createTable (

        String tableName,

        String createCommand)

    throws SQLException

    {

        String fullCommand = "CREATE TABLE " + tableName + " ("

            + createCommand + " )";

        Statement stmt = this.connection.createStatement ();

        stmt.execute (fullCommand);

    }

    /**

     *

     */

    protected void

    showTableDef (

        String tableName)

    throws SQLException

    {

        System.out.println ("Table: " + tableName);

        DatabaseMetaData metaData = this.connection.getMetaData ();

        ResultSet tableColumns = metaData.getColumns(null,

           metaData.getUserName (), tableName, null);

        while (tableColumns.next ()) {

            String columnName = tableColumns.getString ("COLUMN_NAME");

            String typeName = tableColumns.getString ("TYPE_NAME");

            int colSize = tableColumns.getInt ("COLUMN_SIZE");

            System.out.println ("    " + columnName

                + ": " + typeName + " (" + colSize + ")");

         }

    }

    /**

     *

     */

    protected void

    close ()

    {

        try {

            this.connection.rollback ();

            this.connection.close ();

        }

        catch (SQLException sqlExc) {

                // ignore

        }

    }

    /**

     *

     */

    static protected String

    join (

        String [] args,

        int startIndex)

    {

         if (startIndex >= args.length) {

           return null;

        }

        StringBuffer result = new StringBuffer ();

        for (int i = startIndex; i < args.length; ++i) {

            result.append(args [i]);

            result.append (' ');

        }

        return result.toString();

    }

    /**

     * used when called form the command line

     */

    public static void main (String [] args)

    throws ClassNotFoundException

    {

        String url = args [0];

        String tableName = args [1];

        String createCommand = join (args, 2);

        TableDef tableDef = null;

        try {

           tableDef = new TableDef (url);

            if (createCommand != null) {

                tableDef.createTable (tableName, createCommand);

            }

            tableDef.showTableDef (tableName);

        }

        catch (SQLException sqlExc) {

            System.out.println (sqlExc);

        }

        finally {

            if (tableDef != null) {

                 tableDef.close ();

            }

        }

    }

}

Anzeige der Spaltendefinition einer Tabelle

java TableDef <jdbcurl> <table_name>

Anlegen einer temporären Tabelle unter Verwendung der ermittelten Spaltendefinitionen und Anzeige dieser Spaltendefinitionen

<command> ::= java TableDef <jdbcurl> <table_name> <column_definition>

<jdbcurl> ::= jdbc:sapdb:<database_name>?user=<user_name>&password=<password>


Sprachunterstützung (Mapchar-Sets) (MaxDB: Datenbankverwaltung)

Sprachunterstützung (Mapchar-Sets)

Ein Mapchar-Set dient der Abbildung sprachspezifischer Zeichen auf alternative Schreibweisen (z. B. ü auf ue). Für die umzusetzenden Zeichen und das Mapchar-Set muss der zugrundeliegende Code (ASCII, UNICODE) übereinstimmen.

· Bei der Konfiguration der Datenbankinstanz wird implizit eine Umsetzung länderspezifischer Buchstaben erlaubt und unter dem Mapchar-Set-Namen DEFAULTMAP (als ASCII definiert) abgelegt.

· Das Mapchar-Set DEFAULTMAP kann verändert werden. Es können auch weitere Mapchar-Sets definiert werden.

· Wenn ein Mapchar-Set als UNICODE definiert wurde, kann dieses Mapchar-Set nur für UNICODE-Werte verwendet werden.

· Ein Mapchar-Set, das nicht als UNICODE definiert wurde, kann nicht für UNICODE-Werte verwendet werden.

Mapchar-Sets sind ausschließlich für systeminterne Funktionen von Bedeutung. Mapchar-Sets werden beispielsweise von der SQL-Funktion MAPCHAR(x,n,i) für die Sortierung von Feldern verwendet, die Umlaute enthalten.

Siehe auch:

Database Manager GUI, Mapchar-Sets anlegen

Database Manager GUI, Mapchar-Sets anzeigen, ändern, löschen


Multi-Prozessor-Konfiguration (MaxDB: Datenbankverwaltung)

Multi-Prozessor-Konfiguration

Um Multi-Prozessor-Konfigurationen optimal ausnutzen zu können, unterstützt das Datenbanksystem ein konfigurierbares externes/internes Tasking. Das Ziel dieses Tasking ist es, eine möglichst große Anzahl von Datenbanksitzungen mit einer minimalen Anzahl von Betriebssystem-Threads zu unterstützen.

Die Konfiguration des Datenbanksystems steuert den Grad des externen/internen Tasking durch die beiden allgemeinen Datenbankparameter MAXUSERTASKS und MAXCPU.

Auf einem Rechner stehen 4 Prozessoren für die Datenbankinstanz zur Verfügung. Maximal 800 Datenbanksitzungen sollen gleichzeitig laufen.

Sie setzen MAXCPU auf 4 und MAXUSERTASKS auf 800.


Datenbankparameter (MaxDB: Datenbankverwaltung)

Datenbankparameter

Mit Hilfe der Datenbankparameter lassen sich verschiedene Eigenschaften einer Datenbankinstanz festlegen. Eine Standardkonfiguration wird bei der Installation der Datenbanksoftware hinterlegt. Diese Konfiguration ist grundsätzlich lauffähig. Bei Bedarf können Sie die initial erzeugten Datenbankparameter den konkreten Anforderungen anpassen.

Alternativ dazu kann die Konfiguration einer auf dem Rechner bereits vorhandenen anderen Datenbankinstanz verwendet oder aus einer vollständigen Datensicherung gelesen werden. Auch danach haben Sie die Möglichkeit, die Datenbankparameter Ihren Anforderungen anzupassen.

Änderungen von Datenbankparametern werden erst nach einem erneuten Starten der Datenbankinstanz aktiv.

Die Datenbankparameter sind in folgende Gruppen unterteilt:

· allgemeine Datenbankparameter

· spezielle Datenbankparameter

· Support-Datenbankparameter

Support-Parameter müssen und sollen für den normalen Datenbankbetrieb nicht verändert werden. Die Einstellung dieser Datenbankparameter erfordert detaillierte Kenntnisse des Datenbanksystems und sollte daher nur nach Aufforderung durch den Support erfolgen.

· [image] liveCache-Parameter (nur für liveCache-Instanzen)

Anzeigen und Ändern von Datenbankparametern

Um die Datenbankparameter anzuzeigen oder zu ändern, verwenden Sie den Database Manager oder in SAP-Systemen den Datenbankassistenten.

Database Manager GUI, Datenbankparameter anzeigen und ändern

Database Manager CLI, Abschnitt Konfiguration von Datenbankinstanzen

Datenbankverwaltung im CCMS: MySQL MaxDB, [image] Parameter

Datenbankverwaltung im CCMS: SAP liveCache, [image] Parameter


Allgemeine Datenbankparameter (General) (MaxDB: Datenbankverwaltung)

Allgemeine Datenbankparameter (General)

Die folgenden Datenbankparameter bestimmen allgemeine Eigenschaften der Datenbankinstanz:

CACHE_SIZE

Größe des I/O-Buffer-Cache in Seiten

INSTANCE_TYPE

Datenbankinstanztyp

KERNELVERSION

Version der Datenbanksoftware

LOG_MIRRORED

gibt an, ob der Log-Bereich gespiegelt werden soll (Log-Modus), mögliche Werte: YES | NO

Der Parameter ist nur für das Anlegen eines Spiegel-Volume mittels Database Manager CLI relevant (Ändern von Volume-Parametern). Beim Anlegen eines Spiegel-Volume im Database Manager GUI wird dieser Wert implizit geändert.

LOG_SEGMENT_SIZE

Größe eines Log-Segments in Seiten.

Eine automatische Log-Sicherung wird gestartet, sobald ein Log-Segment voll ist; der Parameter bestimmt also den Schwellenwert, der das Sichern auslöst.

MAXBACKUPDEVS

maximale Anzahl der Dateien oder Bandgeräte in einer Gruppe paralleler Sicherungsmedien

Der Höchstwert für MAXBACKUPDEVS ist 32.

MAXCPU

gibt an, auf wie viele Prozessoren die User-Tasks verteilt werden können

Beachten Sie, dass die Betriebssystemressourcen Ihres Rechners außer für die Datenbank auch für andere Prozesse zur Verfügung stehen müssen.

Wählen Sie für MAXCPU für Rechner mit nur einem Prozessor den Wert 1.

MAXDATAVOLUMES

maximale Anzahl der Data-Volumes

MAXLOCKS

maximale Anzahl von Einträgen in der Sperrliste (Lock-List), in der die Sperren sämtlicher Benutzer sowie deren Sperranforderungen gehalten werden

MAXLOGVOLUMES

maximale Anzahl der Log-Volumes

MAXUSERTASKS

gibt die maximal mögliche Anzahl gleichzeitig aktiver User-Tasks und damit die maximal mögliche Anzahl von Datenbanksitzungen an

Wenn diese Anzahl ausgeschöpft ist, dann kann sich kein weiterer Benutzer mehr an dieser Datenbankinstanz anmelden. Daher muss MAXUSERTASKS als kritischer Betriebsparameter überwacht werden.

Eine Überkonfiguration führt zu einem erhöhten Adressraumbedarf (speziell auch Shared Memory).

RUNDIRECTORY

Arbeitsverzeichnis der Datenbankinstanz

Weitere Informationen zu den Parametern können Sie sich mit dem Database Manager anzeigen lassen.


Spezielle Datenbankparameter (Extended) (MaxDB: Datenbankverwaltung)

Spezielle Datenbankparameter (Extended)

Zu den Datenbankparametern, die spezielle Eigenschaften der Datenbankinstanz bestimmen, gehören die folgenden Parameter:

_EVENT_ALIVE_CYCLE

Zeit für einen Ereigniszyklus in Sekunden

_MAX_MESSAGE_FILES

maximale Anzahl von Trace-Dateien, die parallel geöffnet werden können

_MAXEVENTS

maximale Anzahl der vom Kern im Cache gespeicherten Ereignisse (Events) für die Verarbeitung durch den Database Manager

_UNICODE

Parameter zum Anlegen einer UNICODE-fähigen Datenbank.

Diesen Datenbankparameter können Sie nach dem Anlegen der Datenbankinstanz nicht mehr ändern.

CAT_CACHE_SUPPLY

Memory-Größe des Catalog-Cache für alle User-Tasks in Seiten

DATE_TIME_FORMAT

Systemvorschlag für das Datums- und Zeitformat. Jeder Anwender kann für sich für eine Sitzung das Datums- und Zeitformat durch entsprechende Angaben im Datenbankwerkzeug (z. B. im Loader über standard_date_mask) oder durch entsprechende Angaben in SQL-Anweisungen (datetimeformat) ändern.

Für Informationen zu den möglichen Werten sowie zur Syntax siehe Datums- und Zeitformat.

DEADLOCK_DETECTION

maximale Suchtiefe bei der Deadlock-Erkennung

Deadlocks, die bis zur vorgegebenen Suchtiefe nicht entdeckt wurden, werden nur durch den Parameter REQUEST_TIMEOUT aufgelöst.

Bei DEADLOCK_DETECTION = 0 ist die Deadlock-Erkennung ausgeschaltet.

DEFAULT_CODE

Systemvorschlag für das Codeattribut. Gilt nur für Spaltenwerte des Datentyps CHAR[ACTER], VARCHAR und LONG[VARCHAR].

DEVNO_BIT_COUNT

siehe DEVNO_BIT_COUNT

DIAG_HISTORY_NUM

Anzahl der Historien im Verzeichnis <diag_history_path>

DIAG_HISTORY_PATH

Verzeichnis <diag_history_path> für die Historien von Protokolldateien

Der Vorschlagswert ist DIAGHISTORY im Arbeitsverzeichnis der Datenbankinstanz.

HS_DELAY_TIME_<NNN>

nur für Hot Standby-Systeme; Zeitverzögerung in Sekunden, mit der die Standby-Komponente NNN Änderungen der Master-Komponente nachfährt.

HS_NODE_<NNN>

Rechnername / Adresse der Hot Standby-Komponente NNN.

HSS_NODE_001 ist der Vorschlagswert für die Master-Komponente des Standby-Systems.

HS_STORAGE_DLL

nur für Hot Standby-Systeme; Name der Bibliothek, über die das Speicherverwaltungssystem angesteuert wird.

Der Vorschlagswert ist libhsscopy.

HS_SYNC_INTERVAL

nur für Hot Standby-Systeme; Minimale Zeitspanne, die zwischen zwei Befehlen der Master-Komponente zum Synchronisieren der Standby-Komponenten liegt, angegeben in Sekunden.

Erlaubt sind Werte zwischen 0 und 36000 Sekunden. Der Vorschlagswert ist 50.

JOIN_MAXTAB_LEVEL4

Parameter für die Berechnung des Join-Sequenz-Algorithmus; siehe JOIN_SEARCH_LEVEL

JOIN_MAXTAB_LEVEL9

Parameter für die Berechnung des Join-Sequenz-Algorithmus; siehe JOIN_SEARCH_LEVEL

JOIN_SEARCH_LEVEL

Algorithmus für die Join-Sequenz-Suche; siehe JOIN_SEARCH_LEVEL

KERNELDIAGSIZE

Größe der Protokolldatei knldiag in KB

LOAD_BALANCING_CHK

Zeitabstand (in s), in dem das Datenbanksystem überprüft, ob ein Load-Balancing sinnvoll ist

0 ≤ LOAD_BALANCING_CHK < 600

Der Vorschlagswert ist 0 (Load-Balancing ausgeschaltet).

LOG_BACKUP_TO_PIPE

gibt an, ob Log-Sicherung in Pipes erlaubt ist

LOG_IO_QUEUE

Größe der Log-Warteschlange in Seiten

LRU_FOR_SCAN

gibt an, ob der gesamte Data-Cache für Scans verwendet wird

MAXRGN_REQUEST

maximale Anzahl von Zugriffsversuchen einer Task auf einen kritischen Abschnitt

Wenn diese Zahl überschritten wird, gibt die Task den Zugriff auf die CPU für eine andere Task des gleichen User-Kernel-Thread frei.

MAXSERVERTASKS

bestimmt die Anzahl von Server-Tasks, die zum Beispiel zum Sichern und Wiederherstellen bereitstehen

MP_RGN_LOOP

maximale Anzahl von Zugriffsversuchen einer Task auf einen kritischen Abschnitt, der durch eine andere Task gesperrt ist

Wenn diese Zahl überschritten wird, ändert die zugreifende Task ihren Zustand in „wartend“

OFFICIAL_NODE

nur für Cluster-Systeme; offizieller Name der Datenbank innerhalb des Cluster-Systems. Wird vom Systemadministrator festgelegt.

OPTIM_INV_ONLY

bestimmt, ob für Joins die Index-Only-Strategie verwendet wird

OPTIM_MAX_MERGE

gibt die Veränderung des Optimierungsalgorithmus der Strategien für das Zusammenführen von Indexlisten an

Wenn die Anzahl der zusammenzuführenden Seiten eines Index den Wert von OPTIM_MAX_MERGE übersteigt, wird dieser Index nicht für eine Index-Merge-Strategie verwendet.

REQUEST_TIMEOUT

maximale Wartezeit auf Freigabe einer Sperre in Sekunden

Mit diesem Parameter wird für alle Datenbanksitzungen das Warten auf die Freigabe einer Sperre durch andere Benutzer begrenzt. Wenn eine Sperranforderung in der hier definierten Zeit nicht erfüllt werden kann, erfolgt eine Rückmeldung an die wartende Datenbanksitzung. Die gegebenenfalls vorher durchgeführten Änderungen innerhalb der Transaktionen werden zurückgerollt.

SEQUENCE_CACHE

Größe des Sequence-Cache in Seiten

SESSION_TIMEOUT

Timeout-Wert für Datenbanksitzungen in Sekunden

SET_VOLUME_LOCK

Gibt für ein Volume an, ob es hinzugefügt werden kann oder gesperrt ist. Erlaubte Werte sind Yes und No, der Vorschlagswert ist Yes.

Yes: Wenn ein Volume hinzugefügt wird, dann wird eine Sperre gesetzt, die ein erneutes Hinzufügen desselben Volumes und somit eine Fehlkonfiguration des Systems verhindert.

No: Wenn ein Volume hinzugefügt wird, dann wird keine Sperre gesetzt.

UTILITY_PROT_SIZE

Größe der Protokolldatei dbm.utl in Seiten

Die vollständige Liste der speziellen Datenbankparameter Ihrer Datenbankinstanz sowie weitere Informationen zu diesen Parametern können Sie sich mit dem Database Manager anzeigen lassen.


DEVNO_BIT_COUNT (MaxDB: Datenbankverwaltung)

DEVNO_BIT_COUNT

Der spezielle Datenbankparameter DEVNO_BIT_COUNT gibt die Anzahl Bits in der Converter-Block-Adresse an, die für die logische Device-Nummer eines Data-Volume reserviert ist. Je größer der Datenbankparameter DEVNO_BIT_COUNT eingestellt ist, desto mehr Data-Volumes können verwaltet werden. Allerdings wird bei einer höheren Anzahl von Data-Volumes die Kapazität der einzelnen Data-Volumes verringert.

Der Vorschlagswert ist 8.

Die Größe einer Seite 8 KB. DEVNO_BIT_COUNT ist auf 8 gesetzt. Die Datenbankinstanz kann somit 256 Data-Volumes verwalten. Jedes Data-Volume kann maximal 128 GB groß sein.

Sie sollten den beim Installieren der Datenbankinstanz eingestellten Wert für DEVNO_BIT_COUNT nicht mehr verändern. Wenn Sie diesen Datenbankparameter im laufenden Datenbankbetrieb verändern, dann müssen Sie anschließend eine Wiederherstellung der Datenbankinstanz durchführen, um die Nummerierung der Data-Volumes zu aktualisieren.


JOIN_SEARCH_LEVEL (MaxDB: Datenbankverwaltung)

JOIN_SEARCH_LEVEL

Der spezielle Datenbankparameter JOIN_SEARCH_LEVEL legt den Algorithmus für die Join-Sequenz-Suche fest und bestimmt damit Aufwand und Zeit der Join-Sequenz-Suche.

Welcher Algorithmus verwendet werden soll, kann entweder direkt festgelegt oder aus den Parametern JOIN_MAXTAB_LEVEL4, JOIN_MAXTAB_LEVEL9 sowie der Anzahl der Tabellen im Join berechnet werden.

Um den Algorithmus direkt festzulegen, geben Sie für JOIN_SEARCH_LEVEL einen der folgenden Werte an:

· 9: Alle möglichen Join-Sequenzen werden berechnet (Permutierender Algorithmus).

· 4: Es werden diverse Join-Sequenzen in Abhängigkeit von der Anfragestruktur berechnet (Transformierender Algorithmus).

· 1: Der einfachste Algorithmus für die Join-Sequenz-Suche wird verwendet (Greedy-Algorithmus).

Wenn Sie als JOIN_SEARCH_LEVEL den Wert 0 angeben, wird der Algorithmus für die Join-Sequenz-Suche folgendermaßen bestimmt:

Tabellenanzahl n des Joins | Algorithmus für die Join-Sequenz-Suche
n ≤ JOIN_MAXTAB_LEVEL9 | 9
JOIN_MAXTAB_LEVEL9 <n ≤ JOIN_MAXTAB_LEVEL4 | 4
JOIN_MAXTAB_LEVEL4 < n | 1

JOIN_SEARCH_LEVEL ist auf 0 gesetzt.

JOIN_MAXTAB_LEVEL4 ist auf 16 gesetzt.

JOIN_MAXTAB_LEVEL9 ist auf 4 gesetzt.

Für einen Join werden 5 Tabellen verwendet.

Für diesen Join wird die Join-Sequenz-Suche Level 4 (Transformierender Algorithmus) verwendet, da für den Join JOIN_MAXTAB_LEVEL9 < 5 ≤ JOIN_MAXTAB_LEVEL4 zutrifft.

Informationen zur Arbeitsweise des Optimierers finden Sie in der Dokumentation SQL-Optimierer.


Datenbankdateien (MaxDB: Datenbankverwaltung)

Datenbankdateien

Für jede Datenbankinstanz legt das Datenbanksystem eine Reihe von Dateien innerhalb der Verzeichnisstruktur des Datenbanksystems an.

Unterschieden wird zwischen:

· Protokolldateien

· Konfigurationsdateien

Die Datenbankdateien sind außerdem unterschiedlichen Dateiklassen zugeordnet.


Dateiklassen (MaxDB: Datenbankverwaltung)

Dateiklassen

Es werden folgende Klassen von Datenbankdateien unterschieden:

backup | Protokolldateien vom Sichern und Wiederherstellen
config | Konfigurationsdateien
dump | Speicherauszüge
lvc | Protokolldateien für den Datenbankinstanztyp SAP liveCache
protocol | allgemeine Protokolldateien


Protokolldateien (MaxDB: Datenbankverwaltung)

Protokolldateien

Jede Datenbankinstanz legt in ihrem Arbeitsverzeichnis und dessen Unterverzeichnissen die in der folgenden Tabelle aufgeführten Protokolldateien ab. Sie gehören unterschiedlichen Dateiklassen an.

Dateiname (File-ID)

Dateiklasse

Dateiinhalt

knldiag (KNLDIAG)

protocol

aktuelles Kern-Protokoll

Diese Datei wird jeweils beim Starten der Datenbankinstanz mit der im speziellen Datenbankparameter KERNELDIAGSIZE angegebenen Größe angelegt.

Alle Meldungen aus dem laufenden Betrieb werden zyklisch überschrieben; eine Ausnahme bilden Meldungen zum Start in den Betriebszustand ADMIN.

knldiag.old (KNLDIAGOLD)

protocol

letztes Kern-Protokoll

Beim Starten der Datenbankinstanz wird die Datei knldiag in die Datei knldiag.old umbenannt.

knldiag.err (KNLDIAGERR)

protocol

Fehlermeldungen des Kerns

Diese Datei wird nicht überschrieben. Neue Fehlermeldungen werden am Ende der Datei angehängt.

knldiag.evt
(KNLEVT)

protocol

Protokoll der Datenbankereignisse

knltrace (KNLTRC)

dump

Protokolldatei des Datenbank-Trace

Außerdem kann diese Datei Informationen zu Absturzursachen enthalten. Die Datei wird bei jedem Start der Datenbankinstanz initialisiert.

<database_name>.prt (KNLTRCPRT)

protocol

Textversion des Datenbank-Trace

knldump (KNLDUMP)

dump

Sicherung der Hauptspeicherinformationen nach einem Datenbankabsturz

rtedump (RTEDUMP)

dump

Speicherauszug der Laufzeitumgebung der Datenbankinstanz

<database_name>.pah (DBMPAHI)

protocol

Historie der Datenbankparameter

Der Datenbankinstanztyp SAP liveCache (nur in SAP-Systemen) legt zusätzlich folgende Dateien ab:

lcinit.log | Start oder Initialisierung des SAP liveCache mit der CCMS-Funktionalität des SAP-Systems
lcinit.his | Historie aller Aktionen im liveCache Die Informationen des Protokolls lcinit.log werden angehängt.
lc<token> | Protokoll der SAP liveCache-Aktivitäten

Die Protokolldateien des Database Manager liegen ebenfalls im Arbeitsverzeichnis der Datenbankinstanz.

Loader und X-Server legen ihre Protokolldateien (loader.prt und xserver.prt) instanzunabhängig im Verzeichnis <independent_data_path>/wrk ab (siehe auch Protokolldatei des Loader). In diesem Verzeichnis werden auch Installation und Update der Datenbanksoftware protokolliert.

Das Verzeichnis für die Protokolldateien des Database Analyzer können Sie beim Aufruf des Database Analyzer selbst festlegen.


Datenbank-Trace (MaxDB: Datenbankverwaltung)

Datenbank-Trace

Sie können das Schreiben eines Datenbank-Trace einschalten. Die Trace-Writer-Task protokolliert in diesem Fall alle Reaktionen des Datenbankkerns auf Datenbankanweisungen in der Protokolldatei knltrace.

Das Schreiben des Datenbank-Trace kann dazu verwendet werden, Fehler bei der Abarbeitung der Anweisungen aufzudecken. Außerdem lassen sich durch Hardwarefehler bedingte Inkonsistenzen anhand des Trace genauer klassifizieren.

Aktivieren Sie das Schreiben des Datenbank-Trace nur, wenn Sie vom Support dazu aufgefordert werden. Es empfiehlt sich nicht, die Trace-Funktion ohne explizite Notwendigkeit einzuschalten, da sie großen Einfluss auf die Performance der Datenbankinstanz hat.

Solange das Schreiben des Datenbank-Trace eingeschaltet ist, sollte die Datenbankinstanz mit möglichst geringer Last betrieben und auf die zur Reproduktion des Fehlers notwendigen Aktionen beschränkt werden.

Schalten Sie das Schreiben des Datenbank-Trace wieder aus, sobald die für die Analyse notwendigen Aktionen protokolliert worden sind.

Ein- und Ausschalten des Datenbank-Trace

Verwenden Sie zum Ein- und Ausschalten des Datenbank-Trace den Database Manager oder in SAP-Systemen den Datenbankassistenten.

· Database Manager GUI, Datenbank-Trace einschalten

· Database Manager CLI, Abschnitt Datenbank-Trace-Funktionen

· Datenbankverwaltung im CCMS: MySQL MaxDB, [image] Datenbank-Trace


Konfigurationsdateien (MaxDB: Datenbankverwaltung)

Konfigurationsdateien

Für jede Datenbankinstanz legt das Datenbanksystem folgende Konfigurationsdateien in den Datenbankverzeichnissen ab:

· Konfigurationsdatei <database_name> mit den Datenbankparametern im Verzeichnis <independent_data_path>\config\<database_name>

Die Historie der Datenbankparameter finden Sie in den Protokolldateien.

· Konfigurationsdateien des Database Manager im Arbeitsverzeichnis der Datenbankinstanz


Caches (MaxDB: Datenbankverwaltung)

Caches

Um Plattenzugriffe zu sparen, werden Lese- und Schreiboperationen auf die Daten einer Datenbankinstanz gepuffert. Die zugehörigen Hauptspeicherstrukturen heißen Caches und können über die entsprechenden Datenbankparameter passend dimensioniert werden.

Das Datenbanksystem verwendet u. a. die folgenden Caches:

· Catalog-Cache

· I/O-Buffer-Cache

¡ Data-Cache

¡ Converter

· Log-Warteschlange

Siehe auch:

Database Manager GUI, Cache-Informationen anzeigen

Database Manager CLI, Anzeigen von Informationen zur Datenbankinstanz

In SAP-Systemen verwenden Sie zum Anzeigen von Datenbankinformationen den [image] Datenbankassistenten bzw. für liveCache-Instanzen den [image] liveCache-Assistenten.


Catalog-Cache (MaxDB: Datenbankverwaltung)

Catalog-Cache

Der Catalog-Cache einer Datenbankinstanz enthält die bei einer Datenbanksitzung zuletzt verwendeten Objekte des Datenbankkatalogs sowie die interne Darstellung (Ausführungspläne) der zuletzt ausgeführten SQL-Anweisungen.

Der Catalog-Cache existiert einmal pro Datenbanksitzung. Seine Größe lässt sich über den speziellen Datenbankparameter CAT_CACHE_SUPPLY konfigurieren. Die Trefferrate sollte über 85 Prozent liegen.

Daten, die aus dem Catalog-Cache verdrängt werden, werden in den Data-Cache verlagert.


I/O-Buffer-Cache (MaxDB: Datenbankverwaltung)

I/O-Buffer-Cache

Im I/O-Buffer-Cache wird der gesamte Hauptspeicher verwaltet, der für I/O-Operationen zur Verfügung steht. Beim Start der Datenbankinstanz wird der I/O-Buffer-Cache entsprechend der im allgemeinen Datenbankparameter CACHE_SIZE angegebenen Größe im Hauptspeicher angelegt. Die Größe des Hauptspeichers wird in Seiten angegeben.

Der Converter und der Data-Cache sind die wichtigsten Verbraucher des Hauptspeichers, der im I/O-Buffer-Cache verwaltet wird. Wenn der Converter im laufenden Datenbankbetrieb wächst und mehr Seiten benötigt, dann werden ihm mehr Seiten aus dem I/O-Buffer-Cache zugeteilt. Stehen dort keine Seiten mehr zur Verfügung, werden Daten aus dem Data-Cache verdrängt und dem Converter zur Verfügung gestellt.


Converter (MaxDB: Datenbankverwaltung)

Converter

Im Converter werden die Informationen dazu gehalten, welche logische Datenseiten zu welchen physischen Datenseiten zugeordnet sind.

Bei Zugriff auf Datenseiten, die sich nicht im Data-Cache befinden, wird zuerst im Converter deren logische Position gesucht. Anschließend wird die der logischen Position zugeordnete physische Position der Datenseiten in den Data-Volumes ermittelt. Der Converter wird von allen gleichzeitig aktiven Benutzern gemeinsam genutzt.

Nur die Converter-Seiten, die eine Abbildung permanenter Datenseiten beinhalten, werden mit jedem Savepoint auf die Data-Volumes geschrieben. Bei einem Restart kann der Converter anhand dieser Seiten vom Pager wieder aufgebaut werden.

Aus dem Converter werden nie Seiten verdrängt. Wenn nötig, werden zusätzliche Seiten aus dem I/O-Buffer-Cache entnommen. Die Größe des Converters kann also nicht explizit festgelegt werden.


Data-Cache (MaxDB: Datenbankverwaltung)

Data-Cache

Im Data-Cache werden die Seiten der Data-Volumes gehalten, auf die zuletzt lesend oder schreibend zugegriffen wurde. Er wird gemeinsam von allen gleichzeitig aktiven Benutzern genutzt.

Der Data-Cache wird dynamisch dimensioniert, d. h. seine Größe können Sie nicht direkt beeinflussen. Die erforderlichen Seiten werden aus dem I/O-Buffer-Cache entnommen. Wenn der Converter wächst, wird die Anzahl der Data-Cache-Seiten gegebenenfalls entsprechend verringert.

Die Trefferrate, d. h. der Anteil erfolgreicher Zugriffe an der Gesamtzahl von Zugriffen auf den Data-Cache, ist für die Performance von ausschlaggebender Bedeutung. Dabei versteht man unter einem erfolgreichen Zugriff, dass die benötigten Daten zum Zugriffszeitpunkt bereits im Data-Cache vorliegen.


Log-Warteschlange (MaxDB: Datenbankverwaltung)

Log-Warteschlange

Der für das Logging erforderliche Hauptspeicherbereich wird Log-Warteschlange genannt. Die Größe einer Log-Warteschlange wird über den speziellen Datenbankparameter LOG_IO_QUEUE bestimmt.

Eine ausführliche Erläuterung des Loggings sowie der Aufgaben der Log-Warteschlange finden Sie in der Dokumentation Hintergrundwissen.


Volumes (MaxDB: Datenbankverwaltung)

Volumes

Ein Volume ist eine logische Zusammensetzung physischer Speichereinheiten (Platten). Ein Volume kann ein Teil einer physischen Platte, eine gesamte physische Platte oder auch ein aus mehreren Speichereinheiten komplett strukturiertes Speichersystem sein. Die verwendeten physischen Platten sollten einheitliche Leistungsdaten (speziell Zugriffsgeschwindigkeiten) aufweisen, da nur so eine gleichmäßige Füllung der Volumes erreicht wird.

Das Datenbanksystem unterscheidet zwischen Data-Volumes und Log-Volumes. Jede Datenbankinstanz verfügt über je eines oder mehrere Log- und Data-Volumes. Bei Verwenden der Datenbankverwaltungswerkzeuge wird ein Volume über einen Verzeichnispfad angesprochen. Die Verzeichnispfade können geändert werden.

Die Anzahl der Data- und Log-Volumes, die Sie für eine Datenbankinstanz definieren können, ist durch die allgemeinen Datenbankparameter MAXDATAVOLUMES und MAXLOGVOLUMES bestimmt. Sie können beim Installieren einer neuen Datenbankinstanz je eines oder mehrere dieser Data- und Log-Volumes konfigurieren. Bei Bedarf können Sie während des laufenden Datenbankbetriebs weitere Volumes aus dem Volume-Vorrat konfigurieren.

Verwalten von Volumes

Um die Volumes zu verwalten, verwenden Sie den Database Manager oder in SAP-Systemen den Datenbankassistenten des CCMS.

· Database Manager GUI, Abschnitt Verwalten von Datenbankinstanzen

· Database Manager CLI, Kommandos für die Konfiguration von Datenbankinstanzen

· Datenbankverwaltung im CCMS: MySQL MaxDB, [image] Volumes

· Datenbankverwaltung im CCMS: SAP liveCache, [image] Volumes


Data-Volumes und Datenbereich (MaxDB: Datenbankverwaltung)

Data-Volumes und Datenbereich

Die Volumes, in denen die Datenbankinhalte aufgezeichnet werden, heißen Data-Volumes. Alle Data-Volumes zusammen bilden den Datenbereich. Der Datenbereich enthält unter anderem den Datenbankkatalog und die Anwendungsdaten.

Die Größe des Datenbereichs stellt die Gesamtgröße der Datenbankinstanz dar und darf 2000 Seiten nicht unterschreiten. Im Datenbereich muss außerdem stets genügend Platz vorhanden sein, um die im Datenbankbetrieb anfallenden Daten aufzunehmen.

Sie sollten den Datenbereich regelmäßig sichern.

Siehe auch:

Database Manager GUI, Datenbereichs-Informationen anzeigen

Database Manager CLI, Anzeigen von Informationen zur Datenbankinstanz


Log-Volumes und Log-Bereich (MaxDB: Datenbankverwaltung)

Log-Volumes und Log-Bereich

Die Volumes, in denen alle Änderungen von Datenbankinhalten als Log-Einträge aufgezeichnet werden, heißen Log-Volumes. Alle Log-Volumes zusammen bilden den Log-Bereich.

Log-Einträge werden zusätzlich zu Datensicherungen benötigt, um nach Fehlern ein Wiederherstellen der Datenbankinstanz in ihren letzten konsistenten Zustand oder in einen Zustand zu einem beliebigen Zeitpunkt der Vergangenheit zu ermöglichen. Beim Wiederherstellen werden entweder die noch im Log-Bereich vorhandenen Log-Einträge oder, falls die benötigten Einträge nicht mehr vorhanden sind, die entsprechenden Log-Sicherungen eingelesen.

Notwendigkeit von Log-Sicherungen

Der Log-Bereich wird zyklisch beschrieben, im normalen Log-Sicherungsbetrieb werden die vorhandenen Log-Einträge im Log-Bereich aber erst nach ihrer Sicherung wieder zum Überschreiben freigegeben. Wenn keine neuen Log-Einträge mehr geschrieben werden können, kommt es zu einem Datenbankstillstand. Daher müssen Sie den Log-Bereich regelmäßig sichern – beispielsweise durch automatische Log-Sicherungen.

Sie können den Füllungsgrad des Log-Bereichs zum Beispiel mit dem Database Manager GUI überwachen (Log-Bereichs-Informationen anzeigen). In Fall eines vollen Log-Bereichs führen Sie eine Log-Sicherung durch, um den Log-Bereich wieder zum Überschreiben freizugeben.

Aus Sicherheitsgründen sollten Sie den Log-Bereich spiegeln. Ist eine hardware-basierte Spieglung nicht möglich, können Sie den Log-Modus entsprechend einstellen.

Siehe auch:

Log-Einstellungen

Bei Log-Sicherungen wird der Log-Bereich nicht mit einem Mal, sondern in Sicherungseinheiten gesichert, den Log-Segmenten. Die Größe der Log-Segmente, die Größe des Log-Volume und die Kapazität des Sicherungsmediums sollten aufeinander abgestimmt sein.

Detaillierte Informationen zum Logging finden Sie in der Dokumentation Hintergrundwissen.


Log-Segment (MaxDB: Datenbankverwaltung)

Log-Segment

Bei Log-Sicherungen wird der Log-Bereich nicht mit einem Mal gesichert, sondern in Sicherungseinheiten, den Log-Segmenten.

Die Größe der Log-Segmente wird durch den allgemeinen Datenbankparameter LOG_SEGMENT_SIZE bestimmt. Sie ist unabhängig von der Größe der einzelnen Log-Volumes. Sie darf allerdings nicht größer als die Summe aller Log-Volumes sein. Außerdem sollte die Größe so gewählt werden, dass während der Sicherung eines Log-Segments noch genügend Platz im Log-Bereich bleibt, um die gerade anfallenden Änderungen aufzunehmen.

Benutzerdefinierter Wert | Vom System verwendete Log-Segmentgröße
Keine Definition der Log-Segmentgröße (LOG_SEGMENT_SIZE = 0) | 1/3 des gesamten Log-Bereichs
Log-Segmentgröße in Seiten kleiner/gleich 50% des gesamten Log-Bereichs | Der für LOG_SEGMENT_SIZE definierte Wert
Log-Segmentgröße > 50% des gesamten Log-Bereichs | 50% des Log-Bereichs


Seite (MaxDB: Datenbankverwaltung)

Seite

Eine Seite (Page) ist die physische Grundeinheit der Platteneingabe und -ausgabe, d. h. eine Seite entspricht einer bestimmten Anzahl von Blöcken. Speicher- und Plattengröße werden oft in Seiten angegeben.

Die Seitengröße für das Datenbanksystem ist auf 8 KB festgelegt.


Datenbanksitzung (MaxDB: Datenbankverwaltung)

Datenbanksitzung

Um mit einer Datenbankinstanz arbeiten zu können, Datenbankanfragen zu stellen oder die Datenbankinstanz zu verwalten, muss sich der Benutzer zunächst mit einem Benutzernamen und Kennwort an der Datenbankinstanz anmelden und eine Datenbanksitzung eröffnen.

Der angegebene Benutzername wird als "aktueller Benutzer" bezeichnet, wenn der Benutzer nicht zu einer Benutzergruppe gehört. Wenn der Benutzer zu einer Benutzergruppe gehört, dann wird der Name der Benutzergruppe als "aktueller Benutzer" bezeichnet.

Eine Datenbanksitzung wird durch den Benutzer explizit beendet oder implizit bei Überschreiten des Timeout-Werts abgeschlossen.

Informationen zu Datenbanksitzungen anzeigen

Informationen zu laufenden Datenbanksitzungen können Sie zum Beispiel mit dem Database Manager anzeigen oder aus den entsprechenden Systemtabellen ermitteln.

Database Manager GUI, Datenbanksitzungen anzeigen

In SAP-Systemen verwenden Sie zum Anzeigen von Datenbankinformationen den [image] Datenbankassistenten oder für liveCache-Instanzen den [image] liveCache-Assistenten.


Anmelden an einer Datenbankinstanz (MaxDB: Datenbankverwaltung)

Anmelden an einer Datenbankinstanz

Folgende Benutzerangaben werden in der Regel zur Anmeldung an einer Datenbankinstanz benötigt:

database_name | Name der Datenbankinstanz, mit der gearbeitet werden soll
database_server | Name des Rechners, auf dem die angesprochene Datenbankinstanz installiert ist
user_name | Benutzername
password | Kennwort des Benutzers

Zusätzlich können je nach Anwendung oder Datenbankwerkzeug weitere Optionen wie z. B. der gewünschte SQL-Modus oder Timeout-Wert angegeben werden.

Benutzerangaben übergeben

Beim Arbeiten mit den Datenbankwerkzeugen oder Anwendungsprogrammen gibt es folgende Möglichkeiten für die Übergabe der Benutzerangaben:

· Benutzerangaben im Anmeldebildschirm des Database Manager GUI oder SQL Studio angeben

Beachten Sie die Besonderheiten bei der Groß- und Kleinschreibung, wenn Sie im SQL Studio eine Datenbanksitzung eröffnen.

· Benutzerangaben beim Aufrufen des Datenbankwerkzeugs oder Anwendungsprogramms als Aufrufoptionen angeben

· Benutzerangaben mit XUSER angeben

Fehlende oder falsche Benutzerangaben führen zum Abbruch des Programms mit entsprechender Fehlermeldung.

Beim Aufruf des C/C++-Precompilers und von Anwendungsprogrammen, die mit Hilfe der Programmierschnittstellen der Datenbank erstellt wurden, können Benutzerangaben auch direkt im Programm übergeben werden. Dort gilt eine modifizierte Regelung für die Übergabe der Benutzerangaben. Weitere Informationen finden Sie im Benutzerhandbuch C/C++-Precompiler unter Precompiler-Optionen und Anmelden an einer Datenbankinstanz.


Aufrufen der Datenbankwerkzeuge (MaxDB: Datenbankverwaltung)

Aufrufen der Datenbankwerkzeuge

Benutzerangaben für die Anmeldung an einer Datenbankinstanz und gegebenenfalls weitere Angaben können als Optionen beim Aufruf der Datenbankwerkzeuge, des C/C++-Precompiler oder der Anwendungsprogramme übergeben werden. Sie müssen bestimmte mindestens notwendige Aufrufoptionen angeben, um die Werkzeuge zu starten.

Beachten Sie, dass das Benutzerkonzept zwischen Database-Manager-Benutzern und Datenbankbenutzern unterscheidet und Sie die entsprechenden Berechtigungen brauchen, um mit einem Werkzeug zu arbeiten.

Database Manager GUI und SQL Studio

Database Manager GUI und SQL Studio werden auch ohne Angabe von Optionen, oder wenn Optionen falsch oder unvollständig eingegeben wurden, gestartet. Geben Sie die erforderlichen Benutzerangaben zum Anmelden an die Datenbankinstanz anschließend im Anmeldebildschirm ein.

Database Manager GUI, Aufruf des Database Manager GUI

SQL Studio, Starten von SQL Studio

Database Manager CLI

Um den vollen Funktionsumfang des Database Manager CLI nutzen zu können, müssen Sie beim Aufruf die Verbindung zur gewünschten Datenbankinstanz aufbauen. Geben Sie dazu die Option -d <database_name>an, wenn die Datenbankinstanz auf dem lokalen Rechner liegt, und zusätzlich die Option -n <database_server>, wenn die Datenbankinstanz auf einem entfernten Rechner liegt. Weitere Angaben wie Benutzername und Kennwort können Sie als Optionen (z.B. -u) übergeben.

Der Database Manager CLI unterstützt auch die Verwendung von XUSER.

Wenn Sie die für die Anmeldung an die Datenbankinstanz notwendigen Optionen nicht oder nur teilweise angeben oder die Angaben falsch sind, dann wird der Database Manager CLI zwar gestartet und eine Verbindung zum DBM-Server aufgebaut, eine Anmeldung an die Datenbankinstanz erfolgt jedoch nicht. Der Database Manager CLI kann in diesem Fall nur zum Aufruf datenbankunabhängiger DBM-Kommandos (z.B. help, dbm_version u.ä.) verwendet werden.

Database Manager CLI, Eröffnen einer DBM-Server-Sitzung und Anmelden an den Database Manager

Loader CLI

Für den Aufruf des Loader CLI müssen Sie den Namen der Datenbankinstanz mit der Option –d <database_name> angeben. Wenn Sie nicht interaktiv, sondern im Hintergrund arbeiten wollen, dann müssen Sie die Kommandodatei mit Hilfe der Option –b <command_file> angeben. Weitere Benutzerangaben (z.B. Benutzername und Kennwort) können Sie als Optionen (z.B. -u) oder gegebenenfalls als Kommando (z.B. USE USER) übergeben.

Wenn Sie die notwendigen Optionen nicht oder nur teilweise angeben oder die Angaben falsch sind, dann wird der Loader nicht gestartet, zeigt jedoch die Liste aller möglichen Optionen an.

Siehe auch:

Aufruf mit Loader CLI (LOADERCLI)


SQL-Modus (MaxDB: Datenbankverwaltung)

SQL-Modus

Es gibt verschiedene SQL-Sprachvarianten. Das Datenbanksystem ist in der Lage, Datenbankanwendungen auszuführen, die gemäß einer der folgenden SQL-Definitionen geschrieben sind:

· INTERNAL: datenbanksysteminterne Definition

· ANSI: ANSI-Standard gemäß ANSI X3.135-1992, Entry SQL

· DB2: Definition DB2 Version 4

· ORACLE: Definition ORACLE7

Bei der Eröffnung einer Datenbanksitzung können Sie den gewünschten SQL-Modus angeben. Der SQL-Modus INTERNAL ist der Vorschlagswert.

Die Unterstützung anderer SQL-Modi bezüglich der Data Definition Language (DDL)-Anweisungen ist eingeschränkt.

Informationen zu Besonderheiten für SQL-Anweisungen im SQL-Modus ORACLE finden Sie in der Dokumentation SQL-Modus ORACLE.


Timeout-Wert (MaxDB: Datenbankverwaltung)

Timeout-Wert

Der Timeout-Wert legt die maximale Inaktivitätsdauer einer Datenbanksitzung fest. Die Inaktivitätsdauer ist das Zeitintervall zwischen Beendigung einer SQL-Anweisung und dem Absetzen der nächsten SQL-Anweisung. Wenn der angegebene Timeout-Wert überschritten wird, dann wird die Datenbanksitzung implizit mittels ROLLBACK (siehe auch ROLLBACK WORK RELEASE-Anweisung) abgeschlossen.

Die Angabe eines Timeout-Werts erfolgt in Sekunden.

Einstellung des Timeout-Werts

Die Einstellung des Timeout-Werts erfolgt auf folgenden Wegen:

· Für alle Benutzer wird über den speziellen Datenbankparameter SESSION_TIMEOUT der Timeout-Wert in der Datenbankinstanz voreingestellt.

· Für einen Benutzer kann mit einer CREATE USER-Anweisung oder ALTER USER-Anweisung ein benutzerspezifischer Timeout-Wert festgelegt werden.

Für eine Benutzergruppe kann mit einer CREATE USERGROUP-Anweisung oder ALTER USERGROUP-Anweisung ein benutzerspezifischer Timeout-Wert festgelegt werden.

· Beim Anmelden an einer Datenbankinstanz kann als Option ein kleinerer Timeout-Wert angegeben werden.

Als Timeout-Wert für die aktuelle Datenbanksitzung gilt immer der kleinste der auf diesen Wegen angegebenen Werte.


Transaktionen (MaxDB: Datenbankverwaltung)

Transaktionen

Die Transaktionsverwaltung eines Datenbanksystems sorgt unter anderem dafür, dass parallele Transaktionen aus mehreren Datenbanksitzungen korrekt abgearbeitet werden und die gleichen Ergebnisse liefern wie eine sequentielle Verarbeitung dieser Transaktionen.

Eine Transaktion ist eine Folge von SQL-Anweisungen, die vom Datenbanksystem als Einheit behandelt wird, und zwar in dem Sinn, dass die durch die SQL-Anweisungen hervorgerufenen Datenbankänderungen entweder alle im Datenbankzustand repräsentiert sind oder dass andernfalls keine der Änderungen in der Datenbank vorhanden ist.

Durch Eröffnen einer SQL-Sitzung wird die erste Transaktion eröffnet. Abgeschlossen wird eine Transaktion durch ein COMMIT oder ROLLBACK mit folgender Wirkung:

· Wenn die Transaktion durch ein COMMIT erfolgreich beendet wird, dann sind alle Datenbankänderungen dauerhaft.

· Wenn die Transaktion dagegen durch ein ROLLBACK beendet oder anderweitig abgebrochen wird, dann werden alle innerhalb der Transaktion durchgeführten Datenbankänderungen rückgängig gemacht.

Sowohl ein COMMIT als auch ein ROLLBACK eröffnen implizit eine neue Transaktion.

Da das Datenbanksystem konkurrierende Transaktionen auf den gleichen Datenbankobjekten zulässt, sind zur Isolation einzelner Transaktionen Sperren nötig.

Informationen zu den SQL-Anweisungen zur Verwaltung von Transaktionen finden Sie im Referenzhandbuch unter Transaktionen.


COMMIT (MaxDB: Datenbankverwaltung)

COMMIT

Bei einem COMMIT werden alle von einer Transaktion oder einer Subtransaktion durchgeführten Änderungen in der Datenbankinstanz festgeschrieben. Die der Transaktion zugeordneten Sperren werden freigegeben und es wird implizit eine neue Transaktion eröffnet.

Durch ein COMMIT abgeschlossene Änderungen können nicht mehr durch ein ROLLBACK rückgängig gemacht werden.

Im normalen Datenbankbetrieb führt das Datenbanksystem die erforderlichen COMMIT-Aktionen selbständig durch. Ein COMMIT kann aber auch explizit durch entsprechende SQL-Anweisungen angefordert werden (siehe Referenzhandbuch, COMMIT-Anweisung).


ROLLBACK (MaxDB: Datenbankverwaltung)

ROLLBACK

Bei einem ROLLBACK werden alle von einer Transaktion oder einer Subtransaktion in der Datenbankinstanz durchgeführten Änderungen rückgängig gemacht. Die der Transaktion zugeordneten Sperren werden freigegeben. Alle Ergebnistabellen, die in der aktuellen Transaktion erzeugt wurden, werden implizit gelöscht und es wird eine neue Transaktion eröffnet.

Durch ein COMMIT abgeschlossene Änderungen können nicht mehr durch ein ROLLBACK rückgängig gemacht werden.

Im normalen Datenbankbetrieb führt das Datenbanksystem die erforderlichen ROLLBACK-Aktionen selbständig durch. Ein ROLLBACK kann aber auch explizit durch entsprechende SQL-Anweisungen angefordert werden (siehe Referenzhandbuch, ROLLBACK-Anweisung).


Sperren (MaxDB: Datenbankverwaltung)

Sperren

Das Datenbanksystem lässt konkurrierende Transaktionen auf den gleichen Datenbankobjekten zu. Um dabei eine Synchronisation der parallelen Prozesse und eine Isolation einzelner Transaktionen zu gewährleisten, sind Sperren (Locks) erforderlich.

· Das Sperrverhalten der Datenbank hängt unter anderem von der Art der Sperre ab.

· Sperren sind auf Zeilen, Tabellen oder den ganzen Datenbankkatalog möglich.

Wenn in einer Tabelle von einer Transaktion zu viele Zeilensperren angefordert werden, dann versucht das Datenbanksystem, dafür eine Tabellensperre zu erhalten. Wenn dabei Kollisionen mit anderen Sperren auftreten, dann werden jedoch weiter Zeilensperren angefordert. Die Grenze, ab der das Datenbanksystem versucht, Zeilensperren in eine Tabellensperre zu verwandeln, hängt vom allgemeinen Datenbankparameter MAXLOCKS ab.

· Sperren können implizit oder explizit angefordert oder freigegeben werden.

Je mehr Sperren gesetzt werden und je länger die Sperren erhalten bleiben, desto weniger Parallelität ist im Datenbankbetrieb möglich. Sie sollten daher darauf achten, dass nur unbedingt notwendige Sperren gesetzt werden und dass gesetzte Sperren möglichst frühzeitig wieder freigegeben werden.

· Mit dem speziellen Datenbankparameter REQUEST_TIMEOUT lässt sich die Wartezeit für Benutzer auf die Freigabe einer Sperre begrenzen.

Sperren und Sperranforderungen anzeigen

Sie können zum Beispiel mit dem Database Manager GUI Informationen über die aktuellen Sperren und Sperranforderungen erhalten.

Database Manager GUI, Datenbankaktivitäten anzeigen

In SAP-Systemen verwenden Sie zum Anzeigen von Datenbankinformationen den [image] Datenbankassistenten oder für liveCache-Instanzen den [image] liveCache-Assistenten.

Außerdem enthält die Systemtabelle LOCKS Informationen zu Sperren.


Art der Sperre (MaxDB: Datenbankverwaltung)

Art der Sperre

Das Datenbanksystem unterscheidet folgende Sperren:

· Lesesperre

· Schreibsperre

· Optimistische Sperre

· Spezielle Sperren für die Metadaten des Datenbankkatalogs, die jedoch immer implizit vergeben werden.

Eine schematische Übersicht über die mögliche Parallelität von Lesesperren (L-Sperren) und Schreibsperren (S-Sperren) zeigt die folgende Tabelle.

 | Eine Transaktion habe
 | auf einer Tabelle |  | auf einer Zeile |  | auf dem Datenbankkatalog
Kann eine andere Transaktion | S-Sperre | L-Sperre | S-Sperre | L-Sperre | S-Sperre | L-Sperre
für die Tabelle eine S-Sperre anfordern? | nein | nein | nein | nein | nein | ja
für die Tabelle eine L-Sperre anfordern? | nein | ja | nein | ja | nein | ja
für irgendeine Zeile der Tabelle eine S-Sperre anfordern? | nein | nein | - | - | nein | ja
für die gesperrte Zeile eine S-Sperre anfordern? | - | - | nein | nein | - | -
für eine andere Zeile eine S-Sperre anfordern? | - | - | ja | ja | - | -
für irgendeine Zeile der Tabelle eine L-Sperre anfordern? | nein | ja | - | - | nein | ja
für die gesperrte Zeile eine L-Sperre anfordern? | - | - | nein | ja | - | -
für eine andere Zeile eine L-Sperre anfordern? | - | - | ja | ja | - | -
die Definition der Tabelle im Datenbankkatalog ändern? | nein | nein | nein | nein | nein | nein
die Definition der Tabelle im Datenbankkatalog lesen? | ja | ja | ja | ja | nein | ja

In Fällen, die mit "nein" gekennzeichnet sind, liegt eine Sperrkollision vor, d. h. die Anforderung einer Sperre innerhalb einer Transaktion führt dazu, dass auf die Freigabe einer Sperre gewartet werden muss, bis eine der oben genannten oder eine der in der Matrix mit "ja" gekennzeichneten Situationen vorliegt.

Außerdem gilt folgendes:

· Wenn keine Sperre für ein Datenobjekt einer Transaktion zugeordnet ist, kann eine Lese- oder eine Schreibsperre innerhalb jeder Transaktion angefordert werden, und sie wird dieser Transaktion sofort zugeordnet.

· Wenn einer Transaktion T1 eine Lesesperre für ein Datenobjekt zugeordnet ist und keiner konkurrierenden Transaktion eine Sperre für dieses Datenobjekt zugeordnet ist, kann die Transaktion T1 eine Schreibsperre für dieses Datenobjekt anfordern und erhält sie sofort zugeordnet.

· Wenn einer Transaktion eine Schreibsperre für ein Datenobjekt zugeordnet ist, ist es für diese Transaktion möglich, aber nicht nötig, eine Lesesperre anzufordern.


Lesesperre (MaxDB: Datenbankverwaltung)

Lesesperre

Eine Art der Sperren ist die Lesesperre (SHARE-Sperre).

Lesesperren beziehen sich auf eine Zeile oder eine Tabelle.

Wenn einer Transaktion eine Lesesperre auf ein Datenobjekt zugeordnet ist, dann können konkurrierende Transaktionen zwar auf das Objekt zugreifen, es jedoch nicht ändern. Andere Transaktionen können auf dieses Objekt eine Lesesperre setzen, jedoch keine Schreibsperre.


Schreibsperre (MaxDB: Datenbankverwaltung)

Schreibsperre

Eine Art der Sperren ist die Schreibsperre (exklusive Sperre).

Schreibsperren beziehen sich auf eine Zeile oder eine Tabelle.

Wenn einer Transaktion eine Schreibsperre auf ein Datenbankobjekt zugeordnet ist, dann können andere Transaktionen dieses Objekt nicht ändern. Transaktionen, die das Vorhandensein von Schreibsperren prüfen oder Schreib- oder Lesesperren setzen wollen, kollidieren mit der bestehenden Schreibsperre einer anderen Transaktion. Sie erhalten keinen Zugriff auf das gesperrte Objekt.


Optimistische Sperre (MaxDB: Datenbankverwaltung)

Optimistische Sperre

Eine Art der Sperren ist die optimistische Sperre auf Zeilenebene.

Eine Änderungsoperation des aktuellen Benutzers auf einer von ihm optimistisch gesperrten Zeile wird nur dann durchgeführt, wenn diese Zeile nicht zwischenzeitlich von einer konkurrierenden Transaktion geändert wurde. Wenn dagegen eine konkurrierende Transaktion die Zeile geändert hat, dann wird die Änderungsoperation des aktuellen Benutzers zurückgewiesen. In beiden Fällen wird die optimistische Sperre wieder freigegeben.

Im Fall der erfolgreichen Änderungsoperation wird eine Schreibsperre für diese Zeile gesetzt. Im Falle einer erfolglosen Änderungsoperation sollte diese Änderungsoperation erst nach einem erneuten Lesen ohne oder mit optimistischer Sperre wiederholt werden. Im Isolation-Level 0 muss das erneute Lesen mit einer explizit angegebenen Sperre durchgeführt werden. So kann sichergestellt werden, dass die Änderung noch auf dem aktuellen Zustand aufsetzt und keine zwischenzeitlichen Änderungen verloren gehen.

Eine optimistische Sperre ist nur dann sinnvoll, wenn einer der Isolation-Level 0, 1 bzw. 10 oder 15 vergeben wurde. Sie muss explizit durch Angabe einer LOCK-Anweisung angefordert werden. Eine Anforderung kollidiert nur mit einer Schreibsperre. Konkurrierende Transaktionen kollidieren nicht mit einer optimistischen Sperre.


Anfordern von Sperren (MaxDB: Datenbankverwaltung)

Anfordern von Sperren

Sperren können implizit oder explizit angefordert werden.

Wenn beim Setzen von expliziten oder impliziten Sperren zu lange Wartezeiten auf die Freigabe einer Sperre auftreten, dann erfolgt eine Rückmeldung durch das Datenbanksystem. Auf diese Rückmeldung kann der Anwender reagieren, z. B. durch den Abbruch der Transaktion. Das Datenbanksystem führt in solchen Situationen kein implizites ROLLBACK durch.

Sperren implizit anfordern

Die Sperrbetriebsart kann durch die Angabe eines Isolation-Levels beim Eröffnen der Datenbanksitzung gewählt werden. Sperren werden dann in Abhängigkeit vom angegebenen Isolation-Level während der Bearbeitung der SQL-Anweisungen implizit durch das Datenbanksystem angefordert. Alle ändernden SQL-Anweisungen (z. B. INSERT, UPDATE, DELETE) fordern stets eine Schreibsperre an.

Sperren explizit anfordern

Einer Transaktion können explizit mit der LOCK-Anweisung Sperren zugeordnet werden, und einzelne Zeilen einer Tabelle können durch die Angabe einer LOCK-Option in einer SQL-Anweisung gesperrt werden. Dies ist in jedem Isolation-Level möglich.

Mit Hilfe der LOCK-Option kann vorübergehend auch der Isolation-Level für eine SQL-Anweisung geändert werden.


Freigeben von Sperren (MaxDB: Datenbankverwaltung)

Freigeben von Sperren

Die einer Transaktion zugeordneten Sperren werden normalerweise am Transaktionsende freigegeben, so dass die entsprechenden Datenbankobjekte wieder für andere Transaktionen zugänglich sind.

Es gelten folgende Regeln:

· Die durch die LOCK-Anweisung angeforderten Sperren werden mit Beendigung der Transaktion freigegeben, es sei denn, die COMMIT-Anweisung bzw. ROLLBACK-Anweisung, die die Transaktion beendet, beinhaltet ebenfalls eine LOCK-Anweisung.

· Wie lange eine implizit gesetzte Lesesperre gehalten wird, hängt vom Isolation-Level ab.

· Schreibsperren für Zeilen, die noch nicht geändert wurden, und Lesesperren für Zeilen können durch die UNLOCK-Anweisung vor Transaktionsende freigegeben werden.

· Implizit gesetzte Schreibsperren können innerhalb einer Transaktion nicht freigegeben werden.

· Schreibsperren für geänderte Zeilen, Schreibsperren, die durch eine ändernde SQL-Anweisung (INSERT, UPDATE, DELETE) angefordert wurden, und Tabellensperren können innerhalb einer Transaktion nicht freigegeben werden, sondern nur durch das Ende der Transaktion.


Isolation-Level (MaxDB: Datenbankverwaltung)

Isolation-Level

Der Isolation-Level spielt beim Sperrverhalten des Datenbanksystems eine wichtige Rolle. Er legt fest, ob und wie Sperren implizit angefordert oder freigegeben werden.

Der Isolation-Level hat Auswirkungen darauf, ob konkurrierende Transaktionen parallel ausgeführt werden können und wie konsistent die Daten sind. Je niedriger der Wert des Isolation-Levels gewählt wird, desto höher ist der Grad der Parallelität und desto niedriger ist der Grad der garantierten Konsistenz. Bei konkurrierenden Zugriffen auf den gleichen Datenbestand können je nach Isolation-Level verschiedene inkonsistente Phänomene auftreten.

Sie können den Isolation-Level z. B. beim Eröffnen einer Datenbanksitzung mit Hilfe der CONNECT-Anweisung festlegen.

Es gibt folgende Isolation-Level:

· Isolation-Level 0 (uncommitted)

· Isolation-Level 1 bzw. 10 (committed)

· Isolation-Level 15

· Isolation-Level 2 bzw. 20 (repeatable)

· Isolation-Level 3 bzw. 30 (serializable)

1 und 10 sind nur unterschiedliche Schreibweisen desselben Isolation-Levels; sie unterscheiden sich nicht in ihrer Bedeutung. Dasselbe gilt für 2 und 20 sowie 3 und 30.


Isolation-Level 0 (MaxDB: Datenbankverwaltung)

Isolation-Level 0

Wenn der Isolation-Level 0 (uncommitted) angegeben ist, dann werden Zeilen ohne implizite Anforderung von Lesesperren gelesen. Es ist dabei nicht sichergestellt, dass eine Zeile beim nochmaligen Lesen innerhalb einer Transaktion den gleichen Zustand hat wie beim ersten Lesen, da sie in der Zwischenzeit durch eine konkurrierende Transaktion verändert worden sein kann.

Außerdem ist nicht sichergestellt, dass der Zustand einer gelesenen Zeile bereits durch eine COMMIT WORK-Anweisung in der Datenbankinstanz festgeschrieben ist.

Beim Einfügen, Ändern und Löschen von Zeilen werden der Transaktion implizit Schreibsperren für die betroffenen Zeilen zugeordnet. Diese werden erst am Transaktionsende freigegeben.


Isolation-Level 1 bzw. 10 (MaxDB: Datenbankverwaltung)

Isolation-Level 1 bzw. 10

Wenn der Isolation-Level 1 bzw. 10 (committed) angegeben ist, dann wird der Transaktion eine Lesesperre für eine gelesene Zeile Z1 einer Tabelle zugeordnet. Beim Lesen einer Zeile Z2 derselben Tabelle wird die Sperre auf Z1 freigegeben und der Transaktion wird eine Lesesperre auf die Zeile Z2 zugeordnet.

Bei einer Datenanfrage mittels einer QUERY-Anweisung ist für jede gelesene Zeile sichergestellt, dass zum Zeitpunkt des Lesens keine andere Transaktion eine Schreibsperre für diese Zeile hält. Es kann aber keine Aussage darüber getroffen werden, ob die QUERY-Anweisung keine oder genau eine Lesesperre für eine Zeile der angegebenen Tabelle auslöst und für welche Zeile das gegebenenfalls geschieht.

Beim Einfügen, Ändern und Löschen von Zeilen werden der Transaktion implizit Schreibsperren für die betroffenen Zeilen zugeordnet, die erst am Transaktionsende freigegeben werden.


Isolation-Level 15 (MaxDB: Datenbankverwaltung)

Isolation-Level 15

Für alle SQL-Anweisungen gilt für den Isolation-Level 15 das unter Isolation-Level 1 bzw. 10 beschriebene Verhalten mit der Ergänzung, dass für alle durch die SQL-Anweisung angesprochenen Tabellen vor Beginn der Bearbeitung Lesesperren angefordert werden. Wenn durch die SQL-Anweisung eine Ergebnistabelle erzeugt wird, die nicht physisch abgespeichert wird, dann werden diese Sperren erst am Ende der Transaktion oder beim Schließen der Ergebnistabelle freigegeben. Andernfalls erfolgt die Freigabe der Sperren unmittelbar nach der Bearbeitung der SQL-Anweisung.

Beim Einfügen, Ändern und Löschen von Zeilen werden der Transaktion implizit Schreibsperren für die betroffenen Zeilen zugeordnet, die erst am Transaktionsende freigegeben werden.


Isolation-Level 2 bzw. 20 (MaxDB: Datenbankverwaltung)

Isolation-Level 2 bzw. 20

Wenn der Isolation-Level 2 bzw. 20 (repeatable) angegeben ist, dann werden für alle durch eine SQL-Anweisung zur Datenanfrage angesprochenen Tabellen vor Beginn der Bearbeitung implizit Lesesperren angefordert.

Wenn durch eine SQL-Anweisung eine Ergebnistabelle erzeugt wird, die nicht physisch abgespeichert wird, dann werden diese Sperren erst am Ende der Transaktion oder beim Schließen der Ergebnistabelle freigegeben. Anderenfalls erfolgt die Freigabe dieser Sperren unmittelbar nach der Bearbeitung der SQL-Anweisung.

Die Tabellen-Lesesperre wird der Transaktion nicht zugeordnet bei SQL-Anweisungen, bei denen genau eine Zeile einer Tabelle bearbeitet wird, die durch Schlüsselspezifikationen oder durch CURRENT OF <result_table_name> bestimmt wird.

Darüber hinaus gilt, dass der Transaktion für jede während der Bearbeitung einer SQL-Anweisung gelesene Zeile implizit eine Lesesperre zugeordnet wird. Diese Sperren können nur durch eine UNLOCK-Anweisung oder durch Beendigung der Transaktion freigegeben werden.

Beim Einfügen, Ändern und Löschen von Zeilen werden der Transaktion implizit Schreibsperren für die betroffenen Zeilen zugeordnet, die erst am Transaktionsende freigegeben werden. Es werden jedoch keine Sperren für die gesamte Tabelle gesetzt.


Isolation-Level 3 bzw. 30 (MaxDB: Datenbankverwaltung)

Isolation-Level 3 bzw. 30

Wenn der Isolation-Level 3 bzw. 30 (serializable) angegeben ist, dann wird der Transaktion für jede durch eine SQL-Anweisung angesprochene Tabelle implizit eine Tabellen-Lesesperre zugeordnet.

Diese Lesesperren können nur durch Beendigung der Transaktion freigegeben werden. Diese Tabellen-Lesesperre wird der Transaktion nicht zugeordnet bei SQL-Anweisungen, bei denen genau eine Zeile einer Tabelle bearbeitet wird, die durch Schlüsselspezifikationen oder durch CURRENT OF <result_table_name> bestimmt wird.

Beim Einfügen, Ändern und Löschen von Zeilen werden der Transaktion implizit Schreibsperren für die betroffenen Zeilen zugeordnet, die erst am Transaktionsende freigegeben werden.


Phänomene (MaxDB: Datenbankverwaltung)

Phänomene

Bei der Abarbeitung konkurrierender Transaktionen kann es zu inkonsistenten Situationen kommen. Sie sollten versuchen, Sperrverhalten und Isolation-Level des Datenbanksystems so festzulegen, dass diese Situationen verhindert werden.

Folgende Phänomene können bei konkurrierenden Zugriffen auf den gleichen Datenbestand auftreten:

· Dirty-Read

In einer Transaktion T1 wird eine Zeile geändert und eine Transaktion T2 liest diese Zeile, bevor T1 durch die COMMIT-Anweisung abgeschlossen ist. T1 führt dann die ROLLBACK-Anweisung aus. T2 hat in diesem Fall eine Zeile gelesen, die eigentlich nie existierte.

· Non-Repeatable-Read

Eine Transaktion T1 liest eine Zeile. Eine Transaktion T2 verändert oder löscht dann diese Zeile und schließt mit der COMMIT-Anweisung ab. Wenn T1 anschließend die Zeile nochmals liest, erhält T1 entweder die veränderte Zeile oder die Meldung, dass die Zeile nicht mehr existiert.

· Phantom

Eine Transaktion T1 führt eine SQL-Anweisung S aus, die eine Menge M von Zeilen liest, die eine Suchbedingung erfüllen. Eine Transaktion T2 erzeugt dann z. B. durch das Einfügen oder Ändern von Daten mindestens eine weitere Zeile, die die Suchbedingung erfüllt. Wenn in T1 anschließend nochmals S ausgeführt wird, unterscheidet sich die Menge der gelesenen Zeilen von M.

Die Tabelle gibt eine Übersicht darüber, welche Phänomene in welchem Isolation-Level auftreten können.

 | Isolation Level
 | 0 | 1 oder 10 | 2 oder 20 | 3 oder 30
Dirty-Read | ja | nein | nein | nein
Non-Repeatable-Read | ja | ja | nein | nein
Phantom | ja | ja | ja | nein


Benutzerkonzept (MaxDB: Datenbankverwaltung)

Benutzerkonzept

Das Datenbanksystem unterscheidet folgende Benutzerklassen:

· Database Manager-Benutzer (DBM-Benutzer)

DBM-Benutzer können mit dem Database Manager arbeiten, um Datenbankinstanzen zu verwalten. Sie können sich jedoch nicht an den Query Tools anmelden.

· Datenbankbenutzer

Datenbankbenutzer können mit den Query Tools arbeiten, um z. B. SQL-Anweisungen an die Datenbank zu schicken. Sie können sich jedoch nicht am Database Manager anmelden. Eine Ausnahme ist der Datenbanksystemadministrator (SYSDBA-Benutzer). Dieser hat auch die Berechtigungen eines Database Manager-Benutzers.

Siehe auch:

Anmelden an einer Datenbankinstanz

Aufrufen der Datenbankwerkzeuge


Database Manager-Benutzer (DBM-Benutzer) (MaxDB: Datenbankverwaltung)

Database Manager-Benutzer (DBM-Benutzer)

Ein Database Manager-Benutzer (DBM-Benutzer) kann in Abhängigkeit von seinen Eigenschaften verschiedene Funktionen des Datenbankwerkzeugs Database Manager ausführen, beispielsweise um Datenbankinstanzen zu steuern, zu überwachen, zu sichern oder wiederherzustellen. Er kann sich mehrfach an den Database Manager anmelden, um beispielsweise neben langlaufenden Funktionen noch Betriebsparameter abfragen zu können.

Den ersten DBM-Benutzer legen Sie beim Installieren einer Datenbankinstanz an. Er kann dann weitere DBM-Benutzer anlegen und ihnen alle oder einige seiner eigenen Berechtigungen zuweisen. Beim Zugriff auf die Datenbankinstanz mittels Database Manager CLI ist der erste DBM-Benutzer Systemvorschlag. Er wird immer dann verwendet, wenn kein Benutzer angegeben wird.

Name und Kennwort der DBM-Benutzer werden vom Database Manager immer in Großbuchstaben abgelegt. Sie dürfen jeweils maximal 18 Zeichen (UNICODE: 9 Zeichen) lang sein. Sonderzeichen sind nicht zulässig.

In der Regel sind Database Manager-Benutzer keine Datenbankbenutzer. Sie können sich deshalb beispielsweise nicht an die Query Tools oder das Programm Loader anmelden, da nur Datenbankbenutzer mit diesen Programmen arbeiten können.

Einzige Ausnahmen von dieser Regel sind

· der erste DBM-Benutzer
Er hat ausschließlich beim Zugriff auf eine Datenbankinstanz mittels Database Manager CLI auch diverse Rechte eines Datenbankbenutzers, darf jedoch keine weiteren Datenbankbenutzer anlegen.

· der Datenbanksystemadministrator (SYSDBA-Benutzer).
Er ist der erste Datenbankbenutzer mit allen Rechten und hat auch die Rechte eines DBM-Benutzers.

Verwalten der Database Manager-Benutzer

Verwenden Sie zum Verwalten der Database Manager-Benutzer den Database Manager.

Database Manager GUI, Verwalten der Database Manager-Benutzer

Database Manager CLI, Verwalten der DBM-Benutzer


Eigenschaften eines DBM-Benutzers (MaxDB: Datenbankverwaltung)

Eigenschaften eines DBM-Benutzers

Die Eigenschaften eines DBM-Benutzers können verändert werden. Ein DBM-Benutzer kann in Abhängigkeit von den ihm zugewiesenen Serverberechtigungen weitere DBM-Benutzer anlegen. Er kann neuen DBM-Benutzern Berechtigungen zuweisen und die Berechtigungen vorhandener DBM-Benutzer ändern.

Der während des Anlegens einer Datenbankinstanz angelegte erste Database Manager-Benutzer erhält alle Serverberechtigungen.

Sein Benutzerkennwort ist nicht änderbar.

Folgende Eigenschaften können für einen DBM-Benutzer definiert werden:

Eigenschaft | Beschreibung
PASSWORD | Kennwort des Benutzers
COMMENT | Kommentar, der den Benutzer näher beschreibt
DISABLED | Der Benutzer ist gesperrt.
SECONDPASSWORD | Zweites Kennwort, um zeitweise anderen Personen eine Arbeit mit dem Benutzerkonto zu erlauben, ohne dass dazu das Originalkennwort weitergegeben oder geändert werden muss (z. B. für Supportzwecke)
SERVERRIGHTS | Berechtigungen für das Programm DBM-Server und damit für das Ausführen von Aktionen im Database Manager, u. a. Verwalten der DBM-Benutzer (Siehe auch: Serverberechtigungen)

Um einem DBM-Benutzer die gewünschten Eigenschaften und Berechtigungen zuzuweisen, verwenden Sie den Database Manager.

Database Manager GUI, Ändern der Benutzereigenschaften, Ändern der Serverberechtigungen

Database Manager CLI, Ändern der DBM-Benutzerdaten


Serverberechtigungen (MaxDB: Datenbankverwaltung)

Serverberechtigungen

Um die Funktionen des Database Manager ausführen zu können, benötigt der Database Manager-Benutzer (DBM-Benutzer) die entsprechenden Berechtigungen, um auf den DBM-Server und damit das Programm Database Manager zugreifen zu können:

Berechtigung | Bezeichnung im Database Manager GUI | Bezeichnung im Database Manager CLI
Anzeigen von Zustandsinformationen | Request status data | DBInfoRead
Ausführen des Programms LOAD | Execute the LOAD program | ExecLoad
Ausführen von Betriebssystemkommandos | Execute operating system commands | SystemCmd
Durchführen von Sicherungen | Saving backups | Backup
Installationsverwaltung | Installation management | InstallMgm
Laden der Systemtabellen | Load the system tables | LoadSysTab
Starten der Datenbankinstanz | Start database instance | DBStart
Stoppen der Datenbankinstanz | Stop database instance | DBStop
Verwalten der DBM-Benutzer | User management | UserMgm
Wiederherstellen von Sicherungen | Restoring backups | Recovery
Zugriff auf Datenbankdateien (nur lesend) | Database file access (read only) | DBFileRead
Zugriff auf Datenbankparameter (geprüftes Schreiben) | Parameter access (checked write) | ParamCheckWrite
Zugriff auf Datenbankparameter (lesend und schreibend) | Parameter access (read and write) | ParamFull
Zugriff auf Datenbankparameter (nur lesend) | Parameter access (read only) | ParamRead
Zugriff auf SQL-Sitzung | Access to SQL session | AccessSQL
Zugriff auf Utility-Sitzung | Access to utility session | AccessUtility


Datenbankbenutzer (MaxDB: Datenbankverwaltung)

Datenbankbenutzer

Datenbankbenutzer können sich an eine Datenbankinstanz anmelden, SQL-Anweisungen geben und mit Datenbankobjekten wie Tabellen, Views und Indizes arbeiten.

Um die Datenbankinstanz zu verwalten und beispielsweise Sicherungen oder Wiederherstellungen durchzuführen, benötigen Sie einen Database Manager-Benutzer. Nur der Datenbanksystemadministrator kann sich als einziger Datenbankbenutzer auch an den Database Manager anmelden.

Das Datenbanksystem unterscheidet verschiedene Datenbankbenutzerklassen. Durch die Zugehörigkeit zu einer Datenbankbenutzerklasse ist definiert, welche Datenbankoperationen ein Datenbankbenutzer ausführen darf.

Es gibt folgende Klassen von Datenbankbenutzern:

· Datenbanksystemadministrator (SYSDBA-Benutzer)

· Datenbankadministrator (DBA-Benutzer)

· DOMAIN-Benutzer

· RESOURCE-Benutzer

· STANDARD-Benutzer

Datenbankbenutzer können zu Benutzergruppen zusammengefasst werden. Das Datenbanksystem unterstützt ein Rollenkonzept.

Verwalten der Datenbankbenutzer

Verwenden Sie zum Verwalten der Datenbankbenutzer die SQL-Anweisungen zur Benutzer-Autorisierung.


Datenbanksystemadministrator (SYSDBA-Benutzer) (MaxDB: Datenbankverwaltung)

Datenbanksystemadministrator (SYSDBA-Benutzer)

Der Datenbanksystemadministrator (SYSDBA-Benutzer) ist der erste Datenbankbenutzer. Sie legen ihn beim Anlegen der Datenbankinstanz an. Danach kann der SYSDBA-Benutzer die Query Tools verwenden, um mit den SQL-Anweisungen zur Benutzer-Autorisierung weitere Datenbankbenutzer oder -Benutzergruppen zu definieren. Er kann Daten und Datenbankprozeduren definieren und anderen Datenbankbenutzern Privilegien für diese Datenbankobjekte gewähren.

Der SYSDBA-Benutzer hat außerdem folgende Eigenschaften:

· Er ist Eigentümer einiger Systemtabellen. Beim Laden der Systemtabellen meldet sich das Ladewerkzeug als SYSDBA-Benutzer an die Datenbankinstanz an.

· Er ist der einzige Datenbankbenutzer, der auch DBM-Benutzer-Rechte hat, und zwar alle Berechtigungen des ersten Database Manager-Benutzers.

Seine Daten werden sowohl im Database Manager als auch innerhalb der Datenbank gespeichert.

Name und Kennwort des Datenbanksystemadministrators werden vom Database Manager immer in Großbuchstaben abgelegt. Sie dürfen jeweils maximal 18 Zeichen (UNICODE: 9 Zeichen) lang sein. Sonderzeichen sind nicht zulässig.

Geben Sie als Benutzernamen nicht die Zeichenfolge SYSDBA an, da dies ein reserviertes SQL-Schlüsselwort ist.

Das Kennwort des SYSDBA-Benutzers ist nach Start der Datenbankinstanz in den Betriebszustand ONLINE mit Hilfe der ALTER PASSWORD-Anweisung änderbar. Sie können auch den Database Manager GUI zur Kennwortänderung verwenden (Ändern eines Benutzerkennworts).


Datenbankadministrator (DBA-Benutzer) (MaxDB: Datenbankverwaltung)

Datenbankadministrator (DBA-Benutzer)

Ein Datenbankadministrator (DBA-Benutzer) ist ein Datenbankbenutzer. Er muss vom SYSDBA-Benutzer angelegt werden, z.B. mit der CREATE USER-Anweisung in einem Query Tool.

Ein DBA-Benutzer kann selbst weitere Datenbankbenutzer der Klassen RESOURCE und STANDARD anlegen. Er kann Datenbankobjekte und Datenbankprozeduren definieren und anderen Datenbankbenutzern alle oder einen Teil seiner Privilegien für diese Datenbankobjekte gewähren. Außerdem kann er Datenbankbenutzer mit identischen Zugriffsrechten in Benutzergruppen zusammenfassen.


DOMAIN-Benutzer (MaxDB: Datenbankverwaltung)

DOMAIN-Benutzer

Der DOMAIN-Benutzer ist ein spezieller DBA-Benutzer. Er ist Eigentümer von Systemtabellen des Datenbankkatalogs.

Wie der SYSDBA-Benutzer wird auch der DOMAIN-Benutzer beim Installieren einer Datenbankinstanz angelegt. Er erhält dabei vom System automatisch den Benutzernamen DOMAIN und das gleiche Benutzerkennwort wie der SYSDBA-Benutzer. Das Benutzerkennwort des DOMAIN-Benutzers lässt sich anschließend ändern.


RESOURCE-Benutzer (MaxDB: Datenbankverwaltung)

RESOURCE-Benutzer

RESOURCE-Benutzer sind Datenbankbenutzer, die sowohl vom SYSDBA-Benutzer als auch von DBA-Benutzern angelegt werden können.

RESOURCE-Benutzer können Daten und Datenbankprozeduren definieren und anderen Datenbankbenutzern ihre Privilegien für diese Datenbankobjekte gewähren.


STANDARD-Benutzer (MaxDB: Datenbankverwaltung)

STANDARD-Benutzer

STANDARD-Benutzer sind Datenbankbenutzer, die vom SYSDBA-Benutzer oder von DBA-Benutzern angelegt werden können.

STANDARD-Benutzer können nur auf Daten und Datenbankprozeduren zugreifen, die von anderen Datenbankbenutzern definiert wurden und für die sie die Privilegien erhalten haben.

STANDARD-Benutzer können selbst Views, Synonyme und temporäre Tabellen definieren.


Benutzergruppen (MaxDB: Datenbankverwaltung)

Benutzergruppen

Der Datenbanksystemadministrator (SYSDBA-Benutzer) oder ein Datenbankadministrator (DBA-Benutzer) kann Datenbankbenutzer zu Benutzergruppen zusammenfassen.

Eine Benutzergruppe kann entweder der Datenbankbenutzerklasse RESOURCE oder der Datenbankbenutzerklasse STANDARD zugeordnet sein.

Alle Datenbankobjekte, die von den Mitgliedern einer Benutzergruppe definiert werden, sind durch den Namen dieser Benutzergruppe identifiziert. Eigentümer eines solchen Datenbankobjekts ist die Benutzergruppe und nicht der einzelne Datenbankbenutzer. Jedes Mitglied einer Benutzergruppe kann jedoch mit den Datenbankobjekten seiner Benutzergruppe so arbeiten, als wäre es der Eigentümer dieser Datenbankobjekte.

Privilegien können nur der Benutzergruppe insgesamt und nicht einzelnen Mitgliedern gewährt oder entzogen werden.

Informationen zur Syntax der SQL-Anweisungen für die Benutzergruppenverwaltung finden Sie im Referenzhandbuch unter Autorisierung.


Sicherheitskonzepte (MaxDB: Datenbankverwaltung)

Sicherheitskonzepte

Beachten Sie folgende Hinweise zur Sicherheit Ihres Datenbanksystems:

· Eine hohe Ausfallsicherheit können Sie durch den Einsatz fehlertoleranter Hardware und Software, entsprechende Log-Einstellungen und High Availability-Strategien wie Schattendatenbanken und Hot Standby erreichen.

· Um die Datenbestände entsprechend der Sicherungsstrategie zu sichern und im Fehlerfall wiederherzustellen, stehen komfortable Datenbankwerkzeuge wie der Database Manager zur Verfügung.

· Einige Inkonsistenzen werden beim Restart der Datenbankinstanz automatisch korrigiert.

· Durch das regelmäßige Prüfen der Datenbankstrukturen können Sie fehlerhafte Datenbankstrukturen (B*-Bäume) feststellen. Bei schwerwiegenden Inkonsistenzen muss die Datenbankinstanz wie nach einem Plattenfehler wiederhergestellt werden.

Siehe auch:

SAP-Sicherheitsleitfaden: MaxDB


Ausfallsicherheit (MaxDB: Datenbankverwaltung)

Ausfallsicherheit

Die Ausfallsicherheit einer Datenbankinstanz kann durch die Ausnutzung entsprechender Hardware-, Betriebssystem- oder Datenbankeigenschaften erhöht werden. Beachten Sie folgende Punkte:

· Jeder Volume-Typ sollte auf einer anderen Platte liegen.

· In einem Produktivsystem sollte der Log-Bereich immer mit hardwarebasierten Möglichkeiten gespiegelt werden. Setzen Sie RAID-5- oder RAID-1-Systeme ein. Achten Sie auf eine gute Schreib-Performance des RAID-Controllers sowie darauf, dass ein Cache auch bei einem Stromausfall noch auf die Platte gesichert wird.

· Wenn eine hardwarebasierte Spiegelung nicht möglich ist, dann können Sie den Log-Modus der Datenbankinstanz so einstellen, dass die Spiegelung softwarebasiert erfolgt.

· Nutzen Sie den normalen Log-Sicherungsbetrieb, d.h. erlauben Sie kein Überschreiben des Log-Bereichs.

Um zu gewährleisten, dass immer genügend Platz zum Schreiben der Log-Einträge vorhanden ist, führen Sie regelmäßig Log-Sicherungen durch.

· Lassen Sie die Redo-Log-Verwaltung immer eingeschaltet.

· Wenn Sie einen hohen Sicherheitsstandard gewährleisten wollen, empfehlen wir den Einsatz von RAID-5- oder RAID-1 Konfigurationen für den Datenbereich. Ein Plattenausfall und -austausch führt dann nicht zu Beeinträchtigungen des Datenbankbetriebs, wenn das RAID-System ein entsprechendes Wiederherstellungsverfahren durchführen kann.

· Bei Produktivsystemen auf UNIX sollten Data- und Log-Volumes auf Raw-Devices liegen. Raw-Devices sind in Bezug auf ihr Performance-Verhalten besser und im Fall eines Systemausfalls sicherer zu kontrollieren.

· Beim Einsatz fehlertoleranter Hardware ist es sinnvoll, Kapazitätserweiterungen nur mit gleichartiger Hardware vorzunehmen, d. h. RAID-5-Systeme sollten nur mit RAID-5-Systemen erweitert werden und Spiegelplatten nur mit Spiegelplatten.

Siehe auch:

High Availability


Log-Einstellungen (MaxDB: Datenbankverwaltung)

Log-Einstellungen

Folgende Log-Einstellungen sind möglich:

· Log-Modus: Mit der entsprechenden Einstellung des Log-Modus können Sie den Log-Bereich softwarebasiert spiegeln.

· Überschreibmodus für den Log-Bereich: Sie können den Überschreibmodus so einstellen, dass der Log-Bereich auch ohne vorherige Sicherungen der Log-Einträge zyklisch überschrieben wird.

· Redo-Log-Verwaltung ein- oder ausschalten: Sie können für sehr spezielle Situationen die Redo-Log-Verwaltung zeitweise ausschalten, so dass keine Redo-Log-Einträge mehr geschrieben werden. Ein Ausschalten der Redo-Log-Verwaltung führt jedoch zu sehr großen Sicherheitsdefiziten und sollte daher nur in Ausnahmesituationen erwogen werden.

Mehr Informationen zum Logging finden Sie in der Dokumentation Hintergrundwissen.


Log-Modus (MaxDB: Datenbankverwaltung)

Log-Modus

Mit Hilfe dieser Log-Einstellung können Sie einstellen, dass der Log-Bereich softwarebasiert gespiegelt wird. Verwenden Sie diese Einstellung, wenn keine hardwarebasierte Spiegelung möglich ist, um die Ausfallsicherheit Ihrer Datenbankinstanz zu erhöhen.

Da die softwarebasierte Spiegelung die Performance Ihres Datenbanksystems vermindert, ist es ratsam, eine hardwarebasierte Spiegelung einzusetzen.

Einfacher Log-Bereich

Die Voreinstellung ist, dass die Datenbankinstanz nur einen Log-Bereich verwendet.

Auch wenn die Datenbankinstanz nur einen Log-Bereich verwendet, kann eine hohe Sicherheit des Datenbanksystems gewährleistet werden, da üblicherweise eine hardwarebasierte Spiegelung durch RAID-5- oder RAID-1-Systeme eingesetzt wird. RAID-Systeme bieten für den produktiven Einsatz bereits ausreichende Betriebssicherheit.

Spiegeln des Log-Bereichs

Wenn die Möglichkeit der hardwarebasierten Spiegelung nicht besteht, können Sie das Spiegeln des Log-Bereichs mit Datenbankmitteln einstellen.

Bei der softwarebasierten Spiegelung verwendet die Datenbankinstanz die beiden Log-Bereiche wie folgt:

· Beide Log-Bereiche werden parallel beschrieben.

· Das Lesen der Log-Einträge beim Restart oder bei der Log-Sicherung erfolgt nur von einem Log-Bereich, dem primären Log-Bereich.

· Im normalen Log-Sicherungsbetrieb können beide Log-Bereiche erst dann überschrieben werden, wenn die Log-Einträge des primären Log-Bereichs gesichert wurden.

· Bei Zugriffsproblemen auf den primären oder sekundären Log-Bereich wird das betroffene Log-Volume als BAD markiert und die Datenbankinstanz in den Betriebszustand OFFLINE überführt.

· Das defekte Log-Volume eines Log-Bereichs kann im Betriebszustand ADMIN wiederhergestellt werden (siehe dazu z.B. Wiederherstellen eines gespiegelten Log-Volume). Dabei wird der komplette Inhalt des entsprechenden Log-Volumes aus dem anderen Log-Bereich in das defekte Log-Volume kopiert. Damit ist gesichert, dass nach einem Plattenfehler, bei dem der Inhalt eines Log-Volume zerstört wurde, die Datenbankinstanz nicht wiederhergestellt werden muss, da der Inhalt des Log-Volumes gespiegelt war.

Vorgehensweise

Um die erforderlichen zusätzlichen Log-Volumes zu konfigurieren und damit den Log-Modus einzustellen, verwenden Sie den Database Manager.

Database Manager GUI, Log-Einstellungen ändern

Database Manager CLI, Ändern von Volume-Parametern


Überschreibmodus für den Log-Bereich (MaxDB: Datenbankverwaltung)

Überschreibmodus für den Log-Bereich

Mit dieser Log-Einstellung können Sie steuern, ob der Log-Bereich ohne Sicherung der Log-Einträge zyklisch überschrieben werden soll.

Normaler Log-Sicherungsbetrieb

Die Voreinstellung ist, dass ein Überschreiben des Log-Bereichs erst dann möglich ist, wenn die entsprechenden Log-Einträge gesichert wurden. Sie müssen daher regelmäßig Log-Sicherungen durchführen.

Im Wiederherstellungsfall stehen damit die Log-Einträge des Log-Bereichs und der Log-Sicherungen zur Verfügung. Sie können die Datenbank bis zu einem gewünschten Zeitpunkt anhand der Datensicherung und der Log-Sicherungen und den Log-Einträgen im Log-Bereich wiederherstellen, sofern diese vollständig und lückenlos vorhanden sind.

Wenn der Überschreibmodus eingeschaltet war und Sie wieder zum normalen Log-Sicherungsbetrieb wechseln, müssen Sie anschließend eine vollständige Datensicherung durchführen.

Überschreiben des Log-Bereichs ohne Log-Sicherung

Der Log-Bereich wird zyklisch überschrieben. Eine Sicherung der Log-Einträge ist nicht erforderlich.

Die Log-Sicherungshistorie wird dadurch unterbrochen. Im Wiederherstellungsfall stehen nur die im Log-Bereich vorhandenen Log-Einträge zur Verfügung. In der Regel bedeutet das, dass Sie Ihre Datenbankinstanz nicht bis zum letzten COMMIT vor dem Datenbankabsturz oder bis zu einem anderen beliebigen Zeitpunkt, sondern nur den Zustand zum Zeitpunkt der Datensicherung wiederherstellen können.

Sie können die Datenbank nur dann bis zu einem gewünschten Zeitpunkt wiederherstellen, wenn sich die nach der Datensicherung geschriebenen Log-Einträge noch vollständig und lückenlos im Log-Bereich befinden, d.h. der Log-Bereich seit dem Zeitpunkt der Datensicherung noch nicht überschrieben wurde.

Sie sollten den Überschreibmodus nur dann einschalten, wenn es für Ihre Systemsicherheit ausreichend ist, dass Sie das System gegebenenfalls nur auf dem Stand der letzten vorhandenen Datensicherung wiederherstellen können.

Vorgehensweise

Um den Überschreibmodus einzustellen, verwenden Sie z.B. den Database Manager GUI, Log-Einstellungen ändern.


Redo-Log-Verwaltung ein- oder ausschalten (MaxDB: Datenbankverwaltung)

Redo-Log-Verwaltung ein- oder ausschalten

Eine mögliche Log-Einstellung ist das Ein- oder Ausschalten der Redo-Log-Verwaltung. Die Voreinstellung ist, dass die Redo-Log-Verwaltung eingeschaltet ist.

Die Redo-Log-Verwaltung sollte nur in seltenen Spezialfällen und dann nur zeitlich begrenzt ausgeschaltet werden.

Ein Ausschalten der Redo-Log-Verwaltung bedeutet, dass der Log-Writer keine Redo-Log-Einträge mehr in den Log-Bereich schreibt. Dadurch wird die Log-Sicherungshistorie unterbrochen, d. h. wenn eine Wiederherstellung notwendig wird, stehen für diesen Zeitraum keine Log-Einträge zur Verfügung. In seltenen Fällen kann es sinnvoll sein, die Redo-Log-Verwaltung auszuschalten, zum Beispiel bei der Initialisierung einer Datenbankinstanz.

Vorgehensweise

...

1. Versetzen Sie die Datenbankinstanz in den Betriebszustand ADMIN.

2. Um die Redo-Log-Verwaltung ein- oder auszuschalten, verwenden Sie z. B. den Database Manager GUI wie in Log-Einstellungen ändern beschrieben.

3. Wenn die Redo-Log-Verwaltung ausgeschaltet war und erneut eingeschaltet wird, müssen Sie anschließend eine vollständige Datensicherung durchführen.


Sichern (MaxDB: Datenbankverwaltung)

Sichern

Entsprechend der Sicherungsstrategie sollten Sie regelmäßig folgende Sicherungen durchführen:

· Datensicherungen

· Log-Sicherungen

Sicherungen können immer auf ein einzelnes Sicherungsmedium, Datensicherungen können auch auf eine Gruppe paralleler Sicherungsmedien erfolgen.

Beachten Sie die Namenskonventionen für Sicherungsmedien.

Jede Sicherung erhält automatisch eine eindeutige Sicherungskennung.


Sicherungsstrategie (MaxDB: Datenbankverwaltung)

Sicherungsstrategie

Ein wesentlicher Bestandteil des Sicherheitskonzepts für Ihr Datenbanksystem sind regelmäßige Sicherungen Ihrer Datenbestände.

Sie können Ihre Sicherungsstrategie an den folgenden Empfehlungen ausrichten:

· Führen Sie an jedem produktiven Tag eine vollständige Datensicherung durch.

· Wenn Sie keine tägliche vollständige Datensicherung durchführen können oder wollen, sollten Sie zumindest an jedem produktiven Tag eine inkrementelle Datensicherung durchführen.

Beachten Sie, dass im Wiederherstellungsfall um so weniger Log-Einträge nachgefahren werden müssen, je aktueller die letzte zur Verfügung stehende Datensicherung ist.

· Schalten Sie die automatische Log-Sicherung (Autosave-Log-Mechanismus) ein.

· Wenn Sie die automatische Log-Sicherung nicht verwenden, dann sollten Sie regelmäßig überprüfen, ob im Log-Bereich ausreichend Speicherplatz vorhanden ist, und mindestens an jedem produktiven Tag eine interaktive Log-Sicherung durchführen.

Wenn aufgrund von Speicherplatzmangel im Log-Bereich keine neuen Log-Einträge geschrieben werden können, kommt es zu einem Datenbanksystemstillstand.

· Archivieren Sie die Versionsdateien der Log-Sicherungen regelmäßig auf ein Medium Ihrer Wahl. Sie können nach erfolgreicher Archivierung die archivierten Versionsdateien löschen und damit gewährleisten, dass im Verzeichnis für die Versionsdateien stets genügend Platz vorhanden ist.

· Bänder mit Sicherungen sollten nicht gleich mit der nächsten Sicherung wieder überschrieben werden. Durch Erhalt der letzten – beispielsweise vier – Sicherungsgenerationen bleibt die Möglichkeit bestehen, bei einem Medienfehler gegebenenfalls auf eine ältere Sicherung zurückzugreifen.


Datensicherung (MaxDB: Datenbankverwaltung)

Datensicherung

Bei einer Datensicherung sichern Sie Inhalte der Data-Volumes sowie die für eine Wiederherstellung notwendigen Datenbankparameter auf das von Ihnen angegebene Sicherungsmedium.

Es werden folgende Datensicherungsarten unterschieden:

· Bei einer vollständigen Datensicherung werden alle Seiten der Data-Volumes gesichert.

· Bei einer inkrementellen Datensicherung werden alle seit der letzten vollständigen Datensicherung geänderten Seiten der Data-Volumes gesichert.

Vollständige und inkrementelle Datensicherungen können Sie im Betriebszustand ONLINE oder ADMIN durchführen. Dabei können Sie auch auf eine Gruppe paralleler Sicherungsmedien sichern. Die Datensicherungen sind stets in sich konsistent.

Im Fehlerfall benötigen Sie zusätzlich zu den Datensicherungen eventuell auch Log-Sicherungen, um den gewünschten Zustand der Datenbankinstanz wiederherzustellen.

Während einer vollständigen Datensicherung können Sie keine inkrementelle Datensicherung starten.

Vorgehensweise

Verwenden Sie zum Sichern den Database Manager oder in SAP-Systemen den DBA-Einplanungskalender.

Database Manager GUI, Abschnitt Sicherungsverfahren

Database Manager CLI, Abschnitt Kommandos zum Sichern

Datenbankverwaltung im CCMS: MySQL MaxDB, [image] DBA-Einplanungskalender

Datenbankverwaltung im CCMS: SAP liveCache, [image] liveCache sichern


Log-Sicherung (MaxDB: Datenbankverwaltung)

Log-Sicherung

Bei einer Log-Sicherung wird der Inhalt des Log-Bereichs in Versionsdateien kopiert oder mit Hilfe eines externen Sicherungswerkzeugs gesichert.

Bei Verwenden von Versionsdateien wird für jedes Log-Segment des Log-Bereichs eine Versionsdatei erzeugt.

Der von den gesicherten Log-Einträgen ursprünglich belegte Platz im Log-Bereich wird nach der Log-Sicherung wieder zum Überschreiben freigegeben.

Es werden folgende Möglichkeiten der Log-Sicherung unterstützt:

· Automatische Log-Sicherung

· Interaktive Log-Sicherung


Automatische Log-Sicherung (MaxDB: Datenbankverwaltung)

Automatische Log-Sicherung

Zur Gewährleistung der Sicherheit und Verfügbarkeit von Daten in Ihrer Datenbankinstanz empfiehlt sich die automatische Log-Sicherung.

Bei eingeschalteter automatischer Log-Sicherung wird ein Log-Segment des Log-Bereichs gesichert, sobald es vollgeschrieben ist. Anschließend wird dieses Log-Segment wieder zum Überschreiben freigegeben. Durch diesen Mechanismus ist ein Überlaufen des Log-Bereichs nahezu ausgeschlossen.

Besonders empfehlenswert ist das Aktivieren der automatischen Log-Sicherung bei allen Datenbankinstanzen, in denen viele Änderungen an den Datenbeständen durchgeführt werden und dadurch mit einem hohen Aufkommen von Log-Einträgen zu rechnen ist. Auf diese Weise muss der Füllungsgrad des Log-Bereichs nicht ständig überwacht werden.

Automatische Log-Sicherungen können Sie nur im Betriebszustand ONLINE ausführen. Als Sicherungsmedium sind nur Versionsdateien erlaubt. Diese müssen regelmäßig archiviert werden (siehe Sichern).

Solange die automatische Log-Sicherung eingeschaltet ist, können Sie keine interaktive Log-Sicherung starten. Sie können jedoch gleichzeitig eine Datensicherung durchführen.

Vorgehensweise

Verwenden Sie zum Ein- und Ausschalten der automatischen Log-Sicherung den Database Manager oder in SAP-Systemen den DBA-Einplanungskalender.

Database Manager GUI, Ein- und Ausschalten der automatischen Log-Sicherung

Database Manager CLI, Sichern der Datenbankinstanz

Datenbankverwaltung im CCMS: MySQL MaxDB, [image] Automatische Log-Sicherung aktivieren

Datenbankverwaltung im CCMS: SAP liveCache, [image] liveCache sichern


Interaktive Log-Sicherung (MaxDB: Datenbankverwaltung)

Interaktive Log-Sicherung

Mit der interaktiven Log-Sicherung sichern Sie alle Seiten des Log-Bereichs, die seit der letzten Log-Sicherung geschrieben wurden.

Für den Fall, dass Sie die Log-Einträge in Versionsdateien sichern, wird auch für das letzte eventuell noch nicht gefüllte Log-Segment eine Versionsdatei erzeugt.

Interaktive Log-Sicherungen können Sie im Betriebszustand ONLINE oder ADMIN ausführen.

Solange eine interaktive Log-Sicherung läuft, können Sie keine andere Sicherung durchführen.

Voraussetzung

Von der aktuellen Datenbankinstanz ist bereits einmal eine vollständige Datensicherung erstellt worden.

Vorgehensweise

Verwenden Sie für interaktive Log-Sicherungen den Database Manager oder in SAP-Systemen den DBA-Einplanungskalender.

Database Manager GUI, Abschnitt Sicherungsverfahren

Database Manager CLI, Kommandos zum Sichern und Archivieren

Datenbankverwaltung im CCMS: MySQL MaxDB, [image] DBA-Einplanungskalender

Datenbankverwaltung im CCMS: SAP liveCache, [image] liveCache sichern


Versionsdateien der Log-Sicherung (MaxDB: Datenbankverwaltung)

Versionsdateien der Log-Sicherung

Bei einer Log-Sicherung wird der Inhalt des Log-Bereichs in Dateien kopiert. Für jedes Log-Segment wird dabei eine Versionsdatei erzeugt. Die Namen der erzeugten Versionsdateien setzen sich aus dem bei der Definition des Sicherungsmediums angegebenen Dateinamen und einer vom Datenbanksystem vergebenen fortlaufenden Nummer zusammen.

Entsprechend der vorgeschlagenen Sicherungsstrategie sollten Sie die Versionsdateien in regelmäßigen Abständen archivieren. Kopieren Sie sie dazu manuell oder mit Hilfe externer Sicherungswerkzeuge auf ein anderes Sicherungsmedium.

Versionsdateien archivieren

Um die Versionsdateien mit Hilfe externer Sicherungswerkzeuge zu archivieren, verwenden Sie den Database Manager CLI.

Database Manager CLI, Archivieren der Versionsdateien des Log-Bereichs


Sicherungshistorie (MaxDB: Datenbankverwaltung)

Sicherungshistorie

In der Sicherungshistorie werden die Informationen zu allen erfolgten Aktionen zum Sichern und Wiederherstellen der Datenbankinstanz chronologisch registriert.

Die Sicherungshistorie wird vom System in die Protokolldatei dbm.knlgeschrieben. Diese steht im Arbeitsverzeichnis der Datenbankinstanz.

Sicherungshistorie anzeigen

Verwenden Sie zum Anzeigen der Sicherungshistorie den Database Manager oder in SAP-Systemen den Datenbankassistenten.

Database Manager GUI, Sicherungshistorie anzeigen

Database Manager CLI, Kommandos zur Sicherungshistorie

Datenbankverwaltung im CCMS, [image] Ergebnis einer Aktion


Sicherungskennung (MaxDB: Datenbankverwaltung)

Sicherungskennung

Jede Sicherung erhält zu ihrer Identifizierung eine vom Datenbanksystem automatisch vergebene Sicherungskennung. Diese dient der eindeutigen Identifizierung der Sicherung seit dem Anlegen oder dem letzten Initialisieren der Datenbankinstanz. Wenn Sie externe Sicherungswerkzeuge verwenden, dann erhält die Sicherung eine externe Sicherungskennung.

Die Sicherungskennung enthält die Sicherungsart <save_type> (vollständige oder inkrementelle Datensicherung oder Log-Sicherung) und eine Sequenznummer <sequence_no>. Datensicherungen werden unabhängig davon, ob sie vollständig oder inkrementell sind, fortlaufend nummeriert. Log-Sicherungen werden separat durchgezählt.

Die Sicherungskennung wird nach dem Sichern in die Protokolldatei des Database Manager dbm.knlgeschrieben. Der Inhalt dieser Datei wird in der Sicherungshistorie vollständig angezeigt. Beim Wiederherstellen können Sie die Sicherungshistorie mit dem Database Manager ansehen und die gewünschte Sicherung anhand ihrer Sicherungskennung auswählen.

Wenn das verwendete Sicherungsmedium ein Band ist, empfiehlt es sich, die Sicherungskennung am Ende der Sicherung auf das Etikett des Bandes zu schreiben.

Formale Beschreibung der Sicherungskennung

<backup_id> ::= <save_type>_<sequence_no>

<save_type> ::= DAT | PAG | LOG

<sequence_no> ::= <number>


Externe Sicherungskennung (MaxDB: Datenbankverwaltung)

Externe Sicherungskennung

Während des Sicherns oder des Entladens von Daten mit Hilfe eines externen Sicherungswerkzeugs erhält jede Sicherung oder jeder Datenstrom eine externe Sicherungskennung. Wenn eine Sicherung auf eine Gruppe paralleler Sicherungsmedien erstellt wurde, dann hat jeder Teil dieser Sicherung eine eigene externe Sicherungskennung.

Vom Database Manager wird die externe Sicherungskennung in die Protokolldateien des Database Manager dbm.knl und dbm.ebfgeschrieben und in der Sicherungshistorie angezeigt.

Vom Loader wird die externe Sicherungskennung in die Protokolldatei des Loader und in die Loader-relevanten Systemtabellen geschrieben.

Die externe Sicherungskennung wird beim Laden von Daten oder beim Wiederherstellen benötigt, um die gewünschte Sicherung oder den gewünschten Datenstrom anzufordern.


Sicherungsmedium (MaxDB: Datenbankverwaltung)

Sicherungsmedium

Zum Sichern und Wiederherstellen benötigen Sie ein Sicherungsmedium, auf das die Sicherung geschrieben oder von dem die Sicherung wieder eingelesen wird. Ein Sicherungsmedium kann eine Datei, ein Band, ein Autoloader oder eine Pipe sein.

Definieren Sie die Sicherungsmedien für jede Datenbankinstanz gesondert. Sie können mehrere Sicherungsmedien zu einer Gruppe paralleler Sicherungsmedien zusammenfassen.

Empfohlene Sicherungsmedien

Beachten Sie folgende Punkte:

· Empfohlenes Sicherungsmedium für Datensicherungen ist das Band oder der Autoloader. Sie können die Daten aber auch auf Pipes oder Dateien sichern.

· Für Log-Sicherungen sind als Medientyp ausschließlich Dateien erlaubt; es werden automatisch Versionsdateien erzeugt.

· Pipes sollten Sie nur in Kombination mit einem externen Sicherungswerkzeug verwenden.

· Befolgen Sie die Namenskonventionen für Sicherungsmedien.

· Dateien und Versiondateien sollten Sie aus Sicherheitsgründen auf ein separates Medium archivieren.

Berücksichtigen Sie die Empfehlungen des Herstellers zur Benutzungshäufigkeit der Sicherungsmedien.

Definieren von Sicherungsmedien

Verwenden Sie zum Definieren der Sicherungsmedien den Database Manager oder in SAP-Systemen den Datenbankassistenten.

Database Manager GUI, Abschnitt Verwalten der Sicherungsmedien

Database Manager CLI, Kommandos zu Sicherungsmedien

Datenbankverwaltung im CCMS: MySQL MaxDB, [image] Sicherungsmedien

Datenbankverwaltung im CCMS: SAP liveCache, [image] Sicherungsmedien


Gruppe paralleler Sicherungsmedien (MaxDB: Datenbankverwaltung)

Gruppe paralleler Sicherungsmedien

Um Sicherungs- und Wiederherstellungsaktionen zu beschleunigen, können Sie auf mehrere Sicherungsmedien parallel sichern und von parallelen Sicherungsmedien wiederherstellen. Sie definieren dazu eine Gruppe paralleler Sicherungsmedien, die unter einem Mediennamen zusammengefasst werden.

Der allgemeine Datenbankparameter MAXBACKUPDEVS gibt die maximal mögliche Anzahl paralleler Dateien oder Bandgeräte in einer Gruppe paralleler Sicherungsmedien an.

Definieren einer Gruppe paralleler Sicherungsmedien

Verwenden Sie zum Definieren einer Gruppe paralleler Sicherungsmedien den Database Manager oder in SAP-Systemen den Datenbankassistenten.

Database Manager GUI, Anlegen einer Gruppe paralleler Sicherungsmedien

Database Manager CLI, Anlegen oder Ändern eines Sicherungsmediums

Datenbankverwaltung im CCMS: MySQL MaxDB, [image] Sicherungsmedien

Datenbankverwaltung im CCMS: SAP liveCache, [image] Sicherungsmedien


Externes Sicherungswerkzeug (MaxDB: Datenbankverwaltung)

Externes Sicherungswerkzeug

Das Sichern und Wiederherstellen, Entladen und Laden von Daten können Sie mit externen Sicherungswerkzeugen und externen Sicherungsmedien durchführen.

Das Datenbanksystem unterstützt die Verwendung folgender externer Sicherungswerkzeuge:

· TSM (IBM/Tivoli)

· NetWorker (Legato)

· alle Sicherungswerkzeuge, die Backint for MaxDB unterstützen

· alle Sicherungswerkzeuge, die Backint for Oracle unterstützen

Dazu gehören zum Beispiel folgende Sicherungswerkzeuge: ARCserve, Backup Express, dbBRZ for R/3, DBVAULT, DoroStore, EASY_BASE, EMC, EPOCH, FDR/UPSTREAM, HIBACK, HSMS-CL Backint, NetBackup, NetVault, NetWorker, Omniback, Seagate Backup, SESAM, Solstice Backup, Sys-Save, TIME NAVIGATOR for R/3, Tivoli

Wenn Sie ein anderes externes Sicherungswerkzeug verwenden wollen, dann setzen Sie sich mit dem Support in Verbindung.

TSM kann je nach Plattform auch über die Backint for Oracle-Schnittstelle angesprochen werden.

Informationen zu den Anforderungen an eine Backint for MaxDB-Schnittstelle finden Sie in der Dokumentation Backint for MaxDB.

Vorgehensweise

· Verwenden Sie zum Sichern und Wiederherstellen der Datenbankinstanz den Database Manager. Beachten Sie beim Definieren der Sicherungsmedien die Namenskonventionen. Die erstellten Sicherungen erhalten eine externe Sicherungskennung.

· Verwenden Sie zum Laden und Entladen von Daten den Loader und verfahren Sie wie in Entladen mit externen Sicherungswerkzeugen bzw. Laden mit externen Sicherungswerkzeugen beschrieben.

· Informationen zum Einrichten der externen Sicherungswerkzeuge finden Sie in der Dokumentation Anschluss externer Sicherungswerkzeuge.


Namenskonventionen für Sicherungsmedien (MaxDB: Datenbankverwaltung)

Namenskonventionen für Sicherungsmedien

Beim Definieren von Sicherungsmedien beachten Sie folgende Namenskonventionen:

· Wenn Sie ein externes Sicherungswerkzeug verwenden, dann müssen die Mediennamen mit festgelegten Buchstabenfolgen beginnen.

Buchstabenfolge | Sicherungswerkzeug
ADSM | TSM (IBM/Tivoli)
BACK | Sicherungswerkzeuge mit den Schnittstellen Backint for Oracle oder Backint for MaxDB
NSR | NetWorker (Legato)

· Wenn sie kein externes Sicherungswerkzeug verwenden, dann wählen Sie einen Mediennamen, der mit keiner dieser Buchstabenfolgen beginnt.


Wiederherstellen (MaxDB: Datenbankverwaltung)

Wiederherstellen

Durch das Einlesen von Sicherungen von einem Sicherungsmedium können Sie eine Datenbankinstanz nach einem Ausfall oder Fehler wiederherstellen oder in einen früheren Zustand zurücksetzen.

In der Regel wird dabei zunächst eine vollständige Datensicherung und dann, falls nötig, zusätzlich inkrementelle Datensicherungen sowie Log-Sicherungen aus der Sicherungshistorie eingelesen. Datensicherungen können Sie von einer Gruppe paralleler Sicherungsmedien einlesen, um die Wiederherstellungszeit zu reduzieren.

Während der Wiederherstellung werden eventuell noch vorhandene Log-Einträge aus dem Log-Bereich gelesen. Unter Umständen kann also vor dem eigentlichen Wiederherstellungsvorgang ein Initialisieren der Datenbankinstanz erforderlich sein, um das Löschen der Log-Einträge im Log-Bereich zu erzwingen. Anschließend können Sie die gewünschten Sicherungen einspielen.

Vorgehensweise

Verwenden Sie zum Wiederherstellen den Database Manager.

Database Manager GUI, Wiederherstellen von Daten

Database Manager CLI, Kommandos zum Wiederherstellen

Anschließend ist eventuell das Wiederherstellen von Indizes notwendig.

Database Manager GUI, Wiederherstellung der Indizes nach Datenbankwiederherstellung

Database Manager CLI, Wiederherstellen eines beschädigten Index


Savepoint (MaxDB: Datenbankverwaltung)

Savepoint

Das System führt in regelmäßigen Abständen eine Sicherungsaktion der wichtigsten Datenbankinformationen, sogenannte Savepoints, durch.

Dabei werden alle im Data-Cache gehaltenen geänderten Seiten aus dem Cache in den Datenbereich geschrieben.

Im Data-Cache befinden sich unter anderem auch die Undo-Log-Dateien, die z. B. dem Zurückrollen nicht abgeschlossener Transaktionen bei einem Restart dienen.

Siehe auch Logging in der Dokumentation Hintergrundwissen


Restart (MaxDB: Datenbankverwaltung)

Restart

Bei einem Restart werden anhand der Informationen aus dem letzten Savepoint und der Log-Einträge die Effekte abgeschlossener Transaktionen auf den Data-Volumes nachgezogen (ROLL FORWARD) und die Effekte offener Transaktionen rückgängig gemacht (ROLLBACK). Geänderte Datenbankparameter werden nach dem Restart wirksam.

Wenn ein Datenbankausfall (z.B. bei Stromausfall) eintritt und die Volumes der Datenbankinstanz voll funktionsfähig waren, dann führt das Datenbanksystem einen Restart durch.

Siehe auch die Erläuterungen zur Verwendung der Log-Einträge bei Restart oder Wiederherstellung in der Dokumentation Hintergrundwissen


Prüfen der Datenbankstrukturen (MaxDB: Datenbankverwaltung)

Prüfen der Datenbankstrukturen

Um die Datenbankstrukturen Ihrer Datenbankinstanz zu prüfen, haben Sie folgende Möglichkeiten:

· Prüfen der Datenbankstrukturen für alle Tabellen und Indizes (CHECK DATA)

· Prüfen der Datenbankstrukturen für ausgewählte Tabellen (CHECK TABLE)

Datenbankstrukturprüfungen sind sehr zeitaufwändig. Planen Sie daher eine Datenbankstrukturprüfung möglichst nur zu den Zeiten ein, zu denen das Datenbanksystem wenig ausgelastet ist (z.B. an den Wochenenden).

Sie sollten Datenbankstrukturprüfungen so selten wie möglich durchführen, allerdings mindestens eine Prüfung innerhalb einer Sicherungshistorie. Stellen Sie also sicher, dass Sie eine Sicherung erst dann aus der Sicherungshistorie entfernen, wenn nach Erstellen der Sicherung eine Datenbankstrukturprüfung durchgeführt wurde.

Prüfen der Datenbankstrukturen für alle Tabellen und Indizes (CHECK DATA)

Diese Datenbankstrukturprüfung kann im Betriebszustand ADMIN oder ONLINE erfolgen. Es werden die B*-Bäume der Tabellen und Indizes überprüft. Für den Datenbankinstanztyp liveCache werden zusätzlich die entsprechenden liveCache-Strukturen überprüft.

Wenn im ONLINE-Betrieb der Datenbankinstanz eine als BAD markierte Datenseite mehrmals gefunden wird, wird der zugehörige B*-Baum bzw. die entsprechende liveCache-Struktur als BAD markiert. Dieser Zustand kann durch das Prüfen der Datenbankstruktur bereinigt werden.

Wenn das Prüfen der Datenbankstruktur im Betriebszustand ADMIN erfolgt, werden nach der Überprüfung nicht mehr referenzierte Seiten aus dem Converter ausgetragen.

Vorgehensweise

Database Manager GUI, Abschnitt Datenbankstrukturen prüfen

Datenbankverwaltung im CCMS: MySQL MaxDB, Abschnitt [image] Datenbankstrukturprüfung einplanen

Datenbankverwaltung im CCMS: SAP liveCache, Abschnitt [image] Prüfen der Datenbankstrukturen

Prüfen der Datenbankstruktur für ausgewählte Tabellen (CHECK TABLE)

Diese Datenbankstrukturprüfung kann nur im Betriebszustand ONLINE erfolgen. Es können einzelne Tabellen überprüft werden.

Wenn im ONLINE-Betrieb der Datenbankinstanz eine als BAD markierte Datenseite gefunden wird (und damit ein als BAD markierter B*-Baum), kann dieser Zustand durch das Prüfen der Datenbankstruktur bereinigt werden.

Vorgehensweise

· Prüfen einer Tabelle (OLTP- und liveCache-Instanzen)
Datenbankverwaltung im CCMS, Abschnitt [image] Tabellen/Views

· Prüfen aller Tabellen (nur OLTP-Instanzen)
Datenbankverwaltung im CCMS: MySQL MaxDB, Abschnitt [image] Datenbankstrukturprüfung einplanen


Versionsnotierung (MaxDB: Datenbankverwaltung)

Versionsnotierung

Die Versionsangaben für die Datenbanksoftware erfolgen gemäß der Versionsnotierung
<major>.<minor>.<cl>.<build>

Dabei haben die angegebenen Nummern folgende Bedeutung:

major | einstellige Versionsnummer
minor | einstellige Versionsnummer
cl | zweistelliger Correction-Level
build | zweistellige Build-Nummer

Im technischen Bereich ist auch folgende Schreibweise üblich:
<major>.<minor>.<cl> Build <build>

Dabei wird die Build-Nummer dreistellig angegeben.

7.4.03.30 und 7.4.03 Build 030 bezeichnen die Datenbankversion 7.4, Correction-Level 3, Build-Nummer 30


Technische Spezifikationen (MaxDB: Datenbankverwaltung)

Technische Spezifikationen

Die folgende Tabelle listet Restriktionen und Maximalwerte auf, die für das Datenbanksystem gelten.

Größe der Datenbankinstanz (Summe der Data-Volumes) | 32 TB (Größe einer Seite: 8 KB)
Anzahl der Data-Volumes pro Datenbankinstanz | abhängig vom speziellen Datenbankparameter DEVNO_BIT_COUNT, Vorschlagswert: 256
Größe eines Data-Volume | abhängig von der Anzahl der Data-Volumes, Vorschlagswert: 128 GB
Größe des Log-Bereichs | 32 TB
Maximale Länge einer SQL-Anweisung | ≥ 16 KB (Voreinstellung 64 KB), definiert durch einen Support-Datenbankparameter
Länge eines Bezeichners | 32 Zeichen
Genauigkeit numerischer Werte | 38 Stellen
Anzahl der Tabellen | unbegrenzt
Anzahl der Spalten pro Tabelle (mit KEY) | 1024
Anzahl der Spalten pro Tabelle (ohne KEY) | 1023
Anzahl der Primärschlüsselspalten pro Tabelle | 512
Anzahl der Spalten in einem Index | 16
Anzahl der Trigger pro Basistabelle | 3
Anzahl der Indizes pro Tabelle | 255
Anzahl der referentiellen CONSTRAINT-Definitionen (Fremdschlüsselbeziehungen) pro Tabelle | unbegrenzt
Anzahl der Spalten in einer referentiellen CONSTRAINT-Definition (Fremdschlüsselbeziehung) | 16
Anzahl der Referenzierungen pro Tabelle | unbegrenzt
Summe der internen Längen aller Schlüsselspalten | 1024 Bytes
Summe der internen Längen aller zu einem Index gehörenden Spalten | 1024 Bytes
Interne Länge einer LONG-Spalte | 2 GB
Anzahl der Zeilen pro Tabelle | begrenzt durch die Datenbankgröße
Interne Länge einer Tabellenzeile | 8088 Bytes
Anzahl der Spalten in einer SELECT-Anweisung | 1023
Anzahl der Spalten in einer INSERT-Anweisung | 1024
Anzahl der Spalten in einer Ergebnistabelle | 1023
Anzahl der Join-Tabellen in einer SELECT-Anweisung | 64
Anzahl der Spalten in einer ORDER- oder GROUP-Klausel | 128
Länge der Spalten in einer ORDER- oder GROUP-Klausel | 1020 Bytes
Anzahl der Schachtelungen bei Triggern | unbegrenzt
Anzahl der Schachtelungen bei Subqueries | 127
Anzahl der Join-Bedingungen in einer WHERE-Klausel einer SELECT-Anweisung | 128
Anzahl der Correlated Columns in einer SQL-Anweisung | 64
Anzahl der Correlated Tables in einer SQL-Anweisung | 16
Anzahl der Parameter in einer SQL-Anweisung | 2000


Unterstützte Betriebssysteme und Plattformen (MaxDB: Datenbankverwaltung)

Unterstützte Betriebssysteme und Plattformen

Die Datenbankversion 7.5 unterstützt folgende Betriebssysteme und Plattformen:

· Compaq Tru64 Unix (Alpha)

· HP-UX (HP-PA)

· IBM AIX (pSeries)

· Linux (i386, ia64)

· SUN Solaris (SPARC)

· Windows 2000 (i386)

· Windows XP (i386)

· Windows Server 2003 (i386, ia64)

Der Datenbankinstanztyp SAP liveCache unterstützt Windows XP nicht.


Support (MaxDB: Datenbankverwaltung)

Support

Sie können auf folgenden Wegen Support für Ihr Datenbanksystem erhalten:

· Der Online-Support über die Mailingliste maxdb@lists.mysql.com basiert auf der gegenseitigen Hilfestellung unter MaxDB-Benutzern und ist kostenlos.

In einer E-Mail an diese Mailing-Liste beschreiben Sie Ihre Fragen und Probleme. Sowohl das Datenbankentwicklungsteam als auch Mitglieder der Open-Source-Community können Ihnen darauf antworten.

Der Online-Support garantiert Ihnen keine festen Antwortzeiten. Das Entwicklungsteam beobachtet jedoch ständig die Korrespondenz in der Mailing-Liste.

· Wenn Sie das Datenbanksystem in einer SAP-Anwendung einsetzen, erhalten Sie über den Support-Vertrag mit SAP Zugriff auf die gesamte Support-Infrastruktur der SAP AG.

· Wenn Sie das Datenbanksystem in anderen Anwendungen (nicht SAP-Anwendungen) einsetzen, können Sie einen Support-Vertrag mit MySQL abschließen.

· Wenn Sie das Datenbanksystem sowohl in SAP-Anwendungen als auch in anderen Anwendungen einsetzen, dann erhalten Sie Support für die SAP-Anwendungen von der SAP AG und Support für die anderen Anwendungen von MySQL AB.


Suche nach bekannten Problemen mit Web PTS (MaxDB: Datenbankverwaltung)

Suche nach bekannten Problemen mit Web PTS

Um nach bekannten Fehlern in der MaxDB/SAPDB-Software zu suchen, verwenden Sie das Web-basierte Problem Tracking System (Web PTS).

Das Web PTS ist unter der Adresse http://www.sapdb.org/webpts zu erreichen.

Siehe auch:

Web Based Problem Tracking System


Übersicht der Dokumentation (MaxDB: Datenbankverwaltung)

Übersicht der Dokumentation

Die folgenden Tabellen geben Ihnen einen Überblick über die verfügbare Dokumentation.

Installation

Titel | Erläuterung
Installationsleitfaden Datenbanksoftware | Standardinstallation und -deinstallation der gesamten Datenbanksoftware
Installationsleitfaden Web Tools | Installation der MaxDB Web Tools
Anschluss Externer Sicherungswerkzeuge | Konfiguration der MaxDB-Software für die Verwendung verschiedener externer Sicherungswerkzeuge
Installationshandbuch | Installation, Update und Deinstallation von Installationsprofilen und einzelnen Software-Komponenten der Datenbank; Aktualisierung von Datenbankinstanzen inklusive Software
SAP Web Application Server Installation on UNIX: MySQL MaxDB | Installation eines SAP-Systems auf UNIX, nur für SAP-Kunden verfügbar auf dem SAP Service Marktplatz
SAP Web Application Server Installation on Microsoft Windows: MySQL MaxDB | Installation eines SAP-Systems auf Microsoft Windows, nur für SAP-Kunden verfügbar auf dem SAP Service Marktplatz
SAP Web Application Server: Homogeneous and Heterogeneous System Copy | Kopie des SAP-Systems, nur für SAP-Kunden verfügbar auf dem SAP Service Marktplatz

Grundwissen

Titel der Dokumentation | Erläuterung
Datenbankverwaltung | Einführung in das Datenbanksystem: Architektur, Verzeichnisstruktur, Datenbankparameter, Datenbankwerkzeuge, Benutzer- und Sicherheitskonzepte, Überblick über die Dokumentation, Begriffe usw.
Referenzhandbuch | SQL-Anweisungen und ihre Syntax, Systemtabellen, Besonderheiten im SQL-Modus ORACLE
Meldungen | Liste aller Meldungen
Hintergrundwissen | Hintergrundwissen zum Datenbanksystem, z. B. Log-Konzept, B*-Bäume, Schattendatenbanken
SAP-Sicherheitsleitfaden: MySQL MaxDB | Empfohlene Sicherheitsmaßnahmen für das Datenbanksystem
High Availability for the MySQL MaxDB Database | Bedingungen zur Gewährleistung hoher Verfügbarkeit einer MaxDB-Datenbankinstanz in einem SAP-System
Benutzerhandbuch: SAP liveCache | Hinweise zur Überwachung des SAP liveCache

Werkzeuge

Titel | Erläuterung
Database Manager Database Manager GUI Web DBM Database Manager CLI | Anlegen und Verwalten von Datenbankinstanzen grafische Benutzeroberfläche web-basierte Benutzeroberfläche kommandozeilenorientierte Benutzeroberfläche
Database Analyzer | Analyse der Performance von Datenbankinstanzen
Loader | Laden und Entladen von Daten
Query Tools SQL Studio Web SQL Studio | Datenanfrage und Datenbearbeitung grafische Benutzeroberfläche web-basierte Benutzeroberfläche
WebDAV GUI | Nutzung einer Datenbank als XML-Dokumentablage, Zugriff durch die XML-Dokumente mittels WebDAV, Indizierung

Schnittstellen

Titel | Erläuterung
C-/C++-Precompiler-Handbuch | Beschreibung des C/C++-Precompiler
ODBC-Handbuch | Grundlagen und Besonderheiten des MaxDB-ODBC-Treibers
JDBC-Handbuch | Grundlagen und Besonderheiten des MaxDB-JDBC-Treibers
Perl-Handbuch | Beschreibung der Programmierschnittstellen SQL, Database Manager und Loader für die Programmierung von Datenbankanwendungen mit Hilfe der Skriptsprache Perl
Python-Handbuch | Beschreibung der Programmierschnittstellen SQL, Database Manager und Loader für die Programmierung von Datenbankanwendungen mit Hilfe der Skriptsprache Python
Backint for MaxDB | Beschreibung der Backint for MaxDB-Schnittstelle für externe Sicherungswerkzeuge

Entwicklung

Titel | Erläuterung
Entwicklungsumgebung | Verwendung der Entwicklungsumgebung zum Erstellen von MaxDB-Software
Quelltext für Werkzeuge | Installieren der Quelltexte und Erstellen der Software am Beispiel der Werkzeuge Database Manager GUI und SQL Studio.
Web Based Problem Tracking System | Web-Interface zum Problem Tracking System (PTS) für die Dokumentation von Problemmeldungen zur Datenbanksoftware

Datenbankverwaltung im CCMS

Titel | Erläuterung
Datenbankverwaltung im CCMS: MySQL MaxDB | Analyse und Überwachung einer MaxDB-Datenbankinstanz über das SAP-System, Einplanung von Aktionen, Alert-Monitoring
Datenbankverwaltung im CCMS: SAP liveCache | Analyse und Überwachung einer liveCache-Datenbankinstanz über das SAP-System, Alert-Monitoring

Zugang zur Dokumentation

Die Dokumentation erhalten Sie auf folgenden Wegen:

· Dokumentation für Open-Source-Benutzer unter der Adresse http://www.mysql.com/documentation

· Dokumentation für SAP-Systeme im Help-Portal http://help.sap.com

Wählen Sie SAP-NetWeaver ® Server <release> <language> ® SAP NetWeaver ® Application Platform ® Datenbanken ® MySQL MaxDB.

· liveCache-Dokumentation für SAP-Systeme im Help-Portal http://help.sap.com

Wählen Sie SAP-NetWeaver ® Server <release> <language> ® SAP NetWeaver ® Application Platform ® Datenbanken ® SAP liveCache.

· High Availability-Dokumentation für MySQL MaxDB in SAP-Systemen im Help-Portal http://help.sap.com

Wählen Sie SAP-NetWeaver ® <release> <language> ® SAP-NetWeaver ® Solution Life Cycle Management ® SAP High Availability ® Database High Availability ® High Availability for the MySQL MaxDB Database.

· Installationsleitfäden für SAP-Lösungen auf dem SAP Service Marktplatz (nur für SAP-Kunden zugänglich)

¡ Leitfäden für die Installation von MaxDB-Instanzen:

Unter der Adresse http://service.sap.com/instguides wählen Sie SAP NetWeaver in Detail ® Solution Life Cycle Management ® Installation ® Installation and Upgrade Guides ® SAP Web Application Server ® <release> ® SAP Web Application Server Installation on <operating_system>: MySQL MaxDB

¡ Leitfäden für die Installation/Upgrade von SAP liveCache-Instanzen:

Unter der Adresse http://service.sap.com/instguides wählen Sie SAP NetWeaver in Detail ® Solution Life Cycle Management ® Installation ® Installation & Upgrade Guides ® mySAP SCM ® Using SAP SCM 4.1Server... ® Upgrade Information ® Upgrade for SAP SCM 4.1: SAP liveCache 7.5


SAP liveCache und CCMS Dokumentation

Component documentation SAP liveCache und CCMS Dokumentation

Die Dokumentation zum SAP liveCache und der Verwaltung von MaxDB-Datenbanksystemen (früher SAP DB) im Computing Center Management System CCMS ist nur für SAP-Kunden relevant. Sie finden diese Dokumentation deshalb nur im SAP Help Portal unter der Adresse http://help.sap.com unter folgenden Pfaden:

-> SAP NetWeaver -> SAP Web Application Server -> Release SAP Web Application Server 6.30/German -> SAP Bibliothek -> SAP-NetWeaver-Komponenten -> SAP liveCache
-> Benutzerhandbuch: liveCache
or
-> Datenbankverwaltung im CCMS: liveCache

-> SAP NetWeaver -> SAP Web Application Server -> Release SAP Web Application Server 6.30/German -> SAP Bibliothek -> SAP-NetWeaver-Komponenten -> SAP DB
-> Datenbankverwaltung im CCMS OLTP


Variablen (MaxDB: Datenbankverwaltung)

Variablen

Die folgende Tabelle zeigt, welche Variablen und Beispieldaten in der Dokumentation verwendet werden.

Variable | Beschreibung | Verwendete Beispiele
<arch> | Name der Betriebssystemarchitektur in den Pfadangaben |
<backup_medium> | Sicherungsmedium | CPLBM (vollständige Datensicherung) INCBM (inkrementelle Datensicherung) LOGBM (Log-Sicherung)
<build> | Build-Nummer der Datenbanksoftware |
<database_name> | Datenbankname | HOTELDB
<database_server> | Name des Rechners, auf dem die Datenbankinstanz installiert ist | GENUA PARMA
<database_user> | Datenbankbenutzer | MONA DAVID BORIS
<database_user_password> | Kennwort des Datenbankbenutzers | RED BLUE PINK
<db_instance_type> | Datenbankinstanztyp |
<dbm_user> | Name eines Database-Manager-Benutzers | OLEG
<dbm_user_password> | Kennwort des Database-Manager-Benutzers | MONDAY
<dependent_path> | Ablage der von der Datenbankversion abhängigen Server-Software (siehe Datenbankverzeichnisse) |
<domain_user> | Name des DOMAIN-Benutzers | DOMAIN
<domain_user_password> | Kennwort des DOMAIN-Benutzers | FIRST
<file_name> | Dateiname |
<first_dbm_user> | Name des ersten Database Manager-Benutzers | DBM
<first_dbm_user_password> | Kennwort des ersten Database Manager-Benutzers | DBM
<group> | UNIX/Linux: Name der Gruppe der Datenbanksoftware |
<independent_data_path> | Ablage der Daten, Konfiguration und Arbeitsverzeichnisse von Datenbankinstanzen und Anwendungen (siehe Datenbankverzeichnisse) |
<independent_program_path> | Ablage der von den Datenbankinstanzen und Anwendungen gemeinsam genutzten Programme und Bibliotheken (siehe Datenbankverzeichnisse) |
<inst_path> | Installationspfad |
<inst_profile> | Name des Installationsprofils |
<os_user> | Name des Betriebssystembenutzers | ANNA
<os_user_password> | Kennwort des Betriebssystembenutzers | MAY
<os> | Name des Betriebssystems in den Pfadangaben |
<owner> | UNIX/Linux: Name des Eigentümers der Datenbanksoftware |
<package_directory> | Verzeichnis, in dem sich das Softwarepaket nach seiner Installation befindet |
<package_name> | Logischer Name des Softwarepakets |
<password> | Kennwort des Benutzers |
<path> | Pfadangabe |
<program_path> | Windows-Standardverzeichnis für die Anwendersoftware (z. B. C:\Program Files ) |
<server_name> | Name des Rechners |
<sysdba_user> | Name des SYSDBA-Benutzers | DBA
<sysdba_user_password> | Kennwort des SYSDBA-Benutzers | DBA
<user_key> | Schlüsselname des XUSER-Eintrags | SAMPLEKEY
<user_name> | Name des Benutzers |
<version> | Versionsnummer gemäß vierstelliger Versionsnotierung |
<web_server> | Name des Rechners, auf dem der Web-Server installiert ist |


Begriffe (MaxDB: Datenbankverwaltung)

Begriffe

After-Image | Anwendungsdaten | Arbeitsverzeichnis
Ausfallsicherheit | Automatische Log-Sicherung |
B*-Baum | Before-Image | Benutzer
Benutzerangaben | Benutzereigenschaften | Benutzergruppe
Betriebszustand |  |
Cache | Catalog-Cache | COMMIT
Converter |  |
Database Analyzer | Database Manager | Database Manager CLI
Database Manager GUI | Data-Cache | Data-Volume
Data-Writer | Datenbank | Datenbankadministrator
Datenbankbenutzer | Datenbankdateien | Datenbankinstanz
Datenbankinstanztyp | Datenbankkatalog | Datenbankkern
Datenbankkonsistenz | Datenbankkonsole | Datenbankname
Datenbankparameter | Datenbanksitzung | Datenbankstruktur
Datenbanksystem | Datenbank-Trace | Datenbankverzeichnisse
Datenbankwerkzeuge | Datenbereich | Datenseite
Datensicherung | DBA-Benutzer | DBM-Benutzer
DBMCLI | DBMGUI | DBM-Server
Dev-Thread | Dokumentation | DOMAIN
Entladen von Daten | Externe Sicherungskennung | Externes Sicherungsmedium
Externes Sicherungswerkzeug |  |
Garbage-Collector | Gruppe paralleler Sicherungsmedien |
History-Datei | Homogene Systemkopie | Hot-Standby
Inkrementelle Datensicherung | Instanztyp | Interaktive Log-Sicherung
Interfaces | I/O-Buffer-Cache | Isolation-Level
Katalog | Kennwort | Kern
Kernvariante | Konfigurationsdatei | Konsole
Laden von Daten | Lesesperre | liveCache
Load-Balancing | Loader | Loader-Server
Log-Bereich | Log-Einstellungen | Log-Queue
Logging | Log-Modus | Log-Volume
Log-Segment | Log-Sicherung | Log-Warteschlange
Log-Writer |  |
Mapchar-Sets | Multi-Prozessor-Konfiguration |
Namenskonventionen für Sicherungsmedien | Normaler Log-Sicherungsbetrieb |
OLTP | Online-Logging | Optimistische Sperre
Pager | Parallele Sicherung | Performance
Programmierschnittstellen | Protokolldatei | Prüfen der Datenbankstrukturen
Query Tools |  |
Redo-Liste | Redo-Log-Datei | Redo-Log-Eintrag
Redo-Log-Manager | Redo-Log-Verwaltung | RESOURCE
Restart | ROLLBACK | Rolle
Savepoint | Schattendatenbank | Schreibsperre
Seite | Serverberechtigungen | Server-Task
Sichern | Sicherungshistorie | Sicherungskennung
Sicherungsmedium | Sitzung | Sperre
Spezial-Threads | Sprachunterstützung | SQLDBC
SQL-Modus | SQL-Optimierer | SQL-Sperre
SQL Studio | Support | SYSDBA
Systemtabellen |  |
Task | Task-Zustand | Thread
Timeout-Wert | Timer-Task | Trace-Writer-Task
Transaktion | Transaktionsdatei | Transaktionsliste
Undo-Log-Datei | Undo-Log-Eintrag | Undo-Log-Verwaltung
UNICODE | User-Kernel-Thread | User-Task
Utility-Task |  |
Variablen | Versionsdatei | Versionsnotierung
Verzeichnisstruktur | Vollständige Datensicherung | Volume
Web DBM | WebDAV GUI | Web-Server
Web SQL Studio | Web Tools | Wiederherstellen
XCONS | XPU | X-Server
XUSER |  |


Referenzhandbuch

In dieser Dokumentation wird die Syntax und Semantik der SQL-Anweisungen des Datenbanksystems MySQL MaxDB festgelegt. Die in diesem Dokument verwendete Syntaxnotation ist die BNF.

Eine SQL-Anweisung führt eine Operation auf der Datenbankinstanz aus. Die dabei verwendeten Parameter sind Host-Variablen einer Programmiersprache, in welche die SQL-Anweisungen eingebettet werden.

Allgemeine Informationen zum Datenbanksystem finden Sie in der Dokumentation Datenbankverwaltung.

Grundelemente

SQL-Anweisungen: Überblick

Datendefinition

Autorisierung

Datenmanipulation

Datenanfrage

Transaktionen

Statistiken

Begriffe und Konzepte

Syntaxverzeichnis

Systemtabellen

SQL-Modus ORACLE

Weitere Dokumentation

Technische Spezifikationen


Grundelemente (MaxDB: Referenzhandbuch)

Grundelemente

Zeichen

Literal

Token

Namen

Spaltenspezifikation

Parameterspezifikation

Spezifikation von Werten

Datums- und Zeitformat

Stringspezifikation

Schlüsselspezifikation

Ausdruck

Prädikat

Suchbedingung

Funktionen: Überblick

Funktion

Set-Funktion


Zeichen (character) (MaxDB: Referenzhandbuch)

Zeichen (character)

Zeichen ( character ) sind die Elemente von Zeichenkette n und Schlüsselwört ern.

Syntax

<character> ::= <digit>
             | <letter>
             | <extended_letter>
             | <hex_digit>
             | <language_specific_character>
             | <special_character>

digit , letter , extended_letter , hex_digit , language_specific_character , special_character


Ziffer (digit) (MaxDB: Referenzhandbuch)

Ziffer (digit)

Eine Ziffer ( digit ) ist ein Zeichen .

Syntax

<digit> ::= 0 | 1 | 2 | | 3 | 4 | 5 | 6 | 7 | 8 | 9


Buchstabe (letter) (MaxDB: Referenzhandbuch)

Buchstabe (letter)

Ein Buchstabe ( letter ) ist ein Zeichen .

Syntax

<letter> ::= A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z
| a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z


extended_letter (MaxDB: Referenzhandbuch)

extended_letter

Ein besonderer Buchstabe ( extended_letter ) ist ein Zeichen .

Syntax

<extended_letter> ::= # | @ | $


hex_digit (MaxDB: Referenzhandbuch)

hex_digit

Eine Hexadezimalziffer ( hex_digit ) ist ein Zeichen .

Syntax

<hex_digit> ::=
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
| A | B | C | D | E | F
| a | b | c | d | e | f


language_specific_character (MaxDB: Referenzhandbuch)

language_specific_character

Ein sprachenspezifisches Zeichen (language_specific_character) ist jeder Buchstabe, der in einer nord-, mittel- oder südeuropäischen Sprache vorkommt und nicht in der Auflistung letter enthalten ist.

Deutsche Umlaute: ä, ö, ü

Französiche Buchstaben mit Accent grave

Wenn eine UNICODE-fähige Datenbank installiert wurde, ist ein sprachenspezifisches Zeichen jedes Zeichen, das nicht in der Liste der Zeichen im ASCII-Code von 0 bis 127 enthalten ist.


special_character (MaxDB: Referenzhandbuch)

special_character

Ein Sonderzeichen ( special_character ) ist jedes Zeichen , daß nicht in der folgenden Liste zu finden ist:

  • digit
  • letter
  • extended_letter
  • hex_digit
  • language_specific_character
  • Zeichen für das Zeilenende in einer Datei


Literal (literal) (MaxDB: Referenzhandbuch)

Literal (literal)

Ein Literal (literal) ist ein unbenanntes Datenobjekt, das durch seinen Wert vollständig bestimmt ist (spezifiziert einen Nicht-NULL-Wert, siehe Datentyp). Der Wert von Literalen ist unveränderbar. Es werden Stringliterale und numerische Literale unterschieden.

Syntax

<literal> ::= <string_literal> | <numeric_literal>

string_literal, numeric_literal

Stringliterale
'69190 Walldorf'
'Anton Schmitt'

Numerische Literale
+0.58498
1E160
-765E-04


Stringliteral (string_literal) (MaxDB: Referenzhandbuch)

Stringliteral (string_literal)

Ein Stringliteral (string_literal) ist ein Literal, das aus einer Folge von Zeichen besteht, die in Apostrophe eingeschlossen sind. Gegebenenfalls kann ein Stringliteral durch ein vorangestelltes x oder X als hexadezimal gekennzeichnet werden.

Syntax

<string_literal> ::= '' | '<character>...' | <hex_literal>

character, hex_literal

'69190 Walldorf'

'Anton Schmitt'

X'12ab'

Erläuterung

Ein Apostroph innerhalb einer Zeichenkette wird durch zwei aufeinanderfolgende Apostrophs dargestellt.

Ein Stringliteral der Art '<character>...' oder '' ist nur für einen Wert zulässig, der eine alphanumerische Spalte mit dem Codeattribut ASCII betrifft. Ein hex_literal ist nur für einen Wert zulässig, der eine Spalte mit dem Codeattribut Byte betrifft.

Ein Stringliteral der Art '', x'' und X'' und Stringliterale, die nur Leerzeichen enthalten, entsprechen nicht dem NULL-Wert.


hex_literal (MaxDB: Referenzhandbuch)

hex_literal

Stringliteral , das einen Wert in hexadezimaler Darstellung beinhaltet ( hex_literal ).

Syntax

<hex_literal> ::= x'' | X'' | x'<hex_digit_seq>' | X'<hex_digit_seq>'

hex_digit_seq

x'123F'
X'12ab'


hex_digit_seq (MaxDB: Referenzhandbuch)

hex_digit_seq

Folge von Hexadezimalziffern ( hex_digit_seq ).

Syntax

<hex_digit_seq> ::=
<hex_digit><hex_digit> | <hex_digit_seq><hex_digit><hex_digit>

hex_digit


Numerisches Literal (numeric_literal) (MaxDB: Referenzhandbuch)

Numerisches Literal (numeric_literal)

Ein numerisches Literal (numeric_literal) ist ein Literal, das eine Zahl in Festkomma- oder Gleitkommadarstellung angibt.

Syntax

<numeric_literal> ::= <fixed_point_literal> | <floating_point_literal>

fixed_point_literal, floating_point_literal


fixed_point_literal (MaxDB: Referenzhandbuch)

fixed_point_literal

Numerisches Literal , das eine Zahl in Festkommadarstellung ( fixed_point_literal ) angibt.

Syntax

<fixed_point_literal> ::=   [<sign>]<digit_sequence>[.<digit_sequence>]
| [sign]<digit_sequence>. | [sign].<digit_sequence>

sign , digit_sequence

+123.12
1234.


Vorzeichen (sign) (MaxDB: Referenzhandbuch)

Vorzeichen (sign)

Vorzeichen ( sign )

Syntax

<sign> ::= + | -


digit_sequence (MaxDB: Referenzhandbuch)

digit_sequence

Ziffernfolge ( digit_sequence )

Syntax

<digit_sequence> ::= <digit>...

digit


floating_point_literal (MaxDB: Referenzhandbuch)

floating_point_literal

Numerisches Literal , das eine Zahl in Gleitkommadarstellung ( floating_point_literal ) angibt.

Syntax

<floating_point_literal> ::=  <mantissa>E<exponent> | <mantissa>e<exponent>

mantissa , exponent

1e160
-765E-04


Mantisse (mantissa) (MaxDB: Referenzhandbuch)

Mantisse (mantissa)

Mantisse ( mantissa )

Syntax

<mantissa> ::= <fixed_point_literal>

fixed_point_literal


Exponent (exponent) (MaxDB: Referenzhandbuch)

Exponent (exponent)

Exponent ( exponent )

Syntax

<exponent> ::= [<sign>][[<digit>]<digit>]<digit>

sign , digit


Ganze Zahl ohne Vorzeichen (unsigned_integer) (MaxDB: Referenzhandbuch)

Ganze Zahl ohne Vorzeichen (unsigned_integer)

Eine ganze Zahl ohne Vorzeichen (unsigned_integer) ist ein spezielles numerisches Literal.

Syntax

<unsigned_integer> ::= <numeric_literal>

numeric_literal

Erläuterung

Eine ganze Zahl ohne Vorzeichen kann beliebig dargestellt sein, muß aber positiv sein.


Ganze Zahl (integer) (MaxDB: Referenzhandbuch)

Ganze Zahl (integer)

Eine ganze Zahl ( integer ) ist ein spezielles numerisches Literal ( numeric_literal ). Diese ganze Zahl kann beliebig dargestellt sein.

Syntax

<integer> ::= [sign]<unsigned_integer>

sign , unsigned_integer


Token (MaxDB: Referenzhandbuch)

Token

Ein Zeichensatz (token) besteht aus Zeichen, die zu einer lexikalischen Einheit zusammengefasst werden. Es werden reguläre und Sonderzeichensätze unterschieden.

Syntax

<token> ::= <regular_token> | <delimiter_token>

regular_token, delimiter_token

SELECT * FROM reservation
ALTER TABLE reservation DROP FOREIGN KEY customer_reservation

Erläuterung

Nach jedem Zeichensatz können beliebig viele Leerzeichen folgen. Jeder reguläre Zeichensatz (regular_token) muss von einem Sonderzeichensatz (delimiter_token) oder einem Leerzeichen abgeschlossen werden.

Anführungszeichen (double_quotes) innerhalb eines speziellen Bezeichners (special_identifier) werden durch zwei direkt aufeinanderfolgende Anführungszeichen dargestellt.


regular_token (MaxDB: Referenzhandbuch)

regular_token

Normaler Zeichensatz ( regular_token )

Syntax

<regular_token> ::= <literal> | <key_word> | <identifier> | <parameter_name>

literal , key_word , identifier , parameter_name

SELECT

'Reisen10'


Schlüsselwort (key_word) (MaxDB: Referenzhandbuch)

Schlüsselwort (key_word)

Schlüsselwort ( key_word ). Es werden "normale" Schlüsselwörter und reservierte Schlüsselwörter unterschieden.

Syntax

<key_word> ::= <not_reserved_key_word> | <reserved_keyword>

not_reserved_key_word , reserved_keyword

Erläuterung

Schlüsselwörter können in Groß-/Kleinschreibung angegeben werden.

In einfachen Bezeichnern dürfen keine reservierten Schlüsselwörter ( reserved_keyword ) verwendet werden. Reservierte Schlüsselwörter können allerdings in Form von speziellen Bezeichnern angegeben werden.


not_reserved_key_word (MaxDB: Referenzhandbuch)

not_reserved_key_word

Schlüsselwörter ( not_reserved_key_word ). Diese Schlüsselwörter sollten wenn möglich nicht zur Benennung von Objekten verwendet werden.

Eine Liste aller Schlüsselwörter finden Sie im Syntaxverzeichnis: not_reserved_key_word


reserved_key_word (MaxDB: Referenzhandbuch)

reserved_key_word

Reservierte Schlüsselwörter ( reserved_key_word ). Diese Schlüsselwörter dürfen nicht zur Benennung von Objekten verwendet werden.

Eine Liste aller Schlüsselwörter finden Sie im Syntaxverzeichnis: reserved_key_word


Bezeichner (identifier) (MaxDB: Referenzhandbuch)

Bezeichner (identifier)

Bezeichner (identifier). Es werden einfache Bezeichner (simple_identifier) und spezielle Bezeichner (special_identifier) unterschieden.

Syntax

<identifier> ::= <simple_identifier> | <double quotes><special_identifier><double_quotes>

simple_identifier, double_quotes, special_identifier

Erläuterung

Bezeichner können in Groß-/Kleinschreibung angegeben werden. Bei der Angabe von einfachen Bezeichnern spielt die Groß-/Kleinschreibung keine Rolle, da die Bezeichner immer vom Datenbanksystem in Großbuchstaben konvertiert werden.

In einfachen Bezeichnern dürfen keine reservierten Schlüsselwörter (reserved_key_word) verwendet werden. Reservierte Schlüsselwörter können allerdings in Form von speziellen Bezeichnern angegeben werden.

Anführungszeichen (double_quotes) innerhalb eines speziellen Bezeichners (special_identifier) werden durch zwei direkt aufeinanderfolgende Anführungszeichen dargestellt.

einfacher Bezeichner: reservation

spezieller Bezeichner: "ADD"


Einfacher Bezeichner (simple_identifier) (MaxDB: Referenzhandbuch)

Einfacher Bezeichner (simple_identifier)

Einfacher Bezeichner (simple_identifier). Als erstes Zeichen darf in einem einfachen Bezeichner keine Ziffer und keine durchgehende Unterstreichung (underscore) erscheinen.

Syntax

<simple_identifier> ::= <first_character>[<identifier_tail_character>...]

first_character, identifier_tail_character

Erläuterung

Einfache Bezeichner werden innerhalb der Datenbank immer in Großbuchstaben umgewandelt. Für einfache Bezeichner existiert demnach keine Case-Sensitivität.

In einfachen Bezeichnern dürfen keine reservierten Schlüsselwörter (reserved_key_word) verwendet werden.

Soll der Name eines Datenbankobjekts Kleinbuchstaben, Sonderzeichen, reservierte Schlüsselwörter oder Leerzeichen enthalten, so ist das nur möglich, wenn Sie einen Bezeichner als speziellen Bezeichner (eingeschlossen in Anführungszeichen) angeben.


first_character (MaxDB: Referenzhandbuch)

first_character

Erstes Zeichen ( first_character ) in einem einfachen Bezeichner ( simple_identifier ).

Syntax

<first_character> ::= <letter> | <extended_letter> | <language_specific_character>

letter , extended_letter , language_specific_character


identifier_tail_character (MaxDB: Referenzhandbuch)

identifier_tail_character

Folgezeichen ( identifier_tail_character ), die für einen einfachen Bezeichner ( simple_identifier ) oder ein Kennwort ( password ) nach dem ersten Zeichen möglich sind.

Syntax

<identifier_tail_character> ::=
<letter> | <extended_letter> | <language_specific_character>
| <digit> | <underscore>

letter , extended_letter , language_specific_character , digit , underscore


underscore (MaxDB: Referenzhandbuch)

underscore

Durchgehende Unterstreichung ( underscore )

Syntax

<underscore> ::= _


double_quotes (MaxDB: Referenzhandbuch)

double_quotes

Anführungszeichen ( double_quotes )

Syntax

<double_quotes> ::= "


Spezieller Bezeichner (special_identifier) (MaxDB: Referenzhandbuch)

Spezieller Bezeichner (special_identifier)

Spezieller Bezeichner (special_identifier). Ein spezieller Bezeichner muss in Anführungszeichen eingefaßt werden, wenn er als Bezeichner verwendet werden soll.

Syntax

<special_identifier> ::= <special_identifier_character>...

<special_identifier_character> ::= Beliebige Zeichen, die in beliebiger Reihenfolge aneinandergereiht werden können

Erläuterung

Spezielle Bezeichner werden innerhalb der Datenbank immer so verwendet wie angegeben, d.h. die Groß- und Kleinschreibung spielt eine Rolle. Spezielle Bezeichner sind case-sensitiv.

Soll der Name eines Datenbankobjekts Kleinbuchstaben, Sonderzeichen, reservierte Schlüsselwörter (reserved_key_word) oder Leerzeichen enthalten, so ist das nur möglich, wenn Sie einen Bezeichner als speziellen Bezeichner (eingeschlossen in Anführungszeichen) angeben.

“ADD”, “Example_1”


delimiter_token (MaxDB: Referenzhandbuch)

delimiter_token

Sonderzeichensatz (delimiter_token)

Syntax

<delimiter_token> ::=
  ( | ) | , | . | + | - | * | / | < | > | <> | != | = | <= | >=
| ~= | ~< | ~> (für Maschinen mit ASCII-Code)


Namen (MaxDB: Referenzhandbuch)

Namen

Namen identifizieren Objekte. In der folgenden Liste finden Sie einige Namen, die in der Syntaxbeschreibung der SQL-Anweisungen häufig verwendet werden.

Name |
Alias-Name | alias_name
Spaltenname | column_name
Constraint-Name | constraint_name
Name einer Datenbankfunktion | dbfunction_name
Name einer Datenbankprozedur | dbproc_name
Domänenname | domain_name
Indexname | index_name
Indikatorname | indicator_name
Mapchar-Set-Name | mapchar_set_name
Eigentümer | owner
Parametername | parameter_name
Kennwort | password
Referenzname | reference_name
Name eines referentiellen Constraints | referential_constraint_name
Ergebnistabellenname | result_table_name
Rollenname | role_name
Sequenzname | sequence_name
Synonymname | synonym_name
Tabellenname | table_name
Triggername | trigger_name
Benutzergruppenname | usergroup_name
Benutzername | user_name

Erläuterung

Bei allen Namen, die sich aus mehreren, durch "." getrennten Bezeichnern zusammensetzen, können jeweils vor und hinter dem "." beliebig viele Leerzeichen angegeben werden.


Alias-Name (alias_name) (MaxDB: Referenzhandbuch)

Alias-Name (alias_name)

Ein Alias-Name ( alias_name ) ist ein neuer Spaltenname , der den Namen einer Spalte in folgenden Arten von Tabellen angibt:

  • View-Tabelle
  • Tabelle, die mit einer rekursiven DECLARE CURSOR-Anweisung definiert wurde

Syntax

<alias_name> ::= <identifier>

identifier

Erläuterung

Es wird eine Fehlermeldung ausgegeben, wenn der Name aus mehr als 32 Zeichen besteht.

SQL-Anweisung, um einen Alias-Namen zu definieren

CREATE VIEW-Anweisung

Rekursive DECLARE CURSOR-Anweisung


Spaltenname (column_name) (MaxDB: Referenzhandbuch)

Spaltenname (column_name)

Ein Spaltenname (column_name) identifiziert eine Spalte.

Syntax

<column_name> ::= <identifier>

identifier

Erläuterung

Es wird eine Fehlermeldung ausgegeben, wenn der Name aus mehr als 32 Zeichen besteht.

SQL-Anweisungen

Spaltendefinition, Spaltenspezifikation

CREATE TABLE-Anweisung

CREATE INDEX-Anweisung

UNIQUE-Definition

RENAME COLUMN-Anweisung

COLUMN-Change-Definition

INSERT-Anweisung

UPDATE-Anweisung

MODIFY-Definition

UPDATE-Klausel

DROP-Definition


Constraint-Name (constraint_name) (MaxDB: Referenzhandbuch)

Constraint-Name (constraint_name)

Ein Constraint-Name (constraint_name) bezeichnet eine Integritätsbedingung (Datenintegrität) für Zeilen einer Tabelle.

Syntax

<constraint_name> ::= <identifier>

identifier

Erläuterung

Es wird eine Fehlermeldung ausgegeben, wenn der Name aus mehr als 32 Zeichen besteht.

SQL-Anweisungen

CONSTRAINT-Definition

ALTER-Definition

CREATE DOMAIN-Definition

DROP-Definition


Name einer Datenbankfunktion (dbfunction_name) (MaxDB: Referenzhandbuch)

Name einer Datenbankfunktion (dbfunction_name)

Ein Datenbankfunktionsname (dbfunction_name) bezeichnet eine Datenbankfunktion, die durch einen Datenbankfunktionsaufruf aufgerufen wird.

Syntax

<dbfunction_name> ::= [<owner>.]<identifier>

owner, identifier

Erläuterung

Der Bezeichner darf nicht länger als 32 Zeichen lang sein.

SQL-Anweisungen, um eine Datenbankfunktion anzulegen und zu löschen

CREATE FUNCTION-Anweisung

DROP FUNCTION-Anweisung


Name einer Datenbankprozedur (dbproc_name) (MaxDB: Referenzhandbuch)

Name einer Datenbankprozedur (dbproc_name)

Der Name einer Datenbankprozedur ( dbproc_name ) bezeichnet eine Datenbankprozedur .

Syntax

<dbproc_name> ::= [<owner>.]<procedure_name>

<procedure_name> ::= <identifier>

owner , identifier

Erläuterung

Die Angabe von TEMP als Eigentümer in einer Datenbankprozedur ist nicht zulässig.

SQL-Anweisungen, um eine Datenbankprozedur anzulegen, aufzurufen und zu löschen

CREATE DBPROC-Anweisung

CALL-Anweisung

DROP DBPROC-Anweisung


Domänenname (domain_name) (MaxDB: Referenzhandbuch)

Domänenname (domain_name)

Ein Domänenname (domain_name) identifiziert einen Wertebereich einer Tabellenspalte.

Syntax

<domain_name> ::= [<owner>.]<identifier>

owner, identifier

Erläuterung

Es wird eine Fehlermeldung ausgegeben, wenn der Name aus mehr als 32 Zeichen besteht.

Die Angabe von TEMP als Eigentümer (<owner>) ist in einem Domänennamen nicht zulässig.

SQL-Anweisung

CREATE DOMAIN-Anweisung

DROP DOMAIN-Anweisung


Indexname (index_name) (MaxDB: Referenzhandbuch)

Indexname (index_name)

Ein Indexname (index_name) identifiziert einen Index.

Syntax

<index_name> ::= <identifier>

identifier

Erläuterung

Es wird eine Fehlermeldung ausgegeben, wenn der Name aus mehr als 32 Zeichen besteht.

SQL-Anweisungen

CREATE INDEX-Anweisung

ALTER INDEX-Anweisung

RENAME INDEX-Anweisung

DROP INDEX-Anweisung


Indikatorname (indicator_name) (MaxDB: Referenzhandbuch)

Indikatorname (indicator_name)

Ein Indikatorname ( indicator_name ) bezeichnet eine Indikatorvariable in einer Anwendung, die zusammen mit einem Parameternamen angegeben werden kann.

Syntax

<indicator_name> ::= <parameter_name>

parameter_name

Erläuterung

Die Indikatorvariable eines Parameter s gibt Auskunft über aufgetretene Unregelmäßigkeiten (z.B. NULL-Wert, unterschiedliche Länge von Wert und Parameter).


Mapchar-Set-Name (mapchar_set_name) (MaxDB: Referenzhandbuch)

Mapchar-Set-Name (mapchar_set_name)

Ein Mapchar-Set-Name (mapchar_set_name) identifiziert ein Mapchar-Set.

Syntax

<mapchar_set_name> ::= <identifier>

identifier

Funktion, in der Mapchar-Sets verwendet werden

MAPCHAR

Siehe auch:

Mapchar-Sets anlegen

Mapchar-Sets anzeigen, ändern und löschen


Eigentümer (owner) (MaxDB: Referenzhandbuch)

Eigentümer (owner)

Der Eigentümer ( owner ) eines Objektes wird durch Angabe des Namens des Eigentümers festgelegt.

Syntax

<owner> ::= <user_name> | <usergroup_name> | TEMP

user_name , usergroup_name

Erläuterung

Gehört der Eigentümer keiner Benutzergruppe an, so entspricht der Name des Eigentümers seinem Benutzergruppennamen.

Ist TEMP als Eigentümer in einem Tabellennamen angegeben, handelt es sich um eine temporäre Tabelle. Eigentümer dieser temporären Tabelle ist der aktuelle Benutzer.

Es wird eine Fehlermeldung ausgegeben, wenn der Name des Eigentümers aus mehr als 32 Zeichen besteht.


Kennwort (password) (MaxDB: Referenzhandbuch)

Kennwort (password)

Ein Kennwort (password) wird benötigt, um für einen Benutzer die Verbindung mit der Datenbankinstanz herzustellen (Datenbanksitzung aufbauen).

Syntax

<password> ::= <identifier> | <first_password_character>[<identifier_tail_character>...]

identifier, identifier_tail_character

<first_password_character> ::= <letter> | <extended_letter> | <language_specific_letter> | <digit>

letter, extended_letter, language_specific_letter, digit

Erläuterung

Kennwörter werden nach dem 18. Zeichen abgeschnitten.

SQL-Anweisung, um das Kennwort eines Benutzers zu definieren

CREATE USER-Anweisung

SQL-Anweisung, um das Kennwort eines Benutzers zu verändern

ALTER PASSWORD-Anweisung


Parametername (parameter_name) (MaxDB: Referenzhandbuch)

Parametername (parameter_name)

Ein Parametername ( parameter_name ) bezeichnet einen Parameter in einer Anwendung (Host-Variable), die SQL-Anweisungen des Datenbanksystems enthält.

Syntax

<parameter_name> ::= :<identifier> | :<identfier>(<identifier>) | :<identfier>(.<identifier>.)

identifier

Erläuterung

Die Konventionen der Programmiersprache, in die die SQL-Anweisungen des Datenbanksystems eingebettet sind, bestimmen die Anzahl der signifikanten Zeichen eines Parameternamens.

Die Bezeichner für Parameternamen dürfen mit Ausnahme des ersten Zeichens die Zeichen " . " und " _ " enthalten.


Privileg-Typ (privilege) (MaxDB: Referenzhandbuch)

Privileg-Typ (privilege)

Ein Privileg-Typ ( privilege ) bezeichnet ein bestimmtes Privileg .

Syntax

<privilege> ::= INSERT | UPDATE [(<column_name>,...)]
| SELECT [(<column_name>,...)] | SELUPD [(<column_name>,...)]
| DELETE | INDEX | ALTER | REFERENCES [(<column_name>,...)]

column_name

Erläuterung

Privileg | Erläuterung
INSERT | Erlaubt dem identifizierten Benutzer, Zeilen in den angegebenen Tabellen einzufügen. Der aktuelle Benutzer muß die Berechtigung besitzen, das INSERT-Privileg zu vergeben.
UPDATE | Erlaubt dem identifizierten Benutzer, Zeilen in den angegebenen Tabellen zu ändern. Wenn Spaltennamen angegeben sind, dürfen die Zeilen nur in den dadurch identifizierten Spalten geändert werden. Der aktuelle Benutzer muß die Berechtigung besitzen, das UPDATE-Privileg zu vergeben.
SELECT | Erlaubt dem identifizierten Benutzer, Zeilen in den angegebenen Tabellen zu selektieren. Wenn Spaltennamen angegeben sind, dürfen die Zeilen nur in den dadurch identifizierten Spalten selektiert werden. Der aktuelle Benutzer muß die Berechtigung besitzen, das SELECT-Privileg zu vergeben.
SELUPD | Es werden die Privilegien SELECT und UPDATE vergeben. Wenn Spaltennamen angegeben sind, dürfen die Zeilen nur in den dadurch identifizierten Spalten selektiert oder geändert werden. Der aktuelle Benutzer muß die Berechtigung besitzen, das SELECT- und das UPDATE-Privileg zu vergeben.
DELETE | Erlaubt dem identifizierten Benutzer, Zeilen in den angegebenen Tabellen zu löschen. Der aktuelle Benutzer muß die Berechtigung besitzen, das DELETE-Privileg zu vergeben.
INDEX | Erlaubt dem identifizierten Benutzer, die CREATE INDEX- und DROP INDEX-Anweisung für die angegebenen Tabellen auszuführen. Das INDEX-Privileg kann nur für Basistabellen vergeben werden. Der aktuelle Benutzer muß die Berechtigung besitzen, das INDEX-Privileg zu vergeben.
ALTER | Erlaubt dem identifizierten Benutzer, die ALTER TABLE-Anweisung für die angegebenen Tabellen auszuführen. Das ALTER-Privileg kann nur für Basistabellen vergeben werden. Der aktuelle Benutzer muß die Berechtigung besitzen, das ALTER-Privileg zu vergeben.
REFERENCES | Erlaubt dem identifizierten Benutzer, die angegebene Tabelle als referenzierte Tabelle ( referenced_table ) in einer Spaltendefinition ( column_definition ) oder referentiellen CONSTRAINT-Definition ( referential_constraint_definition ) anzugeben.

SQL-Anweisung, um Privilegien zu vergeben oder zu widerrufen

GRANT-Anweisung

REVOKE-Anweisung


Referenzname (reference_name) (MaxDB: Referenzhandbuch)

Referenzname (reference_name)

Ein Referenzname (reference_name) ist ein Bezeichner, der für einen bestimmten Gültigkeitsbereich deklariert und mit genau einer Tabelle assoziiert wird. Der Gültigkeitsbereich dieser Deklaration ist die gesamte SQL-Anweisung.

Syntax

<reference_name> ::= <identifier>

identifier

Erläuterung

In verschiedenen Gültigkeitsbereichen kann derselbe Referenzname mit verschiedenen Tabellen oder mit derselben Tabelle assoziiert werden.

Es wird eine Fehlermeldung ausgegeben, wenn der Name aus mehr als 32 Zeichen besteht.

Verwendung in SQL-Anweisungen

Spaltenspezifikation

Selektierte Spalte

FROM TABLE-Spezifikation

Rekursive DECLARE CURSOR-Anweisung

UPDATE-Anweisung

DELETE-Anweisung


Name eines Referentiellen Constraints (referential_constraint_na (MaxDB: Referenzhandbuch)

Name eines Referentiellen Constraints (referential_constraint_name)

Der Name eines referentiellen Constraints (referential_constraint_name) bezeichnet ein referentielles Constraint (referentielle Integritätsbedingung, Datenintegrität). Diese Integritätsbedingung legt Lösch- und Existenzabhängigkeiten zwischen zwei Tabellen fest.

Syntax

<referential_constraint_name> ::= <identifier>

identifier

Erläuterung

Es wird eine Fehlermeldung ausgegeben, wenn der Name aus mehr als 32 Zeichen besteht.

SQL-Anweisungen

Referentielle CONSTRAINT-Definition

ALTER TABLE-Anweisung


Ergebnistabellenname (result_table_name) (MaxDB: Referenzhandbuch)

Ergebnistabellenname (result_table_name)

Ein Ergebnistabellenname (result_table_name) identifiziert eine Ergebnistabelle.

Syntax

<result_table_name> ::= <identifier>

identifier

Erläuterung

Es wird eine Fehlermeldung ausgegeben, wenn der Name aus mehr als 32 Zeichen besteht.

Siehe auch:

Benannte/Unbenannte Ergebnistabelle

SQL-Anweisungen

QUERY-Anweisung

UPDATE-Klausel


Rollenname (role_name) (MaxDB: Referenzhandbuch)

Rollenname (role_name)

Ein Rollenname (role_name) identifiziert eine Rolle.

Syntax

<role_name> ::= <identifier>

identifier

Erläuterung

Es wird eine Fehlermeldung ausgegeben, wenn der Name aus mehr als 32 Zeichen besteht.

SQL-Anweisung, um eine Rolle zu definieren

CREATE ROLE-Anweisung

SQL-Anweisung, um einer Rolle Privilegien zuzuordnen

GRANT-Anweisung

SQL-Anweisung, um eine Rolle zu vergeben

GRANT-Anweisung

SQL-Anweisungen, um eine Rolle zu aktivieren

ALTER USER-Anweisung

ALTER USERGROUP-Anweisung

SET-Anweisung

SQL-Anweisung, um eine Rolle zu löschen

DROP ROLE-Anweisung

Siehe auch:

Rollenkonzept


Sequenzname (sequence_name) (MaxDB: Referenzhandbuch)

Sequenzname (sequence_name)

Ein Sequenzname (sequence_name) identifiziert eine Folge von Werten.

Syntax

<sequence_name> ::= <identifier>

identifier

Erläuterung

Sequenzen sind Folgen von Werten, die nach bestimmten Regeln erzeugt werden. Unter anderem kann die Schrittweite zwischen den Werten festgelegt werden.

Mit Sequenzen können eindeutige Werte erzeugt werden. Diese sind allerdings nicht lückenlos, da Werte, die in einer zurückgerollten Transaktion erzeugt wurden, nicht wieder verwendbar sind.

Es wird eine Fehlermeldung ausgegeben, wenn der Name aus mehr als 32 Zeichen besteht.

SQL-Anweisungen

CREATE SEQUENCE-Anweisung

DROP SEQUENCE-Anweisung


Synonymname (synonym_name) (MaxDB: Referenzhandbuch)

Synonymname (synonym_name)

Ein Synonymname (synonym_name) bezeichnet ein Synonym für einen Tabellennamen.

Syntax

<synonym_name> ::= <identifier>

identifier

Erläuterung

Handelt es sich um kein PUBLIC-Synonym, ist dieses Synonym nur für einen Benutzer oder eine Benutzergruppe bekannt. Ein PUBLIC-Synonym ist jedem Benutzer und jeder Benutzergruppe bekannt.

Es wird eine Fehlermeldung ausgegeben, wenn der Name aus mehr als 32 Zeichen besteht.

SQL-Anweisungen

CREATE SYNONYM-Anweisung

RENAME SYNONYM-Anweisung

DROP SYNONYM-Anweisung


Tabellenname (table_name) (MaxDB: Referenzhandbuch)

Tabellenname (table_name)

Ein Tabellenname (table_name) identifiziert eine Tabelle.

Syntax

<table_name> ::= [<owner>.]<identifier>

owner, identifier

Erläuterung

Das Datenbanksystem verwendet für interne Zwecke einige Tabellennamen, bei denen der Bezeichner mit SYS beginnt. Um Namenskollisionen zu vermeiden, sollten Sie daher keine mit SYS beginnenden Tabellennamen verwenden.

Wurde im Tabellennamen der Name des Eigentümers nicht angegeben, so werden die Katalogteile in der folgenden Reihenfolge nach dem Tabellennamen durchsucht:

1. Katalogteil des aktuellen Benutzers

2. Menge der PUBLIC-Synonyme

3. Katalogteil des DBA, der den aktuellen Benutzer erzeugt hat

4. Katalogteil des SYSDBA

5. Katalogteil des Eigentümers der Systemtabellen

Es wird eine Fehlermeldung ausgegeben, wenn der Name aus mehr als 32 Zeichen besteht.

SQL-Anweisungen

CREATE TABLE-Anweisung

CREATE VIEW-Anweisung

CREATE SYNONYM-Anweisung

und weitere SQL-Anweisungen zur Datendefinition


Triggername (trigger_name) (MaxDB: Referenzhandbuch)

Triggername (trigger_name)

Ein Triggername (trigger_name) bezeichnet einen Trigger , der für eine Tabelle definiert wird.

Syntax

<trigger_name> ::= <identifier>

identifier

Erläuterung

Ein Triggername darf nicht länger als 32 Zeichen lang sein.

SQL-Anweisungen, um einen Trigger anzulegen und zu löschen

CREATE TRIGGER-Anweisung

DROP TRIGGER-Anweisung


Benutzergruppenname (usergroup_name) (MaxDB: Referenzhandbuch)

Benutzergruppenname (usergroup_name)

Ein Benutzergruppenname (usergroup_name) identifiziert eine Benutzergruppe.

Syntax

<usergroup_name> ::= <identifier>

identifier

Erläuterung

Es wird eine Fehlermeldung ausgegeben, wenn der Name aus mehr als 32 Zeichen besteht.

SQL-Anweisungen

CREATE USERGROUP-Anweisung

ALTER USERGROUP-Anweisung)

RENAME USERGROUP-Anweisung

DROP USERGROUP-Anweisung

GRANT USERGROUP-Anweisung


Benutzername (user_name) (MaxDB: Referenzhandbuch)

Benutzername (user_name)

Ein Benutzername (user_name) identifiziert einen Benutzer.

Syntax

<user_name> ::= <identifier>

identifier

Erläuterung

Es wird eine Fehlermeldung ausgegeben, wenn der Name aus mehr als 32 Zeichen besteht.

SQL-Anweisungen

CREATE USER-Anweisung

ALTER USER-Anweisung

RENAME USER-Anweisung

DROP USER-Anweisung

GRANT USER-Anweisung


Spaltenspezifikation (column_spec) (MaxDB: Referenzhandbuch)

Spaltenspezifikation (column_spec)

Eine Spaltenspezifikation ( column_spec ) spezifiziert die Spalte einer Tabelle.

Syntax

<column_spec> ::= <column_name> | <table_name>.<column_name>
| <reference_name>.<column_name> | <result_table_name>.<column_name>

column_name , table_name , reference_name , result_table_name

Erläuterung

Bei allen Namen, die sich aus mehreren, durch "." getrennten Bezeichnern ( identifier ) zusammensetzen, können jeweils vor und hinter dem "." beliebig viele Leerzeichen angegeben werden.


Parameterspezifikation (parameter_spec) (MaxDB: Referenzhandbuch)

Parameterspezifikation (parameter_spec)

Als Parameterspezifikation (parameter_spec) wird der Parametername und gegebenenfalls der Indikatorname bezeichnet, die erforderlich sind, um einen Parameter zu spezifizieren.

Syntax

<parameter_spec> ::= <parameter_name> [<indicator_name>]

parameter_name, indicator_name

Erläuterung

Der Indikator muss in der einbettenden Programmiersprache als Variable deklariert werden, der mindestens vierstellige ganze Zahlen zugewiesen werden können.

Es werden Ausgabeparameter und Eingabeparameter unterschieden:

· Ausgabeparameter: Parameter, die Werte aufnehmen sollen, die aus dem Datenbanksystem abgerufen werden.

- Ein Indikator mit dem Wert Null zeigt, dass der übergebene Wert kein NULL-Wert ist, und dass der Parameterwert der übergebene Wert ist.

- Ein Indikator mit dem Wert –1 zeigt, dass der Parameterwert der NULL-Wert ist.

- Alphanumerische Ausgabeparameter: Ein Indikator mit einem Wert größer Null zeigt, dass die zugewiesene Zeichenkette zu lang war und abgeschnitten wurde. Der Indikator gibt die Länge der Ausgabespalte an, aus der die Zeichenkette stammt.

- Numerische Ausgabeparameter: Ein Indikator mit einem Wert größer Null zeigt, dass der zugewiesene Wert zu viele signifikante Stellen hat und Nachkommastellen abgeschnitten wurden. Der Indikator gibt die Anzahl der Stellen des Originalwertes an.

- Bei numerischen Ausgabeparametern zeigt ein Indikator mit dem Wert –2, dass der Parameterwert der Spezial-NULL-Wert ist.

· Eingabeparameter: Parameter, die Werte enthalten, die an das Datenbanksystem übergeben werden sollen.

- Ein Indikator mit einem Wert größer oder gleich Null zeigt, dass der angegebene Parameterwert der Wert ist, der an das Datenbanksystem zu übergeben ist.

- Ein Indikator mit einem Wert kleiner Null zeigt, dass der angegebene Parameterwert der NULL-Wert ist.


Spezifikation von Werten (extended_value_spec) (MaxDB: Referenzhandbuch)

Spezifikation von Werten (extended_value_spec)

Die Spezifikation von Werten (extended_value_spec) kann durch Angabe von Werten (value_spec) oder eines der Schlüsselwörter DEFAULT bzw. STAMP erfolgen.

Syntax

<extended_value_spec> ::= <value_spec> | DEFAULT | STAMP

value_spec

Erläuterung

  • Schlüsselwort DEFAULT
    DEFAULT bezeichnet den in einer     CREATE TABLE-Anweisung oder ALTER TABLE-Anweisung für die Spalte als Vorschlagswert (Default) definierten Wert. Ist ein solcher Wert nicht definiert, kann DEFAULT zur Spezifikation von Werten nicht verwendet werden.
    Das Schlüsselwort DEFAULT kann in folgenden SQL-Anweisungen verwendet werden:
    INSERT-Anweisung
    UPDATE-Anweisung
    Das Schlüsselwort DEFAULT kann in einem     DEFAULT-Prädikat verwendet werden.
  • Schlüsselwort STAMP
    Das Datenbanksystem ist in der Lage, eindeutige Werte zu generieren. Es handelt sich dabei um eine fortlaufende Nummer, die bei X'000000000001' beginnt. Die Werte werden aufsteigend vergeben, wobei nicht sichergestellt werden kann, daß eine Folge von Werten lückenlos ist. Das Schlüsselwort STAMP liefert den nächsten vom Datenbanksystem generierten Wert.
    Das Schlüsselwort STAMP kann in folgenden SQL-Anweisungen verwendet werden (nur auf Spalten vom Datentyp CHAR(n) BYTE mit n>=8, siehe     DEFAULT-Spezifikation ):
    INSERT-Anweisung
    UPDATE-Anweisung
    Wenn der Anwender den generierten Wert erfahren möchte, bevor er auf eine Spalte angewandt wird, muß folgende SQL-Anweisung verwendet werden:
     NEXT STAMP-Anweisung


Spezifikation von Werten (value_spec) (MaxDB: Referenzhandbuch)

Spezifikation von Werten (value_spec)

Die Spezifikation von Werten (value_spec) kann durch Angabe von Literalen, Parameterspezifikationen oder einer Reihe von Schlüsselworten erfolgen.

Syntax

<value_spec> ::= <literal> | <parameter_spec>
| NULL | USER | USERGROUP | SYSDBA | UID
| [<owner>.]<sequence_name>.NEXTVAL | [<owner>.]<sequence_name>.CURRVAL
| <table_name>.CURRVAL
| DATE | TIME | TIMESTAMP | UTCDATE | TIMEZONE | UTCDIFF
| TRUE | FALSE | TRANSACTION

literal | Literal
parameter_spec | Parameterspezifikation
NULL | NULL-Wert
USER | Aktueller Benutzername
USERGROUP | Name der Benutzergruppe, zu der der Benutzer gehört, der die SQL-Anweisung aufruft. Gehört der Benutzer keiner Benutzergruppe an, wird der Benutzername angezeigt.
SYSDBA | Datenbanksystemadministrator (SYSDBA-Benutzer) der Datenbankinstanz
UID | Identifikation des aktuellen Benutzers. Es handelt sich um eine ganze Zahl.
[<owner>.]<sequence_name>.NEXTVAL | Nächster Wert, der für den angegebenen Sequenznamen (des entsprechenden Eigentümers) erzeugt wird.
[<owner>.]<sequence_name>.CURRVAL | Wert, der mit Hilfe von [<owner>.]<sequence_name>.NEXTVAL als letzter für den angegebenen Sequenznamen erzeugt wurde.
<table_name>.CURRVAL | Letzer in der aktuellen Datenbanksitzung vergebener Wert der Serial-Spalte der Tabelle table_name.
DATE | Aktuelles Datum
TIME | Aktuelle Zeit
TIMESTAMP | Aktueller Zeitstempel
UTCDATE | Aktueller UTC-Zeitstempel (Greenwich Mean Time)
TIMEZONE | Angabe der Zeitdifferenz in der Form hhmmss (im Datentyp FIXED(6)) zwischen Ihrer lokalen Zeitangabe und der UTC-Zeitangabe.
UTCDIFF | Angabe der Zeitdifferenz in Stunden (im Datentyp FIXED(4,2)) zwischen Ihrer lokalen Zeitangabe und der UTC-Zeitangabe.
TRUE | FALSE | Entsprechender Wert einer Spalte vom Datentyp BOOLEAN
TRANSACTION | Identifikation der aktuellen Transaktion. Es handelt sich um einen Wert mit dem Datentyp CHAR(10) BYTE.


Datums- und Zeitformat (datetimeformat) (MaxDB: Referenzhandbuch)

Datums- und Zeitformat (datetimeformat)

Das Datums- und Zeitformat (datetimeformat) spezifiziert die Darstellungsform für Datumswerte, Zeitwerte und Zeitstempelwerte.

In SQL-Anweisungen legt es fest, in welcher Darstellung Datums-, Zeit- und Zeitstempelwerte in diesen SQL-Anweisungen enthalten sein können und wie Ergebnisse dargestellt werden sollen.

Syntax

<datetimeformat> ::= EUR | INTERNAL | ISO | JIS | USA

Das Datums- und Zeitformat ISO wird von ODBC- und JDBC-Anwendungen genutzt und kann nicht durch ein anderes Datums- und Zeitformat ersetzt werden.

Datumswert

'YYYY' | Vierstellige Jahresbezeichnung
'MM' | Zweistellige Monatsbezeichnung (01-12)
'DD' | Zweistellige Tagesbezeichnung (01-31)

Format | Allgemeine Form | Beispiel
EUR | 'DD.MM.YYYY' | '23.01.1999'
INTERNAL | 'YYYYMMDD' | '19990123'
ISO/JIS | 'YYYY-MM-DD' | '1999-01-23'
USA | 'MM/DD/YYYY' | '01/23/1999'

Bei allen Formaten außer INTERNAL können die führenden Nullen bei Monats- und Tagesbezeichnungen entfallen.

Zeitwert

'HHHH' | Vierstellige Stundenbezeichnung
'HH' | Zweistellige Stundenbezeichnung
'MM' | Zweistellige Minutenbezeichnung (00-59)
'SS' | Zweistellige Sekundenbezeichnung (00-59)

Format | Allgemeine Form | Beispiel
EUR | 'HH.MM.SS' | '14.30.08'
INTERNAL | 'HHHHMMSS' | '00143008'
JIS/ISO | 'HH:MM:SS' | '14:30:08'
USA | 'HH:MM AM (PM)' | '2:30 PM'

In allen Zeitformaten muss die Stundenbezeichnung mindestens einstellig sein. Im Zeitformat USA kann die Minutenbezeichnung ganz entfallen, in den anderen Formaten außer INTERNAL muss die Minuten- und Sekundenbezeichnung mindestens einstellig sein.

In den Formaten ISO und USA werden die Stunden modulo 24 ausgegeben.
In den Formaten EUR und JIS führen Stundenangaben >99 zu einem Fehler.
Im Format INTERNAL können Stundenangaben bis 9999 verwendet werden.

Zeitstempelwert

'YYYY' | Vierstellige Jahresbezeichnung
'MM' | Zweistellige Monatsbezeichnung (01-12)
'DD' | Zweistellige Tagesbezeichnung (01-31)
'HH' | Zweistellige Stundenbezeichnung (0-24)
'MM' | Zweistellige Minutenbezeichnung (00-59)
'SS' | Zweistellige Sekundenbezeichnung (00-59)
'MMMMMM' | Sechstellige Mikrosekundenbezeichnung

Format | Allgemeine Form | Beispiel
EUR/JIS/USA | 'YYYY-MM-DD-HH.MM.SS.MMMMMM' | '1999-01-23-14.30.08.456234'
ISO | 'YYYY-MM-DD HH:MM:SS.MMMMMM' | '1999-01-23 14:30:08.456234'
INTERNAL | 'YYYYMMDDHHMMSSMMMMMM' | '19990123143008456234'

In allen Zeitstempelformaten kann die Mikrosekundenbezeichnung entfallen. In allen Formaten außer INTERNAL muss die Monats- und Tagesbezeichnung mindestens einstellig sein.

Siehe auch:

Spezieller Datenbankparameter DATE_TIME_FORMAT


Stringspezifikation (string_spec) (MaxDB: Referenzhandbuch)

Stringspezifikation (string_spec)

Als Stringspezifikation (string_spec) sind nur Ausdrücke ( expression ) erlaubt, die als Ergebnis einen alphanumerischen Wert haben.


Schlüsselspezifikation (key_spec) (MaxDB: Referenzhandbuch)

Schlüsselspezifikation (key_spec)

Eine Schlüsselspezifikation (key_spec) ermöglicht das Finden einer bestimmten Tabellenzeile, deren Schlüsselspaltenwerte den in den Schlüsselspezifikationen angegebenen Werten entsprechen. Eine Zeile mit den angegebenen Schlüsselwerten muss nicht existieren.

Syntax

<key_spec> ::= <column_name> = <value_spec>

column_name , value_spec

Erläuterung

Die Spezifikation von Werten (value_spec) darf nicht NULL sein.

Der Spaltenname (column_name) muss eine Schlüsselspalte der Tabelle bezeichnen.

Die Angabe eines Schlüssels muss alle Schlüsselspalten einer Tabelle enthalten. Dabei werden die einzelnen Schlüsselspezifikationen (key_spec) durch Kommas getrennt angegeben.

Für Tabellen, die ohne Schlüsselspalten definiert wurden, gibt es eine implizit angelegte Spalte SYSKEY CHAR(8) BYTE, die einen vom Datenbanksystem integrierten Schlüssel enthält. Diese Spalte kann in einer Schlüsselspezifikation verwendet werden.


Ausdruck (expression) (MaxDB: Referenzhandbuch)

Ausdruck (expression)

Ein Ausdruck ( expression ) spezifiziert einen Wert, der gegebenenfalls durch Anwendung von arithmetischen Operatoren auf Werte erzeugt wird.

Es werden folgende arithmetische Operatoren unterschieden:

  • Additive Operatoren
    + Addition
    - Subtraktion
  • Multiplikative Operatoren
    * Multiplikation
    / Division
    DIV ganzzahlige Division
    MOD Rest nach ganzzahliger Division

Syntax

<expression> ::= <term> | <expression> + <term> | <expression> - <term>
<expression_list> ::= (<expression>,...)

<term> ::= <factor>
| <term> * <factor> | <term> / <factor>
| <term> DIV <factor>| <term> MOD <factor>

factor

Erläuterung

Die arithmetischen Operatoren können nur auf numerische Datentypen angewandt werden.

 | Ergebnis eines Ausdrucks
expression | Wert eines beliebigen Datentyp s
factor liefert einen NULL-Wert | NULL-Wert
factor liefert einen Spezial-NULL-Wert | Spezial-NULL-Wert
expression führt zu einer Division durch 0 | Spezial-NULL-Wert
expression führt zu einem Überlauf des internen Zwischenergebnisses | Spezial-NULL-Wert

Bei fehlender Klammerung haben die Operatoren folgende Priorität:

  1. Das Vorzeichen ( sign ) bindet stärker als die additiven und multiplikativen Operatoren.
  2. Die multiplikativen Operatoren binden stärker als die additiven Operatoren.
  3. Die multiplikativen Operatoren haben untereinander gleiche Priorität.
  4. Die additiven Operatoren haben untereinander gleiche Priorität.
  5. Bei gleicher Priorität erfolgt die Auswertung von links nach rechts.

Operanden sind Festkommazahlen

Operand1 (a) | Operand2 (b) | Ergebnis
Festkomma zahl (p Genauigkeit s Anzahl der Nachkommastellen) | Festkommazahl (p' Genauigkeit s' Anzahl der Nachkommastellen) | Festkommazahl (p'' Genauigkeit s'' Anzahl der Nachkommastellen) oder Gleitkommazahl

Der Datentyp des Ergebnisses ist abhängig von der Operation sowie von der Genauigkeit und der Anzahl der Nachkommastellen der Operanden.

Beachten Sie, daß bei der Angabe eines Spaltennamens der Datentyp der Spalte zugrunde gelegt wird, nicht die Genauigkeit und die Anzahl der Nachkommastellen des aktuellen Wertes der Spalte.

Operanden sind Festkommazahlen, Operatoren sind +, - , * oder /

Das Ergebnis von Addition, Subtraktion und Multiplikation wird aus einem Zwischenergebnis erzeugt, das mehr als 38 gültige Ziffern haben kann. Wenn das Zwischenergebnis nicht mehr als 38 gültige Ziffern hat, ist das endgültige Ergebnis gleich diesem Zwischenergebnis. Andernfalls wird ein Ergebnis als Gleitkommazahl mit 38 Stellen Genauigkeit erzeugt. Nachkommastellen werden gegebenenfalls abgeschnitten.

Bedingung

Operator

Ergebnis

max(p-s,p'-s')

+, -

Festkommazahl
p''=max(p-s,p'-s')+max(s,s')+1
s''=max(s,s')

(p+p')<=38

*

Festkommazahl
p''=p+p'
s''=s+s'

(p-s+s')<=38

/

Festkommazahl
p''=38
s''=38-(p-s+s')
Spezial-NULL-Wert, wenn b=0

Operanden sind ganze Zahlen, Operatoren sind DIV, MOD

Bedingung | Operator | Ergebnis
ABS (a)<1E38 und ABS(b)<1E38 und b<>0 | DIV | TRUNC (a/b)
b=0 | DIV | Spezial-NULL-Wert
ABS(a)>=1E38 und b<>0 oder ABS(b)>=1E38 | DIV | Fehlermeldung
ABS(a)<1E38 und ABS(b)<1E38 und b<>0 | MOD | a-b*(a DIV b)
b=0 | MOD | a
ABS(a)>=1E38 und b<>0 oder ABS(b)>=1E38 | MOD | Fehlermeldung

Ein Operand ist Gleitkommzahl

Wenn einer der Operanden eine Gleitkomma zahl ist, so ist das Ergebnis der arithmetischen Operation eine Gleitkommazahl.


factor (MaxDB: Referenzhandbuch)

factor

Gibt an, wie die Werte ermittelt werden, die in einem Ausdruck (expression) durch arithmetische Operatoren verbunden werden sollen.

Syntax

<factor> ::= [<sign>] <value_spec> | [<sign>] <column_spec>
| [<sign>] <function_spec> | [<sign>] <set_function_spec>
| <scalar_subquery> |<expression>

sign , value_spec , column_spec , function_spec , set_function_spec , scalar_subquery , expression


Prädikat (predicate) (MaxDB: Referenzhandbuch)

Prädikat (predicate)

Ein Prädikat (predicate) wird in einer WHERE-Klausel in einer Anweisung, deren Aussage "wahr", "falsch" oder "undefiniert" ist, angegeben. Das Ergebnis ergibt sich aus der Anwendung des Prädikats auf eine gegebene Zeile einer Ergebnistabelle (siehe Ergebnistabellenname) oder auf eine Gruppe von Zeilen einer Tabelle, die mit Hilfe der GROUP-Klausel gebildet wurde.

Syntax

<predicate> ::=
  <between_predicate> | <bool_predicate> | <comparison_predicate>
| <default_predicate> | <exists_predicate> | <in_predicate>
| <join_predicate> | <like_predicate> | <null_predicate>
| <quantified_predicate> | <rowno_predicate> | <sounds_predicate>

between_predicate, bool_predicate, comparison_predicate, default_predicate, exists_predicate, in_predicate, join_predicate, like_predicate, null_predicate, quantified_predicate, rowno_predicate, sounds_predicate

Erläuterung

· Spalten einer Tabelle mit gleichem Codeattribut sind vergleichbar.

· Spalten mit den unterschiedlichen Codeattributen ASCII und UNICODE sind vergleichbar.

· Spalten mit dem Codeattribut ASCII oder UNICODE sind mit Datumswerten, Zeitwerten oder Zeitstempelwerten vergleichbar.

· LONG-Spalten können nur im NULL-Prädikat (null_predicate) verwendet werden.

Beispieltabelle customer

Auswahl ohne Bedingung:

SELECT city, name, firstname FROM customer

CITY | NAME | FIRSTNAME
New York | Porter | Jenny
Dallas | DATASOFT | ?
Los Angeles | Porter | Martin
Los Angeles | Peters | Sally
Hollywood | Brown | Peter
New York | Porter | Michael
New York | Howe | George
Los Angeles | Randolph | Frank
Los Angeles | Peters | Joseph
Los Angeles | Brown | Susan
Los Angeles | Jackson | Anthony
Los Angeles | Adams | Thomas
New York | Griffith | Mark
Los Angeles | TOOLware | ?
Hollywood | Brown | Rose

Auswahl mit einschränkender Bedingung:

SELECT city, name, firstname FROM customer
WHERE city = 'Los Angeles'

CITY | NAME | FIRSTNAME
Los Angeles | Porter | Martin
Los Angeles | Peters | Sally
Los Angeles | Randolph | Frank
Los Angeles | Peters | Joseph
Los Angeles | Brown | Susan
Los Angeles | Jackson | Anthony
Los Angeles | Adams | Thomas
Los Angeles | TOOLware | ?


BETWEEN-Prädikat (between_predicate) (MaxDB: Referenzhandbuch)

BETWEEN-Prädikat (between_predicate)

Das BETWEEN-Prädikat (between_predicate) prüft, ob ein Wert in einem vorgegebenen Intervall liegt.

Syntax

<between_predicate> ::= <expression> [NOT] BETWEEN <expression> AND <expression>

expression

Erläuterung

Seien x,y und z die Ergebnisse des ersten, zweiten und dritten Ausdrucks (expression). Die Werte x,y,z müssen miteinander vergleichbar sein.

 | Ergebnis des angegebenen Prädikats
x BETWEEN y AND z | x>=y AND x<=z
x NOT BETWEEN y AND z | NOT(x BETWEEN y AND z)
x, y, oder z sind NULL-Werte | x [NOT] BETWEEN y AND z ist undefiniert

Beispieltabelle customer

Gesucht werden Kunden mit einem Guthaben zwischen -420 und 0:

SELECT title, name, city, account FROM customer
WHERE account BETWEEN -420 AND 0

TITLE | NAME | CITY | ACCOUNT
Mr | Porter | Los Angeles | 0.00
Mrs | Peters | Los Angeles | 0.00
Mr | Brown | Hollywood | 0.00
Mr | Porter | New York | 0.00
Mr | Howe | New York | -315.40
Mr | Randolph | Los Angeles | 0.00
Mr | Jackson | Los Angeles | 0.00
Mr | Adams | Los Angeles | -416.88
Mr | Griffith | New York | 0.00

Gesucht werden die Kunden, die entweder ein Guthaben oder ein beträchtliches negatives Konto haben:

SELECT title, name, city, account FROM customer
WHERE account NOT BETWEEN -10 AND 0

TITLE | NAME | CITY | ACCOUNT
Mrs | Porter | New York | 100.00
Comp | DATASOFT | Dallas | 4813.50
Mr | Howe | New York | -315.40
Mr | Peters | Los Angeles | 650.00
Mrs | Brown | los Angeles | -4167.79
Mr | Adams | Los Angeles | -416.88
Comp | TOOLware | Los Angeles | 3770.50
Mrs | Brown | Hollywood | 440.00


Boolesches Prädikat (bool_predicate) (MaxDB: Referenzhandbuch)

Boolesches Prädikat (bool_predicate)

In einem booleschen Prädikat ( bool_predicate ) werden boolesche Werte ( BOOLEAN ) verglichen.

Syntax

<bool_predicate> ::= <column_spec> [ IS [NOT] <TRUE | FALSE>]

column_spec

Erläuterung

Wenn nur eine Spaltenspezifikation ( column_spec ) angegeben wird, entspricht das der Syntax <column_spec> IS TRUE .

Die Spaltenspezifikation muß eine Spalte vom Datentyp BOOLEAN bezeichnen.

Für das Ergebnis eines booleschen Prädikats gelten folgende Regeln:

Spaltenwert | IS TRUE | IS NOT TRUE | IS FALSE | IS NOT FALSE
falsch | falsch | wahr | wahr | falsch
undefiniert | undefiniert | undefiniert | undefiniert | undefiniert
wahr | wahr | falsch | falsch | wahr


Vergleichsprädikat (comparison_predicate) (MaxDB: Referenzhandbuch)

Vergleichsprädikat (comparison_predicate)

Ein Vergleichsprädikat (comparison_predicate) spezifiziert einen Vergleich zweier Werte bzw. Wertelisten.

Syntax

<comparison_predicate> ::= <expression> <comp_op> <expression>
| <expression> <comp_op> <subquery>
| <expression_list> <equal_or_not> (<expression_list>)
| <expression_list> <equal_or_not> <subquery>

expression, expression_list, subquery

Für den Vergleich zweier Werte stehen folgende Vergleichsoperatoren zur Verfügung:
<, >, <>, !=, =, <=, >= (comp_op)

Für den Vergleich zweier Wertelisten stehen nur die Vergleichsoperatoren = und <> zur Verfügung (equal_or_not).

Erläuterung

Die Subquery (subquery) muss eine Ergebnistabelle (siehe Ergebnistabellenname) liefern, die so viele Spalten enthält wie Werte auf der linken Seite des Operators angegeben sind. Diese Ergebnistabelle darf höchstens eine Zeile enthalten.

Die auf der rechten Seite des Vergleichsoperators equal_or_not angegebene Werteliste (expression_list) muss so viele Werte enthalten, wie in der Werteliste vor dem Vergleichsoperator equal_or_not angegeben sind.

Ein Spezialfall des Vergleichsprädikats ist das JOIN-Prädikat.

Vergleich zweier Werte

Sei x das Ergebnis des ersten Ausdrucks (expression) und y das Ergebnis des zweiten Ausdrucks oder der Subquery.

· Die Werte x und y müssen miteinander vergleichbar sein.

· Zahlen werden nach ihrem algebraischen Wert verglichen.

· Der Vergleich von Zeichenketten erfolgt Zeichen für Zeichen.
Wenn eine oder beide Zeichenketten am Ende Leerzeichen (Codeattribut ASCII, UNICODE) oder binären Nullen (Codeattribut BYTE) enthalten, so werden diese entfernt.
Wenn die Zeichenketten die unterschiedlichen Codeattribute ASCII und UNICDODE besitzen, wird die Zeichenkette mit dem Codeattribut ASCII implizit in eine Zeichenkette mit dem Codeattribut UNICODE umgewandelt.
Zwei Zeichenketten sind gleich, wenn sie an allen Positionen die jeweils gleichen Zeichen enthalten.
Wenn zwei Zeichenketten nicht gleich sind, wird ihre Beziehung vom ersten sich unterscheidenden Zeichen bestimmt, welches beim Vergleich von links nach rechts gefunden wird. Dieser Vergleich wird gemäß dem für diese Spalte gewählten Codeattribut (ASCII, UNICODE oder BYTE) ausgeführt.

· Wenn x oder y NULL-Werte sind, oder wenn das Ergebnis der Subquery leer ist, dann ist (x <comp_op> y) undefiniert.

Vergleich zweier Wertelisten

Wenn auf der linken Seite der Vergleichsopertors equal_or_not eine Werteliste (expression_list) angegeben ist, dann sei x die Werteliste, die sich aus den Ergebnissen der Werte x1, x2, ..., xn dieser Werteliste zusammensetzt. y sei das Ergebnis der Subquery oder das Ergebnis der zweiten Werteliste. Eine Werteliste y setzt sich aus den Ergebnissen der Werte y1, y2, ..., yn zusammen.

· Ein Wert xm muss mit dem zugehörigen Wert ym vergleichbar sein.

· x=y ist wahr, wenn für alle m=1, ..., n gilt xm=ym

· x<>y ist wahr, wenn es mindestens ein m gibt, für das gilt xm<>ym.

· (x <equal_or_not> y) ist undefiniert, wenn es kein m gibt, für das (xm <equal_or_not> ym) falsch ist und es mindestens ein m gibt, für das (xm <equal_or_not> ym) undefiniert ist.

· Wenn ein xm oder ein ym NULL-Werte sind, oder wenn das Ergebnis der Subquery leer ist, dann ist (x <equal_or_not> y) undefiniert.

Beispieltabelle customer

Welche Kunden sind Frauen?

SELECT title, firstname, name FROM customer
WHERE title = 'Mrs'

TITLE | FIRSTNAME | NAME
Mrs | Jenny | Porter
Mrs | Sally | Peters
Mrs | Susan | Brown
Mrs | Rose | Brown


Vergleichsoperatoren (comp_op) (MaxDB: Referenzhandbuch)

Vergleichsoperatoren (comp_op)

Operatoren für den Vergleich von Werten (comp_op)

Syntax

<comp_op> ::= < | > | <> | != | = | <= | >=
| ~= | ~< | ~> (für Maschinen mit ASCII-Code)


Vergleichsoperatoren (equal_or_not) (MaxDB: Referenzhandbuch)

Vergleichsoperatoren (equal_or_not)

Operatoren für den Vergleich von Wertelisten (equal_or_not)

Syntax

<equal_or_not> ::= <> |=
| ~= (für Maschinen mit ASCII-Code)


DEFAULT-Prädikat (default_predicate) (MaxDB: Referenzhandbuch)

DEFAULT-Prädikat (default_predicate)

Durch die Angabe eines DEFAULT- Prädikat s ( default_predicate ) können Sie überprüfen, ob eine Spalte den für diese Spalte definierten Vorschlagswert (DEFAULT-Wert) enthält.

Syntax

<default_predicate> ::= <column_spec> <comp_op> DEFAULT

column_spec , comp_op

Erläuterung

Für die angegebene Spalte muß eine DEFAULT-Spezifikation erfolgt sein. Das kann in folgenden SQL-Anweisungen erfolgen:

  • CREATE TABLE-Anweisung
  • ALTER TABLE-Anweisung

Wenn die Spalte den NULL-Wert enthält, dann ist <column_spec> <comp_op> DEFAULT undefiniert.

Es gelten die Regeln für Vergleiche von Werten bzw. Wertelisten, wie in Vergleichsprädikat beschrieben.


EXISTS-Prädikat (exists_predicate) (MaxDB: Referenzhandbuch)

EXISTS-Prädikat (exists_predicate)

Das EXISTS-Prädikat (exists_predicate) prüft, ob eine Ergebnistabelle (siehe Ergebnistabellenname) mindestens eine Zeile enthält.

Syntax

<exists_predicate> ::= EXISTS <subquery>

subquery

Erläuterung

Der Wahrheitsgehalt eines EXISTS-Prädikats ist entweder wahr oder falsch.

Durch die Subquery wird eine Ergebnistabelle erzeugt. Wenn diese Ergebnistabelle wenigstens eine Zeile enthält, ist EXISTS <subquery> wahr.

Beispieltabelle customer, reservation

Selektieren Sie Kunden nur dann, wenn für diese eine oder mehrere Buchungen vorliegen:

SELECT * FROM customer WHERE EXISTS
(SELECT * FROM reservation WHERE customer.cno = reservation.cno)

CNO | TITLE | NAME | FIRSTNAME | ZIP | CITY | ACCOUNT
3000 | Mrs | Porter | Jenny | 80335 | New York | 100.00
3100 | Comp | DATASOFT | ? | 50933 | Dallas | 4813.50
3200 | Mr | Porter | Martin | 10969 | Los Angeles | 0.00
3600 | Mr | Howe | George | 81737 | New York | -315.40
3900 | Mrs | Brown | Susan | 13599 | Los Angeles | -4167.79
4100 | Mr | Adams | Thomas | 13355 | Los Angeles | -416.88
4300 | Comp | TOOLware | ? | 13629 | Los Angeles | 3770.50
4400 | Mrs | Brown | Rose | 40233 | Hollywood | 440.00


IN-Prädikat (in_predicate) (MaxDB: Referenzhandbuch)

IN-Prädikat (in_predicate)

Das IN-Prädikat (in_predicate) prüft, ob ein Wert bzw. eine Werteliste in einer vorgegebenen Wertemenge bzw. Menge von Wertelisten enthalten ist.

Syntax

<in_predicate> ::=
  <expression> [NOT] IN <subquery>
| <expression> [NOT] IN <expression_list>
| <expression_list> [NOT] IN <subquery>
| <expression_list> [NOT] IN (<expression_list>,...)

expression, expression_list, subquery

Erläuterung

Die Subquery (subquery) muss eine Ergebnistabelle (siehe Ergebnistabellenname) liefern, die so viele Spalten enthält wie Werte durch den Ausdruck (expression) auf der linken Seite des Operators IN angegeben sind.

Jede auf der rechten Seite des Operators IN angegebene Werteliste muss so viele Werte enthalten, wie in der Werteliste auf der linken Seite des Operators IN angegeben sind.

· x [NOT] IN S, wobei x <expression> und S <subquery> oder <expression_list>
Der Wert x und die Werte in S müssen miteinander vergleichbar sein.

· x [NOT] IN S, wobei x <expression_list> mit den Werten x1, x2, ..., xn und S <subquery> (Menge von Wertelisten s) oder (<expression_list>,...) (Folge von Wertelisten s) mit den Wertelisten s: s1, s2, ..., sn
Ein Wert xm muss mit allen Werten sm vergleichbar sein.
x=s ist wahr, wenn xm=sm, m=1,...,n
x=s ist falsch, wenn es mindestens ein m gibt, für das xm=sm falsch ist
x=s ist undefiniert, wenn es kein m gibt, für das xm=sm falsch ist, und es mindestens ein m gibt, für das xm=sm undefiniert ist.

In der folgenden Aufstellung bedeutet ‘------‘, daß keine Aussage getroffen werden kann, wenn nur das Ergebnis des Vergleichs mit einem s bekannt ist.

 | Ergebnis der Funktion x IN S
x=s ist wahr für mindestens ein s | wahr
x=s ist wahr für alle s | wahr
S enthält NULL-Werte und x=s ist wahr für die übrigen s | wahr
S ist leer | falsch
x=s ist falsch für mindestens ein s | ------
x=s ist falsch für alle s | falsch
S enthält NULL-Werte und x=s ist falsch für die übrigen s | undefiniert
x=s ist für kein s wahr und ist für wenigstens einen Wert s undefiniert | undefiniert

x NOT IN S hat das gleiche Ergebnis wie NOT(x IN S)

Beispieltabelle customer

Auswahl aller Kunden, die natürliche Personen (keine Firmen) sind:

SELECT title, firstname, name, city FROM customer
WHERE title IN ('Mr','Mrs')

TITLE | FIRSTNAME | NAME | CITY
Mrs | Jenny | Porter | New York
Mr | Martin | Porter | Los Angeles
Mrs | Sally | Peters | Los Angeles
Mr | Peter | Brown | Hollywood
Mr | Michael | Porter | New York
Mr | George | Howe | New York
Mr | Frank | Randolph | Los Angeles
Mr | Joseph | Peters | Los Angeles
Mrs | Susan | Brown | Los Angeles
Mr | Anthony | Jackson | Los Angeles
Mr | Thomas | Adams | Los Angeles
Mr | Mark | Griffith | New York
Mrs | Rose | Brown | Hollywood


JOIN-Prädikat (join_predicate) (MaxDB: Referenzhandbuch)

JOIN-Prädikat (join_predicate)

Ein JOIN-Prädikat (join_predicate) spezifiziert einen JOIN. Ein JOIN-Prädikat kann ohne, mit einem oder mit zwei OUTER JOIN-Indikatoren angegeben werden.

Syntax

<join_predicate> ::=
<expression> [<outer_join_indicator>] <comp_op> <expression> [<outer_join_indicator>]

<outer_join_inidicator> ::= (+)

expression, comp_op

Erläuterung

Jeder Ausdruck (expression) muß eine Spaltenspezifikation enthalten. Es muß eine Spaltenspezifikation des ersten Ausdrucks und eine Spaltenspezifikation des zweiten Ausdrucks geben, so daß sich die beiden Spaltenspezifikationen auf verschiedene Tabellennamen oder Referenznamen beziehen.

Sei x der Wert des ersten Ausdrucks und y der Wert des zweiten Ausdrucks. Die Werte x und y müssen vergleichbar sein.

Es gelten die in Vergleichsprädikat angegebenen Regeln.

Wenn mindestens ein OUTER JOIN-Indikator (outer_join_indicator) in einem JOIN-Prädikat einer Suchbedingung angegeben wird, dürfen dem entsprechenden Tabellenausdruck nur genau zwei Tabellen zugrundeliegen oder es muß folgendes gelten:

· Nur für eine der in der FROM-Klausel angegebenen Tabellen werden OUTER JOIN-Indikatoren angegeben.

· Alle JOIN-Prädikate dieser Tabelle zu genau einer anderen Tabelle enthalten jeweils den OUTER JOIN-Indikator.

· Alle anderen JOIN-Prädikate enthalten keinen OUTER JOIN-Indikator.

Wenn für einen JOIN mehr als zwei Tabellen für die QUERY-Spezifikation notwendig sind und kann eine der oben genannten Regeln nicht eingehalten werden, kann auch ein QUERY-Ausdruck in der FROM-Klausel verwendet werden.

Es werden nur solche Zeilen einer Tabelle in die Ergebnistabelle übertragen, die ein dem Vergleichsoperator (comp_op) entsprechendes Gegenstück in der anderen im JOIN-Prädikat angegebenen Tabelle haben.

Wenn sichergestellt werden soll, daß jede Zeile einer Tabelle mindestens einmal in der Ergebnistabelle enthalten ist, muß der OUTER JOIN-Indikator auf der Seite des Vergleichsoperators angegeben werden, auf der die andere Tabelle spezifiziert ist.
Es wird dann (wenn für eine Zeile einer Tabelle nicht mindestens ein Gegenstück in der anderen Tabelle gefunden werden kann) aus der Tabelle trotzdem eine Zeile für die Ergebnistabelle gebildet. Dabei wird für die Ausgabespalten, die aus Spalten der anderen Tabelle gebildet werden, der NULL-Wert verwendet.
Da der OUTER JOIN-Indikator auf beiden Seiten des Vergleichsoperators angegeben werden kann, wenn dem Tabellenausdruck nur genau zwei Tabellen zugrundeliegen, kann für beide Tabellen sichergestellt werden, daß jede Zeile mindestens einmal in der Ergebnistabelle enthalten ist.

Das JOIN-Prädikat ist ein Spezialfall des Vergleichsprädikats. Die Anzahl der JOIN-Prädikate in einer Suchbedingung ist auf 128 beschränkt.

JOIN-Prädikat

Beispieltabellen customer, reservation

Liegt für den Kunden 'Porter' eine Buchung vor? Wenn ja, wann?

SELECT reservation.rno, customer.name,customer.firstname, reservation.arrival, departure

FROM customer, reservation

WHERE customer.name = 'Porter' AND customer.cno = reservation.cno

RNO | NAME | FIRSTNAME | ARRIVAL | DEPARTURE
100 | Porter | Jenny | 13/11/2001 | 15/11/2001
110 | Porter | Jenny | 24/12/2001 | 06/01/2002
120 | Porter | Martin | 14/11/2001 | 18/11/2002

Angabe eines OUTER JOIN-Indikators

Beispieltabellen hotel, reservation

Liste aller Hotels in Los Angeles, zu denen Buchungen existieren und ebenfalls die, für die keine Buchung existiert: Der fehlende Eintrag einer Buchungsnummer wird mit einem NULL-Wert belegt.

SELECT hotel.hno, hotel.name, reservation.rno

FROM hotel, reservation

WHERE hotel.city = 'Los Angeles' AND hotel.hno = reservation.hno (+)

HNO | NAME | RNO
80 | Midtown | 100
50 | Lake Michigan | 120
80 | Midtown | 140
120 | Sunshine | 180
40 | Eigth Avenue | ?


LIKE-Prädikat (like_predicate) (MaxDB: Referenzhandbuch)

LIKE-Prädikat (like_predicate)

Ein LIKE-Prädikat (like_predicate) dient zur Suche nach Zeichenketten, die ein bestimmtes Muster haben. Dieses Muster kann eine bestimmte Zeichenkette sein, eine Folge von Zeichen mit unbekannter Anzahl oder eine Menge von Zeichen mit bestimmter Anzahl.

Syntax

<like_predicate> ::= <expression> [NOT] LIKE <like_expression> [ESCAPE <expression>]

<like_expression> ::= <expression> | '<pattern_element>...'

expression , pattern_element

Erläuterung

Der Ausdruck in like_expression muss einen alphanumerischen Wert oder einen Datums- oder Zeitwert liefern.

x NOT LIKE y hat das gleiche Ergebnis wie NOT(x LIKE y).

Ergebnis von x LIKE y

x oder y sind NULL-Werte

x LIKE y ist undefiniert

x und y sind Nicht-NULL-Werte

x LIKE y ist entweder wahr oder falsch

x lässt sich in Teilzeichenketten zerlegen, so dass gilt:

Eine Teilzeichenkette von x ist eine Folge von 0,1, oder eine Folge von mehreren benachbarten Zeichen und jedes Zeichen von x gehört genau zu einer Teilzeichenkette.

Die Anzahl der Teilzeichenketten von x und y ist gleich.

Das n-te Vergleichsmuster (pattern_element) von y ist eine Folge von Zeichen und die n-te Teilzeichenkette von x ist eine Folge von 0 oder mehr Zeichen.

x LIKE y ist wahr
ESCAPE

Die Verwendung eines Escape-Zeichens (ESCAPE <expression>) ist dann notwendig, wenn nach <underscore> oder % oder dem hexadezimalen Wert X'1E' oder X'1F' im LIKE-Prädikat gesucht werden soll.

Wenn ESCAPE <expression> angegeben wird, muss der zugehörige Ausdruck (expression) einen alphanumerischen Wert liefern, der aus genau einem Zeichen besteht. Ist dieses Escape-Zeichen im LIKE-Ausdruck (like_expression) enthalten, so muss das darauffolgende Zeichen eines der Sonderzeichen <underscore>, %, X’1E’ oder X’1F’ sein. Dieses Sonderzeichen wird dann als für sich selbst stehendes Zeichen angesehen.

Suchen einer beliebigen Zeichenkette mit der Minimallänge 1: LIKE '%_'
Suchen einer Zeichenkette, bei der eine feste Anzahl von Zeichen bekannt ist: LIKE'_c_'
Suchen einer Zeichenkette mit beliebig vielen Zeichen, wobei die Zeichenkette ein <underscore> enthalten muss: LIKE '%:_%'ESCAPE':'

Beispieltabelle customer

Kunden mit 'FT' am Ende des Kundennamens:

SELECT name, city FROM customer
WHERE name LIKE '%FT'

NAME | CITY
DATASOFT | Dallas

Kunden mit einem sechsstelligen Nachnamen, der mit 'P' beginnt:

SELECT name, firstname, city FROM customer
WHERE name LIKE 'P_ _ _ _ _'

NAME | FIRSTNAME | CITY
Porter | Jenny | New York
Porter | Martin | Los Angeles
Peters | Sally | Los Angeles
Porter | Michael | New York
Peters | Joseph | Los Angeles

Kunden mit einem 'p' ab der zweiten Stelle:

SELECT name, city FROM customer
WHERE name LIKE '_%p%'

NAME | CITY
Randolph | Los Angeles


pattern_element (MaxDB: Referenzhandbuch)

pattern_element

Element, um Vergleichsmuster (für ein LIKE-Prädikat ) anzugeben.Es kann mit einer Folge von Zeichen oder mit einer Menge von Zeichen verglichen werden.

Syntax

<pattern_element> ::= <match_string> | <match_set>

match_string , match_set


match_string (MaxDB: Referenzhandbuch)

match_string

Wenn ein match_string angegeben wird, bedeutet das, dass diese Stelle im Suchmuster durch eine beliebige Anzahl von Zeichen ersetzt werden kann.

Syntax

<match_string> ::= % | X'1F'

Erläuterung

Ein LIKE-Prädikat dient zur Suche nach Zeichenketten, die ein bestimmtes Muster haben. Zur Angabe des Musters (pattern_element) können match_string verwendet werden.

Beispieltabelle customer

Kunden mit einem beliebigstelligen Vornamen, der mit 'M' beginnt:

SELECT firstname, name FROM customer
WHERE firstname LIKE 'M%'

FIRSTNAME | NAME
Martin | Porter
Michael | Porter
Mark | Griffith


match_set (MaxDB: Referenzhandbuch)

match_set

Wenn ein match_set angegeben wird, bedeutet das, dass diese Stelle im Suchmuster durch die durch das match_setvorgegebene Anzahl von Zeichen ersetzt werden kann.

Syntax

<match_set> ::= <underscore> | X'1E' | <match_char>

<match_char>    ::= Jedes Zeichen außer %, X'1F', underscore, X'1E'

underscore

Erläuterung

Ein LIKE-Prädikat dient zur Suche nach Zeichenketten, die ein bestimmtes Muster haben. Zur Angaben des Musters (pattern_element) können match_set verwendet werden.

· <underscore> | X'1E' : diese Stelle im Muster kann durch genau ein beliebiges Zeichen ersetzt werden

· match_char : diese Stelle im Muster kann durch das angegebene Zeichen selbst ersetzt werden

Beispieltabelle customer

Kunden mit einem sechsstelligen Nachnamen, der mit 'P' beginnt:

SELECT name, firstname, city FROM customer
WHERE name LIKE 'P_ _ _ _ _'

NAME | FIRSTNAME | CITY
Porter | Jenny | New York
Porter | Martin | Los Angeles
Peters | Sally | Los Angeles
Porter | Michael | New York
Peters | Joseph | Los Angeles


NULL-Prädikat (null_predicate) (MaxDB: Referenzhandbuch)

NULL-Prädikat (null_predicate)

Durch Angabe eines NULL- Prädikat s ( null_predicate ) wird getestet, ob es sich um einen NULL-Wert handelt oder nicht.

Syntax

<null_predicate> ::= <expression> IS [NOT] NULL

expression

Erläuterung

Der Wahrheitswert eines NULL-Prädikats ist entweder wahr oder falsch.

 | Ergebnis der Funktion x IS NULL
x ist NULL-Wert | wahr
x ist Spezial-NULL-Wert | falsch

x IS NOT NULL hat das gleiche Ergebnis wie NOT(x IS NULL) .


Mengenvergleichsprädikat (quantified_predicate) (MaxDB: Referenzhandbuch)

Mengenvergleichsprädikat (quantified_predicate)

Durch die Angabe eines Mengenvergleichsprädikats (quantified_predicate) wird ein Vergleich eines Wertes bzw. einer Werteliste mit einer Menge von Werten bzw. Wertelisten durchgeführt.

Syntax

<quantified_predicate> ::=
  <expression> <comp_op> <quantifier> <expression_list>
| <expression> <comp_op> <quantifier> <subquery>
| <expression_list> <equal_or_not> <quantifier> (<expression_list>,...)
| <expression_list> <equal_or_not> <quantifier> <subquery>

subquery, expression_list

Für den Vergleich von Werten stehen folgende Vergleichsoperatoren zur Verfügung:
<, >, <>, !=, =, <=, >= (comp_op)

Für den Vergleich von Wertelisten stehen nur die Vergleichsoperatoren = und <> zur Verfügung (equal_or_not).

Zur Qualifizierung des Mengenvergleichs stehen ALL bzw. SOME oder ANY zur Verfügung (quantifier).

Erläuterung

Die Subquery (subquery) muß eine Ergebnistabelle (siehe Ergebnistabellenname) liefern, die so viele Spalten enthält wie Werte durch den Ausdruck (expression bzw. expression_list) auf der linken Seite des Operators erzeugt sind.

Jede auf der rechten Seite des Vergleichsoperators equal_or_not angegebene Werteliste (expression_list) muß so viele Werte enthalten, wie in der Werteliste vor dem Vergleichsoperator equal_or_not angegeben sind.

· Sei x das Ergebnis des ersten Wertes (expression) und S das Ergebnis der Subquery oder der Folge von Werten. S ist eine Menge von Werten s. Der Wert x und die Werte in S müssen miteinander vergleichbar sein.

· Wenn auf der linken Seite der Vergleichsopertors equal_or_not eine Werteliste (expression_list) angegeben ist, dann sei x die Werteliste, die sich aus den Ergebnissen der Werte x1, x2, ..., xn dieser Werteliste zusammensetzt. S sei das Ergebnis der Subquery, die sich aus einer Menge von Wertelisten s zusammensetzt. oder eine Folge von Wertelisten s. Eine Werteliste s setzt sich aus den Ergebnissen der Werte s1, s2, ..., sn zusammen. Ein Wert xm muss mit allen Werten sm vergleichbar sein.
x=s ist wahr, wenn xm=sm, m=1,...,n
x<>s ist wahr, wenn es mindestens ein m gibt, für das gilt xm<>sm.
x <equal_or_not> s ist undefiniert, wenn es kein m gibt, für das xm <equal_or_not> sm falsch ist und es mindestens ein m gibt, für das xm <equal_or_not> sm undefiniert ist.
Wenn ein xm oder ein ym NULL-Werte sind, oder wenn das Ergebnis der Subquery leer ist, dann ist x <equal_or_not> y undefiniert.

In der folgenden Aufstellung bedeutet ‘------‘, dass keine Aussage getroffen werden kann, wenn nur das Ergebnis des Vergleichs mit einem s bekannt ist.

x <compare> <quantifier> S, wobei compare ::= comp_op | equal_or_not

 | quantifier ::= ALL | quantifier ::= ANY | SOME
S ist leer | wahr | falsch
x <compare> S ist wahr für mindestens ein s aus S | ------ | wahr
x <compare> S ist wahr für alle s aus S | wahr | wahr
x <compare> S ist für keinen Wert s aus S falsch und ist wenigstens für einen Wert s undefiniert | undefiniert |
S enthält NULL-Werte und x <compare> S ist wahr für alle anderen s | undefiniert | wahr
x <compare> S ist für wenigstens einen Wert s aus S falsch | falsch | ------
x <compare> S ist falsch für alle s aus S | falsch | falsch
x <compare> S ist für keinen Wert aus aus S wahr und für wenigstens einen Wert s undefiniert |  | undefiniert
S enthält NULL-Werte und x <compare> S ist falsch für alle anderen s | falsch | undefiniert

Beispieltabelle hotel

Liste von Hotels, die dieselben Namen haben wie irgendwelche Orte in der Basistabelle.

SELECT name, city FROM hotel
WHERE name = ANY (SELECT city FROM hotel)

Die Subquery SELECT city FROM hotel ermittelt die Ortsnamenliste, mit der die Hotelnamen verglichen werden.

NAME | CITY
Los Angeles | Cincinatti
Long Beach | Long Beach
Dallas | Dallas


quantifier (MaxDB: Referenzhandbuch)

quantifier

Zur Qualifizierung des Mengenvergleichs (siehe Mengenvergleichsprädikat ) stehen ALL bzw. SOME oder ANY zur Verfügung

Syntax

<quantifier> ::= ALL | SOME | ANY


ROWNO-Prädikat (rowno_predicate) (MaxDB: Referenzhandbuch)

ROWNO-Prädikat (rowno_predicate)

Das ROWNO-Prädikat (rowno_predicate) beschränkt die Anzahl der Zeilen einer Ergebnistabelle.

Syntax

<rowno_predicate> ::= ROWNO < <unsigned_integer>
| ROWNO < <parameter_spec>
| ROWNO <= <unsigned_integer>
| ROWNO <= <parameter_spec>

unsigned_integer, parameter_spec

Erläuterung

Ein ROWNO-Prädikat darf nur in einer WHERE-Klausel verwendet werden, die zu einer QUERY-Anweisung gehört. Das ROWNO-Prädikat kann innerhalb der WHERE-Klausel wie jedes andere Prädikat verwendet werden, wenn folgende Einschränkungen beachtet werden:

· ROWNO-Prädikat muß mit den anderen Prädikaten logisch durch AND verknüpft sein

· ROWNO-Prädikat darf nicht negiert werden

· ROWNO-Prädikat darf höchstens einmal in der WHERE-Klausel verwendet werden

Durch die Angabe einer Integer-Zahl ohne Vorzeichen (unsigned_integer) oder eine Parameterspezifikation (parameter_spec) wird die maximale Anzahl der Zeilen angegeben, die die Ergebnistabelle aufweisen soll. Wurden mehr Zeilen gefunden, werden diese nicht betrachtet und führen auch nicht zu einer Fehlermeldung. Die Angabe eines ROWNO-Prädikats der Art ROWNO <= 0 führt zu einer leeren Ergebnistabelle.

Wird ein ROWNO-Prädikat und eine ORDER-Klausel angegeben, so werden nur die ersten n Ergebniszeilen gesucht und sortiert. Das Ergebnis unterscheidet sich im Normalfall von dem, das man erhalten hätte, wäre kein ROWNO-Prädikat angegeben gewesen, und hätte man dann die ersten n Ergebniszeilen betrachtet.

Wenn ein ROWNO-Prädikat und eine Set-Funktion angegeben werden, dann wird die Set-Funktion nur auf die durch das ROWNO-Prädikat beschränkte Anzahl der Ergebniszeilen angewandt.


SOUNDS-Prädikat (sounds_predicate) (MaxDB: Referenzhandbuch)

SOUNDS-Prädikat (sounds_predicate)

Durch die Angabe eines SOUNDS-Prädikats (sounds_predicate) wird ein phonetischen Vergleich durchgeführt.

Syntax

<sound_predicate> ::= <expression> [NOT] SOUNDS [LIKE] <expression>

expression

Erläuterung

Die Angabe von LIKE im SOUNDS-Prädikat hat keine Wirkung.

Die Werte der Ausdrücke (expression) müssen alphanumerisch sein (Codeattribut ASCII).

Ein phonetischer Vergleich zwischen Werten erfolgt nach dem SOUNDEX-Algorithmus. Dabei werden alle Vokale und einige Konsonanten eliminiert und alle ähnlich klingenden Konsonanten aufeinander abgebildet.

x [NOT] SOUNDS [LIKE] y

 | Ergebnis des Prädikats
x oder y ist NULL-Wert | x SOUNDS y ist undefiniert
x und y sind Nicht-NULL-Werte | x SOUNDS y ist wahr oder falsch
x und y sind phonetisch gleich | x SOUNDS y ist wahr

x NOT SOUNDS y hat das gleiche Ergebnis wie NOT (x SOUNDS y).

Siehe auch:

Stringfunktion SOUNDEX(x)


Suchbedingung (search_condition) (MaxDB: Referenzhandbuch)

Suchbedingung (search_condition)

Eine Suchbedingung (search_condition) verknüpft Aussagen, die wahr, falsch oder undefiniert sein können. Es können Zeilen in einer Tabelle gefunden werden, die mehrere Bedingungen erfüllen, die durch AND oder OR verknüpft werden.

Syntax

<search_condition> ::= <boolean_term> | <search_condition> OR <boolean_term>

<boolean_term> ::= <boolean_factor> | <boolean_term> AND <boolean_factor>

boolean_factor: Ermitteln der zu verknüpfenden booleschen Werte (BOOLEAN) bzw. deren Negation (NOT).

Erläuterung

In einer WHERE-Klausel werden Prädikate auf eine gegebene Zeile oder auf eine Gruppe von Zeilen einer Tabelle, die mit Hilfe der GROUP-Klausel gebildet wurde, angewendet. Diese Resultate werden mit den angegebenen booleschen Operatoren (AND, OR, NOT) verknüpft.

Bei fehlender Klammerung ist die Priorität der Operatoren folgendermaßen festgelegt: NOT bindet stärker als AND und OR, AND bindet stärker als OR. Bei gleicher Priorität erfolgt die Auswertung von links nach rechts.

NOT

x | NOT(x)
wahr | falsch
falsch | wahr
undefiniert | undefiniert

x AND y

x y | falsch | undefiniert | wahr
falsch | falsch | falsch | falsch
undefiniert | falsch | undefiniert | undefiniert
wahr | falsch | undefiniert | wahr

x OR y

x y | falsch | undefiniert | wahr
falsch | falsch | undefiniert | wahr
undefiniert | undefiniert | undefiniert | wahr
wahr | wahr | wahr | wahr

Beispieltabelle customer

Angabe von Kunden, die in New York wohnen oder ein Guthaben haben:

SELECT firstname, name, city, account FROM customer
WHERE city = 'New York' OR account > 0

FIRSTNAME | NAME | CITY | ACCOUNT
Jenny | Porter | New York | 100.00
? | DATASOFT | Dallas | 4813.50
Michael | Porter | New York | 0.00
George | Howe | New York | -315.40
Joseph | Peters | Los Angeles | 650.00
Mark | Griffith | New York | 0.00
? | TOOLware | Los Angeles | 3770.50
Rose | Brown | Hollywood | 440.00

Angabe von Kunden, die in Hollywood wohnen und ein Guthaben haben:

SELECT firstname, name, city, account FROM customer
WHERE city = 'Hollywood' AND account > 0

FIRSTNAME | NAME | CITY | ACCOUNT
Rose | Brown | Hollywood | 440.00


boolean_factor (MaxDB: Referenzhandbuch)

boolean_factor

Gibt an, wie die booleschen Werte ermittelt werden, die in einer Suchbedingung durch AND oder OR verbunden werden sollen.

Syntax

<boolean_factor> ::= [NOT] <predicate> | [NOT] (<search_condition>)

predicate , search_condition


Funktionen: Überblick (MaxDB: Referenzhandbuch)

Funktionen: Überblick

Liste aller Funktionsbezeichnungen

ABS | ACOS | ADDDATE
ADDTIME | ALPHA | ASCII
ASIN | ATAN | ATAN2
AVG |  |
CASE | CEIL | CHAR
CHR | COS | COSH
COT | COUNT |
DATE | DATEDIFF | DAY
DAYNAME | DAYOFMONTH | DAYOFWEEK
DAYOFYEAR | DECODE | DEGREES
EXP | EXPAND |
FIXED | FLOAT | FLOOR
GET_OBJECTNAME | GET_OWNER | GREATEST
HEX | HEXTORAW | HOUR
INDEX | INITCAP |
LEAST | LENGTH | LFILL
LN | LOG | LOWER
LPAD | LTRIM |
MAKEDATE | MAKETIME | MAX
MAPCHAR | MICROSECOND | MIN
MINUTE | MONTH | MONTHNAME
NOROUND | NUM |
PI | POWER |
RADIANS | REPLACE | RFILL
ROUND | RPAD | RTRIM
SECOND | SIGN | SIN
SINH | SOUNDEX |
SQRT | SUBDATE | SUBSTR
SUBTIME | STDDEV | SUM
TAN | TANH | TIME
TIMEDIFF | TIMESTAMP | TRANSLATE
TRIM | TRUNC |
UPPER |  |
VALUE | VARIANCE |
WEEKOFYEAR |  |
YEAR |  |
|| | & |


Funktion (function_spec) (MaxDB: Referenzhandbuch)

Funktion (function_spec)

Es gibt eine Reihe von Funktionen, die auf einen Wert (Zeile) als Argument angewandt werden (function_spec) und ein Ergebnis liefern.

Syntax

<function_spec> ::= <arithmetic_function> | <trigonometric_function>
| <string_function> | <date_function> | <time_function>
| <extraction_function> | <special_function> | <conversion_function>
| <dbfunction_call>

arithmetic_function, trigonometric_function, string_function, date_function, time_function, extraction_function, special_function, conversion_function, dbfunction_call

Erläuterung

Die Argumente und Ergebnisse der Funktionen sind numerische, alphanumerische oder boolesche Werte, die gewissen Einschränkungen unterliegen. LONG-Spalten sind als Argumente nicht zulässig.


Arithmetische Funktion (arithmetic_function) (MaxDB: Referenzhandbuch)

Arithmetische Funktion (arithmetic_function)

Eine arithmetische Funktion ( arithmetic_function ) ist eine Funktion , die als Ergebnis einen numerischen Wert liefert.

Syntax

<arithmetic_function> ::=
  TRUNC   ( <expression>[, <expression>] )
| ROUND   ( <expression>[, <expression>] )
| NOROUND ( <expression> )
| FIXED   ( <expression>[, <unsigned_integer> [, <unsigned_integer] ] )
| FLOAT   ( <expression>[, <unsigned_integer> ] )
| CEIL    ( <expression> )
| FLOOR   ( <expression> )
| SIGN    ( <expression> )
| ABS     ( <expression> )
| POWER   ( <expression>, <expression> )
| EXP     ( <expression> )
| SQRT    ( <expression> )
| LN      ( <expression> )
| LOG     ( <expression>, <expression> )
| PI
| LENGTH  ( <expression> )
| INDEX   ( <string_spec>, <string_spec> [,<expression>[, <expression>] ] )

expression , unsigned_integer , string_spec

TRUNC(a,n) , ROUND(a,n) , NOROUND(a) , FIXED(a,p,s) , FLOAT(a,s) , CEIL(a) , FLOOR(a) , SIGN(a) , ABS(a) , POWER(a,n) , EXP(a) , SQRT(a) , LN(a) , LOG(a,b) , PI , LENGTH(a) , INDEX(a,b,p,s)


ABS(a) (MaxDB: Referenzhandbuch)

ABS(a)

ABS(a) ist eine arithmetische Funktion , die den vorzeichenlosen Wert (Absolutbetrag) für die Zahl a ermittelt.

 | Ergebnis der Funktion ABS(a)
a ist NULL-Wert | NULL-Wert
a ist Spezial-NULL-Wert | Spezial-NULL-Wert


CEIL(a) (MaxDB: Referenzhandbuch)

CEIL(a)

CEIL(a) ist eine arithmetische Funktion , die den kleinsten ganzzahligen Wert bildet, der größer oder gleich der Zahl a ist.

Das Ergebnis ist eine Festkommazahl mit 0 Nachkommastellen.

Wenn es nicht möglich ist, das Ergebnis von CEIL(a) in einer Festkommazahl darzustellen, wird eine Fehlermeldung ausgegeben.

 | Ergebnis der Funktion CEIL(a)
a ist der NULL-Wert | NULL-Wert
a ist Spezial-NULL-Wert | Spezial-NULL-Wert


EXP(a) (MaxDB: Referenzhandbuch)

EXP(a)

EXP(a) ist eine arithmetische Funktion , die die Potenz aus der Basis e (2.71828183) und Exponent a ("e hoch a") bildet.

 | Ergebnis der Funktion EXP(a)
a ist NULL-Wert | NULL-Wert
a ist Spezial-NULL-Wert | Spezial-NULL-Wert


FIXED(a,p,s) (MaxDB: Referenzhandbuch)

FIXED(a,p,s)

FIXED(a,p,s) ist eine arithmetische Funktion , die zur Ausgabe der Zahl a in einem Format vom Datentyp FIXED (p,s) dient.

Die Nachkommastellen werden gegebenenfalls auf s Stellen nach dem Komma gerundet.

 | Ergebnis der Funktion FIXED(a,p,s)
Keine Angabe für s | Ergebnis wie für s=0
Keine Angabe für p | Ergebnis wie für p=38
ABS(a)>10exp(p-s) | Spezial-NULL-Wert
a ist der NULL-Wert | NULL-Wert
a ist Spezial-NULL-Wert | Spezial-NULL-Wert


FLOAT(a,s) (MaxDB: Referenzhandbuch)

FLOAT(a,s)

FLOAT(a,s) ist eine arithmetische Funktion , die die Zahl a in einem Format vom Datentyp FLOAT (s) ausgibt. Dabei wird gegebenenfalls auf s Stellen gerundet.

 | Ergebnis der Funktion FLOAT(a,s)
a ist NULL-Wert | NULL-Wert
a ist Spezial-NULL-Wert | Spezial-NULL-Wert


FLOOR(a) (MaxDB: Referenzhandbuch)

FLOOR(a)

FLOOR(a) ist eine arithmetische Funktion , die den größten ganzzahligen Wert bildet, der kleiner oder gleich der Zahl a ist.

Das Ergebnis ist eine Festkommazahl mit 0 Nachkommastellen.

Wenn es nicht möglich ist, das Ergebnis von FLOOR(a) in einer Festkommazahl darzustellen, wird eine Fehlermeldung ausgegeben.

 | Ergebnis der Funktion FLOOR(a)
a ist der NULL-Wert | NULL-Wert
a ist Spezial-NULL-Wert | Spezial-NULL-Wert


INDEX(a,b,p,s) (MaxDB: Referenzhandbuch)

INDEX(a,b,p,s)

INDEX(a,b,p,s) ist eine arithmetische Funktion, die die Position des in b angegebenen Substrings innerhalb der Zeichenkette a bestimmt.

Der Parameter p ist optional. Wenn p angegeben ist (p>=1), gibt er die Startposition für die Suche nach dem Substring b an. Wenn p nicht angegeben ist, so wird ab der Startposition 1 gesucht.

Der Parameter s ist optional. Wenn s angegeben ist, gibt er an, nach dem wievielten Auftreten des Substrings b gesucht werden soll. Wenn s nicht angegeben ist, so wird nach dem ersten Auftreten gesucht.

 | Ergebnis der Funktion INDEX(a,b,p,s)
a, b Zeichenketten und b nicht mindestens s-mal Substring von a | 0
a Zeichenkette und b leere Zeichenkette | p
a,b,p oder s ist NULL-Wert | NULL-Wert
p oder s ist Spezial-NULL-Wert | Fehlermeldung

Beispieltabelle customer

In allen Nachnamen von Kunden soll die Position der Zeichenkette 'er' bestimmt werden.

SELECT name, INDEX(name,'er') position_er FROM customer

NAME | POSITION_ER
Porter | 5
DATASOFT | 0
Porter | 5
Peters | 4
Brown | 0
Porter | 5
Howe | 0
Randolph | 0
Peters | 4
Brown | 0
Jackson | 0
Adams | 0
Griffith | 0
TOOLware | 0
Brown | 0


LENGTH(a) (MaxDB: Referenzhandbuch)

LENGTH(a)

LENGTH(a) ist eine arithmetische Funktion, die die Anzahl von Zeichen bzw. Bytes angibt, die zur internen Darstellung des Wertes a notwendig sind. Die Funktion kann auf alle Datentypen außer LONG angewandt werden.

 | Ergebnis der Funktion LENGTH(a)
a ist ein Wert vom Datentyp CHAR|VARCHAR <ASCII|UNICODE> mit n Zeichen | Anzahl der Zeichen n
a ist ein Wert von einem der anderen Datentypen (außer LONG) der Länge n | Länge n in Bytes
a ist NULL-Wert | NULL-Wert
a ist Spezial-NULL-Wert | Spezial-NULL-Wert

Die Bestimmung der Anzahl der Zeichen bzw. der Länge in Bytes erfolgt ohne Berücksichtigung von nachfolgenden Leerzeichen (Codeattribut ASCII, UNICODE) bzw. binären Nullen (Codeattribut BYTE).

Beispieltabelle customer

Die Tabelle customer wird nach der Länge der Nachnamen sortiert, bei gleicher Namenslänge alphabetisch aufsteigend.

SELECT name, LENGTH(name) mylength
FROM customer ORDER BY mylength, name

NAME | MYLENGTH
Howe | 4
Adams | 5
Brown | 5
Brown | 5
Brown | 5
Peters | 6
Peters | 6
Porter | 6
Porter | 6
Porter | 6
Jackson | 7
DATASOFT | 8
Griffith | 8
Randolph | 8
TOOLware | 8


LN(a) (MaxDB: Referenzhandbuch)

LN(a)

LN(a) ist eine arithmetische Funktion , die den natürliche Logarithmus der Zahl a bildet.

 | Ergebnis der Funktion LN(a)
a ist NULL-Wert | NULL-Wert
a ist Spezial-NULL-Wert | Spezial-NULL-Wert


LOG(a,b) (MaxDB: Referenzhandbuch)

LOG(a,b)

LOG(a,b) ist eine arithmetische Funktion , die den Logarithmus der Zahl b zur Basis a bildet.

 | Ergebnis der Funktion LOG(a,b)
a oder b ist NULL-Wert | NULL-Wert
b ist Spezial-NULL-Wert | Spezial-NULL-Wert


NOROUND(a) (MaxDB: Referenzhandbuch)

NOROUND(a)

NOROUND(a) ist eine arithmetische Funktion , die verhindert, daß bei einer UPDATE- oder INSERT-Anweisung das Ergebnis gerundet wird, um es dem Datentyp der Zielspalte anzupassen.

Wenn die nicht gerundete Zahl nicht zum Datentyp der Zielspalte paßt, wird eine Fehlermeldung ausgegeben.

 | Ergebnis der Funktion NOROUND(a)
a ist der NULL-Wert | NULL-Wert
a ist Spezial-NULL-Wert | Spezial-NULL-Wert


PI (MaxDB: Referenzhandbuch)

PI

PI ist eine arithmetische Funktion , die den Wert p ausgibt.


POWER(a,n) (MaxDB: Referenzhandbuch)

POWER(a,n)

POWER(a,n) ist eine arithmetische Funktion , die die n-te Potenz der Zahl a bildet.

Wenn n kein ganzzahliger Wert ist, dann wird eine Fehlermeldung ausgegeben.

 | Ergebnis der Funktion POWER(a,n)
a oder n ist NULL-Wert | NULL-Wert
a ist Spezial-NULL-Wert | Spezial-NULL-Wert


ROUND(a,n) (MaxDB: Referenzhandbuch)

ROUND(a,n)

ROUND(a,n) ist eine arithmetische Funktion mit folgendem Ergebnis (für die Zahlen a und n):

ROUND(a) - Auf- und Abrunden von Dezimalstellen
ROUND(a,n) - Auf- und Abrunden auf die n-te Stelle rechts vom Dezimalpunkt
ROUND(a,-n) - Auf- und Abrunden auf die n-te Stelle links vom Dezimalpunkt

 | Ergebnis der Funktion ROUND(a,n)
a>=0 | TRUNC (a+0.5*10E-n,n)
a<0 | TRUNC(a-0.5*10E-n,n)
Keine Angabe für n | Ergebnis wie für n=0
n ist nicht ganzzahlig | Der ganzzahlige Teil von n wird verwendet und das Ergebnis ist entsprechend wie bei a>=0 bzw. a<0
a ist Gleitkommazahl | Gleitkommazahl
a ist Festkommazahl | Festkommazahl
a ist der NULL-Wert | NULL-Wert
a ist Spezial-NULL-Wert | Spezial-NULL-Wert


SIGN(a) (MaxDB: Referenzhandbuch)

SIGN(a)

SIGN(a) ist eine arithmetische Funktion , die Auskunft über das Vorzeichen der Zahl a gibt.

 | Ergebnis der Funktion SIGN(a)
a<0 | -1
a=0 | 0
a>0 | 1
a ist der NULL-Wert | NULL-Wert
a ist Spezial-NULL-Wert | Spezial-NULL-Wert


SQRT(a) (MaxDB: Referenzhandbuch)

SQRT(a)

SQRT(a) ist eine arithmetische Funktion , die die Quadratwurzel der Zahl a errechnet.

 | Ergebnis der Funktion SQRT(a)
a>0 | Quadratwurzel von a
a=0 | 0
a<0 oder a ist NULL-Wert | NULL-Wert
a ist Spezial-NULL-Wert | Spezial-NULL-Wert


TRUNC(a,n) (MaxDB: Referenzhandbuch)

TRUNC(a,n)

TRUNC(a,n) ist eine arithmetische Funktion mit folgendem Ergebnis (für die Zahlen a und n):

TRUNC(a) - Abschneiden der Dezimalstellen von a
TRUNC(a,n) - Abschneiden der Zahl a nach n Stellen hinter dem Komma
TRUNC(a,-n) - Setzen von n Stellen der Zahl a vor dem Dezimalpunkt auf 0

 | Ergebnis der Funktion TRUNC(a,n)
n>0 | Zahl a, die n Stellen nach dem Komma abgeschnitten wird
n=0 | Ganzzahliger Teil von a
n<0 | Zahl a, die s Stellen vor dem Komma abgeschnitten wird
Keine Angabe für n | Wie bei n=0
n ist nicht ganzzahlig | Der ganzzahlige Teil von n wird verwendet und das Ergebnis ist entsprechend wie bei n>0, n=0 bzw. n<0
a ist Gleitkommazahl | Gleitkomma zahl
a ist Festkommazahl | Festkomma zahl
a ist der NULL-Wert | NULL-Wert
a ist Spezial-NULL-Wert | Spezial-NULL-Wert


Trigonometrische Funktion (trigonometric_function) (MaxDB: Referenzhandbuch)

Trigonometrische Funktion (trigonometric_function)

Eine trigonometrische Funktion ( trigonometric_function ) ist eine Funktion , die als Ergebnis einen numerischen Wert liefert.

Syntax

<trigonometric_function> ::=
  COS     ( <expression> )
| SIN     ( <expression> )
| TAN     ( <expression> )
| COT     ( <expression> )
| COSH    ( <expression> )
| SINH    ( <expression> )
| TANH    ( <expression> )
| ACOS    ( <expression> )
| ASIN    ( <expression> )
| ATAN    ( <expression> )
| ATAN2   ( <expression>, <expression> )
| RADIANS ( <expression> )
| DEGREES ( <expression> )

expression

Alle Werte ( expression ) in allen trigonometrischen Funktionen bezeichnen eine Angabe in Bogenmaß. Einzige Ausnahme ist die Funktion RADIANS.

 | Ergebnis der trigonometrischen Funktion
<expression> ist NULL-Wert | NULL-Wert
<expression> ist Spezial-NULL-Wert | Spezial-NULL-Wert
COS(a) | Kosinus der Zahl a
SIN(a) | Sinus der Zahl a
TAN(a) | Tangens der Zahl a
COT(a) | Kotangens der Zahl a
COSH(a) | Kosinus hyperbolicus der Zahl a
SINH(a) | Sinus hyperbolicus der Zahl a
TANH(a) | Tangens hyperbolicus der Zahl a
ACOS(a) | Arcus Kosinus der Zahl a
ASIN(a) | Arcus Sinus der Zahl a
ATAN(a) | Arcus Tangens der Zahl a
ATAN2(a,b) | Arcus Tangens des Wertes a/b, wenn -p<=a<=+ p und - p<=b<=+ p
ASIN(a) | Arcus Sinus der Zahl a
RADIANS(a) | Bogenmaß der Zahl a
DEGREES(a) | Gradmaß der Zahl a


Stringfunktion (string_function) (MaxDB: Referenzhandbuch)

Stringfunktion (string_function)

Eine Stringfunktion (string_function) ist eine Funktion, die als Ergebnis einen alphanumerischen Wert liefert.

Syntax

<string_function> ::=
  <string_spec> || <string_spec>
| <string_spec> & <string_spec>
|  SUBSTR    (<string_spec>,<expression>[,<expression>])
| LFILL     (<string_spec>,<string_literal>[,<unsigned_integer>])
| RFILL     (<string_spec>,<string_literal>[,<unsigned_integer>])
| LPAD      (<string_spec>,<expression>,<string_literal>[,<unsigned_integer>])
| RPAD      (<string_spec>,<expression>,<string_literal>[,<unsigned_integer>])
| TRIM      (<string_spec>[,<string_spec>])
| LTRIM     (<string_spec>[,<string_spec>])
| RTRIM     (<string_spec>[,<string_spec>])
| EXPAND    (<string_spec>,<unsigned_integer>)
| UPPER     (<string_spec>)
| LOWER     (<string_spec>)
| INITCAP   (<string_spec>)
| REPLACE   (<string_spec>,<string_spec>[,<string_spec>])
| TRANSLATE (<string_spec>,<string_spec>,<string_spec>)
| MAPCHAR   (<string_spec>[,<unsigned_integer>][,<mapchar_set_name>])
| ALPHA     (<string_spec>[,<unsigned_integer>])
| ASCII     (<string_spec>)
| SOUNDEX   (<string_spec>)
| GET_OBJECTNAME (<string_literal>)
| GET_OWNER      (<string_literal>)

string_spec, expression, string_literal, unsigned_integer, mapchar_set_name

Verkettung (x||y bzw x&y), SUBSTR(x,a,b), LFILL(x,a,n), RFILL(x,a,n), LPAD(x,a,y,n), RPAD(x,a,y,n), TRIM(x,y), LTRIM(x,y), RTRIM(x,y), EXPAND(x,n), UPPER(x)/LOWER(x), INITCAP(x), REPLACE(x,y,z), TRANSLATE(x,y,z), MAPCHAR(x,n,i), ALPHA(x,n), ASCII(x), SOUNDEX(x), GET_OBJECTNAME(x,o), GET_OWNER(x,o)


ALPHA(x,n) (MaxDB: Referenzhandbuch)

ALPHA(x,n)

ALPHA(x,n) ist eine Stringfunktion, die das Umsetzen eines Zeichens x, das in ASCII verschlüsselt ist, in eine andere in der DEFAULTMAP (mapchar_set_name) festgelegte Ein- oder Zwei-Zeichendarstellung ermöglicht. ALPHA(x,n) wird verwendet, um die Sortierreihenfolge zu beeinflussen.

Die Funktion ALPHA(x,n) greift intern auf die Funktion MAPCHAR(x,n,i) zurück (wobei i die DEFAULTMAP ist) und nimmt zusätzlich eine Umwandlung in Großbuchstaben vor (UPPER(x)).

Der Parameter n ist optional, n gibt die maximale Länge des Ergebnisses an.

 | Ergebnis der Funktion ALPHA(x,n)
ALPHA(x,n) | UPPER(MAPCHAR(x,n,DEFAULTMAP))

Die Funktion ALPHA ermöglicht eine sinnvolle Sortierung, z.B. wenn "ü" als "UE" einsortiert werden soll. Es wird das MAPCHAR SET mit dem Namen DEFAULTMAP verwendet.

SELECT...,ALPHA(<column_name>) sort,...FROM...ORDER BY sort


ASCII(x) (MaxDB: Referenzhandbuch)

ASCII(x)

ASCII(x) ist ein Stringfunktion, die eine Zeichenkette x mit dem Codeattribut ASCII oder UNICODE (falls diese ASCII-Daten sind) in ASCII-Daten umwandelt.

 | Ergebnis der Funktion ASCII(x)
Codeattribut für x ist ASCII oder UNICODE | ASCII(x) ist eine Zeichenkette in ASCII-Darstellung
x ist NULL-Wert | NULL-Wert

Die Anwendung der Funktionen ASCII ist dann sinnvoll, wenn eine Sortierung oder ein Vergleich im ASCII-Code durchgeführt werden soll.

Ausgabe einer sortierten Ergebnistabelle in ASCII-Reihenfolge:

SELECT ASCII(name) FROM...WHERE...ORDER BY 1


EXPAND(x,n) (MaxDB: Referenzhandbuch)

EXPAND(x,n)

EXPAND(x,n) ist eine Stringfunktion, die am Ende der Zeichenkette x soviele Leerzeichen (Codedeattribut ASCII, UNICODE) bzw. binäre Nullen (Codeattribut BYTE) anfügt, bis eine Länge erreicht ist, die durch n festgelegt ist.

 | Ergebnis der Funktion EXPAND(x,n)
x ist NULL-Wert | NULL-Wert

Siehe auch:

LFILL(x,a,n)

RFILL(x,a,n)


GET_OBJECTNAME(x,o) (MaxDB: Referenzhandbuch)

GET_OBJECTNAME(x,o)

Die Stringfunktion GET_OBJECTNAME(x,o) liefert den Namen des Datenbankobjekts.

x: Bezeichnung des Objekts
Das Argument x ist ein Stringliteral der Form [<owner>.]<identifier> bzw. ein Character-Parameter dieser Art.
Eigentümer (<owner>) bzw. Bezeichner (<identifier>) können spezielle Bezeichner sein.

o: Objekttyp
Sie können eines der folgenden Schlüsselworte verwenden:
DBPROC[EDURE]: Datenbankprozedur
DOMAIN: Wertebereich
SEQUENCE: Sequenz
SYNONYM: Synonym
VIEW: View-Tabelle
TABLE: Tabelle

 | Ergebnis der Funktion GET_OBJECTNAME(x,o)
x bezeichnet ein Objekt, das nicht vom Objekttyp o ist | NULL-Wert
Das Objekt x existiert nicht | NULL-Wert
Das Objekt x existiert, jedoch besitzt der aktuelle Benutzer keinerlei Privilegien für dieses Objekt | NULL-Wert
Das Objekt x existiert für den unter <owner> angegebenen Eigentümer und der aktuelle Benutzer besitzt irgendein Privileg für dieses Objekt | <identifier>
Das Objekt x existiert und der aktuelle Benutzer besitzt irgendein Privileg für dieses Objekt | In der Suchhierarchie zuerst gefundener Objektname

Für einige Objekttypen gibt es keine Suchhierarchie. In diesem Fall wird das Objekt nur im Schema des aktuellen Benutzers gesucht.


GET_OWNER(x,o) (MaxDB: Referenzhandbuch)

GET_OWNER(x,o)

Die Stringfunktion GET_OWNER(x,o) liefert den Namen des Eigentümers des angegebenen Datenbankobjekts.

x: Bezeichnung des Objekts
Das Argument x ist ein Stringliteral der Form [<owner>.]<identifier> bzw. ein Character-Parameter dieser Art.
Eigentümer (<owner>) bzw. Bezeichner (<identifier>) können spezielle Bezeichner sein.

o: Objekttyp
Sie können eines der folgenden Schlüsselworte verwenden:
DBPROC[EDURE]: Datenbankprozedur
DOMAIN: Wertebereich
SEQUENCE: Sequenz
SYNONYM: Synonym
VIEW: View-Tabelle
TABLE: Tabelle

 | Ergebnis der Funktion GET_OWNER(x,o)
x bezeichnet ein Objekt, das nicht vom Objekttyp o ist | NULL-Wert
Das Objekt x existiert nicht | NULL-Wert
Das Objekt x existiert, jedoch besitzt der aktuelle Benutzer keinerlei Privilegien für dieses Objekt | NULL-Wert
Das Objekt x existiert für den unter <owner> angegebenen Eigentümer und der aktuelle Benutzer besitzt irgendein Privileg für dieses Objekt | <owner>
Das Objekt x existiert und der aktuelle Benutzer besitzt irgendein Privileg für dieses Objekt | In der Suchhierarchie zuerst gefundener Eigentümer dieses Objekts

Für einige Objekttypen gibt es keine Suchhierarchie. In diesem Fall wird das Objekt nur im Schema des aktuellen Benutzers gesucht.


INITCAP(x) (MaxDB: Referenzhandbuch)

INITCAP(x)

INITCAP(x) ist eine Stringfunktion, die eine Zeichenkette so ändert, dass jeweils der erste Buchstabe eines Wortes ein Grossbuchstabe ist, der Rest Kleinbuchstaben. Wörter werden dabei durch ein oder mehrere Zeichen getrennt, die zur Zeichenmenge des 7-Bit-ASCII gehören und weder Buchstaben noch Ziffern sind (z.B. Komma, Leerzeichen, Doppelpunkt).

 | Ergebnis der Funktion INITCAP(x)
x ist NULL-Wert | NULL-Wert

Beispieltabelle customer

Vereinheitlichung der Schreibweisen von Namen

SELECT name, INITCAP(name) new_name
FROM customer WHERE firstname IS NULL

NAME | NEW_NAME
DATASOFT | Datasoft
TOOLware | Toolware


LFILL(x,a,n) (MaxDB: Referenzhandbuch)

LFILL(x,a,n)

LFILL(x,a,n) ist eine Stringfunktion, die an den Anfang der Zeichenkette x die Zeichenkette a so oft einfügt, bis die Zeichenkette die Länge n erreicht. Kann die Zeichenkette a nicht vollständig eingefügt werden, ohne die angegebene Gesamtlänge zu überschreiten, so wird von ihr nur der Teil eingefügt, der zum Erreichen der Gesamtlänge notwendig ist.

 | Ergebnis der Funktion LFILL(x,a,n)
LFILL(x,a) x muß eine CHAR- oder VARCHAR-Spalte bezeichnen. | Die Spalte x wird bis zu ihrer Maximallänge mit den Zeichen von a aufgefüllt.
x ist NULL-Wert | NULL-Wert
a oder n ist NULL-Wert | Fehlermeldung

Beispieltabelle customer

SELECT LFILL (firstname,' ',8) firstname, name, city
FROM customer
WHERE firstname IS NOT NULL AND city = 'Los Angeles'

FIRSTNAME | NAME | CITY
Martin | Porter | Los Angeles
Sally | Peters | Los Angeles
Frank | Randolph | Los Angeles
Joseph | Peters | Los Angeles
Susan | Brown | Los Angeles
Anthony | Jackson | Los Angeles
Thomas | Adams | Los Angeles

RFILL(x,a,n)

EXPAND(x,n)


LPAD(x,a,y,n) (MaxDB: Referenzhandbuch)

LPAD(x,a,y,n)

LPAD(x,a,y,n) ist eine Stringfunktion, die an den Anfang der Zeichenkette x die Zeichenkette y so oft einfügt, wie es der Parameter a angibt. In der Zeichenkette x werden führende und nachfolgende Leerzeichen abgeschnitten. Der optionale Parameter n definiert die maximale Gesamtlänge der dabei entstehenden Zeichenkette.

Das Ergebnis des Parameters a muß eine nicht-negative ganze Zahl sein.

Der optionale Parameter n muß größer oder gleich der Summe LENGTH(x)+a*LENGTH(y) sein.

 | Ergebnis der Funktion LPAD(x,a,y,n)
LPAD(x,a,y) x muß eine CHAR- oder VARCHAR-Spalte bezeichnen. | Die Zeichenkette erhält als Maximallänge die Länge der Zeichenkette x.
x oder a ist NULL-Wert | NULL-Wert
a ist der Spezial-NULL-Wert | Fehlermeldung

Beispieltabelle customer

Erzeugen von Balkendiagrammen: LPAD fügt vor dem ersten Parameter (hier ein Leerzeichen) Sternchen ein. Dies geschieht in der Anzahl des durch 100 dividierten Kontostandes.

SELECT name, account, LPAD(' ',TRUNC(account/100),'*',50) graph
FROM customer WHERE account > 0 ORDER BY account DESC

NAME | ACCOUNT | GRAPH
DATASOFT | 4813.50 | ************************************************
TOOLware | 3770.50 | *************************************
Peters | 650.00 | ******
Brown | 440.00 | ****
Porter | 100.00 | *

Siehe auch:

RPAD(x,a,y,n)


LTRIM(x,y) (MaxDB: Referenzhandbuch)

LTRIM(x,y)

LTRIM(x,y) ist eine Stringfunktion, die am Anfang der Zeichenkette x alle in der Zeichenkette y angegebenen Zeichen entfernt. Das Ergebnis von LTRIM(x,y) beginnt daher mit dem ersten Zeichen, das nicht in y angegeben wurde.

 | Ergebnis der Funktion LTRIM(x,y)
LTRIM(x) | Es werden nur die Leerzeichen (Codeattribut ASCII, UNICODE) bzw. die binären Nullen (Codeattribut BYTE) aus x entfernt.
x ist NULL-Wert | NULL-Wert

Siehe auch:

TRIM(x,y)

RTRIM(x,y)


MAPCHAR(x,n,i) (MaxDB: Referenzhandbuch)

MAPCHAR(x,n,i)

MAPCHAR(x,n,i) ist eine Stringfunktion, die das Umsetzen von länderspezifischen Buchstaben in eine andere Repräsentation ermöglicht (z.B. die deutschen Umlaute, französische Buchstaben mit Accent grave).

MAPCHAR(x,n,i) setzt die Zeichenkette x unter Zuhilfenahme des Mapchar-Sets mit dem Namen i (mapchar_set_name) um. Wenn kein Mapchar-Set-Name angegeben wird, wird das Mapchar-Set mit dem Namen DEFAULTMAP (definiert für den ASCII-Code) verwendet.

Der der Zeichenkette x und dem verwendeten Mapchar-Set zugrundeliegende Code muss übereinstimmen.

Der Parameter n ist optional, n gibt die maximale Länge des Ergebnisses an.

 | Ergebnis der Funktion MAPCHAR(x,n,i)
MAPCHAR(x,i) | MAPCHAR(x,n,i), wobei n die Länge der Zeichenkette x ist
MAPCHAR(x,i) x ist CHAR- oder VARCHAR-Spalte | MAPCHAR(x,n,i), wobei n die Länge der Spalte x ist
MAPCHAR(x) | MAPCHAR(x,DEFAULTMAP)
x ist NULL-Wert | NULL-Wert

Die Funktion MAPCHAR ermöglicht eine sinnvolle Sortierung, z.B. wenn "ü" als "ue" einsortiert werden soll. Es wird das MAPCHAR SET mit dem Namen DEFAULTMAP verwendet.

SELECT...,MAPCHAR(<column_name>) sort,...FROM...ORDER BY sort


REPLACE(x,y,z) (MaxDB: Referenzhandbuch)

REPLACE(x,y,z)

REPLACE(x,y,z) ist eine Stringfunktion, die in der Zeichenkette x die Zeichenkette y durch die Zeichenkette z ersetzt.

 | Ergebnis der Funktion REPLACE(x,y,z)
REPLACE(x,y) | Die Zeichenkette y wird in x gelöscht
x ist NULL-Wert | NULL-Wert
y ist NULL-Wert | x bleibt unverändert
z ist NULL-Wert | Die Zeichenkette y wird in x gelöscht

Beispieltabelle hotel

Die abgekürzte Schreibweise für Straße (Str.) soll durch die vollständige Schreibweise (Street) ersetzt werden, um eine einheitliche Darstellung zu erreichen.

SELECT hno, zip, city, REPLACE (address,' tr.' ,' treet' ) address

FROM hotel where address like '%tr%'

HNO | ZIP | CITY | ADDRESS
10 | 89477 | Detroit | 155 Beechwood Street
20 | 86159 | Cincinnati | 1499 Grove Street
80 | 20251 | Los Angeles | 12 Barnard Street
100 | 50668 | Dallas | 1980 34th Street
110 | 81245 | New York | 111 78th Street

Siehe auch:

TRANSLATE(x,y,z)


RFILL(x,a,n) (MaxDB: Referenzhandbuch)

RFILL(x,a,n)

RFILL(x,a,n) ist eine Stringfunktion , die an das Ende der Zeichenkette x die Zeichenkette a so oft einfügt, bis die Zeichenkette die Länge n erreicht. Kann die Zeichenkette a nicht vollständig eingefügt werden, ohne die angegebene Gesamtlänge zu überschreiten, so wird von ihr nur der Teil eingefügt, der zum Erreichen der Gesamtlänge notwendig ist.

 | Ergebnis der Funktion RFILL(x,a,n)
RFILL(x,a) x muß eine CHAR- oder VARCHAR-Spalte bezeichnen. | Die Spalte x wird bis zu ihrer Maximallänge mit den Zeichen von a aufgefüllt.
x ist NULL-Wert | NULL-Wert
a oder n ist NULL-Wert | Fehlermeldung

Siehe auch:

LFILL(x,a,n)

EXPAND(x,n)


RPAD(x,a,y,n) (MaxDB: Referenzhandbuch)

RPAD(x,a,y,n)

RPAD(x,a,y,n) ist eine Stringfunktion , die an das Ende der Zeichenkette x die Zeichenkette y so oft einfügt, wie es der Parameter a angibt. In der Zeichenkette x werden führende und nachfolgende Leerzeichen abgeschnitten. Der optionale Parameter n definiert die maximale Gesamtlänge der dabei entstehenden Zeichenkette.

Das Ergebnis des Parameters a muß eine nicht-negative ganze Zahl sein.

Der optionale Parameter n muß größer oder gleich der Summe LENGTH (x)+a*LENGTH(y) sein.

 | Ergebnis der Funktion RPAD(x,a,y,n)
RPAD(x,a,y) x muß eine CHAR- oder VARCHAR-Spalte bezeichnen. | Die Zeichenkette erhält als Maximallänge die Länge der Zeichenkette x.
x oder a ist NULL-Wert | NULL-Wert
a ist der Spezial-NULL-Wert | Fehlermeldung

Siehe auch:

LPAD(x,a,y,n)


RTRIM(x,y) (MaxDB: Referenzhandbuch)

RTRIM(x,y)

RTRIM(x,y) ist eine Stringfunktion, die am Ende der Zeichenkette x die Leerzeichen (Codeattribut ASCII, UNICODE) bzw. die binären Nullen (Codeattribut BYTE) und anschließend alle in der Zeichenkette y angegebenen Zeichen entfernt. Das Ergebnis von RTRIM(x,y) endet daher mit dem letzten Zeichen, das nicht in y angegeben wurde.

 | Ergebnis der Funktion RTRIM(x,y)
RTRIM(x) | Es werden nur die Leerzeichen (Codeattribut ASCII, UNICODE) bzw. die binären Nullen (Codeattribut BYTE) aus x entfernt.
x ist NULL-Wert | NULL-Wert

Siehe auch:

TRIM(x,y)

LTRIM(x,y)


SOUNDEX(x) (MaxDB: Referenzhandbuch)

SOUNDEX(x)

SOUNDEX(x) ist eine Stringfunktion , die eine Zeichenkette x in eine Repräsentation umsetzt, die der sogenannte Soundex-Algorithmus erzeugt.

Diese Darstellung kann verwendet werden, wenn der Anwender die Schreibweise eines Suchbegriffs nicht genau kennt.

 | Ergebnis der Funktion SOUNDEX(x)
SOUNDEX(x) | Anwendung des Soundex-Algorithmus, Ergebnis ist ein Wert vom Datentyp CHAR(4)
x ist NULL-Wert | NULL-Wert

Das SOUNDS-Prädikat wird häufig auf eine Spalte x angewandt.

Da dabei Invertierungen nicht ausgenutzt werden können, empfiehlt es sich aus Performancegründen zusätzlich eine Tabellenspalte x1 vom Datentyp CHAR(4) zu definieren, in die das Ergebnis von SOUNDEX(x) eingefügt wird.

Die Abfragen sollte sich dann auf die Spalte x1 beziehen:
verwenden Sie nicht x SOUNDS LIKE <string_literal> ,
sondern x1= SOUNDEX(<string_literal>)


SUBSTR(x,a,b) (MaxDB: Referenzhandbuch)

SUBSTR(x,a,b)

SUBSTR(x,a,b) ist eine Stringfunktion, die einen Teilbereich von x (Zeichenkette der Länge n) ausgibt.

 | Ergebnis der Funktion SUBSTR(x,a,b)
SUBSTR(x,a,b) | Teil der Zeichenkette x, der an dem a-ten Zeichen beginnt und b Zeichen lang ist.
SUBSTR(x,a) | SUBSTR(x,a,n-a+1) – liefert alle Zeichen der Zeichenkette x vom a-ten Zeichen bis zum letzten (n-ten) Zeichen.
b ist einer Integer-Zahl ohne Vorzeichen | SUBSTR(x,a,b) Für b ist auch ein Wert zulässig, der größer als (n-a+1) ist.
b ist keine Integer-Zahl ohne Vorzeichen | SUBSTR(x,a,b) b darf den Wert (n-a+1) nicht übersteigen.
b>(n-a+1) | SUBSTR(x,a) An dieses Ergebnis werden am Ende so viele Leerzeichen (Codeattribut ASCII, UNICODE) bzw. binäre Nullen (Codeattribut BYTE) angefügt, bis das Ergebnis die Länge b hat.
x, a oder b ist NULL-Wert | NULL-Wert

Beispieltabelle customer

Der Vorname wird mit Hilfe der SUBSTR-Funktion auf einen Buchstaben verkürzt, mit Abkürzungspunkt und Leerzeichen versehen und mit dem Nachnamen verkettet.

SELECT SUBSTR (firstname,1,1)&'. '&name name, city
FROM customer WHERE firstname IS NOT NULL

NAME | CITY
J. Porter | New York
M. Porter | Los Angeles
S. Peters | Los Angeles
P. Brown | Hollywood
M. Porter | New York
G. Howe | New York
F. Randolph | Los Angeles
J. Peters | Los Angeles
S. Brown | Los Angeles
A. Jackson | Los Angeles
T. Adams | Los Angeles
M. Griffith | New York
I. Braun | Los Angeles


TRANSLATE(x,y,z) (MaxDB: Referenzhandbuch)

TRANSLATE(x,y,z)

TRANSLATE(x,y,z) ist eine Stringfunktion, die in der Zeichenkette x das i-te Zeichen der Zeichenkette y durch das i-te Zeichen der Zeichenkette z ersetzt. Die Länge der Zeichenkette y muss mit der Länge der Zeichenkette z übereinstimmen.

 | Ergebnis der Funktion TRANSLATE(x,y,z)
x ist NULL-Wert | NULL-Wert
y ist NULL-Wert | x bleibt unverändert

Beispieltabelle customer

Bei jedem Auftreten wird der i-te Buchstabe der ersten Zeichenkette durch den i-ten Buchstaben der zweiten Zeichenkette ersetzt.

SELECT name, TRANSLATE (name,'or','es') new_name
FROM customer WHERE firstname IS NOT NULL AND city = 'Los Angeles'

NAME | NEW_NAME
Porter | Pestes
Peters | Petess
Randolph | Sandelph
Peters | Petess
Brown | Bsewn
Jackson | Jacksen
Adams | Adams

Siehe auch:

REPLACE(x,y,z)


TRIM(x,y) (MaxDB: Referenzhandbuch)

TRIM(x,y)

TRIM(x,y) ist eine Stringfunktion, die am Anfang der Zeichenkette x alle in der Zeichenkette y angegebenen Zeichen entfernt. Das Ergebnis von TRIM(x,y) beginnt daher mit dem ersten Zeichen, das nicht in y angegeben wurde.

Zusätzlich entfernt TRIM(x,y) am Ende der Zeichenkette x die Leerzeichen (Codeattribut ASCII, UNICODE) bzw. die binären Nullen (Codeattribut BYTE) und anschließend alle in der Zeichenkette y angegebenen Zeichen. Das Ergebnis von TRIM(x,y) endet daher mit dem letzten Zeichen, das nicht in y angegeben wurde.

 | Ergebnis der Funktion TRIM(x,y)
TRIM(x) | Es werden nur die Leerzeichen (Codeattribut ASCII, UNICODE) bzw. die binären Nullen (Codeattribut BYTE) aus x entfernt.
x ist NULL-Wert | NULL-Wert

Beispieltabelle customer

SELECT name, TRIM(CHR(account)) & ' EURO' account
FROM customer WHERE account > 0.00

NAME | ACCOUNT
Porter | 100.00 EURO
DATASOFT | 4813.50 EURO
Peters | 650.00 EURO
TOOLware | 3770.50 EURO
Brown | 440.00 EURO

Siehe auch:

LTRIM(x,y)

RTRIM(x,y)


UPPER/LOWER(x) (MaxDB: Referenzhandbuch)

UPPER/LOWER(x)

UPPER(x) bzw. LOWER(x) ist eine Stringfunktion, die eine Zeichenkette in Großbuchstaben bzw. Kleinbuchstaben verwandelt.

 | Ergebnis der Funktion UPPER(x) bzw. LOWER(x)
x ist NULL-Wert | NULL-Wert

Beispieltabelle hotel

Suchen nach Werten unabhängig von der Groß-/Kleinschreibung

SELECT * FROM hotel WHERE UPPER(name) = 'REGENCY'

HNO | NAME | ZIP | CITY | ADDRESS
30 | Regency | 48153 | Portland | 477 17th Avenue


Verkettung (concatenation) (MaxDB: Referenzhandbuch)

Verkettung (concatenation)

Eine Verkettung (concatenation) x||y bzw. x&y ist eine Stringfunktion, die folgende Ergebnisse für x (Zeichenkette der Länge n) und y (Zeichenkette der Länge m) liefert:

 | Ergebnis der Verkettung
x||y bzw. x&y | Verkettung von x und y zu einer Zeichenkette der Länge n+m Wenn eine Zeichenkette aus einer Spalte hervorgeht, dann erfolgt die Längenbestimmung dieser Zeichenkette ohne Berücksichtigung von nachfolgenden Leerzeichen (Codeattribut ASCII, UNICODE) bzw. binären Nullen (Codeattribut BYTE).
x oder y ist NULL-Wert | NULL-Wert

Spalten mit gleichem Codeattribut können miteinander verkettet werden.

Spalten mit unterschiedlichen Codeattributen ASCII und UNICODE können miteinander und mit Datumswerten, Zeitwerten und Zeitstempelwerten verkettet werden.

Beispieltabelle customer

SELECT name, zip & ' – ' & city address FROM customer
WHERE city = 'New York'

NAME | ADDRESS
Porter | 80335 – New York
Porter | 70596 – New York
Howe | 81737 – New York
Griffith | 81739 – New York


Datumsfunktion (date_function) (MaxDB: Referenzhandbuch)

Datumsfunktion (date_function)

Eine Datumsfunktion ( date_function ) ist eine Funktion , die auf Datums- oder Zeitstempelwerten angewandt wird bzw. als Ergebnis einen Datums- oder Zeitstempelwert liefert.

Syntax

<date_function> ::=
  ADDDATE    ( <date_or_timestamp_expression>, <expression> )
| SUBDATE    ( <date_or_timestamp_expression>, <expression> )
| DATEDIFF   ( <date_or_timestamp_expression>, <date_or_timestamp_expression> )
| DAYOFWEEK  ( <date_or_timestamp_expression> )
| WEEKOFYEAR ( <date_or_timestamp_expression> )
| DAYOFMONTH ( <date_or_timestamp_expression> )
| DAYOFYEAR  ( <date_or_timestamp_expression> )
| MAKEDATE   ( <expression>, <expression> )
| DAYNAME    ( <date_or_timestamp_expression> )
| MONTHNAME  ( <date_or_timestamp_expression> )

date_or_timestamp_expression , expression

ADDDATE(t,a)/SUBDATE(t,a) , DATEDIFF(t,s) , DAYOFWEEK(t), WEEKOFYEAR(t), DAYOFMONTH(t), DAYOFYEAR(t) , MAKEDATE(a,b) , DAYNAME(t), MONTHNAME(t)

Erläuterung

Obwohl der Gregorianische Kalender erst im Jahr 1582 eingeführt wurde, wird bei den Funktionen auch bei früheren Datumswerten so gerechnet, als hätte es den Gregorisnischen Kalender schon gegeben. Jedes Jahr hat also 365 oder 366 Tage.

Zur Bearbeitung von Datums- und Zeitwerten stehen verschiedene Datums- und Zeitformate zur Verfügung (ISO, USA, EUR, JIS, INTERNAL)


ADDDATE/SUBDATE(t,a) (MaxDB: Referenzhandbuch)

ADDDATE/SUBDATE(t,a)

ADDDATE(t,a) und SUBDATE(t,a) sind Datumsfunktionen, die ein Datum der Zukunft bzw. ein Datum der Vergangenheit ermitteln.

Wert t: date_or_timestamp_expression

Wert a: numerischer Wert, der eine Anzahl von Tagen darstellt. Nachkommastellen von a werden gegebenenfalls abgeschnitten.

 | Ergebnis der Funktion ADDDATE(t,a)/SUBDATE(t,a)
Addition von a zu t/ Subtraktion von a von t | Datumswert bzw. Zeitstempelwert
t oder a ist NULL-Wert | NULL-Wert
a ist Spezial-NULL-Wert | Fehlermeldung

Beispieltabelle reservation

Buchungsdatum um zwei Tage erhöhen

SELECT arrival, ADDDATE(arrival,2) arrival2, rno
FROM reservation WHERE rno = 130

ARRIVAL | ARRIVAL2 | RNO
01/02/2002 | 03/02/2002 | 130


DATEDIFF(t,s) (MaxDB: Referenzhandbuch)

DATEDIFF(t,s)

DATEDIFF(t,s) ist eine Datumsfunktion, die die Anzahl der Tage zwischen Anfangs- und Enddatum ermittelt.

Wert t und s: date_or_timestamp_expression

 | Ergebnis der Funktion DATEDIFF(t,s)
Positive Differenz zwischen t und s | Numerischer Wert (Anzahl der Tage)
t oder s sind Zeitstempelwerte | Nur die im Zeitstempelwert enthaltenen Datumsangaben werden berücksichtigt, um DATEDIFF(t,s) zu berechnen.
t oder s ist NULL-Wert | NULL-Wert

Beispieltabelle reservation

SELECT arrival, departure, DATEDIFF(departure,arrival) difference, rno
FROM reservation WHERE rno = 130

ARRIVAL | DEPARTURE | DIFFERENCE | RNO
01/02/2002 | 03/02/2002 | 2 | 130


DAYNAME/MONTHNAME(t) (MaxDB: Referenzhandbuch)

DAYNAME/MONTHNAME(t)

DAYNAME(t) bzw. MONTHNAME(t) sind Datumsfunktion en, die den Wochentagsnamen bzw. den Monatsnamen des angegebenen Tages liefern.

Wert t: date_or_timestamp_expression

 | Ergebnis der entsprechenden Funktion
DAYNAME(t) bzw. MONTHNAME(t) | Zeichenkette , die einen Wochentagsnamen (Sonntag bis Samstag) bzw. einen Monatsnamen (Januar bis Dezember) liefert
t ist NULL-Wert | NULL-Wert


DAYOFWEEK/WEEKOFYEAR/DAYOFMONTH/DAYOFYEAR(t) (MaxDB: Referenzhandbuch)

DAYOFWEEK/WEEKOFYEAR/DAYOFMONTH/DAYOFYEAR(t)

DAYOFWEEK(t)/WEEKOFYEAR(t)/DAYOFMONTH(t)/DAYOFYEAR(t) sind Datumsfunktion en, die folgende Angaben ermitteln:

Wert t: date_or_timestamp_expression

 | Ergebnis der entsprechenden Funktion
DAYOFWEEK(t) | Numerischer Wert zwischen 1 und 7 (Wochentag) Der erste Tag ist Montag, der zweite Dienstag, usw.
WEEKOFYEAR(t) | Numerischer Wert zwischen 1 und 53 (Woche des Jahres, in der der angegebene Tag liegt)
DAYOFMONTH(t) | Numerischer Wert zwischen 1 und 31 (Tag des Monats, in dem der angegebene Tag liegt)
DAYOFYEAR(t) | Numerischer Wert zwischen 1 und 366 (Tag des Jahres, in dem der angegebene Tag liegt)
t ist NULL-Wert | NULL-Wert


MAKEDATE(a,b) (MaxDB: Referenzhandbuch)

MAKEDATE(a,b)

MAKEDATE(a,b) ist eine Datumsfunktion , die aus einer Jahreszahl und einem Tag einen Datumswert liefert.

Die Werte a und b ( expression ) in MAKEDATE müssen numerische Werte liefern.
Weiter gelten folgende Bedingungen: a>=0 (a stellt eine Jahreszahl dar)
b>0 (b stellt einen Tag dar)
Nachkommastellen von a und b werden gegebenenfalls angeschnitten.

 | Ergebnis der Funktion MAKEDATE(a,b)
a oder b ist NULL-Wert | NULL-Wert
a oder b ist Spezial-NULL-Wert | Fehlermeldung

MAKEDATE(1999,49) im Datumsformat INTERNAL ergibt '19990218'


date_or_timestamp_expression (MaxDB: Referenzhandbuch)

date_or_timestamp_expression

Dieses Argument in einer Funktion ( date_or_timestamp_expression ) muß als Ergebnis einen Datumswert , einen Zeitstempelwert oder einen alphanumerischen Wert liefern, der dem aktuellen Datums- oder Zeitstempelformat entspricht.


Zeitfunktion (time_function) (MaxDB: Referenzhandbuch)

Zeitfunktion (time_function)

Eine Zeitfunktion (time_function) ist eine Funktion, die auf Zeit- oder Zeitstempelwerten angewandt wird bzw. als Ergebnis einen Zeit- oder Zeitstempelwert liefert.

Syntax

<time_function> ::=
  ADDTIME    ( <time_or_timestamp_expression>, <time_expression> )
| SUBTIME    ( <time_or_timestamp_expression>, <time_expression> )
| TIMEDIFF   ( <time_or_timestamp_expression>, <time_or_timestamp_expression> )
| MAKETIME   ( <hours>, <minutes>, <seconds> )

time_or_timestamp_expression, time_expression, hours, minutes, seconds

ADDTIME/SUBTIME(t,a), TIMEDIFF(t,s), MAKETIME(h,m,s)

Zur Bearbeitung von Datums- und Zeitwerten stehen verschiedene Datums- und Zeitformate zur Verfügung (ISO, USA, EUR, JIS, INTERNAL).

In den Formaten ISO und USA werden die Stunden modulo 24 ausgegeben.
In den Formaten EUR und JIS führen Stundenangaben >99 zu einem Fehler.
Im Format INTERNAL können Stundenangaben bis 9999 verwendet werden.


ADDTIME/SUBTIME(t,a) (MaxDB: Referenzhandbuch)

ADDTIME/SUBTIME(t,a)

ADDTIME(t,a) bzw. SUBTIME(t,a) sind Zeitfunktion en, die einen Zeit-/Zeitstempelwert der Zukunft bzw. der Vergangenheit ermitteln.

Wert t: time_or_timestamp_expression
Wert a: time_expression

 | Ergebnis der Funktion ADDTIME(t,a)/SUBTIME(t,a)
Addition von a zu t/ Subtraktion von a von t | Zeitwert bzw. Zeitstempelwert
SUBTIME(t,a) und t und a sind Zeitwerte | a muß kleiner sein als t, andernfalls wird ein Fehler gemeldet
t oder a ist NULL-Wert | NULL-Wert


MAKETIME(h,m,s) (MaxDB: Referenzhandbuch)

MAKETIME(h,m,s)

MAKETIME(h,m,s) ist eine Zeitfunktion , die aus der Summe von Stunden, Minuten und Sekunden ( hours, minutes,seconds ) einen Zeitwert bildet.

 | Ergebnis der Funktion MAKETIME(h,m,s)
h,m,s ist NULL-Wert | NULL-Wert
h,m,s ist Spezial-NULL-Wert | Fehlermeldung


TIMEDIFF(t,s) (MaxDB: Referenzhandbuch)

TIMEDIFF(t,s)

TIMEDIFF(t,s) ist eine Zeitfunktion , die den Zeitwert zwischen Anfangs- und Endzeit ermittelt.

Wert t und s: time_or_timestamp_expression
Beide Argumente müssen vom gleichen Datentyp sein, also entweder einen Zeitwert oder einen Zeitstempelwert darstellen.

 | Ergebnis der Funktion TIMEDIFF(t,s)
Positive Differenz zwischen t und s | Zeitwert
t oder s sind Zeitstempelwerte bzw. alphanumerische Werte, die dem aktuellen Zeitstempelformat entsprechen | Die im Zeitstempelwert enthaltenen Datum sangaben werden berücksichtigt, um TIMEDIFF(t,s) zu berechnen.
Differenz von mehr als 9999 Stunden | Anzahl der Stunden modulo 10000
t oder s ist NULL-Wert | NULL-Wert


hours/minutes/seconds (MaxDB: Referenzhandbuch)

hours/minutes/seconds

Jedes dieser Argumente in einer Funktion ( hours, minutes, seconds ) muß ganzzahlig und größer oder gleich 0 sein.

Wenn sie nicht ganzzahlig sind, werden die Nachkommastellen abgeschnitten.


time_expression (MaxDB: Referenzhandbuch)

time_expression

Dieses Argument in einer Funktion ( time_expression ) muß als Ergebnis einen Zeitwert oder einen alphanumerischen Wert liefern, der dem aktuellen Zeitformat entspricht.


time_or_timestamp_expression (MaxDB: Referenzhandbuch)

time_or_timestamp_expression

Dieses Argument in einer Funktion ( time_or_timestamp_expression ) muß als Ergebnis einen Zeitwert , einen Zeitstempelwert oder einen alphanumerischen Wert liefern, der dem aktuellen Zeit- oder Zeitstempelformat entspricht.


Extraktion (extraction_function) (MaxDB: Referenzhandbuch)

Extraktion (extraction_function)

Eine Extraktion ( extraction_function ) ist eine Funktion , die aus einem Datumswert , Zeitwert oder Zeitstempelwert Teile extrahiert oder einen Datums-, Zeit- oder Zeitstempelwert bildet.

Syntax

<extraction_function> ::=
  YEAR        ( <date_or_timestamp_expression> )
| MONTH       ( <date_or_timestamp_expression> )
| DAY         ( <date_or_timestamp_expression> )
| HOUR        ( <time_or_timestamp_expression> )
| MINUTE      ( <time_or_timestamp_expression> )
| SECOND      ( <time_or_timestamp_expression> )
| MICROSECOND ( <expression> )
| TIMESTAMP   ( <expression>[, <expression> ] )
| DATE        ( <expression> )
| TIME        ( <expression> )

date_or_timestamp_expression , time_or_timestamp_expression , expression

YEAR(t), MONTH(t), DAY(t) , HOUR(t), MINUTE(t), SECOND(t) , MICROSECOND(a) , TIMESTAMP(a,b) , DATE(a) , TIME(a)

Zur Bearbeitung von Datums- und Zeitwerten stehen verschiedene Datums- und Zeitformate zur Verfügung (ISO, USA, EUR, JIS, INTERNAL)


DATE(a) (MaxDB: Referenzhandbuch)

DATE(a)

DATE(a) ist eine Funktion ( Extraktion ), die einen Datumswert bildet.

 | Ergebnis Funktion DATE(a)
a ist Datumswert oder ein alphanumerischer Wert, der dem aktuellen Datumsformat entspricht | dieser Datumswert
a ist alphanumerischer Wert, der nicht dem aktuellen Datumsformat entspricht | Fehlermeldung
a ist Zeitstempelwert oder ein alphanumerischer Wert, der dem aktuellen Zeitstempelformat entspricht | der Datumswert, der Teil des Zeitstempels ist
a ist Festkomma- oder Gleitkommazahl | Datumswert, der dem x-ten Tag nach dem 31.12.0000 entspricht (x= TRUNC(a) )
a ist NULL-Wert | NULL-Wert
a ist Spezial-NULL-Wert | Fehlermeldung


HOUR/MINUTE/SECOND(t) (MaxDB: Referenzhandbuch)

HOUR/MINUTE/SECOND(t)

HOUR(t), MINUTE(t) bzw. SECOND(t) sind Funktionen ( Extraktion ), die Stundenangabe, Minutenangabe bzw. Sekundenangabe aus dem angegebenen Zeit- oder Zeitstempelwert extrahieren.

Wert t: time_or_timestamp_expression

 | Ergebnis der entsprechenden Funktion
HOUR(t), MINUTE(t) bzw. SECOND(t) | Numerischer Wert (Stunden, Minuten bzw. Sekunden)
t ist NULL-Wert | NULL-Wert


MICROSECOND(a) (MaxDB: Referenzhandbuch)

MICROSECOND(a)

MICROSECOND(a) ist eine Funktion ( Extraktion ), die die Mikrosekundenangabe aus a extrahiert.

Der Wert a muß ein Zeitstempelwert sein oder einen alphanumerischen Wert liefern, der dem aktuellen Zeitstempelformat entspricht.

 | Ergebnis Funktion MICROSECOND(a)
MICROSECOND(a) | Numerischer Wert (Mikrosekunden)
a ist NULL-Wert | NULL-Wert


TIME(a) (MaxDB: Referenzhandbuch)

TIME(a)

TIME(a) ist eine Funktion ( Extraktion ), die einen Zeitwert bildet.

 | Ergebnis Funktion TIME(a)
a ist Zeitwert oder ein alphanumerischer Wert, der dem aktuellen Zeitformat entspricht | dieser Zeitwert
a ist alphanumerischer Wert, der nicht dem aktuellen Zeitformat entspricht | Fehlermeldung
a ist Zeitstempelwert oder ein alphanumerischer Wert, der dem aktuellen Zeitstempelformat entspricht | der Zeitwert, der Teil des Zeitstempels ist
a ist NULL-Wert | NULL-Wert


TIMESTAMP(a,b) (MaxDB: Referenzhandbuch)

TIMESTAMP(a,b)

TIMESTAMP(a,b) ist eine Funktion ( Extraktion ), die einen Zeitstempelwert bestehend aus Datumswert , Zeitwert und 0 Mikrosekunden bildet.

 | Ergebnis Funktion TIMESTAMP(a,b)
TIMESTAMP(a) | a muß Zeitstempelwert oder ein alphanumerischer Wert sein, der dem aktuellen Zeitstempelformat entspricht. Ergebnis ist dieser Zeitstempelwert.
TIMESTAMP(a,b) | a muß Datumswert, b muß Zeitwert sein (bzw. alphanumerischer Wert, der dem aktuellen Format für Datums- bzw. Zeitwerte entspricht). Ergebnis ist ein Zeitstempelwert, der aus Datumswert, Zeitwert und 0 Mikrosekunden gebildet wird.
a oder b ist NULL-Wert | NULL-Wert


YEAR/MONTH/DAY(t) (MaxDB: Referenzhandbuch)

YEAR/MONTH/DAY(t)

YEAR(t), MONTH(t) bzw. DAY(t) sind Funktionen ( Extraktion ), die Jahresangabe, Monatsangabe bzw. Tagesangabe aus dem angegebenen Datums- oder Zeitstempelwert extrahieren.

Wert t: date_or_timestamp_expression

 | Ergebnis der entsprechenden Funktion
YEAR(t), MONTH(t) bzw. DAY(t) | Numerischer Wert (Jahr, Monat bzw. Tag)
t ist NULL-Wert | NULL-Wert


Spezialfunktion (special_function) (MaxDB: Referenzhandbuch)

Spezialfunktion (special_function)

Es gibt Spezial funktion en (special_function), die nicht auf bestimmte Datentypen beschränkt sind.

Syntax

<special_function> ::=
  VALUE    (<expression>,<expression>,...)
| GREATEST (<expression>,<expression>,...)
| LEAST    (<expression>,<expression>,...)
| DECODE   (<check_expression>,<search_and_result_spec>,...[,<default_expression>])
| <case_function>

<check_expression> ::= <expression>
<search_and_result_spec> ::= <search_expression>,<result_expression>
<default_expression> ::= <expression>
<result_expression> ::= <expression>
<case_function> ::= <simple_case_function>|<searched_case_function>

expression

VALUE(x,y,...) , GREATEST(x,y,...), LEAST(x,y,...) , DECODE(x,y,...,z) , simple_case_function , searched_case_function


DECODE(x,y(i),...,z) (MaxDB: Referenzhandbuch)

DECODE(x,y(i),...,z)

DECODE(x,y(i),...,z) ist eine Spezialfunktion, die Ausdrücke (expression) in Abhängigkeit von ihren Werten umcodiert.

x | check_expression | Ausdruck (expression), für den ein Vergleich mit den Vergleichswerten in y(i) durchgeführt werden soll
y(i) | search_and_result_spec | <search_and_result_spec> ::= <search_expression>, <result_expression> (y(i)=u(i),v(i), i=1,...) Kombination aus Vergleichswert u(i) und Wert v(i), der diesen Vergleichswert gegebenenfalls ersetzen soll
z | default_expression | Optionaler Vorschlagswert
u(i) | search_expression | Vergleichswert, der bei Übereinstimmung mit x durch v(i) ersetzt werden soll
v(i) | result_expression | Wert, der den Wert u(i) gegebenenfalls ersetzen soll

Die Datentypen von x und u(i) müssen vergleichbar sein. Die Datentypen von v(i) und z müssen vergleichbar sein. Die Datentypen von u(i) und v(i) müssen nicht vergleichbar sein.

DECODE vergleicht nacheinander die Werte von x mit den Werten u(i). Wird eine Übereinstimmung festgestellt, dann ist das Ergebnis von DECODE der Wert v(i), der sich in der Kombination y(i)=u(i),v(i) befunden hat.

Sind x und u(i) NULL-Werte, so wird die Übereinstimmung festgestellt. Der Vergleich zwischen dem Spezial-NULL-Wert und einem beliebigen Wert führt nie zu einer Übereinstimmung.

Wird keine Übereinstimmung festgestellt, so liefert DECODE das Ergebnis von z. Ist z nicht angegeben, dann ist der NULL-Wert das Ergebnis von DECODE.

Beispieltabelle room

Die Bezeichnungen für den Raumtyp sollen in der Ausgabe durch eine in der DECODE-Funktion vereinbarte Bezeichnung ersetzt werden.

SELECT hno, price, DECODE (roomtype,
'SINGLE', 1, 'DOUBLE', 2, 'SUITE', 3) room_code
FROM room


GREATEST/LEAST(x,y,...) (MaxDB: Referenzhandbuch)

GREATEST/LEAST(x,y,...)

GREATEST(x,y,...) bzw. LEAST(x,y) ist eine Spezialfunktion , die den größten bzw. den kleinsten Wert aller Argumente ermittelt.

Die Funktionen können auf beliebige Datentypen angewandt werden. Die Datentypen der einzelnen Argumente müssen vergleichbar sein.

 | Ergebnis der entsprechenden Funktion
Mindestens ein Argument ist der NULL-Wert | NULL-Wert
Mindestens ein Argument ist der Spezial-NULL-Wert | Spezial-NULL-Wert


VALUE(x,y,...) (MaxDB: Referenzhandbuch)

VALUE(x,y,...)

VALUE(x,y,...) ist eine Spezialfunktion, die verwendet werden kann, um NULL-Werte durch einen Nicht-NULL-Wert zu ersetzen.

Die Argumente der VALUE-Funktion müssen vergleichbar sein. Die Argumente werden nacheinander in der angegebenen Reihenfolge ausgewertet.

 | Ergebnis der Funktion VALUE(x,y,...)
Eines der Argumente ist ein Nicht-NULL-Wert | der erste auftretende Nicht-NULL-Wert
Jedes Argument ist Spezial-NULL-Wert | Spezial-NULL-Wert
Jedes Argument ist NULL-Wert | NULL-Wert

Beispieltabelle customer

Die Anrede soll nicht in der Ausgabeliste auftauchen. Bei Firmen soll anstelle des NULL-Werts in der Spalte firstname die Bezeichnung company ausgegeben werden.

SELECT VALUE(firstname, 'company') firstname, name FROM customer

FIRSTNAME | NAME
Jenny | Porter
Company | DATASOFT
Martin | Porter
Sally | Peters
Peter | Brown
Michael | Porter
George | Howe
Frank | Randolph
Joseph | Peters
Susan | Brown
Anthony | Jackson
Thomas | Adams
Mark | Griffith
company | TOOLware
Rose | Brown


Allgemeine CASE-Funktion (searched_case_function) (MaxDB: Referenzhandbuch)

Allgemeine CASE-Funktion (searched_case_function)

Die allgemeine CASE-Funktion (searched_case_function) ist eine Spezialfunktion, die eine Menge von Suchbedingungen untersucht, um einen Ergebnisausdruck zu bestimmen.

Syntax

<searched_case_function> ::=
CASE
  WHEN <search_condition> THEN <result_expression>
    [...]
  [ELSE <default_expression>])
END

<result_expression> ::= <expression>
<default_expression> ::= <expression>

search_condition, expression

Erläuterung

CASE überprüft nacheinander die Suchbedingungen search_condition. Sowie eine Suchbedingung gefunden wird, die wahr ist, ist das Ergebnis der allgemeinen CASE-Funktion der Wert des Ausdrucks result_expression, der zur Suchbedingung gehört.

Wird keine Suchbedingung gefunden, die wahr ist, so liefert CASE das Ergebnis des Ausdrucks default_expression. Ist default_expression nicht angegeben, dann ist der NULL-Wert das Ergebnis von CASE.

Alle Suchbedingungen ohne ROWNO-Prädikat sind zulässig. Die Datentypen der Ausdrücke result_expression und default_expression müssen vergleichbar sein.

CASE
  WHEN price IS NULL THEN 'Not yet priced'
  WHEN price < 10 THEN 'Very Reasonable Title'
  WHEN price >= 10 and price < 20 THEN 'Coffee Table Title'
  ELSE 'Expensive book!'
END

Siehe auch:

Einfache CASE-Funktion (simple_case_function)


Einfache CASE-Funktion (simple_case_function) (MaxDB: Referenzhandbuch)

Einfache CASE-Funktion (simple_case_function)

Die einfache CASE-Funktion (simple_case_function) ist eine Spezialfunktion, die einen Ausdruck mit einer Menge einfacher Ausdrücke vergleicht, um einen Ergebnisausdruck zu bestimmen.

Syntax

<simple_case_function> ::=
CASE <check_expression>
        WHEN <search_expression> THEN <result_expression>
            [...]
        [ELSE <default_expression>])
END

<check_expression> | <search_expression> | <result_expression> | <default_expression> ::= <expression>

expression

Erläuterung

CASE vergleicht nacheinander den Wert des Vergleichsausdrucks check_expression mit den Werten der Ausdrücke search_expression. Wird eine Übereinstimmung festgestellt, dann ist das Ergebnis der einfachen CASE-Funktion der Wert des Ausdrucks result_expression, der zum Ausdruck search_expression gehört.

Wird keine Übereinstimmung festgestellt, so liefert CASE das Ergebnis des Ausdrucks default_expression. Ist default_expression nicht angegeben, dann ist der NULL-Wert das Ergebnis von CASE.

Die Datentypen von check_expression und search_expression müssen vergleichbar sein. Die Datentypen von result_expression und default_expression müssen vergleichbar sein. Die Datentypen von search_expression und result_expression müssen nicht vergleichbar sein.

Sind die Werte der Ausdrücke check_expression und search_expression NULL-Werte, so wird die Übereinstimmung festgestellt. Der Vergleich zwischen dem Spezial-NULL-Wert und einem beliebigen Wert führt nie zu einer Übereinstimmung.

Siehe auch:

Allgemeine CASE-Funktion (searched_case_function)


Konversionsfunktion (conversion_function) (MaxDB: Referenzhandbuch)

Konversionsfunktion (conversion_function)

Eine Konversionsfunktion (conversion_function) ist eine Funktion , die einen Wert von einem Datentyp in einen anderen konvertiert.

Syntax

<conversion_function> ::=
  NUM   ( <expression> )
| CHR   ( <expression>[, <unsigned_integer> ] )
| HEX   ( <expression> )
| HEXTORAW ( <expression> )
| CHAR  ( <expression>[, <datetimeformat> ] )

expression , unsigned_integer , datetimeformat

NUM(a) , CHR(a,n) , HEX(a) , HEXTORAW(a) , CHAR(a,t)


CHAR(a,t) (MaxDB: Referenzhandbuch)

CHAR(a,t)

CHAR(a,t) ist eine Funktion ( Konversionsfunktion ), die Datumswerte , Zeitwerte oder Zeitstempelwerte in eine Zeichenkette mit dem in t angegebenen Format für Datumswerte, Zeitwerte oder Zeitstempelwerte konvertiert.

 | Ergebnis der Funktion CHAR(a,t)
CHAR(a) | Als Format für den Wert a wird das aktuell eingestellte Datums- und Zeitformat angenommen.
a ist der NULL-Wert | NULL-Wert


CHR(a,n) (MaxDB: Referenzhandbuch)

CHR(a,n)

CHR(a,n) ist eine Funktion (Konversionsfunktion), die Zahlen in Zeichenketten konvertiert.

Die Funktion CHR kann nur auf numerische Werte, auf Zeichenketten und boolesche Werte angewandt werden.

 | Ergebnis der Funktion CHR(a,n)
a ist numerischer Wert | Zeichenkette, die der CHAR-Darstellung des numerischen Wertes a entspricht. Das Codeattribut der Zeichenkette entspricht dem Codetyp des Rechners.
a ist Zeichenkette | Unveränderte Zeichenkette
a ist boolescher Wert | T, wenn a=TRUE F, wenn a=FALSE
a ist weder numerischer Wert, noch Zeichenkette, noch boolescher Wert | Fehlermeldung
CHR(a,n), n>=1 | Ausgabe mit dem Längenattribut n
CHR(a) | Das Längenattribut n wird in Abhängigkeit vom Datentyp und der Länge von a bestimmt.
CHR(a) und a ist vom Datentyp FLOAT(p) | Wenn p=1, dann n=6 Wenn p>1, dann n=p+6
CHR(a) und a ist vom Datentyp FIXED(p,s) | Wenn p=s, dann n=p+s Wenn s=0, dann n=p+1
a ist der NULL-Wert | NULL-Wert
a ist der Spezial-NULL-Wert | Fehlermeldung


HEX(a) (MaxDB: Referenzhandbuch)

HEX(a)

HEX(a) ist eine Funktion ( Konversionsfunktion ), die das Argument a in eine hexadezimale Darstellung konvertiert. Die Funktion kann auf jeden Datentyp angewandt werden.

 | Ergebnis der Funktion HEX(a)
a ist der NULL-Wert | NULL-Wert
a ist der Spezial-NULL-Wert | Fehlermeldung


HEXTORAW(a) (MaxDB: Referenzhandbuch)

HEXTORAW(a)

HEXTORAW(a) ist eine Funktion ( Konversionsfunktion ). Argumente der Funktion müssen hexadezimale Zeichen sein ( hex_digit ). Das Argument a wird in eine Zeichenkettte mit dem Codeattribut BYTE konvertiert, die die entsprechenden Zeichen enthält. Dabei werden zwei hexadezimale Zeichen in ein Zeichen umgewandelt.

 | Ergebnis der Funktion HEXTORAW(a)
a ist der NULL-Wert | NULL-Wert
a ist der Spezial-NULL-Wert | Fehlermeldung


NUM(a) (MaxDB: Referenzhandbuch)

NUM(a)

NUM(a) ist eine Funktion (Konversionsfunktion), die das Argument a in einen numerischen Wert umwandelt.

NUM kann auf Zeichenketten mit dem Codeattribut ASCII, auf Datumswerte, Zeitwerte, Zeitstempelwerte, auf numerische und boolesche Wert (BOOLEAN) angewandt werden.

Ergebnis der Funktion NUM(a)

a ist Zeichenkette und kann als numerischer Wert interpretiert werden

Entsprechender numerischer Wert

a ist numerischer Wert

Unveränderter numerischer Wert

a ist boolescher Wert

1, wenn a=TRUE
0, wenn a=FALSE

a ist eine Zeichenkette, die nicht als numerischer Wert interpretiert werden kann, a ist eine Zeichenkette, die nicht das Codeattribute ASCII hat, a ist kein numerischer und kein boolescher Wert

Fehlermeldung

a ist Zeichenkette, die als numerischer Wert außerhalb des Intervalls
–9.9999999999999999999999999999999999999E+62, 9.9999999999999999999999999999999999999E+62
interpretiert werden kann

Spezial-NULL-Wert

a ist der NULL-Wert

NULL-Wert

a ist der Spezial-NULL-Wert

Spezial-NULL-Wert


Datenbankfunktionsaufruf (dbfunction_call) (MaxDB: Referenzhandbuch)

Datenbankfunktionsaufruf (dbfunction_call)

Der Aufruf einer Datenbankfunktion (dbfunction_call) erfolgt wie der Aufruf einer Funktion. Die Datenbankfunktion wurde durch Ausführung einer CREATE FUNCTION-Anweisung erzeugt.

Syntax

<dbfunction_call> ::= <dbfunction_name> ( [<expression>,...] )

dbfunction_name, expression

Erläuterung

Der aktuelle Benutzer muss das Recht zur Ausführung der Funktion (EXECUTE-Privileg) besitzen.


Set-Funktion (set_function_spec) (MaxDB: Referenzhandbuch)

Set-Funktion (set_function_spec)

Es gibt eine Reihe von Funktionen, die auf eine Menge von Werten (Zeilen) als Argument angewandt werden und ein Ergebnis liefern. Als Bezeichnung für derartige Funktionen wird der Begriff Set-Funktion (set_function_spec) verwendet.

Syntax

<set_function_spec> ::= COUNT (*) | <distinct_function> | <all_function>

COUNT (*), distinct_function, all_function

Erläuterung

Set-Funktionen arbeiten über Gruppen von Werten, aber sie geben nur einen Wert zurück. Das Ergebnis besteht aus einer Zeile. Wenn eine Set-Funktion in einer Anweisung verwendet wird, muss auch auf jede andere Spalte der Anfrage eine solche Funktion angewandt werden. Dies gilt jedoch nicht für eine Spalte, über die mittels GROUP BY eine Gruppierung vorgenommen wurde. Es wird dann für jede Gruppe der Wert der Set-Funktion bestimmt.

Das Argument einer DISTINCT-Funktion oder einer ALL-Funktion ist eine Ergebnistabelle oder eine Gruppe (die Ergebnistabelle kann durch eine GROUP-Bedingung gruppiert werden).

NULL-Werte werden, mit Ausnahme der Funktion COUNT(*), nicht in die Berechnung einbezogen.

Bei einigen Set-Funktionen wird unabhängig von dem bei der Anmeldung festgelegten Isolation-Level kein Sperrverfahren durchgeführt.

Beispieltabelle customer

SELECT SUM(account) sum_account, MIN(account) min_account,
FIXED (AVG(account),7,2) avg_account,
MAX(account) max_account, COUNT(*) number
FROM customer WHERE city = 'Los Angeles'

SUM_ACCOUNT | MIN_ACCOUNT | AVG_ACCOUNT | MAX_ACCOUNT | NUMBER
-164.17 | -4167.79 | -20.52 | 3770.50 | 8


DISTINCT-Funktion (distinct_function) (MaxDB: Referenzhandbuch)

DISTINCT-Funktion (distinct_function)

Die DISTINCT-Funktion (distinct_function) ist eine Set-Funktion, die doppelt vorkommende Werte und alle NULL-Werte entfernt.

Syntax

<distinct_function>::= <set_function_name> ( DISTINCT <expression> )

set_function_name, expression

Erläuterung

Das Argument einer DISTINCT-Funktion ist eine Menge von Werten, die wie folgt gebildet wird:

1. Eine Ergebnistabelle oder eine Gruppe (die Ergebnistabelle kann durch eine GROUP-Bedingung gruppiert werden) wird gebildet.

2. Auf jede Zeile dieser Ergebnistabelle oder Gruppe wird der Ausdruck (expression) angewandt.
Der Ausdruck darf keine Set-Funktion erhalten.

3. Alle NULL-Werte und doppelt vorkommenden Werte werden entfernt (DISTINCT). Spezial-NULL-Werte werden nicht entfernt, zwei Spezial-NULL-Werte gelten als gleich.

Die DISTINCT-Funktion wird unter Berücksichtigung des entsprechenden Set-Funktionsnamens (set_function_name) für diese Menge von Werten durchgeführt.

 | Ergebnis der DISTINCT-Funktion
Menge von Werten ist leer und die DISTINCT-Funktion wird auf die gesamte Ergebnistabelle angewandt | Die Set-Funktionen AVG, MAX, MIN, STDDEV, SUM, VARIANCE liefern als Ergebnis den NULL-Wert. Die Set-Funktion COUNT liefert den Wert 0.
Es gibt keine Gruppe, auf die die DISTINCT-Funktion angewandt werden kann. | Im Ergebnis erhält man eine leere Tabelle.
Die Menge von Werten enthält mindestens einen Spezial-NULL-Wert | Spezial-NULL-Wert

Beispieltabelle customer

An wievielen Orten wohnen die Kunden?

SELECT COUNT(DISTINCT city) number_cities FROM customer

number_cities

4


ALL-Funktion (all_function) (MaxDB: Referenzhandbuch)

ALL-Funktion (all_function)

Die ALL-Funktion ( all_function ) ist eine Set-Funktion , die die NULL-Wert e entfernt.

Syntax

<all_function>::= <set_function_name> ( [ALL] <expression> )

set_function_name , expression

Erläuterung

Das Argument einer ALL-Funktion ist eine Menge von Werten, die wie folgt gebildet wird:

  1. Eine Ergebnistabelle oder eine Gruppe (die Ergebnistabelle kann durch eine GROUP-Bedingung gruppiert werden) wird gebildet.
  2. Auf jede Zeile dieser Ergebnistabelle oder Gruppe wird der Ausdruck ( expression ) angewandt.
    Der Ausdruck darf keine Set-Funktion enthalten.
  3. Alle NULL-Werte werden entfernt. Spezial-NULL-Wert e werden nicht entfernt, zwei Spezial-NULL-Werte gelten als gleich.

Die ALL-Funktion wird unter Berücksichtigung des entsprechenden Set-Funktionsnamens ( set_function_name ) für die Menge von Werten durchgeführt.

Das Ergebnis einer ALL-Funktion ist unabhängig davon, ob das Schlüsselwort ALL angegeben wird oder nicht.

 | Ergebnis der ALL-Funktion
Die Menge von Werten ist leer und die ALL-Funktion wird auf die gesamte Ergebnistabelle angewandt | Die Set-Funktionen AVG, MAX, MIN, STDDEV, SUM, VARIANCE liefern als Ergebnis den NULL-Wert. Die Set-Funktion COUNT liefert den Wert 0.
Es gibt keine Gruppe, auf die die ALL-Funktion angewandt werden kann. | Im Ergebnis erhält man eine leere Tabelle.
Die Menge von Werten enthält mindestens einen Spezial-NULL-Wert | Spezial-NULL-Wert


Set-Funktionsname (set_function_name) (MaxDB: Referenzhandbuch)

Set-Funktionsname (set_function_name)

Set-Funktionsname ( set_function_name ) ist der Name einer Funktion, der in einer DISTINCT-Funktion und in einer ALL-Funktion angegeben werden kann.

Syntax

<set_function_name> ::= COUNT | MAX | MIN | SUM | AVG | STDDEV | VARIANCE

COUNT , MAX, MIN , SUM , AVG , STDDEV , VARIANCE


AVG (MaxDB: Referenzhandbuch)

AVG

AVG ist eine Set-Funktion.

Das Ergebnis von AVG ist das arithmetische Mittel der Werte des Arguments.

AVG kann nur auf numerische Werte angewandt werden. Das Ergebnis ist vom Datentyp FLOAT(38).

Beispieltabelle customer

Wieviele Kunden, die Firmen sind, werden berücksichtigt? Was ist der Durchschnittswert ihres Kontostandes?

SELECT COUNT(*) number, FIXED (AVG(account),7,2) avg_account
FROM customer WHERE firstname IS NULL

NUMBER | AVG_ACCOUNT
2 | 4292.00


COUNT (MaxDB: Referenzhandbuch)

COUNT

COUNT ist eine Set-Funktion.

· COUNT(*) liefert die Anzahl aller Werte (Zeilen der Ergebnistabelle oder einer Gruppe).

· COUNT(DISTINCT <expression>) liefert die Anzahl der voneinander verschiedenen Werte (Anzahl der Werte des Arguments der DISTINCT-Funktion).

· COUNT(ALL <expression>) liefert die Anzahl der Werte, die vom NULL-Wert verschieden sind (Anzahl der Werte des Arguments der ALL-Funktion)

Das Ergebnis ist vom Datentyp FIXED(10).

Beispieltabelle customer

Wieviele Kunden gibt es?

SELECT COUNT (*) number FROM customer

number

15


MAX/MIN (MaxDB: Referenzhandbuch)

MAX/MIN

MAX/MIN ist eine Set-Funktion .

Das Ergebnis von MAX ist der größte Wert des Arguments.

Das Ergebnis von MIN ist der kleinste Wert des Arguments.


STDDEV (MaxDB: Referenzhandbuch)

STDDEV

STDDEV ist eine Set-Funktion.

Das Ergebnis von STDDEV ist die Standardabweichung der Werte des Arguments.

STDDEV kann nur auf numerische Werte angewandt werden. Das Ergebnis ist vom Datentyp FLOAT(38).


SUM (MaxDB: Referenzhandbuch)

SUM

SUM ist eine Set-Funktion.

Das Ergebnis von SUM ist die Summe der Werte des Arguments.

SUM kann nur auf numerische Werte angewandt werden. Das Ergebnis ist vom Datentyp FLOAT(38).


VARIANCE (MaxDB: Referenzhandbuch)

VARIANCE

VARIANCE ist eine Set-Funktion.

Das Ergebnis von VARIANCE ist die Varianz der Werte des Arguments.

VARIANCE kann nur auf numerische Werte angewandt werden. Das Ergebnis ist vom Datentyp FLOAT(38).


SQL-Anweisungen: Überblick (MaxDB: Referenzhandbuch)

SQL-Anweisungen: Überblick

Alle SQL-Anweisungen (sql_statement) können in Programmiersprachen eingebettet werden. Informationen dazu finden Sie in den Precompiler-Dokumentationen. Alle SQL-Anweisungen außer der NEXT STAMP-Anweisung können interaktiv angegeben werden.

Für jede SQL-Anweisung können Kommentare angegeben werden. Für viele SQL-Anweisungen werden Beispiel-Anweisungen anhand der Beispieltabellen formuliert.

SQL-Anweisungen zur Datendefinition

CREATE TABLE-Anweisung | DROP TABLE-Anweisung | ALTER TABLE-Anweisung RENAME TABLE-Anweisung RENAME COLUMN-Anweisung EXISTS TABLE-Anweisung
CREATE DOMAIN-Anweisung | DROP DOMAIN-Anweisung |
CREATE SEQUENCE-Anweisung | DROP SEQUENCE-Anweisung |
CREATE SYNONYM-Anweisung | DROP SYNONYM-Anweisung | RENAME SYNONYM-Anweisung
CREATE VIEW-Anweisung | DROP VIEW-Anweisung | RENAME VIEW-Anweisung
CREATE INDEX-Anweisung | DROP INDEX-Anweisung | ALTER INDEX-Anweisung RENAME INDEX-Anweisung
COMMENT ON-Anweisung |  |
CREATE TRIGGER-Anweisung | DROP TRIGGER-Anweisung |
CREATE DBPROC-Anweisung | DROP DBPROC-Anweisung |
CREATE FUNCTION-Anweisung | DROP FUNCTION-Anweisung |

SQL-Anweisungen zur Autorisierung

CREATE USER-Anweisung | DROP USER-Anweisung | ALTER USER-Anweisung RENAME USER-Anweisung GRANT USER-Anweisung
CREATE USERGROUP-Anweisung | DROP USERGROUP-Anweisung | ALTER USERGROUP-Anweisung RENAME USERGROUP-Anweisung GRANT USERGROUP-Anweisung
CREATE ROLE-Anweisung | DROP ROLE-Anweisung |
ALTER PASSWORD-Anweisung | GRANT-Anweisung | REVOKE-Anweisung

SQL-Anweisungen zur Datenmanipulation

INSERT-Anweisung | UPDATE-Anweisung | DELETE-Anweisung
NEXT STAMP-Anweisung | CALL-Anweisung |

SQL-Anweisungen zur Datenanfrage

QUERY-Anweisung | SINGLE SELECT-Anweisung | EXPLAIN-Anweisung
OPEN CURSOR-Anweisung | FETCH-Anweisung | CLOSE-Anweisung

SQL-Anweisungen zur Verwaltung der Transaktionen

CONNECT-Anweisung | SET-Anweisung |
COMMIT-Anweisung | ROLLBACK-Anweisung | SUBTRANS-Anweisung
LOCK-Anweisung | UNLOCK-Anweisung | RELEASE-Anweisung

SQL-Anweisungen zur Verwaltung der Statistiken

UPDATE STATISTICS-Anweisung

MONITOR-Anweisung


Kommentar (sql_comment) (MaxDB: Referenzhandbuch)

Kommentar (sql_comment)

Jede SQL-Anweisung kann mit einem Kommentar (sql_comment) versehen werden.

Syntax

<sql_comment> ::= /*<Kommentartext>*/ | --<Kommentartext>

Erläuterung

Sie können einen beliebigen Kommentartext eingeben.

Bei Verwenden der Syntaxregel --<Kommentartext> in einer Zeile werden alle nach -- eingegebenen Zeichen dieser Zeile als Kommentar gewertet.

CREATE TABLE person (knr FIXED(4), vorname CHAR(7), nachname CHAR(7), konto FIXED(7,2)) /*Anlegen der Tabelle person*/


Beispieltabellen (MaxDB: Referenzhandbuch)

Beispieltabellen

customer

hotel

room

reservation


customer (MaxDB: Referenzhandbuch)

customer

Legen Sie die Tabelle customer an und füllen Sie diese mit den unten angegebenen Werten.

Tabellenstruktur

CREATE TABLE customer
(cno        FIXED(4) PRIMARY KEY CONSTRAINT cno BETWEEN 1 AND 9999,
 title      CHAR(5) CONSTRAINT title IN ('Mr','Mrs','Comp'),
 name       CHAR(10) NOT NULL,
 firstname  CHAR(7),
 zip        CHAR(5) CONSTRAINT zip like '(0-9)(0-9)(0-9)(0-9)(0-9)',
 city       CHAR(12) NOT NULL,
 account    FIXED(7,2) CONSTRAINT account BETWEEN –10000 AND 10000)

Inhalt

CNO | TITLE | NAME | FIRSTNAME | ZIP | CITY | ACCOUNT
3000 | Mrs | Porter | Jenny | 80335 | New York | 100.00
3100 | Comp | DATASOFT | ? | 50933 | Dallas | 4813.50
3200 | Mr | Porter | Martin | 10969 | Los Angeles | 0.00
3300 | Mrs | Peters | Sally | 14165 | Los Angeles | 0.00
3400 | Mr | Brown | Peter | 40233 | Hollywood | 0.00
3500 | Mr | Porter | Michael | 70596 | New York | 0.00
3600 | Mr | Howe | George | 81737 | New York | -315.40
3700 | Mr | Randolph | Frank | 22525 | Los Angeles | 0.00
3800 | Mr | Peters | Joseph | 10787 | Los Angeles | 650.00
3900 | Mrs | Brown | Susan | 13599 | Los Angeles | -4167.79
4000 | Mr | Jackson | Anthony | 10785 | Los Angeles | 0.00
4100 | Mr | Adams | Thomas | 13355 | Los Angeles | -416.88
4200 | Mr | Griffith | Mark | 81739 | New York | 0.00
4300 | Comp | TOOLware | ? | 13629 | Los Angeles | 3770.50
4400 | Mrs | Brown | Rose | 40233 | Hollywood | 440.00

weitere Beispieltabellen


hotel (MaxDB: Referenzhandbuch)

hotel

Legen Sie die Tabelle hotel an und füllen Sie diese mit den unten angegebenen Werten.

Tabellenstruktur

CREATE TABLE hotel
(hno     FIXED(4) PRIMARY KEY CONSTRAINT hno BETWEEN 1 AND 9999,
 name    CHAR(20) NOT NULL,
 zip     CHAR(5) CONSTRAINT zip like '(0-9)(0-9)(0-9)(0-9)(0-9)',
 city    CHAR(12) NOT NULL,
 address CHAR(25) NOT NULL)

Inhalt

HNO | NAME | ZIP | CITY | ADDRESS
10 | Congress | 89477 | Detroit | 155 Beechwood Str.
20 | Los Angeles | 86159 | Cincinatti | 1499 Grove Street
30 | Regency | 48153 | Portland | 477 17th Avenue
40 | Eight Avenue | 21109 | Los Angeles | 112 8th Avenue
50 | Lake Michigan | 20097 | Los Angeles | 354 OAK Terrace 43
60 | Airport | 60313 | New Orleans | 650 C Parkway
70 | Empire State | 80805 | New York | 65 Yellostone Dr.
80 | Midtown | 20251 | Los Angeles | 12 Barnard Street
90 | Long Beach | 45193 | Long Beach | 200 Yellostone Dr.
100 | Dallas | 50668 | Dallas | 1980 34th Str.
110 | Atlantic | 81245 | New York | 111 78th Street
120 | Sunshine | 12249 | Los Angeles | 35 Broadway 77
130 | Star | 40223 | Hollywood | 13 Beechwood Place 2
140 | River Boat | 70469 | New York | 788 MAIN STREET 14
150 | Indian Horse | 69117 | Santa Clara | 16 MAIN STREET

weitere Beispieltabellen


room (MaxDB: Referenzhandbuch)

room

Legen Sie die Tabelle room an und füllen Sie diese mit den unten angegebenen Werten.

Tabellenstruktur

CREATE TABLE room
(hno      FIXED(4),
 roomtype  CHAR(6) CONSTRAINT roomtype IN ('SINGLE', 'DOUBLE', 'SUITE'),
 max_free FIXED(3) CONSTRAINT max_free>=0,
 price    FIXED(6,2) CONSTRAINT price BETWEEN 0.00 AND 1000.00,

 PRIMARY KEY(hno,roomtype))

Eine Zuordnung zu der Tabelle hotel ist über die Hotelnummer gegeben.

Inhalt

HNO | ROOMTYPE | MAX_FREE | PRICE
10 | DOUBLE | 45 | 200.00
10 | SINGLE | 20 | 135.00
20 | DOUBLE | 13 | 100.00
20 | SINGLE | 10 | 70.00
30 | DOUBLE | 15 | 80.00
30 | SINGLE | 12 | 45.00
40 | DOUBLE | 35 | 140.00
40 | SINGLE | 20 | 85.00
50 | DOUBLE | 230 | 180.00
50 | SINGLE | 50 | 105.00
50 | SUITE | 12 | 500.00
60 | DOUBLE | 39 | 200.00
60 | SINGLE | 10 | 120.00
60 | SUITE | 20 | 500.00
70 | DOUBLE | 11 | 180.00
70 | SINGLE | 4 | 115.00
80 | DOUBLE | 19 | 150.00
80 | SINGLE | 15 | 90.00
80 | SUITE | 5 | 400.00
90 | DOUBLE | 145 | 150.00
90 | SINGLE | 45 | 90.00
90 | SUITE | 60 | 300.00
100 | DOUBLE | 24 | 100.00
100 | SINGLE | 11 | 60.00
110 | DOUBLE | 10 | 130.00
110 | SINGLE | 2 | 70.00
120 | DOUBLE | 78 | 140.00
120 | SINGLE | 34 | 80.00
120 | SUITE | 55 | 350.00
130 | DOUBLE | 300 | 270.00
130 | SINGLE | 89 | 160.00
130 | SUITE | 100 | 700.00
140 | DOUBLE | 9 | 200.00
140 | SINGLE | 10 | 125.00
140 | SUITE | 78 | 600.00
150 | DOUBLE | 115 | 190.00
150 | SINGLE | 44 | 100.00
150 | SUITE | 6 | 450.00

weitere Beispieltabellen


reservation (MaxDB: Referenzhandbuch)

reservation

Legen Sie die Tabelle reservation an und füllen Sie diese mit den unten angegebenen Werten.

Tabellenstruktur

CREATE TABLE reservation
(rno       FIXED(4) PRIMARY KEY CONSTRAINT rno BETWEEN 1 AND 9999,
 cno       FIXED(4) CONSTRAINT cno BETWEEN 1 AND 9999,
 hno       FIXED(4) CONSTRAINT hno BETWEEN 1 AND 9999,
 roomtype  CHAR(6) CONSTRAINT roomtype IN ('SINGLE','DOUBLE','SUITE'),
 arrival   DATE NOT NULL,
 departure DATE CONSTRAINT departure > arrival)

Über die Tabelle reservation wird eine logische Verbindung zwischen den Tabellen customer, hotel und room hergestellt.

Inhalt

RNO | CNO | HNO | ROOMTYPE | ARRIVAL | DEPARTURE
100 | 3000 | 80 | SINGLE | 13/11/2001 | 15/11/2001
110 | 3000 | 100 | DOUBLE | 24/12/2001 | 06/01/2002
120 | 3200 | 50 | SUITE | 14/11/2001 | 18/11/2001
130 | 3900 | 110 | SINGLE | 01/02/2002 | 03/02/2002
140 | 4300 | 80 | DOUBLE | 12/04/2001 | 30/04/2001
150 | 3600 | 70 | DOUBLE | 14/03/2002 | 24/03/2002
160 | 4100 | 70 | SINGLE | 12/04/2001 | 15/04/2001
170 | 4400 | 150 | SUITE | 01/09/2001 | 03/09/2001
180 | 3100 | 120 | DOUBLE | 23/12/2001 | 08/01/2002
190 | 4300 | 140 | DOUBLE | 14/11/2001 | 17/11/2001

weitere Beispieltabellen


Datendefinition (MaxDB: Referenzhandbuch)

Datendefinition

In den folgenden Abschnitten wird die vom Datenbanksystem verwendete Sprache zur Datendefinition (Data Definition Language, DDL) vorgestellt.

SQL-Anweisungen zur Datendefinition

CREATE TABLE-Anweisung | DROP TABLE-Anweisung | ALTER TABLE-Anweisung RENAME TABLE-Anweisung RENAME COLUMN-Anweisung EXISTS TABLE-Anweisung
CREATE DOMAIN-Anweisung | DROP DOMAIN-Anweisung |
CREATE SEQUENCE-Anweisung | DROP SEQUENCE-Anweisung |
CREATE SYNONYM-Anweisung | DROP SYNONYM-Anweisung | RENAME SYNONYM-Anweisung
CREATE VIEW-Anweisung | DROP VIEW-Anweisung | RENAME VIEW-Anweisung
CREATE INDEX-Anweisung | DROP INDEX-Anweisung | ALTER INDEX-Anweisung RENAME INDEX-Anweisung
COMMENT ON-Anweisung |  |
CREATE TRIGGER-Anweisung | DROP TRIGGER-Anweisung |
CREATE DBPROC-Anweisung | DROP DBPROC-Anweisung |
CREATE FUNCTION-Anweisung | DROP FUNCTION-Anweisung |


CREATE TABLE-Anweisung (create_table_statement) (MaxDB: Referenzhandbuch)

CREATE TABLE-Anweisung (create_table_statement)

Eine CREATE TABLE-Anweisung (create_table_statement) definiert eine Basistabelle.

Syntax

<create_table_statement> ::=
CREATE TABLE <table_name> (<column_definition>[,<table_description_element>,...])
[IGNORE ROLLBACK] [NO FIXED LENGTH COLUMN] [<sample_definition>]
| CREATE TABLE <table_name> [(<table_description_element>,...)]
[IGNORE ROLLBACK] [NO FIXED LENGTH COLUMN] [<sample_definition>] AS <query_expression> [<duplicates_clause> ]
| CREATE TABLE <table_name> LIKE <table_name> [IGNORE ROLLBACK]

<table_description_element> ::= <column_definition> | <constraint_definition> | <referential_constraint_definition> | <key_definition> | <unique_definition>

table_name , sample_definition , query_expression , duplicates_clause , column_definition , constraint_definition , referential_constraint_definition , key_definition , unique_definition

SQL-Anweisung, um eine Tabelle person anzulegen:

CREATE TABLE person (cno FIXED(4), firstname CHAR(7), name CHAR(7), account FIXED(7,2))

Diese CREATE TABLE-Anweisung besteht aus den Schlüsselwörtern CREATE TABLE, gefolgt vom Tabellennamen, und (in Klammern) einer Liste von Spaltenbezeichnern, die durch Komma voneinander getrennt sind. Weitere optionale Festlegungen sind möglich (Zuordnung eines Primärschlüssels, Festlegung referentieller Integritätsbedingungen).

weitere Beispiele: customer, hotel, reservation, room

Erläuterung

Die Ausführung einer CREATE TABLE-Anweisung führt zur Ablage von Daten im Datenbankkatalog, die die Tabelle (genannt Basistabelle) beschreiben. Diese Daten heißen Metadaten.

Eine CREATE TABLE-Anweisung darf höchstens eine Schlüsseldefinition (key_definition) enthalten.

Der Tabellenname (table_name) darf nicht mit dem Namen einer bereits existierenden Tabelle des aktuellen Benutzers übereinstimmen.

Der aktuelle Benutzer wird zum Eigentümer (owner) der erzeugten Tabelle. Er erhält das INSERT-, UPDATE-, DELETE- und SELECT-Privileg für diese Tabelle. Wenn es sich nicht um eine temporäre Tabelle handelt, erhält der Eigentümer zusätzlich das INDEX-, REFERENCES- und ALTER-Privileg.

Siehe auch:

Technische Spezifikationen

Eigentümer einer Tabelle

· Eigentümer einer Tabelle ist vor dem Tabellennamen angegeben: Temporäre Tabellen werden durch die Angabe des Eigentümers TEMP vor ihren Namen gekennzeichnet.
Wenn ein Tabellenname einen von TEMP verschiedenen Eigentümer besitzt, muss der Eigentümer mit dem Namen des aktuellen Benutzers übereinstimmen und dieser muss Datenbankadministrator (DBA-Benutzer) oder RESOURCE-Benutzer sein.

· Eigentümer einer Tabelle ist nicht angegeben: Diese Angabe hat die gleiche Wirkung wie die Angabe des aktuellen Benutzers als Eigentümer.

CREATE TABLE … AS <query_expression> …

· Wenn kein QUERY-Ausdruck (query_expression) angegeben ist, muss die CREATE TABLE-Anweisung mindestens eine Spaltendefinition (column_definition) enthalten.

· Bei Angabe eines QUERY-Ausdrucks wird eine Basistabelle definiert, die die gleiche Struktur wie die durch den QUERY-Ausdruck definierte Ergebnistabelle besitzt.
Wenn Spaltendefinitionen angegeben sind, darf die Spaltendefinition nur aus einem Spaltennamen bestehen und die Anzahl der Spaltendefinitionen muss der Anzahl der Spalten der durch den QUERY-Ausdruck erzeugten Ergebnistabelle entsprechen.
Der Datentyp (data_type) der i-ten Spalte der Basistabelle entspricht dem der i-ten Spalte der durch den QUERY-Ausdruck erzeugten Ergebnistabelle.
Die Ergebnistabelle darf auch LONG-Spalten enthalten.
Wenn keine Spaltendefinitionen angegeben sind, werden die Spaltennamen der Ergebnistabelle übernommen.
Die Zeilen der Ergebnistabelle werden implizit in die erzeugte Basistabelle eingefügt. Durch die DUPLICATES-Klausel kann das Verhalten beim Auftreten von Schlüsselkollisionen gesteuert werden.
Für den QUERY-Ausdruck gelten einige Einschränkungen, die auch für die INSERT-Anweisung gelten.

LIKE <table_name>

Die Angabe von LIKE <table_name> bewirkt das Anlegen einer leeren Basistabelle, die die gleiche Struktur wie diese Tabelle aus Sicht des aktuellen Benutzers besitzt, d.h. sie besitzt alle Spalten mit den gleichen Spaltennamen und -definitionen wie diese Tabelle, die dem Benutzer bekannt sind. Diese Sicht muss nicht mit der tatsächlichen Struktur der angegebenen Tabelle übereinstimmen, da dem Benutzer durch eingeschränkte Privilegierung nicht alle Spalten bekannt sein müssen.

Die angegebene Tabelle muss eine Basistabelle, eine View-Tabelle oder ein Synonym bezeichnen. Der Benutzer muss mindestens ein Privileg für diese Tabelle besitzen.

Der aktuelle Benutzer ist der Eigentümer der Basistabelle.

Wenn alle Schlüsselspalten der nach LIKE angegebenen Tabelle in der Basistabelle enthalten sind, bilden diese die Schlüsselspalten dieser Tabelle. Ist dies nicht der Fall, wird vom Datenbanksystem implizit eine Schlüsselspalte SYSKEY CHAR(8) BYTE angelegt, die den Schlüssel der Basistabelle bildet.

DEFAULT-Spezifikationen der Spalten oder CONSTRAINT-Definitionen für Spalten, die in die Basistabelle übernommen werden, gelten auch für die neu erzeugte Basistabelle.

IGNORE ROLLBACK

Die Angabe von IGNORE ROLLBACK ist optional und nur für temporäre Tabellen zulässig. Eine temporäre Tabelle mit diesem Merkmal unterliegt nicht dem Transaktionsmechanismus, d.h. durch Zurücksetzen einer Transaktion werden die diese Tabelle betreffenden Änderungen nicht rückgängig gemacht.

NO FIXED LENGTH COLUMN

Die Angabe von NO FIXED LENGTH COLUMN ist optional. Wird NO FIXED LENGTH COLUMN angegeben, erfolgt die Ablage aller Character- und numerischen Spalten mit variabler Länge. Ausgenommen von dieser Regel sind nur die ersten n-1 Primärschlüsselspalten und Spalten, deren Länge 2 nicht übersteigt.

Für Character-Spalten entspricht das der Angabe von VARCHAR.

SQL-Anweisungen, um Tabelleneigenschaften zu verändern

Hinzufügen, Löschen von Spalten, Verändern von Datentypen, Verändern der CONSTRAINT-Definition

ALTER TABLE-Anweisung

Umbenennen von Spalten

RENAME COLUMN-Anweisung

Umbenennen der Tabelle

RENAME TABLE-Anweisung


SAMPLE-Definition (sample_definition) (MaxDB: Referenzhandbuch)

SAMPLE-Definition (sample_definition)

Die Angabe einer SAMPLE-Definition ( sample_definition ) definiert, wieviele Zeilen einer Tabelle beim Aktualisieren von Statistiken herangezogen werden sollen.

Syntax

<sample_definition> ::= SAMPLE <unsigned_integer> ROWS
| SAMPLE <unsigned_integer> PERCENT

unsigned_integer

Erläuterung

Das Datenbanksystem führt für jede Basistabelle Statistikwerte, die zur Bestimmung der besten Strategie zur Ausführung einer SQL-Anweisung herangezogen werden. Diese Statistikwerte werden durch die UPDATE STATISTICS-Anweisung im Katalog abgelegt.

Wenn in einer UPDATE STATISTICS-Anweisung eine SAMPLE-Definition angegeben wird, legt die SAMPLE-Definition fest, wieviele Zeilen der Tabelle zur Bestimmung der Statistikwerte herangezogen werden sollen.

Wenn in einer UPDATE STATISTICS-Anweisung keine SAMPLE-Definition angegeben wird und auch nicht erzwungen wird, daß alle Zeilen der Tabelle zur Bestimmung der Statistikwerte herangezogen werden sollen, so verwendet das Datenbanksystem die entsprechende SAMPLE-Definition der CREATE TABLE-Anweisung oder der ALTER TABLE-Anweisung.

Die Definition der Anzahl der Zeilen, für die die UPDATE STATISTCS-Anweisung durchgeführt werden soll, kann durch Angabe der Anzahl der Zeilen ( ROWS ) oder durch Angabe in Prozent ( PERCENT ) erfolgen.

  • Bei Angabe einer SAMPLE-Definition mittels PERCENT muß die Integer-Zahl ohne Vorzeichen im Bereich zwischen 1 und 100 liegen.
  • Wenn keine SAMPLE-Definition definiert ist, verwendet das Datenbanksystem den Wert 20000 ROWS.

SQL-Anweisungen, in denen die SAMPLE-Definition verwendet werden kann

CREATE TABLE-Anweisung

ALTER TABLE-Anweisung

UPDATE STATISTICS-Anweisung


Spaltendefinition (column_definition) (MaxDB: Referenzhandbuch)

Spaltendefinition (column_definition)

Eine Spaltendefinition (column_definition) definiert eine Spalte einer Tabelle. Name und Datentyp jeder Spalte werden durch Spaltenname (column_name) und Datentyp (data_type) bestimmt. Die Spaltennamen müssen innerhalb einer Basistabelle eindeutig sein.

Syntax

<column_definition> ::= <column_name> <data_type> [<column_attributes>]
| <column_name> <domain_name> [<column_attributes>]

column_name, data_type, column_attributes, domain_name

Erläuterung

Wenn das Spaltenattribut (column_attributes) [PRIMARY] KEY angegeben ist, darf die CREATE TABLE-Anweisung keine Schlüsseldefinition (key_definition) enthalten.

Eine Spaltendefinition darf nur aus einem Spaltennamen (column_name) bestehen, wenn in der CREATE TABLE-Anweisung ein QUERY-Ausdruck (query_expression) verwendet wird.

Wenn Spaltenname und Domänenname (domain_name), also der Name eines Wertebereiches, angegeben werden, muß durch den Domänennamen ein existierender Wertebereich identifiziert werden. Der angegebenen Spalte wird der Datentyp und die Länge des Wertebereichs zugewiesen. Falls der Wertebereich eine CONSTRAINT-Definition (constraint_definition) besitzt, hat dies die gleiche Wirkung wie die Angabe der entsprechenden CONSTRAINT-Definition im Spaltenattribut der Spaltendefinition.

Spalten, die Bestandteil des Schlüssels sind, oder für die NOT NULL definiert wurde, heißen NOT NULL-Spalten. In diese kann ein NULL-Wert nicht eingefügt werden.

· Pflichtspalten: NOT NULL-Spalten, für die keine DEFAULT-Spezifikation als Spaltenattribut vereinbart wurde, heißen Pflichtspalten. Beim Einfügen einer Zeile muß für diese Spalte immer ein Wert angegeben werden.

· Optionale Spalten: Spalten, die keine Pflichtspalten sind, heißen optionale Spalten. Für diese Spalten braucht beim Einfügen einer Zeile kein Wert angegeben zu werden. Wenn für die Spalte eine DEFAULT-Spezifikation existiert, wird der Vorschlagswert (DEFAULT-Wert) in die Spalte eingetragen. Existiert keine DEFAULT-Spezifikation, wird ein NULL-Wert in die Spalte eingetragen.

Platzbedarf eines Spaltenwertes in Abhängigkeit vom Datentyp

Siehe auch:

Technische Spezifikationen


Datentyp (data_type) (MaxDB: Referenzhandbuch)

Datentyp (data_type)

Bei einer Spaltendefinition können neben den Spaltennamen die Datentypen (data_type) angegeben werden.

Syntax

<data_typ> ::=
  CHAR[ACTER] [(<unsigned_integer>)] [ASCII | BYTE | UNICODE]
| VARCHAR [(<unsigned_integer>)] [ASCII | BYTE | UNICODE]
| LONG [VARCHAR] [ASCII | BYTE | UNICODE]
| BOOLEAN
| FIXED (<unsigned_integer> [,<unsigned_integer>])
| FLOAT (<unsigned_integer>)
| INT[EGER] | SMALLINT
| DATE | TIME | TIMESTAMP

unsigned_integer

CHAR[ACTER], VARCHAR, LONG[VARCHAR], BOOLEAN, FIXED, FLOAT, INT[EGER], SMALLINT, DATE, TIME, TIMESTAMP

Erläuterung

Für folgende Zeichenketten kann gegebenenfalls bei einer Spaltendefinition (column_definition) zusätzlich ein Codeattribut angegeben werden: CHAR[ACTER], VARCHAR, LONG[VARCHAR]

Neben den oben definierten Datentypen werden in einer Spaltendefinition auch die folgenden Datentypen zugelassen und wie folgt auf die zuerst genannten Datentypen abgebildet:

Datentyp | wird abgebildet auf
BINARY(p) | FIXED(p)
DEC[IMAL](p,s) | FIXED(p,s)
DEC[IMAL](p) | FIXED(p)
DEC[IMAL] | FIXED(5)
DOUBLE PRECISION | FLOAT(38)
FLOAT | FLOAT(16)
FLOAT(39..64) | FLOAT(38)
LONG VARCHAR | LONG
NUMERIC(p,s) | FIXED(p,s)
NUMERIC(p) | FIXED(p)
NUMERIC | FIXED(5)
REAL(p) | FLOAT(p)
REAL | FLOAT(16)
SERIAL | FIXED(10) DEFAULT SERIAL
SERIAL(p) | FIXED(10) DEFAULT SERIAL(p)

Siehe auch:

Datentyp

Platzbedarf eines Spaltenwertes in Abhängigkeit vom Datentyp


CHAR[ACTER] (MaxDB: Referenzhandbuch)

CHAR[ACTER]

Definition

Es wird eine alphanumerische Spalte definiert. Die Angabe eines Längenattributs n ist optional. Ist kein Längenattribut angegeben, wird n=1 angenommen.

CHAR[ACTER] [(n)]: 0<n<=8000
CHAR[ACTER] [(n)] UNICODE: 0<n<=4000

Das Datenbanksystem entscheidet in Abhängigkeit von n, ob die Werte der Spalte mit fester oder variabler Länge abgelegt werden. Wenn die Ablage unabhängig von n in variabler Länge erwünscht ist, muß VARCHAR angegeben werden.

Verwendung

Angabe des Datentyps CHAR[ACTER] bei der Spaltendefinition , gegebenenfalls mit Codeattribut

Integration

Datentyp (data_type)


VARCHAR (MaxDB: Referenzhandbuch)

VARCHAR

Definition

Es wird eine alphanumerische Spalte definiert. Die Angabe eines Längenattributs n ist optional. Ist kein Längenattribut angegeben, wird n=1 angenommen.

VARCHAR [(n)]: 0<n<=8000
VARCHAR [(n)] UNICODE: 0<n<=4000

Verwenden Sie VARCHAR (n), wenn die Werte der Spalte unabhängig von n mit variabler Länge abgelegt werden sollen.

Verwendung

Angabe des Datentyps VARCHAR bei der Spaltendefinition , gegebenenfalls mit Codeattribut

Integration

Datentyp (data_type)


LONG[VARCHAR] (MaxDB: Referenzhandbuch)

LONG[VARCHAR]

Definition

Es wird eine alphanumerische Spalte beliebiger Länge (nicht für temporäre Tabellen) definiert.

LONG[VARCHAR]: Es können maximal 2 GB Zeichen in einer LONG-Spalte geschrieben werden.
LONG[VARCHAR] UNICODE: Es können maximal 2 GB Bytes in einer LONG-Spalte geschrieben werden.

LONG-Spalte n dürfen als Spaltenattribut nur NOT NULL oder eine DEFAULT-Spezifikation erhalten.

Verwendung

Angabe des Datentyps LONG bei der Spaltendefinition , gegebenenfalls mit Codeattribut

LONG-Spalten können in folgenden SQL-Anweisungen verwendet werden: INSERT-Anweisung , UPDATE-Anweisung , NULL-Prädikat und in selektierten Spalten .

Integration

Datentyp (data_type)


BOOLEAN (MaxDB: Referenzhandbuch)

BOOLEAN

Definition

BOOLEAN: Es wird für die Spalte der Datentyp BOOLEAN definiert.

Verwendung

Angabe des Datentyps BOOLEAN bei der Spaltendefinition

Integration

Datentyp (data_type)


FIXED (MaxDB: Referenzhandbuch)

FIXED

Definition

FIXED (p,s): Es wird eine Spalte mit der Festkomma zahl der Genauigkeit p und mit s Nachkommastellen (0<p<=38, s<=p) definiert. Wird kein s angegeben, werden 0 Nachkommastellen angenommen.

Verwendung

Angabe des Datentyps FIXED bei der Spaltendefinition

Integration

Datentyp (data_type)


FLOAT (MaxDB: Referenzhandbuch)

FLOAT

Definition

FLOAT (p): Es wird eine Spalte mit der Gleitkomma zahl der Genauigkeit p (0<p<=38) definiert.

Verwendung

Angabe des Datentyps FLOAT bei der Spaltendefinition

Integration

Datentyp (data_type)


INT[EGER] (MaxDB: Referenzhandbuch)

INT[EGER]

Definition

INT[EGER]: Dieser Datentyp entspricht FIXED (10,0) mit zulässigen Werten zwischen -2147483648 und 2147483647.

Verwendung

Angabe des Datentyps INT[EGER] bei der Spaltendefinition

Integration

Datentyp (data_type)


SMALLINT (MaxDB: Referenzhandbuch)

SMALLINT

Definition

SMALLINT: Dieser Datentyp entspricht FIXED (5,0) mit zulässigen Werten zwischen -32768 und 32767.

Verwendung

Angabe des Datentyps SMALLINT bei der Spaltendefinition

Integration

Datentyp (data_type)


DATE (MaxDB: Referenzhandbuch)

DATE

Definition

DATE: Es wird eine alphanumerische Spalte, in der Datumswert e abgelegt werden können, definiert.

Verwendung

Angabe des Datentyps DATE bei der Spaltendefinition

Integration

Datentyp (data_type)


TIME (MaxDB: Referenzhandbuch)

TIME

Definition

TIME: Es wird eine alphanumerische Spalte, in der Zeitwert e abgelegt werden können, definiert.

Verwendung

Angabe des Datentyps TIME bei der Spaltendefinition

Integration

Datentyp (data_type)


TIMESTAMP (MaxDB: Referenzhandbuch)

TIMESTAMP

Definition

TIMESTAMP: Es wird eine alphanumerische Spalte, in der Zeitstempelwert e abgelegt werden können, definiert.

Verwendung

Angabe des Datentyps TIMESTAMP bei der Spaltendefinition

Integration

Datentyp (data_type)


Platzbedarf eines Spaltenwertes in Abhängigkeit vom Datentyp (MaxDB: Referenzhandbuch)

Platzbedarf eines Spaltenwertes in Abhängigkeit vom Datentyp

Bei der Spaltendefinition (column_definition) sollten Sie den Platzbedarf eines Spaltenwertes in Abhängigkeit vom Datentyp (data_type) beachten.

Datentyp | Platzbedarf eines Spaltenwertes in Bytes für diesen Datentyp
FIXED (p,s) | (p+1) DIV 2 + 2
FLOAT (p) | (p+1) DIV 2 + 2
BOOLEAN | 2
DATE | 9
TIME | 9
TIMESTAMP | 21
LONG | 9
CHAR(n); n<=30 | n+1
CHAR(n); 30<n<=1023; Schlüsselspalte | n+1
CHAR(n); 30<n<=254; keine Schlüsselspalte | n+2
CHAR(n); 254<n; keine Schlüsselspalte | n+3
CHAR(n) UNICODE; n<=15 | 2*n+1
CHAR(n) UNICODE; 15<n<=511; Schlüsselspalte | 2*n+1
CHAR(n) UNICODE; 15<n<=127; keine Schlüsselspalte | 2*n+2
CHAR(n) UNICODE; 127<n; keine Schlüsselspalte | 2*n+3
VARCHAR(n); n<=1023; Schlüsselspalte | n+1
VARCHAR(n); n<=254; keine Schlüsselspalte | n+2
VARCHAR(n); 254<n; keine Schlüsselspalte | n+3
VARCHAR(n) UNICODE; n<=511; Schlüsselspalte | 2*n+1
VARCHAR(n) UNICODE; n<=127; keine Schlüsselspalte; | 2*n+2
VARCHAR(n) UNICODE; 127<n; keine Schlüsselspalte | 2*n+3


Spaltenattribute (column_attributes) (MaxDB: Referenzhandbuch)

Spaltenattribute (column_attributes)

Bei einer Spaltendefinition (column_definition) können neben den Spaltennamen Spaltenattribute (column_attributes) angegeben werden.

Syntax

<column_attributes> ::= [<key_or_not_null_spec>] [<default_spec>] [UNIQUE] [<constraint_definition>]
[REFERENCES <referenced_table> [(<referenced_column>)] [<delete_rule>]]

<key_or_not_null_spec> ::= [PRIMARY] KEY | NOT NULL [WITH DEFAULT]

default_spec, constraint_definition, delete_rule

· Eine CONSTRAINT-Definition definiert eine Bedingung, die alle Spaltenwerte der durch die Spaltendefinition definierten Spalte erfüllen müssen.

· Die Angabe von
[REFERENCES <referenced_table> [(<referenced_column>)] [<delete_rule>]
hat die gleiche Wirkung wie die Angabe der referentiellen CONSTRAINT-Definition
 FOREIGN KEY [<referential_constraint_name>] (<referencing_column>)
REFERENCES <referenced_table> [(<referenced_column>,...)] [<delete_rule>]

referenced_table
 referenced_column

referenzierte Tabelle
referenzierte Spalte

Erläuterung

Bei einer Spaltendefinition dürfen die Spaltenattribute [PRIMARY] KEY und UNIQUE nicht gemeinsam verwendet werden.

Wenn das Spaltenattribut (column_attributes) [PRIMARY] KEY angegeben ist, darf die CREATE TABLE-Anweisung keine Schlüsseldefinition enthalten.

Datentyp LONG: Für Spalten vom Datentyp LONG darf als Spaltenattribut nur NOT NULL oder eine DEFAULT-Spezifikation angegeben werden.

UNIQUE

Wenn das Spaltenattribut UNIQUE angegeben ist, wird dadurch die Eindeutigkeit von Spaltenwerten festgelegt (siehe auch CREATE INDEX-Anweisung).

KEY

Wenn das Spaltenattribut KEY angegeben ist, ist diese Spalte Bestandteil des Schlüssels einer Tabelle und heißt Schlüsselspalte. Das Datenbanksystem garantiert die Eindeutigkeit der Schlüsselwerte in einer Tabelle. Aus Gründen der Ausführungsgeschwindigkeit ist es zweckmäßig, den Schlüssel mit Schlüsselspalten, die viele verschiedene Werte annehmen können und häufig in Bedingungen mit dem Operator "=" verwendet werden sollen, beginnen zu lassen.

Siehe auch:

Technische Spezifikationen

Wenn eine Tabelle ohne Schlüsselspalte definiert wird, legt das Datenbanksystem implizit eine Schlüsselspalte SYSKEY CHAR(8) BYTE an. Diese Spalte ist bei einem SELECT * nicht sichtbar. Sie kann jedoch explizit angegeben werden und hat dann dieselbe Funktion wie eine Schlüsselspalte. Die SYSKEY-Spalte kann dazu verwendet werden, eindeutige Schlüssel vom Datenbanksystem erzeugen zu lassen. Die Schlüssel sind aufsteigend, so dass die Einfügereihenfolge in die Tabelle widergespiegelt wird. Die Schlüsselwerte in der Spalte SYSKEY sind jedoch nur innerhalb einer Tabelle eindeutig, d.h. in zwei voneinander verschiedenen Tabellen können gleiche Werte in der SYSKEY-Spalte existieren. Wenn eindeutige Schlüssel innerhalb des gesamten Datenbanksystems erwünscht sind, kann eine Schlüsselspalte vom Datentyp CHAR(8) BYTE mit der DEFAULT-Spezifikation STAMP definiert werden.

NOT NULL

NOT NULL darf nicht zusammen mit der DEFAULT-Spezifikation DEFAULT NULL verwendet werden.

NOT NULL WITH DEFAULT definiert einen Vorschlagswert (DEFAULT-Wert), der abhängig vom Datentyp der Spalte ist. NOT NULL WITH DEFAULT darf nicht zusammen mit irgendeiner der DEFAULT-Spezifikationen verwendet werden.

Datentyp der Spalte | DEFAULT-Wert
CHAR (n); VARCHAR(n) | ' '
CHAR(n) BYTE; VARCHAR(n) BYTE | X'00'
FIXED(p,s), INT, SMALLINT, FLOAT(p) | 0
DATE | DATE
TIME | TIME
TIMESTAMP | TIMESTAMP
BOOLEAN | FALSE


DEFAULT-Spezifikation (default_spec) (MaxDB: Referenzhandbuch)

DEFAULT-Spezifikation (default_spec)

Eine DEFAULT-Spezifikation (default_spec) wird durch die Angabe des Schlüsselwortes DEFAULT und eines Vorschlagswerts (DEFAULT-Wert) gebildet. Die maximale Länge eines Vorschlagswerts beträgt 254 Zeichen.

Syntax

<default_spec> ::= DEFAULT <literal> | DEFAULT NULL
| DEFAULT USER | DEFAULT USERGROUP | DEFAULT SYSDBA
| DEFAULT DATE | DEFAULT TIME | DEFAULT TIMESTAMP
| DEFAULT UTCDATE | DEFAULT UTCDIFF | DEFAULT TIMEZONE
| DEFAULT TRUE | DEFAULT FALSE
| DEFAULT TRANSACTION | DEFAULT STAMP
| DEFAULT SERIAL[(<unsigned_integer>)]

literal, unsigned_integer

Erläuterung

Wenn für eine Spalte eine DEFAULT-Spezifikation angegeben wurde, muss der Vorschlagswert (<literal>, NULL, USER,...) ein Wert sein, der in die Spalte eingefügt werden kann.

DEFAULT-Spezifikation

Erläuterung

DEFAULT <literal>

Das Literal muss mit dem Datentyp der Spalte vergleichbar sein.

DEFAULT USER

Liefert den Benutzernamen des aktuellen Benutzers und kann nur für Spalten vom Datentyp [VAR]CHAR(n) bzw. CHAR(n) (n>=32) angegeben werden.

DEFAULT USERGROUP

Liefert für Mitglieder einer Benutzergruppe den Benutzergruppennamen bzw. den Benutzernamen für Benutzer, die keiner Benutzergruppe angehören. Diese DEFAULT-Spezifikation kann nur für Spalten vom Datentyp [VAR]CHAR(n) (n>=32) angegeben werden.

DEFAULT SYSDBA

Liefert den Namen des SYSDBA-Benutzers und kann nur für Spalten vom Datentyp [VAR]CHAR(n) (n>=32) angegeben werden (ab Version 7.4.04.02).

DEFAULT DATE

Liefert das aktuelle Datum und kann nur für Spalten vom Datentyp DATE angegeben werden.

DEFAULT TIME

Liefert die aktuelle Zeit und kann nur für Spalten vom Datentyp TIME angegeben werden.

DEFAULT TIMESTAMP

Liefert den aktuellen Zeitstempel und kann nur für Spalten vom Datentyp TIMESTAMP angegeben werden.

DEFAULT UTCDATE

Liefert den aktuellen UTC-Zeitstempel (Greenwich Mean Time) und kann nur für Spalten vom Datentyp TIMESTAMP angegeben werden (ab Version 7.4.04.02).

DEFAULT UTCDIFF

Liefert die Zeitdifferenz in Stunden zwischen Ihrer lokalen Zeitangabe und der UTC-Zeitangabe und kann nur für Spalten vom Datentyp FLOAT(p) (p>=4) oder FIXED(p,s) (s>=2, p>=s+2) angegeben werden (ab Version 7.4.04.02).

DEFAULT TIMEZONE

Liefert die Zeitdifferenz in der Form hhmmss zwischen Ihrer lokalen Zeitangabe und der UTC-Zeitangabe und kann nur für Spalten vom Datentyp FLOAT(p) (p>=6) oder FIXED(p,s) (s>=0, p>=s+6) angegeben werden. (ab Version 7.4.04.02)

DEFAULT TRUE/DEFAULT FALSE

Können nur für Spalten vom Datentyp BOOLEAN angegeben werden.

DEFAULT TRANSACTION

Liefert die Identifikation der aktuellen Transaktion und kann nur für Spalten vom Datentyp CHAR(n) BYTE (n>=8) angegeben werden.

DEFAULT STAMP

Liefert einen innerhalb des Datenbanksystems eindeutigen acht Zeichen langen Wert und kann nur für Spalten vom Datentyp CHAR(n) BYTE (n>=8) angegeben werden.

Wenn eine Tabelle ohne Schlüsselspalte definiert wird, legt das Datenbanksystem implizit eine Schlüsselspalte SYSKEY CHAR(8) BYTE an. Die Schlüsselwerte in der Spalte SYSKEY sind jedoch nur innerhalb einer Tabelle eindeutig, d.h. in zwei voneinander verschiedenen Tabellen können gleiche Werte in der SYSKEY-Spalte existieren. Wenn eindeutige Schlüssel innerhalb des gesamten Datenbanksystems erwünscht sind, kann eine Schlüsselspalte mit der DEFAULT-Spezifikation STAMP definiert werden.

DEFAULT SERIAL [(<unsigned_integer)]

Liefert einen Zahlengenerator für positive ganze Zahlen und kann nur für Spalten vom Datentyp INTEGER, SMALLINT und FIXED ohne Nachkommastellen angegeben werden (SERIAL).

Durch Angabe einer Integer-Zahl ohne Vorzeichen (unsigned_integer) (muß größer als 0 sein) kann der erste vom Generator erzeugte Wert definiert werden. Fehlt diese Angabe, wird als erster Wert 1 geliefert.

Wenn der Wert 0 in diese Spalte durch eine INSERT-Anweisung eingefügt wird, wird der aktuelle Zahlengeneratorwert geliefert, nicht der Wert 0.

In jeder Tabelle darf es höchstens eine Spalte mit der DEFAULT-Spezifikation DEFAULT SERIAL geben.


CONSTRAINT-Definition (constraint_definition) (MaxDB: Referenzhandbuch)

CONSTRAINT-Definition (constraint_definition)

Eine CONSTRAINT-Definition (constraint_definition) definiert eine Integritätsbedingung (Beschränkungen für Spaltenwerte, siehe Datenintegrität), der alle Zeilen einer Tabelle genügen müssen.

Syntax

<constraint_definition> ::= CHECK <search_condition>
| CONSTRAINT <search_condition>
| CONSTRAINT <constraint_name> CHECK <search_condition>

search_condition, constraint_name

Einfaches Constraint (für eine Spalte), Beispieltabelle customer

title CHAR(7) CONSTRAINT title IN ('Mr','Mrs','Comp')

Kompliziertes Constraint (für mehrere Spalten), Beispieltabelle reservation

arrival DATE NOT NULL
departure DATE CONSTRAINT departure > arrival

Es wird überprüft, ob die Ankunft vor der Abreise liegt.

Erläuterung

Eine CONSTRAINT-Definition definiert eine Integritätsbedingung, die alle Spaltenwerte der durch die Spaltendefinition mit CONSTRAINT-Definition definierten Spalte erfüllen müssen.

Die CONSTRAINT-Definition einer Spalte wird beim Einfügen einer Zeile und beim Ändern einer Spalte, die in der CONSTRAINT-Definition auftritt, überprüft. Wird die CONSTRAINT-Definition verletzt, scheitert die INSERT- bzw. UPDATE-Anweisung.

Durch die Definition eines Constraints wird implizit festgelegt, daß der NULL-Wert nicht als Eingabe zugelassen ist.

Die Suchbedingung (search_condition) der CONSTRAINT-Definition darf keine Subquery enthalten.

Die Suchbedingung der CONSTRAINT-Definition darf Spaltennamen nur in der Form <column_name> enthalten.

Constraint-Name

· Kein Constraint-Name:
Vom Datenbanksystem wird ein für die Tabelle eindeutiger Constraint-Name vergeben.

· Constraint-Name wird angegeben:
Der Constraint-Name muß sich von allen anderen Constraint-Namen der Tabelle unterscheiden.

Anzahl der Spalten in einer Suchbedingung

· Enthält nur einen Spaltennamen der Tabelle:
Beim Erzeugen der Tabelle (CREATE TABLE-Anweisung) kann geprüft werden, ob ein zusätzlich als Spaltenattribut angegebener DEFAULT-Wert (default_spec) die Suchbedingung erfüllt. Ist dies nicht der Fall, scheitert die CREATE TABLE-Anweisung.

· Enthält mehr als einen Spaltennamen der Tabelle:
Zum Zeitpunkt der Tabellenerzeugung (CREATE TABLE-Anweisung) kann nicht entschieden werden, ob DEFAULT-Werte der Tabellenspalten die Suchbedingung erfüllen. In diesem Fall kann der Versuch, DEFAULT-Werte in die Tabelle einzufügen, bei Ausführung einer INSERT- oder UPDATE-Anweisung scheitern.


Referentielle CONSTRAINT-Definition (referential_constraint_defi (MaxDB: Referenzhandbuch)

Referentielle CONSTRAINT-Definition (referential_constraint_definition)

Eine referentielle CONSTRAINT-Definition (referential_constraint_definition) definiert eine Integritätsbedingung (Beschränkungen für Spaltenwerte, siehe Datenintegrität), der alle Zeilen zweier Tabellen genügen müssen. Die dadurch definierte Abhängigkeit zwischen zwei Tabellen hat Auswirkungen auf Veränderungen, die an deren Zeilen gewünscht werden.

Syntax

<referential_constraint_definition> ::=
FOREIGN KEY [<referential_constraint_name>] (<referencing_column>,...)
REFERENCES <referenced_table> [(<referenced_column>,...)] [<delete_rule>]

referential_constraint_name, delete_rule

referenced_table referenced_column | referenzierte Tabelle, referenzierte Spalte (Tabelle/Spalte, die angesprochen werden soll)
referencing_column | referenzierende Spalte (Spalte, die die Verbindung zu der anzusprechenden Spalte herstellt)

Abhängigkeit zwischen den Beispieltabellen customer und reservation. Die referentielle CONSTRAINT-Definition wird bei der Definition der Tabelle reservation festgelegt. Der Tabelle reservation wird ein sogenannter Fremdschlüssel zugewiesen, der dem Schlüssel von customer entspricht.

CREATE TABLE reservation (rno FIXED(4) PRIMARY KEY, cno FIXED(4), hno FIXED(4), roomtype CHAR(6), arrival DATE, departure DATE,

FOREIGN KEY customer_reservation (cno) REFERENCES customer ON DELETE CASCADE)

Die definierte Beziehung bekommt den Namen customer_reservation. Die DELETE-Regel ON DELETE CASCADE legt fest, dass, wenn Zeilen der Kundentabelle gelöscht werden, die zugehörigen Buchungszeilen ebenfalls automatisch gelöscht werden.

Erläuterung

Eine referentielle CONSTRAINT-Definition kann in einer CREATE TABLE-Anweisung oder ALTER TABLE-Anweisung (ADD-Definition) verwendet werden. Die in der entsprechenden Anweisung angegebene Tabelle (table_name) wird im folgenden als referenzierende Tabelle bezeichnet.

Die referenzierenden Spalten (referencing_column) werden in der referentiellen CONSTRAINT-Definition angegeben. Die referenzierenden Spalten müssen Spalten der referenzierenden Tabelle bezeichnen und alle voneinander verschieden sein. Sie werden auch als Fremdschlüsselspalten bezeichnet.

Referenzierte Spalten (referenced_column)

· Wenn keine referenzierten Spalten angegeben werden, hat das die Wirkung wie die Angabe der Schlüsselspalten der referenzierten Tabelle (referenced_table) in der definierten Reihenfolge.

· Wenn referenzierte Spalten angegeben werden, die nicht der Schlüssel der referenzierten Tabelle sind, dann muß die referenzierte Tabelle eine UNIQUE-Definition besitzen, deren Spaltennamen und Reihenfolge der Spalten mit den referenzierten Spalten übereinstimmen.

Beziehung zwischen referenzierten und referenzierenden Spalten:

· Die Anzahl der referenzierten und der referenzierenden Spalten muß übereinstimmen.

· Die n-te referenzierende Spalte korrespondiert mit der n-ten referenzierten Spalte.

· Datentyp und Länge jeder referenzierenden Spalte muß mit dem Datentyp und der Länge der korrespondierenden referenzierten Spalte übereinstimmen.

Referenzierende und referenzierte Tabelle müssen Basistabellen, dürfen jedoch keine temporären Tabellen sein.

Der aktuelle Benutzer muss das ALTER-Privileg für die referenzierende Tabelle und das REFERENCE-Privileg für die referenzierte Tabelle haben.

Name eines referentiellen Constraints ( referential_constraint_name)

Der Name eines referentiellen Constraints kann nach den Schlüsselworten FOREIGN KEY angegeben werden.

· Wenn der Name eines referentiellen Constraints angegeben ist, muß dieser sich von allen anderen Namen referentieller Constraints der referenzierenden Tabelle unterscheiden.

· Wenn kein Name eines referentiellen Constraints angegeben ist, wird vom Datenbanksystem ein eindeutiger Name (bezogen auf die referenzierende Tabelle) vergeben.

Einfügen und Ändern von Zeilen der referenzierten Tabelle

Das Einfügen und Ändern von Zeilen der referenzierenden Tabelle unterliegt folgenden Einschränkungen:

Sei Z eine einzufügende oder geänderte Zeile. Das Einfügen und Ändern ist nur dann möglich, wenn für jede zugehörige referenzierte Tabelle (referenced_table) eine der folgenden Bedingungen erfüllt ist:

· Z ist eine Z ist eine Trefferzeile

· Z enthält in einer der referenzierenden Spalten (referencing_column) einen NULL-Wert.

· Die referentielle CONSTRAINT-Definition definiert die DELETE-Regel ON DELETE SET DEFAULT, und Z enthält in jeder referenzierenden Spalte den DEFAULT-Wert.

Weitere Begriffe

· DELETE-Regel

· CASCADE-Abhängigkeit

· Referenz-Zyklus

· Eine referentielle CONSTRAINT-Definition heißt selbst-referenzierend, wenn die referenzierte Tabelle (referenced_table) und die referenzierende Tabelle übereinstimmen.
Bei selbst-referenzierenden referentiellen CONSTRAINT-Definitionen kann die Abarbeitungsfolge einer DELETE-Anweisung von Bedeutung sein.
Angabe von CASCADE: Zunächst werden alle von der DELETE-Anweisung betroffenen Zeilen unter Nichtbeachtung der referentiellen CONSTRAINT-Bedingungen gelöscht. Anschließend werden alle Trefferzeilen der soeben gelöschten Zeilen gelöscht. Sodann werden alle Trefferzeilen des eben vorangegangenen Löschvorgangs gelöscht, usw.
Angabe von SET NULL oder SET DEFAULT: Zunächst werden alle von der DELETE-Anweisung betroffenen Zeilen unter Nichtbeachtung der referentiellen CONSTRAINT-Bedingungen gelöscht. Anschließend wird auf die Trefferzeile SET NULL bzw. SET DEFAULT angewandt.

· In der Datenbanktabelle SQLCA wird der dritte Eintrag von SQLERRD beim Löschen von Zeilen aus einer referenzierten Tabelle (referenced_table) mit der Anzahl der in der referenzierten Tabelle gelöschten Zeilen belegt.

· Bei Anwendung einer INSERT- oder einer UPDATE-Anweisung auf eine referenzierende Tabelle verwendet das Datenbanksystem unabhängig vom für die aktuelle Sitzung aktuellen Isolation-Level ein Sperrverhalten für die referenzierte Tabelle, das dem Isolation-Level 1 entspricht.
Bei Anwendung einer DELETE-Anweisung auf eine referenzierte Tabelle verwendet das Datenbanksystem ein Sperrverhalten, das dem Isolation-Level 3 entspricht.


DELETE-Regel (delete_rule) (MaxDB: Referenzhandbuch)

DELETE-Regel (delete_rule)

Die DELETE-Regel ( delete_rule ) definiert die Auswirkungen, die das Löschen einer Zeile der referenzierten Tabelle ( referenced_table ) auf die referenzierende Tabelle hat (siehe referential_constraint_definition ). Die DELETE-Regel wird auch bei der Definition von Spaltenattributen verwendet.

Syntax

<delete_rule> ::= ON DELETE CASCADE | ON DELETE RESTRICT
| ON DELETE SET DEFAULT | ON DELETE SET NULL

Erläuterung

  • Keine DELETE-Regel: Das Löschen einer Zeile der referenzierten Tabelle scheitert, wenn es Trefferzeilen gibt.
  • ON DELETE CASCADE: Wenn eine Zeile der referenzierten Tabelle gelöscht wird, dann werden alle Trefferzeilen gelöscht.
  • ON DELETE RESTRICT: Das Löschen einer Zeile der referenzierten Tabelle scheitert, wenn es Trefferzeilen gibt.
  • ON DELETE SET DEFAULT: Wenn eine Zeile der referenzierten Tabelle gelöscht wird, dann wird für jede Trefferzeile jeder referenzierenden Spalte der zugehörige Vorschlagswert (DEFAULT-Wert) zugewiesen.
    Für jede referenzierende Spalte muß eine     DEFAULT-Spezifikation existieren.
  • ON DELETE SET NULL: Wenn eine Zeile der referenzierten Tabelle gelöscht wird, dann wird jeder referenzierenden Spalte ( referencing_column ) jeder Trefferzeile ein NULL-Wert zugewiesen.
    Keine referenzierende Spalte darf eine NOT NULL-Spalte sein.


CASCADE-Abhängigkeit (MaxDB: Referenzhandbuch)

CASCADE-Abhängigkeit

Eine Tabelle T* heißt CASCADE-abhängig von einer Tabelle T, wenn es eine Folge von referentiellen CONSTRAINT-Definitionen R1, R2, ..., Rn (n>=1) gibt, so daß gilt:

  • T* ist referenzierende Tabelle von R1
  • T ist referenzierte Tabelle ( referenced_table ) von Rn
  • Alle referentiellen CONSTRAINT-Definitionen verwenden CASCADE aus der DELETE-Regel oder aus der CASCADE-Option .
  • Für i=1,...,n-1, n>1 ist die referenzierte Tabelle von Ri referenzierende Tabelle von Ri+1

Seien R1 und R2 zwei verschiedene referentielle CONSTRAINT-Definitionen mit derselben referenzierenden Tabelle S. Die referenzierte Tabelle von R1 sei T1, die von R2 sei T2.

Wenn die Tabellen T1 und T2 gleich sind, oder wenn es eine Tabelle T gibt, so daß T1 und T2 CASCADE-abhängig von T sind, dann müssen R1 und R2 entweder beide CASCADE oder beide RESTRICT spezifizieren.

Es gibt zwei verschiedene Folgen von referentiellen CONSTRAINT-Definitionen, die die Tabellen S und T verbinden. Eine DELETE-Anweisung auf die Tabelle T hat eine Aktion in der Tabelle S zur Folge. Damit das Ergebnis der DELETE-Anweisung nicht abhängig davon ist, welche der beiden verschiedenen Folgen von referentiellen CONSTRAINT-Definitionen abgearbeitet wird, wurde die obige Einschränkung für R1 und R2 gewählt.

Siehe auch:

CASCADE-Option (cascade_option)


Referenz-Zyklus (MaxDB: Referenzhandbuch)

Referenz-Zyklus

Ein Referenz-Zyklus ist eine Folge von referentiellen CONSTRAINT-Definitionen R1, R2,...,Rn mit n>1, so daß gilt:

  • i=1,...,n-1 ist die referenzierte Tabelle ( referenced_table ) von Ri die referenzierende Tabelle von Ri+1
  • die referenzierte Tabelle von Rn ist die referenzierende Tabelle von R1

Ein Referenz-Zyklus, in dem alle referentiellen CONSTRAINT-Definitionen CASCADE ( CASCADE-Abhängigkeit ) spezifizieren, ist nicht erlaubt.

Ein Referenz-Zyklus, in dem eine referentielle CONSTRAINT-Definition nicht CASCADE spezifiziert und alle übrigen referentiellen CONSTRAINT-Definitionen CASCADE spezifizieren, ist nicht erlaubt.


Trefferzeile (MaxDB: Referenzhandbuch)

Trefferzeile

Eine Zeile der referenzierenden Tabelle heißt Trefferzeile einer Zeile der referenzierten Tabelle ( referenced_table ), wenn die Werte der korrespondierenden referenzierenden Spalten ( referencing_column ) und referenzierten Spalten ( referenced_column ) gleich sind.

Eine referentielle CONSTRAINT-Definition definiert eine 1:n-Beziehung zwischen zwei Tabellen. Das bedeutet, daß zu jeder Zeile der referenzierten Tabelle mehrere Trefferzeilen existieren können.

Eine Änderung einer Zeile der referenzierten Tabelle in einer referenzierten Spalte scheitert, wenn mindestens eine Trefferzeile existiert.


Schlüsseldefinition (key_definition) (MaxDB: Referenzhandbuch)

Schlüsseldefinition (key_definition)

Eine Schlüsseldefinition (key_definition) in einer CREATE TABLE-Anweisung oder einer ALTER TABLE-Anweisung definiert den Schlüssel einer Basistabelle. Eingeleitet wird die Schlüsseldefinition durch die Schlüsselworte PRIMARY KEY (Primärschlüssel).

Syntax

<key_definition> :: PRIMARY KEY (<column_name>,...)

column_name

SQL-Anweisung, um eine Tabelle person mit einem einspaltigen Primärschlüssel für die Spalte knr zu erzeugen:

CREATE TABLE person (knr FIXED(4), vorname CHAR(7), nachname CHAR(7), konto FIXED(7,2), PRIMARY KEY (knr))

Das Einfügen von Zeilen geschieht wie in eine Basistabelle ohne Schlüsseldefinition. Allerdings werden doppelte Einträge für die Kundennummer abgewiesen.

Erläuterung

Der Spaltenname (column_name) muss eine Spalte der Basistabelle identifizieren. Die angegebenen Spaltennamen sind die Schlüsselspalten der Tabelle.

Eine Schlüsselspalte darf keine Spalte des Datentyps LONG identifizieren und ist immer eine NOT NULL-Spalte. Vom Datenbanksystem wird sichergestellt, dass keine Schlüsselspalte einen NULL-Wert besitzt und dass zwei Zeilen der Tabelle nicht in allen Schlüsselspalten die gleichen Werte besitzen.

Siehe auch:

Technische Spezifikationen


UNIQUE-Definition (unique_definition) (MaxDB: Referenzhandbuch)

UNIQUE-Definition (unique_definition)

Eine UNIQUE-Definition (unique_definition) in der CREATE TABLE-Anweisung definiert die Eindeutigkeit von Spaltenwertkombinationen.

Syntax

<unique_definition> ::= [CONSTRAINT <index_name>] UNIQUE (<column_name>,...)

index_name, column_name

Erläuterung

Die Angabe einer UNIQUE-Definition in einer CREATE TABLE-Anweisung hat die gleiche Wirkung wie die Angabe der CREATE TABLE-Anweisung ohne UNIQUE-Definition, jedoch mit einer CREATE INDEX-Anweisung mit Angabe von UNIQUE.

· Indexname angegeben: Der erzeugte Index wird unter diesem Namen im Datenbankkatalog abgelegt.

· Kein Indexname: Dem Index wird vom Datenbanksystem ein eindeutiger Indexname zugeordnet.


DROP TABLE-Anweisung (drop_table_statement) (MaxDB: Referenzhandbuch)

DROP TABLE-Anweisung (drop_table_statement)

Eine DROP TABLE-Anweisung (drop_table_statement) löscht eine Basistabelle.

Syntax

<drop_table_statement> ::= DROP TABLE <table_name> [<cascade_option>]

table_name, cascade_option

Erläuterung

Der Tabellenname muss der Name einer existierenden Basistabelle sein. Der aktuelle Benutzer muss Eigentümer der Basistabelle sein.

Alle Metadaten und Zeilen der Basistabelle sowie alle von dieser Basistabelle abgeleiteten View-Tabellen, Indizes, Privilegien, Synonyme und referentiellen CONSTRAINT-Definitionen werden gelöscht.

CASCADE-Option (cascade_option) RESTRICT: Die DROP TABLE-Anweisung scheitert, wenn auf der angegebenen Tabelle View-Tabellen oder Synonyme basieren.

CASCADE-Option (cascade_option) CASCADE: Die DROP TABLE-Anweisung wird unabhängig von den Abhängigkeiten durchgeführt.

Keine CASCADE-Option angegeben: Der Wert CASCADE wird angenommen.

Sollen alle Daten, die über eine referentielle CONSTRAINT-Definition (referential_constraint_definition) mit einer DELETE-Regel mit dieser Basistabelle verknüpft sind, gemäß angegebener DELETE-Regel bearbeitet werden, so muss erst eine DELETE-Anweisung für diese Basistabelle und dann die DROP TABLE-Anweisung dafür ausgeführt werden.


CASCADE-Option (cascade_option) (MaxDB: Referenzhandbuch)

CASCADE-Option (cascade_option)

Eine CASCADE-Option (cascade_option) bestimmt das Löschverhalten für Objekte (z.B. Tabellen, Benutzer), d.h. es wird bestimmt, ob gewisse Abhängigkeiten beim Löschen von Objekten berücksichtigt werden sollen oder nicht.

Syntax

<cascade_option> ::= CASCADE | RESTRICT

Erläuterung

CASCADE: Abhängigkeiten sollen nicht berücksichtigt werden

RESTRICT: Abhängigkeiten sollen berücksichtigt werden

DROP TABLE-Anweisung

DROP USER-Anweisung

DROP USERGROUP-Anweisung

DROP VIEW-Anweisung

DROP-Definition

REVOKE-Anweisung

Siehe auch:

CASCADE-Abhängigkeit


ALTER TABLE-Anweisung (alter_table_statement) (MaxDB: Referenzhandbuch)

ALTER TABLE-Anweisung (alter_table_statement)

Eine ALTER TABLE-Anweisung (alter_table_statement) ändert Eigenschaften einer Basistabelle (siehe Tabelle).

Syntax

<alter_table_statement> ::=
  ALTER TABLE <table_name> <add_definition>
| ALTER TABLE <table_name> <drop_definition>
| ALTER TABLE <table_name> <alter_definition>
| ALTER TABLE <table_name> <column_change_definition>
| ALTER TABLE <table_name> <modify_definition>
| ALTER TABLE <table_name> <referential_constraint_definition>
| ALTER TABLE <table_name> DROP FOREIGN KEY <referential_constraint_name>
| ALTER TABLE <table_name> <sample_definition>

table_name, add_definition, drop_definition, alter_definition, column_change_definition, modify_definition, referential_constraint_definition, referential_constraint_name, sample_definition

Erläuterung

Der Tabellenname muss der Name einer existierenden Basistabelle sein. Die Tabelle darf keine temporäre Basistabelle sein. Der aktuelle Benutzer muss das ALTER-Privileg für die angegebene Tabelle besitzen.

· Wenn eine referentielle CONSTRAINT-Definition (referential_constraint_definition) angegeben wurde, wird ein neuer referentieller Constraint für die Basistabelle definiert. Es gelten die in referentielle CONSTRAINT-Definition beschriebenen Regeln.

· Wenn DROP FOREIGN KEY angegeben wurde, wird die durch den Namen des referentiellen Constraints (referential_constraint_name) identifizierte referentielle CONSTRAINT-Definition gelöscht.

· Wenn eine SAMPLE-Definition (sample_definition) angegeben wird, wird eine neue Anzahl von Zeilen definiert, die das Datenbanksystem bei der Bestimmung der Tabellenstatistiken berücksichtigt.


ADD-Definition (add_definition) (MaxDB: Referenzhandbuch)

ADD-Definition (add_definition)

Durch Angabe einer ADD-Definition (add_definition) in der ALTER TABLE-Anweisung können Sie zusätzliche Tabelleneigenschaften definieren.

Syntax

<add_definition> ::= ADD <column_definition>,...
| ADD (<column_definition>,...)
| ADD <constraint_definition>
| ADD <referential_constraint_definition>
| ADD <key_definition>

column_definition, constraint_definition, key_definition, referential_constraint_definition

Mit der folgenden Anweisung werden in die Tabelle customer zwei weitere Spalten eingefügt. Sie enthalten zunächst in allen Zeilen den NULL-Wert.

ALTER TABLE customer ADD (phone_number FIXED (8), street CHAR (15))

Mit den neuen Spalten kann sofort gearbeitet werden.

Erläuterung

Hinzufügen einer Spaltendefinition: ADD <column_definition>

Durch die Angabe von Spaltendefinitionen können Sie die in der ALTER TABLE-Anweisung angegebene Tabelle um diese Spalten erweitern. Die maximal zulässige Anzahl von Spalten sowie die maximale Länge einer Zeile darf hierdurch nicht überschritten werden.

Jede Spalte hat einen um ein Zeichen erhöhten Platzbedarf (normaler Platzbedarf siehe Platzbedarf eines Spaltenwertes in Abhängigkeit vom Datentyp), falls die dort beschriebene Länge kleiner als 31 Zeichen ist und die Spalte nicht den Datentyp VARCHAR besitzt.

Die neu definierten Spalten enthalten in allen Zeilen den NULL-Wert, wenn für diese Spalten kein Vorschlagswert durch eine DEFAULT-Spezifikation festgelegt wurde. Falls der NULL-Wert eine CONSTRAINT-Definition der Tabelle verletzt, scheitert die ALTER TABLE-Anweisung.

Wenn Sie LONG-Spalten hinzufügen, können Sie keine DEFAULT-Spezifikation angeben. Wenn Sie für eine LONG-Spalte einen Vorschlagswert festlegen wollen, können Sie die LONG-Spalte mittels der ADD-Definition definieren und dann für die Definition eines Vorschlagswertes die MODIFY-Definition verwenden.

In jeder anderen Hinsicht hat die Angabe einer Spaltendefinition dieselbe Wirkung wie die Angabe einer Spaltendefinition in einer CREATE TABLE-Anweisung.

· Wenn für die angegebene Tabelle View-Tabellen definiert sind, für eine dieser View-Tabellen Alias-Namen definiert sind und die View-Tabellen die Spalten der Tabelle mit * referenzieren, so scheitert die ALTER TABLE-Anweisung.

· Wenn für die angegebene Tabelle View-Tabellen definiert sind, keine Alias-Namen definiert sind und die View-Tabellen die Spalten der Tabelle mit * referenzieren, so enthält diese View-Tabelle die durch die ADD-Definition zur Basistabelle hinzugefügten Spalten.

Hinzufügen einer CONSTRAINT-Definition: ADD <constraint_definition>

Alle Zeilen der Tabelle müssen die durch die Suchbedingung der CONSTRAINT-Definition definierte Bedingung erfüllen.

Hinzufügen einer referntiellen CONSTRAINT-Definition: ADD <referential_constraint_definition>

Für die in der ALTER TABLE-Anweisung angegebene Tabelle wird eine Integritätsbedingung definiert. Die in der referentiellen CONSTRAINT-Definition angegebenen Spalten müssen Spalten der Tabelle sein. Alle Zeilen der Tabelle müssen die durch die referentielle CONSTRAINT-Definition definierte Integritätsbedingung erfüllen.

Hinzufügen einer Schlüsseldefinition: ADD <key_definition>

Für die in der ALTER TABLE-Anweisung angegebene Tabelle wird ein Schlüssel definiert. Die Tabelle darf zum Zeitpunkt der Ausführung nur die vom Datenbanksystem vergebene Schlüsselspalte SYSKEY besitzen. Die in der Schlüsseldefinition angegebenen Spalten müssen Spalten der Tabelle sein und die Schlüsseleigenschaften erfüllen (keine der Spalten darf NULL-Werte enthalten, keine zwei Zeilen dürfen in allen in der Schlüsseldefinition definierten Spalten die gleiche Werte besitzen). Der neue Schlüssel wird in den Metadaten der Tabelle vermerkt. Die Schlüsselspalte SYSKEY entfällt. Dieser Vorgang dauert für Tabellen mit vielen Zeilen recht lange, da umfangreiche Kopiervorgänge durchgeführt werden.

Wenn für die in der ALTER TABLE-Anweisung angegebene Tabelle ein Primärschlüssel definiert wird, dessen Struktur mit der eines vorhandenen Index vollständig übereinstimmt, wird dieser Index gelöscht.


ALTER-Definition (alter_definition) (MaxDB: Referenzhandbuch)

ALTER-Definition (alter_definition)

Durch Angabe einer ALTER-Definition (alter_definition) in der ALTER TABLE-Anweisung können Sie die eine CONSTRAINT-Definition oder eine Schlüsseldefinition ändern.

Syntax

<alter_definition> ::=
  ALTER CONSTRAINT <constraint_name> CHECK <search_condition>
| ALTER <key_definition>

constraint_name , search_condition , key_definition

Erläuterung

CONSTRAINT <constraint_name>

Der Constraint-Name muß eine CONSTRAINT-Definition der Tabelle identifizieren. Wenn keine Zeile der Tabelle der angegebenen Suchbedingung widerspricht, ersetzt diese die bestehende Suchbedingung der CONSTRAINT-Definition. Anderfalls scheitert die ALTER TABLE-Anweisung.

<key_definition>

Der durch die Schlüsseldefinition festgelegte Schlüssel ersetzt den bisherigen Schlüssel der Tabelle. Die in der Schlüsseldefinition angegebenen Spalten müssen Spalten der Tabelle identifizieren und die Schlüsseleigenschaft ( key_definition ) besitzen.

Wenn eine Spalte des zu ersetzenden Schlüssels referenzierte Spalte (referenced_column) einer referentiellen CONSTRAINT-Definition ist, scheitert die ALTER TABLE-Anweisung.

Insbesondere bei Tabellen mit vielen Zeilen ist ein hoher Zeitbedarf zu erwarten, da umfangreiche Kopiervorgänge durchgeführt werden müssen.


COLUMN-Change-Definition (column_change_definition) (MaxDB: Referenzhandbuch)

COLUMN-Change-Definition (column_change_definition)

Durch Angabe einer COLUMN-Change-Definition (column_change_definition) in der ALTER TABLE-Anweisung können Sie die Eigenschaften einer Spalte ändern.

Syntax

<column_change_definition> ::= COLUMN <column_name> NOT NULL
| COLUMN <column_name> DEFAULT NULL
| COLUMN <column_name> ADD <default_spec>
| COLUMN <column_name> ALTER <default_spec>
| COLUMN <column_name> DROP DEFAULT

column_name, default_spec

Erläuterung

NOT NULL

NOT NULLkann nur angegeben werden, wenn die Spalte keine NULL-Werte enthält. Nach erfolgreicher Ausführung der ALTER TABLE-Anweisung ist es nicht mehr möglich, einen NULL-Wert in die Spalte einzufügen.

DEFAULT NULL

DEFAULT NULL läßt einen NULL-Wert für die Spalte zu. Es wird nicht geprüft, ob ein NULL-Wert existierende CONSTRAINT-Definitionen der Tabelle verletzt. Daher kann das Einfügen des NULL-Wertes bei Ausführung einer INSERT- oder UPDATE-Anweisung scheitern.

ADD <default_spec>

Die Spalte darf vor Ausführung der ALTER TABLE-Anweisung mit ADD <default_spec> keine DEFAULT-Spezifikation (default_spec) besitzen. Durch ADD <default_spec> erhält die Spalte einen Vorschlagswert (DEFAULT-Wert).

ALTER <default_spec>

Durch ALTER <default_spec> wird der Vorschlagswert (DEFAULT-Wert) der Spalte geändert. Alle Zeilen, die in der Spalte den alten Vorschlagswert besitzen, bleiben unverändert.

DROP DEFAULT

Durch DROP DEFAULT wird die DEFAULT-Spezifikation der Spalte gelöscht. Wenn die Spalte Fremdschlüsselspalte einer referentiellen CONSTRAINT-Definition mit der DELETE-REGEL ON DELETE SET DEFAULT ist, scheitert die ALTER TABLE-Anweisung.


DROP-Definition (drop_definition) (MaxDB: Referenzhandbuch)

DROP-Definition (drop_definition)

Durch Angabe einer DROP-Definition (drop_definition) in der ALTER TABLE-Anweisung können Sie Tabelleneigenschaften löschen.

Syntax

<drop_definition> ::= DROP <column_name>,... [<cascade_option>] [RELEASE SPACE]
| DROP (<column_name>,...) [<cascade_option>] [RELEASE SPACE]
| DROP CONSTRAINT <constraint_name> | DROP PRIMARY KEY

column_name, cascade_option, constraint_name

Erläuterung

Löschen einer Spalte: DROP <column_name>

Jeder Spaltenname muss eine Spalte der durch die ALTER TABLE-Anweisung identifizierten Tabelle sein. Die Spalte darf keine Schlüsselspalte und keine Fremdschlüsselspalte einer referentiellen CONSTRAINT-Definition der Tabelle sein.

In den Metadaten der Tabelle werden die Spalten als gelöscht markiert. Der Platzbedarf der zugrundeliegenden Tabelle verringert sich durch eine DROP-Definition nicht automatisch. Durch RELEASE SPACE wird das Löschen der Spaltenwerte der gelöschten Spalten in allen Zeilen der Tabelle erzwungen. Insbesondere bei Tabellen mit vielen Zeilen ist ein hoher Zeitbedarf zu erwarten, da umfangreiche Kopiervorgänge durchgeführt werden müssen.

Privilegien und Kommentare der zu löschenden Spalte werden gelöscht.

Wenn eine der zu löschenden Spalten als selektierte Spalte in einer View-Definition auftritt, dann wird die angegebene Spalte der View-Tabelle gelöscht.
Wenn diese View-Tabelle in der FROM-Klausel einer weiteren View-Tabelle verwendet wird, so wird das beschriebene Verfahren rekursiv auf diese View-Tabelle angewandt.

· Wenn eine der zu löschenden Spalten in der QUERY-Spezifikation einer View-Definition auftritt und keine CASCADE-Bedingung oder die CASCADE-Bedingung CASCADE in der DROP-Definition angegeben ist, dann wird die View-Definition mit allen von ihr abhängigen View-Tabellen, Privilegien und Synonymen gelöscht

· Wenn eine der zu löschenden Spalten in der QUERY-Spezifikation einer View-Definition auftritt und die CASCADE-Bedingung RESTRICT in der DROP-Definition angegeben ist, dann scheitert die ALTER TABLE-Anweisung.

Existierende Indizes, die sich auf die zu löschenden Spalten beziehen, werden gelöscht. Der Speicherplatz für die gelöschten Indizes wird frei.

Alle CONSTRAINT-Definitionen, die eine der gelöschten Spalten enthalten, werden gelöscht.

Löschen eines Constraints: DROP CONSTRAINT <constraint_name>

Der Constraintname muss eine CONSTRAINT-Definition der Tabelle identifizieren. Diese wird aus den Metadaten der Tabelle entfernt.

Löschen eines Schlüssels: DROP PRIMARY KEY

· Die Tabelle muss einen vom Benutzer definierten Schlüssel besitzen.

· Die Tabelle darf nicht mehr als 1023 Spalten besitzen (Technische Spezifikationen).

· Die maximal zulässige Länge einer Zeile darf 8088 Bytes nicht überschreiten.

· Keine Schlüsselspalte darf referenzierte Spalte (referenced_column) einer referentiellen CONSTRAINT-Definition sein.

Der Schlüssel wird durch die vom Datenbanksystem vergebene Schlüsselspalte SYSKEY ersetzt. Insbesondere bei Tabellen mit vielen Zeilen ist ein hoher Zeitbedarf zu erwarten, da umfangreiche Kopiervorgänge durchgeführt werden müssen.


MODIFY-Definition (modify_definition) (MaxDB: Referenzhandbuch)

MODIFY-Definition (modify_definition)

Durch Angabe einer MODIFY-Definition (modify_definition) in der ALTER TABLE-Anweisung können Sie Datentypen und Eigenschaften von Tabellenspalten ändern.

Syntax

<modify_definition> ::= MODIFY (<column_name> [<data_type>] [<column_attributes>]...)

column_name, data_type, column_attributes

Die Klammern können entfallen, wenn die MODIFY-Definition nur einen Spaltennamen (column_name) enthält.

Erläuterung

Jeder Spaltenname muss eine Spalte der in der ALTER TABLE-Anweisung angegebenen Basistabelle bezeichnen.

Spaltenattribute (column_attributes)

Es sind nur folgende Spaltenattribute erlaubt:

· NULL
NULL-Wert

· NOT NULL
Wenn NOT NULL angegeben wird, darf die Tabelle keine Zeile besitzen, die in der entsprechenden Spalte einen NULL-Wert enthält. Ein NULL-Wert kann anschließend nicht mehr in die Spalte eingefügt werden.

· DEFAULT-Spezifikation
Die DEFAULT-Spezifikation DEFAULT SERIAL ist nicht zulässig.
Wenn eine DEFAULT-Spezifikation angegeben wird, dann ersetzt diese eine gegebenenfalls existierende DEFAULT-Spezifikation der entsprechenden Spalte. Die neue DEFAULT-Spezifikation hat keine Auswirkungen auf bereits existierende Zeilen der Tabelle, sondern wird erst bei nachfolgenden INSERT-Anweisungen wirksam.

Datentypen (data_type)

Wenn keine DEFAULT-Spezifikation angegeben wird und für die entsprechende Spalte eine DEFAULT-Spezifikation definiert ist, dann muss diese zum Datentyp kompatibel sein.

· Codeattribut ASCII: Die entsprechende Spalte muss vor der Modifikation den Datentyp DATE, TIME oder TIMESTAMP oder das Codeattribut ASCII oder UNICODE besitzen.

· Codeattribut UNICODE: Für die entsprechende Spalte muss eine Transformation von UNICODE nach ASCII möglich sein.

· Codeattribut BYTE: Die entsprechende Spalte muss vor der Modifikation den Datentyp DATE, TIME oder TIMESTAMP oder das Codeattribut ASCII oder BYTE besitzen.

Datentyp CHAR(n), VARCHAR(n): Die entsprechende Spalte muss den Datentyp CHAR(n), VARCHAR(n), DATE, TIME oder TIMESTAMP besitzen. Die Tabelle darf in diesem Fall keine Zeile enthalten, die in der Spalte einen Wert einer Länge größer als n besitzt.
Falls eine Spalte vor der Ausführung der ALTER TABLE-Anweisung das Codeattribut UNICODE besaß und das neue Codeattribut von UNICODE verschieden ist, muss eine Transformation in das neue Codeattribut möglich sein.

Datentyp DATE: Die entsprechende Spalte muss den Datentyp CHAR(n), VARCHAR(n) oder DATE besitzen. Alle Zeilen der Tabelle müssen in der Spalte einen Wert enthalten, der einem Datum in einem beliebigen vom Datenbanksystem unterstützten Datumsformat entspricht.

Datentyp FIXED(n,m): Die entsprechende Spalte muss den Datentyp FIXED(n,m), FLOAT, INT oder SMALLINT besitzen. Die Tabelle darf in diesem Fall keine Zeile enthalten, die in der Spalte einen Wert mit mehr als (n-m) Vorkomma- oder m Nachkommastellen besitzt.

Datentyp FLOAT(n): Die entsprechende Spalte muss den Datentyp FIXED(n,m), FLOAT(n), INT oder SMALLINT besitzen.

Datentyp INT: Die entsprechende Spalte muss den Datentyp FIXED(n,m), FLOAT(n), INT oder SMALLINT besitzen. Die Tabelle darf in diesem Fall nur Zeilen enthalten, die in der Spalte ganzzahlige Werte im Bereich von –2147483648 bis 2147483647 enthalten.

Datentyp SMALLINT: Die entsprechende Spalte muss den Datentyp FIXED(n,m), FLOAT(n), INT oder SMALLINT besitzen. Die Tabelle darf in diesem Fall nur Zeilen enthalten, die in der Spalte ganzzahlige Werte im Bereich von –32768 bis 32767 enthalten.

Datentyp TIME: Die entsprechende Spalte muss den Datentyp CHAR(n), VARCHAR(n) oder TIME besitzen. Alle Zeilen der Tabelle müssen in der Spalte einen Wert enthalten, der einem Zeitwert in einem beliebigen vom Datenbanksystem unterstützten Zeitformat entspricht.

Datentyp TIMESTAMP: Die entsprechende Spalte muss den Datentyp CHAR(n), VARCHAR(n) oder TIMESTAMP besitzen. Alle Zeilen der Tabelle müssen in der Spalte einen Wert enthalten, der einem Zeitstempelwert in einem beliebigen vom Datenbanksystem unterstützten Zeitstempelformat entspricht.

Spaltenattribut NULL: In die entsprechende Spalte kann durch nachfolgende INSERT- oder UPDATE-Anweisungen ein NULL-Wert eingetragen werden.

Wenn eine der durch column_name spezifizierten Spalten in einer Suchbedingung der Tabelle enthalten ist, dann muss diese Spalte auch nach einer Datentypänderung eine legale Suchbedingung definieren.

Sonstiges

Die Angabe einer MODIFY-Definition kann abhängig von der Art der Änderung dazu führen, dass die Tabelle umkopiert werden muss und/oder dass Indizes neu aufgebaut werden müssen. In diesen Fällen ist mit einer entsprechend langen Laufzeit zu rechnen.

Wenn die Tabelle umkopiert wird und die Tabelle als gelöscht markierte Spalten besitzt, dann werden diese aus dem Datenbankkatalog und den Zeilen der Tabelle entfernt und der Platzbedarf der Tabelle wird entsprechend reduziert.


RENAME TABLE-Anweisung (rename_table_statement) (MaxDB: Referenzhandbuch)

RENAME TABLE-Anweisung (rename_table_statement)

Eine RENAME TABLE-Anweisung ( rename_table_statement ) ändert den Namen einer Basistabelle (siehe Tabelle ).

Syntax

<rename_table_statement> ::=
RENAME TABLE <old_table_name> TO <new_table_name>

<old_table_name> ::= <table_name>
<new_table_name> ::= <identifier>

table_name , identifier

Erläuterung

Der alte Tabellenname muß eine Basistabelle identifizieren, die keine temporäre Tabelle sein darf. Der aktuelle Benutzer muß Eigentümer der Tabelle sein.

Der neue Tabellenname darf noch nicht für eine Basis- oder View-Tabelle oder ein privates Synonym des aktuellen Benutzers vergeben sein.

Die alte Tabelle erhält den in new_table_name angegebenen Namen. Sämtliche Eigenschaften der Tabelle (z.B. Privilegien, Indizes) bleiben erhalten. Die Definitionen von View-Tabellen, die auf dem alten Tabellennamen basieren, werden an den neuen Namen angepaßt.


RENAME COLUMN-Anweisung (rename_column_statement) (MaxDB: Referenzhandbuch)

RENAME COLUMN-Anweisung (rename_column_statement)

Eine RENAME COLUMN-Anweisung ( rename_column_statement ) ändert den Namen einer Tabellenspalte.

Syntax

<rename_column_statement> ::=
RENAME COLUMN <table_name>.<column_name> TO <column_name>

table_name , column_name

Erläuterung

Die angegebene Tabelle muß eine Basis- oder View-Tabelle sein. Der aktuelle Benutzer muß der Eigentümer der Tabelle sein.

Die angegebene Tabellenspalte erhält einen neuen Namen. Wurde der Spaltenname einer View-Tabelle (die mit dieser Tabelle definiert wurde) aus dem Spaltennamen der Basistabelle abgeleitet, so wird in der View-Tabelle der alte Spaltenname durch den neuen ersetzt. Falls der neue Spaltenname bereits als Spaltenname der View-Tabelle existiert, scheitert die RENAME COLUMN-Anweisung.


EXISTS TABLE-Anweisung (exists_table_statement) (MaxDB: Referenzhandbuch)

EXISTS TABLE-Anweisung (exists_table_statement)

Eine EXISTS TABLE-Anweisung ( exists_table_statement ) zeigt die Existenz oder Nichtexistenz einer Tabelle an.

Syntax

<exists_table_statement> ::= EXISTS TABLE <table_name>

table_name

Erläuterung

Die angegebene Tabelle muß eine Basis- oder View-Tabelle oder ein Synonym sein.

Die Existenz oder Nichtexistenz der angegebenen Tabelle wird durch die Rückmeldung 0 bzw. die Fehlermeldung –4004 Unbekannter Tabellenname signalisiert.

Eine Tabelle existiert für einen Benutzer nur dann, wenn er ein Privileg auf dieser Tabelle besitzt.


CREATE DOMAIN-Anweisung (create_domain_statement) (MaxDB: Referenzhandbuch)

CREATE DOMAIN-Anweisung (create_domain_statement)

Eine CREATE DOMAIN-Anweisung ( create_domain_statement ) definiert einen Wertebereich .

Syntax

<create_domain_statement> ::= CREATE DOMAIN <domain_name> <data_type> [<default_spec>] [<constraint_definition>]

domain_name , data_type , default_spec , constraint_definition

Erläuterung

Die CONSTRAINT-Definition ( constraint_definition ) darf keinen Constraint-Namen enthalten.

Die CREATE DOMAIN-Anweisung kann von allen Benutzern mit DBA-Status ausgeführt werden.

Wenn der Domänenname ohne Eigentümer angegeben wird, wird der aktuelle Benutzer als Eigentümer angenommen. Wenn Sie den Domänennamen mit einem Eigentümer angeben, muß dieser Eigentümer mit dem aktuellen Benutzer übereinstimmen. Der aktuelle Benutzer wird also in jedem Fall zum Eigentümer des Wertebereichs.

Der Domänenname muß sich von allen existierenden Domänennamen des aktuellen Benutzers unterscheiden.

Wenn ein Wertebereich mit einer CONSTRAINT-Definition erzeugt wird, so wird der Domänenname in der Suchbedingung als Spaltenname angenommen.


DROP DOMAIN-Anweisung (drop_domain_statement) (MaxDB: Referenzhandbuch)

DROP DOMAIN-Anweisung (drop_domain_statement)

Die DROP DOMAIN-Anweisung ( drop_domain_statement ) löscht die Definition eines Wertebereich s.

Syntax

<drop_domain_statement> ::= DROP DOMAIN <domain_name>

domain_name

Erläuterung

Der Domänenname muß einen existierenden Wertebereich identifizieren. Der aktuelle Benutzer muß Eigentümer des Wertebereichs sein.

Die Metadaten des Wertebereichs werden aus dem Katalog gelöscht. Das Löschen eines Wertebereichs hat keine Auswirkungen auf Tabellen, in denen der Wertebereich zur Spaltendefinition benutzt wurde.


CREATE SEQUENCE-Anweisung (create_sequence_statement) (MaxDB: Referenzhandbuch)

CREATE SEQUENCE-Anweisung (create_sequence_statement)

Die CREATE SEQUENCE-Anweisung (create_sequence_statement) definiert ein Datenbankobjekt, das ganzzahlige Werte liefert (Zahlengenerator). Dieses Objekt wird im folgenden Sequenz genannt.

Syntax

<create_sequence_statement> ::= CREATE SEQUENCE [<owner>.]<sequence_name>
[INCREMENT BY <integer>] [START WITH <integer>]
[MAXVALUE <integer> | NOMAXVALUE] [MINVALUE <integer> | NOMINVALUE]
[CYCLE | NOCYCLE]
[CACHE <unsigned_integer> | NOCACHE]
[ORDER | NOORDER]

owner, sequence_name, integer, unsigned_integer

Erläuterung

Die optionalen Angaben nach dem Sequenznamen (sequence_name) können in beliebiger Reihenfolge erfolgen.

Der aktuelle Benutzer muss ein RESOURCE-Benutzer oder Datenbankadministrator (DBA-Benutzer) sein. Wenn ein Eigentümer (owner) angegeben wird, muss dieser den aktuellen Benutzer identifizieren. Der aktuelle Benutzer wird Eigentümer der Sequenz.

Die von der Sequenz erzeugten ganzzahligen Werte können zur Vergabe von Schlüsselwerten benutzt werden.

INCREMENT BY

Definiert die Differenz des nächsten Sequenzwertes vom zuletzt vergebenen Wert. Ein negativer Wert von INCREMENT BY erzeugt eine fallende Sequenz. Wenn kein Wert angegeben wird, wird der Wert 1 verwendet.

START WITH

Definiert den ersten Sequenzwert. Wenn kein Wert angegeben wird, wird der für MAXVALUE angegebene Wert bzw. -1 bei fallenden und der für MINVALUE angegebene Wert bzw. 1 bei aufsteigenden Sequenzen benutzt.

MINVALUE

Definiert den kleinsten Wert, der durch die Sequenz erzeugt wird. Ist kein Wert für MINVALUE angegeben, wird der kleinste mit 38 Ziffern darstellbare ganzzahlige Wert benutzt.

MAXVALUE

Definiert den größten Wert, der durch die Sequenz erzeugt wird. Ist kein Wert für MAXVALUE angegeben, wird der größte mit 38 Ziffern darstellbare ganzzahlige Wert benutzt.

CYCLE/NOCYCLE

CYCLE: Bei aufsteigenden Sequenzen wird nach der Vergabe von MAXVALUE der Wert MINVALUE geliefert. Bei fallenden Sequenzen wird nach der Vergabe von MINVALUE der Wert MAXVALUE geliefert.

NOCYCLE: Die Anforderung eines Sequenzwertes scheitert, wenn bereits das Ende der Sequenz erreicht wurde, d.h. wenn MAXVALUE bei aufsteigenden bzw. MINVALUE bei fallenden Sequenzen vergeben wurde

Ist weder CYCLE noch NOCYCLE angegeben, wird NOCYCLE angenommen.

CACHE/NOCACHE

CACHE: Der Zugriff auf die Sequenz kann beschleunigt werden, weil die definierte Anzahl von Sequenzwerten bereits voraus im Speicher gehalten wird.

NOCACHE: Es werden keine Sequenzwerte im voraus bestimmt.

Ist weder CACHE noch NOCACHE angegeben, wird CACHE 20 angenommen.

ORDER/NOORDER

Die Angabe von ORDER bzw. NOORDER hat keinerlei Auswirkungen.

Die Spezifikation der Sequenzwerte kann mittels CURRVAL und NEXTVAL (Angabe von Werten, value_spec) erfolgen. So können Sie den aktuellen Zählerstand erfragen oder erhöhen.


DROP SEQUENCE-Anweisung (drop_sequence_statement) (MaxDB: Referenzhandbuch)

DROP SEQUENCE-Anweisung (drop_sequence_statement)

Die DROP SEQUENCE-Anweisung ( drop_sequence_statement ) löscht einen Zahlengenerator (Sequenz).

Syntax

<drop_sequence_statement> ::= DROP SEQUENCE [<owner>.]<sequence_name>

owner , sequence_name

Erläuterung

Der Eigentümer ( owner ) muß der aktuelle Benutzer sein. Der Sequenzname muß eine Sequenz des aktuellen Benutzers identifizieren.

Die Metadaten der Sequenz werden aus dem Katalog entfernt.


CREATE SYNONYM-Anweisung (create_synonym_statement) (MaxDB: Referenzhandbuch)

CREATE SYNONYM-Anweisung (create_synonym_statement)

Die CREATE SYNONYM-Anweisung ( create_synonym_statement ) definiert ein Synonym (alternativer Name) für einen Tabellennamen .

Syntax

<create_synonym_statement> ::= CREATE [PUBLIC] SYNONYM [<owner>.]<synonym_name> FOR <table_name>

owner , synonym_name , table_name

Erläuterung

Der Tabellenname ( table_name ) darf keine temporäre Basistabelle (siehe Tabelle ) bezeichnen. Der Benutzer muß ein Privileg auf der angegebenen Tabelle besitzen. Der Eigentümer ( owner ) muß der aktuelle Benutzer sein.

Der Synonymname kann überall an Stelle des Tabellennamens angegeben werden. Dies hat die gleiche Wirkung wie die Angabe des Tabellennamens, für den das Synonym definiert wurde.

PUBLIC

Wenn PUBLIC angegeben ist, darf der Synonymname nicht mit dem Namen eines in PUBLIC definierten Synonyms übereinstimmen. Es wird ein Synonym erzeugt, das für alle Benutzer zugreifbar ist.

Wenn PUBLIC nicht angegeben ist, wird ein privates Synonym erzeugt, das nur dem aktuellen Benutzer bekannt ist. In diesem Fall darf der Synonymname nicht mit dem Namen einer bereits existierenden Basis- oder View-Tabelle oder eines privaten Synonyms des aktuellen Benutzers übereinstimmen. Falls ein Synonym gleichen Namens mit dem PUBLIC-Attribut existiert, kann mit diesem vom aktuellen Benutzer nicht mehr zugegriffen werden, bis das private Synonym gelöscht wird.


DROP SYNONYM-Anweisung (drop_synonym_statement) (MaxDB: Referenzhandbuch)

DROP SYNONYM-Anweisung (drop_synonym_statement)

Die DROP SYNONYM-Anweisung ( drop_synonym_statement ) löscht ein Synonym (alternativer Name) für einen Tabellennamen .

Syntax

<drop_synonym_statement> ::= DROP [PUBLIC] SYNONYM [<owner>.]<synonym_name>

owner , synonym_name

Erläuterung

Der angegebene Synonymname muß ein existierendes Synonym des aktuellen Benutzers identifizieren.

Wenn PUBLIC angegeben ist, muß das durch den Synonymnamen identifizierte Synonym als PUBLIC definiert sein.

Die Synonymdefinition wird aus der Menge der dem Benutzer zur Verfügung stehenden Synonyme für Tabellennamen entfernt.


RENAME SYNONYM-Anweisung (rename_synonym_statement) (MaxDB: Referenzhandbuch)

RENAME SYNONYM-Anweisung (rename_synonym_statement)

Die RENAME SYNONYM-Anweisung ( rename_synonym_statement ) ändert den Namen eines Synonym s.

Syntax

<rename_synonym_statement> ::= RENAME [PUBLIC] SYNONYM <old_synonym_name> TO <new_synonym_name>

old_/new_ synonym_name

Erläuterung

Der alte Synonymname ( old_synonym_name ) muß vom aktuellen Benutzer erzeugt worden sein.

Wenn PUBLIC angegeben ist, dann muß das alte Synonym als PUBLIC definiert sein.

Es darf keine Tabelle des aktuellen Benutzers mit dem neuen Synonymnamen ( new_synonym_name ) existieren.


CREATE VIEW-Anweisung (create_view_statement) (MaxDB: Referenzhandbuch)

CREATE VIEW-Anweisung (create_view_statement)

Die CREATE VIEW-Anweisung (create_view_statement) definiert eine View-Tabelle (siehe Tabelle). Eine View-Tabelle ist nie physisch vorhanden, sondern wird erst aus den Zeilen der zugrundeliegenden Basistabelle(n) gebildet, wenn in einer SQL-Anweisung diese View-Tabelle angegeben wird.

Syntax

<create_view_statement> ::= CREATE [OR REPLACE] VIEW <table_name> [(<alias_name>,...)] AS <query_expression> [WITH CHECK OPTION]

table_name, alias_name, query_expression

Erläuterung

Die Ausführung der CREATE VIEW-Anweisung führt zur Ablage von Metadaten im Katalog, die die View-Tabelle beschreiben.

Die View-Tabelle ist jederzeit identisch mit der Tabelle, die Sie als Ergebnis des QUERY-Ausdrucks (query_expression) erhalten würden. Der QUERY-Ausdruck darf keine Parameterspezifikation enthalten. Der QUERY-Ausdruck darf keine temporäre Tabelle und keinen Ergebnistabellennamen referenzieren.

Kein Tabellenausdruck der QUERY-Spezifikation im QUERY-Ausdruck der CREATE VIEW-Anweisung darf einen QUERY-Ausdruck enthalten.

Wenn eine durch den QUERY-Ausdruck selektierte Spalte vom Datentyp LONG ist, dann muß die FROM-Klausel genau einen Tabellennamen enthalten, dem genau eine Basistabelle zugrundeliegt.

Der Benutzer muß das SELECT-Privileg für alle Spalten besitzen, die in der Viewdefinition vorkommen. Der Benutzer ist Eigentümer der View-Tabelle und besitzt mindestens das SELECT-Privileg dafür. Er darf das SELECT-Privileg für alle Spalten der View-Tabelle, die sich aus Spalten ableiten, für die er das Recht zur Weitergabe des SELECT-Privilegs besitzt, vergeben. Das INSERT-, UPDATE- und DELETE-Privileg besitzt er nur dann, wenn er die entsprechenden Privilegien für die der View-Tabelle zugrundeliegenden Tabellen besitzt, und wenn die View-Tabelle änderbar ist. Diese Privilegien darf er nur dann weitergeben, wenn er für alle der View-Tabelle zugrundeliegenden Tabellen das Recht besitzt, das jeweilige Privileg weiterzugeben.

OR REPLACE

Wenn OR REPLACE nicht angegeben wird, darf der Tabellenname (table_name) nicht mit dem Namen einer existierenden View-Tabelle übereinstimmen.

Wenn OR REPLACE angegeben ist, darf der Tabellenname mit dem Namen einer existierenden View-Tabelle übereinstimmen. Die Definition der existierenden View-Tabelle wird in diesem Fall durch die neue Definition ersetzt. Das Datenbanksystem versucht dabei, vergebene Privilegien der existierenden View-Tabelle an die neue Viewdefinition anzupassen, so daß die Privilegierung der View-Tabelle normalerweise erhalten bleibt. Bei Konflikten, die das Datenbanksystem nicht entscheiden kann, erfolgt ein impliziter Entzug von Privilegien. Bei großen Unterschieden zwischen den beiden Viewdefinitionen kann die CREATE VIEW-Anweisung in folgendem Fall scheitern: Die CREATE VIEW-Anweisung einer auf der existierenden View-Tabelle basierenden View-Tabelle ist auf der neuen Viewdefinition nicht mehr fehlerfrei ausführbar.

Alias-Namen (alias_name)

Die Spaltennamen der View-Tabelle müssen eindeutig sein. Ist das in der durch den QUERY-Ausdruck erzeugten Ergebnistabelle nicht der Fall, müssen Alias-Namen vergeben werden, die die Spaltennamen der View-Tabelle definieren. Die Anzahl der Alias-Namen muß gleich der Anzahl der Spalten der durch den QUERY-Ausdruck erzeugten Ergebnistabelle sein. Wenn keine Alias-Namen angegeben sind, dann werden die Spaltennamen der durch den QUERY-Ausdruck erzeugten Ergebnistabelle für die View-Tabelle übernommen. Die Spaltenbeschreibungen der View-Tabelle werden von den entsprechenden Spalten des QUERY-Ausdrucks übernommen. Die FROM-Klausel des QUERY-Ausdrucks kann eine oder mehrere Tabellen enthalten.

WITH CHECK OPTION

Wenn die CREATE VIEW-Anweisung eine WITH CHECK OPTION enthält, dann muß der Eigentümer der View-Tabelle das INSERT-, UPDATE- oder DELETE-Privileg für die View-Tabelle besitzen.

Die Angabe von WITH CHECK OPTION bewirkt, daß durch die INSERT- oder UPDATE-Anweisung auf der View-Tabelle keine Zeilen erzeugt werden können, die anschließend nicht mehr über die View-Tabelle selektierbar sind, d.h. resultierende Zeilen müssen die Suchbedingung der View-Tabelle erfüllen.

Die CHECK OPTION wird vererbt, d.h. wenn eine View-Tabelle V mit WITH CHECK OPTION definiert wurde und V in der FROM-Bedingung einer änderbaren View-Tabelle V1 vorkommt, dann lassen sich über V1 nur Zeilen einfügen oder ändern, die über V selektiert werden können.

Weitere Begriffe und Informationen

· Komplexe View-Tabelle

· Änderbare View-Tabelle

· INSERT-Privileg für Eigentümer der View-Tabelle

· UPDATE-Privileg für Eigentümer der View-Tabelle

· DELETE-Privileg für Eigentümer der View-Tabelle

· Änderbare Join-View-Tabelle


Komplexe View-Tabelle (MaxDB: Referenzhandbuch)

Komplexe View-Tabelle

Eine View-Tabelle (siehe CREATE VIEW-Anweisung ) ist eine komplexe View-Tabelle, wenn sie eine der folgenden Bedingungen erfüllt:

  • Die Definition der View-Tabelle enthält DISTINCT oder GROUP BY oder HAVING.
  • Die CREATE VIEW-Anweisung enthält EXCEPT, INTERSECT oder UNION.
  • Die im QUERY-Ausdruck der CREATE VIEW-Anweisung enthaltene Suchbedingung enthält eine Subquery .
  • Die CREATE VIEW-Anweisung enthält einen Outer Join, also einen OUTER JOIN-Indikator ( outer_join_indicator ) in einem JOIN-Prädikat der Suchbedingung.


Änderbare View-Tabelle (MaxDB: Referenzhandbuch)

Änderbare View-Tabelle

Eine View-Tabelle (siehe CREATE VIEW-Anweisung ) heißt änderbar, wenn sie keine komplexe View-Tabelle ist und auf keiner komplexen View-Tabelle basiert.

Für Join-View-Tabellen, d.h. View-Tabellen, deren FROM-Klausel mehr als eine Tabelle oder eine Join-Tabelle enthält, müssen zusätzlich folgende Bedingungen erfüllt sein:

  • Jede der View-Tabelle zugrundeliegende Basistabelle besitzt einen vom Benutzer definierten Schlüssel.
  • Zwischen den der View-Tabelle zugrundeliegenden Basistabellen müssen referentielle CONSTRAINT-Definitionen festgelegt sein.
  • Es gibt genau eine der View-Tabelle zugrundeliegende Basistabelle, die nicht referenzierte Tabelle ( referenced_table ) einer referentiellen CONSTRAINT-Definition zu einer anderen der View-Tabelle zugrundeliegenden Basistabelle ist. Diese Tabelle ist die Schlüsseltabelle der View-Tabelle.
  • Für jede der View-Tabelle zugrundeliegende Basistabelle gibt es eine Folge von referentiellen CONSTRAINT-Definitionen, so daß die jeweilige Basistabelle von der Schlüsseltabelle aus erreichbar ist.
  • Die referentiellen CONSTRAINT-Definitionen müssen sich in der Suchbedingung der CREATE VIEW-Anweisung als JOIN-Prädikat widerspiegeln, d. h. die Bedingung "Schlüsselspalte = Fremdschlüsselspalte" muß für jede Spalte jeder referentiellen CONSTRAINT-Definition vorhanden sein.
  • In der CREATE VIEW-Anweisung muß von jeder referentiellen CONSTRAINT-Definition entweder die Primärschlüssel- oder die Fremdschlüsselspalte als selektierte Spalte enthalten sein, jedoch nicht beide.
  • Die View-Tabelle muß mit WITH CHECK OPTION definiert sein.


INSERT-Privileg für Eigentümer der View-Tabelle (MaxDB: Referenzhandbuch)

INSERT-Privileg für Eigentümer der View-Tabelle

Der Eigentümer der View-Tabelle (siehe CREATE VIEW-Anweisung) besitzt das INSERT-Privileg, d.h. er darf die View-Tabelle als Tabelle, in die einzufügen ist, in der INSERT-Anweisung angeben, wenn folgende Bedingungen erfüllt sind:

· Die View-Tabelle ist änderbar (Änderbare View-Tabelle).

· Der Eigentümer der View-Tabelle besitzt das INSERT-Privileg für alle Tabellen in der FROM-Klausel der CREATE VIEW-Anweisung.

· Die selektierten Spalten der CREATE VIEW-Anweisung bestehen nur aus Tabllenspalten (table_columns) oder Spaltennamen (column_name), jedoch nicht aus Ausdrücken (expression) mit mehr als einem Spaltennamen.

· Die CREATE VIEW-Anweisung enthält jede Pflichtspalte aller Tabellen der FROM-Klausel als selektierte Spalte.


UPDATE-Privileg für Eigentümer der View-Tabelle (MaxDB: Referenzhandbuch)

UPDATE-Privileg für Eigentümer der View-Tabelle

Der Eigentümer der View-Tabelle (siehe CREATE VIEW-Anweisung ) besitzt das UPDATE-Privileg für eine Spalte der View-Tabelle, d.h. er darf die Spalte als zu ändernde Spalte in einer UPDATE-Anweisung angeben, wenn folgende Bedingungen erfüllt sind:

  • Die View-Tabelle ist änderbar ( Änderbare View-Tabelle ).
  • Der Eigentümer der View-Tabelle besitzt das UPDATE-Privileg für die Tabellenspalten ( table_columns ) bzw. den Spaltennamen ( column_name ), durch den die Spalte definiert ist.
  • Die Spalte ist durch die Angabe von Tabellenspalten oder durch einen Spaltennamen definiert, jedoch nicht durch einen Ausdruck (expression) mit mehr als einem Spaltennamen.


DELETE-Privileg für Eigentümer der View-Tabelle (MaxDB: Referenzhandbuch)

DELETE-Privileg für Eigentümer der View-Tabelle

Der Eigentümer der View-Tabelle (siehe CREATE VIEW-Anweisung ) besitzt das DELETE-Privileg für die View-Tabelle, d.h. er darf die View-Tabelle als Tabelle, aus der zu löschen ist, in der DELETE-Anweisung angeben, wenn folgende Bedingungen erfüllt sind:

  • Die View-Tabelle ist änderbar ( Änderbare View-Tabelle ).
  • Der Eigentümer der View-Tabelle besitzt das DELETE-Privileg für alle Tabellen in der FROM-Klausel der CREATE VIEW-Anweisung.


Änderbare Join-View-Tabelle (MaxDB: Referenzhandbuch)

Änderbare Join-View-Tabelle

Es wird o.B.d.A. davon ausgegangen, daß die Definition der Join-View-Tabelle V (siehe CREATE VIEW-Anweisung ) in der FROM-Klausel die Basistabellen T1,...,Tn (n>1) enthält.

  • Seien Ti und Tj zwei von V selektierte Basistabellen. Rij sei eine referentielle CONSTRAINT-Definition von Ti und Tj, in der Ti die referenzierende Tabelle und Tj die referenzierte Tabelle ( referenced_table ) ist.
    PKj1,...,PKjm seien die Schlüsselspalten von Tj.
    Fki1,...,Fkim seien die korrespondierenden Fremdschlüsselspalten von Ti.
    Die referentielle CONSTRAINT-Definition ist für V relevant, wenn das     JOIN-Prädikat (PKj1=Fki1 AND ... AND PKjm=FKjm) Teil der Suchbedingung von V ist.
  • Seien Ti und Tj zwei von V selektierte Basistabellen und Rij eine für V relevante referentielle CONSTRAINT-Definition von Ti und Tj.
    Ti ist Vorgänger von Tj (Ti<Tj), wenn Rij die einzige für V relevante referentielle CONSTRAINT-Definition von Ti und Tj ist.
  • Sei Rij eine für V relevante referentielle CONSTRAINT-Definition.
    Rij definiert eine 1:1 Beziehung zwischen Ti und Tj, wenn die Fremdschlüsselspalten von Rij die Schlüsselspalten von Ti bilden.
  • Sei Rij eine für V relevante referentielle CONSTRAINT-Definition und s eine Schlüsselspalte von Tj oder eine Fremdschlüsselspalte dieser referentiellen CONSTRAINT-Definition von Ti. Die Spalte s läßt sich aus V ableiten, wenn genau eine der folgenden Bedingungen zutrifft:
    - s ist eine     selektierte Spalte von V.
    - Es existiert eine Schlüsselspalte oder eine Fremdschlüsselspalte s' einer für V relevanten referentiellen CONSTRAINT-Definition, die sich aus V ableiten läßt, und das JOIN-Prädikat s=s' ist Teil der Suchbedingung von V.
  • Eine Spalte v von V korrespondiert mit einer Spalte s einer zugrundeliegenden Basistabelle T, wenn eine der folgenden Bedingungen erfüllt ist
    - v ist i-te Spalte von V und s ist i-te selektierte Spalte von V
    - v korrespondiert mit einer Schlüsselspalte PK von Tj einer für V relevanten referentiellen CONSTRAINT-Definition Rij und s ist die PK zugeordnete Fremdschlüsselspalte von Ti
    - v korrespondiert mit einr Fremdschlüsselspalte FK von Ti einer für V relevanten referentiellen CONSTRAINT-Bedingung Rij und s ist die FK zugeordnete Schlüsselspalte von Tj.

Eine Join-View-Tabelle V ist änderbar, wenn die folgenden Bedingungen erfüllt sind:

  • Jede Basistabelle Ti (1 <= i <= n) besitzt einen vom Benutzer definierten Schlüssel.
  • Das Datenbanksystem muß in der Lage sein, eine Abarbeitungsreihenfolge der zugrundeliegenden Basistabellen zu bestimmen, d.h., es muß eine Anordnung Ti1,...,Tin der Tabellen T1,...,Tn existieren, so daß aus Tij<Tik folgt, daß j < k ist. Die Spalten von V, aus denen sich die Schlüsselspalten von Ti1 ableiten lassen, bilden den Schlüssel von V. Ti1 heißt Schlüsseltabelle von V. Die Anordnung der Tabellen muß nicht eindeutig sein.
  • Ausgehend von einer Zeile der Schlüsseltabelle von V, muß es möglich sein, genau eine Zeile jeder zugrundeliegenden Basistabelle zuzuordnen, d.h. für jede Tabelle Tij (1 <= j <= n) gibt es eine Folge von Tabellen Ti1,...,Tij, so daß Ti1 < .. < Tij gilt.
    Diese Folge ist für jede von V referenzierte Basistabelle eindeutig.
  • Die Schlüsselspalten und Fremdschlüsselspalten aller für V relevanten referentiellen CONSTRAINT-Definitionen müssen aus den Spalten von V ableitbar sein.
  • Die für die Erkennung der Relevanz einer referentiellen CONSTRAINT-Definition wichtigen JOIN-Prädikate müssen in Teilen der Suchbedingung liegen, die mit WITH CHECK OPTION definiert sind. Wenn die View-Definition nur Basistabellen enthält, so heißt das, daß die View-Tabelle mit WITH CHECK OPTION definiert sein muß. Ist eine View-Tabelle V aus einer View-Tabelle V' abgeleitet und wurde V' mit WITH CHECK OPTION definiert, so erbt V die CHECK OPTION für den Teil der Qualifikation, der durch V' vererbt wird.


DROP VIEW-Anweisung (drop_view_statement) (MaxDB: Referenzhandbuch)

DROP VIEW-Anweisung (drop_view_statement)

Die DROP VIEW-Anweisung (drop_view_statement) löscht eine View-Tabelle.

Syntax

<drop_view_statement> ::= DROP VIEW <table_name> [<cascade_option>]

table_name, cascade_option

Erläuterung

Der Tabellenname muss eine existierende View-Tabelle bezeichnen.

Der Benutzer muss der Eigentümer der angegebenen View-Tabelle sein.

Die Metadaten der View-Tabelle und alle von dieser View-Tabelle abhängigen Synonyme, View-Tabellen und Privilegien werden gelöscht. Die der View-Tabelle zugrundeliegenden Tabellen bleiben unberührt.

· Wenn die CASCADE-Option RESTRICT angegeben ist und wenn auf der View-Tabelle basierende View-Tabellen oder Synonyme existieren, dann scheitert die DROP VIEW-Anweisung,.

· Wenn die CASCADE-Option CASCADE oder keine CASCADE-Option angegeben ist, wird die View-Tabelle mit allen von ihr abhängigen View-Tabellen, Privilegien und Synonymen gelöscht.


RENAME VIEW-Anweisung (rename_view_statement) (MaxDB: Referenzhandbuch)

RENAME VIEW-Anweisung (rename_view_statement)

Die RENAME VIEW-Anweisung ( rename_view_statement ) ändert den Namen einer View-Tabelle (siehe Tabelle ).

Syntax

<rename_view_statement> ::= RENAME VIEW <old_table_name> TO <new_table_name>

<old_table_name> ::= <table_name>
<new_table_name> ::= <table_name>
 table_name

Erläuterung

Die Tabelle old_table_name muß eine View-Tabelle sein. Der aktuelle Benutzer muß Eigentümer der View-Tabelle sein.

Der Tabellenname new_table_name darf noch nicht für eine Tabelle des aktuellen Benutzers vergeben sein.

Die CREATE VIEW-Anweisung der View-Tabelle old_table_name wird an den neuen Namen angepaßt. Das Ergebnis dieser Anpassung kann der Tabelle DOMAIN.VIEWDEFS entnommen werden.

Die Definitionen von View-Tabellen, die auf der View-Tabelle old_table_name basieren, werden an den neuen Namen angepaßt.


CREATE INDEX-Anweisung (create_index_statement) (MaxDB: Referenzhandbuch)

CREATE INDEX-Anweisung (create_index_statement)

Die CREATE INDEX-Anweisung (create_index_statement) definiert einen Index einer Basistabelle.

Syntax

<create_index_statement> ::=
CREATE [UNIQUE] INDEX <index_name> ON <table_name> (<index_spec>)

<index_spec> ::= <column_name> [ASC|DESC]
| <dbfunction_name> (<column_name>,...) [ASC|DESC]

index_name, table_name, column_name, dbfunction_name

Erläuterung

Indizes unterstützen den Zugriff auf die Tabellendaten über Nicht-Schlüsselspalten. Ihre Pflege bedeutet jedoch erhöhten Aufwand bei einer INSERT-, UPDATE oder DELETE-Anweisung.

Die Angabe eines Datenbankfunktionsnamens definiert einen Funktionsindex. Diese Indizes können Anfragen beschleunigen, die die Datenbankfunktion in ihrer Suchbedingung enthalten, oder die nach der Datenbankfunktion sortieren.

Ist kein Datenbankfunktionsname angegeben, wird der Index über die angegebenen Spalten der Tabelle erzeugt. Der Sekundärschlüssel setzt sich in diesem Fall aus den angegebenen Spalten der Tabelle zusammen, und zwar in der angegebenen Reihenfolge.

· Die angegebene Tabelle muss eine existierende Basistabelle sein, darf jedoch keine temporäre Tabelle sein. Der Indexname darf nicht mit einem bereits existierenden Indexnamen der Tabelle übereinstimmen.

· Die durch column_name definierte Spalte muss eine Spalte der angegebenen Tabelle sein. Diese Spalte darf keine LONG-Spalte sein. Alle Spaltennamen müssen paarweise verschieden sein.

· Der aktuelle Benutzer muss den Privileg-Typ INDEX für die Spalten besitzen.

· Die durch den Datenbankfunktionsnamen identifizierte Datenbankfunktion muss folgende Bedingungen erfüllen:
Der aktuelle Benutzer muss das Privileg EXECUTE für die Datenbankfunktion besitzen.
Die Datenbankfunktion darf keine SQL-Anweisung enthalten.
Die angegebenen Spaltennamen müssen mit den Parametern der Funktion typverträglich sein.
Das Ergebnis der Datenbankfunktion muss deterministisch sein, d.h. die mehrmalige Ausführung der Funktion mit gleichen Parametern liefert immer das gleiche Resultat.

· Technische Spezifikationen

UNIQUE

Durch diese Angabe wird sichergestellt, dass keine zwei Zeilen der angegebenen Tabelle in den indizierten Spalten dieselben Werte besitzen. Enthalten zwei Zeilen für alle Spalten eines Index jeweils den NULL-Wert, so gelten diese beiden Indexwerte nicht als identisch. Enthält mindestens eine Spalte nicht den NULL-Wert, so gelten zwei Zeilen, die in allen Nicht-NULL-Spalten den gleichen Wert besitzen, als identisch.

ASC | DESC

Die Indexwerte werden in aufsteigender oder absteigender Reihenfolge abgelegt. Fehlt die Angabe von ASC oder DESC, dann wird implizit ASC angenommen.


DROP INDEX-Anweisung (drop_index_statement) (MaxDB: Referenzhandbuch)

DROP INDEX-Anweisung (drop_index_statement)

Die DROP INDEX-Anweisung (drop_index_statement) löscht einen Index einer Basistabelle (siehe Tabelle ). Die Metadaten des Index werden aus dem Datenbankkatalog gelöscht. Der durch den Index belegte Speicherplatz wird freigegeben.

Syntax

<drop_index_statement> ::= DROP INDEX <index_name> [ON <table_name>]

index_name , table_name

Erläuterung

Der angegebene Index muß existieren und der angegebene Tabellenname muß der Name einer existierenden Basistabelle sein.

Wenn der Indexname eindeutig einen Index bezeichnet, kann die Angabe ON <table_name> entfallen.

Der aktuelle Benutzer muß Eigentümer der angegebenen Tabelle sein oder das INDEX-Privileg für sie besitzen.


ALTER INDEX-Anweisung (alter_index_statement) (MaxDB: Referenzhandbuch)

ALTER INDEX-Anweisung (alter_index_statement)

Die ALTER INDEX-Anweisung (alter_index_statement) steuert die Verwendung eines Index bei Datenanfragen.

Syntax

<alter_index_statement> ::= ALTER INDEX <index_name> [ON <table_name>] ENABLE
| ALTER INDEX <index_name> [ON <table_name>] DISABLE
| ALTER INDEX <index_name> [ON <table_name>] INIT USAGE

index_name, table_name

Erläuterung

Die Ausführung einer CREATE INDEX-Anweisung führt zur Erzeugung eines Index über den angegebenen Spalten. Bei allen folgenden SQL-Anweisungen zur Datenmanipulation (INSERT-Anweisung, UPDATE-Anweisung, DELETE-Anweisung) wird dieser Index der SQL-Anweisung entsprechend verändert. Bei allen anderen SQL-Anweisungen, in denen einzelne Zeilen einer Tabelle angegeben werden, kann das Datenbanksystem diesen Index zur Beschleunigung der Suche nach diesen Zeilen verwenden.

ALTER INDEX … DISABLE

Der Index kann nicht mehr für diese Suche verwendet werden, wird jedoch weiterhin bei Verwendung der SQL-Anweisungen INSERT, UPDATE oder DELETE verändert.

ALTER INDEX … ENABLE

Der Index kann wieder für die Suche verwendet werden.

ALTER INDEX … INIT USAGE

Die Spalte INDEX_USED in der Systemtabelle DOMAIN.INDEXES wird mit 0 initialisiert, d.h die Zählung, wie häufig ein Index genutzt wird, wird neu gestartet.


RENAME INDEX-Anweisung (rename_index_statement) (MaxDB: Referenzhandbuch)

RENAME INDEX-Anweisung (rename_index_statement)

Die RENAME INDEX-Anweisung ( rename_index_statement ) ändert den Namen eines Index .

Syntax

<rename_index_statement> ::= RENAME INDEX <old_index_name> [ON <table_name>] TO <new_index_name>

<old_index_name> ::= <index_name>
<new_index_name> ::= <index_name>

table_name , index_name

Erläuterung

Der angegebene Tabellenname muß der Name einer existierenden Basistabelle (siehe Tabelle ) sein.

Der durch old_index_name identifizierte Index muß existieren. Wenn dieser Index eindeutig ist, kann die Angabe ON <table_name> entfallen.

Der aktuelle Benutzer muß Eigentümer der angegebenen Tabelle sein oder das INDEX-Privileg für diese Tabelle besitzen.

Der neue Indexname darf nicht mit einem bereits existierenden Indexnamen eines Index der Tabelle übereinstimmen.


COMMENT ON-Anweisung (comment_on_statement) (MaxDB: Referenzhandbuch)

COMMENT ON-Anweisung (comment_on_statement)

Die COMMENT ON-Anweisung (comment_on_statement) erzeugt, ändert oder löscht einen Kommentar zu einem Datenbankobjekt, das im Datenbankkatalog abgelegt wird.

Syntax

<comment_on_statement> ::= COMMENT ON <object_spec> IS <comment>

<object_spec> ::= siehe Erläuterung
<comment> ::= <string_literal> | <parameter_name>

string_literal, parameter_name

Erläuterung

Für folgende Datenbankobjekte können Kommentare angegeben werden:

<object_spec> ::= | Erläuterung
COLUMN <table_name>.<column_name> table_name, column_name | Die Spalte muss in der angegebenen Tabelle existieren. Der aktuelle Benutzer muss Eigentümer der Tabelle sein. Der Kommentar zu dieser Spalte kann durch Selektieren der Systemtabelle DOMAIN. COLUMNS abgefragt werden.
DBPROC[EDURE] <dbproc_name> dbproc_name | Durch dbproc_name muss eine existierende Datenbankprozedur identifiziert sein, deren Eigentümer der aktuelle Benutzer ist. Es wird ein Kommentar zu dieser Datenbankprozedur abgelegt, der durch Selektieren der Systemtabelle DOMAIN. DBPROCEDURES abgefragt werden kann.
DOMAIN <domain_name> domain_name | Durch domain_name muss ein Wertebereich des aktuellen Benutzers angegeben sein. Der Kommentar zu diesem Wertebereich kann durch Selektieren der Systemtabelle DOMAIN. DOMAINS abgefragt werden.
FOREIGN KEY <table_name>.<referential_constraint_name> referential_constraint_name | Durch referential_constraint_name muss eine referentielle CONSTRAINT-Definition der angegebenen Tabelle des aktuellen Benutzers angegeben sein. Der Kommentar zu dieser referentiellen CONSTRAINT-Definition kann durch Selektieren der Systemtabelle DOMAIN. FOREIGNKEYS abgefragt werden.
INDEX <index_name> ON <table_name> index_name | Durch index_name muss ein Index der angegebenen Tabelle angegeben sein. Der aktuelle Benutzer muss Eigentümer der Tabelle sein. Der Kommentar zu diesem Index kann durch Selektieren der Systemtabelle DOMAIN. INDEXES abgefragt werden.
SEQUENCE <sequence_name> sequence_name | Durch sequence_name muss eine existierende Sequenz angegeben sein. Der aktuelle Benutzer muss Eigentümer der Sequenz sein. Der Kommentar zu dieser Sequenz kann durch Selektieren der Systemtabelle DOMAIN. SEQUENCES abgefragt werden.
[PUBLIC] SYNONYM <synonym_name> synonym_name | Durch synonym_name muss ein Synonym des aktuellen Benutzers angegeben sein. Wenn PUBLIC angegeben ist, muss dieses Synonym das PUBLIC-Attribut besitzen. Der Kommentar zu diesem Synonym kann durch Selektieren der Systemtabelle DOMAIN. SYNONYMS abgefragt werden.
TABLE <table_name> table_name | Die angegebene Tabelle muss eine nicht-temporäre Basis- oder View-Tabelle des aktuellen Benutzers identifizieren. Der Kommentar zu dieser Tabelle kann durch Selektieren der Systemtabelle DOMAIN.TABLES abgefragt werden.
TRIGGER <trigger_name>.<table_name> trigger_name | Der angegebene Triggername muss einen Trigger der angegebenen Tabelle identifizieren. Der aktuelle Benutzer muss Eigentümer der Tabelle sein. Es wird ein Kommentar zu dem Trigger abgelegt, der durch Selektieren der Systemtabelle DOMAIN. TRIGGERS abgefragt werden kann.
USER <user_name> user_name | Der angegebene Benutzer muss einen existierenden Benutzer identifizieren, dessen Eigentümer der aktuelle Benutzer ist. Der Kommentar zu diesem Benutzer kann durch Selektieren der Systemtabelle DOMAIN.USERS abgefragt werden.
USERGROUP <usergroup_name> usergroup_name | Die angegebene Benutzergruppe muss eine existierende Benutzergruppe identifizieren, deren Eigentümer der aktuelle Benutzer ist. Der Kommentar zu dieser Benutzergruppe kann durch Selektieren der Systemtabelle DOMAIN. USERS abgefragt werden.
<parameter_name> parameter_name | Die korrespondierende Variable muss einen der in der Tabelle aufgelisteten Werte enthalten. Die Werte müssen in Hochkommas eingeschlossen sein. Beispiel für Angabe der korrespondierenden Variablen: 'COLUMN <table_name>.<column_name>'


CREATE DBPROC-Anweisung (create_dbproc_statement) (MaxDB: Referenzhandbuch)

CREATE DBPROC-Anweisung (create_dbproc_statement)

Die CREATE DBPROC-Anweisung (create_dbproc_statement) definiert eine Datenbankprozedur.

Syntax

<create_dbproc_statement> ::= CREATE DBPROC <procedure_name> [(<formal_parameter>,..)] [RETURNS CURSOR] AS <routine>

<formal_parameter> ::=
  IN <argument> <data_type>
| OUT <argument> <data_type>
| INOUT <argument> <data_type>

<argument> ::= <identifier>

procedure_name, data_type, identifier, routine

Die Datenbankprozedur bestimmt den durchschnittlichen Preis für Einzelzimmer in Hotels, die im angegebenen Postleitzahlenbereich liegen.

CREATE DBPROC avg_price (IN zip CHAR(5), OUT avg_price FIXED(6,2)) AS
VAR sum FIXED(10,2); price FIXED(6,2); hotels

INTEGER;
TRY
SET sum = 0; SET hotels = 0;
SELECT price FROM travel.room,travel.hotel WHERE zip = :zip

AND
room.hno = hotel.hno AND roomtype = 'SINGLE';
WHILE $rc = 0 DO BEGIN
FETCH INTO :price;
SET sum = sum + price;
SET hotels = hotels + 1;
END;
CATCH
IF $rc <> 100 THEN STOP ($rc, 'unexpected error');
IF hotels > 0 THEN SET avg_price = sum / hotels
ELSE STOP (100, 'no hotel found');

Erläuterung

Der aktuelle Benutzer ist der Eigentümer einer Datenbankprozedur. Er besitzt das EXECUTE-Privileg zur Ausführung der Prozedur.

Parameter

Eine Anwendung tauscht beim Aufruf der Datenbankprozedur durch die CALL-Anweisung Daten über Parameter aus, die durch die formalen Parameter (formal_parameter) definiert werden. Einem formalen Parameter der Datenbankprozedur entspricht normalerweise eine Variable der Applikation.

IN | OUT | INOUT

Der Modus des Parameters (IN | OUT | INOUT) legt fest, in welche Richtung die Daten beim Aufruf der Prozedur übergeben werden.

IN: Durch IN wird ein Eingabeparameter definiert, d.h. beim Aufruf der Datenbankprozedur wird der Wert der Variablen an die Datenbankprozedur übertragen.

OUT: Durch OUT wird ein Ausgabeparameter definiert, d.h. nach Beendigung der Prozedur wird der Wert des formalen Parameters aus der Datenbankprozedur an die Variable übertragen.

INOUT: Durch INOUT wird ein Ein-/Ausgabeparameter definiert, der die Möglichkeiten von IN und OUT kombiniert.

Argument

Durch die Angabe eines Arguments (argument) wird einem formalen Parameter der Datenbankprozedur ein Name zugeordnet. Innerhalb der Datenbankprozedur kann der Parameter dann mit diesem Namen als Variable in Ausdrücken und Zuweisungen benutzt werden.

Datentyp

Als Datentyp (data_type) des formalen Parameters einer Datenbankprozedur sind nur die Datentypen BOOLEAN, CHAR[ACTER], DATE, FIXED, FLOAT, INT[EGER], NUMBER, REAL, SMALLINT, TIME, TIMESTAMP und VARCHAR zulässig.

RETURNS CURSOR

Bei Angabe von RETURNS CURSOR wird eine Datenbankprozedur definiert, deren Aufruf eine Ergebnistabelle liefert.

Der Name dieser Tabelle wird durch die Systemvariable $CURSOR definiert. In der Datenbankprozedur muss deshalb eine Anweisung enthalten sein, die eine Ergebnistabelle mit dem Ergebnismengennamen $CURSOR erzeugt.

Der Wert von $CURSOR wird von den meisten Programmierspracheneinbettungen bereits vorgegeben, kann jedoch auch in der Datenbankprozedur explizit vergeben werden.

CREATE DBPROC hotels_of_town (IN zip CHAR(5))
RETURNS CURSOR AS
$CURSOR = 'HOTEL_CURSOR';
DECLARE :$CURSOR CURSOR FOR
SELECT * FROM travel.hotel WHERE zip = :zip;


routine (MaxDB: Referenzhandbuch)

routine

Der als Routine (routine) bezeichnete Teil der CREATE DBPROC-Anweisung, CREATE TRIGGER-Anweisung oder CREATE FUNCTION-Anweisung ist die Implementierung der Datenbankprozedur, des Triggers oder der Datenbankfunktion. Sie besteht aus optionalen Variablendeklarationen und Anweisungen.

Syntax

<routine> ::= [<local_variables>] <statement_list>;

<local_variables> ::= VAR <local_variable_list>;
<local_variable_list> ::= <local_variable> | <local_variable_list>; <local_variable>
<local_variable> ::= <variable_name> <data_type>
<variable_name> ::= <identifier>

<statement_list> ::= <statement> | <statement_list> ; <statement>

identifier, data_type, statement

Erläuterung

Die im Folgenden getroffenen Aussagen für Datenbankprozeduren gelten ebenfalls für Trigger bzw. Datenbankfunktionen.

Variablen

Die lokalen Variablen der Datenbankprozedur müssen vor der ersten Benutzung explizit unter Angabe eines Datentyps deklariert werden. Es sind nur die Datentypen BOOLEAN, CHAR[ACTER], DATE, FIXED, FLOAT, INT[EGER], NUMBER, REAL, SMALLINT, TIME, TIMESTAMP und VARCHAR zulässig. Die Variablen können nach ihrer Deklaration beliebig in SQL-Anweisungen und Anweisungen benutzt werden.

Jede Datenbankprozedur besitzt implizit die Variablen $RC, $ERRMSG und $COUNT.

Die $RC-Variable liefert nach der Ausführung einer SQL-Anweisung einen numerischen Fehlercode zurück. Der Wert 0 bedeutet, daß die SQL-Anweisung erfolgreich ausgeführt wurde.
Parallel zu $RC liefert die $ERRMSG-Variable eine maximal 80 Zeichen lange Erläuterung des Fehlers.
Die Anzahl der in einer SQL-Anweisung bearbeiteten Zeilen kann der $COUNT-Variablen entnommen werden.

Variablen kann mit Hilfe der Anweisung (assignment_statement) (siehe statement) ein Wert zugewiesen werden.

Restriktionen

Die Anweisungsfolge (statement_list) darf nicht mehr 255 SQL-Anweisungen enthalten.


statement (MaxDB: Referenzhandbuch)

statement

statement ist ein Syntaxelement, das in einer routine verwendet wird. Die in der statement-Syntaxbeschreibung genannten Anweisungen können zur Definition einer Datenbankprozedur (siehe CREATE DBPROC-Anweisung), eines Triggers (siehe CREATE TRIGGER-Anweisung) oder einer Datenbankfunktion (siehe CREATE FUNCTION-Anweisung) verwendet werden.

Syntax

<statement> ::= BEGIN <statement_list> END | BREAK | CONTINUE | CONTINUE EXECUTE
| <if_statement> | <while_statement> | <assignment_statement> | <case_statement>
| RETURN [<expression>]
| STOP (<expression> [,<expression>] )
| TRY <statement_list>; CATCH <statement>
| <routine_sql_statement>

<statement_list> ::= <statement> | <statement_list> ; <statement>

<if_statement> ::= IF <search_condition> THEN <statement> [ELSE

<statement>]
<while_statement> ::= WHILE <search_condition> DO <statement>
<assignment_statement> ::= [SET] <variable_name> = <expression>
<case_statement> ::= <simple_case_statement> | <searched_case_statement>

<routine_sql_statement> ::=
<call_statement> | <close_statement> | <create_table_temp> | <drop_table_temp>
| <declare_cursor_statement> | <delete_statement> | <fetch_statement>
| <insert_statement> | <lock_statement>
| <select_statement> | <named_select_statement> | <single_select_statement>
| <subtrans_statement> | <update_statement>

<variable_name> ::= <identifier>

<create_table_temp> :: = <create_table_statement> für das Anlegen temporärer Tabellen, d.h. der Tabellenname table_name in der CREATE TABLE-Anweisung muß die Form TEMP.<identifier> haben.

<drop_table_temp> ::= DROP TABLE TEMP.<identifier>

expression, search_condition, simple_case_statement, searched_case_statement, call_statement, close_statement, create_table_statement, declare_cursor_statement; delete_statement, fetch_statement, insert_statement, lock_statement, select_statement, named_select_statement, single_select_statement, subtrans_statement, update_statement, identifier

Erläuterung

Variablen, die in einer routine angegeben sind, kann mit Hilfe der Anweisung (assignment_statement) ein Wert zugewiesen werden.

Kontrollstrukturen

Die IF-Anweisung (if_statement) wertet zunächst die Suchbedingung aus. Ist diese erfüllt, so wird die im THEN-Zweig definierte Anweisung ausgeführt, andernfalls wird - wenn vorhanden - die Anweisung im ELSE-Zweig ausgeführt.

Die WHILE-Anweisung (while_statement) ermöglicht die bedingte Wiederholung von Anweisungen. Solange die angegebene Suchbedingung zutrifft, wird die Anweisung ausgeführt. Insbesondere wird die Bedingung vor der ersten Ausführung der Anweisung geprüft. Gegebenenfalls wird die Anweisung also gar nicht ausgeführt. Durch Angabe von BREAK kann die Schleife sofort ohne Überprüfung der Bedingung verlassen werden. Die Angabe von CONTINUE innerhalb der Schleife bewirkt, dass die Bedingung sofort neu bewertet und die Schleife abhängig vom Resultat erneut durchlaufen oder verlassen wird.

Die CASE-Anweisung (case_statement) erlaubt die bedingt Anweisungsausführung abhängig von Suchbedingungen oder der Gleichheit von Operanden. Es werden einfache und allgemeine CASE-Anweisungen unterschieden.

RETURN

CREATE DBPROC- und CREATE TRIGGER-Anweisung: Die Angabe von RETURN ermöglicht das sofortige fehlerfreie Verlassen der umgebenden Datenbankprozedur.

CREATE FUNCTION-Anweisung: Die Angabe von RETURN <expression> ermöglicht das Verlassen der Datenbankfunktion bei gleichzeitiger Übergabe des Funktionswertes <expression>.

Fehlerbehandlung

Wenn in der Anweisungsfolge zwischen TRY und CATCH ein SQL-Fehler auftritt, wird unverzüglich in die auf das CATCH folgende Anweisung verzweigt. In dieser Anweisung kann die eigentliche Fehlerbehandlung programmiert werden. Wird hier CONTINUE EXECUTE ausgeführt, erfolgt ein Sprung unmittelbar hinter die Anweisung, die den Fehler ausgelöst hat.

Durch Aufruf der STOP-Funktion wird die Ausführung der Datenbankprozedur sofort unterbrochen. Der Wert des ersten Parameters der STOP-Funktion ist die Rück- oder Fehlermeldung, die die Anwendung als Resultat des Aufrufs der Datenbankprozedur erhält. Zusätzlich kann ein Fehlertext geliefert werden.

SQL-Anweisungen (routine_sql_statement)

In den SQL-Anweisungen (routine_sql_statement) der Datenbankprozedur müssen Tabellen immer vollständig, d.h. unter Angabe des Eigentümers angegeben werden. Im Falle von SELECT-Anweisungen reicht die vollständige Angabe des Tabellennamens in der FROM-Klausel.

Restriktionen

Die Anweisungsfolge (statement_list) darf nicht mehr 255 SQL-Anweisungen enthalten.

Die Länge einer SQL-Anweisung (routine_sql_statement) darf ca. 8 KB nicht überschreiten.


Allgemeine CASE-Anweisung (searched_case_statement) (MaxDB: Referenzhandbuch)

Allgemeine CASE-Anweisung (searched_case_statement)

Die allgemeine CASE-Anweisung (searched_case_statement) ist ein Syntaxelement, das in einem Statement verwendet wird. Die allgemeine CASE-Anweisung kann zur Definition einer Datenbankprozedur (siehe CREATE DBPROC-Anweisung) oder eines Triggers (siehe CREATE TRIGGER-Anweisung) verwendet werden.

Syntax

<searched_case_statement> ::= CASE
<searched_case_when_clause>...
[<case_else_clause>]
END [CASE]

<searched_case_when_clause> ::= WHEN <search_condition> THEN <statement>
<case_else_clause> ::= ELSE <statement>

search_condition, statement

Erläuterung

Variablen, die in einer routine angegeben sind, kann mit Hilfe einer Anweisung (statement) ein Wert zugewiesen werden.

Kontrollstrukturen

Eine CASE-Anweisung (case_statement) erlaubt die bedingte Anweisungsausführung abhängig von Suchbedingungen oder der Gleichheit von Operanden.

Im Fall einer allgemeinen CASE-Anweisung (searched_case_statement) wird die erste erfüllte Suchbedingung bestimmt, die zugehörige Anweisung ausgeführt und die CASE-Anweisung beendet.

CASE
WHEN digit = 0 THEN toCHAR = 'zero';
WHEN digit = 1 THEN toCHAR = 'one';
WHEN digit = 2 THEN toCHAR = 'two';
WHEN digit = 3 THEN toCHAR = 'three';
WHEN digit = 4 THEN toCHAR = 'four';
WHEN digit = 5 THEN toCHAR = 'five';
WHEN digit = 6 THEN toCHAR = 'six';
WHEN digit = 7 THEN toCHAR = 'seven';
WHEN digit = 8 THEN toCHAR = 'eight';
WHEN digit = 9 THEN toCHAR = 'nine';
ELSE STOP(-29000, 'no digit');
END CASE

Ist in einer CASE-Anweisung kein passendes Literal bzw. keine erfüllte Suchbedingung vorhanden, wird die im ELSE-Zweig definierte Anweisung ausgeführt.

Ist auch kein ELSE-Zweig vorhanden, wird der Laufzeitfehler -28901 geliefert.

Siehe auch:

Einfache CASE-Anweisung (simple_case_statement)


Einfache CASE-Anweisung (simple_case_statement) (MaxDB: Referenzhandbuch)

Einfache CASE-Anweisung (simple_case_statement)

Die einfache CASE-Anweisung (simple_case_statement) ist ein Syntaxelement, das in einem statement verwendet wird. Die einfache CASE-Anweisung kann zur Definition einer Datenbankprozedur (siehe CREATE DBPROC-Anweisung ) oder eines Triggers (siehe CREATE TRIGGER-Anweisung ) verwendet werden.

Syntax

<simple_case_statement> ::= CASE <expression>
<simple_case_when_clause>...
[<case_else_clause>]
END [CASE]

<simple_case_when_clause> ::= WHEN <literal>[ ...] THEN <statement>
<case_else_clause> ::= ELSE <statement>

expression , literal , statement

Erläuterung

Variablen, die in einer routine angegeben sind, kann mit Hilfe einer Anweisung (statement) ein Wert zugewiesen werden.

Kontrollstrukturen

Eine CASE-Anweisung (case_statement) erlaubt die bedingte Anweisungsausführung abhängig von Suchbedingungen oder der Gleichheit von Operanden.

Im Fall einer einfachen CASE-Anweisung (simple_case_statement) wird der Ausdruck mit den Literalen verglichen. Stimmt der Ausdruck mit einem Literal überein, wird die zugehörige Anweisung ausgeführt und die CASE-Anweisung beendet.

CASE digit
WHEN 0 THEN toCHAR = 'zero';
WHEN 1 THEN toCHAR = 'one';
WHEN 2 THEN toCHAR = 'two';
WHEN 3 THEN toCHAR = 'three';
WHEN 4 THEN toCHAR = 'four';
WHEN 5 THEN toCHAR = 'five';
WHEN 6 THEN toCHAR = 'six';
WHEN 7 THEN toCHAR = 'seven';
WHEN 8 THEN toCHAR = 'eight';
WHEN 9 THEN toCHAR = 'nine';
ELSE STOP(-29000, 'no digit');
END CASE

Ist in einer CASE-Anweisung kein passendes Literal bzw. keine erfüllte Suchbedingung vorhanden, wird die im ELSE-Zweig definierte Anweisung ausgeführt.

Ist auch kein ELSE-Zweig vorhanden, wird der Laufzeitfehler -28901 geliefert.

Siehe auch:

Allgemeine CASE-Anweisung (searched_case_statement)


DROP DBPROC-Anweisung (drop_dbproc_statement) (MaxDB: Referenzhandbuch)

DROP DBPROC-Anweisung (drop_dbproc_statement)

Die DROP DBPROC-Anweisung ( drop_dbproc_statement ) löscht eine Datenbankprozedur .

Syntax

<drop_dbproc_statement> ::= DROP DBPROC <dbproc_name>

dbproc_name

Erläuterung

Der angegebene Name der Datenbankprozedur muß eine existierende Datenbankprozedur des aktuellen Benutzers bezeichnen.

Die Metadaten der Datenbankprozedur werden gelöscht.


CREATE TRIGGER-Anweisung (create_trigger_statement) (MaxDB: Referenzhandbuch)

CREATE TRIGGER-Anweisung (create_trigger_statement)

Die CREATE TRIGGER-Anweisung (create_trigger_statement) definiert einen Trigger für eine Basistabelle (siehe Tabelle).

Syntax

<create_trigger_statement> ::= CREATE TRIGGER <trigger_name> FOR <table_name>
AFTER <trigger_event,..> EXECUTE (<routine>) [WHENEVER <search_condition> ]

<trigger_event> :: INSERT | UPDATE [(<column_list>)] | DELETE
<column_list> ::= <column_name> | <column_list>,<column_name>

trigger_name, table_name, search_condition, routine, column_name

Der Trigger sorgt dafür, dass beim Ändern einer Hotel-Nummer in der Tabelle hotel die Änderung der Hotel-Nummer in der Tabelle room ebenfalls durchgeführt wird.

CREATE TRIGGER hotel_update FOR hotel AFTER UPDATE EXECUTE (
TRY
  IF NEW.hno <> OLD.hno
  THEN UPDATE travel.room SET hno = :NEW.hno WHERE hno = :OLD.hno;
CATCH
  IF $rc <> 100
  THEN STOP ($rc, 'unexpected error');
)

Erläuterung

Ein Trigger ist eine spezielle Datenbankprozedur, die einer Basistabelle zugeordnet ist. Diese Datenbankprozedur kann nicht explizit durch die CALL-Anweisung ausgeführt werden, sondern wird von SAP DB automatisch ausgeführt, wenn definierte Ereignisse (trigger_event) auf der Tabelle eintreten.

Zur Formulierung eines Triggers stellt SAP DB eine Sprache (spezielle SQL-Syntax, die um Variablen, Kontrollstrukturen und Möglichkeiten zur Fehlerbehandlung erweitert wurde) bereit, die verwendet werden kann, um Datenbankprozeduren und Trigger zu definieren.

Der angegebene Tabellenname muß eine existierende Basistabelle des aktuellen Benutzers bezeichnen.

Trigger-Ereignis

Das Trigger-Ereignis (trigger_event) definiert, wodurch der Trigger ausgelöst wird. Der Aufruf des Triggers erfolgt immer nach der fehlerfreien Bearbeitung des auslösenden Ereignisses.

INSERT: Das Trigger-Ereignis INSERT bewirkt für jede Zeile, die in die Tabelle eingefügt wird, eine Ausführung des Triggers.

UPDATE: Das Trigger-Ereignis UPDATE bewirkt für jede Änderung einer Zeile der Tabelle eine Ausführung des Triggers. Wenn eine Spaltenliste (column_list) angegeben ist, erfolgt der Aufruf nur, wenn eine der in der Spaltenliste enthaltenen Spalten verändert wurde.

DELETE: Das Trigger-Ereignis DELETE bewirkt für jede gelöschte Zeile der Tabelle einen Aufruf des Triggers.

Zu jedem Trigger-Ereignis darf pro Tabelle maximal ein Trigger definiert werden.

Trigger-Routine

Jeder INSERT-Trigger besitzt implizit für jede Spalte der Tabelle eine korrespondierende Variable NEW.<column_name>. Bei der Ausführung des Triggers besitzt diese Variable den Wert der korrespondierenden Spalte der eingefügten Zeile. Die Angabe von NEW ist nur für in routine_sql_statements genannte SQL-Anweisungen erlaubt. Für die anderen Anweisungen führt die Angabe von NEW zu einem Fehler.

Jeder UPDATE-Trigger besitzt implizit für jede Spalte der Tabelle die korrespondierenden Variablen NEW.<column_name> und OLD.<column_name>. Bei der Ausführung des Triggers besitzt die Variable OLD.<column_name> den Wert der korrespondierenden Spalte vor und NEW.<column_name> den Wert der Spalte nach der Änderung der Zeile. Die Angabe von NEW und OLD sind optional.

Jeder DELETE-Trigger besitzt implizit für jede Spalte der Tabelle eine korrespondierende Variable OLD.<column_name>. Bei der Ausführung des Triggers besitzt diese Variable den Wert der korrespondierenden Spalte der gelöschten Zeile. Die Angabe von OLD ist nur für in routine_sql_statements genannte SQL-Anweisungen erlaubt. Für die anderen Anweisungen führt die Angabe von OLD zu einem Fehler.

In SQL-Anweisungen (statement), die in Triggern verwendet werden und zu den in routine_sql_statements genannten Anweisungen gehören, müssen :NEW und :OLD immer mit Doppelpunkt verwendet werden (Beispielzeile UPDATE travel.room SET hno = :NEW.hno WHERE hno = :OLD.hno).

In SQL-Anweisungen (statement), die in Triggern verwendet werden und nicht zu den in routine_sql_statements genannten Anweisungen gehören, müssen NEW und OLD immer ohne Doppelpunkt verwendet werden (Beispielzeile IF NEW.hno <> OLD.hno).

Siehe auch:

routine

Wird der Trigger durch STOP mit einer Fehlernummer ungleich Null beendet, scheitert die gesamte SQL-Anweisung, die den Trigger ausgelöst hat.

Die SUBTRANS-Anweisung ist innerhalb eines Triggers nicht zulässig.

Bei Angabe einer WHENEVER-Bedingung wird der Trigger nur ausgeführt, wenn die Suchbedingung erfüllt ist. Die Bedingung darf keine Subquery und keine Set-Funktionen enthalten.


DROP TRIGGER-Anweisung (drop_trigger_statement) (MaxDB: Referenzhandbuch)

DROP TRIGGER-Anweisung (drop_trigger_statement)

Die DROP TRIGGER-Anweisung ( drop_trigger_statement ) löscht einen Trigger einer Tabelle.

Syntax

<drop_trigger_statement> ::= DROP TRIGGER <trigger_name> OF <table_name>

trigger_name , table_name

Erläuterung

Der angegebene Tabellenname muß eine existierende Tabelle des aktuellen Benutzers bezeichnen.

Der angegebene Triggername muß einen existierenden Trigger der Tabelle bezeichnen.

Die Metadaten des Triggers werden gelöscht.


CREATE FUNCTION-Anweisung (create_function_statement) (MaxDB: Referenzhandbuch)

CREATE FUNCTION-Anweisung (create_function_statement)

Die CREATE FUNCTION-Anweisung (create_function_statement) definiert eine Datenbankfunktion.

Syntax

<create_function_statement> ::= CREATE FUNCTION <dbfunction_name> [(<formal_parameter1>,..)] RETURNS <data_type> AS <routine>

<formal_parameter1> ::= <argument1> <data_type>
<argument1> ::= <identifier>

dbfunction_name, data_type, routine, identifier

Die Datenbankfunktion bestimmt den durchschnittlichen Preis für Einzelzimmer in Hotels, die im angegebenen Postleitzahlenbereich liegen.

CREATE FUNCTION

avg_price (zip CHAR(5)) RETURNS FIXED(6,2) AS
VAR summe FIXED(10,2); price FIXED(6,2);
hotels INTEGER; avg_price FIXED(6,2);
TRY
SET sum = 0; SET hotels = 0;
SELECT price FROM travel.room,travel.hotel WHERE zip = :zip

AND
room.hno = hotel.hno AND roomtype = 'SINGLE';
WHILE $rc = 0 DO BEGIN
FETCH INTO :price;
SET sum = sum + price;
SET hotels = hotels + 1;
END;
CATCH
IF $rc <> 100 THEN STOP ($rc, 'unexpected error');
IF hotels > 0 THEN RETURN sum/hotels
ELSE RETURN NULL;

Erläuterung

Der aktuelle Benutzer ist der Eigentümer einer Datenbankfunktion. Er besitzt das Recht zur Ausführung der Datenbankfunktion und zur Weitergabe des Ausführungsrechtes.

Argument

Durch die Angabe eines Arguments (argument1) wird einem formalen Parameter der Datenbankfunktion ein Name zugeordnet. Innerhalb der Datenbankfunktion kann der Parameter dann mit diesem Namen als Variable in Ausdrücken und Zuweisungen benutzt werden.

Datentyp

Als Datentyp (data_type) des formalen Parameters einer Datenbankfunktion sind nur die Datentypen BOOLEAN, CHAR[ACTER], DATE, FIXED, FLOAT, INT[EGER], NUMBER, REAL, SMALLINT, TIME, TIMESTAMP und VARCHAR zulässig.

RETURNS

Als Datentyp des Rückgabewertes sind nur die Typen BOOLEAN, CHAR[ACTER], DATE, DEC[IMAL], DOUBLE, FLOAT, INT[EGER], NUMBER, NUMERIC, REAL, SMALLINT,TIME, TIMESTAMP und VARCHAR zulässig.

Datentypen

Datentypen werden nomalerweise mit Länge und Genauigkeit definiert. Bei Angabe von VARCHAR bzw. NUMBER ohne Länge bzw. Genauigkeit leitet das Datenbanksystem diese jedoch automatisch abhängig vom Kontext des Funktionsaufrufes ab.


DROP FUNCTION-Anweisung (drop_function_statement) (MaxDB: Referenzhandbuch)

DROP FUNCTION-Anweisung (drop_function_statement)

Die DROP-FUNCTION-Anweisung (drop_function_statement) löscht eine Datenbankfunktion.

Syntax

<drop_function_statement> ::= DROP FUNCTION <dbfunction_name>

dbfunction_name

Erläuterung

Der angegebene Datenbankfunktionsname muss eine existierende Datenbankfunktion des aktuellen Benutzers bezeichnen.

Die Metadaten der Datenbankfunktion werden gelöscht.


Autorisierung (MaxDB: Referenzhandbuch)

Autorisierung

SQL-Anweisungen für die Autorisierung

CREATE USER-Anweisung | DROP USER-Anweisung | ALTER USER-Anweisung RENAME USER-Anweisung GRANT USER-Anweisung
CREATE USERGROUP-Anweisung | DROP USERGROUP-Anweisung | ALTER USERGROUP-Anweisung RENAME USERGROUP-Anweisung GRANT USERGROUP-Anweisung
CREATE ROLE-Anweisung | DROP ROLE-Anweisung |
ALTER PASSWORD-Anweisung | GRANT-Anweisung | REVOKE-Anweisung


CREATE USER-Anweisung (create_user_statement) (MaxDB: Referenzhandbuch)

CREATE USER-Anweisung (create_user_statement)

Die CREATE USER-Anweisung (create_user_statement) definiert einen Benutzer. Die Existenz und die Eigenschaften des Benutzers werden in Form von Metadaten im Datenbankkatalog abgelegt.

Syntax

<create_user_statement> ::= CREATE USER <user_name> PASSWORD <password>
[<user_mode>]
[TIMEOUT <unsigned_integer>] [COSTWARNING <unsigned_integer>] [COSTLIMIT <unsigned_integer>] [[NOT] EXCLUSIVE] [DEFAULTCODE <ASCII | UNICODE>]
| CREATE USER <user_name> PASSWORD <password> LIKE <source_user>
| CREATE USER <user_name> PASSWORD <password> USERGROUP <usergroup_name>

user_name, user_mode, unsigned_integer, usergroup_name

Erläuterung

Der aktuelle Benutzer muss ein Datenbankadministrator (DBA-Benutzer) sein. Er wird Eigentümer des erzeugten Benutzers.

Der angegebene Benutzername darf nicht mit dem Namen eines existierenden Benutzers einer Benutzergruppe oder einer Rolle übereinstimmen.

Das Kennwort (password) muss bei der Eröffnung einer Datenbanksitzung angegeben werden. Es stellt sicher, dass nur berechtigte Benutzer Zugang zum Datenbanksystem erhalten.

Die gegebenenfalls angegebenen ganzen Zahlen ohne Vorzeichen (unsigned_integer) müssen stets größer als 0 sein.

Dem Benutzer steht für die Ablage seiner privaten und temporären Tabellen unbegrenzt viel Plattenplatz zur Verfügung (im Rahmen der bei der Installation angegebenen Größen der Data-Volumes).

TIMEOUT

Die Angabe des Timeout-Wertes erfolgt in Sekunden und muss im Bereich von 30 und 32400 liegen.

Nur der Datenbanksystemadministrator (SYSDBA-Benutzer) darf Benutzer mit dem Timeout-Wert 0 definieren.

COSTWARNING/COSTLIMIT

Mit diesen Angaben kann verhindert werden, dass ein Benutzer beliebig komplizierte und damit kostenintensive QUERY-Anweisungen oder INSERT-Anweisungen der Form INSERT...SELECT... ausführen kann.

Vor Ausführung einer dieser SQL-Anweisungen werden die durch die Ausführung zu erwartenden Kosten geschätzt. Dieser SELECT-Kosten-Schätzwert kann mit der EXPLAIN-Anweisung ausgegeben werden. Der SELECT-Kosten-Schätzwert wird im interaktiven Betrieb mit den für den Benutzer angegebenen Werten für COSTWARNING und COSTLIMIT verglichen.

Für QUERY-Anweisungen oder INSERT-Anweisungen der Form INSERT...SELECT..., die in eine Programmiersprache eingebettet sind, werden die Werte COSTWARNING und COSTLIMIT nicht beachtet.

COSTWARNING: Dieser Wert gibt an, ab welchem SELECT-Kosten-Schätzwert der Benutzer eine Warnung erhält. Im Falle einer Warnung wird der Benutzer gefragt, ob die SQL-Anweisung wirklich ausgeführt werden soll.

COSTLIMIT: Dieser Wert gibt an, ab welchem SELECT-Kosten-Schätzwert die SQL-Anweisung nicht ausgeführt wird.

Der COSTLIMIT-Wert muss größer als der COSTWARNING-Wert sein.

EXCLUSIVE

EXCLUSIVE: Es ist nicht möglich, gleichzeitig zwei verschiedene Datenbanksitzungen des Benutzers zu eröffnen.

NOT EXCLUSIVE: Es ist möglich, gleichzeitig mehrere Datenbanksitzungen des Benutzers zu eröffnen.

Wenn die EXCLUSIVE-Bedingung nicht angegeben wird, dann wird implizit EXCLUSIVE (ohne NOT) angenommen.

DEFAULTCODE <ASCII | UNICODE>

Für die Objekte des angegebenen Benutzers wird der Wert des speziellen Datenbankparameters DEFAULT_CODE mit dem in DEFAULTCODE angegebenen Codeattribut übersteuert.

LIKE

Der aktuelle Benutzer muss das Eigentümerrecht an dem Quellbenutzer (source_user) besitzen.

Wenn der Quellbenutzer nicht Mitglied einer Benutzergruppe ist, dann erhält der neu definierte Benutzer die gleiche Benutzerklasse und die gleichen Werte für PERMLIMIT, TEMPLIMIT, TIMEOUT, COSTWARNING und COSTLIMIT und für die EXCLUSIVE-Angabe wie der Quellbenutzer. Der neu definierte Benutzer erhält alle Privilegien, die der Quellbenutzer von anderen Benutzern verliehen bekommen hat.

Wenn der Quellbenutzer Mitglied einer Benutzergruppe ist, dann wird ein neues Mitglied dieser Benutzergruppe mit dem neu definierten Benutzernamen definiert.

USERGROUP

Der die SQL-Anweisung absetzende Benutzer muss Eigentümer der angegebenen Benutzergruppe sein. Der neu definierte Benutzer wird Mitglied dieser Benutzergruppe.


user_mode (MaxDB: Referenzhandbuch)

user_mode

Mittels user_mode wird beim Anlegen eines Benutzers (siehe CREATE USER-Anweisung) die Datenbankbenutzerklasse des definierten Benutzers festgelegt. Die Benutzerklasse gibt an, welche Operationen der definierte Benutzer ausführen darf.

Syntax

<user_mode> ::= DBA | RESOURCE | STANDARD

DBA, RESOURCE, STANDARD

Erläuterung

Wenn bei Definition eines Benutzers keine Benutzerklasse angegeben wird, wird implizit STANDARD angenommen.

Abhängigkeiten

Die Benutzerklassen sind wie folgt ineinander enthalten:

· Die Benutzerklasse RESOURCE schließt alle Rechte ein, die ein STANDARD-Benutzer hat.

· Die Benutzerklasse DBA schließt alle Rechte ein, die ein RESOURCE-Benutzer hat.

· Der Benutzer SYSDBA kann DBA-Benutzer erzeugen. Er hat Eigentümerrechte an allen Benutzern. Ansonsten hat der SYSDBA die gleiche Funktion und die gleichen Rechte wie ein DBA-Benutzer, d.h. wenn ein DBA-Benutzer eine SQL-Anweisung ausführen darf, dann gilt das auch für den SYSDBA-Benutzer.

Siehe auch:

usergroup_mode


CREATE USERGROUP-Anweisung (create_usergroup_statement) (MaxDB: Referenzhandbuch)

CREATE USERGROUP-Anweisung (create_usergroup_statement)

Die CREATE USERGROUP-Anweisung (create_usergroup_statement) definiert eine Benutzergruppe.

Syntax

<create_usergroup_statement> ::= CREATE USERGROUP <usergroup_name>
[<usergroup_mode>]
[TIMEOUT <unsigned_integer>] [COSTWARNING <unsigned_integer>] [COSTLIMIT <unsigned_integer>] [[NOT] EXCLUSIVE] [DEFAULTCODE <ASCII | UNICODE>]

usergroup_name, usergroup_mode, unsigned_integer

Erläuterung

Der aktuelle Benutzer muss ein Datenbankadministrator (DBA-Benutzer) sein.

Der angegebene Benutzergruppenname darf nicht mit dem Namen eines existierenden Benutzers einer Benutzergruppe oder einer Rolle übereinstimmen.

Mit Hilfe der CREATE USER-Anweisung können mehrere Benutzer definiert werden, die zu dieser Benutzergruppe gehören. Alle privaten Objekte, die durch Mitglieder der Benutzergruppe erzeugt werden, werden durch den Benutzergruppennamen identifiziert. Der Eigentümer eines privaten Objekts ist die Benutzergruppe, nicht der Benutzer, der das Objekt erzeugt hat. Jeder Benutzer kann mit allen privaten Objekten der Benutzergruppe so arbeiten, als wäre er der Eigentümer des Objekts. Privilegien können nur der Benutzergruppe gegeben bzw. entzogen werden. Es ist nicht möglich, einem einzelnen Mitglied der Benutzergruppe ein Privileg zu geben bzw. zu entziehen.

Die gegebenenfalls angegebenen ganzen Zahlen ohne Vorzeichen (unsigned_integer) müssen stets größer als 0 sein.

Dem Benutzer steht für die Ablage seiner privaten und temporären Tabellen unbegrenzt viel Plattenplatz zur Verfügung (im Rahmen der bei der Installation angegebenen Größen der Data-Volumes).

TIMEOUT

Die Angabe des Timeout-Wertes erfolgt in Sekunden und muss im Bereich von 30 und 32400 liegen.

Nur der Datenbanksystemadministrator (SYSDBA-Benutzer) darf Benutzer mit dem Timeout-Wert 0 definieren.

COSTWARNING/COSTLIMIT

Mit diesen Angaben kann verhindert werden, dass ein Benutzer dieser Benutzergruppe beliebig komplizierte und damit kostenintensive QUERY-Anweisungen oder INSERT-Anweisungen der Form INSERT...SELECT... ausführen kann.

Vor Ausführung einer dieser SQL-Anweisungen werden die durch die Ausführung zu erwartenden Kosten geschätzt. Dieser SELECT-Kosten-Schätzwert kann mit der EXPLAIN-Anweisung ausgegeben werden. Der SELECT-Kosten-Schätzwert wird im interaktiven Betrieb mit den für den Benutzer angegebenen Werten für COSTWARNING und COSTLIMIT verglichen.

Für QUERY-Anweisungen oder INSERT-Anweisungen der Form INSERT...SELECT..., die in eine Programmiersprache eingebettet sind, werden die Werte COSTWARNING und COSTLIMIT nicht beachtet.

COSTWARNING: Dieser Wert gibt an, ab welchem SELECT-Kosten-Schätzwert der Benutzer eine Warnung erhält. Im Falle einer Warnung wird der Benutzer gefragt, ob die SQL-Anweisung wirklich ausgeführt werden soll.

COSTLIMIT: Dieser Wert gibt an, ab welchem SELECT-Kosten-Schätzwert die SQL-Anweisung nicht ausgeführt wird.

Der COSTLIMIT-Wert muss größer als der COSTWARNING-Wert sein.

EXCLUSIVE

EXCLUSIVE: Es ist nicht möglich, gleichzeitig zwei verschiedene Datenbanksitzungen eines Benutzers dieser Benutzergruppe zu eröffnen.

NOT EXCLUSIVE: Es ist möglich, gleichzeitig mehrere Datenbanksitzungen des Benutzers zu eröffnen.

Wenn die EXCLUSIVE-Bedingung nicht angegeben wird, dann wird implizit EXCLUSIVE (ohne NOT) angenommen.

DEFAULTCODE <ASCII | UNICODE>

Für die Objekte des angegebenen Benutzers wird der Wert des speziellen Datenbankparameters DEFAULT_CODE mit dem in DEFAULTCODE angegebenen Codeattribut übersteuert.


usergroup_mode (MaxDB: Referenzhandbuch)

usergroup_mode

Mittels usergroup_mode wird beim Anlegen einer Benutzergruppe (siehe CREATE USERGROUP-Anweisung) die Datenbankbenutzerklasse der definierten Benutzergruppe festgelegt.

Syntax

<usergroup_mode> ::= RESOURCE | STANDARD

RESOURCE, STANDARD

Erläuterung

Wenn bei Definition einer Benutzergruppe keine Benutzerklasse angegeben wird, wird implizit STANDARD angenommen.

Die Benutzerklasse RESOURCE schließt alle Rechte ein, die ein STANDARD-Benutzer hat.

Siehe auch:

user_mode


DROP USER-Anweisung (drop_user_statement) (MaxDB: Referenzhandbuch)

DROP USER-Anweisung (drop_user_statement)

Die DROP USER-Anweisung (drop_user_statement) löscht die Definition eines Datenbankbenutzers. Die Metadaten des zu löschenden Benutzers werden aus dem Datenbankkatalog gelöscht.

Syntax

<drop_user_statement> ::= DROP USER <user_name> [<cascade_option>]

user_name, cascade_option

Erläuterung

Der aktuelle Benutzer muss Eigentümerrecht an dem zu löschenden Benutzer besitzen.

Der angegebene Benutzer darf zum Zeitpunkt der Ausführung der DROP USER-Anweisung nicht beim Datenbanksystem angemeldet sein.

· Wenn der zu löschende Benutzer keiner Benutzergruppe angehört, Eigentümer von Synonymen oder Tabellen ist und die CASCADE-Option RESTRICT angegeben wurde, scheitert die DROP USER-Anweisung.

· Wenn keine CASCADE-Option oder die CASCADE-Option CASCADE angegeben wurde, werden zusammen mit dem Datenbankbenutzer alle Synonyme und Tabellen des zu löschenden Benutzers, sowie alle darauf basierenden Indizes, Privilegien, View-Tabellen usw. gelöscht.

Wenn ein Benutzer mit der Datenbankbenutzerklasse DBA gelöscht wird, bleiben die von ihm erzeugten Benutzer erhalten. Neuer Eigentümer dieser Benutzer wird der SYSDBA-Benutzer.


DROP USERGROUP-Anweisung (drop_usergroup_statement) (MaxDB: Referenzhandbuch)

DROP USERGROUP-Anweisung (drop_usergroup_statement)

Die DROP USERGROUP-Anweisung (drop_usergroup_statement) löscht die Definition einer Benutzergruppe. Die Metadaten der zu löschenden Benutzergruppe werden aus dem Datenbankkatalog gelöscht.

Syntax

<drop_usergroup_statement> ::= DROP USERGROUP <usergroup_name> [<cascade_option>]

usergroup_name, cascade_option

Erläuterung

Der aktuelle Benutzer muss Eigentümerrecht an der zu löschenden Benutzergruppe besitzen.

Kein Benutzer der Benutzergruppe darf zum Zeitpunkt der Ausführung der DROP USERGROUP-Anweisung beim Datenbanksystem angemeldet sein.

· Wenn die zu löschende Benutzergruppe Eigentümer von Synonymen oder Tabellen ist und die CASCADE-Option RESTRICT angegeben wurde, scheitert die DROP USERGROUP-Anweisung.

· Wenn keine CASCADE-Option oder die CASCADE-Option CASCADE angegeben wurde, werden zusammen mit der Benutzergruppe alle Synonyme und Tabellen der zu löschenden Benutzergruppe, sowie alle darauf basierenden Indizes, Privilegien, View-Tabellen usw. gelöscht.


ALTER USER-Anweisung (alter_user_statement) (MaxDB: Referenzhandbuch)

ALTER USER-Anweisung (alter_user_statement)

Die ALTER USER-Anweisung (alter_user_statement) ändert die einem Benutzer zugeordneten Eigenschaften.

Syntax

<alter_user_statement> ::= ALTER USER <user_name>

[<user_mode>]
[TIMEOUT <unsigned_integer> | TIMEOUT NULL]
[COSTWARNING <unsigned_integer> | COSTWARNING NULL]
[COSTLIMIT <unsigned_integer> | COSTLIMIT NULL]
[DEFAULT ROLE ALL [EXCEPT <role_name>] | DEFAULT ROLE NONE
| DEFAULT ROLE <role_name> [IDENTIFIED BY <password>]]
[[NOT] EXCLUSIVE] [DEFAULTCODE <ASCII | UNICODE>]

user_name, user_mode, unsigned_integer, role_name, password

Erläuterung

Sie müssen mindestens eine der optionalen Angaben verwenden.

Der angegebene Benutzername muss einen definierten Benutzer bezeichnen, der kein Mitglied einer Benutzergruppe ist.

Der aktuelle Benutzer muss das Eigentümerrecht an dem Benutzer besitzen, dessen Eigenschaften geändert werden sollen.

Zum Zeitpunkt der Ausführung der ALTER USER-Anweisung darf der angegebene Benutzer nicht beim Datenbanksystem angemeldet sein.

Datenbankbenutzerklasse (user_mode)

· DBA: Diese Angabe bedeutet, dass dem angegebenen Benutzer die Benutzerklasse DBA verliehen werden soll. Diese Benutzerklasse kann nur der SYSDBA verleihen.

· RESOURCE: Diese Angabe bedeutet, dass dem angegebenen Benutzer die Benutzerklasse RESOURCE verliehen werden soll. Falls der Benutzer zuvor die Benutzerklasse DBA besaß, wird dem Benutzer das Eigentümerrecht für alle Benutzer entzogen, die er erzeugt hat. Neuer Eigentümer wird der Benutzer SYSDBA.

· STANDARD: Diese Angabe bedeutet, dass dem Benutzer seine aktuelle Benutzerklasse entzogen wird und er das Recht verliert, eigene Basistabellen zu erzeugen. Alle bereits existierenden Basistabellen des Benutzers werden gelöscht.

· Keine Benutzerklasse: Wenn keine Benutzerklasse angegeben wurde, bleibt die Benutzerklasse des Benutzers unverändert.

NULL

Wenn der Wert NULL spezifiziert wird, dann wird der zuvor definierte Wert aufgehoben.

DEFAULT ROLE

Durch DEFAULT ROLE wird festgelegt, welche der an den Benutzer vergebenen Rollen automatisch beim Eröffnen einer Datenbanksitzung aktiviert werden.

· ALL: Alle Rollen, die dem Benutzer vergeben wurden, sind nach dem Eröffnen einer Sitzung aktiv. Durch EXCEPT können einzelne namentlich aufgeführte Rollen hiervon ausgenommen werden.

· NONE: Keine Rolle wird beim Eröffnen einer Datenbanksitzung des Benutzers aktiv.

· Angabe von Rollennamen: Die hierdurch identifizierten Rollen müssen existieren und an den Benutzer vergeben sein. Sie werden beim Eröffnen einer Datenbanksitzung des Benutzers automatisch aktiv.

Siehe auch:

Rollenkonzept

Eine Erläuterung der Angaben TIMEOUT, COSTWARNING, COSTLIMIT, [NOT] EXCLUSIVE und DEFAULTCODE finden Sie in der CREATE USER-Anweisung.


ALTER USERGROUP-Anweisung (alter_usergroup_statement) (MaxDB: Referenzhandbuch)

ALTER USERGROUP-Anweisung (alter_usergroup_statement)

Die ALTER USERGROUP-Anweisung (alter_usergroup_statement) ändert die einer Benutzergruppe zugeordneten Eigenschaften.

Syntax

<alter_usergroup_statement> ::= ALTER USERGROUP <usergroup_name> [<usergroup_mode>]
[TIMEOUT <unsigned_integer> | TIMEOUT NULL]
[COSTWARNING <unsigned_integer> | COSTWARNING NULL] [COSTLIMIT <unsigned_integer> | COSTLIMIT NULL]
[DEFAULT ROLE ALL [EXCEPT <role_name>] | DEFAULT ROLE NONE
| DEFAULT ROLE <role_name> [IDENTIFIED BY <password>]]
[[NOT] EXCLUSIVE] [DEFAULTCODE <ASCII | UNICODE>]

usergroup_name, usergroup_mode , unsigned_integer, role_name, password

Erläuterung

Sie müssen mindestens eine der optionalen Angaben verwenden.

Die angegebene Benutzergruppe muss eine definierte Benutzergruppe bezeichnen.

Der aktuelle Benutzer muss das Eigentümerrecht an der Benutzergruppe besitzen, deren Eigenschaften geändert werden sollen.

Zum Zeitpunkt der Ausführung der ALTER USERGROUP-Anweisung darf kein Mitglied der angegebenen Benutzergruppe beim Datenbanksystem angemeldet sein.

Datenbankbenutzerklasse der Benutzergruppe (usergroup_mode)

· RESOURCE: Diese Angabe bedeutet, dass der angegebenen Benutzergruppe die Datenbankbenutzerklasse RESOURCE verliehen wird.

· STANDARD: Diese Angabe bedeutet, dass der Benutzergruppe ihre aktuelle Benutzerklasse entzogen wird und sie das Recht verliert, eigene Daten zu halten. Alle bereits existierenden Basistabellen der Benutzergruppe werden gelöscht.

· Keine Benutzerklasse: Wenn keine Benutzerklasse angegeben wurde, bleibt die Benutzerklasse der Benutzergruppe unverändert.

NULL

Wenn der Wert NULL spezifiziert wird, dann wird der zuvor definierte Wert aufgehoben.

DEFAULT ROLE

Durch DEFAULT ROLE wird festgelegt, welche der an die Benutzergruppe vergebenen Rollen automatisch beim Eröffnen einer Sitzung eines Gruppenmitglieds aktiviert werden.

· ALL: Alle Rollen, die der Benutzergruppe vergeben wurden, sind nach dem Eröffnen einer Sitzung aktiv. Durch EXCEPT können einzelne namentlich aufgeführte Rollen hiervon ausgenommen werden.

· NONE: Keine Rolle wird beim Eröffnen einer Sitzung eines Mitglieds der Benutzergruppe aktiv.

· Angabe von Rollennamen: Die hierdurch identifizierten Rollen müssen existieren und an die Benutzergruppe vergeben sein. Sie werden beim Eröffnen einer Sitzung eines Gruppenmitglieds automatisch aktiv.

Siehe auch:

Rollenkonzept

Eine Erläuterung der Angaben TIMEOUT, COSTWARNING, COSTLIMIT, [NOT] EXCLUSIVE und DEFAULTCODE finden Sie in der CREATE USERGROUP-Anweisung.


RENAME USER-Anweisung (rename_user_statement) (MaxDB: Referenzhandbuch)

RENAME USER-Anweisung (rename_user_statement)

Die RENAME USER-Anweisung (rename_user_statement) ändert den Namen eines Benutzers.

Syntax

<rename_user_statement> ::= RENAME USER <user_name> TO <new_user_name>

user_name

Erläuterung

Der zu ändernde Benutzer muss existieren. Der Benutzername muss einen Benutzer identifizieren, dessen Eigentümer der aktuelle Benutzer ist.

Der neue Benutzername (new_user_name) darf nicht mit dem Namen eines existierenden Benutzers, einer existierenden Benutzergruppe oder einer existierenden Rolle übereinstimmen.

Der Benutzer, der geändert werden soll, darf zum Zeitpunkt der Ausführung der RENAME USER-Anweisung nicht am Datenbanksystem angemeldet sein.

Alle vom zu ändernden Benutzer abhängigen Objekte werden vom Datenbanksystem an den neuen Benutzernamen angepasst.


RENAME USERGROUP-Anweisung (rename_usergroup_statement) (MaxDB: Referenzhandbuch)

RENAME USERGROUP-Anweisung (rename_usergroup_statement)

Die RENAME USERGROUP-Anweisung (rename_usergroup_statement) ändert den Namen einer Benutzergruppe.

Syntax

<rename_usergroup_statement> ::= RENAME USERGROUP <usergroup_name> TO <new_usergroup_name>

usergroup_name

Erläuterung

Die zu ändernde Benutzergruppe muss existieren. Der Name der Benutzergruppe muss eine Benutzergruppe identifizieren, für die der aktuelle Benutzer das Eigentümerrecht besitzt.

Der neue Benutzergruppenname (new_usergroup_name) darf nicht mit dem Namen eines existierenden Benutzers, einer existierenden Benutzergruppe oder einer existierenden Rolle übereinstimmen.

Kein Mitglied der zu ändernden Benutzergruppe darf zum Zeitpunkt, an dem die RENAME USERGROUP-Anweisung abgesetzt wird, beim Datenbanksystem angemeldet sein.

Alle von der zu ändernden Benutzergruppe abhängigen Objekte werden vom Datenbanksystem an den neuen Benutzergruppennamen angepasst.


GRANT USER-Anweisung (grant_user_statement) (MaxDB: Referenzhandbuch)

GRANT USER-Anweisung (grant_user_statement)

Die GRANT USER-Anweisung (grant_user_statement) verleiht das Eigentümerrecht, das der Datenbanksystemadministrator (SYSDBA-Benutzer) oder ein Datenbankadministrator (DBA-Benutzer) für einen Benutzer besitzt, an einen anderen Benutzer.

Syntax

<grant_user_statement> ::= GRANT USER <granted_users> [FROM <user_name>] TO <user_name>

<granted_users> ::= <user_name>,...| *
user_name

Erläuterung

Der aktuelle Benutzer muss ein DBA-Benutzer sein.

Die hinter den Schlüsselwörtern FROM und TO angegebenen Benutzernamen müssen verschieden sein, und sie müssen DBA-Benutzer kennzeichnen. Wenn FROM <user_name> nicht angegeben ist, wird implizit der aktuelle Benutzer angenommen.

Die nach den Schlüsselwörtern GRANT USER angegebenen Benutzer müssen existieren, dürfen keine Mitglieder einer Benutzergruppe sein und müssen RESOURCE-Benutzer oder STANDARD-Benutzer sein. Der FROM-Benutzer muss das Eigentümerrecht für diese Benutzer haben. Die Angabe * bedeutet, dass die GRANT USER-Anweisung alle Benutzer betrifft, für die der FROM-Benutzer das Eigentümerrecht besitzt.

Der TO-Benutzer erhält vom FROM-Benutzer die Eigentümerrechte, die der FROM-Benutzer an den angegebenen Benutzern besitzt. Dem FROM-Benutzer werden diese Rechte entzogen. Insbesondere erhält der TO-Benutzer für jeden angegebenen Benutzer das Recht, diesen zu löschen sowie dessen Benutzerklasse und dessen andere Eigenschaften zu ändern.


GRANT USERGROUP-Anweisung (grant_usergroup_statement) (MaxDB: Referenzhandbuch)

GRANT USERGROUP-Anweisung (grant_usergroup_statement)

Die GRANT USERGROUP-Anweisung (grant_usergroup_statement) verleiht das Eigentümerrecht, das der Datenbanksystemadministrator (SYSDBA-Benutzer) oder ein Datenbankadministrator (DBA-Benutzer) für eine Benutzergruppe besitzt, an einen anderen Benutzer.

Syntax

<grant_usergroup_statement> ::= GRANT USERGROUP <granted_usergroups> [FROM <user_name>] TO <user_name>

<granted_usergroups> ::= <usergroup_name>,...| *
user_name, usergroup_name

Erläuterung

Der aktuelle Benutzer muss ein DBA-Benutzer sein.

Die hinter den Schlüsselwörtern FROM und TO angegebenen Benutzernamen müssen verschieden sein, und sie müssen DBA-Benutzer kennzeichnen. Wenn FROM <user_name> nicht angegeben ist, wird implizit der aktuelle Benutzer angenommen.

Die Benutzergruppennamen müssen Benutzergruppen identifzieren, für die der FROM-Benutzer das Eigentümerrecht besitzt. Die Angabe * steht für alle Benutzergruppen, für die der FROM-Benutzer das Eigentümerrecht besitzt.

Der TO-Benutzer erhält vom FROM-Benutzer die Eigentümerrechte, die der FROM-Benutzer an den angegebenen Benutzergruppen besitzt. Dem FROM-Benutzer werden diese Rechte entzogen. Insbesondere erhält der TO-Benutzer für jede Benutzergruppe das Recht, diese zu löschen, deren Benutzerklasse und deren Eigenschaften zu ändern sowie Mitglieder der Benutzergruppe zu löschen oder neu einzurichten.


ALTER PASSWORD-Anweisung (alter_password_statement) (MaxDB: Referenzhandbuch)

ALTER PASSWORD-Anweisung (alter_password_statement)

Die ALTER PASSWORD-Anweisung (alter_password_statement) wird benötigt, um das Kennwort eines Benutzers zu ändern.

Syntax

<alter_password_statement> ::= ALTER PASSWORD <old_password> TO <new_password>
| ALTER PASSWORD <user_name> <new_password>

<old_password> ::= <password>

<new_password> ::= <password>

user_name, password

Erläuterung

Das alte Kennwort muss mit dem im Datenbankkatalog für den aktuellen Benutzer abgelegten Kennwort übereinstimmen.

Wenn der Benutzername (user_name) angegeben wird, muss der aktuelle Benutzer der SYSDBA sein.

Das neue Kennwort muss beim Eröffnen der nächsten Datenbanksitzung des Benutzers in der CONNECT-Anweisung angegeben werden.


CREATE ROLE-Anweisung (create_role_statement) (MaxDB: Referenzhandbuch)

CREATE ROLE-Anweisung (create_role_statement)

Die CREATE ROLE-Anweisung (create_role_statement) definiert eine Rolle.

Syntax

<create_role_statement> ::= CREATE ROLE <role_name> [IDENTIFIED BY <password>]

role_name, password

Erläuterung

Der aktuelle Benutzer muss ein Datenbankadministrator (DBA-Benutzer) sein.

Der Rollenname darf nicht mit dem Namen einer bereits existierenden Rolle, eines Benutzers oder einer Benutzergruppe übereinstimmen.

Siehe auch:

Rollenkonzept


DROP ROLE-Anweisung (drop_role_statement) (MaxDB: Referenzhandbuch)

DROP ROLE-Anweisung (drop_role_statement)

Die DROP ROLE-Anweisung (drop_role_statement) löscht eine Rolle.

Syntax

<drop_role_statement> ::= DROP ROLE <role_name>

role_name

Erläuterung

Der aktuelle Benutzer muss Eigentümer der Rolle sein.

Die Metadaten der zu löschenden Rolle werden aus dem Datenbankkatalog gelöscht.


GRANT-Anweisung (grant_statement) (MaxDB: Referenzhandbuch)

GRANT-Anweisung (grant_statement)

Die GRANT-Anweisung (grant_statement) vergibt Privilegien für Tabellen, einzelne Spalten und Rollen, das SELECT-Privileg für eine Sequenz und das Ausführungsprivileg für eine Datenbankprozedur.

Syntax

<grant_statement> ::= GRANT <priv_spec>,... TO <grantee>,... [WITH GRANT OPTION]
| GRANT EXECUTE ON <dbproc_name> TO <grantee>,...
| GRANT SELECT ON <sequence_name> TO <grantee>,... [WITH GRANT OPTION]

priv_spec , grantee , dbproc_name , sequence_name

Erläuterung

Die in der Privilegienspezifikation (priv_spec) aufgezählten Privilegien werden an die in der grantee-Liste genannten Benutzer, Benutzergruppen und Rollen (siehe auch: Rollenkonzept) vergeben.

WITH GRANT OPTION

Dem durch grantee identifizierten Benutzer bzw. der durch grantee identifizierten Benutzergruppe wird erlaubt, die erhaltenen Privilegien an andere Benutzer weiterzugeben. Der aktuelle Benutzer muss die Berechtigung besitzen, die Privilegien zur Weitergabe zu vergeben.

Die Angabe von WITH GRANT OPTION ist nicht zulässig, wenn durch grantee eine Rolle angegeben ist.

GRANT EXECUTE ON

GRANT EXECUTE ON erlaubt dem durch grantee identifizierten Benutzer die Ausführung der angegebenen Datenbankprozedur. Der aktuelle Benutzer muss Eigentümer der Datenbankprozedur sein.

GRANT SELECT ON

GRANT SELECT ON erlaubt dem durch grantee identifizierten Benutzer die Verwendung der angegebenen Sequenz.


Privilegienspezifikation (priv_spec) (MaxDB: Referenzhandbuch)

Privilegienspezifikation (priv_spec)

Eine Privilegienspezifikation (priv_spec) definiert eine Rolle bzw. eine Menge von Privilegien für entsprechend angegebene Tabellen.

Syntax

<priv_spec> ::= ALL [PRIV[ILEGES]] ON [TABLE] <table_name>,...
| <privilege>,... ON [TABLE] <table_name>,... | <role_name>

table_name, privilege, role_name

Erläuterung

Keine der angegebenen Tabellen darf eine temporäre Basistabelle sein.

Der Benutzer muss die Berechtigung besitzen, die Privilegien auf den angegebenen Tabellen zu vergeben (GRANT-Anweisung) bzw. zu widerrufen (REVOKE-Anweisung). Für Basistabellen besitzt der Eigentümer der Tabelle diese Berechtigung.

Bei View-Tabellen besitzt auch der Eigentümer nicht immer die Berechtigung, alle Privilegien zu vergeben bzw. zu widerrufen. Welche Privilegien er für eine View-Tabelle vergeben bzw. widerrufen darf, wird vom Datenbanksystem beim Erzeugen der Tabelle festgestellt. Das Resultat hängt vom Typ der Tabelle sowie den Privilegien ab, die der Benutzer auf den in der View-Tabelle selektierten Tabellen besitzt. Der Eigentümer einer Tabelle kann die Privilegien, die er vergeben bzw. widerrufen darf, durch Selektieren der Systemtabelle DOMAIN.PRIVILEGES erfragen.

Eine Liste aller Privilegien, die vergeben werden können, finden Sie in Privileg-Typ.

Wenn als Privilegienspezifikation eine Rolle angegeben ist, muss sie existieren und der aktuelle Benutzer muss Eigentümer der Rolle sein.

ALL [PRIV[ILEGES]]

Alle Privilegien, die der Benutzer auf Tabellen vergeben darf, werden an die angegebenen Benutzer, Benutzergruppen und Rollen vergeben (GRANT-Anweisung) bzw. widerrufen (REVOKE-Anweisung).

Wenn ein Benutzer, der nicht Eigentümer der Tabelle ist, in einer REVOKE-Anweisung ALL spezifiziert, entzieht er dem angegebenen Benutzer alle von ihm für diese Tabelle vergebenen Privilegien.


grantee (MaxDB: Referenzhandbuch)

grantee

Es wird der Benutzer (bzw. mehrere Benutzer) bzw. die Rolle angegeben, für den(die) mittels der GRANT-Anweisung Privilegien vergeben oder für den (die) mittels der REVOKE-Anweisung Privilegien widerrufen werden sollen.

Syntax

<grantee> ::= PUBLIC | <user_name> | <usergroup_name> | <role_name>

user_name, usergroup_name, role_name

Erläuterung

Ein Benutzer, der in der grantee-Liste erscheint, darf nicht mit dem Benutzernamen des aktuellen Benutzers und nicht mit dem Namen des Eigentümers der Tabelle übereinstimmen. Ein Benutzer, der in der grantee-Liste erscheint, darf kein Mitglied einer Benutzergruppe bezeichnen.

Rollen

Wenn eine Rolle an einen Benutzer oder eine Benutzergruppe vergeben wird, erweitert sie die Menge der für diesen Benutzer bzw. diese Benutzergruppe aktivierbaren Rollen. Die Aktivierung durch den Benutzer erfolgt entweder mit Hilfe der SET-Anweisung oder durch Aufnahme der Rolle in die Menge der beim Eröffnen einer Sitzung automatisch aktivierten Rollen durch die ALTER USER-Anweisung oder ALTER USERGROUP-Anweisung.

Wenn eine Rolle an eine Rolle vergeben wird, dann darf hierdurch kein Zyklus entstehen, d.h.

· eine Rolle darf nicht an sich selbst vergeben werden.

· wenn eine Rolle R1 an eine Rolle R2 vergeben wurde, dann darf R2 nicht an R1 vergeben werden.

· wenn eine Rolle R1 an R2 und R2 an eine Rolle R3 vergeben wurde, dann darf R3 weder an R2 noch an R1 vergeben werden.

· usw.

PUBLIC

Die aufgeführten Privilegien werden an alle zu diesem und zu einem späteren Zeitpunkt existierenden Benutzer vergeben.

Eine Rolle kann nicht an PUBLIC vergeben werden.


REVOKE-Anweisung (revoke_statement) (MaxDB: Referenzhandbuch)

REVOKE-Anweisung (revoke_statement)

Die REVOKE-Anweisung (revoke_statement) widerruft Privilegien.

Syntax

<revoke_statement> ::= REVOKE <priv_spec>,... FROM <grantee>,... [<cascade_option>]
| REVOKE EXECUTE ON <dbproc_name> FROM <grantee>,...
| REVOKE SELECT ON <sequence_name> FROM <grantee>,... [<cascade_option>]

priv_spec, grantee, cascade_option, dbproc_name, sequence_name

Erläuterung

Der Eigentümer einer Tabelle kann jedem Benutzer die für diese Tabelle vergebenen Privilegien entziehen.

Ist ein Benutzer nicht Eigentümer der Tabelle, kann er nur die Privilegien entziehen, die er selbst vergeben hat.

Wenn für eine Tabelle das SELECT-Privileg ohne Angabe von Spaltennamen vergeben wurde, dann wird durch REVOKE SELECT (<column_name>,...) das SELECT-Privileg (siehe Privileg-Typ) für die angegebenen Spalten entzogen, das SELECT-Privileg für die nicht vorkommenden Spalten der Tabelle besteht anschließend weiter. Entsprechendes gilt für das UPDATE-, REFERENCES- und SELUPD-Privileg.

Die REVOKE-Anweisung kann kaskadieren, d.h. wird einem Benutzer ein Privileg entzogen, so kann das dazu führen, dass dieses Privileg weiteren Benutzern entzogen wird, die dieses Privileg von dem angegebenen Benutzer erhalten haben.

Seien U1, U2 und U3 Benutzer.
U1 vergibt an U2 die Privilegienmenge P WITH GRANT OPTION.
U2 vergibt an U3 die Privilegienmenge P' (P'<=P).

Wenn U1 dem Benutzer U2 die Privilegienmenge P'' (P''<=P) entzieht, so wird dem Benutzer U3 implizit die Privilegienmenge (P'*P'') entzogen.

· Wenn dem Eigentümer einer View-Tabelle das SELECT-Privileg für eine Spalte entzogen wird, die als selektierte Spalte, jedoch nicht in der table_expression der Viewdefinition auftritt (CREATE VIEW-Anweisung), dann wird die durch select_column definierte Spalte aus der View-Tabelle gelöscht.
Wenn diese View-Tabelle in der FROM-Klausel einer weiteren View-Tabelle verwendet wird, so wird das beschriebene Verfahren rekursiv auf diese View-Tabelle angewendet.

· Wenn dem Eigentümer einer View-Tabelle das SELECT-Privileg für eine Spalte oder Tabelle entzogen wird, die in der table_expression der Viewdefinition auftritt, dann wird die View-Tabelle mit allen von ihr abhängigen View-Tabellen, Privilegien und Synonymen gelöscht, wenn keine CASCADE-Option oder die CASCADE-Option CASCADE angegeben ist. Bei Angabe der CASCADE-Option RESTRICT scheitert die REVOKE-Anweisung.

REVOKE EXECUTE

Durch REVOKE EXECUTE wird dem durch grantee identifizierten Benutzer die Berechtigung entzogen, die angegebene Datenbankprozedur auszuführen. Die Berechtigung zur Ausführung kann nur vom Eigentümer der Datenbankprozedur entzogen werden.


Datenmanipulation (MaxDB: Referenzhandbuch)

Datenmanipulation

In den folgenden Abschnitten wird die vom Datenbanksystem verwendete Sprache zur Datenmanipulation (Data Manipulation Language, DML) vorgestellt.

Bei jeder SQL-Anweisung zur Datenmanipulation wird für jede eingefügte, geänderte oder gelöschte Zeile implizit eine Schreibsperre gesetzt (siehe auch Sperren).

SQL-Anweisungen zur Datenmanipulation

INSERT-Anweisung | UPDATE-Anweisung | DELETE-Anweisung
NEXT STAMP-Anweisung | CALL-Anweisung |


INSERT-Anweisung (insert_statement) (MaxDB: Referenzhandbuch)

INSERT-Anweisung (insert_statement)

Die INSERT-Anweisung (insert_statement) erzeugt neue Zeilen einer Tabelle.

Syntax

<insert_statement> ::=
  INSERT [INTO] <table_name> [(<column_name>,...)] VALUES (<insert_expression>,...) [<duplicates_clause>]
| INSERT [INTO] <table_name> [(<column_name>,...)] <query_expression> [<duplicates_clause>]
| INSERT [INTO] <table_name> SET <set_insert_clause>,... [<duplicates_clause>]

<insert_expression> ::= <extended_expression> | <subquery>

table_name, column_name, extended_expression, duplicates_clause, subquery, query_expression, set_insert_clause

Erläuterung

Der Tabellenname muss eine existierende Basistabelle oder View-Tabelle (siehe Tabelle) oder ein Synonym bezeichnen.

Wenn Spaltennamen oder eine SET INSERT-Klausel (set_insert_clause) angegeben sind, müssen alle angegebenen Spaltennamen Spalten der angegebenen Tabelle sein. Wenn die Tabelle ohne Schlüssel definiert wurde (d.h. vom Datenbanksystem wird intern die Spalte SYSKEY erzeugt), darf die Spalte SYSKEY nicht in der Folge der genannten Spalten oder in einer SET INSERT-Klausel vorkommen. Eine Spalte darf nicht mehrmals in einer Folge von Spaltennamen oder in mehr als einer SET INSERT-Klausel enthalten sein.

Der Benutzer muss das INSERT-Privileg für die durch den Tabellennamen identifizierte Tabelle besitzen. Wenn durch den Tabellennamen eine View-Tabelle identifiziert wird, ist es möglich, dass selbst der Eigentümer der View-Tabelle das INSERT-Privileg nicht besitzt, weil die View-Tabelle nicht änderbar ist.

Eine angegebene Spalte (optional durch column_name oder Spaltenname in der set_insert_clause) ist eine Zielspalte. Die Zielspalten können in beliebiger Reihenfolge angegeben werden.

· Wenn kein Spaltenname und keine SET INSERT-Klausel angegeben ist, so hat das die gleiche Wirkung wie die Angabe einer Folge von Spalten, die alle Spalten der Tabelle in der bei der CREATE TABLE-Anweisung bzw. CREATE VIEW-Anweisung angegebenen Reihenfolge enthält. In diesem Fall sind alle vom Benutzer definierten Spalten der Tabelle Zielspalten.

· Die Anzahl der Ausdrücke (insert_expression) muss der Anzahl der Zielspalten entsprechen. Dem i-ten Spaltennamen ist der i-te Ausdruck zugeordnet.

· Ausdrücke (extended_expression) und Subqueries (subquery) können gleichzeitig angegeben werden.

· Es können eine oder mehrere Subqueries angegeben werden.

· Die angegebenen Subqueries dürfen nur genau eine Ergebniszeile liefern.

· Die Anzahl der im QUERY-Ausdruck (query_expression) angegebenen selektierten Spalten muss der Anzahl der Zielspalten entsprechen.

· Alle Pflichtspalten der durch den Tabellennamen identifizierten Tabelle müssen Zielspalten sein.

· Wenn der Tabellenname eine View-Tabelle identifiziert, werden Zeilen in die der View-Tabelle zugrundeliegende(n) Basistabelle(n) eingefügt. Die Zielspalten des angegebenen Tabellennamens korrespondieren in diesem Fall mit Spalten von Basistabellen, die der View-Tabelle zugrundeliegen. Im folgenden identifiziert der Begriff Zielspalte immer die korrespondierende Spalte der Basistabelle.

Weitere Informationen

· Datentyp der Zielspalte und Datentyp des einzufügenden Wertes

· Join-View-Tabelle in INSERT-Anweisung

· QUERY-Ausdruck in INSERT-Anweisung

· DUPLICATES-Klausel (duplicates_clause)

· Constraint-Definition in INSERT-Anweisung

· Trigger in INSERT-Anweisung

Bei der INSERT-Anweisung wird der dritte Eintrag von SQLERRD in der SQLCA mit der Anzahl der eingefügten Zeilen belegt.

Treten beim Einfügen von Zeilen Fehler auf, scheitert die INSERT-Anweisung und hinterläßt eine unveränderte Tabelle.


Datentyp der Zielspalte und Datentyp des einzufügenden Wertes (MaxDB: Referenzhandbuch)

Datentyp der Zielspalte und Datentyp des einzufügenden Wertes

Sei C eine Zielspalte und v ein vom NULL-Wert verschiedener Wert.

v soll in C durch eine INSERT-Anweisung eingefügt werden.
v soll zur Modifikation von C durch eine UPDATE-Anweisung verwendet werden.

Zielspalte C

geforderter Wert für v

numerische Spalte

Zahl, die im zulässigen Bereich von C liegt.

INSERT-Anweisung: Wenn v das Ergebnis eines QUERY-Ausdrucks ist, werden gegebenenfalls Nachkommastellen gerundet.

UPDATE-Anweisung: Wenn v das Ergebnis eines Ausdrucks (expression) ist, der nicht aus einem einzigen numerischen Literal besteht, werden gegebenenfalls Nachkommastellen gerundet.

alphanumerische Spalte mit dem Codeattribut ASCII, UNICODE

Zeichenkette, deren Länge nicht größer ist als das Längenattribut von C. Bei der Bestimmung der Länge von v werden nachfolgende Leerzeichen nicht berücksichtigt. Wenn die Länge von v kleiner ist als das Längenattribut von C, wird v um die entsprechende Anhalt von Leerzeichen verlängert.

alphanumerische Spalte mit dem Codeattribut BYTE

Hexadezimale Zeichenkette, deren Länge nicht größer ist als das Längenattribut von C. Bei der Bestimmung der Länge von v werden nachfolgende binäre Nullen nicht berücksichtigt. Wenn die Länge von v kleiner ist als das Längenattribut von C, wird v um die entsprechende Anzahl von binären Nullen verlängert.

Datentyp DATE

Datumswert im derzeit gültigen Datumsformat.

Datentyp TIME

Zeitwert im derzeit gültigen Zeitformat.

Datentyp TIMESTAMP

Zeitstempelwert im derzeit gültigen Zeitstempelformat.

Datentyp BOOLEAN

Einer der Werte TRUE oder FALSE (BOOLEAN)


Join-View-Tabelle in INSERT-Anweisung (MaxDB: Referenzhandbuch)

Join-View-Tabelle in INSERT-Anweisung

Wenn durch den Tabellennamen in einer INSERT-Anweisung keine Join-View-Tabelle (siehe CREATE VIEW-Anweisung ) identifiziert wird und eine Zeile mit dem Schlüssel der einzufügenden Zeile bereits existiert, hängt das Ergebnis von der Angabe der DUPLICATES-Klausel ab. Ist keine DUPLICATES-Klausel angegeben, scheitert die INSERT-Anweisung.

Wenn der Tabellenname eine Join-View-Tabelle identifiziert, wird in jede Basistabelle, die der View-Tabelle zugrundeliegt, eine Zeile eingefügt. Wenn eine Zeile mit dem Schlüssel der einzufügenden Zeile in der Schlüsseltabelle der View-Tabelle bereits existiert, scheitert die INSERT-Anweisung. Wenn eine Zeile mit dem Schlüssel der einzufügenden Zeile in einer Basistabelle, die nicht Schlüsseltabelle oder View-Tabelle ist, bereits existiert, scheitert die INSERT-Anweisung, wenn die einzufügende Zeile nicht mit der existierenden übereinstimmt.


QUERY-Ausdruck in INSERT-Anweisung (MaxDB: Referenzhandbuch)

QUERY-Ausdruck in INSERT-Anweisung

Wenn in der INSERT-Anweisung ein QUERY-Ausdruck angegeben ist, darf die angegebene Tabelle keine Join-View-Tabelle sein.

Der QUERY-Ausdruck definiert eine Ergebnistabelle (siehe Ergebnistabellenname ), deren i-te Spalte der i-ten Zielspalte zugeordnet wird. Aus jeder Zeile der Ergebnistabelle wird eine Zeile der angegebenen Tabelle gebildet und in die Basistabelle eingefügt. Jede dieser Zeilen setzt sich wie folgt zusammen:

  • Alle Spalten der Basistabelle, die Zielspalten der INSERT-Anweisung sind, enthalten den Spaltenwert der Spalte der aktuellen Zeile der Ergebnistabelle, die ihr zugeordnet ist.

Wenn in der INSERT-Anweisung kein QUERY-Ausdruck angegeben ist, wird genau eine Zeile in die angegebene Tabelle eingefügt. Die eingefügte Zeile setzt sich wie folgt zusammen:

  • Alle Spalten der Basistabelle, die Zielspalten der INSERT-Anweisung sind, enthalten den der jeweiligen Zielspalte zugeordneten Wert.

Weiterhin gilt für die Zeile bzw. Zeilen, die eingefügt werden, folgendes:

  • Alle Spalten der Basistabelle, die keine Zielspalten der INSERT-Anweisung sind und für die eine DEFAULT-Spezifikation existiert, enthalten den Vorschlagswert (DEFAULT-Wert).
  • Alle Spalten der Basistabelle, die keine Zielspalten der INSERT-Anweisung sind und für die keine DEFAULT-Spezifikation existiert, enthalten den NULL-Wert .


DUPLICATES-Klausel (duplicates_clause) (MaxDB: Referenzhandbuch)

DUPLICATES-Klausel (duplicates_clause)

Durch die DUPLICATES-Klausel ( duplicates_clause ) kann das Verhalten beim Auftreten von Schlüsselkollisionen gesteuert werden.

Syntax

<duplicates_clause> ::= REJECT DUPLICATES | IGNORE DUPLICATES | UPDATE DUPLICATES

Erläuterung

SQL-Anweisungen, in denen die DUPLICATES-Klausel verwendet wird

CREATE TABLE-Anweisung

REJECT DUPLICATES oder keine DUPLICATES-Klausel | Die CREATE TABLE-Anweisung scheitert, wenn Schlüsselkollisionen auftreten.
IGNORE DUPLICATES | Alle Zeilen, die beim Einfügen eine Schlüsselkollision hervorrufen, werden ignoriert.
UPDATE DUPLICATES | Alle Zeilen, die beim Einfügen eine Schlüsselkollision hervorrufen, überschreiben die Zeilen, mit denen sie kollidieren.

INSERT-Anweisung

Wenn eine Zeile mit dem Schlüssel der einzufügenden Zeile in der Basistabelle bereits existiert, sind folgende Fälle zu unterscheiden:

REJECT DUPLICATES oder keine DUPLICATES-Klausel | Die INSERT-Anweisung scheitert.
IGNORE DUPLICATES | Die neue Zeile wird nicht eingefügt und die Bearbeitung der INSERT-Anweisung fortgesetzt.
UPDATE DUPLICATES | Die existierende Zeile wird durch die neue Zeile überschrieben und die Bearbeitung der INSERT-Anweisung wird fortgesetzt.

Wenn bei einer INSERT-Anweisung mit Angabe von UPDATE DUPLICATES und Angabe eines QUERY-Ausdrucks mehr als eine Schlüsselkollision für den gleichen Schlüssel auftritt, kann nicht vorausgesagt werden, welchen Inhalt die entsprechende Zeile der Basistabelle nach Beendigung der INSERT-Anweisung besitzt.

Wenn bei einer INSERT-Anweisung mit Angabe von IGNORE DUPLICATES und Angabe eines QUERY-Ausdrucks mehr als eine Zeile der Ergebnistabelle den gleichen Schlüssel der Basistabelle liefert und wenn dieser zuvor in der Basistabelle noch nicht existierte, kann nicht vorausgesagt werden, welche Zeile in die Tabelle eingefügt wird.

Wenn durch den in der INSERT-Anweisung angegebenen Tabellennamen eine Tabelle ohne vom Benutzer definierten Schlüssel identifiziert wird, hat die Angabe einer DUPLICATES-Klausel keine Wirkung.


Constraint-Definition in INSERT-Anweisung (MaxDB: Referenzhandbuch)

Constraint-Definition in INSERT-Anweisung

Wenn für Basistabellen, in die durch die INSERT-Anweisung Zeilen eingefügt werden, CONSTRAINT-Definition en existieren, wird für jede einzufügende Zeile geprüft, ob sie die CONSTRAINT-Definition erfüllt. Wenn dies für mindestens eine Zeile nicht der Fall ist, scheitert die INSERT-Anweisung.

Wenn mindestens eine der Basistabellen, in die durch die INSERT-Anweisung Zeilen eingefügt werden, referenzierende Tabelle einer referentiellen CONSTRAINT-Definition ist, wird für jede einzufügende Zeile geprüft, ob der aus der Zeile resultierende Fremdschlüssel als Schlüssel bzw. als Wert eines mit UNIQUE definierten Index (siehe CREATE INDEX-Anweisung ) in der korrespondierenden referenzierten Tabelle ( referenced_table ) existiert. Wenn dies für mindestens eine Zeile nicht der Fall ist, scheitert die INSERT-Anweisung.


Trigger in INSERT-Anweisung (MaxDB: Referenzhandbuch)

Trigger in INSERT-Anweisung

Wenn für Basistabellen, in die durch die INSERT-Anweisung Zeilen eingefügt werden, Trigger definiert wurden, die nach einer INSERT-Anweisung auszuführen sind, so werden diese ausgeführt. Scheitert einer dieser Trigger, scheitert die INSERT-Anweisung.


extended_expression (MaxDB: Referenzhandbuch)

extended_expression

Die Angabe eines erweiterten Ausdrucks ( extended_expression ) kann durch die Angabe eines Ausdrucks (expression) oder eines der Schlüsselwörter DEFAULT bzw. STAMP erfolgen.

Syntax

<extended_expression> ::= <expression> | DEFAULT | STAMP

expression

Erläuterung

  • Ausdruck ( expression )
    INSERT-Anweisung : Ein Ausdruck in einer INSERT-Anweisung darf keine Spaltenspezifikation enthalten.
    Der durch eine     Parameterspezifikation ( parameter_spec ) in einem Ausdruck ( expression ) angegebene Wert ist der Wert des dadurch identifizierten Parameters. Wenn ein Indikatorparameter angegeben wurde und dieser einen negativen Wert hat, ist der durch die Parameterspezifikation angegebene Wert der NULL-Wert.
  • Schlüsselwort DEFAULT
    DEFAULT bezeichnet den für die Spalte als Vorschlagswert (DEFAULT) verwendeten Wert.
  • Schlüsselwort STAMP
    Das Datenbanksystem ist in der Lage, eindeutige Werte zu generieren. Es handelt sich dabei um eine fortlaufende Nummer, die bei X'000000000001' beginnt. Die Werte werden aufsteigend vergeben, wobei nicht sichergestellt werden kann, daß eine Folge von Werten lückenlos ist. Das Schlüsselwort STAMP liefert den nächsten vom Datenbanksystem generierten Wert.
    Das Schlüsselwort STAMP kann in der     INSERT-Anweisung oder in der UPDATE-Anweisung verwendet werden, allerdings nur auf Spalten vom Datentyp CHAR(n) BYTE mit n>=8 ( default_spec ).
    Wenn der Anwender den generierten Wert erfahren möchte, bevor er auf eine Spalte angewandt wird, muß folgende SQL-Anweisung verwendet werden:
     NEXT STAMP-Anweisung

Siehe auch:

SET INSERT-Bedingung

SET UPDATE-Bedingung


SET INSERT-Klausel (set_insert_clause) (MaxDB: Referenzhandbuch)

SET INSERT-Klausel (set_insert_clause)

SET INSERT-Klausel ( set_insert_clause )

Syntax

<set_insert_clause> ::= <column_name> = <extended_value_spec>

column_name , extended_value_spec

Erläuterung

SQL-Anweisung, in der die SET INSERT-Klausel verwendet wird:

INSERT-Anweisung


UPDATE-Anweisung (update_statement) (MaxDB: Referenzhandbuch)

UPDATE-Anweisung (update_statement)

Die UPDATE-Anweisung ( update_statement ) ändert Spaltenwerte in Tabellenzeilen.

Syntax

<update_statement> ::=
  UPDATE [OF] <table_name> [<reference_name>] SET <set_update_clause>,... [KEY <key_spec>,...] [WHERE <search_condition>]
| UPDATE [OF] <table_name> [<reference_name>] (<column_name>,...) VALUES (<extended_value_spec>,...) [KEY <key_spec>,...] [WHERE <search_condition>]
| UPDATE [OF] <table_name> [<reference_name>] SET <set_update_clause>,... WHERE CURRENT OF <result_table_name>
| UPDATE [OF] <table_name> [<reference_name>] (<column_name>,...) VALUES (<extended_value_spec>,...) WHERE CURRENT OF <result_table_name>

table_name , reference_name , set_update_clause , key_spec , search_condition , column_name , extended_value_spec , result_table_name

Erläuterung

Der Tabellenname muß eine existierende Basistabelle, View-Tabelle (siehe Tabelle ) oder ein Synonym identifizieren.

Die Spalten, deren Werte geändert werden sollen, heißen Zielspalten. Nach Angabe des Tabellennamens und gegebenenfalls des Referenznamens werden eine oder mehrere Zielspalten und neue Werte für diese Spalten angegeben.

  • Alle Zielspalten müssen Spalten der angegebenen Tabelle identifizieren, und jede Zielspalte darf nur einmal aufgeführt werden.
  • Die Anzahl der angegebenen Spezifikationen von Werten ( extended_value_spec ) muß der Anzahl der Zielspalten entsprechen. Der i-ten Zielspalte ist die i-te Spezifikation eines Wertes zugeordnet.
  • Der aktuelle Benutzer muß das UPDATE-Privileg für jede Zielspalte der angegebenen Tabelle besitzen.
    Falls der Tabellenname eine Viewtabelle identifiziert, ist es möglich, daß selbst der Eigentümer der Viewtabelle keine Spaltenwerte ändern kann, weil die Viewtabelle nicht änderbar ist.
  • Wenn die angegebene Tabelle eine Viewtabelle ist, werden nur Spaltenwerte von Zeilen von Basistabellen geändert, die der Viewtabelle zugrundeliegen. Die Zielspalten der angegebenen Tabelle korrespondieren in diesem Fall mit Spalten der Basistabellen, die der Viewtabelle zugrundeliegen. Im folgenden identifiziert der Begriff Zielspalte immer die korrespondierende Spalte der Basistabelle.

Datentyp der Zielspalte und Datentyp des einzufügenden Wertes

Welche Zeilen der angegebenen Tabelle geändert werden, wird durch eine der folgende Angaben festgelegt:

  • Optionale Folge von Schlüsselspezifikation und optionale Suchbedingung
    Schlüsselspezifikation und keine Suchbedingung: Es existiert eine Zeile mit den angegebenen Schlüsselwerten. Den Zielspalten dieser Zeile werden die korrespondierenden Werte zugewiesen. Wenn keine Zeile mit den angegebenen Schlüsselwerten existiert, wird keine Zeile geändert.
    Schlüsselspezifikation und eine Suchbedingung: Es existiert eine Zeile mit den angegebenen Schlüsselwerten. Die Suchbedingung wird auf diese Zeile angewendet. Wenn die Suchbedingung erfüllt ist, werden den Zielspalten dieser Zeile die korrespondierenden Werte zugewiesen. Wenn keine Zeile mit den angegebenen Schlüsselwerten existiert oder eine auf eine Zeile angewandte Suchbedingung nicht erfüllt ist, wird keine Zeile geändert.
    Keine Schlüsselspezifikation und eine Suchbedingung: Die Suchbedingung wird auf jede Zeile der angegebenen Tabelle angewendet. In allen Zeilen, die die Suchbedingung erfüllen, werden den Zielspalten die korrespondierenden Werte zugewiesen.
  • Bei Verwendung von CURRENT OF, d.h. bei Angabe der Cursorposition innerhalb der Ergebnistabelle ( result_table_name ): Wenn der Cursor nicht auf einer Zeile der Ergebnistabelle steht, wird keine Zeile geändert.
  • Wurde keine der oben genannten möglichen Angaben vorgenommen, werden alle Zeilen der angegebenen Tabelle geändert.
  • Wenn keine Zeile gefunden wird, die die durch die optionalen Klauseln definierten Bedingungen erfüllt, erscheint folgende Rückmeldung: 100 Zeile nicht gefunden

Auch Werte von Schlüsselspalten, die von einem Benutzer bei einer CREATE TABLE-Anweisung oder einer ALTER TABLE-Anweisung definiert wurden, können verändert werden. Die gegebenenfalls implizit angelegte Schlüsselspalte SYSKEY kann nicht verändert werden.

Wenn der Tabellenname eine Join-View-Tabelle (siehe CREATE VIEW-Anweisung ) angibt, können Spalten existieren, die nur in Kombination mit anderen Spalten geändert werden können (Ermitteln der Spaltenkombination für eine Spalte einer Join-Viewtabelle ) Um den Spaltenwert der entsprechenden Spalte zu ändern, muß für alle Spalten der Spaltenkombination ein Wert angegeben werden. Dies gilt für alle Zielspalten, für die eine der folgenden Bedingungen gilt:

  • Die Zielspalten liegen in einer Basistabelle, die nicht Schlüsseltabelle der Join-View-Tabelle ist und die nicht in einer 1:1-Beziehung zur Schlüsseltabelle der Join-View-Tabelle steht.
  • Die Zielspalten sind Fremdschlüsselspalten einer für die Join-View-Tabelle relevanten referentiellen CONSTRAINT-Definition .

CURRENT OF

Wenn CURRENT OF angegeben ist, muß der Tabellenname in der FROM-Klausel der QUERY-Anweisung, mit der die Ergebnistabelle ( result_table_name ) aufgebaut wurde, mit dem Tabellennamen in der UPDATE-Anweisung übereinstimmen.

Wenn CURRENT OF angegeben ist, und der Cursor auf einer Zeile der Ergebnistabelle steht, werden den Zielspalten der korrespondierenden Zeile die korrespondierenden Werte zugewiesen. Korrespondierend ist die Zeile aus der in der FROM-Klausel der QUERY-Anweisung angegebenen Tabelle, aus der die Zeile der Ergebnistabelle gebildet wurde. Voraussetzung dafür ist jedoch, daß die Ergebnistabelle mit FOR UPDATE spezifiziert wurde. Es kann keine Aussage darüber getroffen werden, ob die Änderung in der korrespondierenden Zeile beim nächsten Zugriff auf die gleiche Zeile der Ergebnistabelle sichtbar ist oder nicht.

Gründe für das Scheitern der UPDATE-Anweisung

Wenn für Basistabellen, in denen durch die UPDATE-Anweisung Zeilen geändert wurden, CONSTRAINT-Definition en existieren, wird für jede geänderte Zeile geprüft, ob sie die CONSTRAINT-Definitionen erfüllt. Ist dies für mindestens eine geänderte Zeile nicht der Fall, scheitert die UPDATE-Anweisung.

Für jede Zeile, in der durch die UPDATE-Anweisung der Wert von Fremdschlüsselspalten geändert wurde, wird geprüft, ob der jeweils resultierende Fremdschlüssel als Schlüssel bzw. als Wert eines mit UNIQUE definierten Index (siehe CREATE INDEX-Anweisung ) in der korrespondierenden referenzierten Tabelle ( referenced_table ) existiert. Ist dies für mindestens eine geänderte Zeile der Fall, scheitert die UPDATE-Anweisung.

Für jede Zeile, in der durch die UPDATE-Anweisung der Wert einer referenzierten Spalte ( referenced_column ) einer referentiellen CONSTRAINT-Definition geändert werden soll, wird geprüft, ob Zeilen in der korrespondierenden Fremdschlüsseltabelle existieren, die die noch unveränderten Spaltenwerte als Fremdschlüssel enthalten. Ist dies für mindestens eine Zeile der Fall, scheitert die UPDATE-Anweisung.

Wenn für Basistabellen, in denen durch die UPDATE-Anweisung Zeilen geändert werden, Trigger definiert wurden, die nach einer UPDATE -Anweisung auszuführen sind, so werden diese ausgeführt. Scheitert einer dieser Trigger, scheitert die UPDATE -Anweisung.

Weitere Informationen

Spalten mit dem Datentyp LONG kann durch die UPDATE-Anweisung nur über einen Parameter oder durch Angabe von NULL ein Wert zugewiesen werden. Deshalb ist die Zuweisung von Werten an LONG-Spalten nur mit einigen Datenbankwerkzeugen möglich.

Bei der UPDATE-Anweisung wird der dritte Eintrag von SQLERRD in der SQLCA mit der Anzahl der geänderten Zeilen belegt. Dabei gilt eine Zeile auch dann als geändert, wenn der alte Wert mit einem gleichen neuen Wert überschrieben wurde.

Treten beim Ändern von Zeilen Fehler auf, scheitert die UPDATE-Anweisung und hinterläßt eine unveränderte Tabelle.


SET UPDATE-Klausel (set_update_clause) (MaxDB: Referenzhandbuch)

SET UPDATE-Klausel (set_update_clause)

SET UPDATE-Klausel ( set_update_clause )

Syntax

<set_update_clause> ::= <column_name> = <extended_expression>
| <column_name>,... = (<extended_expression>,...)
| (<column_name>,...) = (<extended_expression>,...)
| <column_name> = <subquery>
| (<column_name>,...) = <subquery>

column_name , extended_expression , subquery

Erläuterung

Der Ausdruck ( expression ) einer SET UPDATE-Klausel darf keine Set-Funktion ( set_function_spec ) enthalten.

Die Subquery muß eine Ergebnistabelle liefern, die höchstens eine Zeile enthält, und aus so vielen Spalten besteht wie Zielspalten angegeben sind.

SQL-Anweisung, in der die SET UPDATE-Klausel verwendet wird:

UPDATE-Anweisung


Spaltenkombination für eine gegebene Spalte einer Join-View-Tabe (MaxDB: Referenzhandbuch)

Spaltenkombination für eine gegebene Spalte einer Join-View-Tabelle

Um die Kombination von Spalten für eine gegebene Spalte v einer Join-View-Tabelle V zu ermitteln, gehen Sie wie folgt vor:

  1. Bestimmen Sie die Basistabelle Tj, in der die Spalte liegt, mit der v korrespondiert.
  2. Bestimmen Sie die eindeutige Tabellenfolge Til...Tik, in der Tj liegt.
  3. Bestimmen Sie die letzte Tabelle Til dieser Folge, die zur Schlüsseltabelle in einer 1:1-Beziehung steht.
  4. Die Spalten von V, die mit den Fremdschlüsselspalten von Til der für V relevanten referentiellen CONSTRAINT-Definition (referential_constraint_definition) zwischen Til und Til+l korrespondieren, sind Elemente der Spaltenkombination.
  5. Alle Spalten von V, die mit Spalten der Tabellen Til+l...Tik korrespondieren, sind Element der Spaltenkombination.

Um den Spaltenwert der Spalte v in einer UPDATE-Anweisung zu ändern, muß für alle Spalten der Spaltenkombination ein Wert spezifiziert werden.


DELETE-Anweisung (delete_statement) (MaxDB: Referenzhandbuch)

DELETE-Anweisung (delete_statement)

Die DELETE-Anweisung ( delete_statement ) löscht Zeilen einer Tabelle.

Syntax

<delete_statement> ::=
  DELETE [FROM] <table_name> [<reference_name>] [KEY <key_spec>,...] [WHERE <search_condition>]
| DELETE [FROM] <table_name> [<reference_name>] WHERE CURRENT OF <result_table_name>

table_name , reference_name , key_spec , search_condition , result_table_name

Erläuterung

Der Tabellenname muß eine existierende Basistabelle, View-Tabelle (siehe Tabelle ) oder ein Synonym identifizieren.

Der aktuelle Benutzer muß das DELETE-Privileg für die angegebene Tabelle besitzen. Falls der angegebene Tabellenname eine View-Tabelle identifiziert, ist es möglich, daß selbst der Eigentümer der View-Tabelle das DELETE-Privileg nicht besitzt, weil die View-Tabelle nicht änderbar ist.

Tabellenname identifiziert eine View-Tabelle: Die Zeilen der Basistabellen werden gelöscht, die der View-Tabelle zugrundeliegen.

Tabellenname identifiziert eine Join-View-Tabelle: Es werden nur folgende Zeilen gelöscht:

  • Zeilen in der Schlüsseltabelle der Join-View-Tabelle
  • Zeilen in Basistabellen, die der View-Tabelle zugrundeliegen und in einer 1:1-Beziehung zur Schlüsseltabelle stehen.

Welche Zeilen der angegebenen Tabelle gelöscht werden, wird durch eine der folgende Angaben festgelegt:

  • Optionale Folge von Schlüsselspezifikation en und optionale Suchedingung
    Schlüsselspezifikation und keine Suchbedingung: Es existiert eine Zeile mit den angegebenen Schlüsselwerten. Diese Zeile wird gelöscht. Wenn keine Zeile mit den angegebenen Schlüsselwerten existiert, wird keine Zeile gelöscht.
    Schlüsselspezifikation und eine Suchbedingung: Es existiert eine Zeile mit den angegebenen Schlüsselwerten. Die Suchbedingung wird auf diese Zeile angewendet. Wenn die Suchbedingung erfüllt ist, wird die Zeile gelöscht. Wenn keine Zeile mit den angegebenen Schlüsselwerten existiert oder eine auf eine Zeile angewandte Suchbedingung nicht erfüllt ist, wird keine Zeile gelöscht.
    Keine Schlüsselspezifikation und eine Suchbedingung: Die Suchbedingung wird auf jede Zeile der angegebenen Tabelle angewendet. Alle Zeilen, die die Suchbedingung erfüllen, werden gelöscht.
  • Bei Verwendung von CURRENT OF, d.h. bei Angabe der Cursorposition innerhalb der Ergebnistabelle ( result_table_name ): Wenn der Cursor nicht auf einer Zeile der Ergebnistabelle steht, wird keine Zeile gelöscht.
  • Wurde keine der oben genannten möglichen Angaben vorgenommen, werden alle Zeilen der angegebenen Tabelle gelöscht.
  • Wenn keine Zeile gefunden wird, die die durch die optionalen Klauseln definierten Bedingungen erfüllt, erscheint folgende Rückmeldung: 100 Zeile nicht gefunden

CURRENT OF

Wenn CURRENT OF angegeben ist, muß der Tabellenname in der FROM-Klausel der QUERY-Anweisung, mit der die Ergebnistabelle ( result_table_name ) aufgebaut wurde, mit dem Tabellennamen in der DELETE-Anweisung übereinstimmen.

Wenn CURRENT OF angegeben ist, und der Cursor auf einer Zeile der Ergebnistabelle steht, wird die korrespondierende Zeile gelöscht. Korrespondierend ist die Zeile aus der in der FROM-Klausel der QUERY-Anweisung angegebenen Tabelle, aus der die Zeile der Ergebnistabelle gebildet wurde. Voraussetzung dafür ist jedoch, daß die Ergebnistabelle mit FOR UPDATE spezifiziert wurde. Der Cursor steht anschließend hinter der Zeile der Ergebnistabelle. Es kann keine Aussage darüber getroffen werden, ob die Änderung in der korrespondierenden Zeile beim nächsten Zugriff auf die gleiche Zeile der Ergebnistabelle sichtbar ist oder nicht.

DELETE-Regel

Für jede im Verlauf der DELETE-Anweisung gelöschte Zeile, die aus einer referenzierten Tabelle ( referenced_table ) mindestens einer referentiellen CONSTRAINT-Definition stammt, wird in Abhängigkeit von der DELETE-Regel der referentiellen CONSTRAINT-Definition eine der folgenden Aktionen durchgeführt:

  • DELETE CASCADE: Alle Trefferzeilen in der korrespondierenden Fremdschlüsseltabelle werden gelöscht.
  • DELETE RESTRICT: Falls es Trefferzeilen in der korrespondierenden Fremdschlüsseltabelle gibt, scheitert die DELETE-Anweisung.
  • DELETE SET NULL: In allen Trefferzeilen der korrespondierenden Fremdschlüsseltabelle werden die entsprechenden Fremdschlüsselspalten mit dem NULL-Wert belegt.
  • DELETE SET DEFAULT: In allen Trefferzeilen der korrespondierenden Fremdschlüsseltabelle werden die entsprechenden Fremdschlüsselspalten mit dem DEFAULT-Wert, der durch Angabe einer DEFAULT-Spezifikation gesetzt wurde, belegt.

Trigger

Wenn für Basistabellen, aus denen durch die DELETE-Anweisung Zeilen gelöscht werden, Trigger definiert wurden, die nach einer DELETE -Anweisung auszuführen sind, so werden diese ausgeführt. Scheitert einer dieser Trigger, scheitert die DELETE -Anweisung.

Weitere Informationen

Bei der DELETE-Anweisung wird der dritte Eintrag von SQLERRD in der SQLCA mit der Anzahl der gelöschten Zeilen belegt. Wenn dieser Zähler den Wert -1 hat, wurde ein großer Teil oder die vollständige Tabelle durch diese DELETE-Anweisung gelöscht.

Treten im Verlauf der DELETE-Anweisung Fehler auf, scheitert die Anweisung und die Tabelle bleibt unverändert.


NEXT STAMP-Anweisung (next_stamp_statement) (MaxDB: Referenzhandbuch)

NEXT STAMP-Anweisung (next_stamp_statement)

Die NEXT STAMP-Anweisung ( next_stamp_statement ) liefert einen vom Datenbanksystem generierten eindeutigen Schlüssel.

Syntax

<next_stamp_statement> ::= NEXT STAMP [INTO] <parameter_name>

parameter_name

Erläuterung

Das Datenbanksystem ist in der Lage, eindeutige Werte zu generieren. Es handelt sich dabei um eine fortlaufende Nummer, die bei X'0000000000001' beginnt. Die Werte werden aufsteigend vergeben, wobei nicht sichergestellt werden kann, daß eine Folge von Werten lückenlos ist. Diese Werte können in einer Spalte vom Datentyp CHAR (n) BYTE mit n>=8 abgelegt werden.

Die NEXT STAMP-Anweisung weist den nächsten vom Datenbanksystem generierten Wert der mit parameter_name bezeichneten Variablen zu.

Die NEXT STAMP-Anweisung kann nur in eine Programmiersprache eingebettet werden, sie kann nicht im interaktiven Betrieb verwendet werden.

In einer INSERT-Anweisung oder einer UPDATE-Anweisung kann ebenfalls das Schlüsselwort STAMP verwendet werden, wenn der nächste Wert durch das Datenbanksystem generiert und in einer Spalte abgelegt werden soll, ohne daß der Anwender diesen Wert kennt.


CALL-Anweisung (call_statement) (MaxDB: Referenzhandbuch)

CALL-Anweisung (call_statement)

Die CALL-Anweisung (call_statement) bewirkt die Ausführung einer Datenbankprozedur.

Syntax

<call_statement> ::= CALL <dbproc_name> [(<expression>,...)] [WITH COMMIT]

dbproc_name, expression

Erläuterung

Der angegebene Name der Datenbankprozedur muss eine existierende Datenbankprozedur identifizieren.

Der aktuelle Benutzer muss das EXECUTE-Privileg für die Datenbankprozedur besitzen.

Die Anzahl der Ausdrücke (expression) muss der Anzahl der formalen Parameter der Datenbankprozedur entsprechen.

Der Datentyp des i-ten Ausdrucks muss mit dem Datentyp des i-ten formalen Parameters der Datenbankprozedur verträglich sein.

Wenn der i-te formale Parameter der Datenbankprozedur den Modus OUT oder INOUT besitzt (siehe CREATE DBPROC-Anweisung), muss der korrespondierende Ausdruck einer Parameterspezifikation entsprechen.

WITH COMMIT

Bei Angabe von WITH COMMIT wird nach der fehlerfreien Ausführung der Datenbankprozedur die aktuelle Transaktionen mit COMMIT abgeschlossen. Wenn die Ausführung der Datenbankprozedur scheitert, wird die aktuelle Transaktion mit ROLLBACK abgebrochen.


Datenanfrage (MaxDB: Referenzhandbuch)

Datenanfrage

In den folgenden Abschnitten wird die vom Datenbanksystem verwendete Anfragesprache (auch als Abfragesprache oder Sprache zum Datenretrieval bezeichnet) vorgestellt.

SQL-Anweisungen zur Datenanfrage

QUERY-Anweisung | SINGLE SELECT-Anweisung | EXPLAIN-Anweisung
OPEN CURSOR-Anweisung | FETCH-Anweisung | CLOSE-Anweisung


QUERY-Anweisung (query_statement) (MaxDB: Referenzhandbuch)

QUERY-Anweisung (query_statement)

Eine QUERY-Anweisung ( query_statement ) spezifiziert eine gegebenenfalls geordnete Ergebnistabelle (siehe Ergebnistabellenname ). Es gibt vier verschiedene Grundtypen für die Formulierung einer QUERY-Anweisung.

Syntax

<query_statement> ::= <declare_cursor_statement> | <recursive_declare_cursor_statement>
| <named_select_statement> | <select_statement>

declare_cursor_statement , recursive_declare_cursor_statement , named_select_statement , select_statement

Erläuterung

Durch eine QUERY-Anweisung wird eine benannte oder unbenannte Ergebnistabelle ( Benannte/Unbenannte Ergebnistabelle ) erzeugt.

Folgende QUERY-Anweisungen werden unterschieden:

Grundtypen einer QUERY-Anweisung |
DECLARE CURSOR-Anweisung | Eine benannte Ergebnistabelle wird definiert. Das Erzeugen der Tabelle erfolgt mit einer OPEN CURSOR-Anweisung .
Rekursive DECLARE CURSOR-Anweisung | Mit dieser Anweisung können Stücklisten erzeugt werden.
SELECT-Anweisung ( named_select_statement ) | Eine benannte Ergebnistabelle wird definiert und gleichzeitig erzeugt.
SELECT-Anweisung ( select_statement ) | Eine unbenannte Ergebnistabelle wird definiert und gleichzeitig erzeugt.

Für die SELECT-Anweisung ( named_select_statement ) und die SELECT-Anweisung ( select_statement ) gelten sowohl die Regeln, die für die DECLARE CURSOR-Anweisung angegeben werden, als auch die Regeln, die für die OPEN CURSOR-Anweisung angegeben werden.

Die Reihenfolge der Zeilen in der Ergebnistabelle hängt von der systeminternen Suchstrategie ab und ist nicht vorhersehbar. Der einzig sichere Weg, eine Sortierung der Ergebniszeilen zu erhalten, besteht in der Angabe einer ORDER-Klausel .

Änderbare Ergebnistabelle

Eine Ergebnistabelle bzw. die ihr zugrundeliegenden Basistabellen sind änderbar, wenn die QUERY-Anweisung folgende Bedingungen erfüllt:

  • siehe Abschnitt "Änderbare Ergebnistabelle" in SELECT-Anweisung (named_select_statement) bzw. SELECT-Anweisung (select_statement)
  • Die Ergebnistabelle ist eine benannte Ergebnistabelle, d.h. sie darf nicht durch eine SELECT-Anweisung ( select_statement ) erzeugt worden sein.


Benannte/Unbenannte Ergebnistabelle (MaxDB: Referenzhandbuch)

Benannte/Unbenannte Ergebnistabelle

Der Unterschied zwischen einer benannten und einer unbenannten Ergebnistabelle (siehe Ergebnistabellenname ) ist der, dass die unbenannte Ergebnistabelle nicht in einer FROM-Klausel oder im CURRENT OF <result_table_name> einer nachfolgenden SQL-Anweisung angegeben werden kann.

QUERY-Anweisung |
DECLARE CURSOR-Anweisung (declare_cursor_statement) | Es wird eine benannte Ergebnistabelle erzeugt. Die Spaltennamen einer durch diese QUERY-Anweisung definierten Ergebnistabelle müssen nicht eindeutig sein.
SELECT-Anweisung (select_statement) | Es wird eine unbenannte Ergebnistabelle erzeugt. Die Spaltennamen einer durch diese QUERY-Anweisung definierten Ergebnistabelle müssen nicht eindeutig sein.
SELECT-Anweisung (named_select_statement) | Es wird eine benannte Ergebnistabelle erzeugt. Die Spaltennamen einer durch diese QUERY-Anweisung erzeugten Ergebnistabelle müssen eindeutig sein.


DECLARE CURSOR-Anweisung (declare_cursor_statement) (MaxDB: Referenzhandbuch)

DECLARE CURSOR-Anweisung (declare_cursor_statement)

Durch die DECLARE CURSOR-Anweisung ( declare_cursor_statement ) wird eine benannte Ergebnistabelle (siehe benannte/unbenannte Ergebnistabelle ) mit dem Namen result_table_name definiert.

Syntax

<declare_cursor_statement> ::= DECLARE <result_table_name> CURSOR FOR <select_statement>

result_table_name , select_statement

Erläuterung

Um die mit einer DECLARE CURSOR-Anweisung definierte Ergebnistabelle tatsächlich zu erzeugen, ist eine OPEN CURSOR-Anweisung mit dem Namen dieser Ergebnistabelle notwendig.

Siehe auch:

SELECT-Anweisung (select_statement)


Rekursive DECLARE CURSOR-Anweisung (recursive_declare_cursor_sta (MaxDB: Referenzhandbuch)

Rekursive DECLARE CURSOR-Anweisung (recursive_declare_cursor_statement)

Mit Hilfe der rekursiven DECLARE CURSOR-Anweisung ( recursive_declare_cursor_statement ) ist es möglich, Stücklisten mittels eines Befehls zu erhalten.

Syntax

<recursive_declare_cursor_statement> ::= DECLARE <result_table_name> CURSOR FOR
WITH RECURSIVE <reference_name> (<alias_name>,...) AS
(<initial_select> UNION ALL <recursive_select>) <final_select>

<initial_select> ::= <query_spec>
<recursive_select> ::= <query_spec>
<final_select> ::= <select_statement>

result_table_name , reference_name , alias_name , query_spec , select_statement

DECLARE C CURSOR FOR
WITH RECURSIVE PX (MAJOR, MINOR, NUMBER, MAINMAJOR) AS
  (SELECT W,X,Y,W FROM T WHERE W = 'aaa' UNION ALL
   SELECT W,X,Y,MAINMAJOR FROM T, PX WHERE MINOR = T.W)
 SELECT MAINMAJOR,MINOR,NUMBER FROM PX ORDER BY NUMBER

Erläuterung

  • Die QUERY-Spezifikation initial_select wird ausgeführt und das Ergebnis in eine temporäre Ergebnistabelle eingetragen, deren Name durch die Angabe des Referenznamens ( reference_name ) festgelegt ist. Die darin enthaltenen Spaltennamen erhalten die Namen aus der Liste der Alias-Namen. Die Anzahl von Ausgabespalten in der QUERY-Spezifikation muß mit der Anzal von Alias-Namen übereinstimmen.
  • Die QUERY-Spezifikation recursive_select sollte aus einer SELECT-Anweisung bestehen, die mindestens einmal den Referenznamen in der FROM-Klausel und mindestens ein JOIN-Prädikat zwischen dieser und einer anderen Tabelle aus der FROM-Klausel enthält.
    Die QUERY-Spezifikation     recursive_select wird so lange wiederholt, bis diese kein Ergebnis mehr liefert. Die jeweiligen Ergebnisse werden (logisch) in die temporäre Ergebnistabelle eingetragen, deren Name durch den Referenznamen definiert ist. Diese Tabelle wird immer mehr erweitert. Es ist aber sichergestellt, daß beim n+1-ten Ausführen nur noch die Ergebnisse der n-ten Ausführung verwendet werden, um eine Endlosschleife zu vermeiden.
  • Die SELECT-Anweisung final_select darf nur einen QUERY-Ausdruck enthalten, der aus einer QUERY-Spezifikation besteht.
    Es handelt sich um eine SELECT-Anweisung über die Tabelle mit dem angegebenen Referenznamen, in der folgende Elemente verwendet werden können:     Set-Funktionsname n, GROUP-Klausel , HAVING-Klausel , ORDER-Klausel , LOCK-Option

Wenn vor der Ausführung der rekursiven DECLARE CURSOR-Anweisung ein Ergebnistabellenname mit dem angegebenen Referenznamen existierte, so wird der entsprechende Cursor implizit geschlossen.


SELECT-Anweisung (named_select_statement) (MaxDB: Referenzhandbuch)

SELECT-Anweisung (named_select_statement)

Durch eine SELECT-Anweisung (named_select_statement) wird eine Ergebnistabelle mit dem Namen result_table_name definiert und gleichzeitig erzeugt (siehe benannte/unbenannte Ergebnistabelle ).

Syntax

<named_select_statement> ::= <named_query_expression>
[<order_clause>] [<update_clause>] [<lock_option>] [FOR REUSE]

named_query_expression , order_clause , update_clause , lock_option

Erläuterung

Eine OPEN CURSOR-Anweisung ist für eine mit dieser SELECT-Anweisung erzeugte Ergebnistabelle nicht zulässig.

Für die SELECT-Anweisung (named_select_statement) gelten sowohl die Regeln, die für die DECLARE CURSOR-Anweisung angegeben werden, als auch die Regeln, die für die OPEN CURSOR-Anweisung angegeben werden.

Je nach Suchstrategie wird die Suche nach allen Zeilen der Ergebnistabelle bei der Ausführung der SELECT-Anweisung (named_select_statement) durchgeführt und die Ergebnistabelle physisch erzeugt oder jeweils die nächste Zeile der Ergebnistabelle bei der Ausführung einer FETCH-Anweisung gesucht und nicht physisch gespeichert. Dies ist beim Zeitverhalten von FETCH-Anweisungen zu berücksichtigen.

Änderbare Ergebnistabelle

Eine Ergebnistabelle bzw. die ihr zugrundeliegenden Basistabellen sind änderbar, wenn die QUERY-Anweisung folgende Bedingungen erfüllt:

  • Der QUERY-Ausdruck (named_query_expression) darf nur aus einer QUERY-Spezifikation (named_query_spec) bestehen.
  • In der FROM-Klausel der QUERY-Spezifikation (named_query_spec) darf nur eine Basistabelle oder eine änderbare View-Tabelle angegeben worden sein.
  • Es darf nicht das Schlüsselwort DISTINCT (siehe DISTINCT-Spezifikation ), eine GROUP-Klausel oder HAVING-Klausel angegeben werden.
  • Ausdrücke dürfen keine Set-Funktion (set_function_spec) enthalten.
  • Siehe auch Abschnitt "Änderbare Ergebnistabelle" in QUERY-Anweisung .

ORDER-Klausel

Die ORDER-Klausel spezifiziert eine Sortierreihenfolge für eine Ergebnistabelle.

UPDATE-Klausel

Die Angabe einer UPDATE-Klausel ist nur bei änderbaren Ergebnistabellen erlaubt. Bei änderbaren Ergebnistabellen entspricht ein Standpunkt in der Ergebnistabelle immer einem Standpunkt in den zugrundeliegenden Tabellen und damit letzlich einem Standpunkt in einer oder mehreren Basistabellen.

Wenn eine UPDATE-Klausel angegeben wurde, können die Basistabellen mit Hilfe des Standpunktes in der Ergebnistabelle (Angabe von CURRENT OF <result_table_name>) durch eine UPDATE-Anweisung oder eine DELETE-Anweisung geändert werden. Es kann mit Hilfe einer LOCK-Anweisung eine Sperre für die betroffene Zeile jeder betroffenen Basistabelle angefordert werden.

LOCK-Option

Die LOCK-Option bestimmt, welche Sperren auf die gelesenen Zeilen gesetzt werden.

FOR REUSE

Soll die Ergebnistabelle in einer nachfolgenden QUERY-Anweisung in der FROM-Klausel angegeben werden, so sollte diese Ergebnistabelle mit den Schlüsselwörtern FOR REUSE angegeben werden. Wenn FOR REUSE nicht angegeben ist, hängt die Wiederverwendbarkeit der Ergebnistabelle von systeminternen Strategien ab.

Da die Angabe von FOR REUSE die Antwortzeiten einiger QUERY-Anweisungen verschlechtert, sollte FOR REUSE nur angegeben werden, wenn es für die Wiederverwendbarkeit der Ergebnistabelle notwendig ist.

Siehe auch:

SELECT-Anweisung (select_statement)


SELECT-Anweisung (select_statement) (MaxDB: Referenzhandbuch)

SELECT-Anweisung (select_statement)

Durch eine SELECT-Anweisung (select_statement) wird eine unbenannte Ergebnistabelle definiert und gleichzeitig erzeugt (siehe benannte/unbenannte Ergebnistabelle ).

Syntax

<select_statement> ::= <query_expression> [<order_clause>] [<update_clause>] [<lock_option>] [FOR REUSE]

query_expression , order_clause , update_clause , lock_option

Erläuterung

Eine OPEN CURSOR-Anweisung ist für eine mit dieser SELECT-Anweisung erzeugte Ergebnistabelle nicht zulässig.

Für die SELECT-Anweisung (select_statement) gelten sowohl die Regeln, die für die DECLARE CURSOR-Anweisung angegeben werden, als auch die Regeln, die für die OPEN CURSOR-Anweisung angegeben werden.

Je nach Suchstrategie wird die Suche nach allen Zeilen der Ergebnistabelle bei der Ausführung der SELECT-Anweisung (select_statement) durchgeführt und die Ergebnistabelle physisch erzeugt oder jeweils die nächste Zeile der Ergebnistabelle bei der Ausführung einer FETCH-Anweisung gesucht und nicht physisch gespeichert. Dies ist beim Zeitverhalten von FETCH-Anweisungen zu berücksichtigen.

Änderbare Ergebnistabelle

Eine Ergebnistabelle bzw. die ihr zugrundeliegenden Basistabellen sind änderbar, wenn die QUERY-Anweisung folgende Bedingungen erfüllt:

  • Die QUERY-Anweisung besteht aus einer DECLARE CURSOR-Anweisung.
  • Der QUERY-Ausdruck (query_expression) darf nur aus einer QUERY-Spezifikation (query_spec) bestehen.
  • In der FROM-Klausel der QUERY-Spezifikation (query_spec) darf nur eine Basistabelle oder eine änderbare View-Tabelle angegeben worden sein.
  • Es darf nicht das Schlüsselwort DISTINCT (siehe DISTINCT-Spezifikation ), eine GROUP-Klausel oder HAVING-Klausel angegeben werden.
  • Ausdrücke dürfen keine Set-Funktion (set_function_spec) enthalten.
  • Siehe auch Abschnitt "Änderbare Ergebnistabelle" in QUERY-Anweisung .

ORDER-Klausel

Die ORDER-Klausel spezifiziert eine Sortierreihenfolge für eine Ergebnistabelle.

UPDATE-Klausel

Die Angabe einer UPDATE-Klausel ist nur bei änderbaren Ergebnistabellen erlaubt. Bei änderbaren Ergebnistabellen entspricht ein Standpunkt in der Ergebnistabelle immer einem Standpunkt in den zugrundeliegenden Tabellen und damit letzlich einem Standpunkt in einer oder mehreren Basistabellen.

Wenn eine UPDATE-Klausel angegeben wurde, können die Basistabellen mit Hilfe des Standpunktes in der Ergebnistabelle (Angabe von CURRENT OF <result_table_name>) durch eine UPDATE-Anweisung oder eine DELETE-Anweisung geändert werden. Es kann mit Hilfe einer LOCK-Anweisung eine Sperre für die betroffene Zeile jeder betroffenen Basistabelle angefordert werden.

LOCK-Option

Die LOCK-Option bestimmt, welche Sperren auf die gelesenen Zeilen gesetzt werden.

FOR REUSE

Soll die Ergebnistabelle in einer nachfolgenden QUERY-Anweisung in der FROM-Klausel angegeben werden, so sollte diese Ergebnistabelle mit den Schlüsselwörtern FOR REUSE angegeben werden. Wenn FOR REUSE nicht angegeben ist, hängt die Wiederverwendbarkeit der Ergebnistabelle von systeminternen Strategien ab.

Da die Angabe von FOR REUSE die Antwortzeiten einiger QUERY-Anweisungen verschlechtert, sollte FOR REUSE nur angegeben werden, wenn es für die Wiederverwendbarkeit der Ergebnistabelle notwendig ist.

Siehe auch:

SELECT-Anweisung (named_select_statement)


QUERY-Ausdruck (query_expression) (MaxDB: Referenzhandbuch)

QUERY-Ausdruck (query_expression)

Um eine ungeordnete Ergebnistabelle in einer SELECT-Anweisung (select_statement) zu erzeugen, ist die Angabe eines QUERY-Ausdrucks (query_expression) erforderlich.

Syntax

<query_expression> ::= <query_term> | <query_expression> UNION [ALL] <query_term> | <query_expression> EXCEPT [ALL] <query_term>

query_term

Erläuterung

Besteht der QUERY-Ausdruck nur aus einer QUERY-Spezifikation (query_spec) (Angabe erfolgt in query_term), so ist das Ergebnis des QUERY-Ausdrucks das unveränderte Ergebnis der QUERY-Spezifikation.

Besteht der QUERY-Ausdruck aus mehr als einer QUERY-Spezifikation, muss die Anzahl der selektierten Spalten in allen QUERY-Spezifikationen des QUERY-Ausdrucks gleich sein. Die jeweils i-ten selektierten Spalten der QUERY-Spezfikationen müssen vergleichbar sein.

Spaltenart (select_column) |
Numerische Spalten | Sind untereinander vergleichbar. Sind alle i-ten selektierten Spalten numerische Spalten, so ist die i-te Spalte der Ergebnistabelle eine numerische Spalte.
Alphanumerische Spalten, Codeattribut BYTE | Sind untereinander vergleichbar.
Alphanumerische Spalten, Codeattribut ASCII, UNICODE | Sind untereinander vergleichbar. Sind auch vergleichbar mit Datums-, Zeit- und Zeitstempelwerten.
Alle i-ten Spalten sind Datumswerte | i-te Spalte der Ergebnistabelle ist Datumswert
Alle i-ten Spalten sind Zeitwerte | i-te Spalte der Ergebnistabelle ist Zeitwert
Alle i-ten Spalten sind Zeitstempelwerte | i-te Spalte der Ergebnistabelle ist Zeitstempelwert
Spalten vom Typ BOOLEAN | Sind untereinander vergleichbar.
Alle i-ten Spalten sind vom Typ BOOLEAN | i-te Spalte der Ergebnistabelle ist vom Typ BOOLEAN
Spalten von beliebigem anderen Datentyp (nicht weiter oben genannt) | i-te Spalte der Ergebnistabelle ist eine alphanumerische Spalte. Vergleichbare Spalten mit unterschiedlichen Code-Attributen werden konvertiert.

Sind Spalten vergleichbar, haben aber unterschiedliche Längen, so hat die korrespondierende Spalte der Ergebnistabelle die maximale Länge der zugrundeliegenden Spalten.

Namen der Spalten in der Ergebnistabelle

Die Namen der Spalten der Ergebnistabelle werden durch die Namen der selektierten Spalten der ersten QUERY-Spezifikation gebildet.

Sei T1 der linke Operand von UNION, EXCEPT oder INTERSECT (definiert in query_term). T2 sei der rechte Operand. R sei das Ergebnis der Operation T1 und T2.

· Eine Zeile ist ein Duplikat einer anderen Zeile, wenn beide in jeder Spalte identische Werte aufweisen. NULL-Werte gelten dabei als identisch. Spezial-NULL-Werte gelten als identisch.

· UNION: R enthält alle Zeilen aus T1 und T2.

· EXCEPT: R enthält alle Zeilen aus T1, die keine Duplikatzeile in T2 besitzen.

· INTERSECT: R enthält alle Zeilen aus T1, die eine Duplikatzeile in T2 besitzen. Eine Zeile aus T2 kann nur Duplikatzeile genau einer Zeile aus T1 sein. Mehrere Zeilen aus T1 können nicht dieselbe Duplikatzeile in T2 besitzen.

· Ist ALL nicht spezifiziert, so wird für die zu T1 und T2 gehörenden QUERY-Ausdrücke jeweils implizit DISTINCT angenommen. Aus R werden alle Duplikatzeilen entfernt.

Bei fehlender Klammerung wird INTERSECT vor UNION und EXCEPT ausgewertet. UNION und EXCEPT haben gleiche Priorität und werden bei fehlender Klammerung von links nach rechts ausgewertet.


QUERY-Term (query_term) (MaxDB: Referenzhandbuch)

QUERY-Term (query_term)

Ein QUERY-Term ( query_term ) ist Teil der Syntax in einem QUERY-Ausdruck ( query_expression bzw. named_query_expression ).

Syntax

<query_term> ::= <query_primary> | <query_term> INTERSECT [ALL] <query_primary>

<query_primary> ::= <query_spec> | (<query_expression>)

query_spec , query_expression

Erläuterung

Siehe QUERY-Ausdruck (query_expression) bzw. QUERY-Ausdruck (named_query_expression)


QUERY-Ausdruck (named_query_expression) (MaxDB: Referenzhandbuch)

QUERY-Ausdruck (named_query_expression)

Um eine ungeordnete Ergebnistabelle in einer SELECT-Anweisung (named_select_statement) zu erzeugen, ist die Angabe eines QUERY-Ausdrucks (named_query_expression) erforderlich.

Syntax

<named_query_expression> ::= <named_query_term> | <named_query_expression> UNION [ALL] <query_term> | <named_query_expression> EXCEPT [ALL] <query_term>

named_query_term, query_term

Erläuterung

Besteht ein QUERY-Ausdruck aus mehr als einer QUERY-Spezifikation (query_spec) (Angabe erfolgt in named_query_term bzw. in query_term), so darf nur die erste QUERY-Spezifikation des QUERY-Ausdrucks eine QUERY-Spezifikation (named_query_spec) sein.

Besteht der QUERY-Ausdruck nur aus einer QUERY-Spezifikation (named_query_spec) (Angabe erfolgt in named_query_term), so ist das Ergebnis des QUERY-Ausdrucks das unveränderte Ergebnis der QUERY-Spezifikation.

Besteht der QUERY-Ausdruck aus mehr als einer QUERY-Spezifikation, muss die Anzahl der selektierten Spalten in allen QUERY-Spezifikationen des QUERY-Ausdrucks gleich sein. Die jeweils i-ten selektierten Spalten der QUERY-Spezfikationen müssen vergleichbar sein.

Spaltenart (select_column) |
Numerische Spalten | Sind untereinander vergleichbar. Sind alle i-ten selektierten Spalten numerische Spalten, so ist die i-te Spalte der Ergebnistabelle eine numerische Spalte.
Alphanumerische Spalten, Codeattribut BYTE | Sind untereinander vergleichbar.
Alphanumerische Spalten, Codeattribut ASCII, UNICODE | Sind untereinander vergleichbar. Sind auch vergleichbar mit Datums-, Zeit- und Zeitstempelwerten.
Alle i-ten Spalten sind Datumswerte | i-te Spalte der Ergebnistabelle ist Datumswert
Alle i-ten Spalten sind Zeitwerte | i-te Spalte der Ergebnistabelle ist Zeitwert
Alle i-ten Spalten sind Zeitstempelwerte | i-te Spalte der Ergebnistabelle ist Zeitstempelwert
Spalten vom Typ BOOLEAN | Sind untereinander vergleichbar.
Alle i-ten Spalten sind vom Typ BOOLEAN | i-te Spalte der Ergebnistabelle ist vom Typ BOOLEAN
Spalten von beliebigem anderen Datentyp (nicht weiter oben genannt) | i-te Spalte der Ergebnistabelle ist eine alphanumerische Spalte. Vergleichbare Spalten mit unterschiedlichen Code-Attributen werden konvertiert.

Sind Spalten vergleichbar, haben aber unterschiedliche Längen, so hat die korrespondierende Spalte der Ergebnistabelle die maximale Länge der zugrundeliegenden Spalten.

Namen der Spalten in der Ergebnistabelle

Die Namen der Spalten der Ergebnistabelle werden durch die Namen der selektierten Spalten der ersten QUERY-Spezifikation gebildet.

Sei T1 der linke Operand von UNION, EXCEPT oder INTERSECT (definiert in named_query_term). T2 sei der rechte Operand. R sei das Ergebnis der Operation T1 und T2.

· Eine Zeile ist ein Duplikat einer anderen Zeile, wenn beide in jeder Spalte identische Werte aufweisen. NULL-Werte gelten dabei als identisch. Spezial-NULL-Werte gelten als identisch.

· UNION: R enthält alle Zeilen aus T1 und T2.

· EXCEPT: R enthält alle Zeilen aus T1, die keine Duplikatzeile in T2 besitzen.

· INTERSECT: R enthält alle Zeilen aus T1, die eine Duplikatzeile in T2 besitzen. Eine Zeile aus T2 kann nur Duplikatzeile genau einer Zeile aus T1 sein. Mehrere Zeilen aus T1 können nicht dieselbe Duplikatzeile in T2 besitzen.

· Ist ALL nicht spezifiziert, so wird für die zu T1 und T2 gehörenden QUERY-Ausdrücke jeweils implizit DISTINCT angenommen. Aus R werden alle Duplikatzeilen entfernt.

Bei fehlender Klammerung wird INTERSECT vor UNION und EXCEPT ausgewertet. UNION und EXCEPT haben gleiche Priorität und werden bei fehlender Klammerung von links nach rechts ausgewertet.


QUERY-Term (named_query_term) (MaxDB: Referenzhandbuch)

QUERY-Term (named_query_term)

Ein QUERY-Term ( named_query_term ) ist Teil der Syntax in einem QUERY-Ausdruck ( named_query_expression ).

Syntax

<named_query_term> ::= <named_query_primary> | <named_query_term> INTERSECT [ALL] <query_primary>

<named_query_primary> ::= <named_query_spec> | (<named_query_expression>)
<query_primary> ::= <query_spec> | (<query_expression>)

named_query_spec , named_query_expression , query_spec , query_expression

Erläuterung

Siehe QUERY-Ausdruck (named_query_expression)


QUERY-Spezifikation (query_spec) (MaxDB: Referenzhandbuch)

QUERY-Spezifikation (query_spec)

Um eine ungeordnete Ergebnistabelle in einer SELECT-Anweisung (select_statement) zu erzeugen, ist die Angabe einer QUERY-Spezifikation ( query_spec ) erforderlich. Eine QUERY-Spezifikation ist Teil der Syntax in einem QUERY-Term (query_term) bzw. QUERY-Term (named_query_term) .

Syntax

<query_spec> ::= SELECT [<distinct_spec>] <select_column>,... <table_expression>

distinct_spec , select_column , table_expression

Erläuterung

Eine QUERY-Spezifikation spezifiziert eine Ergebnistabelle. Diese wird aus einer Zwischenergebnistabelle erzeugt. Die Zwischenergebnistabelle ist das Ergebnis des Tabellenausdrucks .


DISTINCT-Spezifikation (distinct_spec) (MaxDB: Referenzhandbuch)

DISTINCT-Spezifikation (distinct_spec)

Die DISTINCT-Spezifikation (distinct_spec) wird in einer QUERY-Spezifikation (query_spec) oder einer QUERY-Spezifikation (named_query_spec) oder in einer SINGLE SELECT-Anweisung angegeben, um Duplikatzeilen zu entfernen.

Syntax

<distinct_spec> ::= DISTINCT | ALL

Erläuterung

Eine Zeile ist ein Duplikat einer anderen Zeile, wenn beide in jeder Spalte identische Werte aufweisen. NULL-Werte gelten dabei als identisch, ebenso Spezial-NULL-Werte .

DISTINCT: Aus der Ergebnistabelle werden alle Duplikatzeilen entfernt.

ALL: Aus der Ergebnistabelle werden keine Duplikatzeilen entfernt.

Wird keine DISTINCT-Spezifikation angegeben, werden keine Duplikatzeilen aus der Ergebnistabelle entfernt.


Selektierte Spalte (select_column) (MaxDB: Referenzhandbuch)

Selektierte Spalte (select_column)

Selektierte Spalten (select_column) müssen in einer QUERY-Spezifikation (query_spec) bzw. in einer QUERY-Spezifikation (named_query_spec) angegeben werden, um eine Ergebnistabelle zu spezifizieren.

Die Folge von selektierten Spalten definiert die Spalten der Ergebnistabelle. Die Spalten der Ergebnistabelle ergeben sich aus den Spalten der Zwischenergebnistabelle, gegebenenfalls ergänzt durch ROWNO-Spalten (rowno_column) bzw. STAMP-Spalten (stamp_column). Die Spalten der Zwischenergebnistabelle werden durch die FROM-Klausel des Tabellenausdrucks bestimmt. Die Reihenfolge der Spaltennamen der Zwischenergebnistabelle wird durch die Reihenfolge der Tabellennamen in der FROM-Klausel bestimmt.

Syntax

<select_column> ::= <table_columns> | <derived_column> | <rowno_column> | <stamp_column>

<table_columns> ::= * | <table_name>.* | <reference_name>.*
<derived_column> ::= <expression> [ [AS] <result_column_name>] | <result_column_name> = <expression>
<rowno_column> ::= ROWNO [<result_column_name>] | <result_column_name> = ROWNO
<stamp_column> ::= STAMP [<result_column_name>] | <result_column_name> = STAMP

<result_column_name> ::= <identifier>
 table_name , reference_name , expression , identifier

Erläuterung

Jeder als selektierte Spalte (select_column) angegebene Spaltenname muß eindeutig eine Spalte einer der QUERY-Spezifikation (query_spec) zugrundeliegenden Tabellen bezeichnen. Gegebenenfalls ist der Spaltenname durch den Tabellennamen zu qualifizieren.

Die Angabe einer Spalte des Datentyps LONG in einer selektierten Spalte ist nur in der obersten Folge von selektierten Spalten in einer QUERY-Anweisung oder SINGLE SELECT-Anweisung zulässig, wenn dort nicht die DISTINCT-Spezifikation verwendet wurde.

Die Angabe einer Spalte des Datentyps LONG in einer selektierten Spalte ist nur in der obersten Folge von selektierten Spalten in einer CREATE VIEW-Anweisung , der genau eine Basistabelle zugrundeliegt, zulässig.

Wenn eine selektierte Spalte eine Set-Funktion (set_function_spec) enthält, darf die Folge der selektierten Spalten, zu der sie gehört, keine Tabellenspalten (table_columns) enthalten, und jeder in einem Ausdruck (expression) auftretende Spaltenname muß eine Gruppierspalte bezeichnen, oder der Ausdruck muß sich aus Gruppierspalten zusammensetzen.

Die Angabe skalarer Subqueries ist möglich.

  • Die Angabe von Tabellenspalten (table_columns) in einer selektierten Spalte ist ein Abkürzung für die Angabe der Spalten der Ergebnistabelle.
    • Wird nur eine selektierte Spalte der Art * angegeben, so ist das eine Abkürzung für die Angabe aller Spalten der Zwischenergebnistabelle in unveränderter Reihenfolge.
      Spalten, für die der Benutzer nicht das SELECT-Privileg hat, und die implizit angelegte Spalte SYSKEY werden nicht übernommen.
    • Die Angabe von <table_name>.* oder <reference_name>.* ist eine Abkürzung für die Angabe aller Spalten der zugrundeliegenden Tabelle. Der erste Spaltenname der Ergebnistabelle wird vom ersten Spaltennamen der zugrundeliegenden Tabelle übernommen, der zweite Spaltenname der Ergebnistabelle entspricht dem zweiten Spaltennamen der zugrundeliegenden Tabelle, usw. Die Reihenfolge der Spaltennamen der zugrundeliegenden Tabelle entspricht der bei der Definition der zugrundeliegenden Tabelle festgelegten Reihenfolge.
      Spalten, für die der Benutzer nicht das SELECT-Privileg hat, und die implizit angelegte Spalte SYSKEY werden nicht übernommen.
  • Die Angabe von derived_column in einer selektierten Spalte definiert eine Spalte der Ergebnistabelle. Wenn eine Spalte der Ergebnistabelle die Form <expression> [AS] <result_column_name> oder die Form <result_column_name> = <expression> hat, erhält diese Ergebnisspalte den Namen result_column_name.
    Wenn kein     <result_column_name> angegeben ist und der Ausdruck (expression) eine Spaltenspezifikation ist, die eine Spalte der Zwischenergebnistabelle bezeichnet, erhält die Spalte der Ergebnistabelle den Spaltennamen der Zwischenergebnistabelle.
    Wenn kein     <result_column_name> angegeben ist und der Ausdruck keine Spaltenspezifikation ist, erhält die Spalte den Namen EXPRESSION_, wobei "_" eine maximal dreistellige Zahl bedeutet, beginnend mit EXPRESSION1, EXPRESSION2, usw.
  • Eine ROWNO-Spalte (rowno_column) darf nur in einer selektierten Spalte spezifiziert werden, die zu einer QUERY-Anweisung gehört.
    Bei Angabe einer ROWNO-Spalte wird eine Spalte vom Datentyp     FIXED (10) mit dem Namen ROWNO erzeugt. Sie enthält die Werte 1, 2, 3,..., welche eine Numerierung der Zeilen der Ergebnistabelle darstellen.
    Wenn die ROWNO-Spalte in der Form     ROWNO <result_column_name> oder in der Form <result_column_name> = ROWNO angegeben wurde, erhält diese Ergebnisspalte den Namen result_column_name.
    Über eine ROWNO-Spalte darf nicht mittels ORDER BY sortiert werden.
  • Eine STAMP-Spalte (stamp_column) darf nur in einer selektierten Spalte spezifiziert werden, die zu einem QUERY-Ausdruck (query_expression) einer INSERT-Anweisung gehört.
    Das Datenbanksystem ist in der Lage, eindeutige Werte zu generieren. Dabei handelt es sich um eine fortlaufende Nummer, die bei X'000000000001' beginnt. Die Werte werden aufsteigend vergeben, wobei nicht sichergestellt werden kann, daß eine Folge von Werten lückenlos ist.
    Die Angabe einer STAMP-Spalte liefert pro Zeile der Zwischenergebnistabelle den nächsten vom Datenbanksystem generierten Wert vom Datentyp     CHAR (8) BYTE.

Jede Spalte einer Ergebnistabelle hat den gleichen Datentyp, die gleiche Länge, die gleiche Genauigkeit und die gleiche Anzahl von Nachkommastellen wie die derived_column oder die zugrundeliegende Spalte der Tabellenspalten (table_columns).

Für die Datentypen DATE und TIMESTAMP trifft dies nicht zu. Um die Darstellung jedes Datums- und Zeitformats zu ermöglichen, wird die Länge der Spalte der Ergebnistabelle auf die maximal notwendige Länge zur Darstellung eines Datumswert es (Länge 10) bzw. eines Zeitstempelwert es (Länge 26) gesetzt.


QUERY-Spezifikation (named_query_spec) (MaxDB: Referenzhandbuch)

QUERY-Spezifikation (named_query_spec)

Um eine ungeordnete Ergebnistabelle in einer SELECT-Anweisung (named_select_statement) zu erzeugen, ist die Angabe einer QUERY-Spezifikation ( named_query_spec ) erforderlich. Eine QUERY-Spezifikation ist Teil der Syntax in einem QUERY-Term (named_query_term) .

Syntax

<named_query_spec> ::= SELECT [<distinct_spec>] <result_table_name> (<select_column>,...) <table_expression>

distinct_spec , result_table_name , select_column , table_expression

Erläuterung

Eine QUERY-Spezifikation spezifiziert eine Ergebnistabelle mit dem Namen result_table_name . Diese wird aus einer Zwischenergebnistabelle erzeugt. Die Zwischenergebnistabelle ist das Ergebnis des Tabellenausdrucks .


Tabellenausdruck (table_expression) (MaxDB: Referenzhandbuch)

Tabellenausdruck (table_expression)

Ein Tabellenausdruck ( table_expression ) spezifiziert eine einfache oder eine gruppierte Ergebnistabelle (siehe Ergebnistabellenname ).

Syntax

<table_expression> ::= <from_clause> [<where_clause>] [<group_clause>] [<having_clause>]

from_clause , where_clause , group_clause , having_clause

Erläuterung

Ein Tabellenausdruck liefert eine Zwischenergebnistabelle. Wenn alle optionalen Klauseln fehlen, ist diese Zwischenergebnistabelle die von der FROM-Klausel gelieferte Ergebnistabelle. Sonst wird jede angegebene Klausel auf das Ergebnis der vorherigen Bedingung angewendet, und die Tabelle ist das Ergebnis der Anwendung der letzten spezifizierten Klausel. Die Zwischenergebnistabelle enthält alle Spalten aller in der FROM-Klausel aufgeführten Tabellen.

Die Reihenfolge der GROUP-Klausel und der HAVING-Klausel ist beliebig.


FROM-Klausel (from_clause) (MaxDB: Referenzhandbuch)

FROM-Klausel (from_clause)

Eine FROM-Klausel ( from_clause ) spezifiziert in einem Tabellenausdruck eine Tabelle, die aus einer Tabelle oder mehreren Tabellen gebildet wird.

Syntax

<from_clause> ::= FROM <from_table_spec>,...

from_table_spec

Erläuterung

Die FROM-Klausel spezifiziert eine Tabelle. Diese Tabelle kann aus mehreren Basis-, View-und Ergebnistabellen (siehe Tabelle ) abgeleitet werden. Die Anzahl der zugrundeliegenden Tabellen einer FROM-Klausel ist die Summe der zugrundeliegenden Tabellen jeder FROM TABLE-Spezifikation ( from_table_spec ). Die Anzahl der zugrundeliegenden Tabellen einer FROM-Klausel darf höchstens 64 sein.

Der Benutzer muß das SELECT-Privileg für jede angegebene Tabelle oder für wenigstens eine Spalte der angegebenen Tabelle besitzen.

Das Ergebnis einer FROM-Klausel ist eine Tabelle, die aus den angegebenen Tabellen im Prinzip wie folgt erzeugt wird:

  • Wenn die FROM-Klausel aus einer einzigen FROM TABLE-Spezifikation besteht, ist das Ergebnis die angegebene Tabelle.
  • Wenn die FROM-Klausel mehr als eine FROM TABLE-Spezifikation enthält, wird eine Ergebnistabelle gebildet, die aus allen möglichen Kombinationen aller Zeilen der ersten Tabelle mit allen Zeilen der zweiten Tabelle usw. besteht. Im mathematischen Sinn wird also das kartesische Produkt sämtlicher Tabellen gebildet.

Diese Regel beschreibt die Wirkung der FROM-Klausel, nicht deren tatsächliche Implementierung.


FROM TABLE-Spezifikation (from_table_spec) (MaxDB: Referenzhandbuch)

FROM TABLE-Spezifikation (from_table_spec)

Jede FROM TABLE-Spezifikation (from_table_spec) in einer FROM-Klausel spezifiziert keinen, einen oder beliebig viele Tabellenbezeichner.

Syntax

<from_table_spec> ::= <table_name> [AS] [<reference_name>]
| <result_table_name> [AS] [<reference_name>]
| (<query_expression>) [AS] [<reference_name>]
| <joined_table>

table_name, reference_name, result_table_name, query_expression, joined_table

Erläuterung

Referenzname (reference_name)

Wenn eine FROM TABLE-Spezifikation keinen Referenznamen enthält, ist der Tabellenname (table_name) bzw. der Ergebnistabellenname (result_table_name) der Tabellenbezeichner.

Wenn eine FROM TABLE-Spezifikation einen Referenznamen enthält, ist der Referenzname der Tabellenbezeichner.

Jeder Referenzname muss sich von jedem Bezeichner, der einen Tabellennamen angibt, unterscheiden. Wenn ein Ergebnistabellenname ein Tabellenbezeichner ist, darf es keinen Tabellenbezeichner <table_name> der Form [<owner.]<result_table_name> geben (<owner> (Eigentümer) ist der aktuelle Benutzer). Jeder Tabellenbezeichner muss sich von jedem anderen Tabellenbezeichner unterscheiden.

Der Gültigkeitsbereich der Tabellenbezeichner ist die ganze QUERY-Spezifikation, innerhalb der die FROM TABLE-Spezifikation verwendet wird. Wenn innerhalb der QUERY-Spezifikation Spaltennamen qualifiziert werden sollen, muß das mit den Tabellenbezeichnern geschehen.

Referenznamen sind unbedingt nötig für die Formulierung von JOIN-Bedingungen einer Tabelle mit sich selbst. Zum Beispiel wird durch FROM HOTEL, HOTEL X ein Referenzname X für das zweite Auftreten der Tabelle HOTEL definiert. Darüber hinaus sind Referenznamen manchmal nötig für die Formulierung von Correlated Subqueries. Außerdem ist ein Referenzname notwendig, wenn nur durch die Angabe des Referenznamens eine Spalte des Ergebnisses des QUERY-Ausdrucks eindeutig bezeichnet werden kann.

Anzahl der zugrundeliegenden Tabellen

Wenn eine FROM TABLE-Spezifikation eine Basistabelle, eine Ergebnistabelle oder das Ergebnis eines QUERY-Ausdrucks bezeichnet, ist die Anzahl der zugrundeliegenden Tabellen dieser FROM TABLE-Spezifikation gleich 1.

Wenn eine FROM TABLE-Spezifikation eine komplexe View-Tabelle bezeichnet, ist die Anzahl der zugrundeliegenden Tabellen dieser FROM TABLE-Spezifikation gleich 1.

Wenn eine FROM TABLE-Spezifikation eine View-Tabelle bezeichnet, die keine komplexe View-Tabelle ist, ist die Anzahl der zugrundeliegenden Tabellen gleich der Anzahl der zugrundeliegenden Tabellen der FROM-Bedingung der View-Tabelle.

Wenn eine FROM TABLE-Spezifikation eine JOINED TABLE (joined_table) bezeichnet, ist die Anzahl der zugrundeliegenden Tabellen dieser FROM TABLE-Spezifikation die Summe der zugrundeliegenden Tabellen der in ihr enthaltenen FROM TABLE-Spezifikationen.

QUERY-Ausdruck (query_expression)

Eine FROM TABLE-Spezifikation, in der ein QUERY-Ausdruck (query_expression) enthalten ist, spezifiziert nur dann einen Tabellenbezeichner, wenn ein Referenzname (reference_name) angegeben ist.

Enthält eine FROM TABLE-Spezifikation einen QUERY-Ausdruck, so wird eine Ergebnistabelle gebildet, die diesem QUERY-Ausdruck entspricht. Diese Ergebnistabelle erhält einen systeminternen Namen, der weder mit einer unbenannten noch einer benannten Ergebnistabelle kollidiert. Während der Bearbeitung der FROM-Bedingung wird das Ergebnis des QUERY-Ausdrucks wie eine benannte Ergebnistabelle verwendet und nach der Bearbeitung implizit gelöscht.

Ein Tabellenausdruck, in dem mindestens ein OUTER JOIN-Indikator (siehe JOIN-Prädikat) oder OUTER JOIN TYPE (LEFT | RIGHT | FULL) (siehe joined_table) angegeben wird, ist strengen Restriktionen unterworfen, wenn mehr als zwei Tabellen zugrundeliegen sollen. Daher ist die Verwendung eines QUERY-Ausdrucks häufig notwendig für die Formulierung einer QUERY-Spezifikation, der mindestens drei Tabellen zugrundeliegen sollen und in der mindestens ein OUTER JOIN-Indikator in einem JOIN-Prädikat verwendet wird.

JOINED TABLE (joined_table)

Eine FROM TABLE-Spezifikation, in der ein JOINED TABLE (joined_table) enthalten ist, spezifiziert so viele Tabellenbezeichner wie durch die in ihr enthaltenen FROM TABLE-Spezifikationen angegeben sind.


Join-Tabelle (joined_table) (MaxDB: Referenzhandbuch)

Join-Tabelle (joined_table)

Die Angabe einer Join-Tabelle (joined_table) ist ein möglicher Bestandteil einer FROM TABLE-Spezifikation (from_table_spec).

Syntax

<joined_table> ::=
<from_table_spec> CROSS JOIN <from_table_spec>
| <from_table_spec> [INNER] JOIN <from_table_spec> <join_spec>
| <from_table_spec> [<LEFT|RIGHT|FULL> [OUTER]] JOIN <from_table_spec> <join_spec>

<join_spec> ::= ON <search_condition>

from_table_spec, search_condition

Erläuterung

Besteht eine FROM TABLE-Spezifikation aus einer Join-Tabelle, so wird das Ergebnis wie folgt erzeugt:

Sei FT1 die Menge aller Zeilen der Tabelle, die durch die erste FROM TABLE-Spezifikation angegeben wird. FT2 sei die Menge aller Zeilen der Tabelle, die durch die zweite FROM TABLE-Spezifikation angegeben wird.

· Wenn die Join-Tabelle als CROSS JOIN angegeben ist, wird eine Tabelle erzeugt, die aus allen möglichen Kombinationen von FT1 und FT2 besteht. Es wird also im mathematischen Sinn das kartesische Produkt beider Tabellen gebildet.

· Wenn die Join-Tabelle mit dem Schlüsselwort JOIN ohne Angabe der optionalen Schlüsselwörter INNER, LEFT, RIGHT, FULL oder OUTER angegeben wird, so wird als Join-Typ INNER angenommen.

Sei T die Menge von Ergebniszeilen, die aus allen möglichen Kombinationen von FT1 und FT2 besteht und für die gilt, dass jede Ergebniszeile die JOIN-Spezifikation (join_spec) erfüllt.

· Wenn die Join-Tabelle mit dem Join-Typ INNER angegeben wird, ist das Ergebnis die Menge T.

· Wenn die Join-Tabelle mit dem Join-Typ LEFT angegeben wird, ist das Ergebnis die Menge T ergänzt um jene Zeilen aus FT1, die nicht in T eingegangen sind. Die nicht aus FT1 gebildeten Ergebnisspalten erhalten den NULL-Wert.

· Wenn die Join-Tabelle mit dem Join-Typ RIGHT angegeben wird, ist das Ergebnis die Menge T ergänzt um jene Zeilen aus FT2, die nicht in T eingegangen sind. Die nicht aus FT2 gebildeten Ergebnisspalten erhalten den NULL-Wert.

· Wenn Join-Tabelle mit dem Join-Typ FULL angegeben wird, ist das Ergebnis die Menge T ergänzt um jene Zeilen, die durch die Join-Typen LEFT und RIGHT hinzugefügt werden.

Für die JOIN-Spezifikation (join_spec) ON <search_condition> gelten die für die WHERE-Bedingung angegebenen Regeln mit der Einschränkung, dass keine Verknüpfungen mit dem booleschen Operator OR zugelassen sind.


WHERE-Klausel (where_clause) (MaxDB: Referenzhandbuch)

WHERE-Klausel (where_clause)

Die WHERE-Klausel (where_clause) gibt die Bedingungen für das Bilden einer Ergebnistabelle an.

Syntax

<where_clause> ::= WHERE <search_condition>

search_condition

Erläuterung

Die Suchbedingung (search_condition) wird auf jede Zeile der durch die FROM-Klausel gebildeten Zwischenergebnistabelle angewendet. Das Ergebnis der WHERE-Klausel ist eine Tabelle, die nur noch diejenigen Zeilen der Ergebnistabelle enthält, für die die Suchbedingung wahr ist.

Die Suchbedingung darf nur Spaltenspezifikationen enthalten, auf die der Benutzer das SELECT-Privileg hat.

Jede direkt in der Suchbedingung enthaltene Spaltenspezifikation muss eindeutig eine Spalte aus den in der FROM-Klausel des Tabellenausdrucks angegebenen Tabellen bezeichnen. Gegebenenfalls ist der Spaltenname durch den Tabellenbezeichner zu qualifizieren. Wenn in der FROM-Klausel für Tabellennamen Referenznamen (reference_name) definiert wurden, sind die Referenznamen als Tabellenbezeichner in der Suchbedingung zu verwenden.

Ein in der Suchbedingung enthaltener Ausdruck (expression) darf bis auf folgende Ausnahme keine Set-Funktion (set_function_spec) enthalten:

SELECT ... FROM uppertab,...
HAVING ... (SELECT ...
                  WHERE MIN(uppertab, ...)...
           )

Die SELECT-Anweisung in der angegebenen Form ist erlaubt.

In der in einer HAVING-Klausel verwendeten Subquery ist es möglich, WHERE-Klauseln zu verwenden, die Set-Funktionen für die Spalten der in der SELECT … HAVING-Anweisung angegebenen Tabelle enthalten (Correlated Subquery).

Im Fall einer Correlated Subquery kann eine Spaltenspezifikation eine Spalte einer Tabelle bezeichnen, die in einer FROM-Klausel eines anderen Tabellenausdrucks der QUERY-Spezifikation angegeben wurde.

Jede Subquery in der Suchbedingung wird in der Regel nur einmal ausgewertet. Im Fall einer Correlated Subquery wird die Subquery für jede Zeile der durch die FROM-Klausel gebildeten Ergebnistabelle ausgeführt.


GROUP-Klausel (group_clause) (MaxDB: Referenzhandbuch)

GROUP-Klausel (group_clause)

Die GROUP-Klausel (group_clause) gibt eine Gruppierung einer Ergebnistabelle an.

Syntax

<group_clause> ::= GROUP BY <expression>,...

expression

Erläuterung

Jeder in der GROUP-Klausel angegebene Spaltenname muss einen result_column_name in den selektierten Spalten der QUERY-Spezifikation bezeichnen oder eindeutig eine Spalte aus den der QUERY-Spezifikation zugrundeliegenden Tabellen bezeichnen. Gegebenenfalls ist der Spaltenname mit dem Tabellenbezeichner zu qualifizieren.

Die GROUP-Klausel erlaubt die Anwendung der Funktionen SUM, AVG, MAX/MIN, COUNT, STDDEV und VARIANCE nicht nur für ganze Ergebnistabellen, sondern für Gruppen von Zeilen innerhalb einer Ergebnistabelle. Dabei wird eine Gruppe durch die in GROUP BY angegebenen Gruppierspalten definiert. Alle Zeilen einer Gruppe haben in den Gruppierspalten dieselben Werte. Zeilen, die in einer Gruppierspalte den NULL-Wert enthalten, werden zu einer Gruppe zusammengefaßt. Dasselbe gilt für den Spezial-NULL-Wert.

Die Verwendung von GROUP BY führt dazu, dass für jede Gruppe eine Zeile in der Ergebnistabelle gebildet wird. Die selektierten Spalten in der QUERY-Spezifikation dürfen deshalb nur die Gruppierspalten, Operationen auf den Gruppierspalten und Ausdrücke(expression) enthalten, in denen die Funktionen SUM, AVG, MAX/MIN, COUNT, STDDEV und VARIANCE verwendet werden.

Wenn es keine Zeile gibt, die die in der WHERE-Klausel angegebenen Bedingungen erfüllt, und eine GROUP-Klausel angegeben wurde, ist die Ergebnistabelle leer.

In einer GROUP-Klausel ist die Angabe skalarer Subqueries nicht erlaubt.

Siehe auch:

Technische Spezifikationen


HAVING-Klausel (having_clause) (MaxDB: Referenzhandbuch)

HAVING-Klausel (having_clause)

Die HAVING-Klausel ( having_clause ) spezifiziert die Eigenschaften einer Gruppe.

Syntax

<having_clause> ::= HAVING <search_condition>

search_condition

Erläuterung

Jeder in der Suchbedingung ( search_condition ) auftretende Ausdruck (expression) , der nicht im Argument einer Set-Funktion (set_function_spec) auftritt, muß eine Gruppierspalte bezeichnen.

Wenn die HAVING-Klausel ohne GROUP-Klausel angewendet wird, wird die bisher gebildete Ergebnistablle als eine Gruppe betrachtet.

Die Suchbedingung wird auf jede Gruppe der Ergebnistabelle angewendet. Das Ergebnis der HAVING-Klausel ist eine Tabelle, die nur noch die Gruppen enthält, für die die Suchbedingung wahr ist.


Subquery (subquery) (MaxDB: Referenzhandbuch)

Subquery (subquery)

Eine Subquery (subquery) spezifiziert eine Ergebnistabelle (siehe Ergebnistabellenname ), die in bestimmten Prädikaten und beim Ändern von Spaltenwerten verwendet werden kann.

Syntax

<subquery> ::= (<query_expression>)

query_expression

Erläuterung

Subqueries können in einer SET UPDATE-Bedingung einer UPDATE-Anweisung verwendet werden. In diesem Fall darf die Subquery nur eine Ergebnistabelle, die höchstens eine Zeile enthält, bilden.

Subqueries können in einer INSERT-Anweisung verwendet werden ( INSERT-Anweisung (insert_statement) ).

In folgenden Prädikaten können Subqueries verwendet werden:

Vergleichsprädikat
EXISTS-Prädikat
IN-Prädikat
Mengenvergleichsprädikat

Siehe auch:

Skalare Subquery

Correlated Subquery


Correlated Subquery (MaxDB: Referenzhandbuch)

Correlated Subquery

Gewisse Prädikate können Subqueries enthalten. Diese Subqueries können wiederum Subqueries enthalten, usw. Eine Subquery, die Subqueries enthält, ist von höherer Stufe als die in ihr enthaltenen Subqueries.

· In der Suchbedingung einer Subquery dürfen Spaltennamen auftreten, die zu Tabellen gehören, die in höheren Stufen in der FROM-Klausel enthalten sind. Eine Subquery dieser Art heißt Correlated Subquery.

· Tabellen, die in dieser Weise in Subqueries verwendet werden, werden als Correlated Tables bezeichnet. Mehr als 16 Correlated Tables sind in einer SQL-Anweisung nicht zulässig.

· Spalten, die derart in Subqueries verwendet werden, heißen Correlated Columns. Ihre Anzahl in einer SQL-Anweisung ist auf 64 beschränkt.

Wenn der qualifizierende Tabellen- oder Referenzname nicht eindeutig eine Tabelle höherer Stufe bezeichnet, wird unter diesen nicht eindeutigen Tabellen die Tabelle niedrigster Stufe genommen.

Wird der Spaltenname nicht durch den Tabellennamen oder den Referenznamen qualifiziert, wird in den Tabellen höherer Stufen gesucht. Der Spaltenname muß dann in allen Tabellen der FROM-Klausel, zu der die gefundene Tabelle gehört, eindeutig sein.

Wird eine Correlated Subquery verwendet, gehen die Werte einer oder mehrerer Spalten einer Zwischenergebniszeile einer höheren Stufe in die Suchbedingung einer Subquery niederer Stufe ein, wobei das Ergebnis der Subquery für die endgültige Qualifikation der Zwischenergebniszeile der höheren Stufe verwendet wird.

Beispieltabellen hotel und room.
Zu jedem Ort sind alle Hotelnamen gesucht, deren Einzelzimmerpreise unter den Durchschnittspreisen des jeweiligen Ortes liegen.

SELECT name, city FROM hotel X, room

WHERE X.hno = room.hno AND room.roomtype = 'SINGLE' AND room.price <

(SELECT AVG(room.price) FROM hotel, room

WHERE hotel.hno = room.hno AND hotel.city = X.city AND room.roomtype = 'SINGLE' )

Name | City
Eight Avenue | Los Angeles
Sunshine | Los Angeles
Atlantic | New York


Skalare Subquery (scalar_subquery) (MaxDB: Referenzhandbuch)

Skalare Subquery (scalar_subquery)

Eine skalare Subquery (scalar_subquery) ist eine spezielle Subquery.

Syntax

<scalar_subquery> ::= <subquery>

subquery

Erläuterung

Skalare Subqueries entstehen durch Einschränkung der Ergebnismenge einer Ergebnistabelle auf höchstens einen Wert.

Skalare Subqueries können als Ausdruck (expression) (siehe factor) verwendet werden.

Skalare Subqueries sind nicht in einer GROUP- oder ORDER-Klausel erlaubt.

Skalare Subquery in der Liste der einzufügenden Werte in einer INSERT-Anweisung für die Tabelle hotel:

INSERT hotel VALUES((SELECT MAX(hno)+10 FROM hotel), 'Three Seasons', 90014, 'Los Angeles', '247 Broad Street')

Skalare Subquery in einer selektierten Spalte:

SELECT hno, price, (SELECT MIN(price) FROM room) FROM room


ORDER-Klausel (order_clause) (MaxDB: Referenzhandbuch)

ORDER-Klausel (order_clause)

Die ORDER-Klausel (order_clause) spezifiziert eine Sortierreihenfolge für eine Ergebnistabelle.

Syntax

<order_clause> ::= ORDER BY <sort_spec>,...

<sort_spec> ::= <unsigned_integer> [ASC | DESC] | <expression> [ASC | DESC]

unsigned_integer, expression

Erläuterung

Die in der ORDER-Klausel angegebenen Sortierspalten legen die Reihenfolge der Sortierkriterien fest.

Eine in der Sortierspezifikation (sort_spec) angegebene Zahl n identifiziert die n-te Spalte der Ergebnistabelle. n muss kleiner oder gleich der Anzahl der Spalten der Ergebnistabelle sein.

In einer ORDER-Klausel sind skalare Subqueries nicht erlaubt.

ASC/DESC

ASC: Die Sortierung erfolgt nach aufsteigenden Werten.

DESC: Die Sortierung erfolgt nach absteigenden Werten.

keine Angabe: Es wird ASC angenommen.

Weitere Informationen

Besteht ein QUERY-Ausdruck aus mehr als einer QUERY-Spezifikation, so ist die Angabe einer Sortierspezifikation nur in der Form <unsigned_integer> [ASC | DESC]zulässig.

Wenn eine QUERY-Spezifikation mit DISTINCT spezifiziert wurde, darf die Summe der internen Längen aller Sortierspalten 1016 Zeichen nicht überschreiten, andernfalls 1020 Zeichen.

Spaltennamen in den Sortierspezifikationen müssen Spalten der Tabellen der FROM-Klausel sein oder einen result_column_name in den selektierten Spalten der QUERY-Spezifikation bezeichnen.

Wenn DISTINCT oder eine Set-Funktion in einer selektierten Spalte verwendet wurde, muss die Sortierspezifikation eine Spalte der Ergebnistabelle bezeichnen.

Der Vergleich von Werten erfolgt nach den Regeln des Vergleichsprädikats. Bei Sortierungen sind NULL-Werte größer als Nicht-NULL-Werte und Spezial-NULL-Werte größer als Nicht-NULL-Werte aber kleiner als NULL-Werte.

Siehe auch:

Technische Spezifikationen


UPDATE-Klausel (update_clause) (MaxDB: Referenzhandbuch)

UPDATE-Klausel (update_clause)

Die UPDATE-Klausel (update_clause) gibt an, dass eine Ergebnistabelle (siehe Ergebnistabellenname) änderbar werden soll. Für alle Zeilen, die diese Ergebnistabelle bilden, werden Schreibsperren gesetzt.

Syntax

<update_clause> ::= FOR UPDATE [OF <column_name>,...] [NOWAIT]

column_name

Erläuterung

Die angegebenen Spaltennamen müssen Spalten in den der QUERY-Spezifikation zugrundeliegenden Tabellen bezeichnen. Es ist nicht erforderlich, dass sie in einer selektierten Spalte auftreten.

Die QUERY-Anweisung, die die UPDATE-Klausel enthält, muss eine änderbare Ergebnistabelle erzeugen.

Die UPDATE-Klausel ist Voraussetzung für die Verwendung der Ergebnistabelle mittels CURRENT OF <result_table_name> in der UPDATE-Anweisung, in der DELETE-Anweisung und in der LOCK-Anweisung. Für andere Formen der oben genannten SQL-Anweisungen sowie im interaktiven Betrieb hat die UPDATE-Klausel keine Bedeutung.

Es sind alle Spalten der zugrundeliegenden Basistabellen änderbar, sofern der Benutzer die entsprechenden Privilegien besitzt, unabhängig davon, ob sie als Spaltenname angegeben wurden oder nicht.

Es wird aus Performancegründen geraten, nur dann Spaltennamen anzugeben, wenn der Cursor in einer UPDATE-Anweisung verwendet werden soll.

Seien für eine Spalte x folgende Bedingungen erfüllt:

· x ist im Primärschlüssel oder einem Index enthalten

· x ist in der Suchbedingung der QUERY-Anweisung enthalten

· x ist in einer SET UPDATE-Klausel der UPDATE-Anweisung in der Art x = <expression> enthalten, wobei der Ausdruck (expression) die Spalte x enthält

Sind alle Bedingungen erfüllt, sollten Sie unbedingt die Spalte x als Spaltenname in der UPDATE-Klausel angeben.

Trifft mindestens eine der Bedingungen nicht zu, sollte auf die Angabe des Spaltennamens verzichtet werden.

NOWAIT

Wenn NOWAIT nicht angegeben wird, wird im Falle einer Sperrkollision auf die Freigabe des gesperrten Datenobjekts gewartet (jedoch maximal so lange wie der spezielle Datenbankparameter REQUEST_TIMEOUT angibt).

Wenn NOWAIT angegeben wird, wird nicht auf die Freigabe eines von einem anderen Benutzer gesperrten Datenobjekts gewartet, sondern im Fall einer Kollision eine Rückmeldung ausgegeben. Liegt keine Kollision vor, wird die gewünschte Sperre gesetzt.


LOCK-Option (lock_option) (MaxDB: Referenzhandbuch)

LOCK-Option (lock_option)

Die LOCK-Option (lock_option) fordert eine Sperre für jede selektierte Zeile an.

Syntax

<lock_option> ::=
  WITH LOCK [(IGNORE)|(NOWAIT)] [EXCLUSIVE|OPTIMISTIC] [ISOLATION LEVEL <unsigned_integer>]

unsigned_integer darf nur die Werte 0, 1, 2, 3, 10, 15, 20 oder 30 annehmen

Erläuterung

IGNORE

Wenn (IGNORE) nicht angegeben wird, wird im Falle einer Sperrkollision auf die Freigabe einer Zeilensperre gewartet (jedoch maximal so lange wie der spezielle Datenbankparameter REQUEST_TIMEOUT angibt).

Wenn (IGNORE)spezifiziert wird, wird nicht auf die Freigabe einer Zeilensperre durch eine andere Transaktion gewartet, sondern im Fall einer Sperrkollision diese Zeile ignoriert. Liegt keine Kollision vor, wird die gewünschte Sperre gesetzt. (IGNORE) kann nur im Isolation-Level 1 angegeben werden.

NOWAIT

Wenn (NOWAIT) nicht angegeben wird, wird im Falle einer Sperrkollision auf die Freigabe des gesperrten Datenobjekts gewartet (jedoch maximal so lange wie der Datenbankparameter REQUEST_TIMEOUT angibt).

Wenn (NOWAIT) angegeben wird, wird nicht auf die Freigabe eines von einem anderen Benutzer gesperrten Datenobjekts gewartet, sondern im Fall einer Kollision eine Rückmeldung ausgegeben. Liegt keine Kollision vor, wird die gewünschte Sperre gesetzt.

EXCLUSIVE

Es wird eine Schreibsperre definiert. Solange die gesperrte Zeile noch nicht geändert oder gelöscht wurde, kann die Schreibsperre mit der UNLOCK-Anweisung zurückgenommen werden.

OPTIMISTIC

Es wird eine optimistische Sperre auf Zeilen definiert. Diese ist nur in Zusammenhang mit den Isolation-Levels 0, 1, 10 und 15 sinnvoll.

Lesesperre

Wenn weder EXCLUSIVE noch OPTIMISTIC angegeben wird, dann wird eine Lesesperre auf die entsprechenden Zeilen gesetzt.

ISOLATION LEVEL

Das Setzen der Sperren geschieht unabhängig von der ISOLATION-Spezifikation (isolation_spec) der CONNECT-Anweisung. Das Isolation-Level der LOCK-Option kann einen höheren oder niedrigeren Wert als den der CONNECT-Anweisung haben.

Wenn durch die LOCK-Option ein Isolation-Level angegeben wird, gilt dieses nur für die Dauer der SQL-Anweisung, in der die LOCK-Option angegeben ist. Anschließend gilt wieder das Isolation-Level, das in der CONNECT-Anweisung angegeben wurde. Im Fall einer SELECT-Anweisung (named_select_statement), einer SELECT-Anweisung (select_statement) oder einer OPEN CURSOR-Anweisung, bei der die Ergebnistabelle nicht physisch erzeugt wird, gilt das spezifizierte Isolation-Level für diese SQL-Anweisung und alle FETCH-Anweisungen, die sich auf diese Ergebnistabelle beziehen. Für zwischenzeitlich durchgeführte, andere SQL-Anweisungen gilt das Isolation-Level, das in der CONNECT-Anweisung angegeben wurde.


OPEN CURSOR-Anweisung (open_cursor_statement) (MaxDB: Referenzhandbuch)

OPEN CURSOR-Anweisung (open_cursor_statement)

Eine OPEN CURSOR-Anweisung ( open_cursor_statement ) erzeugt die zuvor unter dem angegebenen Namen mit einer DECLARE CURSOR-Anweisung definierte Ergebnistabelle.

Syntax

<open_cursor_statement> ::= OPEN <result_table_name>

result_table_name

Erläuterung

Existierende Ergebnistabellen werden implizit durch das Erzeugen einer Ergebnistabelle gleichen Namens gelöscht.

Alle Ergebnistabellen, die in der aktuellen Transaktion erzeugt wurden, werden implizit bei Beendigung der Transaktion mittels der ROLLBACK-Anweisung gelöscht.

Alle Ergebnistabellen werden implizit bei Beendigung der Sitzung mittels der RELEASE-Anweisung gelöscht. Sie können zuvor explizit durch eine CLOSE-Anweisung gelöscht werden.

Wenn der Name einer Ergebnistabelle identisch ist mit dem Namen einer Basistabelle, View-Tabelle (siehe Tabelle ) oder eines Synonym s, kann auf diese Tabellen während der Lebensdauer der Ergebnistabelle nicht zugegriffen werden.

Zu jedem Zeitpunkt der Abarbeitung einer Ergebnistabelle existiert ein Standpunkt, der sich vor der ersten Zeile, auf einer Zeile, hinter der letzten Zeile oder zwischen zwei Zeilen befinden kann. Nach dem Erzeugen der Ergebnistabelle befindet sich der Standpunkt vor der ersten Zeile der Ergebnistabelle.

Je nach Suchstrategie wird die Suche nach allen Zeilen der Ergebnistabelle bei der Ausführung der OPEN CURSOR-Anweisung durchgeführt und die Ergebnistabelle physisch erzeugt oder jeweils die nächste Zeile der Ergebnistabelle bei der Ausführung einer FETCH-Anweisung gesucht und nicht physisch gespeichert. Dies ist beim Zeitverhalten der OPEN CURSOR-Anweisungen und der FETCH-Anweisungen zu berücksichtigen.

Ist die Ergebnistabelle leer, erhalten Sie die Rückmeldung 100 – Zeile nicht gefunden .

Die Anzahl der Zeilen in der Ergebnistabelle wird in der SQLCA im dritten Eintrag von SQLERRD zurückgemeldet. Hat dieser Zähler den Wert -1, dann gibt es wenigstens eine Ergebniszeile.


FETCH-Anweisung (fetch_statement) (MaxDB: Referenzhandbuch)

FETCH-Anweisung (fetch_statement)

Die FETCH-Anweisung (fetch_statement) weist Parametern die Werte der aktuellen Zeile einer Ergebnistabelle (siehe Ergebnistabellenname) zu.

Syntax

<fetch_statement> ::=
FETCH [FIRST | LAST | NEXT | PREV | <position> | SAME] [<result_table_name>] INTO <parameter_spec>,...

<position> ::= POS (<unsigned_integer>) | POS (<parameter_spec>)
| ABSOLUTE <integer> | ABSOLUTE <parameter_spec>
| RELATIVE <integer> | RELATIVE <parameter_spec>

result_table_name, parameter_spec, unsigned_integer, integer

Erläuterung

Wenn kein Name einer Ergebnistabelle angegeben wurde, bezieht sich die FETCH-Anweisung auf die zuletzt erzeugte unbenannte Ergebnistabelle (siehe benannte/unbenannte Ergebnistabelle).

Je nach Suchstrategie wird die Suche nach allen Zeilen der Ergebnistabelle bei der Ausführung der OPEN CURSOR-Anweisung bzw. SELECT-Anweisung (select_statement) oder SELECT-Anweisung (named_select_statement) durchgeführt und die Ergebnistabelle physisch erzeugt oder jeweils die nächste Zeile der Ergebnistabelle bei der Ausführung einer FETCH-Anweisung gesucht und nicht physisch gespeichert. Dies ist beim Zeitverhalten von FETCH-Anweisungen zu berücksichtigen. Außerdem kann das je nach gewähltem Isolation-Level auch dazu führen, daß bei einem FETCH Sperrprobleme auftreten, z. B. Rückmeldung 500 – Timeout für Sperranforderung.

Zeile nicht gefunden

Sei C der Standpunkt in der Ergebnistabelle. Es wird die Rückmeldung 100 – Zeile nicht gefunden ausgegeben, und es erfolgt keine Zuweisung von Werten an die Parameter, wenn eine der folgenden Bedingungen erfüllt ist:

· Die Ergebnistabelle ist leer.

· C steht auf oder hinter der letzten Zeile der Ergebnistabelle, und es wird FETCH oder FETCH NEXT angegeben.

· C steht auf oder vor der ersten Zeile der Ergebnistabelle, und es wird FETCH PREV angegeben.

· Es wird FETCH mit einer Position angegeben, die nicht innerhalb der Ergebnistabelle liegt.

FIRST | LAST | NEXT | PREV

· FETCH FIRST oder FETCH LAST: Die Ergebnistabelle ist nicht leer. Der Standpunkt in der Ergebnistabelle C wird auf die erste bzw. letzte Zeile der Ergebnistabelle gesetzt, und die Werte dieser Zeile werden den Parametern zugewiesen.

· FETCH oder FETCH NEXT: C steht vor einer Zeile der Ergebnistabelle. C wird auf diese Zeile gesetzt, und die Werte dieser Zeile werden den Parametern zugewiesen.

· FETCH oder FETCH NEXT: C steht auf einer Zeile und diese ist nicht die letzte Zeile der Ergebnistabelle. C wird auf die unmittelbar folgende Zeile gesetzt, und die Werte in dieser Folgezeile werden den Parametern zugewiesen.

· FETCH PREV: C steht hinter einer Zeile der Ergebnistabelle. C wird auf diese Zeile gesetzt, und die Werte dieser Zeile werden den Parametern zugewiesen.

· FETCH PREV: C steht auf einer Zeile und diese ist nicht die erste Zeile der Ergebnistabelle. C wird auf die unmittelbar vorangehende Zeile gesetzt, und die Werte in dieser Vorgängerzeile werden den Parametern zugewiesen.

Position: POS

Unabhängig von der Angabe einer ORDER-Klausel existiert implizit eine Ordnung der Zeilen einer Ergebnistabelle, so dass eine interne Numerierung möglich ist. Diese kann durch Angabe einer ROWNO-Spalte als selektierte Spalte sichtbar gemacht werden. Die Angabe einer Position bezieht sich auf diese interne Numerierung.

Bei der Angabe einer Position mittels POS muss die Parameterspezifikation eine positive ganze Zahl bezeichnen.

Wenn mittels POS eine Position angegeben wurde, die kleiner oder gleich der Anzahl der Zeilen der Ergebnistabelle ist, wird C auf die entsprechende Zeile gesetzt, und die Werte dieser Zeile werden den Parametern zugewiesen. Wenn eine Position angegeben wurde, die größer als die Anzahl der Zeilen der Ergebnistabelle ist, erfolgt die Rückmeldung 100 – Zeile nicht gefunden.

Position: ABSOLUTE

Sei x der Wert der Integer-Zahl (integer) bzw. der Parameterspezifikation, die bei der Positionsangabe angegeben werden. Sei abs_x der Absolutbetrag von x.

· FETCH ABSOLUTE und x ist positiv: FETCH ABSOLUTE entspricht einem FETCH POS.

· FETCH ABSOLUTE und x=0: Es erfolgt die Rückmeldung 100 – Zeile nicht gefunden.

· FETCH ABSOLUTE und x ist negativ: Der Standpunkt in der Ergebnistabelle C wird hinter die letzte Zeile der Ergebnistabelle gesetzt und von dort abs_x-mal FETCH PREV durchgeführt. Die dabei zuletzt gefundene Zeile bildet das Ergebnis der SQL-Anweisung. Diese Beschreibung stellt nicht den Ablauf, sondern die Logik der Anweisung dar. Ist abs_x größer als die Anzahl der Zeilen der Ergebnistabelle, erfolgt die Rückmeldung 100 – Zeile nicht gefunden.

Position: RELATIVE

Sei x der Wert der Integer-Zahl (integer) bzw. der Parameterspezifikation, die bei der Positionsangabe angegeben werden. Sei abs_x der Absolutbetrag von x.

· FETCH RELATIVE und x ist positiv: Ausgehend vom aktuellen Standpunkt in der Ergebnistabelle C wird FETCH NEXT x-mal ausgeführt.

· FETCH RELATIVE und x=0: Entspricht einem FETCH SAME.

· FETCH RELATIVE und x ist negativ: Ausgehend von C wird FETCH PREV abs_x-mal ausgeführt. Diese Beschreibung stellt nicht den Ablauf, sondern die Logik der Anweisung dar. Die Rückmeldung 100 – Zeile nicht gefunden wird ausgegeben, wenn eine der im Abschnitt "Zeile nicht gefunden" angeführten Bedingungen erfüllt ist.

FETCH SAME

Die zuletzt ermittelte Zeile der Ergebnistabelle wird nochmals ausgegeben.

Parameterspezifikation

Die in position angegebene Parameterspezifikation muss eine ganze Zahl bezeichnen.

Die übrigen durch die Parameterspezifikationen angegebenen Parameter sind Ausgabeparameter. Der durch die n-te Parameterspezifikation identifizierte Parameter korrespondiert mit dem n-ten Wert der aktuellen Zeile der Ergebnistabelle. Wenn diese Zeile mehr Spalten hat, als Parameter spezifiziert wurden, werden Werte der Spalten ignoriert, für die keine korrespondierenden Parameter existieren. Wenn die Zeile weniger Spalten hat, als Parameter spezifiziert wurden, werden den überzähligen Parametern keine Werte zugewiesen. Für die Zuweisung von NULL-Werten oder Spezial-NULL-Werten muß ein Indikatorname angegeben werden.

Zahlen werden umgewandelt und Zeichenketten abgeschnitten oder verlängert, wenn das zur Anpassung an die korrespondierenden Parameter erforderlich ist. Wenn während der Zuweisung eines Wertes an einen Parameter ein Fehler auftritt, wird diese Zuweisung nicht ausgeführt, und es erfolgen auch keine weiteren Zuweisungen an korrespondierende Parameter aufgrund dieser FETCH-Anweisung. Schon erfolgte Zuweisungen von Werten an Parameter bleiben erhalten.

Sei p ein Parameter und v der entsprechende Wert in der aktuellen Zeile der Ergebnistabelle.

· v ist eine Zahl: p muss ein numerischer Parameter sein, und v muss innerhalb des zulässigen Wertebereichs von p liegen.

· v ist eine Zeichenkette: p muss ein alphanumerischer Parameter sein.

Weitere Informationen

Wurde in der QUERY-Anweisung kein FOR REUSE (siehe SELECT-Anweisung) angegeben, können nachfolgende INSERT-, UPDATE- oder DELETE-Anweisungen, die sich auf die zugrundeliegende Basistabelle beziehen und von dem Benutzer selber oder von anderen Benutzern abgesetzt werden, dazu führen, dass das mehrmalige Absetzen einer FETCH-Anweisung trotz gleicher Angabe der Position unterschiedliche Zeilen der Ergebnistabelle bezeichnet.

Änderungen durch andere Benutzer können durch eine LOCK-Anweisung für die gesamte Tabelle oder die Verwendung des Isolation-Level 2, 3, 15, 20 oder 30 bei der CONNECT-Anweisung oder der LOCK-Option der QUERY-Anweisung verhindert werden.
Ist das nicht möglich oder ändert der Benutzer selber in dieser Tabelle, ist die Angabe von FOR REUSE notwendig. Zwischenzeitlich durchgeführte Änderungen sind dann nicht sichtbar.

Enthält die Ergebnistabelle LONG-Spalten und wurde die Ergebnistabelle physisch erzeugt, ist bei Verwendung der Isolation-Levels 0, 1 und 15 nicht sichergestellt, dass Konsistenz zwischen dem Inhalt der LONG-Spalten und dem der übrigen Spalten herrscht. Wurde die Ergebnistabelle nicht physisch erzeugt, ist die Konsistenz nur im Isolation-Level 0 nicht sichergestellt. Es wird deshalb empfohlen, durch Verwendung einer LOCK-Anweisung oder der Isolation-Levels 2, 3, 20 oder 30 die Konsistenz sicherzustellen.


CLOSE-Anweisung (close_statement) (MaxDB: Referenzhandbuch)

CLOSE-Anweisung (close_statement)

Die CLOSE-Anweisung (close_statement) löscht eine Ergebnistabelle (siehe Ergebnistabellenname ).

Syntax

<close_statement> ::= CLOSE [<result_table_name>]

result_table_name

Erläuterung

  • Name einer Ergebnistabelle angegeben: Diese Ergebnistabelle wird gelöscht. Ihr Name kann zur Benennung einer anderen Ergebnistabelle verwendet werden.
  • Kein Name einer Ergebnistabelle angegeben: Eine eventuell existierende unbenannte Ergebnistabelle wird gelöscht.

Eine unbenannte Ergebnistabelle wird implizit durch die nächste SELECT-Anweisung gelöscht.

Ergebnistabellen werden implizit durch das Erzeugen einer Ergebnistabelle gleichen Namens gelöscht.

Alle Ergebnistabellen, die in der aktuellen Transaktion erzeugt wurden, werden implizit bei Beendigung der Transaktion mittels der ROLLBACK-Anweisung gelöscht.

Alle Ergebnistabellen werden implizit bei Beendigung der Sitzung mittels der RELEASE-Anweisung gelöscht.


SINGLE SELECT-Anweisung (single_select_statement) (MaxDB: Referenzhandbuch)

SINGLE SELECT-Anweisung (single_select_statement)

Eine SINGLE SELECT-Anweisung ( single_select_statement ) spezifiziert eine einzeilige Ergebnistabelle (siehe Ergebnistabellenname ) und weist deren Werte Parametern zu.

Syntax

<single_select_statement> ::=
SELECT [<distinct_spec>] <select_column>,...
INTO <parameter_spec>,... FROM <from_table_spec>,...
[<where_clause>] [<group_clause>] [<having_clause>] [<lock_option>]

distinct_spec , select_column , parameter_spec , from_table_spec , where_clause , group_clause , having_clause , lock_option

Erläuterung

Die Anzahl der Zeilen in der Ergebnistabelle darf nicht größer als eins sein. Wenn die Ergebnistabelle leer ist oder mehr als eine Zeile enthält, werden entsprechende Fehler- oder Rückmeldungen ausgegeben und den in den Parameterspezifikationen angegebenen Parametern keine Werte zugewiesen. Bei einer leeren Ergebnistabelle erhalten Sie die Rückmeldung 100 – Zeile nicht gefunden .

Wenn die Ergebnistabelle genau eine Zeile enthält, werden deren Werte den korrespondierenden Parametern zugewiesen. Für die Wertzuweisungen an die Parameter gelten die Regeln der FETCH-Anweisung .

Die Reihenfolge der GROUP- und HAVING-Klausel ist beliebig.

Die Angabe einer LONG-Spalte in einer selektierten Spalte ( select_column ) ist nur in der obersten Folge von selektierten Spalten in einer SINGLE SELECT-Anweisung zulässig, wenn dort nicht die DISTINCT-Spezifikation DISTINCT verwendet wurde.


EXPLAIN-Anweisung (explain_statement) (MaxDB: Referenzhandbuch)

EXPLAIN-Anweisung (explain_statement)

Die EXPLAIN-Anweisung (explain_statement) beschreibt die bei einer QUERY-Anweisung oder einer SINGLE SELECT-Anweisung (Anweisungen zur Suche nach bestimmten Zeilen vorgegebener Tabellen) intern vom Datenbanksystem angewandte Suchstrategie. Insbesondere wird gezeigt, ob und in welcher Form Schlüsselspalten oder Indizes bei der Suche ausgenutzt werden.

Syntax

<explain_statement> ::=
EXPLAIN [(<result_table_name>)] <query_statement>
| EXPLAIN [(<result_table_name>)] <single_select_statement>

result_table_name, query_statement, single_select_statement

Erläuterung

Durch die EXPLAIN-Anweisung kann geprüft werden, welche Auswirkungen das Erzeugen oder Löschen von Indizes (siehe Index) auf die Wahl der Suchstrategie für die angegebene SQL-Anweisung hat. Außerdem wird es möglich abzuschätzen, welche Zeit das Datenbanksystem für die Abarbeitung der angegebenen SQL-Anweisung benötigen würde. Während der Ausführung der EXPLAIN-Anweisung wird die angegebene QUERY- bzw. SINGLE SELECT-Anweisung nicht ausgeführt.

Als Ergebnis der EXPLAIN-Anweisung wird eine Ergebnistabelle (siehe Ergebnistabellenname) aufgebaut. Die Ergebnistabelle kann benannt werden. Wenn die optionale Benennung fehlt, erhält die Ergebnistabelle den Namen SHOW.

Struktur der EXPLAIN-Ergebnistabelle

OWNER | CHAR(64)
TABLENAME | CHAR(64)
COLUMN_OR_INDEX | CHAR(64)
STRATEGY | CHAR(40)
PAGECOUNT | CHAR(10)

Die Reihenfolge der SELECT-Abarbeitung ist durch die Reihenfolge der Zeilen der Ergebnistabelle beschrieben.

STRATEGY

Die Spalte STRATEGY zeigt, welche Suchstrategie(n) benutzt wird/werden und ob eine Ergebnistabelle aufgebaut wird. Eine Ergebnistabelle wird physisch aufgebaut, wenn RESULT IS COPIED in der Spalte STRATEGY der letzten Ergebniszeile steht.

Bedeutung der weiteren möglichen Eintragungen in der Spalte STRATEGY

COLUMN_OR_INDEX

Die Spalte COLUMN_OR_INDEX zeigt, welche Schlüsselspalte oder invertierte Spalte oder welcher Index für die Strategie ausgenutzt wird.

PAGECOUNT

Die Spalte PAGECOUNT zeigt, welche Größen für die Tabellen bzw. bei bestimmten Strategien, welche Größen für die Indizes angenommen werden. Diese Größen beeinflussen die Wahl der Suchstrategie.

Die angenommenen Größen werden mit der UPDATE STATISTICS-Anweisung aktualisiert und können durch Selektieren der Systemtabelle OPTIMIZERSTATISTICS abgefragt werden. Die aktuellen Größen von Tabellen oder Indizes können durch Selektieren der Systemtabellen TABLESTATISTICS und INDEXSTATISTICS ermittelt werden. Werden dabei größere Differenzen zwischen den in OPTIMIZERSTATISTICS und den in TABLESTATISTICS enthaltenen Werten festgestellt, so sollte die UPDATE STATISTICS-Anweisung für diese Tabelle durchgeführt werden.

Wenn während einer Suche in einer Tabelle festgestellt wurde, dass die durch die letzte UPDATE STATISTICS-Anweisung ermittelten Werte erheblich zu klein sind, so wird eine Zeile in die Systemtabelle SYSUPDSTATWANTED eingetragen, die den Tabellennamen enthält. In anderen Fällen werden Zeilen in diese Systemtabelle eingetragen, die Spalten von Tabellen beschreiben. Für Tabellen bzw. Spalten von Tabellen, die in der Systemtabelle SYSUPDSTATWANTED beschrieben sind, sollte die UPDATE STATISTICS-Anweisung durchgeführt werden.

In der letzten Zeile steht in der Spalte PAGECOUNT der SELECT-Kostenschätzwert. Auf diesen SELECT-Kostenschätzwert beziehen sich die Angaben für COSTLIMIT und COSTWARNING in der CREATE USER-Anweisung, CREATE USERGROUP-Anweisung, ALTER USER-Anweisung und ALTER USERGROUP-Anweisung.

Siehe auch:

SQL-Optimierer


Transaktionen (MaxDB: Referenzhandbuch)

Transaktionen

Durch Eröffnen einer Datenbanksitzung mit Hilfe der CONNECT-Anweisung wird die erste Transaktion eröffnet. Abgeschlossen wird eine Transaktion durch die COMMIT-Anweisung oder die ROLLBACK-Anweisung.

Eine Transaktion kann in weitere atomare Einheiten unterteilt werden, nämlich in Subtransaktionen.

Sperren

Da das Datenbanksystem konkurrierende Transaktionen auf den gleichen Datenbankobjekten zulässt, sind zur Isolation einzelner Transaktionen Sperren auf Zeilen, Tabellen und dem Datenbankkatalog nötig.

· Die Vergabe von impliziten Sperren kann durch die Einstellung des Isolation-Levels über die CONNECT-Anweisung beeinflusst werden.

· Sperren können explizit durch die LOCK-Anweisung oder durch die Angabe einer LOCK-Option vergeben werden.

· Schreibsperren für Zeilen, die noch nicht geändert wurden, und Lesesperren auf Zeilen können durch die UNLOCK-Anweisung vor Transaktionsende freigegeben werden.

Die einer Transaktion zugeordneten Sperren werden im Normalfall am Transaktionsende freigegeben, so dass die entsprechenden Datenbankobjekte wieder für andere Transaktionen zugänglich sind.

SQL-Anweisungen zur Verwaltung der Transaktionen

CONNECT-Anweisung | SET-Anweisung |
COMMIT-Anweisung | ROLLBACK-Anweisung | SUBTRANS-Anweisung
LOCK-Anweisung | UNLOCK-Anweisung | RELEASE-Anweisung


CONNECT-Anweisung (connect_statement) (MaxDB: Referenzhandbuch)

CONNECT-Anweisung (connect_statement)

Eine CONNECT-Anweisung (connect_statement) eröffnet eine Datenbanksitzung und eine Transaktion eines Datenbankbenutzers.

Syntax

<connect_statement> ::=
  CONNECT <parameter_name> IDENTIFIED BY <parameter_name> [<connect_option>...]
| CONNECT <parameter_name> IDENTIFIED BY <password> [<connect_option>...]
| CONNECT <user_name> IDENTIFIED BY <parameter_name> [<connect_option>...]
| CONNECT <user_name> IDENTIFIED BY <password> [<connect_option>...]

<connect_option> ::=
  SQLMODE <INTERNAL|ANSI|DB2|ORACLE>
| ISOLATION LEVEL <unsigned_integer>
| TIMEOUT <unsigned_integer>

parameter_name, password, user_name, unsigned_integer

Erläuterung

Bei zulässiger Kombination der Werte von Parametername/Benutzername und Parametername/Kennwort eröffnet der Benutzer eine Datenbanksitzung und erhält Zugang zur Datenbankinstanz. Er ist damit der aktuelle Benutzer in dieser Datenbanksitzung.

Es wird implizit eine Transaktion eröffnet.

Jede CONNECT-Option (connect_option) darf nur einmal angegeben werden.

SQLMODE

Mit der Angabe SQLMODE <INTERNAL|ANSI|DB2|ORACLE>kann der SQL-Modus ausgewählt werden. Vorschlagswert ist der SQL-Modus INTERNAL.

Die CONNECT-Option SQLMODE <INTERNAL|ANSI|DB2|ORACLE> ist innerhalb von Programmen nicht zulässig. Dort ist zur Angabe eines vom SQL-Modus INTERNAL abweichenden SQL-Modus die entsprechende Precompiler-Option zu verwenden.

ISOLATION LEVEL

Für jede neu eröffnete Transaktion gilt der in der CONNECT-Anweisung angegebene Isolation-Level, der die Sperrbetriebsart festlegt (Sperren).

Der Isolation-Level wird durch eine Integer-Zahl ohne Vorzeichen nach den Schlüsselwörtern ISOLATION LEVEL festgelegt. Folgende Werte sind zulässig: 0, 1, 2, 3, 10, 15, 20 und 30. Fehlt die Angabe eines Isolation-Levels, wird der Isolation-Level 1 angenommen.

TIMEOUT

Der angegebene Timeout-Wert muss kleiner oder gleich dem Datenbankparameter SESSION_TIMEOUT sowie dem benutzerspezifischen Timeout-Wert des Benutzers oder der Benutzergruppe sein. Anderenfalls wird beim Anmelden ein Fehler geliefert.

Wenn kein Timeout-Wert angegeben wird, dann wird der kleinere der beiden anderen Werte als Timeout-Wert angenommen.

Wird für den TIMEOUT-Wert 0 angegeben, so erfolgt keine Überprüfung der Inaktivitätsdauer. Das kann dazu führen, dass Datenbankressourcen nicht wieder zur Verfügung stehen, obwohl die zugehörige Anwendung schon, ggf. durch einen Abbruch, ohne eine RELEASE-Anweisung beendet wurde.

Benutzer mit dem Attribut NOT EXCLUSIVE

Wenn ein Benutzer mit dem Attribut NOT EXCLUSIVE definiert wurde, kann er mehrere Sitzungen zur gleichen Zeit eröffnen. Wenn dies der Fall ist oder zwei Benutzer derselben Benutzergruppe zur gleichen Zeit eine Sitzung eröffnet haben, gelten die Sitzungen als verschieden, d. h. Sperranforderungen der beteiligten Sitzungen können kollidieren.


SET-Anweisung (set_statement) (MaxDB: Referenzhandbuch)

SET-Anweisung (set_statement)

Die SET-Anweisung (set_statement) ändert die Eigenschaften einer Datenbanksitzung.

Syntax

<set_statement> ::= SET ROLE ALL [EXCEPT <role_name>] | SET ROLE NONE
| SET ROLE <role_name> [IDENTIFIED BY <password>]
| SET ISOLATION LEVEL <unsigned_integer>

role_name, password, unsigned_integer

Erläuterung

SET ROLE

Mittels DEFAULT ROLE wird in der ALTER USER-Anweisung bzw. in der ALTER USERGROUP-Anweisung festgelegt, welche der an den aktuellen Benutzer bzw. die Benutzergruppe vergebenen Rollen in der Benutzersitzung bzw. Gruppenmitgliedssitzung aktiv sind. Wenn eine Rolle aktiv ist, besitzt der aktuelle Benutzer alle Privilegien, die durch die Rolle zusammengefasst sind.

Falls dem aktuellen Benutzer mit Hilfe der ALTER USER-Anweisung bzw. der ALTER USERGROUP-Anweisung eine Rolle zugeordnet ist, die automatisch beim Eröffnen der Sitzung aktiviert wird, so wird sie mit Ausführung der SET-Anweisung deaktiviert, falls sie nicht auch durch die SET ROLE-Angabe der SET-Anweisung identifiziert wird.

· ALL: Alle Rollen, die dem aktuellen Benutzer vergeben wurden, sind aktiv. Durch EXCEPT können einzelne namentlich aufgeführte Rollen hiervon ausgenommen werden.

· NONE: Es ist keine Rolle aktiv.

· Angabe von Rollennamen: Die hierdurch identifizierten Rollen müssen existieren und an den aktuellen Benutzer vergeben sein. Falls für die Rolle ein Kennwort existiert, muss es außer vom Eigentümer der Rolle in der SET-Anweisung angegeben werden.
Die durch den angegebenen Rollennamen identifizierte Rolle wird aktiviert.

ISOLATION LEVEL

Die Angabe eines Isolation-Level verändert das Sperrverhalten für alle folgenden SQL-Anweisungen der aktuellen Datenbanksitzung. Das Isolation-Level wird durch eine Integer-Zahl ohne Vorzeichen nach den Schlüsselwörtern ISOLATION LEVEL festgelegt. Folgende Werte sind zulässig: 0, 1, 2, 3, 10, 15, 20 und 30.


COMMIT-Anweisung (commit_statement) (MaxDB: Referenzhandbuch)

COMMIT-Anweisung (commit_statement)

Eine COMMIT-Anweisung (commit_statement) beendet die aktuelle Transaktion und startet eine neue Transaktion.

Syntax

<commit_statement> ::= COMMIT [WORK]

Erläuterung

Die COMMIT-Anweisung dient zur Beendigung der aktuellen Transaktion (COMMIT).

Die COMMIT-Anweisung eröffnet implizit eine neue Transaktion. Alle innerhalb dieser neuen Transaktion gesetzten Sperren werden dieser Transaktion zugeordnet. Für das Setzen von Sperren in der neuen Transaktion gilt der in der CONNECT-Anweisung vereinbarte Isolation-Level.


ROLLBACK-Anweisung (rollback_statement) (MaxDB: Referenzhandbuch)

ROLLBACK-Anweisung (rollback_statement)

Die ROLLBACK-Anweisung (rollback_statement) bricht die aktuelle Transaktion ab und startet eine neue Transaktion.

Syntax

<rollback_statement> ::= ROLLBACK [WORK]

Erläuterung

Die ROLLBACK-Anweisung eröffnet implizit eine neue Transaktion. Alle innerhalb dieser neuen Transaktion gesetzten Sperren werden dieser Transaktion zugeordnet. Für das Setzen von Sperren in der neuen Transaktion gilt das in der CONNECT-Anweisung vereinbarte Isolation-Level.


SUBTRANS-Anweisung (subtrans_statement) (MaxDB: Referenzhandbuch)

SUBTRANS-Anweisung (subtrans_statement)

Die SUBTRANS-Anweisung (subtrans_statement) unterteilt eine Transaktion in Teileinheiten, die Subtransaktionen genannt werden.

Syntax

<subtrans_statement> ::= SUBTRANS BEGIN | SUBTRANS END | SUBTRANS ROLLBACK

Erläuterung

SUBTRANS BEGIN

Eine Subtransaktion wird eröffnet, d. h. es wird vom Datenbanksystem der aktuelle Standpunkt innerhalb der Transaktion festgehalten. Anschließend kann eine beliebige Folge von SQL-Anweisungen folgen. Wenn diese Folge kein weiteres SUBTRANS BEGIN enthält, können durch SUBTRANS ROLLBACK alle Datenbankänderungen, die nach dem SUBTRANS BEGIN erfolgten, rückgängig gemacht werden.

Die Folge kann jedoch auch weitere SUBTRANS BEGIN-Anweisungen enthalten, die dann weitere Subtransaktionen eröffnen. Zu einem Zeitpunkt kann es daher mehrere offene, geschachtelte Subtransaktionen geben.

SUBTRANS END

Eine Subtransaktion wird geschlossen, d. h. das Datenbanksystem vergisst den bei SUBTRANS BEGIN bestimmten Standpunkt innerhalb der Transaktion. Voraussetzung dafür ist, dass eine offene Subtransaktion existiert. Wenn mehr als eine offene Subtransaktion existiert, wird die zuletzt geöffnete Subtransaktion geschlossen, d. h. sie gilt nicht mehr als offene Subtransaktion.

SUBTRANS ROLLBACK

Alle innerhalb einer Subtransaktion durchgeführten Datenbankänderungen werden rückgängig gemacht, und die Subtransaktion wird geschlossen. Auch alle Datenbankänderungen von innerhalb der Subtransaktion liegenden Subtransaktionen werden rückgängig gemacht, unabhängig davon, ob diese mit SUBTRANS END oder SUBTRANS ROLLBACK beendet wurden. Alle innerhalb der Subtransaktion erzeugten Ergebnistabellen werden geschlossen.

Voraussetzung dafür ist, daß eine offene Subtransaktion existiert. Wenn mehr als eine offene Subtransaktion existiert, wird die zuletzt geöffnete Subtransaktion zurückgesetzt. Die betroffene Subtransaktion gilt anschließend nicht mehr als offen.

Weitere Informationen

Die SUBTRANS-Anweisung hat keinen Einfluß auf Sperren, die der Transaktion zugeordnet sind. Insbesondere werden bei SUBTRANS END und SUBTRANS ROLLBACK keine Sperren freigegeben.

Die SUBTRANS-Anweisung eignet sich besonders dafür, die Auswirkungen von Unterprogrammen oder Datenbankprozeduren atomar zu machen, d. h. sie so zu gestalten, dass sie entweder alle ihre Aufgaben erfüllen oder andernfalls keine Wirkung haben. Dazu wird am Beginn ein SUBTRANS BEGIN abgesetzt. Wenn das Unterprogramm seine Aufgabe erfolgreich erfüllen konnte, wird am Ende SUBTRANS END benutzt, während im Fehlerfall durch SUBTRANS ROLLBACK alle vom Unterprogramm durchgeführten Änderungen rückgängig gemacht werden.

Durch die COMMIT-Anweisung und die ROLLBACK-Anweisung werden alle noch offenen Subtransaktionen implizit geschlossen.


LOCK-Anweisung (lock_statement) (MaxDB: Referenzhandbuch)

LOCK-Anweisung (lock_statement)

Die LOCK-Anweisung (lock_statement) ordnet der aktuellen Transaktion eine Sperre zu.

Syntax

<lock_statement> ::=
LOCK [(WAIT)|(NOWAIT)] <lock_spec> IN SHARE MODE
LOCK [(WAIT)|(NOWAIT)] <lock_spec> IN EXCLUSIVE MODE
LOCK [(WAIT)|(NOWAIT)] <lock_spec> IN SHARE MODE <lock_spec> IN EXCLUSIVE MODE
LOCK [(WAIT)|(NOWAIT)] <row_spec>... OPTIMISTIC

<lock_spec> ::= TABLE <table_name>,... | <row_spec>...
| TABLE <table_name>,... <row_spec>...

row_spec, table_name

Erläuterung

Die angegebene Tabelle darf keine temporäre Basistabelle, keine View-Tabelle (siehe Tabelle) und kein Synonym sein. Wenn der Tabellenname eine View-Tabelle identifiziert, werden Sperren auf die Basistabellen gesetzt, die der View-Tabelle zugrundeliegen.

WAIT/NOWAIT

· Wenn (NOWAIT) spezifiziert wird, wird nicht auf die Freigabe einer Sperre durch eine andere Transaktion gewartet, sondern im Fall einer Sperrkollision ein Fehler gemeldet. Wenn keine Kollision vorliegt, wird die gewünschte Sperre gesetzt.

· Wenn keine WAIT-Option oder (WAIT) angegeben ist, wird bei einer Sperrkollision auf die Freigabe von Sperren maximal so lange gewartet, wie der Datenbankparameter REQUEST_TIMEOUT angibt.

<row_spec>...

Bei Angabe von <row_spec>... wird eine Sperre für die durch die Schlüsselwerte oder durch einen Standpunkt in einer Ergebnistabelle bezeichnete Zeile einer Tabelle angelegt.

Die Angabe einer row_spec erfordert, dass die angegebene Tabelle eine Schlüsselspalte besitzt, d. h. falls durch den Tabellennamen eine View-Tabelle angegeben ist, muss diese änderbar sein.

TABLE <table_name>,...

Bei Angabe von TABLE <table_name>,... wird eine Sperre für die genannte Tabelle angelegt.

Wenn der Tabellenname eine nicht änderbare View-Tabelle identifiziert, ist nur das Setzen einer Lesesperre für diese View-Tabelle möglich. Als Folge dieser SQL-Anweisung sind anschließend für alle Basistabellen die der View-Tabelle zugrundeliegen Lesesperren gesetzt.

SHARE

SHARE definiert eine Lesesperre für die aufgeführten Objekte. Zum Setzen von Lesesperren muss der aktuelle Benutzer das SELECT-Privileg besitzen.

EXCLUSIVE

EXCLUSIVE definiert eine Schreibsperre für die aufgeführten Objekte. Zum Setzen von Schreibsperren muss der aktuelle Benutzer das UPDATE-, DELETE- oder INSERT-Privileg besitzen.

OPTIMISTIC

OPTIMISTIC definiert eine optimistische Sperre auf Zeilen. Diese ist nur in Zusammenhang mit den Isolation-Leveln 0, 1, 10 und 15 sinnvoll.

Deadlock

Wenn das Datenbanksystem einen durch Sperren verursachten Deadlock erkennt, dann wird die Transaktion durch ein implizites ROLLBACK WORK beendet.

Reproduzierbarkeit

Werden für das Lesen von Zeilen mittels einer SELECT-Anweisung reproduzierbare Ergebnisse gewünscht, müssen die gelesenen Objekte gesperrt werden, und die Sperren müssen bis zur Reproduktion gehalten werden. Für die Reproduzierbarkeit ist es im allgemeinen erforderlich, die betroffenen Tabellen explizit mittels eines oder mehrerer LOCK-Anweisungen oder implizit durch Verwendung des Isolation-Level 3 lesend zu sperren. Dadurch wird gewährleistet, dass kein anderer Benutzer die Tabelle ändern kann.


ROW-Spezifikation (row_spec) (MaxDB: Referenzhandbuch)

ROW-Spezifikation (row_spec)

Die ROW-Spezifikation ( row_spec ) ist Syntaxelement in einer LOCK-Anweisung oder einer UNLOCK-Anweisung .

Syntax

<row_spec> ::= ROW <table_name> KEY <key_spec>,...
| ROW <table_name> CURRENT OF <result_table_name>

table_name , result_table_name

Erläuterung

Bei Tabellen, die ohne Schlüsselspalten definiert wurden, kann die implizit existierende Schlüsselspalte SYSKEY CHAR(8) BYTE in einer Schlüsselspezifikation verwendet werden.

Wenn CURRENT OF <result_table_name> angegeben wird, muß die Ergebnistabelle mit FOR UPDATE spezifiziert worden sein.


UNLOCK-Anweisung (unlock_statement) (MaxDB: Referenzhandbuch)

UNLOCK-Anweisung (unlock_statement)

Die UNLOCK-Anweisung (unlock_statement) gibt Sperren auf Zeilen frei.

Syntax

<unlock_statement> ::= UNLOCK <row_spec>... IN SHARE MODE
| UNLOCK <row_spec>... IN EXCLUSIVE MODE
| UNLOCK <row_spec>... IN SHARE MODE <row_spec>... IN EXCLUSIVE MODE
| UNLOCK <row_spec>... OPTIMISTIC

row_spec

Erläuterung

Mit der UNLOCK-Anweisung können innerhalb einer Transaktion Lesesperren, optimistische Sperren und Schreibsperren für einzelne, noch nicht geänderte Zeilen von Tabellen freigegeben werden.

Wurde eine Zeile eingefügt, geändert oder gelöscht, kann ihre Schreibsperre nicht durch die UNLOCK-Anweisung freigegeben werden.

Die UNLOCK-Anweisung scheitert nicht, wenn die angegebene Sperre gar nicht existiert oder nicht freigegeben werden kann.


RELEASE-Anweisung (release_statement) (MaxDB: Referenzhandbuch)

RELEASE-Anweisung (release_statement)

Die RELEASE-Anweisung (release_statement) beendet die Transaktion und die Datenbanksitzung eines Benutzers.

Syntax

<release_statement> ::= COMMIT [WORK] RELEASE | ROLLBACK [WORK] RELEASE

Erläuterung

Alle Ergebnistabellen und sowohl die in temporären Basistabellen gespeicherten Daten als auch die Metadaten dieser Tabellen werden implizit bei Beendigung der Sitzung mittels der RELEASE-Anweisung gelöscht.

COMMIT WORK RELEASE

Die aktuelle Transaktion wird abgeschlossen, jedoch keine neue Transaktion eröffnet. Die Sitzung des Benutzers wird beendet.

Wenn die aktuelle Transaktion vom Datenbanksystem implizit rückgängig gemacht werden muss, scheitert COMMIT WORK RELEASE und es wird eine neue Transaktion eröffnet. Die Sitzung des Benutzers wird in diesem Fall nicht beendet.

ROLLBACK WORK RELEASE

Die aktuelle Transaktion wird abgebrochen, jedoch keine neue Transaktion eröffnet. Alle innerhalb der Transaktion durchgeführten Datenbankänderungen werden rückgängig gemacht. Die Sitzung des Benutzers wird beendet. ROLLBACK WORK RELEASE hat die gleiche Wirkung wie die ROLLBACK-Anweisung gefolgt von COMMIT WORK RELEASE.

Wenn das Accounting des Datenbanksystems eingeschaltet ist, werden Informationen über die Sitzung in die Tabelle SYSACCOUNT eingefügt.


Statistiken (MaxDB: Referenzhandbuch)

Statistiken

Die Einheiten, in der das Datenbanksystem Platten anspricht, beträgt 8KB. Für diese Einheit wird der Begriff Seite (Page) benutzt.

SQL-Anweisungen zur Verwaltung der Statistiken

UPDATE STATISTICS-Anweisung

MONITOR-Anweisung


UPDATE STATISTICS-Anweisung (update_statistics_statement) (MaxDB: Referenzhandbuch)

UPDATE STATISTICS-Anweisung (update_statistics_statement)

Die UPDATE STATISTICS-Anweisung (update_statistics_statement) bestimmt den Platzbedarf von Tabellen und Indizes und die Werteverteilung von Spalten und legt die Informationen im Datenbankkatalog ab.

Syntax

<update_statistics_statement> ::=
UPDATE STAT[ISTICS] COLUMN <table_name>.<column_name> [ESTIMATE [<sample_definition>]]
| UPDATE STAT[ISTICS] COLUMN (<column_name>,...) FOR <table_name> [ESTIMATE [<sample_definition>]]
| UPDATE STAT[ISTICS] COLUMN (*) FOR <table_name> [ESTIMATE [<sample_definition>]]
| UPDATE STAT[ISTICS] <table_name> [ESTIMATE [<sample_definition>]]
| UPDATE STAT[ISTICS] [<owner>.][<identifier>]* [ESTIMATE [<sample_definition>]]

table_name, column_name, sample_definition, owner, identifier

Erläuterung

Die Ausführung der UPDATE STATISTICS-Anweisung bewirkt, dass Informationen über die Tabelle wie die Anzahl der Zeilen, Anzahl belegter Seiten, Größe von Indizes, Werteverteilung innerhalb von Spalten oder Indizes usw. im Datenbankkatalog abgelegt werden. Diese Werte werden vom SQL-Optimierer zur Bestimmung der besten Strategie zur Ausführung von SQL-Anweisungen benutzt.

Die UPDATE STATISTICS-Anweisung führt implizit pro Basistabelle eine COMMIT-Anweisung aus, d. h. die Transaktion, in der die UPDATE STATISTICS-Anweisung ausgeführt wird, ist anschließend beendet.

Bei der Ausführung einer CREATE INDEX-Anweisung werden für diesen Index und für die Basistabelle, für die der Index definiert wird, die oben genannten Informationen im Datenbankkatalog abgelegt, nicht jedoch für andere, auf dieser Basistabelle definierte Indizes.

Die im Datenbankkatalog abgelegten Statistikwerte können durch Selektieren der Systemtabelle OPTIMIZERSTATISTICS abgefragt werden. Jede Zeile der Tabelle beschreibt Statistikwerte über Indizes, Spalten oder Größe einer Tabelle.

Eine Definition der Statistik-Systemtabellen finden Sie im Handbuch Systemtabellen, Abschnitt Definition der Systemtabellen.

<table_name>

Wenn ein Tabellenname angegeben ist, dann muss die Tabelle eine nicht temporäre Basistabelle sein und der aktuelle Benutzer muss ein Privileg für sie besitzen.

<column_name>

Wenn ein Spaltenname angegeben ist, dann muss die Spalte der angegebenen Tabelle existieren.

Wenn * angegeben ist, werden alle Spalten der Tabelle angenommen.

<identifier>*

Wenn <identifier>* angegeben ist, dann hat das den gleichen Effekt wie die Angabe der UPDATE STATISTICS-Anweisung für alle Basistabellen, für die der aktuelle Benutzer ein Privileg besitzt und deren Tabellenname mit dem Bezeichner (identifier) beginnt.

UPDATE STATISTICS *

Der Datenbanksystemadministrator (SYSDBA-Benutzer) kann durch UPDATE STATISTICS * erreichen, dass die UPDATE STATISTICS-Anweisung für alle Basistabellen ausgeführt wird, auch wenn dem SYSDBA kein Privileg für die Tabelle vergeben wurde.

ESTIMATE

· Bei Angabe von ESTIMATE und einer sample_definition schätzt das Datenbanksystem die Statistikwerte durch Auswahl von Stichproben aus dem Datenbestand. Die Anzahl der Stichproben kann in Anzahl Zeilen oder in Prozent erfolgen. Ab einer Angabe von 50% werden alle Zeilen analysiert. Durch die Angabe von ESTIMATE kann die Laufzeit der UPDATE STATISTICS-Anweisung stark reduziert werden. Die Genauigkeit der ermittelten Statistikwerte ist in den meisten Fällen dennoch ausreichend.

· Bei Angabe von ESTIMATE ohne eine sample_definition schätzt das Datenbanksystem die Statistikwerte durch Auswahl von Stichproben aus dem Datenbestand. Die Anzahl der Stichproben wurde bei der CREATE TABLE-Anweisung oder einer ALTER TABLE-Anweisung durch eine sample_definition für die angegebene Tabelle festgelegt. Ab einer Angabe von 50% werden alle Zeilen analysiert. Durch die Angabe von ESTIMATE kann die Laufzeit der UPDATE STATISTICS-Anweisung stark reduziert werden. Die Genauigkeit der ermittelten Statistikwerte ist in den meisten Fällen dennoch ausreichend.

· Wenn ESTIMATE nicht angegeben ist, bestimmt das Datenbanksystem exakte Statistikwerte, indem der gesamte Datenbestand der Tabelle betrachtet wird. Bei großen Tabellen kann die Laufzeit hierfür beträchtlich sein.


MONITOR-Anweisung (monitor_statement) (MaxDB: Referenzhandbuch)

MONITOR-Anweisung (monitor_statement)

Mit der MONITOR-Anweisung (monitor_statement) können Sie die beim Datenbankmonitoring geführten Zähler mit 0 initialisieren.

Syntax

<monitor_statement> ::= MONITOR INIT

Erläuterung

Das Datenbanksystem führt immer Ereigniszähler. Diese werden beim Start des Datenbanksystems mit 0 initialisiert. Durch die MONITOR-Anweisung werden sie wieder auf 0 gesetzt.

Die vom Datenbanksystem geführten Ereigniszähler können durch Selektieren von Monitor-Systemtabellen abgefragt werden.

Eine Definition der Monitor-Systemtabellen finden Sie im Handbuch Systemtabellen, Abschnitt Definition der Systemtabellen


Begriffe und Konzepte (MaxDB: Referenzhandbuch)

Begriffe und Konzepte

Anwendungsdaten

ASCII-Code

Benutzer und Benutzergruppen

BOOLEAN

Codeattribut

Datenbankfunktion

Datenbankkatalog

Datenbankprozedur

Datenbanksitzung

Datenintegrität

Datentyp

Datumswert

Funktionen

Index

LONG-Spalte

NULL-Wert

Parameter

Privileg

Rolle

Rollenkonzept

SERIAL

Spalte

Spezial-NULL-Wert

SQL-Modus

Subtransaktion

Synonym

Tabelle

Transaktionen

Trigger

UNICODE

Wertebereich

Zahl

Zeichenkette

Zeitstempelwert

Zeitwert

Siehe auch:

Weitere datenbankspezifische Begriffe


ASCII-Code (MaxDB: Referenzhandbuch)

ASCII-Code

Der ASCII-Code gemäß ISO 8859/1.2 verwendet folgende Belegung:

evtl. vom Betriebssystem belegt


BOOLEAN (MaxDB: Referenzhandbuch)

BOOLEAN

Ein BOOLEAN ist ein Datentyp , der nur die beiden Zustände TRUE und FALSE und den NULL-Wert annehmen kann.

Ein Wert vom Datentyp BOOLEAN ist nur mit anderen Werten vom Datentyp BOOLEAN vergleichbar.

Siehe auch:

BOOLEAN


Benutzer und Benutzergruppen (MaxDB: Referenzhandbuch)

Benutzer und Benutzergruppen

Bei der Installation des Datenbanksystems werden folgende Benutzernamen und deren Kennwort festgelegt:

· Database Manager-Benutzer (DBM-Benutzer)

· Datenbanksystemadministrator (SYSDBA-Benutzer)

· DOMAIN-Benutzer

Bei laufendem Datenbankbetrieb gibt es vier Datenbankbenutzerklassen:

· Datenbanksystemadministrator (SYSDBA)

· Datenbankadministrator (DBA-Benutzer)

· RESOURCE-Benutzer

· STANDARD-Benutzer

Es können Benutzergruppen definiert werden.

Siehe auch:

Benutzername

Benutzergruppenname

Autorisierung


Codeattribut (MaxDB: Referenzhandbuch)

Codeattribut

Für Spaltenwerte mit folgenden Datentypen kann gegebenenfalls bei einer Spaltendefinition zusätzlich ein Codeattribut angegeben werden: CHAR[ACTER], VARCHAR, LONG[VARCHAR]

Ein Codeattribut definiert die beim Vergleich von Werten zu verwendende Sortierreihenfolge.

Codeattribut | Spaltenwerte
Kein Codeattribut | Haben das im Datenbanksystem festgelegte Codeattribut
ASCII | Im ASCII-Code
BYTE | Codeneutral, d.h die Spaltenwerte werden nicht vom Datenbanksystem konvertiert
UNICODE | In UNICODE

Wenn kein Codeattribut angegeben ist, wird der im Datenbanksystem definierte Code verwendet.

· Der Code kann durch entsprechende SQL-Anweisungen für bestimmte Benutzer definiert werden (siehe dazu: CREATE/ALTER USER-Anweisung bzw. CREATE/ALTER USERGROUP-Anweisung).

· Der Code kann global bei der Installation des Datenbanksystems durch den speziellen Datenbankparameter DEFAULT_CODE definiert werden.

Der für einen Benutzer definierte Code übersteuert den global im Datenbanksystem angegebenen Code.


Datenbankfunktion (MaxDB: Referenzhandbuch)

Datenbankfunktion

Eine Datenbankfunktion ist ein Unterprogramm, das einen Ergebniswert liefert und im Datenbankkern abläuft.

Zur Formulierung einer Datenbankfunktion wird die aus der Formulierung von Datenbankprozeduren bekannte Sprache benutzt. Im Gegensatz zu Datenbankprozeduren werden Datenbankfunktionen nicht durch einen expliziten EXECUTE-Aufruf, sondern als Funktionsaufruf einer SQL-Anweisung ausgeführt (Datenbankfunktionsaufruf).

Siehe auch:

Name einer Datenbankfunktion


Datenbankprozedur (MaxDB: Referenzhandbuch)

Datenbankprozedur

In einer gut strukturierten Datenbankanwendung sind die SQL-Anweisungen typischerweise nicht über die gesamte Anwendung verteilt, sondern werden in einer Zugriffsschicht konzentriert. Diese Zugriffsschicht hat zur restlichen Anwendung eine prozedurale Schnittstelle, an der die Operationen auf Anwendungsobjekten in Form abstrakter Datentypen bereitgestellt werden.

In Client-Server-Konfigurationen erfolgt bei der Ausführung einer jeden SQL-Anweisung in der Zugriffsschicht eine Interaktion zwischen dem Client und dem Server. Die Anzahl dieser Interaktionen kann drastisch reduziert werden, wenn die SQL-Zugriffsschicht nicht mehr im Client, sondern im Server abläuft.

Dazu stellt MySQL MaxDB eine Sprache (spezielle SQL-Syntax) bereit, in der die Formulierung einer SQL-Zugriffsschicht auf der Server-Seite ermöglicht wird. Diese spezielle SQL-Syntax kann verwendet werden, um Datenbankprozeduren und Trigger zu definieren.

Das hat drei wesentliche Vorteile:

· Die Anzahl der Interaktionen zwischen Client und Server wird um Faktoren reduziert. Nur noch pro Operation auf einem Anwendungsobjekt ist eine Client-Server-Kommunikation erforderlich, nicht mehr pro SQL-Anweisung. Das erhöht die Performance von Client-Server-Konfigurationen erheblich.

· Die SQL-Zugriffsschicht enthält prozedural formulierte Integritätsregeln und "business rules". Die Konzentration dieser Regeln auf der Server-Seite und ihre Elimination aus den Datenbankanwendungen führt dazu, dass jetzt an zentraler Stelle Änderungen dieser Regeln erfolgen können, die sofort in allen Datenbankanwendungen wirksam werden. Damit werden auch diese Integritäts- und Entscheidungsregeln Bestandteil des Katalogs im Datenbanksystem.

· Eine auf die Server-Seite verlagerte SQL-Zugriffsschicht in der Form von Datenbankprozeduren erlaubt es auch, kundenspezifische Datenbankfunktionalität bereitzustellen und ist daher ein wesentliches Customizing-Werkzeug.

Um eine Datenbankprozedur ausführen zu können, muss ein Benutzer das Aufrufprivileg dafür besitzen. Dieses Aufrufprivileg ist unabhängig davon, welche Privilegien der Benutzer auf den Tabellen und Spalten besitzt, die in der Datenbankprozedur benutzt werden. Es ist deshalb möglich, dass ein Benutzer über eine Datenbankprozedur SQL-Anweisungen ausführen kann, die für ihn außerhalb dieser Datenbankprozedur nicht zulässig sind.

Datenbankprozeduren werden aus der Anwendungsprogrammiersprache heraus explizit aufgerufen. Sie können Parameter enthalten, wobei nur LONG-Spalten ausgeschlossen sind. In wieweit LONG-Spalten innerhalb von Datenbankprozeduren verwendet werden können, hängt von deren Länge und dem zur Verfügung stehenden Speicherplatz ab.

Wie bei jeder SQL-Anweisung muss auch bei einem Aufruf einer Datenbankprozedur sichergestellt sein, dass dieser Aufruf im Erfolgsfall die gewünschten Wirkungen hat, im Fehlerfall aber keinerlei Effekte im Datenbanksystem hinterlässt. Damit dieses Verhalten auch für Datenbankprozeduren erreicht wird, stellt MySQL MaxDB geschachtelte Transaktionen bereit. Jeder Aufruf einer Datenbankprozedur kann innerhalb einer Subtransaktion ablaufen, die zurückgesetzt werden kann, ohne die Transaktionssteuerung der Datenbankanwendung zu beeinträchtigen.

Sie können beliebig viele Datenbankprozeduren definieren.

Siehe auch:

Name einer Datenbankprozedur


Datenintegrität (MaxDB: Referenzhandbuch)

Datenintegrität

  • Integritätsregeln: Das Datenbanksystem stellt eine reichhaltige Auswahl von Integritätsregeln bereit und entlastet dadurch die Anwendungsprogrammierung. Die Angabe von Integritätsregeln, die sich auf eine Tabelle beziehen, ist möglich (siehe Constraint-Name ).
  • Schlüssel: Für jede Tabelle kann ein aus einer oder mehreren Spalte(n) bestehender Schlüssel definiert werden, dessen Eindeutigkeit das Datenbanksystem sicherstellt. Dieser Schlüssel kann sich auch aus Spalten unterschiedlichen Datentyps zusammensetzen (siehe Schlüsseldefinition ).
  • UNIQUE-Definition: Über den Schlüssel hinaus kann für weitere Spalten bzw. Spaltenkombinationen die Eindeutigkeit ihrer Wertebelegung erzwungen werden (siehe UNIQUE-Definition für "alternate keys").
  • NOT NULL: Für einzelne Spalten kann durch die Angabe von NOT NULL eine Wertebelegung ungleich des NULL-Wertes erzwungen werden.
  • DEFAULT-Definition: Pro Spalte kann eine Wertebelegung vordefiniert werden (siehe DEFAULT-Spezifikation ).
  • Referentielle Integritätsbedingungen: Durch referentielle Integritätsbedingungen können Lösch- und Existenzabhängigkeiten zwischen Zeilen zweier Tabellen deklarativ festgelegt werden (siehe Name eines referentiellen Constraints ).
  • Datenbankprozeduren und Trigger: Komplexe Integritätsregeln, die Zugriffe auf weitere Tabellen erfordern, lassen sich durch Datenbankprozedur en oder Trigger formulieren.


Datentyp (MaxDB: Referenzhandbuch)

Datentyp

Ein Datentyp ist eine Menge folgender darstellbarer Werte:

· NULL-Wert

· Spezial-NULL-Wert

· Nicht-NULL-Wert
Zeichenkette, LONG-Spalte, Zahl, Datumswert, Zeitwert, Zeitstempelwert, BOOLEAN

Verwendung

Bei einer Spaltendefinition können neben den Spaltennamen die Datentypen (data_type) angegeben werden.

Für LONG-Spalten und einige Arten von Zeichenketten kann gegebenenfalls zusätzlich ein Codeattribut angegeben werden.

Siehe auch:

Angabe eines Datentyps in SQL-Anweisungen: data_type


Datumswert (MaxDB: Referenzhandbuch)

Datumswert

Der Datentyp Datumswert ist eine spezielle Zeichenkette.

Ein Datumswert ist mit anderen Datumswerten und mit Zeichenketten der Codeattribute ASCII und UNICODE vergleichbar.

Siehe auch:

DATE

Datums- und Zeitformat


Index (MaxDB: Referenzhandbuch)

Index

Indizes dienen zum schnelleren Zugriff auf Zeilen einer Tabelle. Sie können für eine einzelne Spalte oder für eine Folge von Spalten aufgebaut werden. Bei der Definition von Indizes wird festgelegt, ob die Spaltenwerte verschiedener Zeilen in den indizierten Spalten eindeutig sein müssen oder nicht.

Ein vergebener Indexname muss zusammen mit dem Tabellennamen eindeutig sein.


LONG-Spalte (MaxDB: Referenzhandbuch)

LONG-Spalte

Eine LONG-Spalte ist ein Datentyp , der eine beliebig lange Folge von Zeichen enthält, auf die keine Funktionen angewendet werden können.

LONG-Spalten sind nicht untereinander vergleichbar. Inhalte von LONG-Spalten sind auch nicht mit Zeichenkette n oder mit anderen Datentypen vergleichbar.

Siehe auch:

LONG[VARCHAR]

Bei einer Spaltendefinition kann für den Datentyp LONG[VARCHAR] ein Codeattribut angegeben werden.


NULL-Wert (MaxDB: Referenzhandbuch)

NULL-Wert

Der Datentyp NULL-Wert (undefinierter Wert) ist ein spezieller Wert, dessen Vergleich mit einem beliebigen Wert immer undefiniert ist.


Parameter (MaxDB: Referenzhandbuch)

Parameter

SQL-Anweisungen für das Datenbanksystem können in Programmiersprachen wie C und C++ eingebettet werden. Dadurch eröffnet sich die Möglichkeit, aus Programmen heraus auf das Datenbanksystem zuzugreifen. Die Werte, die aus dem Datenbanksystem abgerufen oder im Datenbanksystem gespeichert werden sollen, können innerhalb der SQL-Anweisungen mit Hilfe von Parametern übergeben werden. Die Parameter werden innerhalb des einbettenden Programms als Variablen, sogenannte Host-Variablen, deklariert.

In der Programmiersprache wird bei der Deklaration von Host-Variablen ihr Datentyp festgelegt. Werte von Host-Variablen werden (falls möglich) implizit vom Programmiersprachen-Datentyp in den Datenbanksystem-Datentyp konvertiert und umgekehrt.

Jeder Parameter kann mit einer Indikatorvariablen kombiniert sein, die Auskunft über Unregelmäßigkeiten gibt, die bei der Zuweisung aufgetreten sind, z. B. unterschiedliche Länge von Wert und Parameter, NULL-Wert , Spezial-NULL-Wert etc. Zur Übergabe von NULL-Werten und Spezial-NULL-Werten sind Indikatorvariablen zwingend erforderlich. Indikatorvariablen werden innerhalb des einbettenden Programms als Variablen definiert.

Siehe auch:

Parametername

Indikatorname


Privileg (MaxDB: Referenzhandbuch)

Privileg

Ein Privileg dient dazu, Einschränkungen für Operationen auf bestimmten Objekten zu erzwingen.

Jeder Benutzer darf nur Operationen auf Objekten ausführen, für die er Privilegien erhalten hat. Der Eigentümer eines Objekts erhält bei der Erzeugung eines Objekts alle für dieses Objekt möglichen Privilegien. An andere Benutzer können Privilegien explizit vergeben werden, eine implizite Privilegienvergabe an andere Benutzer findet nicht statt.

Benutzer, die nicht die Eigentümer des Objekts sind, können Privilegien auf ein Objekt nur dann vergeben, wenn sie selbst diese Privilegien zusammen mit der Erlaubnis, d. h. mit der entsprechenden Option, erhalten haben, diese Privilegien weiterzuvergeben.

Siehe auch:

Privileg-Typ

Privilegienspezifikation


Rolle (MaxDB: Referenzhandbuch)

Rolle

Eine Rolle ist eine Zusammenfassung von Privilegien.

Eine Rolle kann wie ein Privileg an eine andere Rolle oder an Benutzer vergeben werden.

Während Privilegien immer gelten, sind Rollen grundsätzlich inaktiv, d.h. die darin enthaltenen Privilegien gelten nicht. Rollen können für einzelne Datenbanksitzungen aktiviert werden. Jeder Benutzer, an den Rollen vergeben wurden, kann auch festlegen, welche der Rollen in jeder seiner Datenbanksitzungen aktiv sein soll. Diese Festlegung kann nach Eröffnen einer Datenbanksitzung geändert werden.

Während der Ausführung von Datendefinitionsanweisungen sind für die ausführende Datenbanksitzung alle Rollen inaktiv.

Siehe auch:

Rollenname

Rollenkonzept


Rollenkonzept (MaxDB: Referenzhandbuch)

Rollenkonzept

Das Datenbanksystem unterstützt ein Rollenkonzept. Eine Rolle ist eine Zusammenfassung von Privilegien , die Datenbankbenutzern, Benutzergruppen oder anderen Rollen zugewiesen werden können.

Vorgehensweise

1. Mit der CREATE ROLE-Anweisung wird eine Rolle angelegt. Diese Rolle ist zunächst leer. Nur ein Datenbankadministrator (DBA-Benutzer) kann Rollen anlegen. Der Name einer neuen Rolle darf nicht mit dem Namen einer vorhandenen Rolle, eines Benutzers oder einer Benutzergruppe identisch sein.

2. Mit Hilfe der GRANT-Anweisung werden einer Rolle Privilegien zugewiesen. Mit Hilfe der REVOKE-Anweisung können einer Rolle Privilegien entzogen werden.

3. Eine Rolle kann mit Hilfe der GRANT-Anweisung unter Angabe des Rollennamens Datenbankbenutzern, Benutzergruppen oder Rollen zugewiesen werden.

4. Mit Hilfe der ALTER_USER- bzw. ALTER_USERGROUP-Anweisung legen Sie fest, welche der Rollen, die einem Benutzer bzw. einer Benutzergruppe zugeordnet wurden, beim Eröffnen einer Datenbanksitzung verwendet werden sollen.

5. Während einer Datenbanksitzung können Sie mit Hilfe der SET-Anweisung andere dem Benutzer bzw. der Benutzergruppe zugeordnete Rollen aktivieren
Wenn eine Rolle während einer Sitzung aktiviert wird, dann hat der aktuelle Benutzer der Sitzung alle Privilegien, die einer Rolle zugeordnet sind.
Wenn für eine Rolle ein Kennwort definiert wurde, können Benutzer, die dieser Rolle zugeordnet wurden, die Rolle nur durch die Angabe des Kennwortes in der SET-Anweisung aktivieren.

Ergebnis

Das Vorhandensein und die Eigenschaften einer Rolle werden in Form von Metadaten im Datenbankkatalog registriert. Ein Benutzer, der eine Rolle anlegt, wird zum Eigentümer dieser Rolle.

Die durch die ALTER USER- bzw. ALTER-USERGROUP-Anweisungen dem Benutzer bzw. der Benutzergruppe zugeordneten Rollen werden aktiviert, sobald eine Datenbanksitzung eröffnet wird.

Während der Ausführung von Datendefinitionsanweisungen sind Rollen nicht aktiv.


SERIAL (MaxDB: Referenzhandbuch)

SERIAL

SERIAL ist ein Zahlengenerator, der von 1 oder einem vorgegebenen Wert beginnend positive, ganze Zahlen erzeugt.

SERIAL kann als DEFAULT-Spezifikation für Spalten verwendet werden (DEFAULT SERIAL), die nur Festkommazahlen enthalten können. Der maximal vom Zahlengenerator erzeugte Wert ist (10**n)-1, wenn DEFAULT SERIAL für eine Spalte des Datentyps FIXED (n) definiert wird.

SERIAL-Spalten kann nur beim Einfügen einer Zeile ein Wert zugewiesen werden. Die Werte einer SERIAL-Spalte können nicht mit Hilfe einer UPDATE-Anweisung verändert werden. Eine SERIAL-Spalte kann deshalb zur eindeutigen Bestimmung der Einfügereihenfolge und zur eindeutigen Identifikation einer Zeile in einer Tabelle verwendet werden.


Spalte (MaxDB: Referenzhandbuch)

Spalte

Alle Werte einer Spalte einer Tabelle sind von demselben Datentyp . Ein Wert einer Spalte in einer Zeile ist die kleinste Einheit von Daten, die aus einer Tabelle selektiert werden kann, auf die Funktionen angewandt werden können oder die modifiziert werden kann.

  • Alphanumerische Spalte: ist eine Zeichenkette nspalte.
    Alle Zeichenketten in einer alphanumerischen Spalte haben dieselbe Länge.
  • Numerische Spalte: ist eine Gleitkomma- oder eine Festkommaspalte.
    Alle Zahlen einer Gleitkommaspalte (Gleitkomma     zahl ) haben dieselbe Mantissenlänge.
    Alle Zahlen einer Festkommaspalte (Festkomma     zahl ) haben dasselbe Format, d. h. dieselbe Anzahl von Vorkomma- und Nachkommastellen.

Jede Spalte einer Basistabelle hat einen innerhalb der Tabelle eindeutigen Namen.

Siehe auch:

Spaltenname

Angabe einer Spaltendefinition in SQL-Anweisungen: column_definition


Spezial-NULL-Wert (MaxDB: Referenzhandbuch)

Spezial-NULL-Wert

Ein Spezial-NULL-Wert ist ein spezieller Datentyp und entsteht bei arithmetischen Operationen, wenn diese zu einem Überlauf oder zu einer Division durch Null führen.

Der Spezial-NULL-Wert ist nur für die Ausgabespalten und für Spalten in der ORDER-Klausel zulässig. Tritt ein Überlauf bei einer arithmetischen Operation oder eine Division durch Null an einer anderen Stelle auf, führt das zum Abbruch der SQL-Anweisung.

Der Vergleich eines Spezial-NULL-Wertes mit einem beliebigen Wert ist immer undefiniert.

Bei der Sortierung ist der Spezial-NULL-Wert größer als alle Nicht-NULL-Werte, aber kleiner als der NULL-Wert .


SQL-Modus (MaxDB: Referenzhandbuch)

SQL-Modus

In dieser Dokumentation wird die Funktionalität des Datenbanksystems, die unter dem SQL-Modus INTERNAL zur Verfügung steht, beschrieben.

Es werden nur die SQL-Anweisungen beschrieben, für die gilt, dass das Erzeugen des Objektes und das Ausführen der Anweisung für dieses Objekt in demselben SQL-Modus erfolgt. Werden Datenbankobjekte unter einem SQL-Modus erzeugt und unter einem anderen SQL-Modus angesprochen, so kann es sein, dass dieses Objekt Eigenschaften hat, die unter dem aktuellen SQL-Modus nicht bekannt sind und deshalb auch nicht beschrieben werden.

SQL-Anweisung, um den SQL-Modus anzugeben

CONNECT-Anweisung


Subtransaktion (MaxDB: Referenzhandbuch)

Subtransaktion

Geschlossene, geschachtelte Transaktionen (Subtransaktionen) dienen dazu, eine Folge von Datenbankoperationen innerhalb einer Transaktion bezüglich der Änderungen in der Datenbank als Einheit erscheinen zu lassen.

Subtransaktionen werden durch SUBTRANS BEGIN eingeleitet und schließen mit SUBTRANS END oder SUBTRANS ROLLBACK ab.

  • SUBTRANS END: Wird eine Subtransaktion mit SUBTRANS END abgeschlossen, bleiben die durchgeführten Änderungen erhalten.
  • SUBTRANS ROLLBACK: Wenn eine Subtransaktion mit SUBTRANS ROLLBACK abgeschlossen wird, werden alle von ihr im Datenbanksystem durchgeführten Änderungen rückgängig gemacht. Es werden auch die Änderungen von in der Subtransaktion enthaltenen Subtransaktionen rückgängig gemacht, selbst wenn diese mit SUBTRANS END abgeschlossen wurden.

SUBTRANS END und SUBTRANS ROLLBACK haben keinen Einfluß auf Sperren. Diese werden erst durch COMMIT oder ROLLBACK freigegeben. COMMIT oder ROLLBACK schließen implizit alle Subtransaktionen.

Siehe auch:

SUBTRANS-Anweisung

COMMIT-Anweisung

ROLLBACK-Anweisung


Synonym (MaxDB: Referenzhandbuch)

Synonym

Ein Synonym ist ein anderer Name für eine Tabelle.

Jedes Synonym hat einen innerhalb des gesamten Datenbanksystems eindeutigen und von allen anderen Tabellennamen verschiedenen Namen.

Siehe auch:

Synonymname


Tabelle (MaxDB: Referenzhandbuch)

Tabelle

· Tabelle: ist eine Menge von Zeilen.
Zeile: ist eine geordnete Folge von Werten.
Die Zeile ist die kleinste Einheit von Daten, die in eine Tabelle eingefügt oder aus einer Tabelle gelöscht werden kann.
Jede Zeile einer Tabelle hat dieselbe Anzahl von Spalten und enthält für jede Spalte einen Wert.

· Basistabelle: ist eine Tabelle, die eine permanente Speicherdarstellung und Beschreibung besitzt.
Es ist auch möglich, eine Basistabelle zu definieren, die nur eine temporäre Speicherdarstellung und Beschreibung besitzt. Diese Tabelle und ihre Beschreibung werden implizit gelöscht, wenn die Arbeit eines Benutzers mit dem Datenbanksystem abgeschlossen ist (Sitzungsende).

· Ergebnistabelle: ist eine temporäre Tabelle, die durch die Ausführung einer SELECT-Anweisung aus einer oder mehreren Tabelle(n) erzeugt wird (Ergebnistabellenname).

· Temporäre Tabelle: Eigentümer der Tabelle ist TEMP. Temporäre Tabellen haben nur während einer Datenbanksitzung eines Benutzers Bestand und werden anschließend samt Inhalt wieder gelöscht.

· View-Tabelle: ist eine aus Basistabellen abgeleitete Tabelle mit einer permanenten Beschreibung in Form einer SELECT-Anweisung.

· Join-Tabelle: Verknüpfung von Tabellen (Join, Join-Tabelle (joined_table), JOIN-Prädikat (join_predicate))

Jede Tabelle hat einen innerhalb des gesamten Datenbanksystems eindeutigen Namen. Zur Benennung von Ergebnistabellen können die Namen bereits existierender Tabellen verwandt werden, auf die dann aber während der Existenz der Ergebnistabellen nicht mehr zugegriffen werden kann.

Wurde ein Tabellennamen ohne die Angabe eines Eigentümers (owner) definiert, so werden die Katalogteile in folgender Reihenfolge nach dem angegebenen Tabellennamen durchsucht:

1. Katalogteil des aktuellen Benutzers

2. Menge der PUBLIC-Synonyme

3. Katalogteil des DBA, der den aktuellen Benutzer erzeugt hat

4. Katalogteil des SYSDBA

5. Katalogteil des Eigentümers der Systemtabellen

.

Die Verwendung einer Tabelle eines anderen Benutzers ist allerdings nur bei entsprechender Privilegierung zulässig.

Siehe auch:

Tabellenname

Referenzname


Trigger (MaxDB: Referenzhandbuch)

Trigger

Während Datenbankprozeduren aus der Anwendungsprogrammiersprache heraus explizit aufgerufen werden, sind Trigger spezialisierte Prozeduren, die implizit nach der Ausführung einer Datenmanipulationsanweisung auf einer Basistabelle oder einer View-Tabelle, der diese Basistabelle zugrundeliegt, ablaufen.

Die Bedingungen, unter denen ein Trigger ausgeführt werden soll, können weiter eingeschränkt werden.

Der Trigger wird für jede Zeile, auf die sich die SQL-Anweisung bezieht, ausgeführt. Der Trigger kann dabei auf die alten Werte in dieser Zeile (Werte vor der Veränderung bzw. dem Löschen) und auf die neuen Werte (Werte nach der Veränderung bzw. dem Einfügen) zugreifen.

Ein Trigger kann implizit weitere Trigger aufrufen.

Trigger können dazu verwendet werden, um komplizierte Integritätsregeln zu prüfen, abgeleitete Datenbankmodifikationen für diese Zeile oder andere anzustoßen oder um komplizierte Regeln zum Zugriffsschutz zu implementieren.

Das Datenbanksystem stellt eine Sprache (spezielle SQL-Syntax) bereit, die verwendet werden kann, um Datenbankprozeduren und Trigger zu definieren.

Siehe auch:

Triggername


Wertebereich (MaxDB: Referenzhandbuch)

Wertebereich

Wertebereichsdefinitionen (auch Domänendefinition genannt) erlauben die Festlegung und Benennung von Wertebereichen für Tabellenspalten.

Jede Wertebereichsdefinition hat einen innerhalb des gesamten Datenbanksystems eindeutigen Namen.

Wurde ein Wertebereich ohne die Angabe eines Eigentümers (owner) definiert, so werden die Katalogteile in folgender Reihenfolge nach dem angegebenen Wertebereich durchsucht:

1. Katalogteil des aktuellen Benutzers

2. Katalogteil des DBA, der den aktuellen Benutzer erzeugt hat

3. Katalogteil des SYSDBA

Siehe auch:

Domänenname


Zahl (MaxDB: Referenzhandbuch)

Zahl

Eine Zahl ist ein spezieller Datentyp . Es gibt Festkomma- und Gleitkommazahlen:

  • Festkommazahl

wird durch die Anzahl signifikanter Stellen und die Anzahl der Nachkommastellen beschrieben. Die Anzahl signifikanter Stellen beträgt maximal 38 Ziffern.

Beispiele: FIXED , INT[EGER] , SMALLINT
  • Gleitkommazahl

besteht aus einer Mantisse und einem Exponenten. Die Mantisse darf höchstens 38 signifikante Stellen haben. Der zulässige Wertebereich von Gleitkommazahlen besteht aus den Intervallen von -9.9999999999999999999999999999999999999E+62 bis -1E-64 und von +1E-64 bis +9.9999999999999999999999999999999999999E+62 sowie dem Wert 0.0.

Beispiel: FLOAT

Alle Zahlen sind miteinander vergleichbar.


Zeichenkette (MaxDB: Referenzhandbuch)

Zeichenkette

Eine Zeichenkette ist ein Datentyp, der eine Folge von alphanumerischen Zeichen ist.

Beispiele: CHAR[ACTER], VARCHAR, DATE, TIME, TIMESTAMP

Bei einer Spaltendefinition kann für die Datentypen CHAR[ACTER] und VARCHAR ein Codeattribut angegeben werden.

Für die Datentypen CHAR[ACTER] und VARCHAR gelten folgende Vergleichsmöglichkeiten:

Zeichenketten mit gleichem Codeattribut | Diese Zeichenketten sind untereinander vergleichbar.
Zeichenketten mit den Codeattributen ASCII oder UNICODE | Diese Zeichenketten sind mit Zeichenketten der Codeattribute ASCII oder UNICODE und mit Datums-, Zeit- und Zeitstempelwerten vergleichbar.


Zeitstempelwert (MaxDB: Referenzhandbuch)

Zeitstempelwert

Der Datentyp Zeitstempelwert ist eine spezielle Zeichenkette. Ein Zeitstempel setzt sich aus einem Datums- und einem Zeitwert und der Angabe von Mikrosekunden zusammen.

Ein Zeitstempelwert ist mit anderen Zeitstempelwerten und mit Zeichenketten der Codeattribute ASCII und UNICODE vergleichbar.

Siehe auch:

TIMESTAMP

Datums- und Zeitformat


Zeitwert (MaxDB: Referenzhandbuch)

Zeitwert

Der Datentyp Zeitwert ist eine spezielle Zeichenkette.

Ein Zeitwert ist mit anderen Zeitwerten und mit Zeichenketten der Codeattribute ASCII und UNICODE vergleichbar.

Siehe auch:

TIME

Datums- und Zeitformat


Syntaxverzeichnis (MaxDB: Referenzhandbuch)

Syntaxverzeichnis

Die in diesem Dokument verwendete Syntaxnotation ist die BNF.

A

<add_definition> ::=
 ADD <column_definition>,...
| ADD (<column_definition>,...)
| ADD <constraint_definition>
| ADD <referential_constraint_definition>
| ADD <key_definition>

<alias_name> ::=
 <identifier>

<all_function> ::=
 <set_function_name> ( [ALL] <expression> )

<alter_definition> ::=
 ALTER CONSTRAINT <constraint_name> CHECK <search_condition>
| ALTER <key_definition>

<alter_index_statement> ::=
 ALTER INDEX <index_name> [ON <table_name>] ENABLE
| ALTER INDEX <index_name> [ON <table_name>] DISABLE
| ALTER INDEX <index_name> [ON <table_name>] INIT USAGE

<alter_password_statement>::=
 ALTER PASSWORD <old_password> TO <new_password>
| ALTER PASSWORD <user_name> <new_password>

<alter_table_statement> ::=
ALTER TABLE <table_name> <add_definition>
| ALTER TABLE <table_name> <drop_definition>
| ALTER TABLE <table_name> <alter_definition>
| ALTER TABLE <table_name> <column_change_definition>
| ALTER TABLE <table_name> <modify_definition>
| ALTER TABLE <table_name> <referential_constraint_definition>
| ALTER TABLE <table_name> DROP FOREIGN KEY <referential_constraint_name>
| ALTER TABLE <table_name> <sample_definition>

<alter_user_statement> ::=
 ALTER USER <user_name> [<user_mode>]
[TIMEOUT <unsigned_integer> | TIMEOUT NULL]
[COSTWARNING <unsigned_integer> | COSTWARNING NULL]
[COSTLIMIT <unsigned_integer> | COSTLIMIT NULL]
[DEFAULT ROLE ALL [EXCEPT <role_name>] | DEFAULT ROLE NONE
| DEFAULT ROLE <role_name> [IDENTIFIED BY <password>]]
[[NOT] EXCLUSIVE]
[DEFAULTCODE <ASCII | UNICODE>]

<alter_usergroup_statement> ::=
 ALTER USERGROUP <usergroup_name> [<usergroup_mode>]
[TIMEOUT <unsigned_integer> | TIMEOUT NULL]
[COSTWARNING <unsigned_integer> | COSTWARNING NULL]
[COSTLIMIT <unsigned_integer> | COSTLIMIT NULL]
[DEFAULT ROLE ALL [EXCEPT <role_name>] | DEFAULT ROLE NONE
| DEFAULT ROLE <role_name> [IDENTIFIED BY <password>]]
[[NOT] EXCLUSIVE]
[DEFAULTCODE <ASCII | UNICODE>]

<argument> ::=
<identifier>

<argument1> ::=
<identifier>

<arithmetic_function> ::=
TRUNC ( <expression>[, <expression>] )
| ROUND ( <expression>[, <expression>] )
| NOROUND ( <expression> )
| FIXED ( <expression>[, <unsigned_integer> [, <unsigned_integer] ] )
| FLOAT ( <expression>[, <unsigned_integer> ] )
| CEIL ( <expression> )
| FLOOR ( <expression> )
| SIGN ( <expression> )
| ABS ( <expression> )
| POWER ( <expression>, <expression> )
| EXP ( <expression> )
| SQRT ( <expression> )
| LN ( <expression> )
| LOG ( <expression>, <expression> )
| PI
| LENGTH ( <expression> )
| INDEX ( <string_spec>, <string_spec> [,<expression>[, <expression>] ] )

<assignment_statement> ::=
SET <variable_name> = <expression>

B

<between_predicate> ::=
 <expression> [NOT] BETWEEN <expression> AND <expression>

<bool_predicate> ::=
<column_spec> [ IS [NOT] <TRUE | FALSE>]

<boolean_factor> ::=
[NOT] <predicate>
| [NOT] (<search_condition>)

<boolean_term> ::=
 <boolean_factor>
| <boolean_term> AND <boolean_factor>

C

<call_statement> ::=
 CALL <dbproc_name> [(<expression>,...)] [WITH COMMIT]

<cascade_option> ::=
CASCADE
| RESTRICT

<case_else_clause> ::=
 ELSE <statement>

<case_function> ::=
 <simple_case_function>
| <searched_case_function>

<case_statement> ::=
 <simple_case_statement>
| <searched_case_statement>

<character> ::=
 <digit>
| <letter>
| <extended_letter>
| <hex_digit>
| <language_specific_character>
| <special_character>

<close_statement> ::=
CLOSE [<result_table_name>]

<column_attributes> ::=
[<key_or_not_null_spec>] [<default_spec>] [UNIQUE] [<constraint_definition>]
[REFERENCES <referenced_table> [(<referenced_column>)] [<delete_rule>]]

<column_change_definition> ::=
COLUMN <column_name> NOT NULL
| COLUMN <column_name> DEFAULT NULL
| COLUMN <column_name> ADD <default_spec>
| COLUMN <column_name> ALTER <default_spec>
| COLUMN <column_name> DROP DEFAULT

<column_definition> ::=
<column_name> <data_type> [<column_attributes>]
| <column_name> <domain_name> [<column_attributes>]

<column_list> ::=
<column_name>
| <column_list>, <column_name>

<column_name> ::=
<identifier>

<column_spec> ::=
<column_name>
| <table_name>.<column_name>
| <reference_name>.<column_name>
| <result_table_name>.<column_name>

<comment> ::=
<string_literal>
| <parameter_name>

<comment_on_statement> ::=
COMMENT ON <object_spec> IS <comment>

<commit_statement> ::=
COMMIT [WORK]

<comp_op> ::=
<
| >
| <>
| !=
| =
| <=
| >=
| ~= | ~< | ~> (für Maschinen mit ASCII-Code)

<comparison_predicate> ::=
<expression> <comp_op> <expression>
| <expression> <comp_op> <subquery>
| <expression_list> <equal_or_not> (<expression_list>)
| <expression_list> <equal_or_not> <subquery>

<connect_option> ::=
SQLMODE <INTERNAL | ANSI | DB2 | ORACLE>
| ISOLATION LEVEL <unsigned_integer>
| TIMEOUT <unsigned_integer>

<connect_statement> ::=
CONNECT <parameter_name> IDENTIFIED BY <parameter_name> [<connect_option>...]
| CONNECT <parameter_name> IDENTIFIED BY <password> [<connect_option>...]
| CONNECT <user_name> IDENTIFIED BY <parameter_name> [<connect_option>...]
| CONNECT <user_name> IDENTIFIED BY <password> [<connect_option>...]

<constraint_definition> ::=
CHECK <search_condition>
| CONSTRAINT <search_condition>
| CONSTRAINT <constraint_name> CHECK <search_condition>

<constraint_name> ::=
 <identifier>

<conversion_function> ::=
NUM (<expression>)
| CHR (<expression>[,<unsigned_integer>])
| HEX (<expression>)
| HEXTORAW (<expression>)
| CHAR (<expression>[,<datetimeformat>])

<create_dbproc_statement> ::=
CREATE DBPROC <procedure_name> [(<formal_parameter>,..)] [RETURNS CURSOR] AS <routine>

<create_domain_statement> ::=
  CREATE DOMAIN <domain_name> <data_type> [<default_spec>] [<constraint_definition>]

<create_function_statement> ::=
 CREATE FUNCTION <dbfunction_name>
[(<formal_parameter1>,...)] RETURNS <data_type> AS <routine>

<create_index_statement> ::=
CREATE [UNIQUE] INDEX <index_name> ON <table_name> (<index_spec>)

<create_role_statement> ::=
CREATE ROLE <role_name> [IDENTIFIED BY <password>]

<create_sequence_statement>

::=
CREATE

SEQUENCE [<owner>.]<sequence_name>
[INCREMENT BY <integer>]
[START WITH <integer>]
[MAXVALUE <integer> | NOMAXVALUE]
[MINVALUE <integer> | NOMINVALUE]
[CYCLE | NOCYCLE]
[CACHE <unsigned_integer> | NOCACHE]
[ORDER|NOORDER]

<create_synonym_statement> ::=
  CREATE [PUBLIC] SYNONYM [<owner>.]<synonym_name> FOR <table_name>

<create_table_statement> ::=
CREATE TABLE <table_name> (<column_definition> [,<table_description_element>,...])
[IGNORE ROLLBACK] [NO FIXED LENGTH COLUMN] [<sample_definition>]
| CREATE TABLE <table_name> [(<table_description_element>,...)]
[IGNORE ROLLBACK] [NO FIXED LENGTH COLUMN] [<sample_definition>]
AS <query_expression> [<duplicates_clause>]
| CREATE TABLE <table_name> LIKE <table_name> [IGNORE ROLLBACK]

<create_table_temp> :: =
<create_table_statement> für das Anlegen temporärer Tabellen,
d.h. der Tabellenname table_name in der CREATE TABLE-Anweisung
muss die Form TEMP.<identifier> haben.

<create_trigger_statement> ::=
CREATE TRIGGER <trigger_name> FOR <table_name> AFTER <trigger_event,..>
EXECUTE (<routine>) [WHENEVER <search_condition>]

<create_user_statement> ::=
CREATE USER <user_name> PASSWORD <password>
[<user_mode>]
[TIMEOUT <unsigned_integer>]
[COSTWARNING <unsigned_integer>]
[COSTLIMIT <unsigned_integer>]
[[NOT] EXCLUSIVE]
[DEFAULTCODE <ASCII | UNICODE>]
| CREATE USER <user_name> PASSWORD <password> LIKE <source_user>
| CREATE USER <user_name> PASSWORD <password> USERGROUP <usergroup_name>

<create_usergroup_statement> ::=
CREATE USERGROUP <usergroup_name>
[<usergroup_mode>]
[TIMEOUT <unsigned_integer>]
[COSTWARNING <unsigned_integer>]
[COSTLIMIT <unsigned_integer>]
[[NOT] EXCLUSIVE]
[DEFAULTCODE <ASCII | UNICODE>]

<create_view_statement> ::=
CREATE [OR REPLACE] VIEW <table_name> [(<alias_name>,...)]
AS <query_expression> [WITH CHECK OPTION]

D

<data_type> ::=
CHAR[ACTER] [(<unsigned_integer>)] [ASCII | BYTE | UNICODE]
| VARCHAR [(<unsigned_integer>)] [ASCII | BYTE | UNICODE]
| LONG [VARCHAR] [ASCII | BYTE | UNICODE]
| BOOLEAN
| FIXED (<unsigned_integer> [,<unsigned_integer>])
| FLOAT (<unsigned_integer>)
| INT[EGER]
| SMALLINT
| DATE
| TIME
| TIMESTAMP

<date_function> ::=
ADDDATE (<date_or_timestamp_expression>, <expression>)
| SUBDATE ( <date_or_timestamp_expression>, <expression> )
| DATEDIFF ( <date_or_timestamp_expression>, <date_or_timestamp_expression> )
| DAYOFWEEK ( <date_or_timestamp_expression> )
| WEEKOFYEAR ( <date_or_timestamp_expression> )
| DAYOFMONTH ( <date_or_timestamp_expression> )
| DAYOFYEAR ( <date_or_timestamp_expression> )
| MAKEDATE ( <expression>, <expression> )
| DAYNAME ( <date_or_timestamp_expression> )
| MONTHNAME ( <date_or_timestamp_expression> )

<date_or_timestamp_expression> ::=
 <expression>

<datetimeformat> ::=
EUR
| INTERNAL
| ISO
| JIS
| USA

<dbfunction_call> ::=
 <dbfunction_name> ( [<expression>,...] )

<dbfunction_name> ::=
 [<owner>.]<identifier>

<dbproc_name> ::=
[<owner>.]<procedure_name>

<declare_cursor_statement> ::=
DECLARE <result_table_name> CURSOR FOR <select_statement>

<default_predicate> ::=
<column_spec> <comp_op> DEFAULT

<default_spec> ::=
DEFAULT <literal >
| DEFAULT NULL
| DEFAULT USER
| DEFAULT USERGROUP
| DEFAULT SYSDBA
| DEFAULT DATE
| DEFAULT TIME
| DEFAULT TIMESTAMP
| DEFAULT UTCDATE
| DEFAULT UTCDIFF
| DEFAULT TIMEZONE
| DEFAULT TRUE
| DEFAULT FALSE
| DEFAULT TRANSACTION
| DEFAULT STAMP
| DEFAULT SERIAL[(<unsigned_integer>)]

<delete_rule> ::=
ON DELETE CASCADE
| ON DELETE RESTRICT
| ON DELETE SET DEFAULT
| ON DELETE SET NULL

<delete_statement> ::=
DELETE [FROM] <table_name> [<reference_name>]
[KEY <key_spec>,...] [WHERE <search_condition>]
| DELETE [FROM] <table_name> [<reference_name>]
WHERE CURRENT OF <result_table_name >

<delimiter_token> ::=
( | ) | , | . | + | - | * | / | < | > | <> | != | = | <= | >=
| ~= | ~< | ~> (für Maschinen mit ASCII-Code)

<derived_column> ::=
<expression> [ [AS] <result_column_name >]
| <result_column_name> = <expression>

<digit> ::=
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

<digit_sequence> ::=
<digit>...

<distinct_function>::=
<set_function_name> ( DISTINCT <expression > )

<distinct_spec> ::=
DISTINCT
| ALL

<domain_name> ::=
[<owner>.]<identifier>

<doubles_quotes> ::=
"

<drop_dbproc_statement> ::=
DROP DBPROC <dbproc_name>

<drop_definition> ::=
DROP <column_name>,... [<cascade_option >] [RELEASE SPACE]
| DROP (<column_name>,...) [<cascade_option>] [RELEASE SPACE]
| DROP CONSTRAINT <constraint_name>
| DROP PRIMARY KEY

<drop_domain_statement> ::=
DROP DOMAIN <domain_name>

<drop_function_statement> ::=
 DROP FUNCTION <dbfunction_name>

<drop_index_statement> ::=
DROP INDEX <index_name> [ON <table_name>]

<drop_role_statement> ::=
DROP ROLE <role_name>

<drop_sequence_statement> ::=
DROP SEQUENCE [<owner>.]<sequence_name>

<drop_synonym_statement> ::=
DROP [PUBLIC] SYNONYM [<owner>.]<synonym_name>

<drop_table_statement> ::=
DROP TABLE <table_name> [<cascade_option>]

<drop trigger statement> ::=
DROP TRIGGER <trigger_name> OF <table_name>

<drop_user_statement> ::=
DROP USER <user_name> [<cascade_option>]

<drop_usergroup_statement> ::=
DROP USERGROUP <usergroup_name> [<cascade_option>]

<drop_view_statement> ::=
DROP VIEW <table_name> [<cascade_option>]

<duplicates_clause> ::=
REJECT DUPLICATES
| IGNORE DUPLICATES
| UPDATE DUPLICATES

E

<equal_or_not> ::=
<>
| =
| ~= (für Maschinen mit ASCII-Code)

<exists_predicate> ::=
EXISTS <subquery >

<exists_table_statement> ::=
EXISTS TABLE <table_name >

<explain_statement> ::=
EXPLAIN [(<result_table_name>)] <query_statement>
| EXPLAIN [(<result_table_name>)] <single_select_statement >

<exponent> ::=
[<sign>][[<digit>]<digit>]<digit>

<expression> ::=
<term>
| <expression> + <term>
| <expression> - <term>

<expression_list> ::=
(<expression>,...)

<extended_expression> ::=
<expression>
| DEFAULT
| STAMP

<extended_letter> ::=
#
| @
| $

<extended_value_spec> ::=
<value_spec>
| DEFAULT
| STAMP

<extraction_function> ::=
YEAR ( <date_or_timestamp_expression > )
| MONTH ( <date_or_timestamp_expression> )
| DAY ( <date_or_timestamp_expression> )
| HOUR ( <time_or_timestamp_expression > )
| MINUTE ( <time_or_timestamp_expression> )
| SECOND ( <time_or_timestamp_expression> )
| MICROSECOND ( <expression> )
| TIMESTAMP ( <expression>[, <expression> ] )
| DATE ( <expression> )
| TIME ( <expression> )

F

<factor> ::=
[<sign>] <value_spec>
| [<sign>] <column_spec>
| [<sign>] <function_spec>
| [<sign>] <set_function_spec>
| <scalar_subquery>
| <expression>

<fetch_statement> ::=
 FETCH [FIRST | LAST | NEXT | PREV | <position> | SAME] [<result_table_name>]
INTO <parameter_spec>,...

<final_select> ::=
<select_statement>

<first_character> ::=
<letter>
| <extended_letter>
| <language_specific_character>

<first_password_character> ::=
<letter>
| <extended_letter>
| <language_specific_letter>
| <digit>

<fixed_point_literal> ::=
[<sign>]<digit_sequence>[.<digit_sequence>]
| [sign]<digit_sequence>.
| [sign].<digit_sequence>

<floating_point_literal> ::=
<mantissa>E<exponent>
| <mantissa>e<exponent>

<formal_parameter> ::=
IN <argument> <data_type>
| OUT <argument> <data_type>
| INOUT <argument> <data_type>

<formal_parameter1> ::=
  <argument1> <data_type>

<from_clause> ::=
  FROM <from_table_spec>,...

<from_table_spec> ::=
  <table_name> [AS][<reference_name>]
| <result_table_name> [AS][<reference_name>]
| (<query_expression>) [AS][<reference_name>]
| <joined_table>

<function_spec> ::=
  <arithmetic_function>
| <trigonometric_function>
| <string_function>
| <date_function>
| <time_function>
| <extraction_function>
| <special_function>
| <conversion_function>
| <dbfunction_call>

G

<grant_statement> ::=
  GRANT <priv_spec>,... TO <grantee>,... [WITH GRANT OPTION]
| GRANT EXECUTE ON <dbproc_name>  TO <grantee>,...
| GRANT SELECT ON <sequence_name> TO <grantee>,... [WITH GRANT OPTION]

<grant_user_statement> ::=
  GRANT USER <granted_users> [FROM <user_name>] TO <user_name>

<grant_usergroup_statement> ::=
  GRANT USERGROUP <granted_usergroups> [FROM <user_name>] TO <user_name>

<granted_usergroups> ::=
  <usergroup_name>,...
| *

<granted_users> ::=
  <user_name>,...
| *

<grantee> ::=
  PUBLIC
| <user_name>
| <usergroup_name>
| <role_name>

<group_clause> ::=
  GROUP BY <expression>,...

H

<having_clause> ::=
  HAVING <search_condition>

<hex_digit> ::=
  0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
| A | B | C | D | E | F
| a | b | c | d | e | f

<hex_digit_seq> ::=
  <hex_digit><hex_digit>
| <hex_digit_seq><hex_digit><hex_digit>

<hex_literal> ::=
  x''
| X''
| x'<hex_digit_seq>'
| X'<hex_digit_seq>'

<hours> ::=
  <expression>

I

<identifier> ::=
  <simple_identifier>
| <double quotes><special_identifier><double_quotes>

<identifier_tail_character> ::=
  <letter>
| <extended_letter>
| <language_specific_character>
| <digit>
| <underscore>

<if_statement> ::=
  IF <search_condition> THEN <statement> [ELSE <statement>]

<in_predicate> ::=
  <expression> [NOT] IN <subquery>
| <expression> [NOT] IN <expression_list>
| <expression_list> [NOT] IN <subquery>
| <expression_list> [NOT] IN (<expression_list>,...)

<index_name> ::=
  <identifier>

<index_spec> ::=
  <column_name> [ASC|DESC],...
| <dbfunction_name> (<column_name>,...) [ASC|DESC]

<indicator_name> ::=
  <parameter_name>

<initial_select> ::=
  <query_spec>

<insert_expression> ::=
  <extended_expression>
| <subquery>

<insert_statement> ::=
  INSERT [INTO] <table_name> [(<column_name>,...)]
    VALUES (<insert_expression>,...) [<duplicates_clause>]
| INSERT [INTO] <table_name> [(<column_name>,...)]
    <query_expression> [<duplicates_clause>]
| INSERT [INTO] <table_name> SET <set_insert_clause>,... [<duplicates_clause>]

<integer> ::=
  [sign]<unsigned_integer>

J

<join_predicate> ::=
  <expression> [<outer_join_indicator>] <comp_op> <expression> [<outer_join_indicator>]

<join_spec> ::=
  ON <search_condition>

<joined_table> ::=
  <from_table_spec> CROSS JOIN <from_table_spec>
| <from_table_spec> [INNER] JOIN <from_table_spec> <join_spec>
| <from_table_spec> [<LEFT|RIGHT|FULL> [OUTER]] JOIN
    <from_table_spec> <join_spec>

K

<key_definition> ::
  PRIMARY KEY (<column_name>,...)

<key_or_not_null_spec> ::=
  [PRIMARY] KEY
| NOT NULL [WITH DEFAULT]

<key_spec> ::=
  <column_name> = <value_spec>

<key_word> ::=
  <not_reserved_key_word>
| <reserved_keyword>

L

<language_specific_character> ::=
  <jeder Buchstabe, der in einer nord-, mittel- oder südeuropäischen Sprache
  vorkommt und nicht in der Auflistung <letter> enthalten ist>
| <für UNICODE-fähige Datenbanken: jedes Zeichen, das nicht in der
  ASCII-Code-Liste von 0 bis 127 enthalten ist>

<letter> ::=
  A | B | C | D | E | F | G | H | I | J | K | L | M
| N | O | P | Q | R | S | T | U | V | W | X | Y | Z
| a | b | c | d | e | f | g | h | i | j | k | l | m
| n | o | p | q | r | s | t | u | v | w | x | y | z

<like_expression> ::=
  <expression>
| '<pattern_element>...'

<like_predicate> ::=
  <expression> [NOT] LIKE <like_expression> [ESCAPE <expression>]

<literal> ::=
  <string_literal>
| <numeric_literal>

<local_variable> ::=
  <variable_name> <data_type>

<local_variable_list> ::=
  <local_variable>
| <local_variable_list>;<local_variable>

<local_variables> ::=
  VAR <local_variable_list>;

<lock_option> ::=
  WITH LOCK [(IGNORE)|(NOWAIT)] [EXCLUSIVE | OPTIMISTIC] [ISOLATION LEVEL <unsigned_integer>]

<lock_spec> ::=
  TABLE <table_name>,...
| <row_spec>...
| TABLE <table_name>,... <row_spec>...

<lock_statement> ::=
  LOCK [(WAIT)|(NOWAIT)] <lock_spec> IN SHARE MODE
| LOCK [(WAIT)|(NOWAIT)] <lock_spec> IN EXCLUSIVE MODE
| LOCK [(WAIT)|(NOWAIT)] <row_spec>... OPTIMISTIC
| LOCK [(WAIT)|(NOWAIT)] <lock_spec> IN SHARE MODE <lock_spec> IN EXCLUSIVE MODE

M

<mantissa> ::=
  <fixed_point_literal>

<mapchar_set_name> ::=
  <identifier>

<match_car> ::=
  Jedes Zeichen außer
    %
  | X'1F'
  | <underscore>
  | X'1E'

<match_set> ::=
  <underscore>
| X'1E'
| <match_char>

<match_string> ::=
  %
| X'1F'

<minutes> ::=
  <expression>

<modify_definition> ::=
  MODIFY (<column_name> [<data_type>] [<column_attributes>]...)

<monitor_statement> ::=
  MONITOR INIT

N

<named_query_expression> ::=
<named_query_term>
| <named_query_expression> UNION [ALL] <query_term>
| <named_query_expression> EXCEPT [ALL] <query_term>

<named_query_primary> ::=
<named_query_spec>
| (<named_query_expression>)

<named_query_spec> ::=
SELECT [<distinct_spec>] <result_table_name>
(<select_column>,...) <table_expression>

<named_query_term> ::=
<named_query_primary>
| <named_query_term> INTERSECT [ALL] <query_primary>

<named_select_statement> ::=
<named_query_expression> [<order_clause>]
[<update_clause>] [<lock_option>] [FOR REUSE]

<new_index_name> ::=
  <index_name>

<new_table_name> ::=
  <table_name>

<next_stamp_statement> ::=
  NEXT STAMP [INTO] <parameter_name>

<not_reserved_key_word> ::=

ADD | ADDRESS | ADD_MONTHS | AFTER | ALTERIN
ANALYZE | AND | ANSI | APPEND | ARCHIVE
AS | ASC | AT | AUTHORIZATION | AUTO
AUTOSAVE |  |  |  |
BACKUP_PAGES | BAD | BEFORE | BEGIN | BEGINLOAD
BEGINPROC | BETWEEN | BLOCK | BLOCKSIZE | BOTH
BREAK | BUFFER | BUFFERPOOL | BWHIERARCHY | BY
CACHE | CACHELIMIT | CACHES | CALL | CANCEL
CASCADE | CATALOG | CATCH | CHECKPOINT | CLEAR
CLOSE | CLUSTER | COMMENT | COMMIT | COMPUTE
CONFIG | CONNECT | CONSTRAINTS | CONTAINER | CONTINUE
COSTLIMIT | COSTWARNING | CREATE | CREATEIN | CURRENT_DATE
CURRENT_SCHEMA | CURRENT_TIME | CURRENT_TIMESTAMP | CURRVAL | CURSOR
CYCLE |  |  |  |
DATA | DAYS | DB2 | DBA | DBPROC
DBPROCEDURE | DB_ABOVE_LIMIT | DB_BELOW_LIMIT | DEBUG | DECLARE
DEFAULTCODE | DEGREE | DESC | DESCRIBE | DEVICE
DIAGNOSE | DIMENSION | DISABLE | DIV | DO
DOMAIN | DROP | DROPIN | DSETPASS | DUPLICATES
DYNAMIC |  |  |  |
EDITPROC | ELSE | ENABLE | END | ENDLOAD
ENDPROC | ERROR | ESCAPE | ESTIMATE | EUR
EVENT | EXCLUSIVE | EXECUTE | EXPLAIN | EXPLICIT
EXTENDED |  |  |  |
FACT | FALSE | FETCH | FILE | FLUSH
FORCE | FOREIGN | FORMAT | FREEPAGE | FUNCTION
FVERSION |  |  |  |
GET | GRANT |  |  |
HIGH | HOLD | HOURS |  |
IDENTIFIED | IF | IMPLICIT | IN | INCREMENT
INDEXNAME | INDICATOR | INFO | INIT | INITRANS
INOUT | INPROC | INSTANCE | INSTR | IS
ISO | ISOLATION |  |  |
JAVA | JIS |  |  |
LABEL | LANGUAGE | LAST_DAY | LEVEL | LIKE
LOAD | LOCAL | LOCK | LOGFULL | LOGWRITER
LOG_ABOVE_LIMIT | LOW |  |  |
MAXTRANS | MAXVALUE | MEDIANAME | MEDIUM | MICROSECONDS
MIGRATE | MINUS | MINUTES | MINVALUE | MODE
MODIFY | MONITOR | MONTHS | MONTHS_BETWEEN |
NAME | NEW | NEW_TIME | NEXTVAL | NEXT_DAY
NLSSORT | NLS_DATE_FORMAT | NLS_DATE_LANGUAGE | NLS_LANGUAGE | NLS_SORT
NOCACHE | NOCYCLE | NOLOG | NOMAXVALUE | NOMINVALUE
NONE | NOORDER | NOREWIND | NORMAL | NOSORT
NOWAIT | NUMBER | NVL |  |
OBID | OFF | ONLY | OPEN | OPTIMISTIC
OPTIMIZE | OPTION | OR | ORACLE | OUT
OUTER | OVERWRITE |  |  |
PACKAGE | PAGE | PAGES | PARAM | PARSE
PARSEID | PASSWORD | PCTFREE | PCTUSED | PERCENT
PING | PIPE | POS | PRECISION | PREPARE
PRIV | PRIVILEGES | PROC | PROCEDURE | PSM
PUBLIC |  |  |  |
QUICK |  |  |  |
RANGE | RAW | RAWTOHEX | READ | RECURSIVE
REFERENCES | REGISTER | RELEASE | REMOTE | REMOVE
RENAME | REPLICATION | RESOURCE | RESTART | RESTORE
RESTRICT | RESUME | RETURN | RETURNS | REUSE
REVOKE | ROLE | ROLLBACK | ROW | ROWNUM
ROWS |  |  |  |
SAME | SAMPLE | SAPR3 | SAVE | SAVEPOINT
SCHEMA | SECONDS | SELECTIVITY | SEQUENCE | SERVERDB
SESSION | SHARE | SHUTDOWN | SNAPSHOT | SOUNDS
SQLID | SQLMODE | STANDARD | STANDBY | START
STARTPOS | STAT | STATE | STATIC | STOP
STORAGE | SUBPAGES | SUBTRANS | SUSPEND | SWITCH
SYNCHRONIZE | SYNONYM | SYSDATE |  |
TABID | TABLESPACE | TAKEOVER | TAPE | TEMP
THEN | TIMEOUT | TOPIC | TO_CHAR | TO_DATE
TO_NUMBER | TRACE | TRIGGER | TRUE | TRY
TYPE |  |  |  |
UNIQUE | UNKNOWN | UNLOAD | UNLOCK | UNTIL
UNUSED | USA | USAGE | USERID |
VALIDPROC | VARCHAR2 | VERIFY | VERSION | VIEW
VOLUME | VSIZE | VTRACE |  |
WAIT | WHENEVER | WHILE | WORK | WRITE
WRITER |  |  |  |
YEARS |  |  |  |

<null_predicate> ::=
  <expression> IS [NOT] NULL

<numeric_literal> ::=
  <fixed_point_literal >
| <floating_point_literal>

O

<object_spec> ::=
  COLUMN <table_name>.<column_name>
| DBPROC[EDURE] <dbproc_name>
| DOMAIN <domain_name>
| FOREIGN KEY <table_name>.<referential_constraint_name>
| INDEX <index_name> ON <table_name>
| SEQUENCE <sequence_name>
| [PUBLIC] SYNONYM <synonym_name>
| TABLE <table_name>
| TRIGGER <trigger_name>.<table_name>
| USER <user_name>
| USERGROUP <usergroup_name>
| <parameter_name>

<old_index_name> ::=
  <index_name>

<old_table_name> ::=
  <table_name>

<open_cursor_statement> ::=
  OPEN <result_table_name>

<order_clause> ::=
  ORDER BY <sort_spec>,...

<outer_join_indicator> ::=
  (+)

<owner> ::=
  <user_name>
| <usergroup_name>
| TEMP

P

<parameter_name> ::=
  :<identifier>
| :<identfier>(<identifier>)
| :<identfier>(.<identifier>.)

<parameter_spec> ::=
  <parameter_name> [<indicator_name>]

<password> ::=
  <identifier>
| <first_password_character>[<identifier_tail_character>...]

<pattern_element> ::=
  <match_string>
| <match_set>

<position> ::=
  POS (<unsigned_integer>)
| POS (<parameter_spec>)
| ABSOLUTE <integer>
| ABSOLUTE <parameter_spec>
| RELATIVE <integer>
| RELATIVE <parameter_spec>

<predicate> ::=
  <between_predicate>
| <bool_predicate>
| <comparison_predicate>
| <default_predicate>
| <exists_predicate>
| <in_predicate>
| <join_predicate>
| <like_predicate>
| <null_predicate>
| <quantified_predicate>
| <rowno_predicate>
| <sound_predicate>

<priv_spec> ::=
  ALL [PRIV[ILEGES]] ON [TABLE] <table_name>,...
| <privilege>,...  ON [TABLE] <table_name>,...
| <role_name>

<privilege> ::=
  INSERT
| UPDATE [(<column_name>,...)]
| SELECT [(<column_name>,...)]
| SELUPD [(<column_name>,...)]
| DELETE
| INDEX
| ALTER
| REFERENCES [(<column_name>,...)]

<procedure_name> ::=
  <identifier>

Q

<quantified_predicate> ::=
  <expression> <comp_op> <quantifier> <expression_list>
| <expression> <comp_op> <quantifier> <subquery>
| <expression_list> <equal_or_not> <quantifier> (<expression_list>,...)
| <expression_list> <equal_or_not> <quantifier> <subquery>

<quantifier> ::=
  ALL
| SOME
| ANY

<query_expression> ::=
  <query_term>
| <query_expression> UNION [ALL] <query_term>
| <query_expression> EXCEPT [ALL] <query_term>

<query_primary> ::=
  <query_spec>
| (<query_expression>)

<query_spec> ::=
  SELECT [<distinct_spec>] <select_column>,... <table_expression>

<query_statement> ::=
  <declare_cursor_statement>
| <recursive_declare_cursor_statement>
| <named_select_statement>
| <select_statement>

<query_term> ::=
  <query_primary>
| <query_term> INTERSECT [ALL] <query_primary>

R

<recursive_declare_cursor_statement> ::=
  DECLARE <result_table_name> CURSOR FOR WITH RECURSIVE <reference_name>     (<alias_name>,...) AS (<initial_select> UNION ALL <recursive_select>) <final_select>

<recursive_select> ::=
  <query_spec>

<reference_name> ::=
  <identifier>

<referenced_column> ::=
  <column_name>

<referenced_table> ::=
  <table_name>

<referencing_column> ::=
  <column_name>

<referential_constraint_definition> ::=
  FOREIGN KEY [<referential_constraint_name>] (<referencing_column>,...)
    REFERENCES <referenced_table> [(<referenced_column>,...)] [<delete_rule>]

<referential_constraint_name> ::=
  <identifier>

<regular_token> ::=
  <literal>
| <key_word>
| <identifier>
| <parameter_name>

<release_statement> ::=
  COMMIT [WORK] RELEASE
| ROLLBACK [WORK] RELEASE

<rename_column_statement> ::=
  RENAME COLUMN <table_name>.<column_name> TO <column_name>

<rename_index_statement> ::=
  RENAME INDEX <old_index_name> [ON <table_name>] TO <new_index_name>

<rename_synonym_statement> ::=
  RENAME [PUBLIC] SYNONYM <old_synonym_name> TO <new_synonym_name>

<rename_table_statement> ::=
  RENAME TABLE <old_table_name> TO <new_table_name>

<rename_user_statement> ::=
  RENAME USER <user_name> TO <new_user_name>

<rename_usergroup_statement> ::=
  RENAME USERGROUP <usergroup_name> TO <new_usergroup_name>

<rename_view_statement> ::=
  RENAME VIEW <old_table_name> TO <new_table_name>

<reserved_key_word> ::=

ABS | ABSOLUTE | ACOS | ADDDATE | ADDTIME
ALL | ALPHA | ALTER | ANY | ASCII
ASIN | ATAN | ATAN2 | AVG |
BINARY | BIT | BOOLEAN | BYTE |
CASE | CEIL | CEILING | CHAR | CHARACTER
CHECK | CHR | COLUMN | CONCAT | CONSTRAINT
COS | COSH | COT | COUNT | CROSS
CURDATE | CURRENT | CURTIME |  |
DATABASE | DATE | DATEDIFF | DAY | DAYNAME
DAYOFMONTH | DAYOFWEEK | DAYOFYEAR | DEC | DECIMAL
DECODE | DEFAULT | DEGREES | DELETE | DIGITS
DISTINCT | DOUBLE |  |  |
EXCEPT | EXISTS | EXP | EXPAND |
FIRST | FIXED | FLOAT | FLOOR | FOR
FROM | FULL |  |  |
GET_OBJECTNAME | GET_OWNER | GRAPHIC | GREATEST | GROUP
HAVING | HEX | HEXTORAW | HOUR |
IFNULL | IGNORE | INDEX | INITCAP | INNER
INSERT | INT | INTEGER | INTERNAL | INTERSECT
INTO |  |  |  |
JOIN |  |  |  |
KEY |  |  |  |
LAST | LCASE | LEAST | LEFT | LENGTH
LFILL | LIST | LN | LOCATE | LOG
LOG10 | LONG | LONGFILE | LOWER | LPAD
LTRIM |  |  |  |
MAKEDATE | MAKETIME | MAPCHAR | MAX | MBCS
MICROSECOND | MIN | MINUTE | MOD | MONTH
MONTHNAME |  |  |  |
NATURAL | NCHAR | NEXT | NO | NOROUND
NOT | NOW | NULL | NUM | NUMERIC
OBJECT | OF | ON | ORDER |
PACKED | PI | POWER | PREV | PRIMARY
RADIANS | REAL | REJECT | RELATIVE | REPLACE
RFILL | RIGHT | ROUND | ROWID | ROWNO
RPAD | RTRIM |  |  |
SECOND | SELECT | SELUPD | SERIAL | SET
SHOW | SIGN | SIN | SINH | SMALLINT
SOME | SOUNDEX | SPACE | SQRT | STAMP
STATISTICS | STDDEV | SUBDATE | SUBSTR | SUBSTRING
SUBTIME | SUM | SYSDBA |  |
TABLE | TAN | TANH | TIME | TIMEDIFF
TIMESTAMP | TIMEZONE | TO | TOIDENTIFIER | TRANSACTION
TRANSLATE | TRIM | TRUNC | TRUNCATE |
UCASE | UID | UNICODE | UNION | UPDATE
UPPER | USER | USERGROUP | USING | UTCDATE
UTCDIFF |  |  |  |
VALUE | VALUES | VARCHAR | VARGRAPHIC | VARIANCE
WEEK | WEEKOFYEAR | WHEN | WHERE | WITH
YEAR |  |  |  |
ZONED |  |  |  |

<result_column_name> ::=
  <identifier>

<result_table_name> ::=
  <identifier>

<revoke_statement> ::=
  REVOKE <priv_spec>,... FROM <grantee>,... [<cascade_option>]
| REVOKE EXECUTE ON <dbproc_name> FROM <grantee>,...
| REVOKE SELECT ON <sequence_name> FROM <grantee>,... [<cascade_option>]

<role_name> ::=
  <identifier>

<rollback_statement> ::=
  ROLLBACK [WORK]

<routine>

::=
[<local_variables>]

<statement_list>;

<routine_sql_statement> ::=
  <call_statement>
| <close_statement>
| <create_table_temp>
| <declare_cursor_statement>
| <delete_statement>
| <fetch_statement>
| <insert_statement>
| <lock_statement>
| <named_select_statement>
| <select_statement>
| <single_select_statement>
| <subtrans_statement>
| <update_statement>

<row_spec> ::=
  ROW <table_name> KEY <key_spec>,...
| ROW <table_name> CURRENT OF <result_table_name>

<rowno_column> ::=
  ROWNO [<result_column_name>]
| <result_column_name> = ROWNO

<rowno_predicate> ::=
  ROWNO < <unsigned_integer>
| ROWNO < <parameter_spec>
| ROWNO <= <unsigned_integer>
| ROWNO <= <parameter_spec>

S

<sample_definition> ::=
  SAMPLE <unsigned_integer> ROWS
| SAMPLE <unsigned_integer> PERCENT

<scalar_subquery> ::=
  <subquery>

<search_and_result_spec> ::=
  <search_expression>, <result_expression>

<search_condition> ::=
  <boolean_term>
| <search_condition> OR <boolean_term>

<searched_case_function> ::=
  WHEN <search_condition> THEN <result_expression>
    [...]
  [ELSE <default_expression>]
END

<searched_case_statement> ::=
  CASE
    <searched_case_when_clause>…
    [<case_else_clause>]
  END [CASE]

<searched_case_when_clause> ::=
  WHEN <search_condition> THEN <statement>

<seconds> ::=
  <expression>

<select_column> ::=
  <table_columns>
| <derived_column>
| <rowno_column>
| <stamp_column>

<select_statement> ::=
  <query_expression> [<order_clause>] [<update_clause>] [<lock_option>]
    [FOR REUSE]

<sequence_name> ::=
  <identiefier>

<set_function_name> ::=
  COUNT
| MAX
| MIN
| SUM
| AVG
| STDDEV
| VARIANCE

<set_function_spec> ::=
  COUNT (*)
| <distinct_function>
| <all_function>

<set_insert_clause> ::=
  <column_name> = <extended_value_spec>

<set_statement> ::=
  SET ROLE ALL [EXCEPT <role_name>]
| SET ROLE NONE
| SET ROLE <role_name> [IDENTIFIED BY <password>]
| SET ISOLATION LEVEL <unsigned_integer>

<set_update_clause> ::=
  <column_name> = <extended_expression >
| <column_name>,... = (<extended_expression>,...)
| (<column_name>,...) = (<extended_expression>,...)
| <column_name> = <subquery>
| (<column_name>,...) = <subquery>

<sign> ::=
  +
| -

<simple_case_function> ::=
  CASE <check_expression>
    WHEN <search_expression> THEN <result_expression>
      [...]
    [ELSE <default_expression>]
  END

<simple_case_statement> ::=
  CASE <expression>
    <simple_case_when_clause>...
    [<case_else_clause>]
  END [CASE]

<simple_case_when_clause> ::=
  WHEN <literal>[, ...] THEN <statement>

<simple_identifier> ::=
  <first_character>[<identifier_tail_character>...]

<single_select_statement> ::=
  SELECT [<distinct_spec>] <select_column>,... INTO <parameter_spec>,...
    FROM <from_table_spec>,...[<where_clause>] [<group_clause>]
    [<having_clause>] [<lock_option>]

<sort_spec> ::=
  <unsigned_integer> [ASC | DESC]
| <expression> [ASC | DESC]

<sound_predicate> ::=
  <expression> [NOT] SOUNDS [LIKE] <expression>

<source_user> ::=
  <user_name>

<special_character> ::=
  jedes Zeichen außer
    <digit>
  | <letter>
  | <extended_letter>
  | <hex_digit>
  | <language_specific_character >
  | <Zeichen für das Zeilenende in einer Datei>

<special_function> ::=
  VALUE (<expression>,<expression>,...)
| GREATEST (<expression>,<expression>,...)
| LEAST (<expression>,<expression>,...)
| DECODE (<check_expression>,<search_and_result_spec>,...[,<default_expression>])
| case_function

<special_identifier> ::=
  <special_identifier_character>...

<special_identifier_character> ::=
Jedes beliebige Zeichen.

<sql_comment> ::=
  /*<Kommentartext>*/
| --<Kommentartext>

<stamp_column> ::=
  STAMP [<result_column_name>]
| <result_column_name> = STAMP

<statement> ::=
BEGIN <statement_list> END
| BREAK
| CONTINUE
| CONTINUE EXECUTE
| <if_statement>
| <while_statement>
| <assignment_statement>
| <case_statement>
| RETURN [<expression>]
| STOP (<expression> [,<expression>] )
| TRY <statement_list>; CATCH <statement>
| <routine_sql_statement>

<statement_list> ::=
  <statement>
| <statement_list> ; <statement>

<string_function> ::=
  <string_spec> || <string_spec>
| <string_spec> & <string_spec>
| SUBSTR (<string_spec>,<expression>[,<expression>])
| LFILL (<string_spec>,<string_literal>[,<unsigned_integer>])
| RFILL (<string_spec>,<string_literal>[,<unsigned_integer>])
| LPAD (<string_spec>,<expression>,<string_literal>[,<unsigned_integer>])
| RPAD (<string_spec>,<expression>,<string_literal>[,<unsigned_integer>])
| TRIM (<string_spec>[,<string_spec>])
| LTRIM (<string_spec>[,<string_spec>])
| RTRIM (<string_spec>[,<string_spec>])
| EXPAND (<string_spec>,<unsigned_integer>)
| UPPER (<string_spec>)
| LOWER (<string_spec>)
| INITCAP (<string_spec>)
| REPLACE (<string_spec>,<string_spec>[,<string_spec>])
| TRANSLATE (<string_spec>,<string_spec>,<string_spec>)
| MAPCHAR (<string_spec>[,<unsigned_integer>][,<mapchar_set_name>])
| ALPHA (<string_spec>[,<unsigned_integer>])
| ASCII (<string_spec>)
| SOUNDEX (<string_spec>)
| GET_OBJECTNAME (<string_literal)
| GET_OWNER (<string_literal>)

<string_literal> ::=
  ''
| '<character>...'
| <hex_literal>

<string_spec> ::=
  <expression >

<subquery> ::=
  (<query_expression>)

<subtrans_statement> ::=
  SUBTRANS BEGIN
| SUBTRANS END
| SUBTRANS ROLLBACK

<synonym_name> ::=
  <identifier>

T

<table_columns> ::=
  *
| <table_name>.*
| <reference_name>.*

<table_description_element> ::=
  <column_definition>
| <constraint_definition>
| <referential_constraint_definition>
| <key_definition>
| <unique_definition>

<table_expression> ::=
  <from_clause> [<where_clause>] [<group_clause>] [<having_clause>]

<table_name> ::=
  [<owner>.]<identifier>

<term> ::=
  <factor>
| <term> * <factor>
| <term> / <factor>
| <term> DIV <factor>
| <term> MOD <factor>

<time_expression> ::=
  <expression>

<time_or_timestamp_expression> ::=
  <expression>

<time_function> ::=
  ADDTIME (<time_or_timestamp_expression>, <time_expression> )
| SUBTIME ( <time_or_timestamp_expression>, <time_expression> )
| TIMEDIFF ( <time_or_timestamp_expression>, <time_or_timestamp_expression> )
| MAKETIME (<hours>, <minutes>, <seconds> )

<trigger_event> ::
  INSERT
| UPDATE [(<column_list>)]
| DELETE

<trigger_name> ::=
  <identifier>

<trigonometric_function> ::=
  COS ( <expression> )
| SIN ( <expression> )
| TAN ( <expression> )
| COT ( <expression> )
| COSH ( <expression> )
| SINH ( <expression> )
| TANH ( <expression> )
| ACOS ( <expression> )
| ASIN ( <expression> )
| ATAN ( <expression> )
| ATAN2 ( <expression>, <expression> )
| RADIANS ( <expression> )
| DEGREES ( <expression> )

U

<underscore> ::=
  _

<unique_definition> ::=
  [CONSTRAINT <index_name>] UNIQUE (<column_name>,...)

<unlock_statement> ::=
  UNLOCK <row_spec>... IN SHARE MODE
| UNLOCK <row_spec>... IN EXCLUSIVE MODE
| UNLOCK <row_spec>... IN SHARE MODE <row_spec>... IN EXCLUSIVE MODE
| UNLOCK <row_spec>... OPTIMISTIC

<unsigned_integer> ::=
  <numeric_literal>

<update_clause> ::=
  FOR UPDATE [OF <column_name>,...] [NOWAIT]

<update_statement> ::=
  UPDATE [OF] <table_name> [<reference_name>] SET <set_update_clause>,...
    [KEY <key_spec>,...] [WHERE <search_condition>]
| UPDATE [OF] <table_name> [<reference_name>] (<column_name>,...)
    VALUES (<extended_value_spec>,...) [KEY <key_spec>,...]
    [WHERE <search_condition>]
| UPDATE [OF] <table_name> [<reference_name>] SET <set_update_clause>,...
    WHERE CURRENT OF <result_table_name>
| UPDATE [OF] <table_name> [<reference_name>] (<column_name>,...)
    VALUES (<extended_value_spec>,...) WHERE CURRENT OF <result_table_name>

<update_statistics_statement> ::=
  UPDATE STAT[ISTICS] COLUMN <table_name>.<column_name>
    [ESTIMATE [<sample_definition>]]
| UPDATE STAT[ISTICS] COLUMN (<column_name>,...) FOR <table_name>
    [ESTIMATE [<sample_definition>]]
| UPDATE STAT[ISTICS] COLUMN (*) FOR <table_name>
    [ESTIMATE [<sample_definition>]]
| UPDATE STAT[ISTICS] <table_name> [ESTIMATE [<sample_definition>]]
| UPDATE STAT[ISTICS] [<owner>.][<identifier>]* [ESTIMATE [<sample_definition>]]

<user_mode> ::=
  DBA
| RESOURCE
| STANDARD

<user_name> ::=
  <identifier>

<usergroup_mode> ::=
  RESOURCE
| STANDARD

<usergroup_name> ::=
  <identifier>

V

<value_spec> ::=
  <literal>
| <parameter_spec>
| NULL
| USER
| USERGROUP
| SYSDBA
| UID
| [<owner >.]<sequence_name>.NEXTVAL
| [<owner>.]<sequence_name>.CURRVAL
| <table_name>.CURRVAL
| DATE
| TIME
| TIMESTAMP
| UTCDATE
| TIMEZONE
| UTCDIFF
| TRUE
| FALSE
| TRANSACTION

<variable_name> ::=
  <identifier>

W

<where_clause> ::=
  WHERE <search_condition>

<while_statement> ::=
  WHILE <search_condition> DO <statement>


add_definition (MaxDB: Referenzhandbuch)

add_definition

<add_definition > ::=
  ADD <column_definition>,...
| ADD (<column_definition>,...)
| ADD <constraint_definition>
| ADD <referential_constraint_definition>
| ADD <key_definition>


alias_name (MaxDB: Referenzhandbuch)

alias_name

< alias_name > ::=
  < identifier >


all_function (MaxDB: Referenzhandbuch)

all_function

< all_function > ::=
  < set_function_name > ( [ALL] < expression > )


alter_definition (MaxDB: Referenzhandbuch)

alter_definition

< alter_definition > ::=
  ALTER CONSTRAINT < constraint_name > CHECK < search_condition >
| ALTER < key_definition >


alter_index_statement (MaxDB: Referenzhandbuch)

alter_index_statement

< alter_index_statement > ::=
  ALTER INDEX < index_name > [ON < table_name >] ENABLE
| ALTER INDEX <index_name> [ON <table_name>] DISABLE
| ALTER INDEX <index_name> [ON <table_name>] INIT USAGE


alter_password_statement (MaxDB: Referenzhandbuch)

alter_password_statement

< alter_password_statement >::=
  ALTER PASSWORD <old_ password > TO <new_password>
| ALTER PASSWORD < user_name > <new_password>


alter_table_statement (MaxDB: Referenzhandbuch)

alter_table_statement

< alter_table_statement > ::=
  ALTER TABLE < table_name > < add_definition >
| ALTER TABLE <table_name> < drop_definition >
| ALTER TABLE <table_name> < alter_definition >
| ALTER TABLE <table_name> < column_change_definition >
| ALTER TABLE <table_name> < modify_definition >
| ALTER TABLE <table_name> < referential_constraint_definition >
| ALTER TABLE <table_name> DROP FOREIGN KEY < referential_constraint_name >
| ALTER TABLE <table_name> < sample_definition >


alter_user_statement (MaxDB: Referenzhandbuch)

alter_user_statement

<alter_user_statement > ::=
  ALTER USER <user_name > [<user_mode >]
    [TIMEOUT <unsigned_integer > | TIMEOUT NULL]
    [COSTWARNING <unsigned_integer> | COSTWARNING NULL]
    [COSTLIMIT <unsigned_integer> | COSTLIMIT NULL]
    [DEFAULT ROLE ALL [EXCEPT <role_name >] | DEFAULT ROLE NONE
    | DEFAULT ROLE <role_name> [IDENTIFIED BY <password >]]
    [[NOT] EXCLUSIVE]
    [DEFAULTCODE <ASCII | UNICODE>]


alter_usergroup_statement (MaxDB: Referenzhandbuch)

alter_usergroup_statement

<alter_usergroup_statement > ::=
  ALTER USERGROUP <usergroup_name > [<usergroup_mode >]
    [TIMEOUT <unsigned_integer > | TIMEOUT NULL]
    [COSTWARNING <unsigned_integer> | COSTWARNING NULL]
    [COSTLIMIT <unsigned_integer> | COSTLIMIT NULL]
    [DEFAULT ROLE ALL [EXCEPT <role_name >] | DEFAULT ROLE NONE
    | DEFAULT ROLE <role_name> [IDENTIFIED BY <password >]]
    [[NOT] EXCLUSIVE]
    [DEFAULTCODE <ASCII | UNICODE>]


argument (MaxDB: Referenzhandbuch)

argument

< argument > ::=
  < identifier >


argument1 (MaxDB: Referenzhandbuch)

argument1

<argument1> ::=
  <identifier>


arithmetic_function (MaxDB: Referenzhandbuch)

arithmetic_function

< arithmetic_function > ::=
  TRUNC ( < expression >[, <expression>] )
| ROUND ( <expression>[, <expression>] )
| NOROUND ( <expression> )
| FIXED ( <expression>[, < unsigned_integer > [, <unsigned_integer] ] )
| FLOAT ( <expression>[, <unsigned_integer> ] )
| CEIL ( <expression> )
| FLOOR ( <expression> )
| SIGN ( <expression> )
| ABS ( <expression> )
| POWER ( <expression>, <expression> )
| EXP ( <expression> )
| SQRT ( <expression> )
| LN ( <expression> )
| LOG ( <expression>, <expression> )
| PI
| LENGTH ( <expression> )
| INDEX ( < string_spec >, <string_spec> [,<expression>[, <expression>] ] )


assignment_statement (MaxDB: Referenzhandbuch)

assignment_statement

< assignment_statement > ::=
  SET < variable_name > = < expression >


between_predicate (MaxDB: Referenzhandbuch)

between_predicate

< between_predicate > ::=
  < expression > [NOT] BETWEEN <expression> AND <expression>


bool_predicate (MaxDB: Referenzhandbuch)

bool_predicate

< bool_predicate > ::=
  < column_spec > [ IS [NOT] <TRUE | FALSE>]


boolean_factor (MaxDB: Referenzhandbuch)

boolean_factor

< boolean_factor > ::=
  [NOT] < predicate >
| [NOT] (< search_condition >)


boolean_term (MaxDB: Referenzhandbuch)

boolean_term

< boolean_term > ::=
  < boolean_factor >
| <boolean_term> AND <boolean_factor>


call_statement (MaxDB: Referenzhandbuch)

call_statement

< call_statement > ::=
  CALL < dbproc_name > [(< expression >,...)] [WITH COMMIT]


cascade_option (MaxDB: Referenzhandbuch)

cascade_option

< cascade_option > ::=
  CASCADE
| RESTRICT


case_else_clause (MaxDB: Referenzhandbuch)

case_else_clause

< case_else_clause > ::=
  ELSE < statement >


case_function (MaxDB: Referenzhandbuch)

case_function

< case_function > ::=
  < simple_case_function >
| < searched_case_function >


case_statement (MaxDB: Referenzhandbuch)

case_statement

< case_statement > ::=
  < simple_case_statement >
| < searched_case_statement >


character (MaxDB: Referenzhandbuch)

character

< character > ::=
  < digit >
| < letter >
| < extended_letter >
| < hex_digit >
| < language_specific_character >
| < special_character >


close_statement (MaxDB: Referenzhandbuch)

close_statement

< close_statement > ::=
  CLOSE [< result_table_name >]


column_attributes (MaxDB: Referenzhandbuch)

column_attributes

< column_attributes > ::=
  [< key_or_not_null_spec >] [< default_spec >] [UNIQUE] [< constraint_definition >]
    [REFERENCES < referenced_table > [(< referenced_column >)] [< delete_rule >]]


column_change_definition (MaxDB: Referenzhandbuch)

column_change_definition

< column_change_definition > ::=
  COLUMN < column_name > NOT NULL
| COLUMN <column_name> DEFAULT NULL
| COLUMN <column_name> ADD < default_spec >
| COLUMN <column_name> ALTER <default_spec>
| COLUMN <column_name> DROP DEFAULT


column_definition (MaxDB: Referenzhandbuch)

column_definition

< column_definition > ::=
  < column_name > < data_type > [< column_attributes >]
| <column_name> < domain_name > [<column_attributes>]


column_list (MaxDB: Referenzhandbuch)

column_list

< column_list > ::=
  < column_name >
| <column_list>, <column_name>


column_name (MaxDB: Referenzhandbuch)

column_name

< column_name > ::=
  < identifier >


column_spec (MaxDB: Referenzhandbuch)

column_spec

< column_spec > ::=
  < column_name >
| < table_name >.<column_name>
| < reference_name >.<column_name>
| < result_table_name >.<column_name>


comment (MaxDB: Referenzhandbuch)

comment

< comment > ::=
  < string_literal >
| < parameter_name >


comment_on_statement (MaxDB: Referenzhandbuch)

comment_on_statement

< comment_on_statement > ::=
  COMMENT ON < object_spec > IS < comment >


commit_statement (MaxDB: Referenzhandbuch)

commit_statement

<commit_statement > ::=
  COMMIT [WORK]


comp_op (MaxDB: Referenzhandbuch)

comp_op

<comp_op > ::=
  <
| >
| <>
| !=
| =
| <=
| >=
| ~= | ~< | ~> (für Maschinen mit ASCII-Code)


comparison_predicate (MaxDB: Referenzhandbuch)

comparison_predicate

< comparison_predicate > ::=
  < expression > < comp_op > <expression>
| <expression> <comp_op> < subquery >
| < expression_list > < equal_or_not > (<expression_list>)
| <expression_list> <equal_or_not> <subquery>


connect_option (MaxDB: Referenzhandbuch)

connect_option

< connect_option > ::=
  SQLMODE <INTERNAL | ANSI | DB2 | ORACLE>
| ISOLATION LEVEL < unsigned_integer >
| TIMEOUT <unsigned_integer>


connect_statement (MaxDB: Referenzhandbuch)

connect_statement

< connect_statement > ::=
  CONNECT < parameter_name > IDENTIFIED BY <parameter_name> [< connect_option >...]
| CONNECT <parameter_name> IDENTIFIED BY < password > [<connect_option>...]
| CONNECT < user_name > IDENTIFIED BY <parameter_name> [<connect_option>...]
| CONNECT <user_name> IDENTIFIED BY <password> [<connect_option>...]


constraint_definition (MaxDB: Referenzhandbuch)

constraint_definition

< constraint_definition > ::=
  CHECK < search_condition >
| CONSTRAINT <search_condition>
| CONSTRAINT < constraint_name > CHECK <search_condition>


constraint_name (MaxDB: Referenzhandbuch)

constraint_name

< constraint_name > ::=
  < identifier >


conversion_function (MaxDB: Referenzhandbuch)

conversion_function

< conversion_function > ::=
  NUM (< expression >)
| CHR (<expression>[,< unsigned_integer >])
| HEX (<expression>)
| HEXTORAW (<expression>)
| CHAR (<expression>[,< datetimeformat >])


create_dbproc_statement (MaxDB: Referenzhandbuch)

create_dbproc_statement

< create_dbproc_statement > ::=
  CREATE DBPROC < procedure_name > [(< formal_parameter >,..)] [RETURNS CURSOR] AS < routine >


create_domain_statement (MaxDB: Referenzhandbuch)

create_domain_statement

< create_domain_statement > ::=
  CREATE DOMAIN < domain_name > < data_type > [< default_spec >] [< constraint_definition >]


create_function_statement (MaxDB: Referenzhandbuch)

create_function_statement

<create_function_statement> ::=
  CREATE FUNCTION <dbfunction_name>
    [(<formal_parameter1>,...)] RETURNS <data_type> AS <routine>


create_index_statement (MaxDB: Referenzhandbuch)

create_index_statement

<create_index_statement > ::=
CREATE [UNIQUE] INDEX <index_name > ON <table_name > (<index_spec>)


create_role_statement (MaxDB: Referenzhandbuch)

create_role_statement

< create_role_statement > ::=
  CREATE ROLE < role_name > [IDENTIFIED BY < password >]


create_sequence_statement (MaxDB: Referenzhandbuch)

create_sequence_statement

< create_sequence_statement > ::=
  CREATE SEQUENCE [< owner >.]< sequence_name >
    [INCREMENT BY < integer >]
    [START WITH <integer>]
    [MAXVALUE <integer> | NOMAXVALUE]
    [MINVALUE <integer> | NOMINVALUE]
    [CYCLE | NOCYCLE]
    [CACHE < unsigned_integer > | NOCACHE]
    [ORDER|NOORDER]


create_synonym_statement (MaxDB: Referenzhandbuch)

create_synonym_statement

<create_synonym_statement> ::=
  CREATE [PUBLIC] SYNONYM [<owner>.]<synonym_name> FOR <table_name>


create_table_statement (MaxDB: Referenzhandbuch)

create_table_statement

<create_table_statement> ::=
CREATE TABLE <table_name> (<column_definition> [,<table_description_element>,...])
[IGNORE ROLLBACK] [NO FIXED LENGTH COLUMN] [<sample_definition>]
| CREATE TABLE <table_name> [(<table_description_element>,...)]
[IGNORE ROLLBACK] [NO FIXED LENGTH COLUMN] [<sample_definition>]
AS <query_expression> [<duplicates_clause>]
| CREATE TABLE <table_name> LIKE <table_name> [IGNORE ROLLBACK]


create_table_temp (MaxDB: Referenzhandbuch)

create_table_temp

< create_table_temp > :: =
  < create_table_statement > für das Anlegen temporärer Tabellen,
    d.h. der Tabellenname table_name in der CREATE TABLE-Anweisung
    muß die Form TEMP.< identifier > haben.


create_trigger_statement (MaxDB: Referenzhandbuch)

create_trigger_statement

< create_trigger_statement > ::=
  CREATE TRIGGER < trigger_name > FOR < table_name > AFTER < trigger_event ,..>
    EXECUTE (< routine >) [WHENEVER < search_condition >]


create_user_statement (MaxDB: Referenzhandbuch)

create_user_statement

<create_user_statement > ::=
  CREATE USER <user_name > PASSWORD <password >
    [<user_mode >]
    [TIMEOUT <unsigned_integer >]
    [COSTWARNING <unsigned_integer>]
    [COSTLIMIT <unsigned_integer>]
    [[NOT] EXCLUSIVE]
    [DEFAULTCODE <ASCII | UNICODE>]
| CREATE USER <user_name> PASSWORD <password> LIKE <source_user >
| CREATE USER <user_name> PASSWORD <password> USERGROUP <usergroup_name >


create_usergroup_statement (MaxDB: Referenzhandbuch)

create_usergroup_statement

<create_usergroup_statement > ::=
  CREATE USERGROUP <usergroup_name >
    [<usergroup_mode >]
    [TIMEOUT <unsigned_integer >]
    [COSTWARNING <unsigned_integer>]
    [COSTLIMIT <unsigned_integer>]
    [[NOT] EXCLUSIVE]
    [DEFAULTCODE <ASCII | UNICODE>]


create_view_statement (MaxDB: Referenzhandbuch)

create_view_statement

< create_view_statement > ::=
  CREATE [OR REPLACE] VIEW < table_name > [(< alias_name >,...)]
    AS < query_expression > [WITH CHECK OPTION]


data_type (MaxDB: Referenzhandbuch)

data_type

<data_typ> ::=
  CHAR[ACTER] [(<unsigned_integer>)] [ASCII | BYTE | UNICODE]
| VARCHAR [(<unsigned_integer>)] [ASCII | BYTE | UNICODE]
| LONG [VARCHAR] [ASCII | BYTE | UNICODE]
| BOOLEAN
| FIXED (<unsigned_integer> [,<unsigned_integer>])
| FLOAT (<unsigned_integer>)
| INT[EGER]
| SMALLINT
| DATE
| TIME
| TIMESTAMP


date_function (MaxDB: Referenzhandbuch)

date_function

< date_function > ::=
  ADDDATE ( < date_or_timestamp_expression >, < expression > )
| SUBDATE ( <date_or_timestamp_expression>, <expression> )
| DATEDIFF ( <date_or_timestamp_expression>, <date_or_timestamp_expression> )
| DAYOFWEEK ( <date_or_timestamp_expression> )
| WEEKOFYEAR ( <date_or_timestamp_expression> )
| DAYOFMONTH ( <date_or_timestamp_expression> )
| DAYOFYEAR ( <date_or_timestamp_expression> )
| MAKEDATE ( <expression>, <expression> )
| DAYNAME ( <date_or_timestamp_expression> )
| MONTHNAME ( <date_or_timestamp_expression> )


date_or_timestamp_expression (MaxDB: Referenzhandbuch)

date_or_timestamp_expression

< date_or_timestamp_expression > ::=
  < expression >


datetimeformat (MaxDB: Referenzhandbuch)

datetimeformat

< datetimeformat > ::=
  EUR
| INTERNAL
| ISO
| JIS
| USA


dbfunction_call (MaxDB: Referenzhandbuch)

dbfunction_call

<dbfunction_call> ::=
  <dbfunction_name> ( [<expression>,...) )


dbfunction_name (MaxDB: Referenzhandbuch)

dbfunction_name

<dbfunction_name> ::=
  [<owner>.]<identifier>


dbproc_name (MaxDB: Referenzhandbuch)

dbproc_name

< dbproc_name > ::=
  [< owner >.]< procedure_name >


declare_cursor_statement (MaxDB: Referenzhandbuch)

declare_cursor_statement

< declare_cursor_statement > ::=
  DECLARE < result_table_name > CURSOR FOR < select_statement >


default_predicate (MaxDB: Referenzhandbuch)

default_predicate

< default_predicate > ::=
  < column_spec > < comp_op > DEFAULT


default_spec (MaxDB: Referenzhandbuch)

default_spec

<default_spec> ::=
  DEFAULT <literal>
| DEFAULT NULL
| DEFAULT USER
| DEFAULT USERGROUP
| DEFAULT SYSDBA
| DEFAULT DATE
| DEFAULT TIME
| DEFAULT TIMESTAMP
| DEFAULT UTCDATE
| DEFAULT UTCDIFF
| DEFAULT TIMEZONE
| DEFAULT TRUE
| DEFAULT FALSE
| DEFAULT TRANSACTION
| DEFAULT STAMP
| DEFAULT SERIAL[(<unsigned_integer>)]


delete_rule (MaxDB: Referenzhandbuch)

delete_rule

< delete_rule > ::=
  ON DELETE CASCADE
| ON DELETE RESTRICT
| ON DELETE SET DEFAULT
| ON DELETE SET NULL


delete_statement (MaxDB: Referenzhandbuch)

delete_statement

< delete_statement > ::=
  DELETE [FROM] < table_name > [< reference_name >]
    [KEY < key_spec >,...] [WHERE < search_condition >]
| DELETE [FROM] <table_name> [<reference_name>]
    WHERE CURRENT OF < result_table_name >


delimiter_token (MaxDB: Referenzhandbuch)

delimiter_token

<delimiter_token> ::=
  ( | ) | , | . | + | - | * | / | < | > | <> | != | = | <= | >=
| ~= | ~< | ~> (für Maschinen mit ASCII-Code)


derived_column (MaxDB: Referenzhandbuch)

derived_column

< derived_column > ::=
  < expression > [ [AS] < result_column_name >]
| <result_column_name> = <expression>


digit (MaxDB: Referenzhandbuch)

digit

< digit > ::=
  0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9


digit_sequence (MaxDB: Referenzhandbuch)

digit_sequence

< digit_sequence > ::=
  < digit >...


distinct_function (MaxDB: Referenzhandbuch)

distinct_function

< distinct_function >::=
  < set_function_name > ( DISTINCT < expression > )


distinct_spec (MaxDB: Referenzhandbuch)

distinct_spec

< distinct_spec > ::=
  DISTINCT
| ALL


domain_name (MaxDB: Referenzhandbuch)

domain_name

< domain_name > ::=
  [< owner >.]< identifier >


double_quotes (MaxDB: Referenzhandbuch)

double_quotes

< double_quotes > ::=
  "


drop_dbproc_statement (MaxDB: Referenzhandbuch)

drop_dbproc_statement

< drop_dbproc_statement > ::=
  DROP DBPROC < dbproc_name >


drop_definition (MaxDB: Referenzhandbuch)

drop_definition

< drop_definition > ::=
  DROP < column_name >,... [< cascade_option >] [RELEASE SPACE]
| DROP (<column_name>,...) [<cascade_option>] [RELEASE SPACE]
| DROP CONSTRAINT < constraint_name >
| DROP PRIMARY KEY


drop_domain_statement (MaxDB: Referenzhandbuch)

drop_domain_statement

< drop_domain_statement > ::=
  DROP DOMAIN < domain_name >


drop_function_statement (MaxDB: Referenzhandbuch)

drop_function_statement

<drop_function_spec> ::=
  DROP FUNCTION <dbfunction_name>


drop_index_statement (MaxDB: Referenzhandbuch)

drop_index_statement

< drop_index_statement > ::=
  DROP INDEX < index_name > [ON < table_name >]


drop_role_statement (MaxDB: Referenzhandbuch)

drop_role_statement

< drop_role_statement > ::=
  DROP ROLE < role_name >


drop_sequence_statement (MaxDB: Referenzhandbuch)

drop_sequence_statement

< drop_sequence_statement > ::=
  DROP SEQUENCE [< owner >.]< sequence_name >


drop_synonym_statement (MaxDB: Referenzhandbuch)

drop_synonym_statement

< drop_synonym_statement > ::=
  DROP [PUBLIC] SYNONYM [< owner >.]< synonym_name >


drop_table_statement (MaxDB: Referenzhandbuch)

drop_table_statement

< drop_table_statement > ::=
  DROP TABLE < table_name > [< cascade_option >]


drop_trigger_statement (MaxDB: Referenzhandbuch)

drop_trigger_statement

< drop_trigger_statement > ::=
  DROP TRIGGER < trigger_name > OF < table_name >


drop_user_statement (MaxDB: Referenzhandbuch)

drop_user_statement

< drop_user_statement > ::=
  DROP USER < user_name > [< cascade_option >]


drop_usergroup_statement (MaxDB: Referenzhandbuch)

drop_usergroup_statement

< drop_usergroup_statement > ::=
  DROP USERGROUP < usergroup_name > [< cascade_option >]


drop_view_statement (MaxDB: Referenzhandbuch)

drop_view_statement

< drop_view_statement > ::=
  DROP VIEW < table_name > [< cascade_option >]


duplicates_clause (MaxDB: Referenzhandbuch)

duplicates_clause

< duplicates_clause > ::=
  REJECT DUPLICATES
| IGNORE DUPLICATES
| UPDATE DUPLICATES


equal_or_not (MaxDB: Referenzhandbuch)

equal_or_not

<equal_or_not> ::=
  <>
| =
| ~= (für Maschinen mit ASCII-Code)


exists_predicate (MaxDB: Referenzhandbuch)

exists_predicate

< exists_predicate > ::=
  EXISTS < subquery >


exists_table_statement (MaxDB: Referenzhandbuch)

exists_table_statement

< exists_table_statement > ::=
  EXISTS TABLE < table_name >


explain_statement (MaxDB: Referenzhandbuch)

explain_statement

< explain_statement > ::=
  EXPLAIN [(< result_table_name >)] < query_statement >
| EXPLAIN [(<result_table_name>)] < single_select_statement >


exponent (MaxDB: Referenzhandbuch)

exponent

< exponent > ::=
  [< sign >][[< digit >]<digit>]<digit>


expression (MaxDB: Referenzhandbuch)

expression

< expression > ::=
  < term >
| <expression> + <term>
| <expression> - <term>


expression_list (MaxDB: Referenzhandbuch)

expression_list

< expression_list > ::=
  (< expression >,...)


extended_expression (MaxDB: Referenzhandbuch)

extended_expression

< extended_expression > ::=
  < expression >
| DEFAULT
| STAMP


extended_letter (MaxDB: Referenzhandbuch)

extended_letter

< extended_letter > ::=
  #
| @
| $


extended_value_spec (MaxDB: Referenzhandbuch)

extended_value_spec

< extended_value_spec > ::=
  < value_spec >
| DEFAULT
| STAMP


extraction_function (MaxDB: Referenzhandbuch)

extraction_function

< extraction_function > ::=
  YEAR ( < date_or_timestamp_expression > )
| MONTH ( <date_or_timestamp_expression> )
| DAY ( <date_or_timestamp_expression> )
| HOUR ( < time_or_timestamp_expression > )
| MINUTE ( <time_or_timestamp_expression> )
| SECOND ( <time_or_timestamp_expression> )
| MICROSECOND ( < expression > )
| TIMESTAMP ( <expression>[, <expression> ] )
| DATE ( <expression> )
| TIME ( <expression> )


factor (MaxDB: Referenzhandbuch)

factor

< factor > ::=
  [< sign >] < value_spec >
| [<sign>] < column_spec >
| [<sign>] < function_spec >
| [<sign>] < set_function_spec >
| < scalar_subquery >
| < expression >


fetch_statement (MaxDB: Referenzhandbuch)

fetch_statement

< fetch_statement > ::=
  FETCH [FIRST | LAST | NEXT | PREV | < position > | SAME] [< result_table_name >]
    INTO < parameter_spec >,...


final_select (MaxDB: Referenzhandbuch)

final_select

< final_select > ::=
  < select_statement >


first_character (MaxDB: Referenzhandbuch)

first_character

< first_character > ::=
  < letter >
| < extended_letter >
| < language_specific_character >


first_password_character (MaxDB: Referenzhandbuch)

first_password_character

< first_password_character > ::=
  < letter >
| < extended_letter >
| < language_specific_letter >
| < digit >


fixed_point_literal (MaxDB: Referenzhandbuch)

fixed_point_literal

< fixed_point_literal > ::=
  [< sign >]< digit_sequence >[.<digit_sequence>]
| [sign]<digit_sequence>.
| [sign].<digit_sequence>


floating_point_literal (MaxDB: Referenzhandbuch)

floating_point_literal

< floating_point_literal > ::=
  < mantissa >E< exponent >
| <mantissa>e<exponent>


formal_parameter (MaxDB: Referenzhandbuch)

formal_parameter

< formal_parameter > ::=
  IN < argument > < data_type >
| OUT <argument> <data_type>
| INOUT <argument> <data_type>


formal_parameter1 (MaxDB: Referenzhandbuch)

formal_parameter1

<formal_parameter1> ::=
  <argument1> <data_type>


from_clause (MaxDB: Referenzhandbuch)

from_clause

< from_clause > ::=
  FROM < from_table_spec >,...


from_table_spec (MaxDB: Referenzhandbuch)

from_table_spec

<from_table_spec > ::=
  <table_name > [AS] [<reference_name >]
| <result_table_name > [AS] [<reference_name>]
| (<query_expression >) [AS] [<reference_name>]
| <joined_table >


function_spec (MaxDB: Referenzhandbuch)

function_spec

<function_spec > ::=
  <arithmetic_function >
| <trigonometric_function >
| <string_function >
| <date_function >
| <time_function >
| <extraction_function >
| <special_function >
| <conversion_function >
| <dbfunction_call>


grant_statement (MaxDB: Referenzhandbuch)

grant_statement

< grant_statement > ::=
  GRANT < priv_spec >,... TO < grantee >,... [WITH GRANT OPTION]
| GRANT EXECUTE ON < dbproc_name > TO <grantee>,...
| GRANT SELECT ON < sequence_name > TO <grantee>,... [WITH GRANT OPTION]


grant_user_statement (MaxDB: Referenzhandbuch)

grant_user_statement

< grant_user_statement > ::=
  GRANT USER < granted_users > [FROM < user_name >] TO <user_name>


grant_usergroup_statement (MaxDB: Referenzhandbuch)

grant_usergroup_statement

< grant_usergroup_statement > ::=
  GRANT USERGROUP < granted_usergroups > [FROM < user_name >] TO <user_name>


granted_usergroups (MaxDB: Referenzhandbuch)

granted_usergroups

< granted_usergroups > ::=
  < usergroup_name >,...
| *


granted_users (MaxDB: Referenzhandbuch)

granted_users

< granted_users > ::=
  < user_name >,...
| *


grantee (MaxDB: Referenzhandbuch)

grantee

< grantee > ::=
  PUBLIC
| < user_name >
| < usergroup_name >
| < role_name >


group_clause (MaxDB: Referenzhandbuch)

group_clause

< group_clause > ::=
  GROUP BY < expression >,...


having_clause (MaxDB: Referenzhandbuch)

having_clause

< having_clause > ::=
  HAVING < search_condition >


hex_digit (MaxDB: Referenzhandbuch)

hex_digit

< hex_digit > ::=
  0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
| A | B | C | D | E | F
| a | b | c | d | e | f


hex_digit_seq (MaxDB: Referenzhandbuch)

hex_digit_seq

< hex_digit_seq > ::=
  < hex_digit ><hex_digit>
| <hex_digit_seq><hex_digit><hex_digit>


hex_literal (MaxDB: Referenzhandbuch)

hex_literal

< hex_literal > ::=
  x''
| X''
| x'< hex_digit_seq >'
| X'<hex_digit_seq>'


hours (MaxDB: Referenzhandbuch)

hours

< hours > ::=
  < expression >


identifier (MaxDB: Referenzhandbuch)

identifier

< identifier > ::=
  < simple_identifier >
| < double quotes >< special_identifier ><double_quotes>


identifier_tail_character (MaxDB: Referenzhandbuch)

identifier_tail_character

< identifier_tail_character > ::=
  < letter >
| < extended_letter >
| < language_specific_character >
| < digit >
| < underscore >


if_statement (MaxDB: Referenzhandbuch)

if_statement

< if_statement > ::=
  IF < search_condition > THEN < statement > [ELSE <statement>]


in_predicate (MaxDB: Referenzhandbuch)

in_predicate

< in_predicate > ::=
  < expression > [NOT] IN < subquery >
| <expression> [NOT] IN < expression_list >
| <expression_list> [NOT] IN <subquery>
| <expression_list> [NOT] IN (<expression_list>,...)


index_name (MaxDB: Referenzhandbuch)

index_name

< index_name > ::=
  < identifier >


index_spec (MaxDB: Referenzhandbuch)

index_spec

<index_spec> ::=
  <column_name> [ASC|DESC]
| <dbfunction_name> (<column_name>,...) [ASC|DESC]


indicator_name (MaxDB: Referenzhandbuch)

indicator_name

< indicator_name > ::=
  < parameter_name >


initial_select (MaxDB: Referenzhandbuch)

initial_select

< initial_select > ::=
  < query_spec >


insert_expression (MaxDB: Referenzhandbuch)

insert_expression

< insert_expression > ::=
  < extended_expression >
| < subquery >


insert_statement (MaxDB: Referenzhandbuch)

insert_statement

< insert_statement > ::=
  INSERT [INTO] < table_name > [(< column_name >,...)]
    VALUES (< insert_expression >,...) [< duplicates_clause >]
| INSERT [INTO] <table_name> [(<column_name>,...)]
    < query_expression > [<duplicates_clause>]
| INSERT [INTO] <table_name> SET < set_insert_clause >,... [<duplicates_clause>]


integer (MaxDB: Referenzhandbuch)

integer

< integer > ::=
  [ sign ]< unsigned_integer >


join_predicate (MaxDB: Referenzhandbuch)

join_predicate

< join_predicate > ::=
  < expression > [< outer_join_indicator >] < comp_op > <expression> [<outer_join_indicator>]


join_spec (MaxDB: Referenzhandbuch)

join_spec

<join_spec> ::=
  ON <search_condition>


joined_table (MaxDB: Referenzhandbuch)

joined_table

< joined_table > ::=
  < from_table_spec > CROSS JOIN <from_table_spec>
| <from_table_spec> [INNER] JOIN <from_table_spec> < join_spec >
| <from_table_spec> [<LEFT|RIGHT|FULL> [OUTER]] JOIN
    <from_table_spec> <join_spec>


key_definition (MaxDB: Referenzhandbuch)

key_definition

< key_definition > ::
  PRIMARY KEY (< column_name >,...)


key_or_not_null_spec (MaxDB: Referenzhandbuch)

key_or_not_null_spec

< key_or_not_null_spec > ::=
  [PRIMARY] KEY
| NOT NULL [WITH DEFAULT]


key_spec (MaxDB: Referenzhandbuch)

key_spec

< key_spec > ::=
  < column_name > = < value_spec >


key_word (MaxDB: Referenzhandbuch)

key_word

< key_word > ::=
  < not_reserved_key_word >
| < reserved_keyword >


language_specific_character (MaxDB: Referenzhandbuch)

language_specific_character

< language_specific_character > ::=
  <jeder Buchstabe, der in einer nord-, mittel- oder südeuropäischen Sprache vorkommt
    und nicht in der Auflistung < letter > enthalten ist>
| <für UNICODE-fähige Datenbanken: jedes Zeichen, das nicht in der ASCII-Code-Liste von 0 bis 127 enthalten ist>


letter (MaxDB: Referenzhandbuch)

letter

< letter > ::=
  A | B | C | D | E | F | G | H | I | J | K | L | M
| N | O | P | Q | R | S | T | U | V | W | X | Y | Z
| a | b | c | d | e | f | g | h | i | j | k | l | m
| n | o | p | q | r | s | t | u | v | w | x | y | z


like_expression (MaxDB: Referenzhandbuch)

like_expression

< like_expression > ::=
  < expression >
| '< pattern_element >...'


like_predicate (MaxDB: Referenzhandbuch)

like_predicate

< like_predicate > ::=
  < expression > [NOT] LIKE < like_expression > [ESCAPE <expression>]


literal (MaxDB: Referenzhandbuch)

literal

< literal > ::=
  < string_literal >
| < numeric_literal >


local_variable (MaxDB: Referenzhandbuch)

local_variable

< local_variable > ::=
  < variable_name > < data_type >


local_variable_list (MaxDB: Referenzhandbuch)

local_variable_list

< local_variable_list > ::=
  < local_variable >
| <local_variable_list>;<local_variable>


local_variables (MaxDB: Referenzhandbuch)

local_variables

< local_variables > ::=
  VAR < local_variable_list >;


lock_option (MaxDB: Referenzhandbuch)

lock_option

< lock_option > ::=
  WITH LOCK [(IGNORE)|(NOWAIT)] [EXCLUSIVE | OPTIMISTIC] [ISOLATION LEVEL < unsigned_integer >]


lock_spec (MaxDB: Referenzhandbuch)

lock_spec

< lock_spec > ::=
  TABLE < table_name >,...
| < row_spec >...
| TABLE <table_name>,... <row_spec>...


lock_statement (MaxDB: Referenzhandbuch)

lock_statement

< lock_statement > ::=
  LOCK [(WAIT)|(NOWAIT)] < lock_spec > IN SHARE MODE
| LOCK [(WAIT)|(NOWAIT)] <lock_spec> IN EXCLUSIVE MODE
| LOCK [(WAIT)|(NOWAIT)] < row_spec >... OPTIMISTIC
| LOCK [(WAIT)|(NOWAIT)] <lock_spec> IN SHARE MODE <lock_spec> IN EXCLUSIVE MODE


mantissa (MaxDB: Referenzhandbuch)

mantissa

< mantissa > ::=
  < fixed_point_literal >


mapchar_set_name (MaxDB: Referenzhandbuch)

mapchar_set_name

< mapchar_set_name > ::=
  < identifier >


match_char (MaxDB: Referenzhandbuch)

match_char

< match_char > ::=
  Jedes Zeichen außer
    %
  | *
  | X'1F'
  | < underscore >
  | ?
  | X'1E'
  | (


match_set (MaxDB: Referenzhandbuch)

match_set

<match_set > ::=
  <underscore >
| X'1E'
| <match_char >


match_string (MaxDB: Referenzhandbuch)

match_string

<match_string> ::=
  %
| X'1F'


minutes (MaxDB: Referenzhandbuch)

minutes

< minutes > ::=
  < expression >


modify_definition (MaxDB: Referenzhandbuch)

modify_definition

< modify_definition > ::=
  MODIFY (< column_name > [< data_type >] [< column_attributes >]...)


monitor_statement (MaxDB: Referenzhandbuch)

monitor_statement

< monitor_statement > ::=
  MONITOR INIT


named_query_expression (MaxDB: Referenzhandbuch)

named_query_expression

<named_query_expression> ::=
<named_query_term>
| <named_query_expression> UNION [ALL] <query_term>
| <named_query_expression> EXCEPT [ALL] <query_term>


named_query_primary (MaxDB: Referenzhandbuch)

named_query_primary

<named_query_primary> ::=
<named_query_spec>
| (<named_query_expression>)


named_query_spec (MaxDB: Referenzhandbuch)

named_query_spec

<named_query_spec> ::=
SELECT [<distinct_spec>] <result_table_name>
(<select_column>,...) <table_expression>


named_query_term (MaxDB: Referenzhandbuch)

named_query_term

<named_query_term> ::=
<named_query_primary>
| <named_query_term> INTERSECT [ALL] <query_primary>


named_select_statement (MaxDB: Referenzhandbuch)

named_select_statement

<named_select_statement>

::=
<named_query_expression>

[<order_clause>]
[<update_clause>]

[<lock_option>]

[FOR REUSE]


new_index_name (MaxDB: Referenzhandbuch)

new_index_name

< new_index_name > ::=
  < index_name >


new_table_name (MaxDB: Referenzhandbuch)

new_table_name

< new_table_name > ::=
  < table_name >


next_stamp_statement (MaxDB: Referenzhandbuch)

next_stamp_statement

< next_stamp_statement > ::=
  NEXT STAMP [INTO] < parameter_name >


not_reserved_key_word (MaxDB: Referenzhandbuch)

not_reserved_key_word

<not_reserved_key_word> ::=

ADD | ADDRESS | ADD_MONTHS | AFTER | ALTERIN
ANALYZE | AND | ANSI | APPEND | ARCHIVE
AS | ASC | AT | AUTHORIZATION | AUTO
AUTOSAVE |  |  |  |
BACKUP_PAGES | BAD | BEFORE | BEGIN | BEGINLOAD
BEGINPROC | BETWEEN | BLOCK | BLOCKSIZE | BOTH
BREAK | BUFFER | BUFFERPOOL | BWHIERARCHY | BY
CACHE | CACHELIMIT | CACHES | CALL | CANCEL
CASCADE | CATALOG | CATCH | CHECKPOINT | CLEAR
CLOSE | CLUSTER | COMMENT | COMMIT | COMPUTE
CONFIG | CONNECT | CONSTRAINTS | CONTAINER | CONTINUE
COSTLIMIT | COSTWARNING | CREATE | CREATEIN | CURRENT_DATE
CURRENT_SCHEMA | CURRENT_TIME | CURRENT_TIMESTAMP | CURRVAL | CURSOR
CYCLE |  |  |  |
DATA | DAYS | DB2 | DBA | DBPROC
DBPROCEDURE | DB_ABOVE_LIMIT | DB_BELOW_LIMIT | DEBUG | DECLARE
DEFAULTCODE | DEGREE | DESC | DESCRIBE | DEVICE
DIAGNOSE | DIMENSION | DISABLE | DIV | DO
DOMAIN | DROP | DROPIN | DSETPASS | DUPLICATES
DYNAMIC |  |  |  |
EDITPROC | ELSE | ENABLE | END | ENDLOAD
ENDPROC | ERROR | ESCAPE | ESTIMATE | EUR
EVENT | EXCLUSIVE | EXECUTE | EXPLAIN | EXPLICIT
EXTENDED |  |  |  |
FACT | FALSE | FETCH | FILE | FLUSH
FORCE | FOREIGN | FORMAT | FREEPAGE | FUNCTION
FVERSION |  |  |  |
GET | GRANT |  |  |
HIGH | HOLD | HOURS |  |
IDENTIFIED | IF | IMPLICIT | IN | INCREMENT
INDEXNAME | INDICATOR | INFO | INIT | INITRANS
INOUT | INPROC | INSTANCE | INSTR | IS
ISO | ISOLATION |  |  |
JAVA | JIS |  |  |
LABEL | LANGUAGE | LAST_DAY | LEVEL | LIKE
LOAD | LOCAL | LOCK | LOGFULL | LOGWRITER
LOG_ABOVE_LIMIT | LOW |  |  |
MAXTRANS | MAXVALUE | MEDIANAME | MEDIUM | MICROSECONDS
MIGRATE | MINUS | MINUTES | MINVALUE | MODE
MODIFY | MONITOR | MONTHS | MONTHS_BETWEEN |
NAME | NEW | NEW_TIME | NEXTVAL | NEXT_DAY
NLSSORT | NLS_DATE_FORMAT | NLS_DATE_LANGUAGE | NLS_LANGUAGE | NLS_SORT
NOCACHE | NOCYCLE | NOLOG | NOMAXVALUE | NOMINVALUE
NONE | NOORDER | NOREWIND | NORMAL | NOSORT
NOWAIT | NUMBER | NVL |  |
OBID | OFF | ONLY | OPEN | OPTIMISTIC
OPTIMIZE | OPTION | OR | ORACLE | OUT
OUTER | OVERWRITE |  |  |
PACKAGE | PAGE | PAGES | PARAM | PARSE
PARSEID | PASSWORD | PCTFREE | PCTUSED | PERCENT
PING | PIPE | POS | PRECISION | PREPARE
PRIV | PRIVILEGES | PROC | PROCEDURE | PSM
PUBLIC |  |  |  |
QUICK |  |  |  |
RANGE | RAW | RAWTOHEX | READ | RECURSIVE
REFERENCES | REGISTER | RELEASE | REMOTE | REMOVE
RENAME | REPLICATION | RESOURCE | RESTART | RESTORE
RESTRICT | RESUME | RETURN | RETURNS | REUSE
REVOKE | ROLE | ROLLBACK | ROW | ROWNUM
ROWS |  |  |  |
SAME | SAMPLE | SAPR3 | SAVE | SAVEPOINT
SCHEMA | SECONDS | SELECTIVITY | SEQUENCE | SERVERDB
SESSION | SHARE | SHUTDOWN | SNAPSHOT | SOUNDS
SQLID | SQLMODE | STANDARD | STANDBY | START
STARTPOS | STAT | STATE | STATIC | STOP
STORAGE | SUBPAGES | SUBTRANS | SUSPEND | SWITCH
SYNCHRONIZE | SYNONYM | SYSDATE |  |
TABID | TABLESPACE | TAKEOVER | TAPE | TEMP
THEN | TIMEOUT | TOPIC | TO_CHAR | TO_DATE
TO_NUMBER | TRACE | TRIGGER | TRUE | TRY
TYPE |  |  |  |
UNIQUE | UNKNOWN | UNLOAD | UNLOCK | UNTIL
UNUSED | USA | USAGE | USERID |
VALIDPROC | VARCHAR2 | VERIFY | VERSION | VIEW
VOLUME | VSIZE | VTRACE |  |
WAIT | WHENEVER | WHILE | WORK | WRITE
WRITER |  |  |  |
YEARS |  |  |  |


null_predicate (MaxDB: Referenzhandbuch)

null_predicate

< null_predicate > ::=
  < expression > IS [NOT] NULL


numeric_literal (MaxDB: Referenzhandbuch)

numeric_literal

< numeric_literal > ::=
  < fixed_point_literal >
| < floating_point_literal >


object_spec (MaxDB: Referenzhandbuch)

object_spec

< object_spec > ::=
  COLUMN < table_name >.< column_name >
| DBPROC[EDURE] < dbproc_name >
| DOMAIN < domain_name >
| FOREIGN KEY <table_name>.< referential_constraint_name >
| INDEX < index_name > ON <table_name>
| SEQUENCE < sequence_name >
| [PUBLIC] SYNONYM < synonym_name >
| TABLE <table_name>
| TRIGGER < trigger_name >.<table_name>
| USER < user_name >
| USERGROUP < usergroup_name >
| < parameter_name >


old_index_name (MaxDB: Referenzhandbuch)

old_index_name

< old_index_name > ::=
  < index_name >


old_table_name (MaxDB: Referenzhandbuch)

old_table_name

< old_table_name > ::=
  < table_name >


open_cursor_statement (MaxDB: Referenzhandbuch)

open_cursor_statement

< open_cursor_statement > ::=
  OPEN < result_table_name >


order_clause (MaxDB: Referenzhandbuch)

order_clause

< order_clause > ::=
  ORDER BY < sort_spec >,...


outer_join_inidicator (MaxDB: Referenzhandbuch)

outer_join_inidicator

< outer_join_inidicator > ::=
  (+)


owner (MaxDB: Referenzhandbuch)

owner

< owner > ::=
  < user_name >
| < usergroup_name >
| TEMP


parameter_name (MaxDB: Referenzhandbuch)

parameter_name

< parameter_name > ::=
  :< identifier >
| :<identfier>(<identifier>)
| :<identfier>(.<identifier>.)


parameter_spec (MaxDB: Referenzhandbuch)

parameter_spec

< parameter_spec > ::=
  < parameter_name > [< indicator_name >]


password (MaxDB: Referenzhandbuch)

password

< password > ::=
  < identifier >
| < first_password_character >[< identifier_tail_character >...]


pattern_element (MaxDB: Referenzhandbuch)

pattern_element

< pattern_element > ::=
  < match_string >
| < match_set >


position (MaxDB: Referenzhandbuch)

position

< position > ::=
  POS (< unsigned_integer >)
| POS (< parameter_spec >)
| ABSOLUTE < integer >
| ABSOLUTE <parameter_spec>
| RELATIVE <integer>
| RELATIVE <parameter_spec>


predicate (MaxDB: Referenzhandbuch)

predicate

< predicate > ::=
  < between_predicate >
| < bool_predicate >
| < comparison_predicate >
| < default_predicate >
| < exists_predicate >
| < in_predicate >
| < join_predicate >
| < like_predicate >
| < null_predicate >
| < quantified_predicate >
| < rowno_predicate >
| < sound_predicate >


priv_spec (MaxDB: Referenzhandbuch)

priv_spec

< priv_spec > ::=
  ALL [PRIV[ILEGES]] ON [TABLE] < table_name >,...
| < privilege >,... ON [TABLE] <table_name>,...
| < role_name >


privilege (MaxDB: Referenzhandbuch)

privilege

< privilege > ::=
  INSERT
| UPDATE [(< column_name >,...)]
| SELECT [(<column_name>,...)]
| SELUPD [(<column_name>,...)]
| DELETE
| INDEX
| ALTER
| REFERENCES [(<column_name>,...)]


procedure_name (MaxDB: Referenzhandbuch)

procedure_name

< procedure_name > ::=
  < identifier >


quantified_predicate (MaxDB: Referenzhandbuch)

quantified_predicate

< quantified_predicate > ::=
  < expression > < comp_op > < quantifier > < expression_list >
| <expression> <comp_op> <quantifier> < subquery >
| <expression_list> < equal_or_not > <quantifier> (<expression_list>,...)
| <expression_list> <equal_or_not> <quantifier> <subquery>


quantifier (MaxDB: Referenzhandbuch)

quantifier

< quantifier > ::=
  ALL
| SOME
| ANY


query_expression (MaxDB: Referenzhandbuch)

query_expression

< query_expression > ::=
  < query_term >
| <query_expression> UNION [ALL] <query_term>
| <query_expression> EXCEPT [ALL] <query_term>


query_primary (MaxDB: Referenzhandbuch)

query_primary

< query_primary > ::=
  < query_spec >
| (< query_expression >)


query_spec (MaxDB: Referenzhandbuch)

query_spec

< query_spec > ::=
  SELECT [< distinct_spec >] < select_column >,... < table_expression >


query_statement (MaxDB: Referenzhandbuch)

query_statement

<query_statement> ::=
<declare_cursor_statement>
| <recursive_declare_cursor_statement>
| <named_select_statement>
| <select_statement>


query_term (MaxDB: Referenzhandbuch)

query_term

< query_term > ::=
  < query_primary >
| <query_term> INTERSECT [ALL] <query_primary>


recursive_declare_cursor_statement (MaxDB: Referenzhandbuch)

recursive_declare_cursor_statement

< recursive_declare_cursor_statement > ::=
  DECLARE < result_table_name > CURSOR FOR WITH RECURSIVE < reference_name >
    (< alias_name >,...) AS (< initial_select > UNION ALL < recursive_select >) < final_select >


recursive_select (MaxDB: Referenzhandbuch)

recursive_select

< recursive_select > ::=
  < query_spec >


reference_name (MaxDB: Referenzhandbuch)

reference_name

< reference_name > ::=
  < identifier >


referenced_column (MaxDB: Referenzhandbuch)

referenced_column

< referenced_column > ::=
  < column_name >


referenced_table (MaxDB: Referenzhandbuch)

referenced_table

< referenced_table > ::=
  < table_name >


referencing_column (MaxDB: Referenzhandbuch)

referencing_column

< referencing_column > ::=
  < column_name >


referential_constraint_definition (MaxDB: Referenzhandbuch)

referential_constraint_definition

< referential_constraint_definition > ::=
  FOREIGN KEY [< referential_constraint_name >] (< referencing_column >,...)
    REFERENCES < referenced_table > [(< referenced_column >,...)] [< delete_rule >]


referential_constraint_name (MaxDB: Referenzhandbuch)

referential_constraint_name

< referential_constraint_name > ::=
  < identifier >


regular_token (MaxDB: Referenzhandbuch)

regular_token

< regular_token > ::=
  < literal >
| < key_word >
| < identifier >
| < parameter_name >


release_statement (MaxDB: Referenzhandbuch)

release_statement

< release_statement > ::=
  COMMIT [WORK] RELEASE
| ROLLBACK [WORK] RELEASE


rename_column_statement (MaxDB: Referenzhandbuch)

rename_column_statement

< rename_column_statement > ::=
  RENAME COLUMN < table_name >.< column_name > TO <column_name>


rename_index_statement (MaxDB: Referenzhandbuch)

rename_index_statement

< rename_index_statement > ::=
  RENAME INDEX < old_index_name > [ON < table_name >] TO < new_index_name >


rename_synonym_statement (MaxDB: Referenzhandbuch)

rename_synonym_statement

< rename_synonym_statement > ::=
  RENAME [PUBLIC] SYNONYM <old_ synonym_name > TO <new_synonym_name>


rename_table_statement (MaxDB: Referenzhandbuch)

rename_table_statement

< rename_table_statement > ::=
  RENAME TABLE < old_table_name > TO < new_table_name >


rename_user_statement (MaxDB: Referenzhandbuch)

rename_user_statement

< rename_user_statement > ::=
  RENAME USER < user_name > TO <new_ user_name >


rename_usergroup_statement (MaxDB: Referenzhandbuch)

rename_usergroup_statement

< rename_usergroup_statement > ::=
  RENAME USERGROUP < usergroup_name > TO <new_ usergroup_name >


rename_view_statement (MaxDB: Referenzhandbuch)

rename_view_statement

< rename_view_statement > ::=
  RENAME VIEW < old_table_name > TO < new_table_name >


reserved_key_word (MaxDB: Referenzhandbuch)

reserved_key_word

<reserved_key_word> ::=

ABS | ABSOLUTE | ACOS | ADDDATE | ADDTIME
ALL | ALPHA | ALTER | ANY | ASCII
ASIN | ATAN | ATAN2 | AVG |
BINARY | BIT | BOOLEAN | BYTE |
CASE | CEIL | CEILING | CHAR | CHARACTER
CHECK | CHR | COLUMN | CONCAT | CONSTRAINT
COS | COSH | COT | COUNT | CROSS
CURDATE | CURRENT | CURTIME |  |
DATABASE | DATE | DATEDIFF | DAY | DAYNAME
DAYOFMONTH | DAYOFWEEK | DAYOFYEAR | DEC | DECIMAL
DECODE | DEFAULT | DEGREES | DELETE | DIGITS
DISTINCT | DOUBLE |  |  |
EXCEPT | EXISTS | EXP | EXPAND |
FIRST | FIXED | FLOAT | FLOOR | FOR
FROM | FULL |  |  |
GET_OBJECTNAME | GET_OWNER | GRAPHIC | GREATEST | GROUP
HAVING | HEX | HEXTORAW | HOUR |
IFNULL | IGNORE | INDEX | INITCAP | INNER
INSERT | INT | INTEGER | INTERNAL | INTERSECT
INTO |  |  |  |
JOIN |  |  |  |
KEY |  |  |  |
LAST | LCASE | LEAST | LEFT | LENGTH
LFILL | LIST | LN | LOCATE | LOG
LOG10 | LONG | LONGFILE | LOWER | LPAD
LTRIM |  |  |  |
MAKEDATE | MAKETIME | MAPCHAR | MAX | MBCS
MICROSECOND | MIN | MINUTE | MOD | MONTH
MONTHNAME |  |  |  |
NATURAL | NCHAR | NEXT | NO | NOROUND
NOT | NOW | NULL | NUM | NUMERIC
OBJECT | OF | ON | ORDER |
PACKED | PI | POWER | PREV | PRIMARY
RADIANS | REAL | REJECT | RELATIVE | REPLACE
RFILL | RIGHT | ROUND | ROWID | ROWNO
RPAD | RTRIM |  |  |
SECOND | SELECT | SELUPD | SERIAL | SET
SHOW | SIGN | SIN | SINH | SMALLINT
SOME | SOUNDEX | SPACE | SQRT | STAMP
STATISTICS | STDDEV | SUBDATE | SUBSTR | SUBSTRING
SUBTIME | SUM | SYSDBA |  |
TABLE | TAN | TANH | TIME | TIMEDIFF
TIMESTAMP | TIMEZONE | TO | TOIDENTIFIER | TRANSACTION
TRANSLATE | TRIM | TRUNC | TRUNCATE |
UCASE | UID | UNICODE | UNION | UPDATE
UPPER | USER | USERGROUP | USING | UTCDATE
UTCDIFF |  |  |  |
VALUE | VALUES | VARCHAR | VARGRAPHIC | VARIANCE
WEEK | WEEKOFYEAR | WHEN | WHERE | WITH
YEAR |  |  |  |
ZONED |  |  |  |


result_column_name (MaxDB: Referenzhandbuch)

result_column_name

< result_column_name > ::=
  < identifier >


result_table_name (MaxDB: Referenzhandbuch)

result_table_name

< result_table_name > ::=
  < identifier >


revoke_statement (MaxDB: Referenzhandbuch)

revoke_statement

< revoke_statement > ::=
  REVOKE < priv_spec >,... FROM < grantee >,... [< cascade_option >]
| REVOKE EXECUTE ON < dbproc_name > FROM <grantee>,...
| REVOKE SELECT ON < sequence_name > FROM <grantee>,... [<cascade_option>]


role_name (MaxDB: Referenzhandbuch)

role_name

< role_name > ::=
  < identifier >


rollback_statement (MaxDB: Referenzhandbuch)

rollback_statement

<rollback_statement > ::=
  ROLLBACK [WORK]


routine (MaxDB: Referenzhandbuch)

routine

< routine > ::=
  [< local_variables >] < statement_list >;


routine_sql_statement (MaxDB: Referenzhandbuch)

routine_sql_statement

<routine_sql_statement> ::=
  <call_statement>
| <close_statement>
| <create_table_temp>
| <declare_cursor_statement>
| <delete_statement>
| <fetch_statement>
| <insert_statement>
| <lock_statement>
| <named_select_statement>
| <select_statement>
| <single_select_statement>
| <subtrans_statement>
| <update_statement>


row_spec (MaxDB: Referenzhandbuch)

row_spec

< row_spec > ::=
  ROW < table_name > KEY < key_spec >,...
| ROW <table_name> CURRENT OF < result_table_name >


rowno_column (MaxDB: Referenzhandbuch)

rowno_column

< rowno_column > ::=
  ROWNO [< result_column_name >]
| <result_column_name> = ROWNO


rowno_predicate (MaxDB: Referenzhandbuch)

rowno_predicate

< rowno_predicate > ::=
  ROWNO < < unsigned_integer >
| ROWNO < < parameter_spec >
| ROWNO <= < unsigned_integer >
| ROWNO <= < parameter_spec >


sample_definition (MaxDB: Referenzhandbuch)

sample_definition

< sample_definition > ::=
  SAMPLE < unsigned_integer > ROWS
| SAMPLE <unsigned_integer> PERCENT


scalar_subquery (MaxDB: Referenzhandbuch)

scalar_subquery

< scalar_subquery > ::=
  < subquery >


search_and_result_spec (MaxDB: Referenzhandbuch)

search_and_result_spec

< search_and_result_spec > ::=
  <search_ expression >, <result_expression>


search_condition (MaxDB: Referenzhandbuch)

search_condition

< search_condition > ::=
  < boolean_term >
| <search_condition> OR <boolean_term>


searched_case_function (MaxDB: Referenzhandbuch)

searched_case_function

< searched_case_function > ::=
  WHEN < search_condition > THEN <result_ expression >
    [...]
  [ELSE <default_expression>]
END


searched_case_statement (MaxDB: Referenzhandbuch)

searched_case_statement

< searched_case_statement > ::=
  CASE
    < searched_case_when_clause >…
    [< case_else_clause >]
  END [CASE]


searched_case_when_clause (MaxDB: Referenzhandbuch)

searched_case_when_clause

< searched_case_when_clause > ::=
  WHEN < search_condition > THEN < statement >


seconds (MaxDB: Referenzhandbuch)

seconds

< seconds > ::=
  < expression >


select_column (MaxDB: Referenzhandbuch)

select_column

< select_column > ::=
  < table_columns >
| < derived_column >
| < rowno_column >
| < stamp_column >


select_statement (MaxDB: Referenzhandbuch)

select_statement

< select_statement > ::=
  < query_expression > [< order_clause >] [< update_clause >] [< lock_option >]
    [FOR REUSE]


sequence_name (MaxDB: Referenzhandbuch)

sequence_name

< sequence_name > ::=
  < identifier >


set_function_name (MaxDB: Referenzhandbuch)

set_function_name

< set_function_name > ::=
  COUNT
| MAX
| MIN
| SUM
| AVG
| STDDEV
| VARIANCE


set_function_spec (MaxDB: Referenzhandbuch)

set_function_spec

< set_function_spec > ::=
  COUNT (*)
| < distinct_function >
| < all_function >


set_insert_clause (MaxDB: Referenzhandbuch)

set_insert_clause

< set_insert_clause > ::=
  < column_name > = < extended_value_spec >


set_statement (MaxDB: Referenzhandbuch)

set_statement

< set_statement > ::=
  SET ROLE ALL [EXCEPT < role_name >]
| SET ROLE NONE
| SET ROLE <role_name> [IDENTIFIED BY < password >]
| SET ISOLATION LEVEL < unsigned_integer >


set_update_clause (MaxDB: Referenzhandbuch)

set_update_clause

< set_update_clause > ::=
  < column_name > = < extended_expression >
| <column_name>,... = (<extended_expression>,...)
| (<column_name>,...) = (<extended_expression>,...)
| <column_name> = < subquery >
| (<column_name>,...) = <subquery>


sign (MaxDB: Referenzhandbuch)

sign

< sign > ::=
  +
| -


simple_case_function (MaxDB: Referenzhandbuch)

simple_case_function

<simple_case_function > ::=
  CASE <check_expression >
    WHEN <search_expression> THEN <result_expression>
      [...]
    [ELSE <default_expression>]
  END


simple_case_statement (MaxDB: Referenzhandbuch)

simple_case_statement

< simple_case_statement > ::=
  CASE < expression >
    < simple_case_when_clause >...
    [< case_else_clause >]
  END [CASE]


simple_case_when_clause (MaxDB: Referenzhandbuch)

simple_case_when_clause

< simple_case_when_clause > ::=
  WHEN < literal >[, ...] THEN < statement >


simple_identifier (MaxDB: Referenzhandbuch)

simple_identifier

< simple_identifier > ::=
  < first_character >[< identifier_tail_character >...]


single_select_statement (MaxDB: Referenzhandbuch)

single_select_statement

< single_select_statement > ::=
  SELECT [< distinct_spec >] < select_column >,... INTO < parameter_spec >,...
    FROM < from_table_spec >,...[< where_clause >] [< group_clause >]
    [< having_clause >] [< lock_option >]


sort_spec (MaxDB: Referenzhandbuch)

sort_spec

< sort_spec > ::=
  < unsigned_integer > [ASC | DESC]
| < expression > [ASC | DESC]


sound_predicate (MaxDB: Referenzhandbuch)

sound_predicate

< sound_predicate > ::=
  < expression > [NOT] SOUNDS [LIKE] <expression>


source_user (MaxDB: Referenzhandbuch)

source_user

< source_user > ::=
  < user_name >


special_character (MaxDB: Referenzhandbuch)

special_character

< special_character > ::=
  jedes Zeichen außer
    < digit >
  | < letter >
  | < extended_letter >
  | < hex_digit >
  | <language_specific_character >
  | <Zeichen für das Zeilenende in einer Datei>


special_function (MaxDB: Referenzhandbuch)

special_function

< special_function > ::=
  VALUE (< expression >,<expression>,...)
| GREATEST (<expression>,<expression>,...)
| LEAST (<expression>,<expression>,...)
| DECODE (<check_ expression >,< search_and_result_spec >,...[,<default_expression>])
| case_function


special_identifier (MaxDB: Referenzhandbuch)

special_identifier

< special_identifier > ::=
  < special_identifier_character >...


special_identifier_character (MaxDB: Referenzhandbuch)

special_identifier_character

< special_identifier_character > ::=
Jedes beliebige Zeichen.


sql_comment (MaxDB: Referenzhandbuch)

sql_comment

< sql_comment > ::=
  /*<Kommentartext>*/
| --<Kommentartext>


stamp_column (MaxDB: Referenzhandbuch)

stamp_column

< stamp_column > ::=
  STAMP [< result_column_name >]
| <result_column_name> = STAMP


statement (MaxDB: Referenzhandbuch)

statement

<statement> ::=
BEGIN <statement_list> END
| BREAK
| CONTINUE
| CONTINUE EXECUTE
| <if_statement>
| <while_statement>
| <assignment_statement>
| <case_statement>
| <RETURN> [<expression>]
| STOP (<expression> [,<expression>] )
| TRY <statement_list>; CATCH <statement>
| <routine_sql_statement>


statement_list (MaxDB: Referenzhandbuch)

statement_list

< statement_list > ::=
  < statement >
| <statement_list> ; <statement>


string_function (MaxDB: Referenzhandbuch)

string_function

<string_function> ::=
  <string_spec> || <string_spec>
| <string_spec> & <string_spec>
| SUBSTR (<string_spec>,<expression>[,<expression>])
| LFILL (<string_spec>,<string_literal>[,<unsigned_integer>])
| RFILL (<string_spec>,<string_literal>[,<unsigned_integer>])
| LPAD (<string_spec>,<expression>,<string_literal>[,<unsigned_integer>])
| RPAD (<string_spec>,<expression>,<string_literal>[,<unsigned_integer>])
| TRIM (<string_spec>[,<string_spec>])
| LTRIM (<string_spec>[,<string_spec>])
| RTRIM (<string_spec>[,<string_spec>])
| EXPAND (<string_spec>,<unsigned_integer>)
| UPPER (<string_spec>)
| LOWER (<string_spec>)
| INITCAP (<string_spec>)
| REPLACE (<string_spec>,<string_spec>[,<string_spec>])
| TRANSLATE (<string_spec>,<string_spec>,<string_spec>)
| MAPCHAR (<string_spec>[,<unsigned_integer>][,<mapchar_set_name>])
| ALPHA (<string_spec>[,<unsigned_integer>])
| ASCII (<string_spec>)
| SOUNDEX (<string_spec>)
| GET_OBJECTNAME (<string_literal)
| GET_OWNER (<string_literal>)


string_literal (MaxDB: Referenzhandbuch)

string_literal

< string_literal > ::=
  ''
| '< character >...'
| < hex_literal >


string_spec (MaxDB: Referenzhandbuch)

string_spec

< string_spec > ::=
  < expression >


subquery (MaxDB: Referenzhandbuch)

subquery

< subquery > ::=
  (< query_expression >)


subtrans_statement (MaxDB: Referenzhandbuch)

subtrans_statement

< subtrans_statement > ::=
  SUBTRANS BEGIN
| SUBTRANS END
| SUBTRANS ROLLBACK


synonym_name (MaxDB: Referenzhandbuch)

synonym_name

< synonym_name > ::=
  < identifier >


table_columns (MaxDB: Referenzhandbuch)

table_columns

< table_columns > ::=
  *
| < table_name >.*
| < reference_name >.*


table_description_element (MaxDB: Referenzhandbuch)

table_description_element

< table_description_element > ::=
  < column_definition >
| < constraint_definition >
| < referential_constraint_definition >
| < key_definition >
| < unique_definition >


table_expression (MaxDB: Referenzhandbuch)

table_expression

< table_expression > ::=
  < from_clause > [< where_clause >] [< group_clause >] [< having_clause >]


table_name (MaxDB: Referenzhandbuch)

table_name

< table_name > ::=
  [< owner >.]< identifier >


term (MaxDB: Referenzhandbuch)

term

< term > ::=
  < factor >
| <term> * <factor>
| <term> / <factor>
| <term> DIV <factor>
| <term> MOD <factor>


time_expression (MaxDB: Referenzhandbuch)

time_expression

< time_expression > ::=
  < expression >


time_or_timestamp_expression (MaxDB: Referenzhandbuch)

time_or_timestamp_expression

< time_or_timestamp_expresion > ::=
  < expression >


time_function (MaxDB: Referenzhandbuch)

time_function

< time_function > ::=
  ADDTIME ( < time_or_timestamp_expression >, < time_expression > )
| SUBTIME ( <time_or_timestamp_expression>, <time_expression> )
| TIMEDIFF ( <time_or_timestamp_expression>, <time_or_timestamp_expression> )
| MAKETIME ( < hours >, < minutes >, < seconds > )


trigger_event (MaxDB: Referenzhandbuch)

trigger_event

< trigger_event > ::
  INSERT
| UPDATE [(< column_list >)]
| DELETE


trigger_name (MaxDB: Referenzhandbuch)

trigger_name

< trigger_name > ::=
  < identifier >


trigonometric_function (MaxDB: Referenzhandbuch)

trigonometric_function

< trigonometric_function > ::=
  COS ( < expression > )
| SIN ( <expression> )
| TAN ( <expression> )
| COT ( <expression> )
| COSH ( <expression> )
| SINH ( <expression> )
| TANH ( <expression> )
| ACOS ( <expression> )
| ASIN ( <expression> )
| ATAN ( <expression> )
| ATAN2 ( <expression>, <expression> )
| RADIANS ( <expression> )
| DEGREES ( <expression> )


underscore (MaxDB: Referenzhandbuch)

underscore

< underscore > ::=
  _


unique_definition (MaxDB: Referenzhandbuch)

unique_definition

< unique_definition > ::=
  [CONSTRAINT < index_name >] UNIQUE (< column_name >,...)


unlock_statement (MaxDB: Referenzhandbuch)

unlock_statement

< unlock_statement > ::=
  UNLOCK < row_spec >... IN SHARE MODE
| UNLOCK <row_spec>... IN EXCLUSIVE MODE
| UNLOCK <row_spec>... IN SHARE MODE <row_spec>... IN EXCLUSIVE MODE
| UNLOCK <row_spec>... OPTIMISTIC


unsigned_integer (MaxDB: Referenzhandbuch)

unsigned_integer

< unsigned_integer > ::=
  < numeric_literal >


update_clause (MaxDB: Referenzhandbuch)

update_clause

<update_clause > ::=
  FOR UPDATE [OF <column_name >,...] [NOWAIT]


update_statement (MaxDB: Referenzhandbuch)

update_statement

< update_statement > ::=
  UPDATE [OF] < table_name > [< reference_name >] SET < set_update_clause >,...
    [KEY < key_spec >,...] [WHERE < search_condition >]
| UPDATE [OF] <table_name> [<reference_name>] (< column_name >,...)
    VALUES (< extended_value_spec >,...) [KEY <key_spec>,...]
    [WHERE <search_condition>]
| UPDATE [OF] <table_name> [<reference_name>] SET <set_update_clause>,...
    WHERE CURRENT OF < result_table_name >
| UPDATE [OF] <table_name> [<reference_name>] (<column_name>,...)
    VALUES (<extended_value_spec>,...) WHERE CURRENT OF <result_table_name>


update_statistics_statement (MaxDB: Referenzhandbuch)

update_statistics_statement

< update_statistics_statement > ::=
  UPDATE STAT[ISTICS] COLUMN < table_name >.< column_name >
    [ESTIMATE [< sample_definition >]]
| UPDATE STAT[ISTICS] COLUMN (<column_name>,...) FOR <table_name>
    [ESTIMATE [<sample_definition>]]
| UPDATE STAT[ISTICS] COLUMN (*) FOR <table_name>
    [ESTIMATE [<sample_definition>]]
| UPDATE STAT[ISTICS] <table_name> [ESTIMATE [<sample_definition>]]
| UPDATE STAT[ISTICS] [< owner >.][< identifier >]* [ESTIMATE [<sample_definition>]]


user_mode (MaxDB: Referenzhandbuch)

user_mode

< user_mode > ::=
  DBA
| RESOURCE
| STANDARD


user_name (MaxDB: Referenzhandbuch)

user_name

< user_name > ::=
  < identifier >


usergroup_mode (MaxDB: Referenzhandbuch)

usergroup_mode

< usergroup_mode > ::=
  RESOURCE
| STANDARD


usergroup_name (MaxDB: Referenzhandbuch)

usergroup_name

< usergroup_name > ::=
  < identifier >


value_spec (MaxDB: Referenzhandbuch)

value_spec

<value_spec > ::=
  <literal >
| <parameter_spec >
| NULL
| USER
| USERGROUP
| SYSDBA
| UID
| [<owner >.]<sequence_name >.NEXTVAL
| [<owner>.]<sequence_name>.CURRVAL
| <table_name >.CURRVAL
| DATE
| TIME
| TIMESTAMP
| UTCDATE
| TIMEZONE
| UTCDIFF
| TRUE
| FALSE
| TRANSACTION


variable_name (MaxDB: Referenzhandbuch)

variable_name

< variable_name > ::=
  < identifier >


where_clause (MaxDB: Referenzhandbuch)

where_clause

< where_clause > ::=
  WHERE < search_condition >


while_statement (MaxDB: Referenzhandbuch)

while_statement

< while_statement > ::=
  WHILE < search_condition > DO < statement >


Syntaxnotation (MaxDB: Referenzhandbuch)

Syntaxnotation

Die in dieser Dokumentation verwendete Syntaxnotation ist die BNF mit folgenden Konventionen:

 | Erläuterung
SCHLÜSSELWÖRTER | Schlüsselwörter sind zur Verdeutlichung in Großbuchstaben geschrieben. Sie können in Groß- und in Kleinbuchstaben angegeben werden.
<xyz> | In spitze Klammern eingefaßte Begriffe sind Platzhalter für syntaktische Einheiten, die erläutert werden. Verwenden Sie die spitzen Klammern bei der Angabe einer SQL-Anweisung nicht mit.
Klausel ::= Regel | Klauseln sind die Bausteine der SQL-Anweisungen. Die Regeln beschreiben die Bildung zusammengesetzter Bausteine aus einfacheren Bausteinen und ihre Notation.
Klausel1 Klausel2 | Die beiden Klauseln werden hintereinander notiert und durch wenigstens ein Leerzeichen voneinander getrennt.
[Klausel] | Optionale Klausel. Diese Klausel kann ersatzlos entfallen. Verwenden Sie die eckigen Klammern bei der Angabe einer SQL-Anweisung nicht mit.
Klausel1 | Klausel2 | ... | Klauseln | Alternative Klauseln. Sie können jeweils genau eine der Klauseln verwenden.
Klausel,... | Die Klausel kann beliebig oft wiederholt werden. Die einzelnen Wiederholungen sind hintereinander zu notieren und durch ein Komma und beliebig viele Leerzeichen voneinander zu trennen.
Klausel... | Die Klausel kann beliebig oft wiederholt werden. Die einzelnen Wiederholungen sind direkt hintereinander zu notieren und weder durch Komma noch durch Leerzeichen voneinander zu trennen.


Systemtabellen (MaxDB: Referenzhandbuch)

Systemtabellen

Im Datenbanksystem gibt es eine Reihe von Systemtabellen, die Informationen über die Datenbankobjekte und deren Verbindungen untereinander enthalten, Statistiksystemtabellen und Monitor-Systemtabellen.

Sie finden im folgenden eine Reihe von Beispielen, wie Sie die Systemtabellen auswerten können.

· Bei der Angabe von SELECT-Anweisungen auf die Systemtabellen sollten Sie einige allgemeine Hinweise beachten.

· Wenn Sie erfahren wollen, in welcher Systemtabelle Sie Informationen zu einem bestimmten Datenbankbegriff finden, verwenden Sie die Liste der Datenbankbegriffe.

· Wenn Sie erfahren wollen, welche Informationen eine bestimmte Systemtabelle liefern kann, lesen Sie den Abschnitt Systemtabellen auswerten.

Die vollständige Definition der wichtigsten Systemtabellen finden Sie unter Definition der Systemtabellen.

Allgemeine Informationen zum Datenbanksystem finden Sie in der Dokumentation Datenbankverwaltung.


Allgemeine Hinweise (MaxDB: Referenzhandbuch)

Allgemeine Hinweise

Wenn Sie Systemtabellen auswerten wollen, beachten Sie folgende Hinweise:

· Beim Auswerten von Systemtabellen werden nur Informationen über solche Objekte ausgegeben, für die der aktuelle Benutzer Eigentümer ist oder zumindest ein Privileg erhalten hat (der Benutzer kennt also das Objekt). Dieses Berechtigungskonzept kann dazu führen, dass die für den aktuellen Benutzer sichtbare Tabellendefinition von der tatsächlichen Definition abweicht.
Die Definition einer View-Tabelle ist nur für den Eigentümer der View-Tabelle sichtbar.

· Die Bedingungen bei der Abfrage der Systemtabelle(n) sollten möglichst genau das gewünschte Objekt beschreiben. Die Angabe des Eigentümers des Objektes beschleunigt die Suche nach den entsprechenden Informationen erheblich.

· Bei der Angabe der Suchanweisungen sollten möglichst Gleichheitsbedingungen angegeben werden. Die Angabe von LIKE-Bedingungen ist ungünstiger.

· Aus Performance-Gründen sollte bei der Abfrage von Informationen aus Systemtabellen nicht nur die SQL-Anweisung SELECT * verwendet werden, sondern die Anzahl der Ausgabespalten auf die gewünschten Spalten eingeschränkt werden.
Gerade bei Abfrage von Statistikinformationen aus Systemtabellen werden bei Anforderung bestimmter Ausgabespalten zusätzliche Aktionen zur Ermittlung dieser Spaltenwerte im Datenbanksystem durchgeführt. Daher sollte Sie diese Spalteninformation nur dann ermitteln lassen, wenn diese auch wirklich benötigt werden.

· Einfache Bezeichner werden immer in Großbuchstaben in der Datenbankinstanz abgelegt, unabhängig davon wie sie bei der Datendefinition angegeben werden.
Wenn Sie einfache Bezeichner in einer Suchbedingung verwenden, müssen die für die Angabe von Literalen üblichen einfachen Hochkomma angegeben werden.
Aus Performance-Gründen sollte die Umwandlung eines einfachen Bezeichners in Großbuchstaben nicht erst beim Ausführen der SQL-Anweisung durch das Datenbanksystem erfolgen, sondern Sie sollten einfache Bezeichner sofort in Großbuchstaben in der Suchbedingung angeben.

CREATE TABLE mytab (…)
SELECT … FROM … WHERE … = 'MYTAB'

· Spezielle Bezeichner werden bei der Datendefinition in doppelten Hochkomma angegeben. Sie werden in der Datenbankinstanz so abgelegt, wie sie angegeben wurden, also nicht in Großbuchstaben umgewandelt.
Wenn Sie spezielle Bezeichner in einer Suchbedingung verwenden, müssen Sie die für die Angabe von Literalen üblichen einfachen Hochkomma angegeben.

CREATE TABLE "this is mytab" (…)
SELECT … FROM … WHERE … = 'this is mytab'


Datenbankbegriffe (MaxDB: Referenzhandbuch)

Datenbankbegriffe

Um Informationen über Ihr Datenbanksystem, dessen Objekte, Strukturen, Statusinformationen u.ä. zu ermitteln, müssen Sie die entsprechenden Systemtabellen auswerten.

Sie finden im folgenden eine Liste von Datenbankbegriffen mit Verweisen auf die Systemtabellen, die Informationen zu dem gewünschten Begriff liefern können. Die Begriffe sind alphabetisch geordnet.


A-C (MaxDB: Referenzhandbuch)

A-C

Datenbankbegriffe von A-C

 | Begriff | Erläuterung | Systemtabelle
B | Benutzer | definierter aktueller | USERS CONNECTEDUSERS
 | Betriebssystem | auf dem die aktuelle Datenbankinstanz läuft | VERSIONS
C | Char-Set (Zeichensatz) | Mapchar-Set | MAPCHARSETS
 | Column (Spalte) | Definition Wertebereich bei Definition Vorschlagswert invertierte Primärschlüssel Privileg im referentiellen Constraint einer Tabelle in View-Definition | COLUMNS COLUMNS COLUMNS INDEXCOLUMNS COLUMNS COLUMNS FOREIGNKEYCOLUMNS VIEWCOLUMNS
 | Constraint | einer Spalte oder Tabelle eines Wertebereichs referentielles NOT-NULL-Spalten Primärschlüssel UNIQUE |


D-H (MaxDB: Referenzhandbuch)

D-H

Datenbankbegriffe von D-H

 | Begriff | Erläuterung | Systemtabelle
D | Datenbankinstanz | in der aktuellen Datenbanksitzung | USERS
 | Datenbankprozedur | Datenbankprozedur Parameter | DBPROCEDURES DBPROCPARAMS
 | Datenbanksitzung | eigene alle aktiven in der aktuellen Datenbanksitzung aktive Rollen | CONNECTPARAMETERS CONNECTEDUSERS SESSION_ROLES
 | Default (Vorschlagswert) | einer Spalte eines Wertebereichs Vorschlagsrolle | COLUMNS DOMAINS ROLES
 | Domain (Wertebereich) | Wertebereich Constraint eines Wertebereichs bei Spaltendefinition | DOMAINS DOMAINCONSTRAINTS COLUMNS
E | Ergebnistabelle | Existenz | TABLES
F | Fremdschlüssel (Foreign Key, referentielles Constraint) | referentielles Constraint Spalten im referentiellen Constraint |


I-R (MaxDB: Referenzhandbuch)

I-R

Datenbankbegriffe von I-R

 | Begriff | Erläuterung | Systemtabelle
I | Identifikation | interne Identifikation einer Tabelle interne Identifikation eines Benutzers | TABLES USERS
 | Index | Indizes Spalte UNIQUE | INDEXES INDEXCOLUMNS INDEXES
 | Isolation-Level | der aktuellen Datenbanksitzung | CONNECTPARAMETERS
M | Mapchar-Set | Mapchar-Set | MAPCHARSETS
P | Parameter | einer Datenbankprozedur | DBPROCPARAMS
 | Privileg | einer Rolle einer Spalte einer Tabelle | ROLEPRIVILEGES COLUMNS TABLES TABLEPRIVILEGES
R | Rechnerknoten | in der aktuellen Datenbanksitzung | USERS
 | Referentielles Constraint | referentielles Constraint Spalten | FOREIGNKEYS FOREIGNKEYCOLUMNS
 | Release (Version) | der Datenbanksoftware | VERSIONS
 | Rolle | Rolle, Vorschlagsrolle Rollenprivileg in der aktuellen Datenbanksitzung aktive Rollen |


S (MaxDB: Referenzhandbuch)

S

Datenbankbegriffe

Begriffe | Erläuterung | Systemtabelle
Schlüssel | Primärschlüssel Sekundärschlüssel Fremdschlüssel (referentielles Constraint) | COLUMNS FOREIGNKEYCOLUMNS FOREIGNKEYS
Sequenz | aktueller Wert | SEQUENCES
Server-Node (Rechnerknoten) | in der aktuellen Datenbanksitzung genutzter Rechnerknoten | USERS
Session (Datenbanksitzung) | eigene alle aktiven in der aktuellen Datenbanksitzung aktive Rollen | CONNECTPARAMETERS CONNECTEDUSERS SESSION_ROLES
Spalte | Definition Wertebereich bei Definition Vorschlagswert invertierte Primärschlüssel Privileg im referentiellen Constraint einer Tabelle in View-Definition | COLUMNS COLUMNS COLUMNS INDEXCOLUMNS COLUMNS COLUMNS FOREIGNKEYCOLUMNS VIEWCOLUMNS
Sperre | aktuell gehaltene | LOCKS
SQL-Modus | der aktuellen Datenbanksitzung | CONNECTPARAMETERS
Statistik | Zeitpunkt des letzten Update-Statistics-Laufs einer Tabelle Sample-Werte des Update-Statistics-Laufs einer Tabelle | TABLES
Synonym | Synonyme Existenz |


T (MaxDB: Referenzhandbuch)

T

Datenbankbegriffe

Begriff | Erläuterung | Systemtabelle
Tabelle | Tabellen, Existenz Tabellendefinition Synonym Privileg in View-Definition Constraint referentielles Constraint Index View-Tabelle Primärschlüssel Sekundärschlüssel Trigger | TABLES COLUMNS SYNONYMS TABLES , TABLEPRIVILEGES VIEWCOLUMNS CONSTRAINTS FOREIGNKEYS INDEXES VIEWS COLUMNS FOREIGNKEYCOLUMNS TRIGGERS
Timeout | der aktuellen Datenbanksitzung | CONNECTPARAMETERS
Trigger | Trigger | TRIGGERS


U-Z (MaxDB: Referenzhandbuch)

U-Z

Datenbankbegriffe von U-Z

 | Begriff | Erläuterung | Systemtabelle
U | UNIQUE | Index | INDEXES
 | User (Benutzer) | definierter aktuell aktiver | USERS CONNECTEDUSERS
V | Version | der Datenbanksoftware | VERSIONS
 | View-Tabelle | View-Tabellen Definitionstext Existenz Synonym zugrunde liegende Tabellen und Spalten | VIEWS VIEWDEFS TABLES SYNONYMS VIEWCOLUMNS
 | Vorschlagswert | einer Spalte eines Wertebereichs Vorschlagsrolle | COLUMNS DOMAINS ROLES
W | Wertebereich | Wertebereich Constraint eines Wertebereichs bei Spaltendefinition | DOMAINS DOMAINCONSTRAINTS COLUMNS
Z | Zeichensatz | Mapchar-Set | MAPCHARSETS


Systemtabellen auswerten (MaxDB: Referenzhandbuch)

Systemtabellen auswerten

Beispiele dafür, wie Sie Informationen in den Systemtabellen auswerten, finden Sie in den folgenden Abschnitten.

COLUMNS

CONNECTEDUSERS

CONNECTPARAMETERS

CONSTRAINTS

DBPROCEDURES

DBPROCPARAMS

DOMAINCONSTRAINTS

DOMAINS

FOREIGNKEYCOLUMNS

FOREIGNKEYS

INDEXCOLUMNS

INDEXES

LOCKS

MAPCHARSETS

ROLEPRIVILEGES

ROLES

SEQUENCES

SESSION_ROLES

SYNONYMS

TABLEPRIVILEGES

TABLES

TRIGGERS

USERS

VERSIONS

VIEWCOLUMNS

VIEWDEFS

VIEWS


COLUMNS (MaxDB: Referenzhandbuch)

COLUMNS

Anhand der Systemtabelle COLUMNS können unter anderem folgende Datenbankinformationen ermittelt werden:

· Spalten der Tabelle RESERVATION in der Reihenfolge ihrer Definition, zusammen mit den zugehörigen Kommentaren
SELECT columnname, comment
  FROM DOMAIN.COLUMNS
    WHERE tablename = 'RESERVATION' ORDER BY pos

· Datentypen aller Spalten der Tabelle CUSTOMER
 SELECT columnname, datatype, len, dec, codetype
  FROM DOMAIN.COLUMNS
    WHERE tablename = 'CUSTOMER'

· Alle Spalten eigener Basistabellen, die den Datentyp DATE besitzen
 SELECT tablename,columnname
  FROM DOMAIN.COLUMNS
    WHERE owner = user
      AND tabletype = 'TABLE'
      AND datatype = 'DATE'

· Alle Spalten der eigenen Tabelle HOTEL, für die ein Vorschlagswert definiert wurde, sowie dieser Vorschlagswert
SELECT columnname, default
  FROM DOMAIN.COLUMNS
    WHERE owner = user
      AND tablename = 'HOTEL'
      AND default IS NOT NULL

· Alle Primärschlüsselspalten der Tabelle ROOM, sortiert nach ihrer Reihenfolge im Primärschlüssel
SELECT columnname
  FROM DOMAIN.COLUMNS
    WHERE tablename = 'ROOM' AND mode = 'KEY' ORDER BY keypos

· Alle mit NOT NULL definierten Spalten der Tabelle CUSTOMER
 SELECT columnname
  FROM DOMAIN.COLUMNS
    WHERE tablename = 'CUSTOMER' AND mode = 'MAN'

· Alle für den aktuellen Benutzer änderbaren Spalten der Tabelle RESERVATION
 SELECT columnname
  FROM DOMAIN.COLUMNS
    WHERE tablename = 'RESERVATION' AND columnprivileges LIKE '*UPD*'

· Alle für den aktuellen Benutzer änderbaren Spalten der Tabelle RESERVATION, für die er dieses Privileg weitervergeben darf
SELECT columnname
  FROM DOMAIN.COLUMNS
    WHERE tablename = 'RESERVATION' AND columnprivileges LIKE '*UPD+*'

· Alle Tabellenspalten, für die bei der Definition der Wertebereich MYDOMAIN angegeben wurde
SELECT owner, tablename, columnname
  FROM DOMAIN.COLUMNS
    WHERE domainname = 'MYDOMAIN'

Spalten im Index: siehe INDEXCOLUMNS

Spalten im referentiellen Constraint: siehe FOREIGNKEYCOLUMNS

Primärtabellen- oder View-Tabellen-Spalten in View-Tabelle: siehe VIEWCOLUMNS


CONNECTEDUSERS (MaxDB: Referenzhandbuch)

CONNECTEDUSERS

Anhand der Systemtabelle CONNECTEDUSERS können unter anderem folgende Datenbankinformationen ermittelt werden:

· Alle aktuell angemeldeten Benutzer und von dem jeweiligen Benutzer verwendeter Terminal
SELECT username, termid
  FROM DOMAIN.CONNECTEDUSERS

· Name des Terminals, von dem aus sich der aktuelle Benutzer angemeldet hat
SELECT termid
  FROM DOMAIN.CONNECTEDUSERS cu, DOMAIN.CONNECTPARAMETERS cp
    WHERE cu.session = cp.session

Alle definierten Benutzer: siehe USERS


CONNECTPARAMETERS (MaxDB: Referenzhandbuch)

CONNECTPARAMETERS

Anhand der Systemtabelle CONNECTPARAMETERS können unter anderem folgende Datenbankinformationen ermittelt werden:

Parameter der eigenen Datenbanksitzung
 SELECT sqlmode, isolevel, timeout, session
  FROM DOMAIN.CONNECTPARAMETERS


CONSTRAINTS (MaxDB: Referenzhandbuch)

CONSTRAINTS

Anhand der Systemtabelle CONSTRAINTS können unter anderem folgende Datenbankinformationen ermittelt werden:

Alle Bedingungen der Spalten der Tabelle CUSTOMER, die explizite Werteüberprüfungen darstellen
SELECT definition
  FROM DOMAIN.CONSTRAINTS
    WHERE tablename = 'CUSTOMER'

Constraints (Integritätsbedingungen), die NOT NULL-Definitionen, Primärschlüssel, UNIQUE-Definitionen oder referentielle Constraints betreffen, werden mit dieser SELECT-Anweisung nicht gefunden.

NOT-NULL-Spalten: siehe COLUMNS

Primärschlüssel: siehe COLUMNS

UNIQUE-Spalten: siehe INDEXES

Referentielles Constraint: siehe FOREIGNKEYS

Spalten in einem referentiellen Constraint: siehe FOREIGNKEYCOLUMNS

Constraint eines Wertebereichs: siehe DOMAINCONSTRAINTS


DBPROCEDURES (MaxDB: Referenzhandbuch)

DBPROCEDURES

Anhand der Systemtabelle DBPROCEDURES können unter anderem folgende Datenbankinformationen ermittelt werden:

Alle Datenbankprozeduren und ihre Kommentare, die in den letzten 10 Tagen erzeugt wurden
SELECT owner, dbprocname, comment
  FROM DOMAIN.DBPROCEDURES
    WHERE createdate >= subdate(date,10)

Parameter einer Datenbankprozedur: siehe DBPROCPARAMS


DBPROCPARAMS (MaxDB: Referenzhandbuch)

DBPROCPARAMS

Anhand der Systemtabelle DBPROCPARAMS können unter anderem folgende Datenbankinformationen ermittelt werden:

· Alle Input-Parameter der eigenen Datenbankprozedur MYPROC und folgende Parameterinformationen: Datentyp, Länge und Angabe, um den wievielten Parameter innerhalb der Datenbankprozedur es sich handelt
SELECT parametername, datatype, len, dec, pos
  FROM DOMAIN.DBPROCPARAMS
    WHERE owner = user
      AND dbprocname = 'MYPROC'
      AND "IN/OUT-TYPE" = 'IN'

· Gesamtanzahl der Parameter der eigenen Datenbankprozedur MYPROC
SELECT COUNT(*)
  FROM DOMAIN.DBPROCPARAMS
    WHERE owner = user
      AND dbprocname = 'MYPROC'

Datenbankprozeduren: siehe DBPROCEDURES


DOMAINCONSTRAINTS (MaxDB: Referenzhandbuch)

DOMAINCONSTRAINTS

Anhand der Systemtabelle DOMAINCONSTRAINTS können unter anderem folgende Datenbankinformationen ermittelt werden:

Alle Wertebereiche, für die eine Einschränkung der zulässigen Werte definiert wurde und diese entsprechende Einschränkung
SELECT domainname, definition
  FROM DOMAIN.DOMAINCONSTRAINTS

Alle Wertebereiche: siehe DOMAINS


DOMAINS (MaxDB: Referenzhandbuch)

DOMAINS

Anhand der Systemtabelle DOMAINS können unter anderem folgende Datenbankinformationen ermittelt werden:

· Alle Wertebereiche und deren Kommentar, die für den Datentyp DATE definiert wurden
SELECT owner, domainname, comment
  FROM DOMAIN.DOMAINS
    datatype = 'DATE'

· Alle eigenen Wertebereiche, in denen ein Vorschlagswert vereinbart wurde
SELECT domainname, datatype, len, dec, default
  FROM DOMAIN.DOMAINS
    WHERE owner = user
      AND default IS NOT NULL

Constraint eines Wertebereichs: siehe DOMAINCONSTRAINTS

Wertebereich bei Spaltendefinition: siehe COLUMNS


FOREIGNKEYCOLUMNS (MaxDB: Referenzhandbuch)

FOREIGNKEYCOLUMNS

Anhand der Systemtabelle FOREIGNKEYCOLUMNS können unter anderem folgende Datenbankinformationen ermittelt werden:

· Alle referentiellen Constraints, in denen die Spalte CNO der Tabelle CUSTOMER referenzierte Spalte ist
 SELECT owner, tablename, columnname, fkeyname, rule
  FROM DOMAIN.FOREIGNKEYCOLUMNS
    WHERE reftablename = 'CUSTOMER'
      AND refcolumnname = 'CNO'

· Alle referentiellen Constraints, in denen die Spalte HNO der Tabelle RESERVATION referenzierende Spalte ist
 SELECT fkeyname, rule
  FROM DOMAIN.FOREIGNKEYCOLUMNS
    WHERE tablename = 'RESERVATION'
      AND columnname = 'HNO'

· Alle referentiellen Constraints, in denen die referenzierenden Spalten aus der Tabellle RESERVATION stammen
 SELECT DISTINCT fkeyname, rule, refowner, reftablename
  FROM DOMAIN.FOREIGNKEYCOLUMNS
    WHERE tablename = 'RESERVATION'

Alle referentiellen Constraints: siehe FOREIGNKEYS


FOREIGNKEYS (MaxDB: Referenzhandbuch)

FOREIGNKEYS

Anhand der Systemtabelle FOREIGNKEYS können unter anderem folgende Datenbankinformationen ermittelt werden:

Alle referentiellen Constraints, in denen die Tabelle CUSTOMER referenzierte Tabelle ist
 SELECT columnname, fkeyname, rule
  FROM DOMAIN.FOREIGNKEYS
    WHERE tablename = 'CUSTOMER'

Spalten in referentiellen Constraints: siehe FOREIGNKEYCOLUMNS


INDEXCOLUMNS (MaxDB: Referenzhandbuch)

INDEXCOLUMNS

Anhand der Systemtabelle INDEXCOLUMNS können unter anderem folgende Datenbankinformationen ermittelt werden:

· Alle invertierten (mit einem Index versehenen) Spalten der Tabelle HOTEL
SELECT DISTINCT columnname
  FROM DOMAIN.INDEXCOLUMNS
    WHERE tablename = 'HOTEL'

· Alle Invertierungen für die Tabelle RESERVATION, sortiert nach dem Index und darin jeweils nach der Reihenfolge der Spalten, wie sie bei der Indexdefinition angegeben wurden
SELECT indexname, type, columnname, sort
  FROM DOMAIN.INDEXCOLUMNS
    WHERE tablename = 'RESERVATION' ORDER BY indexname, columnno

· Informationen über die Spalten, aus denen der Index MYINDEX der eigenen Tabelle MYTABLE zusammengesetzt ist
SELECT columnname, sort, datatype, len
  FROM DOMAIN.INDEXCOLUMNS
    WHERE tablename = 'MYTAB'
      AND indexname ='MYINDEX' ORDER BY columnno

Alle Indizes: siehe INDEXES


INDEXES (MaxDB: Referenzhandbuch)

INDEXES

Anhand der Systemtabelle INDEXES können unter anderem folgende Datenbankinformationen ermittelt werden:

· Alle Indizes der Tabelle ROOM und Angabe, welcher der Indizes zur Zeit im Zustand disabled ist
SELECT indexname, disabled
  FROM DOMAIN.INDEXES
    WHERE tablename = 'ROOM'

· Alle UNIQUE-Indizes (unabhängig davon, mit welcher der möglichen SQL-Anweisungen diese Indizes erzeugt wurden: CREATE INDEX-Anweisung oder UNIQUE-Definition)
SELECT owner, tablename, indexname
  FROM DOMAIN.INDEXES
    WHERE type = 'UNIQUE'

Spalten eines Index: siehe INDEXCOLUMNS


LOCKS (MaxDB: Referenzhandbuch)

LOCKS

Anhand der Systemtabelle LOCKS können unter anderem folgende Datenbankinformationen ermittelt werden:

· Alle Sperren, die aktuell auf der Tabelle ROOM gehalten werden
SELECT lockmode, lockstate, rowidlength, rowidhex, rowid
  FROM DOMAIN.LOCKS
    WHERE tablename = 'ROOM'

· Alle Sperren, die der aktuelle Benutzer in seiner Datenbanksitzung auf der Tabelle ROOM hält
SELECT lockmode, lockstate, rowidlength, rowidhex, rowid
  FROM DOMAIN.LOCKS l DOMAIN.CONNECTPARAMETERS cp
    WHERE tablename = 'ROOM'
      AND l.session = cp.session

· Alle Sperren, die aktuelle auf der Tabelle mit der hexadezimalen internen Identifiaktion 0000000000D34BA8 gehalten werden
SELECT lockmode, lockstate, rowidlength, rowidhex, rowid
  FROM DOMAIN.LOCKS
    WHERE tableid = X'0000000000D34BA8'

Wenn der aktuelle Benutzer Datenbankadministrator (DBA-Benutzer) oder Datenbanksystemadministrator (SYSDBA-Benutzer) ist, dann werden alle Sperren angezeigt, die gehalten werden.

Benutzer anderer Benutzerklassen sehen nur die Sperren, die von diesem Benutzer gehalten werden.


MAPCHARSETS (MaxDB: Referenzhandbuch)

MAPCHARSETS

Anhand der Systemtabelle MAPCHARSETS können unter anderem folgende Datenbankinformationen ermittelt werden:

· Namen aller Mapchar-Sets
SELECT DISTINCT mapcharsetname
  FROM DOMAIN.MAPCHARSETS

· Umsetzung des hexadezimalen Wertes D6 im Mapchar-Set DEFAULTMAP
SELECT map_code, map_character
  FROM DOMAIN.MAPCHARSETS
    WHERE mapcharsetname = 'DEFAULTMAP'
      AND intern = X'D6'


ROLEPRIVILEGES (MaxDB: Referenzhandbuch)

ROLEPRIVILEGES

Anhand der Systemtabelle ROLEPRIVILEGES können unter anderem folgende Datenbankinformationen ermittelt werden:

· Alle Privilegien, die der Rolle NEW_ROLE direkt für die eigenen Tabelle MYTABLE verliehen wurden. Indirekt, d.h. durch eine andere Rolle für die Tabelle MYTABLE vergebene Privilegien werden nicht angezeigt.
 SELECT privileges
  FROM DOMAIN.ROLEPRIVILEGES
    WHERE grantee = 'NEW_ROLE'
      AND owner = user
      AND tablename = 'MYTABLE'

· Alle Rollen, die der Rolle NEW_ROLE verliehen wurden. Angabe, wer die Rollen verliehen hat.
 SELECT role, grantor
  FROM DOMAIN.ROLEPRIVILEGES
    WHERE grantee = 'NEW_ROLE'
      AND role IS NOT NULL

Alle Rollen: siehe ROLES

Alle Rollen, die als Vorschlagswert verwendet werden: siehe ROLES

Alle in der aktuellen Datenbanksitzung aktiven Rollen: siehe SESSION_ROLES


ROLES (MaxDB: Referenzhandbuch)

ROLES

Anhand der Systemtabelle ROLES können unter anderem folgende Datenbankinformationen ermittelt werden:

· Alle Rollen, für deren Aktivierung die Angabe eines Kennworts notwendig ist
SELECT owner, role
  FROM DOMAIN.ROLES
    WHERE password_required = 'YES'

· Alle Rollen, die der aktuelle Benutzer als Vorschlagswert verwendet
SELECT role
  FROM DOMAIN.ROLES
    WHERE defaultrole = 'YES'

Alle in der aktuellen Datenbanksitzung aktiven Rollen: siehe SESSION_ROLES

Rollenprivileg: siehe ROLEPRIVILEGES


SEQUENCES (MaxDB: Referenzhandbuch)

SEQUENCES

Anhand der Systemtabelle SEQUENCES können unter anderem folgende Datenbankinformationen ermittelt werden:

· Alle Sequenzen, deren inkrementeller Wert nicht +1 beträgt und die Grenzwerte der Sequenzen
SELECT owner, sequence_name, increment_by, min_value, max_value
  FROM DOMAIN.SEQUENCES
    WHERE increment_by <> 1

· Alle Sequenzen mit positivem inkrementellen Wert. Die Werte werden nicht zyklisch vergeben und es gibt nur noch maximal 1000 freie Werte.
 SELECT owner, sequence_name, last_number, max_value
  FROM DOMAIN.SEQUENCES
    WHERE increment_by > 0
      AND cycle_flag = 'N'
      AND max_value - last_number <= 1000

· Aktueller Wert der eigenen Sequenz MYSEQ
SELECT last_number
  FROM DOMAIN.SEQUENCES
    WHERE owner = user
      AND sequence_name = 'MYSEQ'

· Zuletzt von der aktuellen Datenbanksitzung vergebener Wert der eigenen Sequenz MYSEQ
SELECT user.myseq.currval
FROM DUAL


SESSION_ROLES (MaxDB: Referenzhandbuch)

SESSION_ROLES

Anhand der Systemtabelle SESSION_ROLES können unter anderem folgende Datenbankinformationen ermittelt werden:

Alle Rollen, die in der aktuellen Datenbanksitzung aktiv sind
SELECT role
FROM DOMAIN.SESSION_ROLES

Alle Rollen: siehe ROLES

Alle Rollen, die als Vorschlagswert verwendet werden: siehe ROLES

Rollenprivileg: siehe ROLEPRIVILEGES


SYNONYMS (MaxDB: Referenzhandbuch)

SYNONYMS

Anhand der Systemtabelle SYNONYMS können unter anderem folgende Datenbankinformationen ermittelt werden:

· Alle Tabellen (Basistabellen, View-Tabellen), für die das PUBLIC-Synonym SHORT-TAB definiert wurde
SELECT tableowner, tablename
  FROM DOMAIN.SYNONYMS
    WHERE public = 'YES'
      AND synonymname = 'SHORT_TAB'

· Privates Synonym für die Tabelle HIS_TAB des Benutzers USER2
 SELECT synonymname
  FROM DOMAIN.SYNONYMS
    WHERE owner = user
      AND tableowner = 'USER2'
      AND tablename = 'HIS_TAB'

Existenz eines Synonyms: siehe TABLES


TABLEPRIVILEGES (MaxDB: Referenzhandbuch)

TABLEPRIVILEGES

Anhand der Systemtabelle TABLEPRIVILEGES können unter anderem folgende Datenbankinformationen ermittelt werden:

· Alle Tabellen, für die der aktuelle Benutzer ein Privileg erhalten hat. Eigene Tabellen werden nicht ausgegeben.
 SELECT owner, tablename, privileges
  FROM DOMAIN.TABLEPRIVILEGES
    WHERE grantee = user

· Alle Tabellen, für die der aktuelle Benutzer das SELECT-Privileg erhalten hat und dieses auch weitergeben darf. Eigene Tabellen werden nicht ausgegeben.
 SELECT owner, tablename
  FROM DOMAIN.TABLEPRIVILEGES
    WHERE grantee = user
      AND privileges LIKE '*SEL*'
      AND is_grantable = 'YES'

· Alle Privilegien, die der aktuelle Benutzer an den Benutzer USER2 vergeben hat
SELECT owner, tablename, privileges
  FROM DOMAIN.TABLEPRIVILEGES
    WHERE grantor = user
      AND grantee = 'USER2'

Alle Tabellen: siehe TABLES

Existenz einer Tabelle: siehe TABLES

Tabellendefinition: siehe COLUMNS

Synonym für eine Tabelle: siehe SYNONYMS

Tabellenprivileg: siehe TABLES

Tabelle in einer View-Definition: siehe VIEWCOLUMNS


TABLES (MaxDB: Referenzhandbuch)

TABLES

Anhand der Systemtabelle TABLES können unter anderem folgende Datenbankinformationen ermittelt werden:

· Alle Tabellen, View-Tabellen und Synonyme, die der aktuelle Benutzer selektieren kann
SELECT owner, tablename
  FROM DOMAIN.TABLES
    WHERE privileges LIKE '*SEL*'

· Alle Ergebnistabellen des aktuellen Benutzers
SELECT tablename
  FROM DOMAIN.TABLES
    WHERE type = 'RESULT'

· Alle eigenen Tabellen, für die der letzte Update-Statistics-Lauf mehr als 30 Tage zurückliegt
SELECT tablename, updstatdate
  FROM DOMAIN.TABLES
    WHERE updstatdate <= subdate (DATE,30)

· Informationen, mit welchen Sample-Werten ein Update-Statistics-Lauf auf die Tabelle CUSTOMER durchgeführt wird
SELECT sample_percent, sample_rows
  FROM DOMAIN.TABLES
    WHERE tablename = 'CUSTOMER'

· Interne Identifikation der Tabelle HOTEL
SELECT tableid
  FROM DOMAIN.TABLES
    WHERE tablename = 'HOTEL'
Wenn es sich um eine Basistabelle handelt, kann die interne Identifikation einer Tabelle z.B. bei der Abfrage auf Sperren (siehe LOCKS) eingesetzt werden.

Tabellendefinition: siehe COLUMNS

Primärschlüssel: COLUMNS

Synonym für eine Tabelle: siehe SYNONYMS

Tabellenprivileg: siehe TABLEPRIVILEGES

Tabelle in einer View-Definition: siehe VIEWCOLUMNS

Constraint einer Spalte oder Tabelle: siehe CONSTRAINTS

Referentieller Constraint: siehe FOREIGNKEYS

Index: siehe INDEXES

View-Tabelle: VIEWS

Sekundärschlüssel: siehe FOREIGNKEYCOLUMNS

Trigger: siehe TRIGGERS


TRIGGERS (MaxDB: Referenzhandbuch)

TRIGGERS

Anhand der Systemtabelle TRIGGERS können unter anderem folgende Datenbankinformationen ermittelt werden:

· Insert-Trigger für die Tabelle HOTEL
 SELECT triggername, definition
  FROM DOMAIN.TRIGGERS
    WHERE tablename = 'HOTEL'
      AND INSERT = 'YES'

· Tabelle und Aktion, für die der Trigger MYTRIGGER definiert wurde
 SELECT owner, triggername, insert, update, delete
  FROM DOMAIN.TRIGGERS
    WHERE triggername = 'MYTRIGGER '


USERS (MaxDB: Referenzhandbuch)

USERS

Anhand der Systemtabelle USERS können unter anderem folgende Datenbankinformationen ermittelt werden:

· Alle defininierten STANDARD-Benutzer
SELECT username, groupname
  FROM DOMAIN.USERS
    WHERE usermode = 'STANDARD'

· Alle Benutzer, die mehr als 6 Monate ihr Kennwort nicht verändert haben
SELECT username, pwcreatedate, pwcreatetime
  FROM DOMAIN.USERS
    WHERE pwcreatedate <= subdate (date,183)

· Alle Benutzer, die Mitglied einer Benutzergruppe sind und sich gleichzeitig mehrfach an der Datenbankinstanz anmelden dürfen
SELECT groupname, username, usermode
  FROMDOMAIN.USERS
    WHERE groupname <> username
      AND connectmode = 'MULTIPLE'

· Name der Datenbankinstanz, auf der die aktuelle Datenbanksitzung eröffnet wurde. Name des Rechners, auf der diese Datenbankinstanz läuft.
 SELECT DISTINCT serverdb, servernode
  FROM DOMAIN.USERS

Aktuelle aktiver Benutzer: siehe CONNECTEDUSERES


VERSIONS (MaxDB: Referenzhandbuch)

VERSIONS

Anhand der Systemtabelle VERSIONS können unter anderem folgende Datenbankinformationen ermittelt werden:

Version der Software, mit der die aktuelle genutzte Datenbankinstanz läuft, sowie das Betriebssystem, auf dem die Instanz läuft
SELECT *
  FROM DOMAIN.VERSIONS


VIEWCOLUMNS (MaxDB: Referenzhandbuch)

VIEWCOLUMNS

Anhand der Systemtabelle VIEWCOLUMNS können unter anderem folgende Datenbankinformationen ermittelt werden:

· Alle Tabellen oder View-Tabellen, die der eigenen View-Tabelle MYVIEW zugrunde liegen
SELECT tableowner, tablename
  FROM DOMAIN.VIEWCOLUMNS
    WHERE owner = user
      AND viewname = 'MYVIEW'

· Spalte der Tabelle oder View-Tabelle, die der Spalte V_COL der eigenen View-Tabelle zugrunde liegt
SELECT tableowner, tablename, columnname
  FROM DOMAIN.VIEWCOLUMNS
    WHERE owner = user
      AND viewname = 'MYVIEW'
      AND viewcolumnname = 'V_COL'

· Ermitteln, ob die Spalte TITLE der Tabelle CUSTOMER einer View-Tabelle zugrunde liegt
SELECT owner, viewname, viewcolumnname
  FROM DOMAIN.VIEWCOLUMNS
    WHERE tablename = 'CUSTOMER'
      AND columnname = 'TITLE'

Alle Views: siehe VIEWS

Definition einer View: siehe VIEWDEFS

Existenz einer View: siehe TABLES


VIEWDEFS (MaxDB: Referenzhandbuch)

VIEWDEFS

Anhand der Systemtabelle VIEWDEFS können unter anderem folgende Datenbankinformationen ermittelt werden:

Text, der bei der Definition der eigenen View-Tabelle MYVIEW angegeben wurde
SELECT definition
  FROM DOMAIN.VIEWDEFS
    WHERE owner = user
      AND viewname = 'MYVIEW'

Nur der Eigentümer einer View-Tabelle kann die Definition selektieren. Alle anderen Benutzer erhalten keine Ausgabe.

Alle View-Tabellen: siehe VIEWS

Existenz einer View-Tabelle: siehe TABLES

Einer View-Tabelle zugrunde liegende Tabellen und Spalten: siehe VIEWCOLUMNS


VIEWS (MaxDB: Referenzhandbuch)

VIEWS

Anhand der Systemtabelle VIEWS können unter anderem folgende Datenbankinformationen ermittelt werden:

· Alle Privilegien der eigenen View-Tabelle MYVIEW
 SELECT privileges
  FROM DOMAIN.VIEWS
    WHERE owner = user
      AND viewname = 'MYVIEW'

· Alle View-Tabellen mit ihren Kommentaren, die der aktuelle Benutzer sehen kann, ohne Eigentümer zu sein
SELECT owner, viewname, comment
  FROM DOMAIN.VIEWS
    WHERE owner <> user

Definitionstext einer View-Tabelle: siehe VIEWDEFS

Existenz einer View-Tabelle: siehe TABLES

Synonym für eine View-Tabelle: siehe SYNONYMS

Einer View-Tabelle zugrunde liegende Tabellen und Spalten: siehe VIEWCOLUMNS


Definitionen der Systemtabellen (MaxDB: Referenzhandbuch)

Definitionen der Systemtabellen

Systemtabellen mit Informationen zu Datenbankobjekten

Im Datenbanksystem gibt es eine Reihe von Systemtabellen, die Informationen über die Datenbankobjekte und deren Verbindungen untereinander enthalten. Diese Systemtabellen stehen in jedem SQL-Modus zur Verfügung und ihr Eigentümer ist der DOMAIN-Benutzer. Die Angabe des Eigentümers ist beim Zugriff auf diese Tabellen in jedem von INTERNAL verschiedenen SQL-Modus erforderlich.

Definitionen der wichtigsten dieser Systemtabellen:

COLUMNS | CONNECTEDUSERS | CONNECTPARAMETERS
CONSTRAINTS | DBPROCEDURES | DBPROCPARAMS
DOMAINCONSTRAINTS | DOMAINS | FOREIGNKEYCOLUMNS
FOREIGNKEYS | INDEXCOLUMNS | INDEXES
LOCKS | MAPCHARSETS | PACKAGES
ROLEPRIVILEGES | ROLES | SCHEMAS
SEQUENCES | SESSION_ROLES | SYNONYMS
TABLEPRIVILEGES | TABLES | TRIGGERS
USERS | VERSIONS | VIEWCOLUMNS
VIEWDEFS | VIEWS |

Systemtabellen mit Informationen zu Datenbankzuständen

Im Datenbanksystem gibt es eine Reihe von Systemtabellen, die Informationen über die Systemkonfiguration und -auslastung enthalten. Diese Systemtabellen stehen in jedem SQL-Modus zur Verfügung und ihr Eigentümer ist der SYSINFO-Benutzer. Die Angabe des Eigentümers ist beim Zugriff auf diese Tabellen nicht erforderlich.

Definitionen der wichtigsten dieser Systemtabellen:

ACTIVECONFIGURATION | CACHESTATISTICS | COMMANDCACHESTATISTICS
COMMANDSTATISTICS | DATASTATISTICS | DATAVOLUMES
DIAGNOSE | HOTSTANDBYCOMPONENT | HOTSTANDBYGROUP
INSTANCE | LOGVOLUMES | MACHINECONFIGURATION
MACHINEUTILIZATION | MEMORYALLOCATORSTATISTICS | OPTIMIZERINFORMATION
SESSIONS | SNAPSHOTS | SPINLOCKSTATISTICS
VERSION |  |

Statistik-Systemtabellen

Im Datenbanksystem gibt es eine Reihe von Systemtabellen, mit deren Hilfe sich Informationen über die Konfiguration, Strukturen und Größen von Datenbankobjekten selektieren lassen. Eigentümer dieser Statistik-Systemtabellen ist der Datenbanksystemadministrator (SYSDBA-Benutzer). Die Angabe des Eigentümers ist beim Zugriff auf diese Tabellen nicht erforderlich.

Statistik-Systemtabellen

DBPARAMETERS | INDEXSTATISTICS | LOCKLISTSTATISTICS
OPTIMIZERSTATISTICS | SERVERDBSTATISTICS | TABLESTATISTICS
TRANSACTIONS | USERSTATISTICS |

Monitor-Systemtabellen

Im Datenbanksystem gibt es eine Reihe von Systemtabellen, mit deren Hilfe sich Monitor-Informationen abrufen lassen. Eigentümer dieser Monitor-Systemtabellen ist der SYSDBA-Benutzer. Die Angabe des Eigentümers ist beim Zugriff auf diese Tabellen nicht erforderlich.

Die Monitor-Systemtabellen liefern für den SYSDBA-Benutzer und für alle Benutzer der Datenbankbenutzerklasse Datenbankadministrator (DBA-Benutzer) Ergebnisse. Nicht berechtigte Benutzer erhalten die Fehlermeldung 100 – Zeile nicht gefunden.

Die Monitor-Systemtabellen besitzen folgende Struktur:

DESCRIPTION | CHAR(40)
VALUE | FIXED(20)

Jede Zeile enthält einen Zählerwert, dessen Bedeutung jeweils dem Spaltenwert von DESCRIPTION entnommen werden kann.

Monitor-Systemtabellen

MONITOR | MONITOR_CACHES | MONITOR_LOAD
MONITOR_LOCK | MONITOR_LOG | MONITOR_LONG
MONITOR_PAGES | MONITOR_ROW | MONITOR_TRANS

Loader-Systemtabellen

Im Datenbanksystem gibt es eine Reihe von Systemtabellen, die vom Loader verwendet werden. Eigentümer dieser Loader-Systemtabellen ist der SYSDBA-Benutzer. Die Angabe des Eigentümers ist beim Zugriff auf diese Tabellen nicht erforderlich.

Loader-Systemtabellen

CODEPAGE | TRANSFORMATIONMODEL | TRANSFORMATIONMONITOR
TRANSFORMATIONPACKAGES | TRANSFORMATIONRESOURCES | TRANSFORMATIONSTATISTICS
TRANSFORMATIONSTEPS |  |


ACTIVECONFIGURATION (MaxDB: Referenzhandbuch)

ACTIVECONFIGURATION

Die Systemtabelle ACTIVECONFIGURATION enthält die Namen und Werte der aktuell gültigen Datenbankparameter.

ACTIVECONFIGURATION

PARAMETERNAME | CHAR(32) | Name des Datenbankparameters
VALUE | CHAR(256) | Wert des Datenbankparameters


CACHESTATISTICS (MaxDB: Referenzhandbuch)

CACHESTATISTICS

Die Systemtabelle CACHESTATISTICS enthält Angaben über Zugriffe auf Caches seit dem letzten Start der Datenbankinstanz. Für jeden Cache der Auftragskommunikationsschicht wird eine Zeile geschrieben.

CACHESTATISTICS

SESSIONID | FIXED(10) | Session-ID, falls der entsprechende Cache session-spezifisch ist, andernfalls NULL-Wert
NAME | CHAR(20) | Name des Cache
ACCESSCOUNT | FIXED(20) | Anzahl der Zugriffe auf den Cache
SUCCESSFULACCESSCOUNT | FIXED(20) | Anzahl erfolgreicher Zugriffe auf den Cache
UNSUCCESSFULACCESSCOUNT | FIXED(20) | Anzahl erfolgloser Zugriffe auf den Cache
HITRATE | FIXED(3) | Trefferrate (Prozentsatz erfolgreicher Zugriffe) bei Zugriffen auf den Cache (%)


COLUMNS (MaxDB: Referenzhandbuch)

COLUMNS

Die Systemtabelle COLUMNS enthält die Spalten aller Tabellen, View-Tabellen, Ergebnistabellen und Synonyme, für die der aktuelle Benutzer Privilegien besitzt.

COLUMNS

OWNER | CHAR(32) | Name des Eigentümers des Datenbankobjekts
TABLENAME | CHAR(32) | Name des Datenbankobjekts
COLUMNNAME | CHAR(32) | Name der Spalte
MODE | CHAR(3) | Art der Spalte (KEY | MAN | OPT)
DATATYPE | CHAR(10) | Datentyp der Spalte (BOOLEAN | CHAR | DATE | FIXED | FLOAT | INTEGER | LONG | SMALLINT | TIME | TIMESTAMP)
CODETYPE | CHAR(8) | Codeattribut der Spalte (ASCII | BYTE | UNICODE)
LEN | FIXED(4) | Länge bzw. Genauigkeit der Spalte
DEC | FIXED(3) | Anzahl der Nachkommastellen bei den Spalten vom Datentyp FIXED
NULLABLE | CHAR(3) | Spalte kann NULL-Wert annehmen (YES | NO)
COLUMNPRIVILEGES | CHAR(8) | Privilegien des aktuellen Benutzers für die Spalte
DEFAULT | CHAR(254) | Vorschlagswert (DEFAULT) für die Spalte
DEFAULTFUNCTION | CHAR(12) | Name, wenn der DEFAULT-Wert eine der folgenden Spezifikationen von Werten ist: NULL | USER | USERGROUP | SYSDBA | UID | DATE | TIME | TIMESTAMP | UTCDATE | TIMEZONE | UTCDIFF | TRUE | FALSE | TRANSACTION andernfalls NULL-Wert
DOMAINOWNER | CHAR(32) | Name des Eigentümers des Wertebereichs
DOMAINNAME | CHAR(32) | Name des Wertebereichs
POS | FIXED(4) | Originalposition der Spalte in der Tabelle
KEYPOS | FIXED(4) | Originalposition der Schlüsselspalte in der Tabelle
PHYSICALPOS | FIXED(4) | Position der Spalte auf Platte
CREATEDATE | DATE(10) | Erzeugungsdatum der Spalte
CREATETIME | TIME(8) | Erzeugungszeit der Spalte
ALTERDATE | DATE(10) | Änderungsdatum der Spalte
ALTERTIME | TIME(8) | Änderungszeit der Spalte
TABLETYPE | CHAR(8) | Typ der Tabelle (SYSTEMS | TABLES)
COMMENT | LONG | Kommentar zu der Spalte

Siehe auch:

Systemtabellen auswerten ® COLUMNS


COMMANDCACHESTATISTICS (MaxDB: Referenzhandbuch)

COMMANDCACHESTATISTICS

Die Systemtabelle COMMANDCACHESTATISTICS enthält die seit dem letzten Start der Datenbankinstanz gesammelten statistischen Angaben über Aktivitäten des Kommando-Cache. Der Kommando-Cache enthält die von verschiedenen Datenbanksitzungen gemeinsam genutzten SQL-Anweisungen und deren Ausführungspläne (SQL-Anweisung und Ausführungsplan gemeinsam werden im folgenden kurz Kommando genannt).

COMMANDCACHESTATISTICS

USABLESIZE | FIXED(10) | Größe des Kommando-Cache (KB)
USEDSIZE | FIXED(10) | Tatsächlich belegter Bereich des Kommando-Cache (KB)
USEDSIZEPERCENTAGE | FIXED(3) | Tatsächlich belegter Bereich des Kommando-Cache (%)
MAXUSEDSIZE | FIXED(10) | Maximal belegter Bereich des Kommando-Cache (KB)
MAXUSEDSIZEPERCENTAGE | FIXED(3) | Maximal belegter Bereich des Kommando-Cache (%)
COMMANDCOUNT | FIXED(10) | Anzahl der gespeicherten Kommandos
MAXCOMMANDCOUNT | FIXED(10) | Maximale Anzahl gespeicherter Kommandos
INSERTCOMMANDCOUNT | FIXED(10) | Anzahl der Einfügungen
DELETECOMMANDCOUNT | FIXED(10) | Anzahl der Löschungen
FAILEDALLOCATECOUNT | FIXED(10) | Anzahl nicht erfüllbarer Speicheranforderungen
CLEANUPCOUNT | FIXED(10) | Anzahl der Operationen, die auf Platzmangel im Hauptspeicher stießen
CLEANUPCOMMANDCOUNT | FIXED(10) | Anzahl geänderter Kommandos aufgrund des Platzmangels im Hauptspeicher
INVALIDATECOUNT | FIXED(10) | Anzahl der Anweisungen zur Datendefinition, die zur Ungültigkeit von Ausführungsplänen führten
UNLOADSTATEMENTCOUNT | FIXED(10) | Anzahl der auf Platte verdrängten SQL-Anweisungen
CURRENTUNLOADSTATEMENTCOUNT | FIXED(10) | Anzahl der zur Zeit auf Platte verdrängten SQL-Anweisungen
RELOADSTATEMENTCOUNT | FIXED(10) | Anzahl der in den Hauptspeicher zurückgeladenen SQL-Anweisungen
DELETEPLANCOUNT | FIXED(10) | Anzahl gelöschter Ausführungspläne aufgrund des Platzmangels im Hauptspeicher
HASHTABLESLOTCOUNT | FIXED(5) | Anzahl der Slots in der Hash-Tabelle
USEDHASHTABLESLOTCOUNT | FIXED(5) | Anzahl genutzter Slots in der Hash-Tabelle
MAXUSEDHASHTABLESLOTCOUNT | FIXED(5) | Maximale Anzahl genutzter Slots in der Hash-Tabelle
AVGHASHTABLECHAINENTRYCOUNT | FIXED(5) | Durchschnittliche Länge der Überlaufketten
MAXHASHTABLECHAINENTRYCOUNT | FIXED(5) | Maximale Länge der Überlaufketten


COMMANDSTATISTICS (MaxDB: Referenzhandbuch)

COMMANDSTATISTICS

Die Systemtabelle COMMANDSTATISTICS beschreibt SQL-Anweisungen, die im Kommando-Cache gespeichert sind und enthält die seit dem letzten Start der Datenbankinstanz gesammelten statistischen Angaben über Aktivitäten dieser SQL-Anweisungen. Der Kommando-Cache enthält die von verschiedenen Datenbanksitzungen gemeinsam genutzten SQL-Anweisungen und deren Ausführungspläne.

COMMANDSTATISTICS

COMMANDID | CHAR(8) BYTE | Identifikation der SQL-Anweisung
INTERNAL | CHAR(3) | SQL-Anweisung wurde von der Datenbankinstanz implizit erzeugt (YES|NO)
HASHVALUE | FIXED(10) | Hash-Wert
HASHTABLESLOT | FIXED(5) | Slot in der Hash-Tabelle
STATUS | CHAR(10) | Status (PREPARING | PREPARED | INVALID)
USERNAME | CHAR(32) | Name des Datenbankbenutzers
SCHEMANAME | CHAR(32) | Aktuelles Schema zum Zeitpunkt der Erstellung des Ausführungsplanes
SQLMODE | CHAR(10) | SQL-Modus
ISOLATIONLEVEL | CHAR(3) | Isolation-Level
DATEFORMAT | CHAR(50) | Datums- und Zeitformat
MASSCOMMAND | CHAR(3) | Kommando als Array-Befehl nutzbar (YES|NO)
STATEMENTSIZE | FIXED(10) | Länge der SQL-Anweisung (Bytes)
STATEMENT | LONG | SQL-Anweisung
PLANSIZE | FIXED(10) | Speicherbedarf des Ausführungsplans (Bytes)
PREPARECOUNT | FIXED(10) | Anzahl der Ausführungsvorbereitungen
REFERENCECOUNT | FIXED(5) | Anzahl der Datenbanksitzungen, für die die SQL-Anweisung zur Ausführung vorbereitet ist
CURRENTEXECUTECOUNT | FIXED(5) | Aktuelle Anzahl der Ausführungen
EXECUTECOUNT | FIXED(10) | Anzahl der Ausführungen
PREPARETIME | FIXED(20) | Zeit zum Parsen (ms)
EXECUTETIME | FIXED(20) | Gesamtzeit der Ausführungen (ms)
AVGEXECUTETIME | FIXED(20) | Durchschnittliche Ausführungszeit (ms)
MINEXECUTETIME | FIXED(20) | Minimale Ausführungszeit (ms)
MAXEXECUTETIME | FIXED(20) | Maximale Ausführungszeit (ms)
READROWCOUNT | FIXED(20) | Anzahl gelesener Zeilen
QUALIFIEDROWCOUNT | FIXED(20) | Anzahl qualifizierter Zeilen
VIRTUALREADCOUNT | FIXED(20) | Anzahl der Lesevorgänge im Data-Cache
PHYSICALREADCOUNT | FIXED(20) | Anzahl der Lesevorgänge im Data-Cache, die Lesevorgänge auf der Platte auslösten
FETCHROWCOUNT | FIXED(20) | Anzahl der Zeilen der durch die SQL-Anweisung erzeugten Ergebnistabellen, die an die Anwendung geliefert wurden
SUSPENDCOUNT | FIXED(20) | Anzahl der Suspends
WAITCOUNT | FIXED(20) | Anzahl der Wartevorgänge aufgrund von Sperrkollisionen


CONNECTEDUSERS (MaxDB: Referenzhandbuch)

CONNECTEDUSERS

Die Systemtabelle CONNECTEDUSERS enthält alle angemeldeten Datenbankbenutzer.

CONNECTEDUSERS

USERNAME | CHAR(32) | Name des Benutzers
TERMID | CHAR(18) | Terminal-Identifikation
SESSION | FIXED(10) | Sitzung
CATALOG_CACHE_SIZE | FIXED(10) | Größe des Cache für Kataloginformationen dieser Datenbanksitzung

Siehe auch:

Systemtabellen auswerten ® CONNECTEDUSERS


CONNECTPARAMETERS (MaxDB: Referenzhandbuch)

CONNECTPARAMETERS

Die Systemtabelle CONNECTPARAMETERS enthält Informationen über sitzungsspezifische Parameter.

CONNECTPARAMETERS

SQLMODE | CHAR(8) | SQL-Modus
ISOLEVEL | FIXED(10) | Isolation-Level
TIMEOUT | FIXED(10) | Wert für den Sitzungstimeout (Timeout-Wert)
SESSION | FIXED(10) | Datenbanksitzung

Siehe auch:

Systemtabellen auswerten ® CONNECTPARAMETERS


CONSTRAINTS (MaxDB: Referenzhandbuch)

CONSTRAINTS

Die Systemtabelle CONSTRAINTS enthält die CONSTRAINT-Definitionen für alle Tabellen, für die der aktuelle Benutzer Privilegien besitzt.

CONSTRAINTS

OWNER | CHAR(32) | Name des Eigentümers der Tabelle
TABLENAME | CHAR(32) | Name der Tabelle mit der CONSTRAINT-Definition
CONSTRAINTNAME | CHAR(32) | Name der CONSTRAINT-Definition
DEFINITION | LONG | Text der CONSTRAINT-Definition

Siehe auch:

Systemtabellen auswerten ® CONSTRAINTS


DATASTATISTICS (MaxDB: Referenzhandbuch)

DATASTATISTICS

Die Systemtabelle DATASTATISTICS beschreibt den aktuellen Füllungsgrad der Datenbankinstanz sowie den maximalen Füllungsgrad seit dem letzten Start der Datenbankinstanz.

DATASTATISTICS

USABLESIZE | FIXED(20) | Für Daten zur Verfügung stehender Datenbereich (KB)
USEDSIZE | FIXED(20) | Für Daten tatsächlich genutzter Speicherplatz des Datenbereichs (KB)
USEDSIZEPERCENTAGE | FIXED(3) | Prozentsatz des für Daten genutzten Speicherplatzes des Datenbereichs
DATAFULL | CHAR(3) | Datenbereich ist voll (YES|NO)
USEDSIZEONVOLUMES | FIXED(20) | In den Datenbereich geschriebene Menge von Daten (KB)
USEDSIZENOTONVOLUMES | FIXED(20) | Menge permanenter Daten, die beim nächsten Savepoint in den Datenbereich geschrieben werden müssen (KB)
USEDPERMANENTSIZE | FIXED(20) | Für permanente Daten genutzter Datenbereich (KB)
USEDTEMPORARYSIZE | FIXED(20) | Für temporäre Daten genutzter Datenbereich (KB)
MAXUSEDSIZE | FIXED(20) | Maximal für Daten genutzter Datenbereich zum Zeitpunkt eines Savepoint (KB)
MAXUSEDPERMANENTSIZE | FIXED(20) | Maximal für permanente Daten genutzter Datenbereich zum Zeitpunkt des letzten Savepoint (KB)
MAXUSEDTEMPORARYSIZE | FIXED(20) | Maximal für temporäre Daten genutzter Datenbereich zum Zeitpunkt des letzten Savepoint (KB)
INCREMENTALBACKUPSIZE | FIXED(20) | Bei der nächsten inkrementellen Sicherung zu sichernde Menge von Daten (KB)
LASTEMERGENCYHISTORYCLEANUP | TIMESTAMP | Zeitpunkt des letzten Löschens von Undo-Log-Dateien anhand der History-Datei aufgrund von Platzmangel im Datenbereich
CONVERTERVERSION | FIXED(10) | Die beim letzten Savepoint in den Datenbereich gesicherten Converter-Daten erhalten eine eindeutige Nummer (Converter-Version), die im Restart-Record abgelegt wird
MAXTEMPORARYDATAPAGENUMBER | FIXED(10) | Höchste für temporäre Seiten zur Verfügung stehende Seitennummer
MAXPERMANENTDATAPAGENUMBER | FIXED(10) | Höchste für permanente Seiten zur Verfügung stehende Seitennummer
MAXPERMANENTSTATICDATAPAGENUMBER | FIXED(10) | Höchste für permanente, statische Seiten zur Verfügung stehende Seitennummer


DATAVOLUMES (MaxDB: Referenzhandbuch)

DATAVOLUMES

Die Systemtabelle DATAVOLUMES beschreibt die Data-Volumes, auf denen Daten gespeichert sind.

DATAVOLUMES

ID | FIXED(5) | Nummer des Volume
MODE | CHAR(10) | Modus des Volume (NORMAL|SEQUENTIAL)
PATH | CHAR(256) | Bezeichnung des Volume
CONFIGUREDSIZE | FIXED(20) | Konfigurierte Größe des Volume (KB)
USABLESIZE | FIXED(20) | Für Daten nutzbarer Bereich des Volume (KB)
USEDSIZE | FIXED(20) | Für Daten genutzter Bereich des Volume (KB)
USEDSIZEPERCENTAGE | FIXED(3) | Anteil des genutzen Bereichs vom insgesamt nutzbaren Bereich des Volume (%)


DBPARAMETERS (MaxDB: Referenzhandbuch)

DBPARAMETERS

Die Statistik-Systemtabelle DBPARAMETERS enthält die Parameter, die mit dem Datenbankwerkzeug Database Manager für die Datenbankinstanz definiert wurden.

DBPARAMETERS

DESCRIPTION | CHAR (18) | Beschreibung, wie die Spalte VALUE zu interpretieren ist
VALUE | CHAR (256) | Wert


DBPROCEDURES (MaxDB: Referenzhandbuch)

DBPROCEDURES

Die Systemtabelle DBPROCEDURES enthält alle Datenbankprozeduren, für die der aktuelle Benutzer Privilegien besitzt.

DBPROCEDURES

OWNER | CHAR(32) | Name des Eigentümers der Datenbankprozedur
DBPROCNAME | CHAR(32) | Name der Datenbankprozedur
PACKAGE | CHAR(32) | Paket, in dem die Datenbankprozedur enthalten ist
PARAMETER | FIXED(4) | Anzahl der Parameter der Datenbankprozedur
CREATEDATE | DATE(10) | Erzeugungsdatum der Datenbankprozedur
CREATETIME | TIME(8) | Erzeugungszeit der Datenbankprozedur
EXCECUTION_KIND | CHAR(6) | Ausführungsort der Datenbankprozedur (INPROC | LOCAL | REMOTE)
LANGUAGE | CHAR(32) | Implementierungssprache der Datenbankprozedur (SPL | C++ | JAVA | ...)
SQL_SUPPORT | CHAR(3) | Datenbankprozedur darf SQL-Anweisungen enthalten (YES | NO)
WAIT_FOR_CHCKPT | CHAR(3) | Datenbankprozedur wartet auf eine Checkpoint (YES | NO)
REMOTE_LOCATION | CHAR(132) | Ausführungsort
DEFINITION | LONG | SQL-Anweisung zur Definition der Datenbankprozedur
COMMENT | LONG | Kommentar zu der Datenbankprozedur

Siehe auch:

Systemtabellen auswerten ® DBPROCEDURES


DBPROCPARAMS (MaxDB: Referenzhandbuch)

DBPROCPARAMS

Die Systemtabelle DBPROCPARAMS enthält alle Parameter einer Datenbankprozedur, für die der aktuelle Benutzer Privilegien besitzt.

DBPROCPARAMS

OWNER | CHAR(32) | Name des Eigentümers der Datenbankprozedur
DBPROCNAME | CHAR(32) | Name der Datenbankprozedur
PARAMETERNAME | CHAR(32) | Name des Parameters
POS | FIXED(4) | Originalposition des Parameters in der Datenbankprozedur
IN/OUT-TYPE | CHAR(6) | Art des Parameters (IN | OUT)
DATATYPE | CHAR(10) | Datentyp des Parameters (BOOLEAN | CHAR | DATE | FIXED | FLOAT | TIME | TIMESTAMP)
CODETYPE | CHAR(8) | Codeattribut der Spalte (ASCII | BYTE | UNICODE)
LEN | FIXED(4) | Länge oder Genauigkeit des Parameters
DEC | FIXED(3) | Anzahl der Nachkommastellen des Parameters bei Datentyp FIXED
CREATEDATE | DATE(10) | Erzeugungsdatum der Datenbankprozedur
CREATETIME | TIM E(8) | Erzeugungszeit der Datenbankprozedur

Siehe auch:

Systemtabellen auswerten ® DBPROCPARAMS


DIAGNOSE (MaxDB: Referenzhandbuch)

DIAGNOSE

Die Systemtabelle DIAGNOSE beschreibt die möglichen Diagnose-Optionen.

DIAGNOSE

TYPE | CHAR(10) | Art der Diagnose-Option (ANALYZE|CHECK| JOIN|LVCMONITOR|MONITOR|OPTIMIZE| TOPIC|TRACE|TRACECHECK|TRIGGER)
NAME | CHAR(32) | Name der Diagnose-Option
VALUE | FIXED(10) | Zustand der Diagnose-Option (0: Option ist ausgeschaltet| 1 bzw. der eingestellte Wert: Option ist eingeschaltet)
DESCRIPTION | CHAR(64) | Bedeutung der Diagnose-Option


DOMAINCONSTRAINTS (MaxDB: Referenzhandbuch)

DOMAINCONSTRAINTS

Die Systemtabelle DOMAINCONSTRAINTS enthält die CONSTRAINT-Definition eines Wertebereichs.

DOMAINCONSTRAINTS

OWNER | CHAR(32) | Name des Eigentümers des Wertebereichs
DOMAINNAME | CHAR(32) | Name des Wertebereichs
CONSTRAINTNAME | CHAR(32) | Name der CONSTRAINT-Definition
DEFINITION | LONG | Text der CONSTRAINT-Definition

Siehe auch:

Systemtabellen auswerten ® DOMAINCONSTRAINTS


DOMAINS (MaxDB: Referenzhandbuch)

DOMAINS

Die Systemtabelle DOMAINS enthält alle Wertebereiche.

DOMAINS

OWNER | CHAR(32) | Name des Eigentümers des Wertebereichs
DOMAINNAME | CHAR(32) | Name des Wertebereichs
DATATYPE | CHAR(10) | Datentyp des Wertebereichs (BOOLEAN | CHAR | DATE | FIXED | FLOAT | INTEGER | LONG | SMALLINT | TIME | TIMESTAMP)
CODETYPE | CHAR(8) | Codeattribut des Wertebereichs (ASCII | BYTE | UNICODE)
LEN | FIXED(4) | Länge oder Genauigkeit des Wertebereichs
DEC | FIXED(3) | Anzahl der Nachkommastellen bei den Wertebereichen vom Datentyp FIXED
DEFAULT | CHAR(254) | Vorschlagswert (Default) für den Wertebereich
DEFAULTFUNCTION | CHAR(12) | Name, wenn der DEFAULT-Wert eine der folgenden Spezifikationen von Werten ist: NULL | USER | USERGROUP | SYSDBA | UID | DATE | TIME | TIMESTAMP | UTCDATE | TIMEZONE | UTCDIFF | TRUE | FALSE | TRANSACTION andernfall NULL-Wert
DEFINITION | LONG | Text der Wertebereichsdefinition
CREATEDATE | DATE(10) | Erzeugungsdatum des Wertebereichs
CREATETIME | TIME(8) | Erzeugungszeit des Wertebereichs
COMMENT | LONG | Kommentar zu dem Wertebereich

Siehe auch:

Systemtabellen auswerten ® DOMAINS


FOREIGNKEYCOLUMNS (MaxDB: Referenzhandbuch)

FOREIGNKEYCOLUMNS

Die Systemtabelle FOREIGNKEYCOLUMNS enthält die Spalten aller referentiellen CONSTRAINT-Definitionen, für die der aktuelle Benutzer Privilegien besitzt.

FOREIGNKEYCOLUMNS

OWNER | CHAR(32) | Name des Eigentümers der Tabelle
TABLENAME | CHAR(32) | Name der Tabelle
COLUMNNAME | CHAR(32) | Name der Spalte
FKEYNAME | CHAR(32) | Name der referentiellen CONSTRAINT-Definition
REFOWNER | CHAR(32) | Name des Eigentümers der referenzierten Tabelle
REFTABLENAME | CHAR(32) | Name der referenzierten Tabelle
REFCOLUMNNAME | CHAR(32) | Name der Spalte der referenzierten Tabelle
RULE | CHAR(18) | Regeln beim Löschen der Tabelle
CREATEDATE | DATE(10) | Erzeugungsdatum der referentiellen CONSTRAINT-Definition
CREATETIME | TIME(8) | Erzeugungszeit der referentiellen CONSTRAINT-Definition
COMMENT | LONG | Kommentar zur referentiellen CONSTRAINT-Definition

Siehe auch:

Systemtabellen auswerten ® FOREIGNKEYCOLUMNS


FOREIGNKEYS (MaxDB: Referenzhandbuch)

FOREIGNKEYS

Die Systemtabelle FOREIGNKEYS enthält alle referentiellen CONSTRAINT-Definitionen, für die der aktuelle Benutzer Privilegien besitzt.

FOREIGNKEYS

OWNER | CHAR(32) | Name des Eigentümers der Tabelle
TABLENAME | CHAR(32) | Name der Tabelle
FKEYNAME | CHAR(32) | Name der referentiellen CONSTRAINT-Definition
RULE | CHAR(18) | Regeln beim Löschen der Tabelle
CREATEDATE | DATE(10) | Erzeugungsdatum der referentiellen CONSTRAINT-Definition
CREATETIME | TIME(8) | Erzeugungszeit der referentiellen CONSTRAINT-Definition

Siehe auch:

Systemtabellen auswerten ® FOREIGNKEYS


HOTSTANDBYCOMPONENT (MaxDB: Referenzhandbuch)

HOTSTANDBYCOMPONENT

Die Systemtabelle HOTSTANDBYCOMPONENT beschreibt einige Details der Hotstandby-Komponente, auf der die Informationen dieser Systemtabelle abgefragt werden.

HOTSTANDBYCOMPONENT

LOCALNODE | CHAR(64) | Name, unter dem die Hotstandby-Komponente angesprochen werden kann
MASTERLOCALNODE | CHAR(64) | Name, unter dem die zugehörige Master-Hotstandby-Komponente angesprochen werden kann
STANDBYROLE | CHAR(8) | Rolle innerhalb der Hotstandby-Konfiguration (MASTER | STANDBY | UNKNOWN)
TAKEOVERDATE | TIMESTAMP | Zeitpunkt des Erhalts der TAKEOVER-Anweisung
DELAYTIME | FIXED(10) | Anzahl der Sekunden, die mindestens zwischen der Änderung auf der Master-Hotstandby-Komponente und dem Nachfahren auf dieser Hotstandby-Komponente vergangen sein muss
STANDBYSTATEDATE | TIMESTAMP | Zeitpunkt des Erreichens des Zustands STANDBY
SYNCHRONIZERECEIVECOUNT | FIXED(10) | Anzahl erhaltener SYNCHRONIZE-Anweisungen
FIRSTNEEDEDLOGOFFSET | FIXED(10) | Älteste Position im Log-Bereich, ab der die Log-Einträge nachgefahren werden müssen
LASTVALIDLOGOFFSETRECEIVED | FIXED(10) | Position im Log-Bereich, bis zu der die Log-Einträge durch diese Hotstandby-Komponente mit der Rolle STANDBY nachgefahren werden können
INITSTANDBYDATE | TIMESTAMP | Zeitpunkt des Erhalts der INIT STANDBY-Anweisung
RESTARTSTANDBYDATE | TIMESTAMP | Zeitpunkt des Abschickens der RESTART STANDBY-Anweisung
LASTSYNCHRONIZEDATE | TIMESTAMP | Zeitpunkt des Erhalts der letzten SYNCHRONIZE-Anweisung
PREPARESTANDBYDATE | TIMESTAMP | Zeitpunkt des Abschickens der PREPARE STANDBY-Anweisung
REGISTERSTANDBYDATE | TIMESTAMP | Zeitpunkt des Abschickens der REGISTER STANDBY-Anweisung


HOTSTANDBYGROUP (MaxDB: Referenzhandbuch)

HOTSTANDBYGROUP

Die Systemtabelle HOTSTANDBYGROUP beschreibt Informationen, die die Hotstandby-Komponente, auf der die Informationen dieser Systemtabelle abgefragt werden, über die weiteren Hotstandby-Komponenten mit der Rolle STANDBY hat.

HOTSTANDBYGROUP

LOCALNODE | CHAR(64) | Name, unter dem die Hotstandby-Komponente angesprochen werden kann
ADDNODEDATE | TIMESTAMP | Zeitpunkt des Hinzufügens der Hotstandby-Komponente zur Hotstandby-Konfiguration
REMOVENODEDATE | TIMESTAMP | Zeitpunkt des Löschens der Hotstandby-Komponente aus der Hotstandby-Konfiguration
STATE | CHAR(20) | Status der Hotstandby-Komponente (UNKNOWN | BELIEVED TO BE DEAD | PREPARE PENDING | REGISTER PENDING | SYNC PENDING | STANDBY)
PREPARESTANDBYDATE | TIMESTAMP | Zeitpunkt des Erhalts der PREPARE STANDBY-Anweisung
REGISTERSTANDBYDATE | TIMESTAMP | Zeitpunkt des Erhalts der REGISTER STANDBY-Anweisung
SYNCHRONIZEDATE | TIMESTAMP | Zeitpunkt des Abschickens der letzten SYNCHRONIZE-Anweisung
SUCCESSFULSYNCHRONIZEDATE | TIMESTAMP | Zeitpunkt der letzten erfolgreich durchgeführten SYNCHRONIZE-Anweisung
LASTVALIDLOGOFFSETSENT | FIXED(10) | Letzte, von der Master-Komponente verschickte Position im Log-Bereich, bis zu der Hotstandby-Komponenten mit der Rolle STANDBY die Log-Einträge nachfahren können
FIRSTNEEDELOGOFFSET | FIXED(10) | Älteste Position im Log-Bereich, ab der die Log-Einträge nachgefahren werden müssen
SYNCHRONIZESENDCOUNT | FIXED(10) | Anzahl abgeschickter SYNCHRONIZE-Anweisungen
SYNCHRONIZERETRYCOUNT | FIXED(10) | Anzahl wiederholt abgeschickter SYNCHRONIZE-Anweisungen


INDEXCOLUMNS (MaxDB: Referenzhandbuch)

INDEXCOLUMNS

Die Systemtabelle INDEXCOLUMNS enthält detaillierte Informationen der Indizes, für die der aktuelle Benutzer Privilegien besitzt.

INDEXECOLUMNS

OWNER | CHAR(32) | Name des Eigentümers des Index
TABLENAME | CHAR(32) | Name der Tabelle
INDEXNAME | CHAR(32) | Name des Index
TYPE | CHAR(6) | Typ des Index (UNIQUE | NULL)
COLUMNNAME | CHAR(32) | Name der Spalte
SORT | CHAR(4) | Sortierreihenfolge für die Spalte (ASC | DESC)
COLUMNNO | FIXED(4) | Nummer der Spalte im Index
DATATYPE | CHAR(10) | Datentyp des Wertebereichs (BOOLEAN | CHAR | DATE | FIXED | FLOAT | INTEGER | LONG | SMALLINT | TIME | TIMESTAMP)
LEN | FIXED(4) | Länge oder Genauigkeit der Definition der Spalte
CREATEDATE | DATE(10) | Erzeugungsdatum des Index
CREATETIME | TIME(8) | Erzeugungszeit des Index
INDEX_USED | FIXED(10) | Verwendungshäufigkeit des Index bei Suchvorgängen
DISABLED | CHAR(3) | Index für Suchvorgänge nicht aktiv (YES | NO)
COMMENT | LONG | Kommentar zum Index

Siehe auch:

Systemtabellen auswerten ® INDEXCOLUMNS


INDEXES (MaxDB: Referenzhandbuch)

INDEXES

Die Systemtabelle INDEXES enthält alle Indizes, für die der aktuelle Benutzer Privilegien besitzt.

INDEXES

OWNER | CHAR(32) | Name des Eigentümers des Index
TABLENAME | CHAR(32) | Name der Tabelle
INDEXNAME | CHAR(32) | Name des Index
TYPE | CHAR(6) | Typ des Index (UNIQUE | NULL)
CREATEDATE | DATE(10) | Erzeugungsdatum des Index
CREATETIME | TIME(8) | Erzeugungszeit des Index
INDEX_USED | FIXED(10) | Verwendungshäufigkeit des Index bei Suchvorgängen
DISABLED | CHAR(3) | Index für Suchvorgänge nicht aktiv (YES | NO)
COMMENT | LONG | Kommentar zum Index

Siehe auch:

Systemtabellen auswerten ® INDEXES


INDEXSTATISTICS (MaxDB: Referenzhandbuch)

INDEXSTATISTICS

Die Statistik-Systemtabelle INDEXSTATISTICS enthält Struktur- und Größeninformationen über Indizes.

INDEXSTATISTICS

OWNER | CHAR(32) | Eigentümer einer Tabelle
TABLENAME | CHAR(32) | Tabellenname
INDEXNAME | CHAR(32) | Indexname (NULL bei nicht benannten Indizes)
COLUMNNAME | CHAR(32) | Name einer invertierten Spalte
DESCRIPTION | CHAR(40) | Beschreibung (siehe Tabelle Spalte DESCRIPTION), wie die folgenden Spalten zu interpretieren sind
CHAR_VALUE | CHAR(12) | Alphanumerischer Wert
NUMERIC_VALUE | FIXED(10) | Numerischer Wert

Spalte DESCRIPTION

Wert | Erläuterung
Root pno | NUMERIC_VALUE enthält die Seitennummer der Wurzel des B*-Baums
Filetype | CHAR_VALUE enthält den Typ des B*-Baums
Used pages | NUMERIC_VALUE enthält die Anzahl der durch den Index belegten Seiten
Index pages | NUMERIC_VALUE enthält die Anzahl der durch den Index belegten Seiten im B*-Baumindex
Leaf pages | NUMERIC_VALUE enthält die Anzahl der durch den Index belegten Blattseiten
Index levels | NUMERIC_VALUE enthält die Anzahl der Indexstufen des B*Baums
Space used in all pages(%) | NUMERIC_VALUE enthält die prozentuale Belegung aller Seiten des B*-Baums
Space used in root page(%) | NUMERIC_VALUE enthält die prozentuale Belegung der Wurzelseite des B*-Baums
Space used in index pages(%) | NUMERIC_VALUE enthält die prozentuale Belegung der Indexseiten des B*-Baums
Space used in index pages(%) min | NUMERIC_VALUE enthält die minimale prozentuale Belegung der Indexseiten des B*-Baums
Space used in index pages(%) max | NUMERIC_VALUE enthält die maximale prozentuale Belegung der Indexseiten des B*-Baums
Space used in leaf pages(%) | NUMERIC_VALUE enthält die prozentuale Belegung der Blattseiten des B*-Baums
Space used in leaf pages(%) min | NUMERIC_VALUE enthält die minimale prozentuale Belegung der Blattseiten des B*-Baums
Space used in leaf pages(%) max | NUMERIC_VALUE enthält die maximale prozentuale Belegung der Blattseiten des B*-Baums
Secondary keys (index lists) | NUMERIC_VALUE enthält die Anzahl verschiedener Werte der indizierten Spalten
Avg secondary key length | NUMERIC_VALUE enthält die durchschnittliche Indexwertlänge
Min secondary key length | NUMERIC_VALUE enthält die minimale Indexwertlänge
Max secondary key length | NUMERIC_VALUE enthält die maximale Indexwertlänge
Avg separator length | NUMERIC_VALUE enthält die durchschnittliche Länge eines Separators des B*-Baums
Min separator length | NUMERIC_VALUE enthält die minimale Separatorlänge
Max separator length | NUMERIC_VALUE enthält die maximale Separatorlänge
Primary keys | NUMERIC_VALUE enthält die Anzahl der Zeilen der durch OWNER und TABLENAME identifizierten Tabelle
Avg primary keys per list | NUMERIC_VALUE enthält die durchschnittliche Anzahl von Schlüsseln pro Invertierungsliste
Min primary keys per list | NUMERIC_VALUE enthält die minimale Anzahl von Schlüsseln pro Invertierungsliste
Max primary keys per list | NUMERIC_VALUE enthält die maximale Anzahl von Schlüsseln pro Invertierungsliste
Values with selectivity <= 1% | NUMERIC_VALUE enthält die Anzahl von Invertierungslisten mit einer Selektivität <= 1%
Values with selectivity <= 5% | NUMERIC_VALUE enthält die Anzahl von Invertierungslisten mit einer Selektivität zwischen 1% und 5%
Values with selectivity <= 10% | NUMERIC_VALUE enthält die Anzahl von Invertierungslisten mit einer Selektivität zwischen 5% und 10%
Values with selectivity <= 25% | NUMERIC_VALUE enthält die Anzahl von Invertierungslisten mit einer Selektivität zwischen 10% und 25%.
Values with selectivity > 25% | NUMERIC_VALUE enthält die Anzahl von Invertierungslisten mit einer Selektivität > 25%


INSTANCE (MaxDB: Referenzhandbuch)

INSTANCE

Die Systemtabelle INSTANCE beschreibt einige Details einer Datenbankinstanz.

INSTANCE

NODE | CHAR(64) | Name, unter dem die Datenbankinstanz von Anwendungen angesprochen werden kann
LOCALNODE | CHAR(64) | Name, unter dem im Fall einer Hotstandby-Konfiguration diese Hotstandby-Komponente angesprochen werden kann
ADMINSTATEDATE | TIMESTAMP | Zeitpunkt des Erreichens des Betriebszustandes ADMIN
ONLINESTATEDATE | TIMESTAMP | Zeitpunkt des Erreichens des Betriebszustandes ONLINE


LOCKLISTSTATISTICS (MaxDB: Referenzhandbuch)

LOCKLISTSTATISTICS

Die Statistik-Systemtabelle LOCKLISTSTATISTICS enthält Angaben über die Belegung der Sperrliste.

LOCKLISTSTATISTICS

DESCRIPTION | CHAR (40) | Beschreibung (siehe Tabelle Spalte DESCRIPTION), wie der Inhalt der Spalte VALUE zu interpretieren ist
VALUE | CHAR (12) | Wert

Spalte DESCRIPTION

Wert | Erläuterung
MAX LOCKS | VALUE enthält die Anzahl der verfügbaren Sperren in der Sperrliste
TRANS LIST REGIONS | VALUE enthält die Anzahl der Semaphore für Transaktionen
TABLE LIST REGIONS | VALUE enthält die Anzahl der Semaphore für Tabellen
ROW LIST REGIONS | VALUE enthält die Anzahl der Semaphore für Zeilen
ENTRIES | VALUE enthält ein datenbankinternes Maß (Einträge) für die Größe der Sperrliste
USED ENTRIES | VALUE enthält die momentan benutzte Anzahl von Einträgen für gesetzte und angeforderte Sperren
USED ENTRIES (%) | VALUE enthält die momentan benutzte Anzahl von Einträgen für gesetzte und angeforderte Sperren in Prozent
AVG USED ENTRIES | VALUE enthält die durchschnittliche Anzahl von Einträgen für gesetzte und angeforderte Sperren
AVG USED ENTRIES (%) | VALUE enthält die durchschnittliche Anzahl von Einträgen für gesetzte und angeforderte Sperren in Prozent
MAX USED ENTRIES | VALUE enthält die maximale Anzahl von Einträgen für gesetzte und angeforderte Sperren
MAX USED ENTRIES(%) | VALUE enthält die maximale Anzahl von Einträgen für gesetzte und angeforderte Sperren in Prozent
LOCK ESCALATION VALUE | VALUE enthält die Anzahl von Tabellenzeilen, ab der Zeilensperren in eine Tabellensperre umgewandelt werden (Sperr-Eskalation)
LOCK ESCALATIONS | VALUE enthält die Anzahl von Sperr-Eskalationen
LOCK COLLISIONS | VALUE enthält die Anzahl von Sperranforderungen, die nicht (sofort) erfüllt werden konnten
DEADLOCKS | VALUE enthält die Anzahl von Situationen, in denen mindestens zwei Transaktionen aufgrund gehaltener und angeforderter Sperren so miteinander kollidiert sind, dass diese Kollision nur durch implizites Beenden einer Transaktion gelöst werden konnte
SQL REQUEST TIMEOUTS | VALUE enthält die Anzahl von Sperranforderungen, die nicht gesetzt werden konnten, weil sie die maximale Wartezeit überschritten hatten
TRANSACTIONS HOLDING LOCKS | VALUE enthält die Anzahl von Transaktionen, denen Sperren zugeordnet sind
TRANSACTIONS REQUESTING LOCKS | VALUE enthält die Anzahl von Transaktionen, die Sperren anfordern
CHECKPOINT WANTED | Wenn die Spalte VALUE den Wert TRUE besitzt, dann ist die Sperrliste geschlossen, d. h. einer Transaktion, die noch keine exklusive Sperre besitzt, kann keine exklusive Sperre zugeordnet werden, weil ein Checkpoint angefordert wurde
SHUTDOWN WANTED | Wenn die Spalte VALUE den Wert TRUE besitzt, dann ist die Sperrliste geschlossen, weil ein Shutdown angefordert wurde


LOCKS (MaxDB: Referenzhandbuch)

LOCKS

Die Systemtablle LOCKS beschreibt die aktuellen Sperreinträge und Einträge für Sperranforderungen.

LOCKS

SESSION | FIXED(10) | Bezeichner der Datenbanksitzung
TRANSCOUNT | CHAR(20) | Bezeichner der Transaktion in der Datenbanksitzung
PROCESS | FIXED(10) | Bezeichner des Prozesses in der Datenbankinstanz
USERNAME | CHAR(32) | Name des Benutzers
DATE | DATE(10) | Erzeugungsdatum der Sperre
TIME | TIME(8) | Erzeugungszeit der Sperre
TERMID | CHAR(18) | Bezeichner des Benutzer-Terminals
LASTWRITE | CHAR(10) | Zeit, die seit der letzten SQL-Anweisung zur Datenmanipulation vergangen ist
LOCKMODE | CHAR(14) | Art der Sperre
LOCKSTATE | CHAR(10) | Status der Sperre
APPLPROCESS | FIXED(10) | Bezeichner des Prozesses auf der Client-Hardware
APPLNODE | CHAR(64) | Bezeichner der Client-Hardware
OWNER | CHAR(32) | Eigentümer der Tabelle
TABLENAME | CHAR(32) | Name der Tabelle
TABLEID | CHAR(8) BYTE | Bezeichner der Tabelle
ROWIDLENGTH | FIXED(4) | Länge des Schlüssels der gesperrten Zeile
ROWIDHEX | CHAR(64) BYTE | Anfang des Schlüssels der gesperrten Zeile in hexadezimaler Darstellung
ROWID | CHAR(128) | Anfang des Schlüssels der gesperrten Zeile

Siehe auch:

Systemtabellen auswerten ® LOCKS


LOGVOLUMES (MaxDB: Referenzhandbuch)

LOGVOLUMES

Die Systemtabelle LOGVOLUMES beschreibt die Log-Volumes, auf denen Log-Einträge gespeichert sind.

LOGVOLUMES

ID | FIXED(5) | Nummer des Volume
PATH | CHAR(256) | Bezeichnung des Volume
CONFIGUREDSIZE | FIXED(20) | Konfigurierte Größe des Volume (KB)


MACHINECONFIGURATION (MaxDB: Referenzhandbuch)

MACHINECONFIGURATION

Die Systemtabelle MACHINECONFIGURATION enthält Informationen zur Konfiguration des Rechners, auf dem der Datenbankkern installiert ist.

MACHINECONFIGURATION

CPUNUMBER | FIXED(5) | Anzahl der CPUs
PHYSICALMEMORYSIZE | FIXED(10) | Größe des physischen Speichers (MB)
VIRTUALMEMORYSIZE | FIXED(10) | Größe des virtuellen Speichers (MB)


MACHINEUTILIZATION (MaxDB: Referenzhandbuch)

MACHINEUTILIZATION

Die Systemtabelle MACHINEUTILIZATION enthält Angaben zur Auslastung des Rechners, auf dem der Datenbankkern installiert ist.

MACHINEUTILIZATION

PHYSICALMEMORYUSABLE | FIXED(10) | Größe des frei zur Verfügung stehenden physikalischen Speicherplatzes
VIRTUALMEMORYUSABLE | FIXED(10) | Größe des frei zur Verfügung stehenden virtuellen Speicherplatzes
PROCESSUSEDUSERTIME | FIXED(10) | Zeit, die der Prozess des Datenbankkerns seit dem Datenbankstart im Benutzermodus verbracht hat (s)
PROCESSUSEDSYSTEMTIME | FIXED(10) | Zeit, die der Prozess des Datenbankkerns seit dem Datenbankstart im Systemmodus verbracht hat (s)
MACHINEUSEDUSERTIME | FIXED(10) | Zeit, die der Rechner seit dem Datenbankstart im Benutzermodus verbraucht hat (s)
MACHINEUSEDIDLETIME | FIXED(10) | Zeit, die der Rechner seit dem Datenbankstart im Systemmodus verbraucht hat (s)
CPULOAD | CHAR(12) | CPU-Last auf dem Rechner


MAPCHARSETS (MaxDB: Referenzhandbuch)

MAPCHARSETS

Die Systemtabelle MAPCHARSETS enthält alle Mapchar-Sets.

MAPCHARSETS

MAPCHARSETNAME | CHAR(32) | Name des Mapchar-Set
CODE | CHAR(8) | Codeattribut, für das das Mapchar-Set definiert wurde (ASCII)
INTERN | CHAR(1) BYTE | Originalform in hexadezimaler Darstellung
MAP_CODE | CHAR(2) BYTE | Zielform in hexadezimaler Darstellung
MAP_CHARACTER | CHAR(2) | Zielform in Klarschriftdarstellung

Siehe auch:

Systemtabellen auswerten ® MAPCHARSETS


MEMORYALLOCATORSTATISTICS (MaxDB: Referenzhandbuch)

MEMORYALLOCATORSTATISTICS

Die Systemtabelle MEMORYALLOCATORSTATISTICS enthält Angaben über Zugriffe auf Allokatoren seit dem letzten Start der Datenbankinstanz.

MEMORYALLOCATORSTATISTICS

ALLOCATORNAME | CHAR(40) | Name des Allokators
USEDSIZE | FIXED(20) | Reservierter Bereich des Speichers (Bytes)
MAXUSEDSIZE | FIXED(20) | Maximal reservierter Bereich des Speichers (Bytes)
ALLOCATEDSIZE | FIXED(20) | Genutzter Bereich des Speichers (Bytes)
ALLOCATECOUNT | FIXED(20) | Anzahl von Speicherzuteilungen
DEALLOCATECOUNT | FIXED(20) | Anzahl von Speicherfreigaben
FAILEDALLOCATECOUNT | FIXED(20) | Anzahl nicht erfüllbarer Speicheranforderungen
FOUNDERRORCOUNT | FIXED(10) | Anzahl der im Allokator gefundenen und intern korrigierten Fehler
BASEALLOCATORNAME | CHAR(40) | Name des Allokators, der diesem Allokator Speicher zur Verfügung stellt
BASEALLOCATECOUNT | FIXED(20) | Anzahl von Speicherreservierungen beim Allokator BASEALLOCATORNAME
BASEDEALLOCATECOUNT | FIXED(20) | Anzahl von Speicherrückgaben an den Allokator BASEALLOCATORNAME


MONITOR (MaxDB: Referenzhandbuch)

MONITOR

Die Tabelle MONITOR ist die Vereinigung der Monitor-Systemtabellen MONITOR_CACHES, MONITOR_LOAD, MONITOR_LOCK, MONITOR_LOG, MONITOR_LONG, MONITOR_PAGES, MONITOR_ROW und MONITOR_TRANS.

MONITOR

TYPE | CHAR(8)
DESCRIPTION | CHAR(40)
VALUE | FIXED(20)


MONITOR_CACHES (MaxDB: Referenzhandbuch)

MONITOR_CACHES

Die Monitor-Systemtabelle MONITOR_CACHES enthält Informationen über durchgeführte Operationen auf den verschiedenen Caches.

Spalte DESCRIPTION

Wert | Erläuterung
Data cache accesses | Anzahl von Zugriffen auf Seiten im Data-Cache (Summe der Zugriffe auf Datenseiten und Seiten mit Rollback-Informationen)
Data cache accesses successful | Anzahl erfolgreicher Zugriffe auf Seiten im Data-Cache
Data cache accesses unsuccessful | Anzahl erfolgloser Zugriffe auf Seiten im Data-Cache
Data cache hit rate (%) | Prozentsatz erfolgreicher Zugriffe auf Datenseiten im Data-Cache
Catalog cache accesses | Anzahl von Zugriffen auf den sitzungsspezifischen Catalog-Cache
Catalog cache accesses successful | Anzahl erfolgreicher Zugriffe auf den sitzungsspezifischen Catalog-Cache
Catalog cache accesses unsuccessful | Anzahl erfolgloser Zugriffe auf den sitzungsspezifischen Catalog-Cache
Catalog cache hit rate (%) | Prozentsatz erfolgreicher Zugriffe auf den sitzungsspezifischen Catalog-Cache
Sequence cache accesses | Anzahl von Zugriffen auf den Sequence-Cache
Sequence cache accesses successful | Anzahl erfolgreicher Zugriffe auf den Sequence-Cache
Sequence cache accesses unsuccessful | Anzahl erfolgloser Zugriffe auf den Sequence-Cache
Sequence cache hit rate (%) | Prozentsatz erfolgreicher Zugriff auf den Sequence-Cache
Data cache sqlpage accesses | Anzahl von Zugriffen auf Datenseiten im Data-Cache
Data cache sqlpage accesses successful | Anzahl erfolgreicher Zugriffe auf Datenseiten im Data-Cache
Data cache sqlpage accesses unsuccessful | Anzahl erfolgloser Zugriffe auf Datenseiten im Data-Cache
Data cache sqlpage hit rate(%) | Prozentsatz erfolgreicher Zugriffe auf Datenseiten im Data-Cache
Data history/undo accesses | Anzahl von Zugriffen auf Seiten mit Rollback-Informationen im Data-Cache
Data history/undo accesses successful | Anzahl erfolgreicher Zugriffe auf Seiten mit Rollback-Informationen im Data-Cache
Data history/undo accesses unsuccessful | Anzahl erfolgloser Zugriffe auf Seiten mit Rollback-Informationen im Data-Cache
Data history/undo hit rate (%) | Prozentsatz erfolgreicher Zugriffe auf Seiten mit Rollback-Informationen im Data-Cache

Wird unter dem Betriebssystem Windows NT/2000 die Intel-Speichererweiterung PSE36 verwendet, enthält die Tabelle folgende weiteren Angaben:

Spalte DESCRIPTION

Wert | Erläuterung
PSE36 data cache accesses | Anzahl von Zugriffen auf den PSE36-Data-Cache
PSE36 data cache accesses successful | Anzahl erfolgreicher Zugriffe auf den PSE36-Data-Cache
PSE36 data cache accesses unsuccessful | Anzahl erfolgloser Zugriffe auf den PSE36-Data-Cache
PSE36 data cache hit rate (%) | Prozentsatz erfolgreicher Zugriffe auf den PSE36-Data-Cache


MONITOR_LOAD (MaxDB: Referenzhandbuch)

MONITOR_LOAD

Die Monitor-Systemtabelle MONITOR_LOAD enthält Informationen über ausgeführte SQL-Anweisungen und Zugriffsmethoden.

Spalte DESCRIPTION

Wert | Erläuterung
SQL commands | Anzahl ausgeführter SQL-Anweisungen
PREPAREs | Anzahl von geparsten SQL-Anweisungen
PREPAREs repeated | Anzahl von SQL-Anweisungen, die nach Änderung von Meta-Daten erneut geparst wurden
EXECUTEs | Anzahl von Ausführungen zuvor geparster SQL-Anweisungen
COMMITs | Anzahl ausgeführter COMMIT-Anweisungen
ROLLBACKs | Anzahl ausgeführter ROLLBACK-Anweisungen
LOCKs and UNLOCKs | Anzahl ausgeführter LOCK-Anweisungen und UNLOCK-Anweisungen
SUBTRANS BEGINs | Anzahl von SQL-Anweisungen zum Öffnen einer Subtransaktion
SUBTRANS ENDs | Anzahl von SQL-Anweisungen zum Schließen einer Subtransaktion
SUBTRANS ROLLBACKs | Anzahl von SQL-Anweisungen zum Zurücksetzen einer Subtransaktion
CREATEs | Anzahl ausgeführter SQL-Anweisungen zur Erzeugung von Datenbankobjekten
ALTERs | Anzahl ausgeführter SQL-Anweisungen zur Änderung von Datenbankobjekten
DROPs | Anzahl ausgeführter SQL-Anweisungen zum Löschen von Datenbankobjekten
SELECTs and FETCHes | Anzahl ausgeführter SQL-Anweisungen zum Zugriff auf Daten
SELECTs and FETCHes, rows read | Anzahl von Zeilen, die beim Zugriff auf Daten betrachtet wurden
SELECTs and FETCHes, rows qual | Anzahl von Zeilen, die beim Zugriff auf Daten betrachtet wurden und die Bedingungen erfüllten
INSERTs | Anzahl ausgeführter SQL-Anweisungen zum Einfügen von Zeilen
INSERTs, rows inserted | Anzahl eingefügter Zeilen
UPDATEs | Anzahl ausgeführter SQL-Anweisungen zum Ändern von Zeilen
UPDATEs, rows read | Anzahl von Zeilen, die bei Änderung von Daten betrachtet wurden
UPDATEs, rows updated | Anzahl geänderter Zeilen
DELETEs | Anzahl ausgeführter SQL-Anweisungen zum Löschen von Zeilen
DELETEs, rows read | Anzahl von Zeilen, die beim Löschen von Daten betrachtet wurden
DELETEs, rows deleted | Anzahl gelöschter Zeilen
Internal DBPROC calls | Anzahl von Ausführungen von Datenbank-Prozeduren
Internal trigger calls | Anzahl von Trigger-Ausführungen
Primary key accesses | Anzahl von Suchvorgängen mit direktem Zugriff über den Schlüssel
Primary key accesses, rows read | Anzahl von Zeilen, die durch direkten Schlüsselzugriff gelesen wurden
Primary key accesses, rows qual | Anzahl von Zeilen, die durch direkten Schlüsselzugriff gelesen wurden und die Bedingung erfüllten
Primary key range accesses | Anzahl von Suchvorgängen mit Zugriffen innerhalb eines Schlüsselbereichs
Primary key range accesses, rows read | Anzahl gelesener Zeilen innerhalb eines Schlüsselbereichs
Primary key range accesses, rows qual | Anzahl gelesener Zeilen innerhalb eines Schlüsselbereichs, die die Bedingung erfüllten
Index accesses | Anzahl von Suchvorgängen mit Zugriffen auf einen Index
Index accesses, rows read | Anzahl von Zeilen, auf die indirekt über einen Index zugegriffen wurde
Index accesses, rows qual | Anzahl von Zeilen, auf die indirekt über einen Index zugegriffen wurde und die die Bedingung erfüllten
Index range accesses | Anzahl von Suchvorgängen unter Ausnutzung eines Index-Bereichs
Index range accesses, rows read | Anzahl von Zeilen, auf die indirekt über einen Index unter Ausnutzung eines Index-Bereichs zugegriffen wurde
Index range accesses, rows qual | Anzahl von Zeilen, die die Bedingung erfüllten, auf die indirekt über einen Index unter Ausnutzung eines Index-Bereichs zugegriffen wurde
Isolated index accesses | Anzahl von Suchvorgängen, die ganz oder teilweise durch einen Index befriedigt werden konnten, ohne auf die Zeilen der Basistabelle zuzugreifen
Isolated index accesses, rows read | Anzahl von Schlüsseln, auf die innerhalb der in ISOLATED INDEX ACCESSES bezeichneten Suchvorgänge zugegriffen wurde
Isolated index accesses, rows qual | Anzahl von Schlüsseln, auf die innerhalb der in ISOLATED INDEX ACCESSES bezeichneten Suchvorgänge zugegriffen wurde und die die Bedingung erfüllten
Isolated index range accesses | Anzahl von Suchvorgängen, in denen ein Teil eines Indexes mit Werten innerhalb eines Bereichs ausgenutzt wurde, ohne auf die Zeilen der Basistabelle zuzugreifen
Isolated index range accesses, rows read | Anzahl von Primär-/Sekundärschlüsseln, auf die innerhalb der durch ISOLATED INDEX RANGE ACCESSES bezeichneten Suchvorgänge zugegriffen wurde
Isolated index range accesses, rows qual | Anzahl von Primär-/Sekundärschlüsseln, auf die innerhalb der durch ISOLATED INDEX RANGE ACCESSES bezeichneten Suchvorgänge zugegriffen wurde und die die Bedingung erfüllten
Table scans | Anzahl von Suchvorgängen über die gesamte Basistabelle
Table scans, rows read | Anzahl von Zeilen, auf die innerhalb von Suchvorgängen über die gesamte Basistabelle zugegriffen wurde
Table scans, rows qual | Anzahl von Zeilen, auf die innerhalb von Suchvorgängen über die gesamte Basistabelle zugegriffen wurde und die die Bedingung erfüllten
Isolated index scans | Anzahl von Suchvorgängen, bei denen auf einen kompletten Index zugegriffen wurde, ohne auf Zeilen der Basistabelle zuzugreifen
Isolated index scans, rows read | Anzahl von Indexzeilen, auf die innerhalb der unter ISOLATED INDEX SCANS beschriebenen Suchvorgänge zugegriffen wurde
Isolated index scans, rows qual | Anzahl von Indexzeilen, auf die innerhalb der unter ISOLATED INDEX SCANS beschriebenen Suchvorgänge zugegriffen wurde, die die Bedingung erfüllten
Memory sorts / sort&merge | Anzahl von Sortiervorgängen im Hauptspeicher zum Aufbau von temporären Invertierungen
Memory sorts / sort&merge, rows read | Anzahl gelesener Zeilen zum Aufbau von temporären Invertierungen
Sorts by insertion | Anzahl von Sortiervorgängen durch Einfügen
Sorts by insertion, rows inserted | Anzahl von Zeilen, die im Verlauf des Sortiervorganges eingefügt wurden


MONITOR_LOCK (MaxDB: Referenzhandbuch)

MONITOR_LOCK

Die Monitor-Systemtabelle MONITOR_LOCK enthält Informationen über durchgeführte Operationen der Sperrverwaltung des Datenbanksystems.

Spalte DESCRIPTION

Wert | Erläuterung
Lock list avg used entries | Durchschnittliche Anzahl von Einträgen der Sperrliste
Lock list max used entries | Maximale Anzahl von Einträgen der Sperrliste
Lock list collisions | Anzahl von Sperrkollisionen
Lock list escalations | Anzahl von Sperreskalationen
Lock list inserted row entries | Anzahl eingefügter Zeilensperren
Lock list inserted table entries | Anzahl eingefügter Tabellensperren
Detected deadlocks | Anzahl von Situationen, in denen mindestens zwei Transaktionen aufgrund gehaltener und angeforderter Sperren so miteinander kollidiert sind, dass diese Kollision nur durch implizites Beenden einer Transaktion gelöst werden konnte
Request timeouts | Anzahl von Sperranforderungen, die nicht gesetzt werden konnten, weil die die maximale Wartezeit überschritten hatten


MONITOR_LOG (MaxDB: Referenzhandbuch)

MONITOR_LOG

Die Monitor-Systemtabelle MONITOR_LOG enthält Informationen über durchgeführte Operationen des Loggings (Redo-Log-Verwaltung) des Datenbanksystems.

Spalte DESCRIPTION

Wert | Erläuterung
Log page physical reads | Anzahl physisch gelesener Log-Seiten
Log page physical writes | Anzahl physisch geschriebener Log-Seiten
Log queue pages | Größe der Log-Warteschlange in Seiten
Log queue max used pages | Maximal genutzte Anzahl von Seiten der Log-Warteschlange
Log queue inserts | Anzahl von Einfügeoperationen in die Log-Warteschlange
Log queue overflows | Anzahl von Überläufen der Log-Warteschlange
Log queue group commits | Anzahl von Group-COMMITs
Log queue waits for log page write | Anzahl von Wartezuständen auf Log-Schreiboperationen
Log queue max waits per log page | Maximale Anzahl von Wartezuständen pro Log-Seite
Log queue avg waits per log page | Durchschnittliche Anzahl von Wartezuständen pro Log-Seite


MONITOR_LONG (MaxDB: Referenzhandbuch)

MONITOR_LONG

Die Monitor-Systemtabelle MONITOR_LONG enthält Informationen über Lese- und Schreibvorgänge für LONG-Spalten.

Spalte DESCRIPTION

Wert | Erläuterung
BD read long | Anzahl von Lesevorgängen für LONG-Spalten
BD write long | Anzahl von Schreibvorgängen für LONG-Spalten


MONITOR_PAGES (MaxDB: Referenzhandbuch)

MONITOR_PAGES

Die Monitor-Systemtabelle MONITOR_PAGES enthält Informationen über Zugriffe auf die Seiten.

Spalte DESCRIPTION

Wert | Erläuterung
Virtual reads | Anzahl virtueller Leseoperationen
Virtual writes | Anzahl virtueller Schreiboperationen
Physical reads | Anzahl physischer Leseoperationen
Physical writes | Anzahl physischer Schreiboperationen
Catalog virtual read | Anzahl virtueller Katalog-Leseoperationen
Catalog virtual writes | Anzahl virtueller Katalog-Schreiboperationen
Catalog physical reads | Anzahl physischer Katalog-Leseoperationen
Catalog physical writes | Anzahl physischer Katalog-Schreiboperationen
Converter page physical reads | Anzahl physisch gelesener Converter-Seiten
Converter page physical writes | Anzahl physisch geschriebener Converter-Seiten
Perm page virtual reads | Anzahl virtuell gelesener permanenter Seiten
Perm page virtual writes | Anzahl virtuell geschriebener permanenter Seiten
Perm page physical reads | Anzahl physisch gelesener permanenter Seiten
Perm page physical writes | Anzahl physisch geschriebener permanenter Seiten
Temp page virtual reads | Anzahl virtuell gelesener temporärer Seiten
Temp page virtual writes | Anzahl virtuell geschriebener temporärer Seiten
Temp page physical reads | Anzahl physisch gelesener temporärer Seiten
Temp page physical writes | Anzahl physisch geschriebener temporärer Seiten
LONG page virtual reads | Anzahl virtuell gelesener Seiten für LONG-Spalten
LONG page virtual writes | Anzahl virtuell geschriebener Seiten für LONG-Spalten
LONG page physical reads | Anzahl physisch gelesener Seiten für LONG-Spalten
LONG page physical writes | Anzahl physisch geschriebener Seiten für LONG-Spalten
Leaf page virtual reads | Anzahl virtuell gelesener Blattseiten
Leaf page virtual writes | Anzahl virtuell geschriebener Blattseiten
Leaf page physical reads | Anzahl physisch gelesener Blattseiten
Leaf page physical writes | Anzahl physisch geschriebener Blattseiten
Level1 page virtual reads | Anzahl virtuell gelesener Indexseiten auf Stufe 1
Level1 page virtual writes | Anzahl virtuell geschriebener Indexseiten auf Stufe 1
Level1 page physical reads | Anzahl physisch gelesener Indexseiten auf Stufe 1
Level1 page physical writes | Anzahl physisch geschriebener Indexseiten auf Stufe 1
Level2 page virtual reads | Anzahl virtuell gelesener Indexseiten auf Stufe 2
Level2 page virtual writes | Anzahl virtuell geschriebener Indexseiten auf Stufe 2
Level2 page physical reads | Anzahl physisch gelesener Indexseiten auf Stufe 2
Level2 page physical writes | Anzahl physisch geschriebener Indexseiten auf Stufe 2
Level3 page virtual reads | Anzahl virtuell gelesener Indexseiten auf Stufe 3
Level3 page virtual writes | Anzahl virtuell geschriebener Indexseiten auf Stufe 3
Level3 page physical reads | Anzahl physisch gelesener Indexseiten auf Stufe 3
Level3 page physical writes | Anzahl physisch geschriebener Indexseiten auf Stufe 3
Level4 page virtual reads | Anzahl virtuell gelesener Indexseiten auf Stufe 4
Level4 page virtual writes | Anzahl virtuell geschriebener Indexseiten auf Stufe 4
Level4 page physical reads | Anzahl physisch gelesener Indexseiten auf Stufe 4
Level4 page physical writes | Anzahl physisch geschriebener Indexseiten auf Stufe 4
Level5 page virtual reads | Anzahl virtuell gelesener Indexseiten auf Stufe 5
Level5 page virtual writes | Anzahl virtuell geschriebener Indexseiten auf Stufe 5
Level5 page physical reads | Anzahl physisch gelesener Indexseiten auf Stufe 5
Level5 page physical writes | Anzahl physisch geschriebener Indexseiten auf Stufe 5
Converter page virtual reads | Anzahl virtuelle gelesener Converter-Seiten
Converter page virtual writes | Anzahl virtuelle geschriebener Converter-Seiten
Converter page physical reads | Anzahl physisch gelesener Converter-Seiten
Converter page physical writes | Anzahl physisch geschriebener Converter-Seiten


MONITOR_ROW (MaxDB: Referenzhandbuch)

MONITOR_ROW

Die Monitor-Systemtabelle MONITOR_ROW enthält Informationen über Operationen auf Zeilenniveau.

Spalte DESCRIPTION

Wert | Erläuterung
BD add record perm | Anzahl eingefügter Zeilen in permanente Tabellen
BD add record temp | Anzahl eingefügter Zeilen in temporäre Tabellen
BD repl record perm | Anzahl geänderter Zeilen in permanenten Tabellen
BD repl record temp | Anzahl geänderter Zeilen in temporären Tabellen
BD del record perm | Anzahl gelöschter Zeilen aus permanenten Tabellen
BD del record temp | Anzahl gelöschter Zeilen aus temporären Tabellen
BD get record perm | Anzahl gelesener Zeilen aus permanenten Tabellen unter Angabe des Schlüssels
BD get record temp | Anzahl gelesener Zeilen aus temporären Tabellen unter Angabe des Schlüssels
BD next record perm | Anzahl gelesener Zeilen aus permanenten Tabellen unter Angabe des Vorgängerschlüssels
BD next record temp | Anzahl gelesener Zeilen aus temporären Tabellen unter Angabe des Vorgängerschlüssels
BD prev record perm | Anzahl gelesener Zeilen aus permanenten Tabellen unter Angabe des Nachfolgerschlüssels
BD prev record temp | Anzahl gelesener Zeilen aus temporären Tabellen unter Angabe des Nachfolgerschlüssels
BD select direct record | Anzahl von selektierten Zeilen unter Angabe des Schlüssels
BD select next record | Anzahl von selektierten Zeilen unter Angabe des Vorgängerschlüssels
BD select prev record | Anzahl von selektierten Zeilen unter Angabe des Nachfolgerschlüssels
BD add to index list perm | Anzahl von Einfügeoperationen in permanente Indizes
BD add to index list temp | Anzahl von Einfügeoperationen in temporäre Indizes
BD del from index list perm | Anzahl von Löschoperationen aus permanenten Indizes
BD del from index list temp | Anzahl von Löschoperationen aus temporären Indizes
BD get index list perm | Anzahl von Zugriffen auf permanente Indizes
BD get index list temp | Anzahl von Zugriffen auf temporäre Indizes


MONITOR_TRANS (MaxDB: Referenzhandbuch)

MONITOR_TRANS

Die Monitor-Systemtabelle MONITOR_TRANS enthält Informationen über Transaktionen.

Spalte DESCRIPTION

Wert | Erläuterung
SQL commands | Anzahl von SQL-Anweisungen
Write transactions | Anzahl von Transaktionen mit Änderungsoperationen
KB calls | Anzahl der Aufträgen über die interne Kommunikationsbasisschnittstelle


OPTIMIZERINFORMATION (MaxDB: Referenzhandbuch)

OPTIMIZERINFORMATION

Die Systemtabelle OPTIMIZERINFORMATION enthält die durch die UPDATE STATISTICS-Anweisung bestimmten und vom SQL-Optimierer genutzten Angaben über Werteverteilungen.

OPTIMIZERINFORMATION

OWNER | CHAR(32) | Eigentümer der Tabelle
TABLENAME | CHAR(32) | Name der Tabelle
COLUMNNAME | CHAR(32) | Name einer einzelnen, nicht invertierten Spalte
INDEXNAME | CHAR(32) | Name des Index
DISTINCTVALUECOUNT | FIXED(10) | Anzahl verschiedener Werte in der Spalte, dem Index oder Primärschlüssel
CALCULATEDSIZE | FIXED(10) | Beim letzten UPDATE STATISTICS ermittelter Platzbedarf des (Primärschlüssel-) Index (KB)


OPTIMIZERSTATISTICS (MaxDB: Referenzhandbuch)

OPTIMIZERSTATISTICS

Die im Datenbankkatalog abgelegten Statistikwerte, die durch eine UPDATE STATISTICS-Anweisung erzeugt wurden, können durch Selektieren der Systemtabelle OPTIMIZERSTATISTICS abgefragt werden. Jede Zeile der Tabelle beschreibt Statistikwerte über Indizes, Spalten oder Größe einer Tabelle.

OPTIMIZERSTATISTICS

OWNER

CHAR(32)

Eigentümer der Tabelle, über die Statistikinformationen vorliegen

TABLENAME

CHAR(32)

Tabellenname einer Tabelle, über die Statistikinformationen vorliegen

INDEXNAME

CHAR(32)

Indexname eines Index, über den Statistikinformationen vorliegen

COLUMNNAME

CHAR(32)

Name einer Spalte, über die Statistikinformationen vorliegen

DISTINCTVALUES

FIXED(10)

Anzahl verschiedener Werte, falls die aktuelle Zeile eine Spalte oder einen einspaltigen Index beschreibt;
sonst die Anzahl der Zeilen einer Tabelle

PAGECOUNT

FIXED(10)

Anzahl der durch einen Index belegten Seiten, falls die aktuelle Zeile einen Index beschreibt;
Anzahl der Seiten einer Basistabelle, falls die aktuelle Zeile eine Tabelle beschreibt;
NULL sonst


PACKAGES (MaxDB: Referenzhandbuch)

PACKAGES

Die Systemtabelle PACKAGES beschreibt alle Pakete, für die der aktuelle Benutzer Privilegien besitzt.

PACKAGES

OWNER | CHAR(32) | Name des Eigentümers des Pakets
PACKAGE | CHAR(32) | Name des Pakets
CREATEDATE | DATE | Erzeugungsdatum des Pakets
CREATETIME | TIME | Erzeugungszeit des Pakets
EXCECUTION_KIND | CHAR(6) | Ausführungsort der Datenbankprozedur (INPROC | LOCAL | REMOTE)
SQL_SUPPORT | CHAR(3) | Datenbankprozedur darf SQL-Anweisungen enthalten (YES | NO)
REMOTE_LOCATION | CHAR(132) | Ausführungsort
COMMENT | LONG | Kommentar zu dem Paket


ROLEPRIVILEGES (MaxDB: Referenzhandbuch)

ROLEPRIVILEGES

Die Systemtabelle ROLEPRIVILEGES beschreibt die Privilegien und Rollen, die an Rollen vergeben wurden, für die der aktuelle Benutzer Privilegien besitzt.

ROLEPRIVILEGES

OWNER | CHAR(32) | Name des Eigentümers des Objekts, das an die Rolle vergeben wurde
TABLENAME | CHAR(32) | Name der Tabelle, für die Privilegien an die Rolle vergeben wurden
ROLE | CHAR(32) | Name der Rolle, die vergeben wurde
GRANTEE | CHAR(32) | Name der Rolle, an die vergeben wurde
PRIVILEGES | CHAR(30) | Privilegien, die vergeben wurden
GRANTOR | CHAR(32) | Name des Benutzers, der die Privilegien oder die Rolle vergeben hat
CREATEDATE | DATE(10) | Datum der Privilegienvergabe
CREATETIME | TIME(8) | Zeit der Privilegienvergabe

Siehe auch:

Systemtabellen auswerten ® ROLEPRIVILEGES


ROLES (MaxDB: Referenzhandbuch)

ROLES

Die Systemtabelle ROLES beschreibt die Rollen, für die der aktuelle Benutzer Privilegien besitzt.

ROLES

OWNER | CHAR(32) | Name des Eigentümers der Rolle
ROLE | CHAR(32) | Name der Rolle
PASSWORD_REQUIRED | CHAR(3) | Kennwort zur Aktivierung der Rolle erforderlich (YES | NO)
GRANTED | CHAR(3) | Rolle wurde an aktuellen Benutzer vergeben (YES | NO)
DEFAULTROLE | CHAR(3) | Rolle ist die vorgeschlagene Rolle für den aktuellen Benutzer (YES | NO)
CREATEDATE | DATE(10) | Erzeugungsdatum der Rolle
CREATETIME | TIME(8) | Erzeugungszeit der Rolle

Siehe auch:

Systemtabellen auswerten ® ROLES


SCHEMAS (MaxDB: Referenzhandbuch)

SCHEMAS

Die Systemtabelle SCHEMAS beschreibt die in der Datenbankinstanz bekannten Schemata.

SCHEMAS

OWNER | CHAR(32) | Eigentümer des Schemas
SCHEMA_NAME | CHAR(32) | Name des Schemas
SCHEMA_HANDLE | FIXED(10) | Identifikation des Schemas
CREATEDATE | DATE | Datum der Schema-Erzeugung
CREATETIME | TIME | Uhrzeit der Schema-Erzeugung


SEQUENCES (MaxDB: Referenzhandbuch)

SEQUENCES

Die Systemtabelle SEQUENCES enthält alle Sequenzen, für die der aktuelle Benutzer Privilegien besitzt.

SEQUENCES

OWNER | CHAR(32) | Name des Eigentümers der Sequenz
SEQUENCE_NAME | CHAR(32) | Name der Sequenz
MIN_VALUE | FIXED(38) | Minimalwert der Sequenz
MAX_VALUE | FIXED(38) | Maximalwert der Sequenz
INCREMENT_BY | FIXED(38) | Wert, um den die Sequenz erhöht wird
CYCLE_FLAG | CHAR(1) | Beginnt die Sequenz erneut beim Minimalwert, nachdem der Maximalwert erreicht wurde?
ORDER_FLAG | CHAR(1) | Werden die Sequenzwerte in der Reihenfolge der Anforderung vergeben?
CACHE_SIZE | FIXED(38) | Anzahl der Sequenzwerte, die gleichzeitig in den Cache geladen werden
LAST_NUMBER | FIXED(38) | Letzter Sequenzwert, der gespeichert wurde
CREATEDATE | DATE(10) | Erzeugungsdatum der Sequenz
CREATETIME | TIME(8) | Erzeugungszeit der Sequenz
COMMENT | LONG | Kommentar zu der Sequenz

Siehe auch:

Systemtabellen auswerten ® SEQUENCES


SERVERDBSTATISTICS (MaxDB: Referenzhandbuch)

SERVERDBSTATISTICS

Die Statistik-Systemtabelle SERVERDBSTATISTICS enthält Angaben über die Belegung der Datenbankinstanz.

SERVERDBSTATISTICS

SERVERDBSIZE | FIXED(10) | Größe der Datenbankinstanz in Seiten
MAXDATAPAGENO | FIXED(10) | Höchste Seitennummer der Datenbankinstanz
MAXPERM | FIXED(10) | Anzahl von Seiten der Datenbankinstanz, die für nicht temporäre Objekte nutzbar sind
MAXUSEDPAGES | FIXED(10) | Maximale Anzahl benutzter Seiten zu einem Synchronisationszeitpunkt (Restart bzw. Savepoint)
USEDPERM | FIXED(10) | Anzahl der Seiten der Datenbankinstanz, die für nicht temporäre Objekte belegt sind
PCTUSEDPERM | FIXED(10) | Prozentualer Anteil der Seiten für nicht temporäre Objekte
USEDTMP | FIXED(10) | Anzahl der Seiten der Datenbankinstanz, die für temporäre Objekte belegt sind
PCTUSEDTMP | FIXED(10) | Prozentualer Anteil der Seiten für temporäre Objekte
UNUSED | FIXED(10) | Anzahl nicht belegter Seiten
PCTUNUSED | FIXED(10) | Prozentualer Anteil nicht belegter Seiten
UPDATEDPERM | FIXED(10) | Anzahl geänderter Seiten für permanente Objekte
SERVERDBFULL | CHAR(3) | YES: maximaler Füllungsgrad der Datenbankinstanz ist erreicht NO: maximaler Füllungsgrad der Datenbankinstanz ist nicht erreicht
USEDBLOCKS | FIXED(10) | Anzahl von Blöcken auf Data-Volumes, die mit Seiten belegt sind
LOGSIZE | FIXED(10) | Größe des Log-Bereichs in Seiten
USEDLOG | FIXED(10) | Anzahl benutzter Log-Seiten
PCTUSEDLOG | FIXED(10) | Prozentualer Anteil benutzter Log-Seiten
LOGNOTSAVED | FIXED(10) | Anzahl noch nicht gesicherter Log-Seiten
PCTLOGNOTSAVED | FIXED(10) | Prozentualer Anteil noch nicht gesicherter Log-Seiten
LOGSINCEBACKUP | FIXED(10) | Anzahl geschriebener Log-Seiten seit der letzten vollständigen oder inkrementellen Datensicherung
LOGSEGMENTSIZE | FIXED(10) | Größe eines Log-Segments in Seiten
SAVEPOINTS | FIXED(10) | Anzahl durchgeführter Savepoints


SESSION_ROLES (MaxDB: Referenzhandbuch)

SESSION_ROLES

Die Systemtabelle SESSION_ROLES enthält die Rollen, die in der aktuellen Datenbanksitzung aktiv sind.

SESSION_ROLES

ROLE

CHAR(32)

Name der Rolle

Siehe auch:

Systemtabellen auswerten ® SESSION_ROLES


SESSIONS (MaxDB: Referenzhandbuch)

SESSIONS

Die Systemtabelle SESSIONS beschreibt die Verbindung zwischen einer Anwendung und einer Datenbank-Task.

SESSIONS

SESSIONID | FIXED(10) | Identifikation der Datenbanksitzung
OWN | CHAR(3) | Aktuelle Datenbanksitzung (YES|NO)
STARTDATE | TIMESTAMP | Startzeitpunkt der Datenbanksitzung
APPLICATIONNODE | CHAR(64) | Name des Rechners, auf dem die Anwendung läuft
APPLICATIONPROCESS | FIXED(10) | Betriebssystem-Identifikation der Anwendung
APPLICATIONTYPE | CHAR(3) | Identifikation des Werkzeugs oder Interface, das die Anwendung verwendet
USERNAME | CHAR(32) UNICODE | Name des Datenbankbenutzers
PEERPROCESSID | FIXED(10) | Identifikation des Kommunikationspartners der Datenbank-Task
CONNECTSTATE | CHAR(32) | Status der Verbindung
TASKID | FIXED(10) | Identifikation der Datenbank-Task
OMSHEAPUSEDSIZE | FIXED(20) | Speicherverbrauch im [image] OMS-Heap (KB)
TRACE | CHAR(3) | Der Datenbank-Trace wird für diese Datenbanksitzung/alle Datenbanksitzungen geschrieben (YES|NO)
CATALOGCACHEUSEDSIZE | FIXED(10) | Platzverbrauch des der Datenbanksitzung zugeordneten Catalog-Cache (KB)
TEMPSPACEUSEDSIZE | FIXED(10) | Platzverbrauch für temporäre Informationen der eigenen Datenbanksitzung (KB) | NULL-Wert für die anderen Datenbanksitzungen
PAGINGFILEUSEDSIZE | FIXED(10) | Größe der Parse-Datei. Der Wert wird nur bestimmt, wenn DIAGNOSE COUNT SESSION FILE ON gesetzt ist.
SQLMODE | CHAR(8) | SQL-Modus der eigenen Datenbanksitzung | NULL-Wert für die anderen Datenbanksitzungen
ISOLATIONLEVEL | FIXED(10) | Isolation-Level der eigenen Datenbanksitzung | NULL-Wert für die anderen Datenbanksitzungen
TIMEOUT | FIXED(10) | Timeout-Wert der eigenen Datenbanksitzung | NULL-Wert für die anderen Datenbanksitzungen
DATEFORMAT | CHAR(50) | Datums- und Zeitformat der eigenen Datenbanksitzung | NULL-Wert für die anderen Datenbanksitzungen


SNAPSHOTS (MaxDB: Referenzhandbuch)

SNAPSHOTS

Die Systemtabelle SNAPSHOTS enthält Angaben über eine definierte Sicht (Snapshot) auf den Datenbestand.

SNAPSHOTS

ID | FIXED(10) | Aktuelle Converter-Version zum Zeitpunkt der Definition des Snapshot
CREATEDATE | TIMESTAMP | Zeitpunkt der Definition des Snapshot
USEDSIZE | FIXED(20) | Für den Snapshot genutzte Menge von Daten (KB)


SYNONYMS (MaxDB: Referenzhandbuch)

SYNONYMS

Die Systemtabelle SYNONYMS enthält alle Synonyme, für die der aktuelle Benutzer Privilegien besitzt.

SYNONYMS

OWNER | CHAR(32) | Name des Eigentümers des Synonyms
SYNONYMNAME | CHAR(32) | Name des Synonyms
PUBLIC | CHAR(3) | Synonym ist PUBLIC (YES | NO)
TABLEOWNER | CHAR(32) | Name des Eigentümers der Tabelle
TABLENAME | CHAR(32) | Name der Tabelle
CREATEDATE | DATE(10) | Erzeugungsdatum des Synonyms
CREATETIME | TIME(8) | Erzeugungszeit des Synonyms
COMMENT | LONG | Kommentar zu dem Synonym

Siehe auch:

Systemtabellen auswerten ® SYNONYMS


TABLEPRIVILEGES (MaxDB: Referenzhandbuch)

TABLEPRIVILEGES

Die Systemtabelle TABLEPRIVILEGES beschreibt die Privilegien, die der aktuelle Benutzer für Tabellen besitzt.

TABLEPRIVILEGES

OWNER | CHAR(32) | Name des Eigentümers der Tabelle
TABLENAME | CHAR(32) | Name der Tabelle
GRANTOR | CHAR(32) | Name des Benutzers, der die Privilegien vergeben hat
GRANTEE | CHAR(32) | Name des Benutzers oder der Rolle, an den/die vergeben wurde
PRIVILEGES | CHAR(30) | Privilegien, die vergeben wurden
IS_GRANTABLE | CHAR(3) | Privileg, das erhaltene Privileg weiterzugeben (YES | NO)

Siehe auch:

Systemtabellen auswerten ® TABLEPRIVILEGES


TABLES (MaxDB: Referenzhandbuch)

TABLES

Die Systemtabelle TABLES enthält alle Tabellen (Basistabellen, View-Tabellen, Synonyme, Ergebnistabellen), für die der aktuelle Benutzer Privilegien besitzt.

TABLES

OWNER | CHAR(32) | Name des Eigentümers der Tabelle
TABLENAME | CHAR(32) | Name der Tabelle
PRIVILEGES | CHAR(30) | Privilegien des aktuellen Benutzers für die Tabelle
TYPE | CHAR(8) | Typ der Tabelle (SYSTEMS | TABLES)
TABLETYPE | CHAR(8) | Typ der Tabelle (TABLE | VIEW | SYNONYM | RESULT)
CREATEDATE | DATE(10) | Erzeugungsdatum der Tabelle
CREATETIME | TIME(8) | Erzeugungszeit der Tabelle
UPDSTATDATE | DATE(10) | Datum der zuletzt durchgeführten UPDATE STATISTICS-Anweisung für die Tabelle
UPDSTATTIME | TIME(8) | Zeit der zuletzt durchgeführten UPDATE STATISTICS-Anweisung für die Tabelle
ALTERDATE | DATE(10) | Änderungsdatum der Tabelle
ALTERTIME | TIME(8) | Änderungszeit der Tabelle
UNLOADED | CHAR(3) | Tabelle ist entladen (YES | NO)
SAMPLE_PERCENT | FIXED(3) | Angabe, wieviel Prozent des Tabelleninhalts für das Aktualisieren von Statistiken herangezogen werden sollen
SAMPLE_ROWS | FIXED(10) | Angabe, wieviele Zeilen der Tabelle für das Aktualisieren von Statistiken herangezogen werden sollen
COMMENT | LONG | Kommentar zu der Tabelle
TABLEID | CHAR(8) BYTE | Bezeichner der Tabelle in hexadezimaler Darstellung
DYNAMIC | CHAR(3) | Die Tabelle wurde mit der Angabe DYNAMIC definiert (YES|NO)
ARCHIVE | CHAR(3) | Die Tabelle wurde mit der Angabe FOR ARCHIVE definiert (YES|NO)
VARIABLE_COLUMNS | CHAR(3) | Die Spalten werden mit variabler Länge abgelegt (YES|NO), siehe dazu CREATE TABLE-Anweisung

Siehe auch:

Systemtabellen auswerten ® TABLES


TABLESTATISTICS (MaxDB: Referenzhandbuch)

TABLESTATISTICS

Die Statistik-Systemtabelle TABLESTATISTICS enthält Stuktur- und Größeninformationen von Basistabellen.

TABLESTATISTICS

OWNER | CHAR(32) | Eigentümer der Tabelle
TABLENAME | CHAR(32) | Tabellenname
DESCRIPTION | CHAR(40) | Beschreibung (siehe Tabelle Spalte DESCRIPTION), wie die folgenden Spalten zu interpretieren sind
CHAR_VALUE | CHAR(12) | Alphanumerischer Wert
NUMERIC_VALUE | FIXED(10) | Numerischer Wert

Spalte DESCRIPTION

Wert | Erläuterung
Root pno | NUMERIC_VALUE enthält die Seitennummer der Wurzel des B*-Baums
Filetype | CHAR_VALUE enthält den Typ des B*-Baums
Used pages | NUMERIC_VALUE enthält die Anzahl der durch die Tabelle belegten Seiten
Index pages | NUMERIC_VALUE enthält die Anzahl der durch die Tabelle belegten Seiten im B*-Baumindex
Leaf pages | NUMERIC_VALUE enthält die Anzahl der durch die Tabelle belegten Blattseiten
Index levels | NUMERIC_VALUE enthält die Anzahl der Indexstufen des B*-Baums
Space used in all pages(%) | NUMERIC_VALUE enthält die prozentuale Belegung aller Seiten des B*-Baums
Space used in root page(%) | NUMERIC_VALUE enthält die prozentuale Belegung der Wurzelseite des B*-Baums
Space used in index pages(%) | NUMERIC_VALUE enthält die prozentuale Belegung der Indexseiten des B*-Baums
Space used in index pages(%) min | NUMERIC_VALUE enthält die minimale prozentuale Belegung der Indexseiten des B*-Baums
Space used in index pages(%) max | NUMERIC_VALUE enthält die maximale prozentuale Belegung der Indexseiten des B*-Baums
Space used in leaf pages(%) | NUMERIC_VALUE enthält die prozentuale Belegung der Blattseiten des B*-Baums
Space used in leaf pages(%) min | NUMERIC_VALUE enthält die minimale prozentuale Belegung der Blattseiten des B*-Baums
Space used in leaf pages(%) max | NUMERIC_VALUE enthält die maximale prozentuale Belegung der Blattseiten des B*-Baums
Rows | NUMERIC_VALUE enthält die Anzahl der Zeilen der Tabelle
Avg rows per page | NUMERIC_VALUE enthält die durchschnittliche Anzahl von Zeilen pro Seite
Min rows per page | NUMERIC_VALUE enthält die minimale Anzahl von Zeilen pro Seite
Max rows per page | NUMERIC_VALUE enthält die maximale Anzahl von Zeilen pro Seite
Avg row length | NUMERIC_VALUE enthält die durchschnittliche Zeilenlänge
Min row length | NUMERIC_VALUE enthält die minimale Zeilenlänge
Max row length | NUMERIC_VALUE enthält die maximale Zeilenlänge
Avg key length | NUMERIC_VALUE enthält die durchschnittliche Schlüssellänge
Min key length | NUMERIC_VALUE enthält die minimale Schlüssellänge
Max key length | NUMERIC_VALUE enthält die maximale Schlüssellänge
Avg separator length | NUMERIC_VALUE enthält die durchschnittliche Separatorlänge
Min separator length | NUMERIC_VALUE enthält die minimale Separatorlänge
Max separator length | NUMERIC_VALUE enthält die maximale Separatorlänge
Defined LONG columns | NUMERIC_VALUE enthält die Anzahl definierter LONG-Spalten
Avg LONG column length | NUMERIC_VALUE enthält die durchschnittliche LONG-Spaltenlänge
Min LONG column length | NUMERIC_VALUE enthält die minimale LONG-Spaltenlänge
Max LONG column length | NUMERIC_VALUE enthält die maximale LONG-Spaltenlänge
LONG column pages | NUMERIC_VALUE enthält die Anzahl von Seiten aller LONG-Spalten der Tabelle
Avg pages per LONG column | NUMERIC_VALUE enthält die durchschnittliche Anzahl von Seiten der Tabelle pro LONG-Spalte
Min pages per LONG column | NUMERIC_VALUE enthält die kleinste LONG-Spalte der Tabelle in Seiten
Max pages per LONG column | NUMERIC_VALUE enthält die größte LONG-Spalte der Tabelle in Seiten


TRANSACTIONS (MaxDB: Referenzhandbuch)

TRANSACTIONS

Die Statistik-Systemtabelle TRANSACTIONS enthält Angaben über aktive Transaktionen einer Datenbankinstanz.

TRANSACTIONS

SESSION | FIXED(10) | Identifikation der Datenbanksitzung
TRANSCOUNT | CHAR(20) | Identifikation der Transaktion
SUB_TRANS | FIXED(10) | Nummer der aktuellen Subtransaktion
WRITE_TRANS | CHAR(6) BYTE | Identifikation der aktuellen Schreibtransaktion, wenn diese eine Änderung durchgeführt hat
PROCESS | FIXED(10) | Identifikation des Benutzerprozesses
USERNAME | CHAR(32) | Benutzername
CONNECTDATE | DATE | Datum des Sitzungsbeginns
CONNECTTIME | TIME | Zeit des Sitzungsbeginns
TERMID | CHAR(18) | Identifikation des Terminals
REQTIMEOUT | CHAR(10) | Verbleibende Sekunden bis zum Erreichen der im Datenbankparameter REQUEST_TIMEOUT angegebenen Zeit
LASTWRITE | CHAR(10) | Vergangene Zeit seit dem letzten Schreibauftrag in Timeout-Intervallen
LOCKMODE | CHAR(14) | Art der Sperre
LOCKSTATE | CHAR(10) | Status der Sperre
REQMODE | CHAR(14) | Art der Sperranforderung
REQSTATE | CHAR(10) | Status der Sperranforderung
CONSISTENTVIEW | CHAR(6) | für zukünftige Zwecke
APPLPROCESS | FIXED(10) | Identifikation des Applikationsprozesses
APPLNODEID | CHAR(64) | Identifikation des Client-Rechners des Applikationsprozesses


TRIGGERS (MaxDB: Referenzhandbuch)

TRIGGERS

Die Systemtabelle TRIGGERS enthält alle Trigger, für die der aktuelle Benutzer Privilegien besitzt.

TRIGGERS

OWNER | CHAR(32) | Name des Eigentümers der Tabelle
TABLENAME | CHAR(32) | Name der Tabelle, für die der Trigger definiert wurde
TRIGGERNAME | CHAR(32) | Name des Triggers
INSERT | CHAR(3) | Type des Triggers
UPDATE | CHAR(3) | Type des Triggers
DELETE | CHAR(3) | Type des Triggers
CREATEDATE | DATE(10) | Erzeugungsdatum des Triggers
CREATETIME | TIME(8) | Erzeugungszeit des Triggers
DEFINITION | LONG | Text der Triggerdefinition
COMMENT | LONG | Kommentar zu dem Trigger

Siehe auch:

Systemtabellen auswerten ® TRIGGERS


USERS (MaxDB: Referenzhandbuch)

USERS

Die Systemtabelle USERS enthält alle Datenbankbenutzer.

USERS

OWNER | CHAR(32) | Name des Eigentümers des Benutzers
GROUPNAME | CHAR(32) | Name der Gruppe
USERNAME | CHAR(32) | Name des Benutzers
USERMODE | CHAR(8) | Klasse des Datenbankbenutzers (SYSDBA | DBA | RESOURCE | STANDARD)
CONNECTMODE | CHAR(8) | Art der Verbindung (MULTIPLE | SINGLE)
MAXTIMEOUT | FIXED(10) | Timeout-Wert
COSTWARNING | FIXED(10) | Wert des COSTWARNING
COSTLIMIT | FIXED(10) | Wert des COSTLIMIT
DEFAULTCODE | CHAR(8) | Vorschlagswert für Codeattribut
CREATEDATE | DATE(10) | Erzeugungsdatum des Benutzers
CREATETIME | TIME(8) | Erzeugungszeit des Benutzers
ALTERDATE | DATE(10) | Änderungsdatum des Benutzers
ALTERTIME | TIME(8) | Änderungszeit des Benutzers
PWCREADATE | DATE(10) | Erzeugungsdatum des Kennworts
PWCREATIME | TIME(8) | Erzeugungszeit des Kennworts
SERVERDB | CHAR(18) | Name der Datenbankinstanz
SERVERNODE | CHAR(64) | Rechnerknotenname der Datenbankinstanz
USER_ID | FIXED(10) | Identifikation des Benutzers
COMMENT | LONG | Kommentar zu dem Benutzer

Siehe auch:

Systemtabellen auswerten ® USERS


USERSTATISTICS (MaxDB: Referenzhandbuch)

USERSTATISTICS

Die Statistik-Systemtabelle USERSTATISTICS enthält Angaben über den Ressourcenverbrauch von Benutzern.

USERSTATISTICS

USERNAME | CHAR(32) | Benutzername
USERMODE | CHAR(8) | Benutzerklasse
PERMCOUNT | FIXED(10) | Aktueller Seitenverbrauch für permanente Objekte
TEMPCOUNT | FIXED(10) | Aktueller Seitenverbrauch für temporäre Objekte


VERSION (MaxDB: Referenzhandbuch)

VERSION

Die Systemtabelle VERSION beschreibt die Version der Datenbanksoftware (Kern und LZU).

VERSIONS

OPERATINGSYSTEM | CHAR(64) | Name des Betriebssystems
PROCESSORTYPE | CHAR(64) | Name des Prozessorherstellers
ADDRESSINGMODE | FIXED(2) | Angabe, ob eine 32bit- oder 64bit-Plattform verwendet wird
ID | CHAR(40) | Aktuelle Version incl. Build-Level
MAJORVERSION | FIXED(2) | Nummer der Major-Version
MINORVERSION | FIXED(2) | Nummer der Minor-Version
CORRECTIONLEVEL | FIXED(2) | Nummer des Correction-Levels
BUILD | FIXED(2) | Build-Level
KERNELVARIANT | CHAR(8) | Variante des Kerns (SLOW | QUICK | FAST)


VERSIONS (MaxDB: Referenzhandbuch)

VERSIONS

Die Systemtabelle VERSIONS beschreibt die Versionen der Datenbanksoftware.

VERSIONS

KERNEL | CHAR(40) | Version der Datenbanksoftware
RUNTIMEENVIRONMENT | CHAR(40) | Version der Laufzeitumgebung

Siehe auch:

Systemtabellen auswerten ® VERSIONS


VIEWCOLUMNS (MaxDB: Referenzhandbuch)

VIEWCOLUMNS

Die Systemtabelle VIEWCOLUMNS enthält alle Spalten der View-Tabellen, für die der aktuelle Benutzer Privilegien besitzt.

VIEWCOLUMNS

OWNER | CHAR(32) | Name des Eigentümers der View-Tabelle
VIEWNAME | CHAR(32) | Name der View-Tabelle
VIEWCOLUMNNAME | CHAR(32) | Name der Spalte in der View-Tabelle
TABLEOWNER | CHAR(32) | Name des Eigentümers der Tabelle, zu der die verwendete Spalte gehört
TABLENAME | CHAR(32) | Name der Tabelle, zu der die verwendete Spalte gehört
COLUMNNAME | CHAR(32) | Name der Spalte, den sie ursprünglich in der Tabelle hat
CREATEDATE | DATE(10) | Erzeugungsdatum der View-Tabelle
CREATETIME | TIME(8) | Erzeugungszeit der View-Tabelle

Siehe auch:

Systemtabellen auswerten ® VIEWCOLUMNS


VIEWDEFS (MaxDB: Referenzhandbuch)

VIEWDEFS

Die Systemtabelle VIEWDEFS enthält die Definitionen der View-Tabellen, für die der aktuelle Benutzer Privilegien besitzt.

VIEWDEFS

OWNER | CHAR(32) | Name des Eigentümers der View-Tabelle
VIEWNAME | CHAR(32) | Name der View-Tabelle
LEN | FIXED(5) | Länge der Definition der View-Tabelle
DEFINITION | LONG | Text der Definition der View-Tabelle

Siehe auch:

Systemtabellen auswerten ® VIEWDEFS


VIEWS (MaxDB: Referenzhandbuch)

VIEWS

Die Systemtabelle VIEWS enthält alle View-Tabellen, für die der aktuelle Benutzer Privilegien besitzt.

VIEWS

OWNER | CHAR(32) | Name des Eigentümers der View-Tabelle
VIEWNAME | CHAR(32) | Name der View-Tabelle
PRIVILEGES | CHAR(30) | Privilegien des Benutzers für die View-Tabelle
TYPE | CHAR(8) | Typ der Tabelle
CREATEDATE | DATE(10) | Erzeugungsdatum der View-Tabelle
CREATETIME | TIME(8) | Erzeugungszeit der View-Tabelle
UPDSTATDATE | DATE(10) | Datum der zuletzt durchgeführten UPDATE STATISTICS-Anweisung für die View-Tabelle
UPDSTATTIME | TIME(8) | Zeit der zuletzt durchgeführten UPDATE STATISTICS-Anweisung für die View-Tabelle
ALTERDATE | DATE(10) | Änderungsdatum der View-Tabelle
ALTERTIME | TIME(8) | Änderungszeit der View-Tabelle
UNLOADED | CHAR(3) | View-Tabelle ist entladen (YES | NO)
COMMENT | LONG | Kommentar zu der View-Tabelle

Siehe auch:

Systemtabellen auswerten ® VIEWS


SQL-Modus ORACLE (MaxDB: Referenzhandbuch)

SQL-Modus ORACLE

In dieser Dokumentation werden die Unterschiede der logischen Datenablage und der Definitionen der SQL-Syntax für die Datenbanksysteme Oracle Version 7 und MySQL MaxDB, SQL-Modus ORACLE angegeben.

Allgemeine Informationen zum Datenbanksystem finden Sie in der Dokumentation Datenbankverwaltung.

Informationen zur SQL-Syntax des Datenbanksystems finden Sie im Referenzhandbuch.

Die Unterschiede werden in folgenden Abschnitten beschrieben:

· Allgemeine Unterschiede

· SQL-Syntaxelemente

· SQL-Anweisungen

· Systemtabellen

· Fehlermeldungen


Allgemeine Unterschiede (MaxDB: Referenzhandbuch)

Allgemeine Unterschiede

Logische Datenbankstruktur

Die logische Datenbankstruktur der Datenbanksystem Oracle Version 7 und MySQL MaxDB unterscheidet sich grundlegend.

· Eine Oracle-Datenbank besteht aus logischer Sicht aus Tablespaces, Segmenten, Extents, Blöcken, Tabellen und Datensätzen.

· MaxDB besteht aus logischer Sicht im wesentlichen aus den Tabellen im Datenbankkatalog und den Anwendungsdaten in Form von Datensätzen.

Für MaxDB haben deshalb alle Oracle-SQL-Anweisungen, die mit der Verwaltung von Tablespaces, Segmenten, Extents oder Blöcken zu tun haben, keine Bedeutung.

Konsistentes Lesen/Sperren

Das von Oracle angebotene konsistente Lesen kann von MaxDB durch Sperren im Isolation-Level >= 2 erreicht werden.

Oracle erlaubt eine unbegrenzte Anzahl von exklusiven Zeilensperren. Bei MaxDB tritt ab einer gewissen Anzahl von Zeilensperren eine Eskalation in Kraft, d. h. die gesamte Tabelle wird gesperrt. Der Zeitpunkt der Eskalation ist abhängig von der definierten Größe der Sperrliste.

Datenbankprozeduren/Trigger

· In Oracle werden Datenbankprozeduren, DB-Funktionen und Trigger in der ADA-ähnlichen Sprache PL/SQL definiert.

· In MaxDB werden Datenbankprozeduren und Trigger in einer C-ähnlichen Sprache definiert.

Datenbankobjekte und ihr Schema

Ein Datenbankbenutzer kann Datenbankobjekte nur in seinem eigenen Schema erzeugen und löschen oder er kann Datenbankobjekte erzeugen, die keinem Datenbankbenutzer zugeordnet sind (z. B. Index). Das Erzeugen von Datenbankobjekten im Schema anderer Benutzer ist nicht möglich.

DBA-Benutzer und Privilegien

Im Gegensatz zu Oracle unterliegen in MaxDB auch Datenbankadministratoren (DBA-Benutzer) dem Privilegienkonzept und können nicht beliebige DDL-Anweisungen (z. B. CREATE INDEX) oder DML-Anweisungen (z. B. DELETE) ausführen, wenn ihnen keine entsprechenden Privilegien zugeordnet sind.


SQL-Syntaxelemente (MaxDB: Referenzhandbuch)

SQL-Syntaxelemente

Die SQL-Syntaxelemente für Oracle Version 7 und MySQL MaxDB im SQL-Modus ORACLE unterscheiden sich in folgenden Bereichen:

· Schema-Objekt

· Name

· Namensraum

· Zugriff auf Objekte

· Ganze Zahl

· Zahl

· Datentyp

· Pseudospalte

· Operator

· Funktion

· Format


Schema-Objekt (MaxDB: Referenzhandbuch)

Schema-Objekt

Die SQL-Syntaxelemente für Oracle Version 7 und MySQL MaxDB im SQL-Modus ORACLE unterscheiden sich unter anderem bei der Definition der möglichen Schema-Objekte.

Folgende Schema-Objekte werden von MySQL MaxDB nicht unterstützt:

· Cluster

· Database-Link

· Package

· Profile

· Rollback-Segment

· Snapshot

· Snapshot-Log

· Tablespace

Folgendes Schema-Objekt wird von MySQL MaxDB unterstützt, nutzt aber eine andere Syntax als Oracle:

Procedure (Objekt in MySQL MaxDB: Datenbankprozedur)


Name (MaxDB: Referenzhandbuch)

Name

Die SQL-Syntaxelemente für Oracle Version 7 und MySQL MaxDB im SQL-Modus ORACLE unterscheiden sich unter anderem bei der Definition der Namen für Objekte.

Wenn von MySQL MaxDB Namen für Objekte vergeben werden, dann unterschieden sich diese von Namen, die von Oracle erzeugt werden.

Folgende Schlüsselwörter sind in Oracle 7 reserviert, nicht jedoch in MySQL MaxDB:

ACCESS | COMPRESS | ELSE | FILE
IMMEDIATE | INCREMENT | INITIAL | MAXEXTENTS
NOAUDIT | NOCOMPRESS | OFFLINE | ONLINE
PRIOR | SIZE | START | SUCCESSFUL
THEN | VALIDATE |  |

Diese Schlüsselwörter sollten in MySQL MaxDB wenn möglich nicht zur Benennung von Objekten verwendet werden.

Eine Liste aller in MySQL MaxDB reservierten Schlüsselwörter finden Sie im Referenzhandbuch in reserved_key_word.

Eine Liste aller in MySQL MaxDB nicht reservierten Schlüsselwörter finden Sie im Referenzhandbuch in not_reserved_key_word.


Namensraum (MaxDB: Referenzhandbuch)

Namensraum

Die SQL-Syntaxelemente für Oracle Version 7 und MySQL MaxDB im SQL-Modus ORACLE unterscheiden sich unter anderem bei der Definition der Namensräume.

Unterschiede im Namensraum

Oracle 7 | MySQL MaxDB
Alle Indizes einer Datenbankinstanz bilden einen Namensraum. | Alle Indizes einer Tabelle bilden einen Namensraum.
Alle Constraints einer Datenbankinstanz bilden einen Namensraum. | Alle Constraints einer Tabelle bilden einen Namensraum.
Alle Trigger einer Datenbankinstanz bilden einen Namensraum. | Alle Trigger einer Tabelle bilden einen Namensraum.
Alle Sequenzen bilden gemeinsam mit den Tabellen, Views, Synonymen, Prozeduren und weiteren Objekten einen Namensraum. | Alle Sequenzen einer Datenbankinstanz bilden einen eigenen Namensraum.
Alle Prozeduren bilden gemeinsam mit den Tabellen, Views, Sequenzen, Synonymen und weiteren Objekten einen Namensraum. | Alle Datenbankprozeduren einer Datenbankinstanz bilden einen eigenen Namensraum.


Zugriff auf Objekte (MaxDB: Referenzhandbuch)

Zugriff auf Objekte

Die SQL-Syntaxelemente für Oracle Version 7 und MySQL MaxDB im SQL-Modus ORACLE unterscheiden sich unter anderem beim Zugriff auf die Objekte.

Wenn kein Eigentümer beim Zugriff auf ein Datenbankobjekt angegeben wird und kein Objekt des aktuellen Benutzers mit diesem Namen existiert, dann gilt im Gegensatz zu Oracle für MaxDB folgende Vorgehensweise, um auf das Datenbankobjekt zuzugreifen:

...

1. MaxDB durchsucht die PUBLIC-Synonyme nach diesem Objekt.

2. Wenn das Objekt nicht gefunden wurde, durchsucht MaxDB den Datenbankkatalogteil des DBA-Benutzers, der den aktuellen Benutzer erzeugt hat, nach diesem Objekt.

3. Wenn das Objekt nicht gefunden wurde, durchsucht MaxDB den Datenbankkatalogteil des SYSDBA-Benutzers nach diesem Objekt.


Ganze Zahl (MaxDB: Referenzhandbuch)

Ganze Zahl

Die SQL-Syntaxelemente für Oracle Version 7 und MySQL MaxDB im SQL-Modus ORACLE unterscheiden sich unter anderem bei der Definition der ganzen Zahlen.

Eine ganze Zahl (integer) hat im Unterschied zu Oracle in MySQL MaxDB 20 signifikante Zeichen.


Zahl (MaxDB: Referenzhandbuch)

Zahl

Die SQL-Syntaxelemente für Oracle Version 7 und MySQL MaxDB im SQL-Modus ORACLE unterscheiden sich unter anderem bei der Definition der Zahlen.

· Der zulässige Wertebereich für Zahlen umfasst für Oracle Werte von 0.999E-128 bis 0.999E126.

· Der zulässige Wertebereich von Gleitkommazahlen (Zahl) besteht für MySQL MaxDB aus dem Intervall von -9.9999999999999999999999999999999999999E+62 bis -1E-64, dem Wert 0.0 sowie aus dem Intervall von +1E-64 bis +9.9999999999999999999999999999999999999E+62.


Datentyp (MaxDB: Referenzhandbuch)

Datentyp

Die SQL-Syntaxelemente für Oracle Version 7 und MySQL MaxDB im SQL-Modus ORACLE unterscheiden sich unter anderem bei der Definition der Datentypen.

· Spalten vom Datentyp CHAR[ACTER] werden im Gegensatz zu Oracle von MySQL MaxDB nur bis zu einer Länge von 30 Zeichen mit fester Länge abgelegt.

· Der Oracle-Datentyp VARCHAR2 unterscheidet sich in MySQL MaxDB nicht von VARCHAR.

· Die Datentypen INT[EGER] und SMALLINT haben in MySQL MaxDB 20 signifikante Zeichen.

· Der Datentyp FLOAT wird von MySQL MaxDB immer mit 20 signifikanten Stellen dargestellt.

· In MySQL MaxDB ist es bei numerischen Datentypen nicht möglich, eine negative Anzahl von Nachkommastellen zu definieren. Ferner darf die Anzahl von Nachkommastellen nicht größer als die Anzahl der signifikanten Stellen gewählt werden.

· In MySQL MaxDB findet keine implizite Konvertierung von Zahlen in Datumswerte oder umgekehrt statt.

· Datumswerte in Oracle reichen vom 1.1.4712 v. Chr. bis zum 31.12.9999 n.Chr.
Datumswerte in MySQL MaxDB reichen vom 1.1.0001 bis zum 31.12.9999.

· Der von Oracle als "non padded comparison" bezeichnete Vergleich von Zeichenketten wird von MySQL MaxDB nicht unterstützt.

· Die von Oracle unterstützten Datentypen NCHAR, NVARCHAR2, MLSLABEL, BLOB, CLOB, NCLOB, BFILE und UROWID werden von MySQL MaxDB nicht unterstützt.


Pseudospalte (MaxDB: Referenzhandbuch)

Pseudospalte

Die SQL-Syntaxelemente für Oracle Version 7 und MySQL MaxDB im SQL-Modus ORACLE unterscheiden sich unter anderem bei der Definition der Pseudospalten.

· Die Pseudospalte LEVEL wird von MySQL MaxDB nicht unterstützt.

· Die Pseudospalte ROWID kann nur verwandt werden, wenn in der CREATE TABLE-Anweisung <create_table_statement> die Option ROWID angegeben wurde. Im Gegensatz zu Oracle liefert MySQL MaxDB eine logische Spaltenidentifikation vom Datentyp RAW(8).

· Die Pseudospalte ROWNUM kann in MySQL MaxDB nicht in der UPDATE-Anweisung <update_statement> verwendet werden.

· Die Pseudospalte ROWNUM wird in eine selektierte Spalte (select_column) eingetragen, nachdem die Ergebnistabelle sortiert wurde.


Operator (MaxDB: Referenzhandbuch)

Operator

Die SQL-Syntaxelemente für Oracle Version 7 und MySQL MaxDB im SQL-Modus ORACLE unterscheiden sich unter anderem bei der Definition von Operatoren.

Der Oracle-Operator PRIOR steht in MySQL MaxDB nicht zur Verfügung.


Funktion (MaxDB: Referenzhandbuch)

Funktion

Die SQL-Syntaxelemente für Oracle Version 7 und MySQL MaxDB im SQL-Modus ORACLE unterscheiden sich unter anderem bei der Definition der Funktionen.

· Folgende Oracle-Funktionen stehen in MySQL MaxDB nicht als Funktionen zur Verfügung:

- CHARTOROWID

- ROWIDTOCHAR

- CONVERT

- DUMP

- USERENV

- NLS_INITCAP

- NLS_LOWER

- NLS_UPPER

- TO_MULTI_BYTE

- TO_SINGLE_BYTE

- INSTRB

- LENGTHB

- SUBSTRB

· Bei Angabe der Stringfunktionen LPAD und RPAD in MySQL MaxDB darf die Zeichenkette x nicht länger als n sein.

· Bei Angabe der Stringfunktion SUBSTR in MySQL MaxDB darf a nicht kleiner als 1 sein.

· Bei Angabe der Funktion INSTR in MySQL MaxDB darf der Parameter "n" nicht kleiner als 1 sein.

· Bei Angabe der Funktionen TO_CHAR, TO_DATE und TO_NUMBER in MySQL MaxDB steht der Parameter "nlsparams" nicht zur Verfügung.


Format (MaxDB: Referenzhandbuch)

Format

Die SQL-Syntaxelemente für Oracle Version 7 und MySQL MaxDB im SQL-Modus ORACLE unterscheiden sich unter anderem bei der Definition des Datumsformats.

Wenn nicht anders in der ALTER SESSION-Anweisung in MySQL MaxDB angegeben, wird das Datumsformat DD-MON-YY, die Sprache Englisch und die Sortierung BINARY für eine Datenbanksitzung angenommen.


SQL-Anweisungen (MaxDB: Referenzhandbuch)

SQL-Anweisungen

In diesem Abschnitt werden alle Oracle-SQL-Anweisungen aufgeführt, bei denen sich das Verhalten von Oracle Version 7 und MySQL MaxDB im SQL-Modus ORACLE unterscheidet.

Eine genaue Syntaxbeschreibung der Oracle-SQL-Anweisungen finden Sie nicht in den folgenden Abschnitten, sondern nur im Handbuch ORACLE7 Server SQL Reference Manual. Die Oracle-SQL-Anweisungen werden in der gleichen Reihenfolge wie im Handbuch ORACLE7 Server SQL Reference Manual aufgeführt.

Um die Syntaxerläuterungen besser verstehen zu können, wurde gegebenenfalls direkt auf die Syntaxbeschreibung der entsprechenden MySQL MaxDB-SQL-Anweisung im Referenzhandbuch verwiesen

Bei SQL-Anweisungen, die hier nicht beschrieben werden, können Sie davon ausgehen, dass außer den in Allgemeine Unterschiede beschriebenen Differenzen keine Unterschiede vorliegen.


alter_cluster_statement (MaxDB: Referenzhandbuch)

alter_cluster_statement

Das Schema-Objekt Cluster wird von MySQL MaxDB nicht unterstützt. Die SQL-Anweisung ALTER CLUSTER (alter_cluster_statement) wird daher von MySQL MaxDB nicht akzeptiert.


alter_database_statement (MaxDB: Referenzhandbuch)

alter_database_statement

Die SQL-Anweisung ALTER DATABASE (alter_database_statement) wird von MySQL MaxDB nicht akzeptiert.


alter_function_statement (MaxDB: Referenzhandbuch)

alter_function_statement

Die SQL-Anweisung ALTER FUNCTION (alter_function_statement) wird von MySQL MaxDB abgelehnt.


alter_index_statement (MaxDB: Referenzhandbuch)

alter_index_statement

Die Änderung von Speichercharakteristika für Indizes ist in MySQL MaxDB wegen der Reorganisationsfreiheit unnötig. Die SQL-Anweisung ALTER INDEX (alter_index_statement) ist in MySQL MaxDB bekannt, jedoch mit einer von Oracle verschiedenen Syntax und Semantik (ALTER INDEX-Anweisung (alter_index_statement)).


alter_package_statement (MaxDB: Referenzhandbuch)

alter_package_statement

Die SQL-Anweisung ALTER PACKAGE (alter_package_statement) wird von MySQL MaxDB nicht akzeptiert.


alter_procedure_statement (MaxDB: Referenzhandbuch)

alter_procedure_statement

Die SQL-Anweisung ALTER PROCEDURE (alter_procedure_statement) wird von MySQL MaxDB nicht akzeptiert.


alter_profile_statement (MaxDB: Referenzhandbuch)

alter_profile_statement

Das Schema-Objekt Profile wird von MySQL MaxDB nicht unterstützt. Die SQL-Anweisung ALTER PROFILE (alter_profile_statement) wird daher von MySQL MaxDB nicht akzeptiert


alter_resource_cost_statement (MaxDB: Referenzhandbuch)

alter_resource_cost_statement

Die SQL-Anweisung ALTER RESOURCE COST (alter_resource_cost_statement) wird von MySQL MaxDB nicht akzeptiert.


alter_role_statement (MaxDB: Referenzhandbuch)

alter_role_statement

Die SQL-Anweisung ALTER ROLE (alter_role_statement) wird von MySQL MaxDB nicht akzeptiert.


alter_rollback_segment_statement (MaxDB: Referenzhandbuch)

alter_rollback_segment_statement

Das Schema-Objekt Rollback-Segment wird von MySQL MaxDB nicht unterstützt. Die SQL-Anweisung ALTER ROLLBACK SEGMENT (alter_rollback_segment_statement) wird daher von MySQL MaxDB nicht akzeptiert.


alter_sequence_statement (MaxDB: Referenzhandbuch)

alter_sequence_statement

Die SQL-Anweisung ALTER SEQUENCE (alter_sequence_statement) wird von MySQL MaxDB nicht akzeptiert.


alter_snapshot_statement (MaxDB: Referenzhandbuch)

alter_snapshot_statement

Das Schema-Objekt Snapshot wird von MySQL MaxDB nicht unterstützt. Die SQL-Anweisung ALTER SNAPSHOT (alter_snapshot_statement) wird daher von MySQL MaxDB nicht akzeptiert


alter_snapshot_log_statement (MaxDB: Referenzhandbuch)

alter_snapshot_log_statement

Das Schema-Objekt Snapshot-Log wird von MySQL MaxDB nicht unterstützt. Die SQL-Anweisung ALTER SNAPSHOT LOG (alter_snapshot_log_statement) wird daher von MySQL MaxDB nicht akzeptiert.


alter_system_statement (MaxDB: Referenzhandbuch)

alter_system_statement

Die SQL-Anweisung ALTER SYSTEM (alter_system_statement) wird von MySQL MaxDB nicht akzeptiert.


alter_table_statement (MaxDB: Referenzhandbuch)

alter_table_statement

Die SQL-Anweisung ALTER TABLE (alter_table_statement) ist in MySQL MaxDB bekannt, jedoch mit einer von Oracle verschiedenen Syntax und Semantik (ALTER TABLE-Anweisung (alter_table_statement)).

· Die Varianten PCTFREE, PCTUSED, INITRANS, MAXTRANS, STORAGE, DROP und ALLOCATE besitzen für MySQL MaxDB keine Bedeutung und werden nicht akzeptiert.

· Constraints können von MySQL MaxDB nicht deaktiviert werden. Die Angabe von DISABLE wird daher von MySQL MaxDB ignoriert.

· Mit Hilfe der DROP-Klausel (drop_clause) können von MySQL MaxDB keine UNIQUE-Constraints gelöscht werden. Statt dessen muss die DROP INDEX-Anweisung (drop_index_statement) benutzt werden.

· Beim Hinzufügen von Spalten werden von MySQL MaxDB diese Spalten automatisch allen View-Tabellen hinzugefügt, die den "*" in der <select_list> benutzen, um alle Spalten der Tabelle zu identifizieren.


alter_tablespace_statement (MaxDB: Referenzhandbuch)

alter_tablespace_statement

Das Schema-Objekt Tablespace wird von MySQL MaxDB nicht unterstützt. Die SQL-Anweisung ALTER TABLESPACE (alter_tablespace_statement) wird daher von MySQL MaxDB nicht akzeptiert.


alter_trigger_statement (MaxDB: Referenzhandbuch)

alter_trigger_statement

Trigger können von MySQL MaxDB nicht deaktiviert werden. Die SQL-Anweisung ALTER TRIGGER (alter_trigger_statement) wird daher von MySQL MaxDB nicht akzeptiert.


alter_user_statement (MaxDB: Referenzhandbuch)

alter_user_statement

Die SQL-Anweisung ALTER USER (alter_user_statement) wird in MySQL MaxDB mit eingeschränkter Syntax unterstützt. Mit Hilfe der ALTER USER-Anweisung (alter_user_statement) kann in MySQL MaxDB ausschließlich das Kennwort des Benutzers verändert werden. Die Angabe von EXTERNALLY wird von MySQL MaxDB nicht akzeptiert.

Alle anderen Varianten der ALTER USER-Anweisung werden von MySQL MaxDB nicht akzeptiert.


alter_view_statement (MaxDB: Referenzhandbuch)

alter_view_statement

View-Tabellen werden von MySQL MaxDB immer in einem ausführbaren Zustand gehalten. Die SQL-Anweisung ALTER VIEW (alter_view_statement) ist daher nicht nötig und wird nicht akzeptiert.


analyze_statement (MaxDB: Referenzhandbuch)

analyze_statement

Für die SQL-Anweisung ANALYZE (analyze_statement) wird in MySQL MaxDB ausschließlich die Variante ANALYZE TABLE unterstützt. Die Optionen DELETE, VALIDATE STRUCTURE und LIST CHAINED ROWS sind in MySQL MaxDB nicht zulässig.


audit_statement (MaxDB: Referenzhandbuch)

audit_statement

Die SQL-Anweisung AUDIT (audit_statement) wird von MySQL MaxDB nicht akzeptiert.


commit_statement (MaxDB: Referenzhandbuch)

commit_statement

Für die SQL-Anweisung COMMIT (commit_statement) wird die Angabe von FORCE oder COMMENT von MySQL MaxDB nicht akzeptiert.


constraint_clause (MaxDB: Referenzhandbuch)

constraint_clause

Für das in SQL-Anweisungen verwendete Syntaxelement CONSTRAINT-Klausel (constraint_clause) gibt es bei Verwendung in MySQL MaxDB folgende Einschränkungen:

· Ein Constraint-Name (constraint_name) für einen Schlüssel oder [NOT] NULL wird nicht im Datenbankkatalog abgelegt.

· USING INDEX ist syntaktisch zulässig, hat jedoch für MySQL MaxDB keine Bedeutung.

· Die Option DISABLE wird von MySQL MaxDB ignoriert.


create_cluster_statement (MaxDB: Referenzhandbuch)

create_cluster_statement

Das Schema-Objekt Cluster wird von MySQL MaxDB nicht unterstützt. Die SQL-Anweisung CREATE CLUSTER (create_cluster_statement) wird daher von MySQL MaxDB nicht akzeptiert.


create_controlfile_statement (MaxDB: Referenzhandbuch)

create_controlfile_statement

Die SQL-Anweisung CREATE CONTROLFILE (create_controlfile_statement) wird von MySQL MaxDB nicht akzeptiert.


create_database_statement (MaxDB: Referenzhandbuch)

create_database_statement

Die SQL-Anweisung CREATE DATABASE (create_database_statement) wird von MySQL MaxDB nicht akzeptiert.


create_database_link_statement (MaxDB: Referenzhandbuch)

create_database_link_statement

Das Schema-Objekt Database-Link wird von MySQL MaxDB nicht unterstützt. Die SQL-Anweisung CREATE DATABASE LINK (create_database_link_statement) wird daher von MySQL MaxDB nicht akzeptiert.


create_function_statement (MaxDB: Referenzhandbuch)

create_function_statement

Die SQL-Anweisung CREATE FUNCTION (create_function_statement) wird von MySQL MaxDB nicht akzeptiert.


create_index_statement (MaxDB: Referenzhandbuch)

create_index_statement

Die SQL-Anweisung CREATE INDEX (create_index_statement) ist in MySQL MaxDB bekannt, jedoch mit einer von Oracle verschiedenen Syntax und Semantik (CREATE INDEX-Anweisung (create_index_statement)).

· Die Angabe von CLUSTER <cluster>, INITRANS <integer>, MAXTRANS <integer>, TABLESPACE <tablespace>, STORAGE <storage_clause>, PCTFREE <integer> und NOSORT hat für MySQL MaxDB keine Bedeutung, wird jedoch syntaktisch akzeptiert.

· In MySQL MaxDB wird der Index bei Angabe von DESC in absteigender Ordnung erzeugt.


create_package_statement (MaxDB: Referenzhandbuch)

create_package_statement

Die SQL-Anweisung CREATE PACKAGE (create_package_statement) wird von MySQL MaxDB nicht akzeptiert.


create_package_body_statement (MaxDB: Referenzhandbuch)

create_package_body_statement

Die SQL-Anweisung CREATE PACKAGE BODY (create_package_body_statement) wird von MySQL MaxDB nicht akzeptiert.


create_procedure_statement (MaxDB: Referenzhandbuch)

create_procedure_statement

Die SQL-Anweisung CREATE PROCEDURE (create_procedure_statement) wird von MySQL MaxDB nicht akzeptiert.


create_profile_statement (MaxDB: Referenzhandbuch)

create_profile_statement

Das Schema-Objekt Profile wird von MySQL MaxDB nicht unterstützt. Die SQL-Anweisung CREATE PROFILE (create_profile_statement) wird daher von MySQL MaxDB nicht akzeptiert


create_rollback_segment_statement (MaxDB: Referenzhandbuch)

create_rollback_segment_statement

Das Schema-Objekt Rollback-Segment wird von MySQL MaxDB nicht unterstützt. Die SQL-Anweisung CREATE ROLLBACK SEGMENT (create_rollback_segment_statement) wird daher von MySQL MaxDB nicht akzeptiert.


create_schema_statement (MaxDB: Referenzhandbuch)

create_schema_statement

Die SQL-Anweisung CREATE SCHEMA (create_schema_statement) wird von MySQL MaxDB nicht akzeptiert.


create_sequence_statement (MaxDB: Referenzhandbuch)

create_sequence_statement

Die SQL-Anweisung CREATE SEQUENCE (create_sequence_statement) wird von MySQL MaxDB mit folgenden syntaktischen Einschränkungen akzeptiert: die Optionen CACHE und ORDER haben für MySQL MaxDB keine Bedeutung (CREATE SEQUENCE-Anweisung (create_sequence_statement)).


create_snapshot_statement (MaxDB: Referenzhandbuch)

create_snapshot_statement

Das Schema-Objekt Snapshot wird von MySQL MaxDB nicht unterstützt. Die SQL-Anweisung CREATE SNAPSHOT (create_snapshot_statement) wird daher von MySQL MaxDB nicht akzeptiert.


create_snapshot_log_statement (MaxDB: Referenzhandbuch)

create_snapshot_log_statement

Das Schema-Objekt Snapshot-Log wird von MySQL MaxDB nicht unterstützt. Die SQL-Anweisung CREATE SNAPSHOT LOG (create_snapshot_log_statement) wird daher von MySQL MaxDB nicht akzeptiert.


create_synonym_statement (MaxDB: Referenzhandbuch)

create_synonym_statement

MySQL MaxDB erlaubt keine Datenbankprozeduren, Synonyme oder Synonyme für Sequenzen.

Zum Zeitpunkt der Ausführung der SQL-Anweisung CREATE SYNONYM (create_synonym_statement) muss das Objekt, für das das Synonym in MySQL MaxDB definiert wird, existieren. Der aktuelle Benutzer muss ein Privileg für dieses Objekt besitzen.


create_table_statement (MaxDB: Referenzhandbuch)

create_table_statement

Die SQL-Anweisung CREATE TABLE (create_table_statement) ist in MySQL MaxDB bekannt, jedoch mit einer von Oracle verschiedenen Syntax und Semantik (CREATE TABLE-Anweisung (create_table_statement)).

· Die Angabe von PCTFREE <integer>, PCTUSED <integer>, INITRANS <integer>, MAXTRANS <integer>, TABLESPACE <tablespace> STORAGE <storage clause> und CLUSTER <cluster> besitzt für MySQL MaxDB keine Bedeutung, wird jedoch syntaktisch akzeptiert.

· Die Angabe von DISABLE wird von MySQL MaxDB ignoriert.

· Bei Angabe einer Subquery (subquery) werden von MySQL MaxDB keine NOT NULL-Constraints generiert.

· Jede Zeile einer Tabelle besitzt in Oracle eine eindeutige Adresse, die als ROWID zugreifbar ist und über die die Zeile direkt adressiert werden kann. Diese ROWID existiert auch dann, wenn die Tabelle einen Schlüssel besitzt. MySQL MaxDB besitzt eine Adresse dieser Art nicht, da die Zeilen immer über den Schlüssel adressiert werden.
Um das Oracle-Verhalten besser nachbilden zu können, gibt es die Tabellenoption ROWID, die folgendes bewirkt:
- Die Tabelle erhält implizit die Schlüsselspalte ROWID vom Datentyp RAW(8). Diese Spalte ist normalerweise unsichtbar und kann nur durch die Funktion ROWID selektiert werden.
-Falls die CREATE TABLE-Anweisung eine Schlüsseldefinition (key_definition) enthält, wird implizit ein Index mit dem UNIQUE-Attribut erzeugt, der der Schlüsseldefinition entspricht.

Eine Zeile besitzt auf diese Weise eine ROWID und kann sowohl über diese als auch über den Schlüssel schnell selektiert werden.


create_tablespace_statement (MaxDB: Referenzhandbuch)

create_tablespace_statement

Das Schema-Objekt Tablespace wird von MySQL MaxDB nicht unterstützt. Die SQL-Anweisung CREATE TABLESPACE (create_tablespace_statement) wird dennoch von MySQL MaxDB syntaktisch akzeptiert, hat jedoch keine Auswirkungen.


create_trigger_statement (MaxDB: Referenzhandbuch)

create_trigger_statement

Mit der SQL-Anweisung CREATE TRIGGER (create_trigger_statement) können in MySQL MaxDB ausschließlich die von Oracle als „after row trigger“ bezeichneten Trigger definiert werden.


create_user_statement (MaxDB: Referenzhandbuch)

create_user_statement

Die SQL-Anweisung CREATE USER (create_user_statement) wird in MySQL MaxDB mit eingeschränkter Syntax unterstützt. In der CREATE USER-Anweisung (create_user_statement)akzeptiert MySQL MaxDB nicht die Angabe von IDENTIFIED EXTERNALLY, GLOBALLY AS <external_name>, DEFAULT TABLESPACE <tablespace>, TEMPORARY TABLESPACE <tablespace>, QUOTA und PROFILE <profile>.

Der erzeugte Benutzer besitzt den Status RESOURCE.


create_view_statement (MaxDB: Referenzhandbuch)

create_view_statement

Die SQL-Anweisung CREATE VIEW (create_view_statement) wird in MySQL MaxDB mit eingeschränkter Syntax unterstützt. Für die Syntax der CREATE VIEW-Anweisung (create_view_statement) gibt es in MySQL MaxDB folgende Einschränkungen:

· Die Angabe von FORCE oder NOFORCE wird von MySQL MaxDB nicht akzeptiert.

· Ein für die CHECK OPTION vergebener Constraint-Name (constraint_name) wird nicht im Datenbankkatalog abgelegt. Wenn kein Constraint-Name angegeben ist, wird von MySQL MaxDB kein Name erzeugt.

· View-Tabellen, die von Oracle als änderbar erkannt werden, sind nicht notwendigerweise auch in MySQL MaxDB änderbar. Dies gilt insbesondere für View-Tabellen, die in ihrer Definition Subqueries enthalten.


declare_statement (MaxDB: Referenzhandbuch)

declare_statement

Die Angabe der SQL-Anweisung DECLARE (declare_statement) ist für MySQL MaxDB mit folgender syntaktischer Einschränkung möglich: die Angabe eines PL/SQL-Blocks wird nicht akzeptiert.


declare_table_statement (MaxDB: Referenzhandbuch)

declare_table_statement

Die SQL-Anweisung DECLARE TABLE (declare_table_statement) wird von MySQL MaxDB akzeptiert, hat jedoch für MySQL MaxDB keine Bedeutung.


delete_statement (MaxDB: Referenzhandbuch)

delete_statement

Die SQL-Anweisung DELETE (delete_statement) wird in MySQL MaxDB mit eingeschränkter Syntax unterstützt (DELETE-Anweisung (delete_statement)).

· Bei Angabe von CURRENT OF <cursor> in MySQL MaxDB muss der Ergebnistabelle eine änderbare Tabelle zugrundeliegen.

· Ein Cursor, der durch einen Join oder eine Join-View-Tabelle gebildet wurde, wird in MySQL MaxDB nicht akzeptiert.


describe_statement (MaxDB: Referenzhandbuch)

describe_statement

Die Angabe der SQL-Anweisung DESCRIBE (describe_statement) ist für MySQL MaxDB mit folgender syntaktischer Einschränkung möglich: die Angabe eines PL/SQL-Blocks wird nicht akzeptiert.


drop_cluster_statement (MaxDB: Referenzhandbuch)

drop_cluster_statement

Das Schema-Objekt Cluster wird von MySQL MaxDB nicht unterstützt. Die SQL-Anweisung DROP CLUSTER (drop_cluster_statement) wird daher von MySQL MaxDB nicht akzeptiert.


drop_database_link_statement (MaxDB: Referenzhandbuch)

drop_database_link_statement

Das Schema-Objekt Database-Link wird von MySQL MaxDB nicht unterstützt. Die SQL-Anweisung DROP DATABASE LINK (drop_database_link_statement) wird daher von MySQL MaxDB nicht akzeptiert.


drop_function_statement (MaxDB: Referenzhandbuch)

drop_function_statement

Die SQL-Anweisung DROP FUNCTION (drop_function_statement) wird von MySQL MaxDB nicht akzeptiert.


drop_index_statement (MaxDB: Referenzhandbuch)

drop_index_statement

Die SQL-Anweisung DROP INDEX (drop_index_statement) wird mit folgender Einschränkung von MySQL MaxDB akzeptiert: aufgrund der unterschiedlichen Namensräume für Indizes wird in MySQL MaxDB durch Angabe eines Indexnamens nicht immer eindeutig ein Index identifiziert. In diesem Fall muss explizit die Tabelle angegeben werden, auf die sich der Index bezieht.


drop_procedure_statement (MaxDB: Referenzhandbuch)

drop_procedure_statement

Die SQL-Anweisung DROP PROCEDURE (drop_procedure_statement) wird von MySQL MaxDB nicht akzeptiert.


drop_profile_statement (MaxDB: Referenzhandbuch)

drop_profile_statement

Das Schema-Objekt Profile wird von MySQL MaxDB nicht unterstützt. Die SQL-Anweisung DROP PROFILE (drop_profile_statement) wird daher von MySQL MaxDB nicht akzeptiert


drop_rollback_segment_statement (MaxDB: Referenzhandbuch)

drop_rollback_segment_statement

Das Schema-Objekt Rollback-Segment wird von MySQl MaxDB nicht unterstützt. Die SQL-Anweisung DROP ROLLBACK SEGMENT (drop_rollback_segment_statement) wird daher von MySQl MaxDB nicht akzeptiert.


drop_snapshot_statement (MaxDB: Referenzhandbuch)

drop_snapshot_statement

Das Schema-Objekt Snapshot wird von MySQL MaxDB nicht unterstützt. Die SQL-Anweisung DROP SNAPSHOT (drop_snapshot_statement) wird daher von MySQL MaxDB nicht akzeptiert


drop_snapshot_log_statement (MaxDB: Referenzhandbuch)

drop_snapshot_log_statement

Das Schema-Objekt Snapshot-Log wird von MySQL MaxDB nicht unterstützt. Die SQL-Anweisung DROP SNAPSHOT LOG (drop_snapshot_log_statement) wird daher von MySQL MaxDB nicht akzeptiert.


drop_table_statement (MaxDB: Referenzhandbuch)

drop_table_statement

Die SQL-Anweisung DROP TABLE (alter_table_statement) ist in MySQL MaxDB bekannt, jedoch mit folgenden syntaktischen Einschränkungen:

· Alle auf der Tabelle basierenden Synonyme und View-Tabellen werden in MySQL MaxDB gelöscht.

· Die Angabe von CASCADE CONSTRAINTS hat in MySQL MaxDB keine Wirkung.


drop_tablespace_statement (MaxDB: Referenzhandbuch)

drop_tablespace_statement

Das Schema-Objekt Tablespace wird von MySQL MaxDB nicht unterstützt. Die SQL-Anweisung DROP TABLESPACE (drop_tablespace_statement) wird daher von MySQL MaxDB nicht akzeptiert.


drop_trigger_statement (MaxDB: Referenzhandbuch)

drop_trigger_statement

Aufgrund der unterschiedlichen Namensräume für Trigger wird in MySQL MaxDB durch Angabe eines Triggernamens der Trigger nicht eindeutig identifiziert.

Die SQL-Anweisung DROP TRIGGER (drop_trigger_statement) wird von MySQL MaxDB daher nur mit folgender Einschränkung akzeptiert: es muss explizit die Tabelle angegeben werden, auf die sich der Trigger bezieht.


drop_view_statement (MaxDB: Referenzhandbuch)

drop_view_statement

Mit der SQL-Anweisung DROP VIEW (drop_view_statement) werden in MySQL MaxDB alle auf der View-Tabelle basierenden Synonyme und View-Tabellen gelöscht.


execute_statement (MaxDB: Referenzhandbuch)

execute_statement

Die Angabe der SQL-Anweisung EXECUTE (execute_statement) ist für MySQL MaxDB mit folgender syntaktischer Einschränkung möglich: die Angabe eines PL/SQL-Blocks wird nicht akzeptiert.


explain_plan_statement (MaxDB: Referenzhandbuch)

explain_plan_statement

Die SQL-Anweisung EXPLAIN PLAN (explain_plan_statement) wird von MySQL MaxDB nicht akzeptiert.

Allerdings gibt es eine ähnliche SQL-Anweisung in MySQL MaxDB: EXPLAIN-Anweisung (explain_statement).


grant_statement (MaxDB: Referenzhandbuch)

grant_statement

Die SQL-Anweisung GRANT (grant_statement) ist in MySQL MaxDB bekannt, jedoch mit einem von Oracle verschiedenen Verhalten in folgenden Bereichen (GRANT-Anweisung (grant_statement)).

· Die Vergabe von System-Privilegien wird von MySQL MaxDB nicht akzeptiert.

· Bei Vergabe von Objekt-Privilegien kann in MySQL MaxDB das Schema-Objekt Package nicht angegeben werden.


insert_statement (embedded SQL) (MaxDB: Referenzhandbuch)

insert_statement (embedded SQL)

Die SQL-Anweisung INSERT (insert_statement) wird in MySQL MaxDB mit folgender Einschränkung akzeptiert (INSERT-Anweisung (insert_statement)): die Angabe von Array-Hostvariablen in der WHERE-Klausel wird von MySQL MaxDB nicht akzeptiert.


lock_table_statement (MaxDB: Referenzhandbuch)

lock_table_statement

Die SQL-Anweisung LOCK TABLE (lock_table_statement) wird von MaxDB mit folgenden syntaktischen Einschränkungen akzeptiert: bei Angabe von ROW EXCLUSIVE, SHARE ROW EXCLUSIVE oder EXCLUSIVE wird von MaxDB eine Tabellen-Schreibsperre vergeben. Konkurrierende Anfragen auf der Tabelle sind somit nicht möglich.


noaudit_statement (MaxDB: Referenzhandbuch)

noaudit_statement

Die SQL-Anweisung NOAUDIT (noaudit_statement) wird von MySQL MaxDB nicht akzeptiert.


rename_statement (MaxDB: Referenzhandbuch)

rename_statement

Die SQL-Anweisung RENAME (rename_statement) ist in MySQL MaxDB bekannt, jedoch mit einem von Oracle verschiedenen Verhalten: in MySQL MaxDB können ausschließlich Basistabellen umbenannt werden.


revoke_statement (MaxDB: Referenzhandbuch)

revoke_statement

Die SQL-Anweisung REVOKE (revoke_statement) ist in MySQL MaxDB bekannt, jedoch mit einem von Oracle verschiedenen Verhalten in folgenden Bereichen (REVOKE-Anweisung (revoke_statement)).

· Der Entzug von System-Privilegien wird von MySQL MaxDB nicht akzeptiert.

· Bei Entzug von Objekt-Privilegien kann in MySQL MaxDB das Schema-Objekt Package nicht angegeben werden.


rollback_statement (MaxDB: Referenzhandbuch)

rollback_statement

Die SQL-Anweisung ROLLBACK (rollback_statement) wird in MaxDB mit eingeschränkter Syntax unterstützt (ROLLBACK-Anweisung (rollback_statement)).

· Die Angabe von FORCE wird von MaxDB nicht akzeptiert.

· Bei Angabe von ROLLBACK TO [SAVEPOINT] <savepoint> werden von MaxDB keine Sperren freigegeben.


select_statement (MaxDB: Referenzhandbuch)

select_statement

Die SQL-Anweisung SELECT (select_statement) wird in MySQL MaxDB mit eingeschränkter Syntax unterstützt (SELECT-Anweisung (select_statement)).

· Die Angabe von START WITH <condition> oder CONNECT BY <condition> wird von MySQL MaxDB nicht unterstützt.

· In Oracle zulässige Outer-Joins mit mehr als zwei Tabellen in der FROM-Klausel werden von MySQL MaxDB teilweise abgelehnt.


set_transaction_statement (MaxDB: Referenzhandbuch)

set_transaction_statement

Die SQL-Anweisung SET TRANSACTION (set_transaction_statement) wird von MySQL MaxDB nicht akzeptiert.


truncate_statement (MaxDB: Referenzhandbuch)

truncate_statement

Die SQL-Anweisung TRUNCATE (truncate_statement) wird von MySQL MaxDB nur mit eingeschränkter Syntax unterstützt:

  • Die Anweisung TRUNCATE CLUSTER [<schema>.]<cluster> wird von MySQL MaxDB nicht akzeptiert.
  • Die Syntaxelemente DROP/REUSE STORAGE werden von MySQL MaxDB akzeptiert. Semantisch sind sie jedoch ohne Bedeutung, da sie ein Verhalten fordern, das bei MySQL MaxDB Standard ist.


update_statement (MaxDB: Referenzhandbuch)

update_statement

Die SQL-Anweisung UPDATE (update_statement) wird in MySQL MaxDB mit eingeschränkter Syntax unterstützt (UPDATE-Anweisung (update_statement)).

· Eine Correlated Subquery ist als Subquery (subquery) einer SET UPDATE-Klausel (set_update_clause) in MySQL MaxDB nicht zulässig.

· Bei Angabe von CURRENT OF <cursor> muss in MySQL MaxDB der Ergebnistabelle eine änderbare Tabelle zugrunde liegen. Ein Cursor, der durch einen Join oder eine Join-View-Tabelle gebildet wurde, wird nicht akzeptiert.


Systemtabellen (MaxDB: Referenzhandbuch)

Systemtabellen

Folgende Systemtabellen sind in MySQL MaxDB zwar bekannt, enthalten aber keine Einträge, da die entsprechenden Objekte oder Informationen in MySQL MaxDB nicht existieren:

ALL_ERRORS
ALL_SOURCE
ALL_SNAPSHOTS
ALL_TRIGGER_COLS

DBA_2PC_NEIGHBORS
DBA_2PC_PENDING
DBA_AUDIT_EXISTS
DBA_AUDIT_OBJECT
DBA_AUDIT_SESSION
DBA_AUDIT_STATEMENT
DBA_AUDIT_TRAIL
DBA_BLOCKERS
DBA_CLUSTERS
DBA_CLU_COLUMNS
DBA_DATA_FILES
DBA_DDL_LOCKS
DBA_DML_LOCKS
DBA_ERRORS
DBA_EXP_FILES
DBA_EXP_OBJECTS
DBA_EXTENTS
DBA_LOCKS
DBA_OBJECT_SIZE
DBA_PRIV_AUDIT_OPTS
DBA_PROFILES
DBA_ROLLBACK_SEGS
DBA_SNAPSHOTS
DBA_SNAPSHOT_LOGS
DBA_SOURCE
DBA_STMT_AUDIT_OPTS
DBA_SYS_PRIVS
DBA_TABLESPACES
DBA_TRIGGER_COLS
DBA_TS_QUOTAS

RESOURCE_COST
ROLE_SYS_PRIVS
ROLE_TAB_PRIVS

USER_AUDIT_OBJECT
USER_AUDIT_SESSION
USER_AUDIT_TRAIL
USER_CLUSTERS
USER_CLU_COLUMNS
USER_ERRORS
USER_EXTENTS
USER_OBJECT_SIZE
USER_SNAPSHOTS
USER_SNAPSHOT_LOGS
USER_SOURCE
USER_SYS_PRIVS
USER_TABLESPACES
USER_TRIGGER_COLS
USER_TS_QUOTAS

Folgende Spalten von Systemtabellen enthalten immer einen NULL-Wert, da MySQL MaxDB die Informationen nicht in der notwendigen Form vorliegen:

Systemtabelle(n) | Spalte(n)
ALL_CONSTRAINT, USER_CONSTRAINTS, DBA_CONSTRAINTS | R_CONSTRAINT_NAME
ALL_DEPENDENCIES, USER_DEPENDENCIES, DBA_DEPENDENCIES | REFERENCED_LINK_NAME
ALL_INDEXES, USER_INDEXES, DBA_INDEXES | PREFIX_LENGTH INI_TRANS MAX_TRANS INITIAL_EXTENT NEXT_EXTENT MIN_EXTENT MAX_EXTENTS PCT_INCREASE PCT_FREE BLEVEL LEAF_BLOCKS AVG_LEAF_BLOCKS_PER_KEY AVG_DATA_BLOCKS_PER_KEY CLUSTERING_FACTOR NUM_ROWS SAMPLE_SIZE LAST_ANALYZED DEGREE INSTANCES BUFFER_POOL DUARTION PCT_DIRECT_ACCESS ITYP_OWNER ITYP_NAME PARAMETERS GLOBAL_STATS
ALL_OBJECTS, USER_OBJECTS, DBA_OBJECTS | SUBOBJECT_NAME DATA_OBJECT_ID
ALL_SYNONYMS, USER_SYNONYMS, DBA_SYNONYMS | DB_LINK
ALL_TABLES, USER_TABLES, DBA_TABLES | CLUSTER_NAME IOT_NAME PCT_FREE PCT_USED INI_TRANS MAX_TRANS INITIAL_EXTENT NEXT_EXTENT MIN_EXTENT MAX_EXTENTS PCT_INCREASE FREELISTS FREELIST_GROUPS BLOCKS EMPTY_BLOCKS AVG_SPACE CHAIN_CNT AVG_ROW_LEN AVG_SPACE_FREELIST_BLOCKS NUM_FREELIST_BLOCKS DEGREE INSTANCES IOT_TYPE BUFFER_POOL ROW_MOVEMENT GLOBAL_STATS DUARTION SKIP_CORRUPT MONITORING
ALL_TAB_COLUMNS, USER_TAB_COLUMNS, DBA_TAB_COLUMNS | DATA_TYPE_MOD DATA_TYPE_OWNER LOW_VALUE HIGH_VALUE DENSITY NUM_NULLS NUM_BUCKETS LAST_ANALYZED SAMPLE_SIZE GLOBAL_STATS AVG_COL_LENGTH
ALL_TRIGGERS, USER_TRIGGERS, DBA_TRIGGERS | COLUMN_NAME REFERENCING_NAME WHEN_CLAUSE ACTION_TYPE
ALL_VIEWS, USER_VIEWS, DBA_VIEWS | TYPE_TEXT_LENGTH TYPE_TEXT OID_TEXT_LENGTH OID_TEXT VIEW_TYPE_OWNER VIEW_TYPE
DBA_IND_COLUMNS | COLUMN_EXPRESSION
USER_FREE_SPACE, DBA_FREE_SPACE | RELATIVE_FNO
USER_RESOURCE_LIMITS | RESOURCE_NAME LIMIT
USER_SEGMENTS, DBA_SEGMENTS | BYTES BLOCKS EXTENTS INITIAL_EXTENT NEXT_EXTENT IN_EXTENT MAX_EXTENTS PCT_INCREASE FREELISTS FREELIST_GROUPS BUFFER_POOL RESOURCE_NAME
USER_SYS_PRIVS | PRIVILEGE
USER_USERS, DBA_USERS | ACCOUNT_STATUS LOCK_DATE EXPIRY_DATE PROFILE INITIAL_RSRC_CONSUMER_GROUP EXTERNAL_NAME


Fehlermeldungen (MaxDB: Referenzhandbuch)

Fehlermeldungen

Beim Auftreten einiger Fehler liefert MySQL MaxDB die gleiche Fehlernummer wie Oracle Version 7:

Meldungsnummer | Meldungstext
1403 | Row not found
-1 | Duplicate key in index
-51 | Lock request timeout
-54 | Lock collision
-602 | System error
-942 | Unknown table name
-955 | Duplicate name
-1007 | Parameter is too long
-1008 | Too many or too few host variables for output
-1034 | Serverdb must be restarted
-1400 | Input parameter cannot be NULL value
-1402 | Integrity violation
-1405 | Missing indicator variable
-1452 | Duplicate secondary key
-1556 | Data space full (emergency shutdown)

Bei allen anderen Fehlern liefert MySQL MaxDB die im Handbuch Meldungen beschriebenen Fehlernummern. Diese unterscheiden sich von der Nummer für den entsprechenden Oracle-Fehler.


Meldungen

Sie erhalten eine Liste der Meldungen, die das Datenbanksystem MySQL MaxDB ausgibt: Rück- und Fehlermeldungen des Datenbankkerns, der Datenbankwerkzeuge und des Precompiler mit kurzen Erläuterungen für die mögliche Fehlerursache und Hinweisen zu ihrer Behebung. Jede Komponente verfügt über einen eigenen Nummerkreis.

Rückmeldungen

Rückmeldungen sind Hinweise an den Benutzer. Sie werden auch bei einer syntaktisch korrekten Anfrage oder einem einwandfrei ablaufenden Programm ausgegeben. Die Rückmeldungen sind aufsteigend sortiert (von 0 bis 25999).

Rückmeldungen aus dem Datenbankkern

Von 0 bis 1999

Rückmeldungen des Programms Loader

Von 25000 bis 25999

Fehlermeldungen

Fehlermeldungen zeigen an, dass ein Fehler aufgetreten ist, auf den der Benutzer wie beschrieben reagieren soll. Die Fehlermeldungen sind absteigend sortiert (von –1 bis -28999).

Fehlermeldungen aus dem Datenbankkern/vom Precompiler

Von –1 bis –699

Von –700 bis –899

Von –900 bis –999

Von –1000 bis –1999

Von –2000 bis –2999

Von –3000 bis –3999

Von –4000 bis –4999

Von –5000 bis –5999

Von –6000 bis –6999

Von –7000 bis –7999

Von –8000 bis -9799

Von –9800 bis –9999

Fehlermeldungen des Programms ODBC

Von –22000 bis –22999

Fehlermeldungen des Programms SQL Studio

Von -23000 bis -23999

Fehlermeldungen des Programms Database Manager

Von -24000 bis -24999

Fehlermeldungen des Programms Loader

Von -25000 bis -25999

Fehlermeldungen des liveCache

Von -27000 bis -28999


Nummernkreise (MaxDB: Meldungen)

Nummernkreise

Komponente | Meldungsart | Nummernkreis
Datenbankkern | Rückmeldungen Fehlermeldungen | 0 bis 1999 –1 bis –699 –900 bis –999 –1000 bis –1999 –2000 bis –2999 –3000 bis –3999 –4000 bis –4999 –5000 bis –5999 –6000 bis –6999 –7000 bis –7999 –8000 bis -9799
Precompiler | Fehlermeldungen Fehlermeldungen | –700 bis –899 –9800 bis –9999
ODBC | Fehlermeldungen | –22000 bis –22999
SQL Studio | Fehlermeldungen | -23000 bis -23999
Database Manager | Fehlermeldungen | -24000 bis -24999
Loader | Rückmeldungen Fehlermeldungen | 25000 bis 25999 -25000 bis -25999
liveCache | Fehlermeldungen | -27000 bis -28999


Von -1 bis -699 (MaxDB: Meldungen)

Von -1 bis -699

Fehlermeldungen aus dem Datenbankkern

-1 | Duplicate key in index
-8 | Execution failed, parse again
-20 | Duplicate key
-25 | Duplicate secondary key
-30 | Integrity violation
-32 | View violation
-35 | Referential integrity violated
-36 | Foreign key integrity violation
-40 | Lock collision
-50 | Lock request timeout
-51 | Lock request timeout
-54 | Lock collision
-60 | Work rolled back
-65 | Work rolled back
-70 | Session inactivity timeout (Work rolled back)
-71 | Session terminated by shutdown (Work rolled back)
-75 | Too many SQL statements (Work rolled back)
-101 | SQL statement not available in this DB mode
-102 | SQL statement canceled
-103 | SQL statement not available for this application
-104 | DBM command impossible at this time
-106 | Table unloaded or content deleted
-107 | SQL statement not allowed for this instance
-108 | Table or index dropped or content deleted
-111 | Incompatible incremental backup
-115 | Table is read only
-123 | No more log to save
-126 | Data backup missing (backup history lost)
-530 | Referential integrity violated
-602 | System error


-1: Duplicate key in index (MaxDB: Meldungen)

-1: Duplicate key in index

Erläuterung:

Es gibt bereits eine Tabellenzeile mit dem angegebenen Sekundärschlüssel. Für den Sekundärschlüssel ist UNIQUE spezifiziert.

Benutzerreaktion:

Damit keine Schlüsselkollision auftritt, müssen Sie den Wert des einzufügenden Sekundärschlüssels in der SQL-Anweisung ändern.

Der Fehlertext enthält die Angabe, für welche Spalte oder welchen mehrspaltigen Index die angegebenen Werte bereits existieren.


-8: Execution failed, parse again (MaxDB: Meldungen)

-8: Execution failed, parse again

Erläuterung:

Zwischen Parsen und Ausführen einer Anweisung wurde die Parseidentifikation (parsid) durch Veränderungen im Datenbankkatalog ungültig.

Benutzerreaktion:

Parsen Sie die Anweisung neu.


-20: Duplicate key (MaxDB: Meldungen)

-20: Duplicate key

Erläuterung:

Es gibt bereits eine Tabellenzeile mit dem einzufügenden Schlüssel.

Benutzerreaktion:

Prüfen Sie, ob die bereits existierende Tabellenzeile die gewünschten Werte enthält. Ist das nicht der Fall, prüfen Sie, ob Werte in der bestehenden Tabellenzeile durch die gewünschten ersetzt werden können. Muss eine neue Tabellenzeile eingefügt werden, müssen Sie den Wert des einzufügenden Schlüssels in der SQL-Anweisung ändern, damit keine Schlüsselkollision auftritt.


-25: Duplicate secondary key (MaxDB: Meldungen)

-25: Duplicate secondary key

Erläuterung:

Es gibt bereits eine Tabellenzeile mit dem angegebenen Sekundärschlüssel. Für den Sekundärschlüssel ist UNIQUE spezifiziert.

Benutzerreaktion:

Damit keine Schlüsselkollision auftritt, müssen Sie den Wert des einzufügenden Sekundärschlüssels in der SQL-Anweisung ändern.

Der Fehlertext enthält die Angabe, für welche Spalte oder welchen mehrspaltigen Index die angegebenen Werte bereits existieren.


-30: Integrity violation (MaxDB: Meldungen)

-30: Integrity violation

Erläuterung:

Beim Einfügen oder Ändern würden Integritätsbedingungen verletzt, die bei der Definition der Basistabelle bzw. der View-Tabelle spezifiziert wurden.

Benutzerreaktion:

Der Fehlertext enthält die Angabe, für welche Spalte die Integritätsbedingungen verletzt würden.

Korrigieren Sie den Eingabewert für die entsprechende Spalte.


-32: View violation (MaxDB: Meldungen)

-32: View violation

Erläuterung:

Es wurde eine INSERT- oder UPDATE-Anweisung für eine View-Tabelle eingegeben. Mindestens eine in der SQL-Anweisung angegebene Zeile erfüllt nicht die Bedingungen der Suchbedingungen aller mit WITH CHECK OPTION definierten, zugrundeliegenden View-Tabellen.

Benutzerreaktion:

Lassen Sie sich die Definition der View-Tabelle durch eine QUERY-Anweisung, angewandt auf die Systemtabelle DOMAIN.VIEWDEFS, anzeigen. Die INSERT- oder UPDATE-Anweisung müssen Sie dieser Definition entsprechend ändern.


-35: Referential integrity violated (MaxDB: Meldungen)

-35: Referential integrity violated

Erläuterung:

Eine der folgenden Ursachen kann vorliegen:

1. Bei der INSERT- oder UPDATE-Anweisung in eine Tabelle, die referenzierende Tabelle in einer referentiellen CONSTRAINT-Definition ist, entsteht eine Zeile, die nicht Trefferzeile der CONSTRAINT-Definition ist.

2. Beim Löschen von Zeilen einer referenzierten Tabelle (referenced_table) einer referentiellen CONSTRAINT-Definition mit ON DELETE RESTRICT in der DELETE RULE existiert eine Trefferzeile.

3. Bei der Ausführung einer referentiellen CONSTRAINT-Definition enthält die referenzierte Tabelle (referenced_table) oder referenzierende Tabelle Zeilen, die der CONSTRAINT-Definition widersprechen.

Benutzerreaktion:

...

1. Sie können sich die bei der referentiellen CONSTRAINT-Definition verwendete Definition durch eine QUERY-Anweisung, angewandt auf die Systemtabelle DOMAIN.FOREIGNKEYCOLUMNS, anzeigen lassen. Die INSERT- oder UPDATE-Anweisung müssen Sie dieser Definition entsprechend ändern.

2. Mit Hilfe einer geeigneten QUERY-Anweisung müssen Sie ermitteln, welche Zeile der referenzierenden Tabelle verhindert, dass die gewünschten Zeilen der referenzierten Tabelle (referenced_table) gelöscht werden können.

3. Mit Hilfe einer geeigneten QUERY-Anweisung müssen Sie ermitteln, welche Zeile der referenzierten Tabelle (referenced_table) oder referenzierenden Tabelle der referentiellen CONSTRAINT-Definition widerspricht. Ändern oder löschen Sie diese Zeile, oder korrigieren Sie die CONSTRAINT-Definition.


-36: Foreign key integrity violation (MaxDB: Meldungen)

-36: Foreign key integrity violation

Erläuterung:

Bei der INSERT- oder UPDATE-Anweisung für eine Join-View-Tabelle widersprechen die von den Spalten (referencing column) der referenzierenden Tabelle funktional abhängigen Spaltenwerte den bereits existierenden Spaltenwerten dieser Spalten.

Benutzerreaktion:

Diesen Widerspruch können Sie auflösen, indem Sie die Spaltenwerte bei der INSERT- bzw. UPDATE-Anweisung oder die bereits existierenden Werte ändern.


-40: Lock collision (MaxDB: Meldungen)

-40: Lock collision

Erläuterung:

Bei der Angabe der Option (NOWAIT) in der LOCK-Anweisung oder in der LOCK-Option signalisiert diese Fehlermeldung, dass die Sperranforderung mit den Sperren eines anderen Benutzers kollidiert.

Benutzerreaktion:

Im Dialog können Sie in dieser Situation einen anderen Verarbeitungsvorgang anstoßen, der die gewünschte Sperre nicht voraussetzt.

Alternativ dazu können Sie mit derselben SQL-Anweisung ohne Angabe der Option (NOWAIT) auf die Sperrfreigabe warten.


-50: Lock request timeout (MaxDB: Meldungen)

-50: Lock request timeout

Erläuterung:

Die Sperranforderung oder eine implizit angeforderte Sperre kollidiert mit Sperren eines anderen Benutzers. Die maximale Wartezeit auf die Zuteilung der Sperre (Datenbankparameter REQUEST_TIMEOUT) ist abgelaufen.

Benutzerreaktion:

In einigen Fällen enthält der Fehlertext noch eine genauere Beschreibung des Fehlers.

Sie können die Sperranforderung noch einmal absetzen. Es empfiehlt sich jedoch, die Transaktion mit einer ROLLBACK-Anweisung zurückzusetzen, um eventuelle Deadlock-Situationen aufzulösen.


-51: Lock request timeout (MaxDB: Meldungen)

-51: Lock request timeout

Erläuterung:

Die Sperranforderung oder eine implizit angeforderte Sperre kollidiert mit Sperren eines anderen Benutzers. Die maximale Wartezeit auf die Zuteilung der Sperre (Datenbankparameter REQUEST_TIMEOUT) ist abgelaufen.

Benutzerreaktion:

In einigen Fällen enthält der Fehlertext noch eine genauere Beschreibung des Fehlers.

Sie können die Sperranforderung noch einmal absetzen. Es empfiehlt sich jedoch, die Transaktion mit einer ROLLBACK-Anweisung zurückzusetzen, um eventuelle Deadlock-Situationen aufzulösen.


-54: Lock collision (MaxDB: Meldungen)

-54: Lock collision

Erläuterung:

Bei der Angabe der Option (NOWAIT) in der LOCK-Anweisung oder in der LOCK-Option signalisiert diese Fehlermeldung, dass die Sperranforderung mit den Sperren eines anderen Benutzers kollidiert.

Benutzerreaktion:

...

1. Im Dialog können Sie in dieser Situation einen anderen Verarbeitungsvorgang anstoßen, der die gewünschte Sperre nicht voraussetzt.

2. Alternativ dazu können Sie mit derselben SQL-Anweisung ohne Angabe der Option (NOWAIT) auf die Sperrfreigabe warten.


-60: Work rolled back (MaxDB: Meldungen)

-60: Work rolled back

Erläuterung:

Die Transaktion des Benutzers wurde implizit abgebrochen und durch eine ROLLBACK-Anweisung zurückgesetzt. Dafür kann es folgende Ursachen geben:

1. Der Benutzer hat innerhalb eines bestimmten Zeitintervalls im Datenbanksystem keine Operationen durchgeführt, jedoch Sperren gehalten, auf deren Zuteilung andere Benutzer warten.

2. Die Datenbankinstanz befand sich in einer Deadlock-Situation. Eine Deadlock-Situation ist eine Situation, in der zwei oder mehr Benutzer jeweils Sperren halten und weitere Sperren anfordern, die von den jeweils anderen Benutzern gehalten werden. Im einfachsten Fall mit zwei Benutzern hält der eine Benutzer mindestens eine Sperre und fordert eine andere an. Diese wird aber von einem anderen Benutzer gehalten, der wiederum auf die Sperre wartet, die der erste Benutzer hält. Diese Situation kann nur aufgelöst werden, wenn einer der Benutzer die schon erhaltene Sperre wieder freigibt.

Benutzerreaktion:

In einigen Fällen enthält der Fehlertext noch eine genauere Beschreibung des Fehlers.

In beiden Fällen müssen Sie die Sperranforderungen überprüfen und ggf. ändern. Die letzte Transaktion müssen Sie wiederholen.


-65: Work rolled back (MaxDB: Meldungen)

-65: Work rolled back

Erläuterung:

Die Transaktion des Benutzers wurde implizit abgebrochen und durch eine ROLLBACK-Anweisung zurückgesetzt, weil der Log-Bereich voll ist.

Benutzerreaktion:

Der Fehlertext enthält eine genauere Beschreibung des Fehlers.

Sichern Sie den Log-Bereich (Log-Sicherung).


-70: Session inactivity timeout (Work rolled back) (MaxDB: Meldungen)

-70: Session inactivity timeout (Work rolled back)

Erläuterung:

Die Transaktion des Benutzers wurde implizit abgebrochen und durch eine ROLLBACK-Anweisung zurückgesetzt. Die Datenbanksitzung wurde implizit beendet, weil der Benutzer während des durch den Timeout-Wert bestimmten Zeitintervalls keine Operationen im Datenbanksystem durchgeführt hatte.

Benutzerreaktion:

Wiederholen Sie die CONNECT-Anweisung, eventuell unter Angabe eines größeren Timeout-Wertes.

Überprüfen Sie gegebenenfalls ebenfalls den Wert des Datenbankparameters SESSION_TIMEOUT, und ändern Sie diesen.


-71: Session terminated by shutdown (Work rolled back) (MaxDB: Meldungen)

-71: Session terminated by shutdown (Work rolled back)

Erläuterung:

Die Transaktion des Benutzers wurde implizit abgebrochen und durch eine ROLLBACK-Anweisung zurückgesetzt. Die Datenbanksitzung wurde implizit beendet, weil parallel durch das Datenbankverwaltungssystem ein Shutdown der Datenbankinstanz erzwungen wurde. Um den später durchzuführenden Restart zu beschleunigen, wird durch das Datenbanksystem versucht, offene Transaktionen innerhalb eines kurzen zur Verfügung stehenden Zeitraumes zurückzusetzen und nicht nur abzubrechen.

Benutzerreaktion:

Nachdem die Datenbankinstanz wieder betriebsbereit ist, müssen Sie die CONNECT-Anweisung und die Transaktion wiederholen.


-75: Too many SQL statements (Work rolled back) (MaxDB: Meldungen)

-75: Too many SQL statements (Work rolled back)

Erläuterung:

Die Transaktion des Benutzers wurde implizit abgebrochen und durch eine ROLLBACK-Anweisung zurückgesetzt. Die Datenbanksitzung wurde implizit beendet, weil der Benutzer innerhalb einer Sitzung zu viele SQL-Anweisungen abgesetzt oder zu viele Transaktionen betrieben hat.

Benutzerrreaktion:

Nach einer erneuten CONNECT-Anweisung können Sie die Transaktion wiederholen.


-101: SQL statement not available in this DB mode (MaxDB: Meldungen)

-101: SQL statement not available in this DB mode

Erläuterung

Die auszuführende SQL-Anweisung setzt entweder den Betriebszustand OFFLINE oder ONLINE voraus.

Benutzerreaktion

Stellen Sie den erforderlichen Betriebszustand der Datenbankinstanz her.

Wurde nach einem Systemfehler implizit ein SHUTDOWN durchgeführt, beseitigen Sie den Fehler und starten dann den Datenbankinstanz.


-102: SQL statement canceled (MaxDB: Meldungen)

-102: SQL statement canceled

Erläuterung:

Die aktuelle Ausführung einer SQL-Anweisung wurde durch einen Benutzer abgebrochen.

Benutzerreaktion:

Im Dialogbetrieb ist keine Benutzerreaktion erforderlich. In anderen Fällen sollte die Transaktion durch eine ROLLBACK-Anweisung zurückgesetzt werden.


-103: SQL statement not available for this application (MaxDB: Meldungen)

-103: SQL statement not available for this application

Erläuterung:

Sie haben versucht, eine SQL-Anweisung mit Hilfe einer Anwendung auszuführen, die für diese Anweisung nicht privilegiert ist.

Benutzerreaktion:

Verwenden Sie die korrekte Anwendung bzw. überprüfen Sie die Schreibweise der Anweisung.


-104: DBM command impossible at this time (MaxDB: Meldungen)

-104: DBM command impossible at this time

Erläuterung:

Sie haben versucht, eine Anweisung zur Datenbankverwaltung auszuführen.

Diese Anweisung darf nicht parallel zu einer bereits laufenden Anweisung zur Datenbankverwaltung ausgeführt werden.

Benutzerreaktion:

Führen Sie die Anweisung zu einem späteren Zeitpunkt erneut aus.


-106: Table unloaded or content deleted (MaxDB: Meldungen)

-106: Table unloaded or content deleted

Erläuterung:

Ein Zugriff auf die Tabelle ist zur Zeit nicht möglich. Folgende Ursachen sind möglich:

...

1. Die Tabelle wurde mit Hilfe des TABLEEXTRACT-Kommandos aus der Datenbankinstanz ausgelagert.

2. Ein anderer Benutzer hat gleichzeitig eine DELETE-Anweisung für den größten Teil der Tabelle oder die gesamte Tabelle ausgeführt. Auf die angegebene Tabelle kann daher für eine kurze Zeitspanne nicht zugegriffen werden. Diese Fehlermeldung kann nur auftreten, wenn der aktuelle Benutzer den Isolation-Level 0 verwendet.

Benutzerreaktion:

...

1. Nehmen Sie die Tabelle mit Hilfe des TABLELOAD-Kommandos wieder in den Datenbestand auf.

2. Warten Sie die Abarbeitung der DELETE-Anweisung ab.

Führen Sie nun die SQL-Anweisung aus.


-107: SQL statement not allowed for this instance (MaxDB: Meldungen)

-107: SQL statement not allowed for this instance

Erläuterung:

Die Datenbankinstanz kann diese SQL-Anweisung nicht ausführen.

Benutzerreaktion:

Auf diese SQL-Anweisung muss für diese Datenbankinstanz verzichtet werden.


-108: Table or index dropped or content deleted (MaxDB: Meldungen)

-108: Table or index dropped or content deleted

Erläuterung:

Beim Arbeiten ohne Lesesperren wurde eine Tabelle während der Abarbeitung einer SQL-Anweisung von einem anderen Datenbankbenutzer gelöscht. Die Ausführung der SQL-Anweisung wurde daher abgebrochen.

Benutzerreaktion:

Klären Sie den organisatorischen Fehler in der Benutzerumgebung.


-111: Incompatible incremental backup (MaxDB: Meldungen)

-111: Incompatible incremental backup

Erläuterung:

Die zurückzuladende Datenversion ist nicht die Nachfolgeversion des aktuellen Datenzustandes.

Benutzerreaktion:

Wählen Sie die richtige Datenversion.


-115: Table is read only (MaxDB: Meldungen)

-115: Table is read only

Erläuterung:

Es wurde versucht, eine INSERT-, UPDATE- oder DELETE-Anweisung auszuführen. Für die angegebene Tabelle sind jedoch nur SQL-Anweisungen zum Lesen möglich, weil sie zuvor mit der NOLOG-Option geladen wurde.

Benutzerreaktion:

Den Nur-Lese-Zustand können Sie aufheben. Starten Sie eine Datensicherung mit dem entsprechenden Werkzeug zur Datenbankverwaltung.


-123: No more log to save (MaxDB: Meldungen)

-123: No more log to save

Erläuterung:

Sie haben versucht, den Log-Bereich zu sichern. Das ist nicht möglich und nicht notwendig, da das Datenbanksystem seit der letzten Sicherung des Log-Bereichs keine oder nur sehr wenige Einträge in den Log-Bereich geschrieben hat.

Benutzerreaktion:

Es ist keine Benutzerreaktion notwendig.


-126: Data backup missing (backup history lost) (MaxDB: Meldungen)

-126: Data backup missing (backup history lost)

Erläuterung:

Sie haben versucht, den Log-Bereich durch Starten einer Log-Sicherung zu sichern (interaktive Log-Sicherung oder Aktivieren der automatischen Log-Sicherung). Dies ist im augenblicklichen Betriebszustand nicht erlaubt, da es keine vorausgegangene Datensicherung gibt, auf der ein späteres Wiederherstellen des gesicherten Log-Bereichs aufsetzen kann.

Benutzerreaktion:

Erstellen Sie eine vollständige Datensicherung, um die Sicherungshistorie zu beginnen. Wiederholen Sie dann die gewünschte Log-Sicherung.


-530: Referential integrity violated (MaxDB: Meldungen)

-530: Referential integrity violated

Erläuterung:

Folgende Ursachen sind möglich:

...

1. Bei der INSERT- oder UPDATE-Anweisung in eine Tabelle, die referenzierende Tabelle in einer referentiellen CONSTRAINT-Definition ist, entsteht eine Zeile, die nicht Trefferzeile der CONSTRAINT-Definition ist.

2. Beim Löschen von Zeilen einer referenzierten Tabelle (referenced_table) einer referentiellen CONSTRAINT-Definition mit ON DELETE RESTRICT in der DELETE RULE existiert eine Trefferzeile.

Benutzerreaktion:

...

1. Lassen Sie sich die bei der referentiellen CONSTRAINT-Definition verwendete Definition durch eine QUERY-Anweisung, angewandt auf die Systemtabelle DOMAIN.FOREIGNKEYCOLUMNS, anzeigen. Ändern Sie die INSERT- oder UPDATE-Anweisung entsprechend dieser Definition.

2. Ermitteln Sie mit Hilfe einer geeigneten QUERY-Anweisung, welche Zeile der referenzierenden Tabelle verhindert, dass die gewünschten Zeilen der referenzierten Tabelle (referenced_table) gelöscht werden können.


-602: System error (MaxDB: Meldungen)

-602: System error

Erläuterung:

Der normale Datenbankbetrieb wurde gestört. Möglicherweise ist die Datenbankinstanz nicht mehr konsistent. Eventuell wurde ein implizites SHUTDOWN durchgeführt.

Benutzerreaktion:

Stellen Sie den Betrieb auf der Datenbankinstanz ein, und benachrichtigen Sie den Support.

Stellen Sie den Datenbank-Trace und weitere Porotokolldateien dem Support zur Fehlerverfolgung und -behebung zur Verfügung.


Von -700 bis -899 (MaxDB: Meldungen)

Von -700 bis -899

Fehlermeldungen vom Precompiler

-702 | Missing variable address in SQLDA
-703 | Duplicate FETCH statement with MFETCH option not allowed
-706 | SQL statement too long (buffer overflow)
-707 | Invalid CONNECT statement syntax
-708 | SERVERDB system not available
-709 | CONNECT failed, check SERVERDB
-710 | Missing SELECT PARSID
-711 | Implicit CONNECT: missing user of SERVERDB
-712 | Too many parameters, SQLMAX too small
-715 | Missing username or password for CONNECT
-719 | Unknown LOCALSYSUSER.SYSPROFILE table
-720 | SQLCODE <no> comes from SYSPROFILE command
-721 | Macro not initiated, no SQLCHECK
-724 | Duplicate substructure name
-729 | Source code may be truncated
-730 | Nested comment not closed
-731 | Component name too long
-732 | Index of component out of range
-733 | Variable is declared as a pointer
-734 | Pointer variable not allowed here
-735 | No syntax check for CONNECT command
-740 | Array size mismatch
-743 | Input string too long
-750 | FFETCH or ARRAY-FETCH and FETCH mix not allowed
-751 | Numeric input parameter overflow
-752 | Session already connected
-753 | Output parameter with CONST type
-756 | Different SQLMODEs not allowed
-758 | Include file exists on disk
-759 | Include file produced by user
-760 | Memory allocation failed
-762 | EXEC ORACLE command has been deleted
-763 | Variable not allowed as ARRAY
-767 | Unterminated C string
-768 | Invalid escape value
-769 | Pointer component not allowed
-770 | Macro in FETCH set SQLOPT="-B 0"
-771 | LONG column exists in table definition
-772 | Multibyte char set not allowed
-773 | Datafile open error
-774 | Datafile write error
-775 | Datafile read error
-776 | Datafile close error
-777 | Convertion from UNICODE impossible
-778 | Convertion to UNICODE impossible
-801 | Input parameter cannot be NULL value
-802 | Invalid numeric input parameter value
-804 | Parameter list too long
-805 | Program must be precompiled
-806 | DB session numer not allowed
-807 | Connection down, session released
-808 | Not yet implemented
-809 | Missing indicator variable, output parameter with NULL value
-811 | Numeric output parameter overflow
-812 | Parameter list too short
-813 | SERVERDB must be restarted
-814 | Trace file close error
-815 | Trace file open error
-816 | Trace file write error
-817 | Incompatible data types
-818 | Missing macro parameter initialization
-819 | Parameter in SQL statement not allowed
-820 | Invalid declare statement
-822 | Invalid constant definition
-823 | Integer too large, greater than 32767
-824 | Statement in conflict with COMPATIBLE option
-825 | Duplicate field name in record
-826 | Duplicate statement name
-827 | Duplicate type definition
-828 | Duplicate variable name
-829 | File close error
-830 | File open error
-831 | File read error
-832 | File write error
-833 | Illegal INCLUDE position
-834 | INCLUDEs must not be nested
-835 | INCLUDE file open error
-836 | Invalid C preprocessor command
-837 | Data definition not allowed
-838 | Invalid declarator
-839 | Invalid macro value
-840 | Invalid numeric macro value
-841 | Invalid precompiler option
-842 | Parameter and indicator structures do not match
-843 | Invalid parameter name
-844 | Invalid record name
-845 | Invalid SQL statement
-846 | Invalid statement in section
-847 | Invalid type definition
-848 | Invalid unsigned integer
-849 | Invalid variable definition
-850 | Statement termination expected
-851 | Missing input file name
-852 | Missing program file
-853 | Precompiler syntax check only
-854 | Parameters must be question marks
-855 | SQL variable must be an array
-856 | Invalid loop parameter value
-857 | Missing SERVERDB
-858 | Storage class not allowed
-859 | Number of columns < numer of parameters
-860 | To many constants declared
-870 | Too many type definitions
-871 | Too many variable definitions
-872 | Number of columns > numer of parameters
-873 | Unknown constant name
-874 | Unknown cursor name
-876 | Unknown macro number
-877 | Unknown parameter name
-878 | Unknown record name
-879 | Unknown precompiler statement
-880 | Unknown statement name
-881 | Unknown type name
-882 | Missing user name for CONNECT
-883 | Invalid runtime options
-884 | Missing indicator variabeI
-885 | Variable may be truncated
-886 | DECLARE SECTION BEGIN or END missing
-887 | Too long WHENEVER ACTION
-889 | Input line longer than 512 characters
-890 | Input line longer than right margin
-892 | Variable may overflow
-893 | Too many hostvariables
-894 | Trace parameter structure not allowed
-895 | Whole table may be deleted or updated
-899 | Error unknown


-702: Missing variable address in SQLDA (MaxDB: Meldungen)

-702: Missing variable address in SQLDA

Erläuterung:

Die Adresse einer Programmvariablen wurde in der SQLDA nicht belegt.

Benutzerreaktion:

Schreiben Sie die Adresse in die SQLDA an die Position HOSTVARADDR.


-703: Duplicate FETCH statement for same select in program (MaxDB: Meldungen)

-703: Duplicate FETCH statement for same select in program

Erläuterung:

Bei gesetzter MFETCH-Option darf nur eine FETCH-Anweisung für eine Ergebnistabelle angegeben werden.

Diese FETCH-Anweisung kann in einer Schleife wiederholt ausgeführt werden.

Benutzerreaktion:

Ändern Sie die Anwendung, oder lassen Sie die Anwendung ohne MFETCH-Option laufen.


-706: SQL statement too long (buffer overflow) (MaxDB: Meldungen)

-706: SQL statement too long (buffer overflow)

Erläuterung:

Die SQL-Anweisung passt nicht in den zur Kommunikation zwischen Anwendung und Datenbankinstanz benutzten Puffer.

Benutzerreaktion:

Ändern Sie die Anweisung, oder verteilen Sie die SQL-Anweisung auf zwei oder mehr SQL-Anweisungen.


-707: Invalid CONNECT statement syntax (MaxDB: Meldungen)

-707: Invalid CONNECT statement syntax

Erläuterung:

Die CONNECT-Anweisung ist syntaktisch falsch.

Benutzerreaktion:

Korrigieren Sie die CONNECT-Anweisung.


-708: SERVERDB system not available (MaxDB: Meldungen)

-708: SERVERDB system not available

Erläuterung:

Die Datenbankinstanz existiert zwar, befindet sich jedoch in der Startup- bzw. Shutdown-Phase, so dass zur Zeit keine Verbindung aufgebaut werden kann.

Benutzerreaktion:

Wiederholen Sie den Verbindungsaufbau (CONNECT-Anweisung) zu einem späteren Zeitpunkt.


-709: Connect failed, check SERVERDB (MaxDB: Meldungen)

-709: Connect failed, check SERVERDB

Erläuterung:

Während des Verbindungsaufbaus (CONNECT-Anweisung) wurde ein Fehler festgestellt.

Benutzerreaktion:

...

1. Überprüfen Sie den Datenbanknamen, und korrigieren Sie diesen gegebenenfalls.

2. Überprüfen Sie, ob die Datenbankinstanz im Betriebszustand ONLINE ist. Starten Sie die Datenbankinstanz gegebenenfalls.

3. Wenn die Datenübertragung zur Datenbankinstanz unterbrochen ist, müssen Sie diese wiederaufnehmen.


-710: Missing select PARSID (MaxDB: Meldungen)

-710: Missing select PARSID

Erläuterung:

Die Parseinformationen einer FETCH/CLOSE-Anweisung können keiner Ergebnismenge zugeordnet werden.

Benutzerreaktion:

Verständigen Sie den Support.


-711: Implicit CONNECT: missing user or SERVERDB (MaxDB: Meldungen)

-711: Implicit CONNECT: missing user or SERVERDB

Erläuterung:

Bei der Ausführung eines impliziten CONNECT konnten die Benutzerangaben bzw. der Datenbankname nicht gefunden werden.

Benutzerreaktion:

Legen Sie eine XUSER-Datei an, oder geben Sie die CONNECT-Parameter über die Laufzeitoptionen an.


-712: Too many parameters, SQLMAX too small (MaxDB: Meldungen)

-712: Too many parameters, SQLMAX too small

Erläuterung:

In einem SQLDA-Bereich wurde auf einen SQLVAR-Eintrag zugegriffen, der nicht mehr existiert (maximale Anzahl der SQLVAR-Einträge < Index_des_SQLVAR-Eintrags).

Benutzerreaktion:

Aktualisieren Sie die maximale Anzahl der SQLVAR-Elemente, oder korrigieren Sie den Index.


-715: Missing username or password for connect (MaxDB: Meldungen)

-715: Missing username or password for connect

Erläuterung:

Bei einer CONNECT-Anweisung fehlt die Angabe des Benutzernamens oder Kennwortes; oder es gibt keine XUSER-Datei für ein implizites CONNECT.

Benutzerreaktion:

Geben Sie Benutzername und Kennwort für die CONNECT-Anweisung über Optionen an, oder erstellen Sie eine XUSER-Datei.


-719: Unknown LOCALSYSUSER.SYSPROFILE table (MaxDB: Meldungen)

-719: Unknown LOCALSYSUSER.SYSPROFILE table

Erläuterung:

Beim Einschalten der PROFILE-Option wurde keine SYSPROFILE-Tabelle gefunden.

Benutzerreaktion:

Die Tabelle ist vom LOCALSYSUSER anzulegen, oder Sie starten das Anwenderprogramm ohne PROFILE-Option.


-720: SQLCODE <no> comes from SYSPROFILE command (MaxDB: Meldungen)

-720: SQLCODE <no> comes from SYSPROFILE command

Erläuterung:

Beim Schreiben des SYSPROFILES trat der Fehler <no> auf.

Benutzerreaktion:

Zur Fehleranalyse und -korrektur folgen Sie den unter der entsprechenden Nummer gegebenen Anweisungen.

Sie können das Anwenderprogramm jedoch auch ohne PROFILE-Option starten.


-721: Macro not initiated, no SQLCHECK (MaxDB: Meldungen)

-721: Macro not initiated, no SQLCHECK

Erläuterung:

Es wurde kein SET MACRO durchgeführt. Daher kann die SQL-Anweisung nicht geprüft werden.

Benutzerreaktion:

Stellen Sie sicher, daß SET MACRO im Programmfluß vor der SQL-Anweisung durchgeführt wird.


-724: Duplicate substructure name (MaxDB: Meldungen)

-724: Duplicate substructure name

Erläuterung:

Der für die Suche nach einer SQL-Variablen angegebene Name ist nicht eindeutig, denn er bezeichnet eine Unterstruktur.

Benutzerreaktion:

Geben Sie bei der SQL-Variablen den Name der gesamten Struktur an.


-729: Source code may be truncated (MaxDB: Meldungen)

-729: Source code may be truncated

Erläuterung:

Der Precompiler erkennt nur Text, der sich innerhalb der Zeilenbegrenzer befindet. Die Zeilenbegrenzer sind von der benutzten Programmiersprache abhängig. Die Warnung besagt, dass auch Text außerhalb der Zeilenbegrenzer gefunden worden ist. Dieser wird vom Precompiler nicht verarbeitet.

Benutzerreaktion:

Ist dieser Effekt gewünscht, können Sie die Warnung ignorieren. Ist dieser Effekt nicht gewünscht, schreiben Sie den Text in die nächste Zeile, oder ändern Sie die Zeilenbegrenzer.


-730: Nested comment not closed (MaxDB: Meldungen)

-730: Nested comment not closed

Erläuterung:

Im Quellprogramm werden geschachtelte Kommentare nicht ordnungsgemäß geschlossen.

Benutzerreaktion:

Die Anzahl der öffnenden Kommentarsymbole muß gleich der Anzahl der schließenden Kommentarsymbole sein.


-731: Component name too long (MaxDB: Meldungen)

-731: Component name too long

Erläuterung:

Strukturnamen werden durch die Expansion länger als 18 Bytes.

Benutzerreaktion:

Verkürzen Sie die Strukturnamen in der Tabellendefinition. Falls dies nicht mehr möglich ist, geben Sie die Spaltennamen einzeln an.


-732: Index of component out of (MaxDB: Meldungen)

-732: Index of component out of

Erläuterung:

Der angegebene Index liegt nicht im Wertebereich des Arrays.

Benutzerreaktion:

Geben Sie einen Index an, der innerhalb des Wertebereichs liegt.


-733: Variable is declared as a pointer (MaxDB: Meldungen)

-733: Variable is declared as a pointer

Erläuterung:

Die SQL-Variable wurde im Deklarationsabschnitt als Pointer definiert.

Benutzerreaktion:

Da beim Pointer keine feste Ausdehnung angegeben ist, werden in der nächsten Fehlerzeile der Name der Variablen und die COLLENGTH angegeben. COLLENGTH ist die maximale Ausdehnung der SQL-Pointervariablen. Diese Länge wird beim Konvertieren benötigt.


-734: Pointer variable not allowed here (MaxDB: Meldungen)

-734: Pointer variable not allowed here

Erläuterung:

Bei LONG-Spalten sind als Pointer definierte SQL-Variablen nicht erlaubt, da die maximale Länge der Variablen nicht bekannt ist.

Benutzerreaktion:

Geben Sie die SQL-Variable als CHARACTER ARRAY an.


-735: No syntax check for CONNECT command (MaxDB: Meldungen)

-735: No syntax check for CONNECT command

Erläuterung:

Beim Precompilieren werden CONNECT-Anweisungen, die nicht bereits beim Checklauf zur Anmeldung an die Datenbankinstanz gebraucht werden, nicht auf Syntaxfehler hin untersucht.

Benutzerreaktion:

Achten Sie bei Eingabe der Anweisung besonders auf die richtige Schreibweise.


-740: Array size mismatch (MaxDB: Meldungen)

-740: Array size mismatch

Erläuterung:

Bei Massenanweisungen haben die Parameter unterschiedliche Ausdehnungen.

Benutzerreaktion:

Die kleinste Ausdehnung aller Parameter wird gesetzt. Ist dies nicht gewünscht, müssen Sie alle Ausdehnungen auf den gleichen Wert setzen.


-743: Input string too long (MaxDB: Meldungen)

-743: Input string too long

Erläuterung:

Der Inhalt einer Zeichenkette ist länger, als die Datenbankinstanz aufnehmen kann.

Im SQL-Modus ANSI wird bei Gleitkommazahlen, die abgeschnitten wurden, TRUNCATED als Fehlermeldung ausgegeben.

Benutzerreaktion:

Belegen Sie die Eingabevariable der Länge der Datenbankvariablen entsprechend, oder passen Sie die Variable dem Format in der Datenbank an.

Im SQL-Modus ANSI müssen Sie die Werte der Variablen oder den externe Datentyp ändern.


-750: FFETCH or ARRAY-FETCH and FETCH mix not allo (MaxDB: Meldungen)

-750: FFETCH or ARRAY-FETCH and FETCH mix not allowed

Erläuterung:

ARRAY-FETCH und FETCH-Anweisungen können nicht auf der gleichen Ergebnismenge abgesetzt werden.

Benutzerreaktion:

Geben Sie alle Anweisungen, die sich auf die gleiche Ergebnismenge beziehen, entweder als ARRAY-FETCH oder als FETCH an.


-751: Numeric input parameter overflow (MaxDB: Meldungen)

-751: Numeric input parameter overflow

Erläuterung:

Der numerische Eingabewert ist für die Datenbankinstanz zu groß.

Benutzerreaktion:

Überprüfen Sie die Größe des Eingabewertes und des Wertebereiches der Datenbankinstanz, und ändern Sie diese gegebenenfalls.


-752: Session already connected (MaxDB: Meldungen)

-752: Session already connected

Erläuterung:

Es ist bereits eine Datenbanksitzung mit dieser Nummer eröffnet worden.

Benutzerreaktion:

Schließen Sie die vorherige Datenbanksitzung, oder entfernen Sie das CONNECT aus dem Anwenderprogramm.


-753: Output parameter with CONST type (MaxDB: Meldungen)

-753: Output parameter with CONST type

Erläuterung:

Ein Ausgabeparameter darf in C nicht als CONST-Typ deklariert sein.

Benutzerreaktion:

Deklarieren Sie im Anwendungsprogramm einen anderen Parameter.


-756: Different SQLMODEs not allowed (MaxDB: Meldungen)

-756: Different SQLMODEs not allowed

Erläuterung:

Ein Anwenderprogramm darf nur in einem SQL-Modus laufen.

Benutzerreaktion:

Ändern Sie die CONNECT-Anweisung. Implizite CONNECTS laufen nur im SQL-Modus INTERNAL. Die Angaben aus der XUSER-Datei werden nicht übernommen.


-758: Include file exists on disk (MaxDB: Meldungen)

-758: Include file exists on disk

Erläuterung:

Beim Precompilerlauf wird der Deklarationsabschnitt nicht generiert. Die Datei existiert bereits.

Benutzerreaktion:

Überprüfen Sie, ob es sich um die aktuelle Datei handelt.


-759: Include file produced by user (MaxDB: Meldungen)

-759: Include file produced by user

Erläuterung:

Beim Precompilerlauf wird der Deklarationsabschnitt durch ein CONNECT des Benutzers <user> neu erzeugt.

Benutzerreaktion:

Überprüfen Sie, ob die Tabelle dieses Benutzers die richtige ist.


-760: Memory allocation failed (MaxDB: Meldungen)

-760: Memory allocation failed

Erläuterung:

Der zur Verfügung stehende Arbeitsspeicher ist zu klein oder schreibgeschützt.

Benutzerreaktion:

Untersuchen Sie das Programm auf den möglichen Programmierfehler hin. Vergrößern Sie den Arbeitsspeicher, oder verständigen Sie den Support.


-762: EXEC ORACLE command has been deleted (MaxDB: Meldungen)

-762: EXEC ORACLE command has been deleted

Erläuterung:

Alle mit EXEC ORACLE eingeleiteten Anweisungen werden durch den Precompiler entfernt.

Benutzerreaktion:

Das ist eine Warnung, die Hinweise zu möglichen Fehlern des Compilers liefern kann.


-763: Variable not allowed as ARRAY (MaxDB: Meldungen)

-763: Variable not allowed as ARRAY

Erläuterung:

In einer ARRAY-Anweisung werden skalare Hostvariablen verwendet.

Benutzerreaktion:

Verwenden Sie statt skalarer Variablen nur Arrays, oder verzichten Sie auf die ARRAY-Anweisung.


-767: Unterminated C string (MaxDB: Meldungen)

-767: Unterminated C string

Erläuterung:

Es fehlt die Null-Byte-Begrenzung.

Benutzerreaktion:

Fügen Sie ein Null-Byte hinzu.


-768: Invalid escape value (MaxDB: Meldungen)

-768: Invalid escape value

Erläuterung:

Die Eingabehostvariable ist länger als ein Zeichen.

Benutzerreaktion:

Verwenden Sie eine korrekte Hostvariable.


-769: Pointer component not allowed (MaxDB: Meldungen)

-769: Pointer component not allowed

Erläuterung:

Innerhalb von Strukturen sind keine Pointer erlaubt.

Benutzerreaktion:

Geben Sie Komponenten nicht als Pointer an.


-770: Macro in FETCH set SQLOPT="-B 0" (MaxDB: Meldungen)

-770: Macro in FETCH set SQLOPT="-B 0"

Erläuterung:

FETCH-Anweisungen werden, wenn möglich, als ARRAY-Anweisung ausgeführt. Werden in der FETCH-Anweisung Makros verwendet, können Fehler auftreten und Sätze verlorengehen.

Benutzerreaktion:

Werden Makros in FETCH-Anweisungen verwendet, setzen Sie die Laufzeit-Option MFETCH(0). Sie verhindert die Ausführung der FETCH-Anweisungen als ARRAY-Anweisungen.


-771: LONG column exists in table definition (MaxDB: Meldungen)

-771: LONG column exists in table definition

Erläuterung:

In der Tabelle, aus der die Hostvariablen generiert werden, befindet sich eine LONG-Spalte.

Benutzerreaktion:

Sie können die zu dieser Spalte erzeugte Hostvariable verändern.


-772: Multibyte char set not allowed (MaxDB: Meldungen)

-772: Multibyte char set not allowed

Erläuterung:

Die CONNECT-Anweisung erhielt eine unbekannte Multibyte-Angabe.

Benutzerreaktion:

Korrigieren Sie die CONNECT-Anweisung.


-773: Datafile open error (MaxDB: Meldungen)

-773: Datafile open error

Erläuterung:

Beim Öffnen einer Datendatei zur Bearbeitung von LONG-Spalten trat ein Fehler auf.

Benutzerreaktion:

Nutzen Sie das Trace-Protokoll *.pct, um herauszufinden, in welcher Spalte dieser Fehler auftrat. Überprüfen Sie anschließend die Datendatei.


-774: Datafile write error (MaxDB: Meldungen)

-774: Datafile write error

Erläuterung:

Beim Schreiben einer Datendatei zur Bearbeitung von LONG-Spalten trat ein Fehler auf.

Benutzerreaktion:

Nutzen Sie das Trace-Protokoll *.pct, um herauszufinden, in welcher Spalte dieser Fehler auftrat. Überprüfen Sie anschließend die Datendatei.


-775: Datafile read error (MaxDB: Meldungen)

-775: Datafile read error

Erläuterung:

Beim Lesen einer Datendatei zur Bearbeitung von LONG-Spalten trat ein Fehler auf.

Benutzerreaktion:

Nutzen Sie das Trace-Protokoll *.pct, um herauszufinden, in welcher Spalte dieser Fehler auftrat. Überprüfen Sie anschließend die Datendatei.


-776: Datafile close error (MaxDB: Meldungen)

-776: Datafile close error

Erläuterung:

Beim Schließen einer Datendatei zur Bearbeitung von LONG-Spalten trat ein Fehler auf.

Benutzerreaktion:

Nutzen Sie das Trace-Protokoll *.pct, um herauszufinden, in welcher Spalte dieser Fehler auftrat. Überprüfen Sie anschließend die Datendatei.


-777: Conversion from UNICODE impossible (MaxDB: Meldungen)

-777: Conversion from UNICODE impossible

Erläuterung:

Bei der Konvertierung von UNICODE-Daten in CHAR-Daten trat ein Fehler auf.

Benutzerreaktion:

Überprüfen Sie, ob solch eine Konvertierung erwünscht ist. Eventuell müssen Sie die Deklaration der Hostvariablen für die CHAR-Daten verändern.


-778: Conversion to UNICODE impossible (MaxDB: Meldungen)

-778: Conversion to UNICODE impossible

Erläuterung:

Bei der Konvertierung von CHAR-Daten in UNICODE-Daten trat ein Fehler auf.

Benutzerreaktion:

Überprüfen Sie, ob solch eine Konvertierung erwünscht ist. Eventuell müssen Sie die Deklaration der Hostvariablen für die CHAR-Daten verändern.


-801: Input parameter cannot be NULL value (MaxDB: Meldungen)

-801: Input parameter cannot be NULL value

Erläuterung:

Der Wert eines Eingabeparameters darf kein NULL-Wert sein, denn die Spalte darf keine NULL-Werte enthalten.

Benutzerreaktion:

Ändern Sie das Programm, oder ändern Sie die Spaltendefinition in der CREATE TABLE-Anweisung.


-802: Invalid numeric input parameter value (MaxDB: Meldungen)

-802: Invalid numeric input parameter value

Erläuterung:

Der eingegebene Wert kann nicht konvertiert werden.

Benutzerreaktion:

Der Wert muss in einer zulässigen Schreibweise angegeben werden.


-804: Parameter list too long (MaxDB: Meldungen)

-804: Parameter list too long

Erläuterung:

In einer Anweisung sind mehr Parameter angegeben worden, als in einer zugehörigen EXECUTE-Anweisung erlaubt.

Benutzerreaktion:

Verändern Sie die Anzahl der Parameter, so dass diese den Angaben in der Spaltenliste entspricht.


-805: Program must be precompiled (MaxDB: Meldungen)

-805: Program must be precompiled

Erläuterung:

Die allgemeinen Typdefinitionen des Precompiler-Laufzeitsystems oder der Include-Dateien stimmen nicht mehr mit den Typen des Precompilers überein.

Benutzerreaktion:

Überprüfen Sie die Versionsnummern des Precompilers, des Precompiler-Laufzeitsystems und der Include-Dateien. Eventuell müssen Sie neu precompilieren.


-806: DB session number not allowed (MaxDB: Meldungen)

-806: DB session number not allowed

Erläuterung:

Die angegebene Datenbanksitzungsnummer ist nicht zulässig.

Benutzerreaktion:

Tragen Sie in die Anwendung eine Datenbanksitzungsnummer zwischen 1 und 8 ein.


-807: Connection down, session released (MaxDB: Meldungen)

-807: Connection down, session released

Erläuterung:

Alle Datenbankverbindungen wurden mit RELEASE abgeschlossen.

Benutzerreaktion:

Bauen Sie eine neue Verbindung mit CONNECT auf.


-808: Not yet implemented (MaxDB: Meldungen)

-808: Not yet implemented

Erläuterung:

Die Funktion ist noch nicht implementiert.

Benutzerreaktion:

Bitte verfolgen Sie die Releaseinformationen.


-809: Missing indicator variable, output parameter with NULL val (MaxDB: Meldungen)

-809: Missing indicator variable, output parameter with NULL value

Erläuterung:

Die zur Rückgabe eines NULL-Werts an die SQL-Variable notwendige Indikatorvariable fehlt.

Benutzerreaktion:

Geben Sie bei dem Parameter die Indikatorvariable an.


-811: Numeric output parameter overflow (MaxDB: Meldungen)

-811: Numeric output parameter overflow

Erläuterung:

Ein Wert des Datenbanksystems ist für die SQL-Variable bzw. den Parameter zu groß.

Benutzerreaktion:

Vergrößern Sie den Wertebereich der SQL-Variablen bzw. des Parameters.


-812: Parameter list too short (MaxDB: Meldungen)

-812: Parameter list too short

Erläuterung:

In einer Anweisung sind weniger Parameter angegeben worden, als in einer zugehörigen EXECUTE-Anweisung gebraucht werden.

Benutzerreaktion:

Verändern Sie die Anzahl der Parameter, so dass diese den Angaben in der Spaltenliste entspricht.


-813: SERVERDB must be restarted (MaxDB: Meldungen)

-813: SERVERDB must be restarted

Erläuterung:

Das Datenbanksystem läuft nicht, oder es wurde ein falscher Datenbankname im Programm angegeben.

Benutzerreaktion:

Der Datenbankadministrator muss die Datenbankinstanz starten, oder der Anwender muss das Programm bzw. die XUSER-Datei ändern.


-814: Trace file close error (MaxDB: Meldungen)

-814: Trace file close error

Erläuterung:

Das Traceprotokoll konnte nicht geschlossen werden. Der Fehler im Programm wurde ignoriert.

Benutzerreaktion:

Ändern Sie die Dateiattribute (-eigenschaften). Eine detaillierte Fehlerbeschreibung finden Sie in der Datei appldiag .


-815: Trace file open error (MaxDB: Meldungen)

-815: Trace file open error

Erläuterung:

Das Traceprotokoll konnte nicht geöffnet werden. Das Schreiben des Traceprotokolles wurde abgebrochen. Die Anweisung, in der der Fehler auftrat, wurde nicht ausgeführt.

Benutzerreaktion:

Überprüfen Sie die Dateiattribute, und ändern Sie diese gegebenenfalls. Eine detaillierte Fehlerbeschreibung finden Sie in der Datei appldiag .


-816: Trace file write error (MaxDB: Meldungen)

-816: Trace file write error

Erläuterung:

Beim Schreiben des Traceprotokolles trat ein Fehler auf. Das Schreiben des Traceprotokolles wurde abgebrochen. Die Anweisung, in der der Fehler auftrat, wurde nicht ausgeführt.

Benutzerreaktion:

Überprüfen Sie die Dateiattribute und ändern Sie diese gegebenenfalls. Eine detaillierte Fehlerbeschreibung finden Sie in der Datei appldiag .


-817: Incompatible data types (MaxDB: Meldungen)

-817: Incompatible data types

Erläuterung:

Der Datentyp der SQL-Variablen bzw. des Parameters und der Datentyp des Datenbanksystems sind nicht verträglich.

Benutzerreaktion:

Passen Sie den Datentyp der SQL-Variablen bzw. des Parameters an den Datentyp der Tabellenspalte des Datenbanksystems an.

Tritt diese Meldung beim Precompilieren auf, und sind die Datentypen doch verträglich, ist die Precompilation mit der Option NOCHECK durchzuführen.


-818: Missing macro parameter initialization (MaxDB: Meldungen)

-818: Missing macro parameter initialization

Erläuterung:

Das Makro wurde nicht initialisiert.

Benutzerreaktion:

Fügen Sie die SQL-Anweisung SET MACRO in die Anwendung ein.


-819: Paramter in SQL statement not allowed (MaxDB: Meldungen)

-819: Paramter in SQL statement not allowed

Erläuterung:

Es ist nur eine SQL-Anweisung ohne Parameterangaben erlaubt. Entweder wurde bei einem EXECUTE eine SQL-Anweisung mit Parametern, aber ohne USING-Klausel übergeben, oder es liegt ein Fehler in der Parameterliste vor.

Benutzerreaktion:

Fügen Sie die USING-Klausel hinzu, verwenden Sie eine SQL-Anweisung ohne Parameter, oder korrigieren Sie die Parameterliste.


-820: Invalid declare statement (MaxDB: Meldungen)

-820: Invalid declare statement

Erläuterung:

In der Anweisung DECLARE CURSOR wurde das Schlüsselwort FOR nicht gefunden.

Benutzerreaktion:

Fügen Sie das Schlüsselwort FOR in die Anweisung DECLARE CURSOR ein.


-822: Invalid constant definition (MaxDB: Meldungen)

-822: Invalid constant definition

Erläuterung:

Die Konstantendefinition ist falsch.

Benutzerreaktion:

Korrigieren Sie die Konstantendefinition innerhalb des Deklarationsabschnitts.


-823: Integer too large, greater than 32767 (MaxDB: Meldungen)

-823: Integer too large, greater than 32767

Erläuterung:

Die Konstante darf nicht größer als 32767 (2 Bytes) sein.

Benutzerreaktion:

Wählen Sie einen kleineren Konstantenwert.


-824: Statement in conflict with COMPATIBLE option (MaxDB: Meldungen)

-824: Statement in conflict with COMPATIBLE option

Erläuterung:

Die Option COMPATIBLE ist gesetzt, und eine SQL-Arrayanweisung wurde mit dem Schlüsselwort FOR angegeben. Die Option COMPATIBLE wurde in Verbindung mit Arrayanweisungen verwendet. Arrayanweisungen werden erst ab Release 3.1 unterstützt.

Benutzerreaktion:

Entfernen Sie die COMPATIBLE-Option, oder ändern Sie die Arrayanweisung.


-825: Duplicate field name in record (MaxDB: Meldungen)

-825: Duplicate field name in record

Erläuterung:

In einer SQL-Recorddefinition wird ein Name zweimal zur Benennung von Komponenten verwendet.

Benutzerreaktion:

Benennen Sie eine der Recordkomponenten um.


-826: Duplicate statement name (MaxDB: Meldungen)

-826: Duplicate statement name

Erläuterung:

Der Name wurde bereits für eine Anweisung verwendet.

Benutzerreaktion:

Benennen Sie die Anweisung um.


-827: Duplicate type definition (MaxDB: Meldungen)

-827: Duplicate type definition

Erläuterung:

Der Name wurde bereits für eine SQL-Typdefinition verwendet.

Benutzerreaktion:

Benennen Sie den SQL-Typ um.


-828: Duplicate variable name (MaxDB: Meldungen)

-828: Duplicate variable name

Erläuterung:

Der Name wurde bereits für eine SQL-Variable verwendet.

Benutzerreaktion:

Benennen Sie die SQL-Variable um.


-829: File close error (MaxDB: Meldungen)

-829: File close error

Erläuterung:

Beim Schließen einer Datei trat ein Fehler auf. Es handelt sich um einen Geräte- oder Systemfehler.

Benutzerreaktion:

Versuchen Sie noch einmal, die Datei zu schließen. Eine detaillierte Fehlerbeschreibung finden Sie in der Datei appldiag.


-830: File open error (MaxDB: Meldungen)

-830: File open error

Erläuterung:

Eine Datei konnte nicht geöffnet werden.

Benutzerreaktion:

Überprüfen Sie, ob die Datei existiert bzw. ob der Dateiname richtig angegeben wurde. Eine detaillierte Fehlerbeschreibung finden Sie in der Datei appldiag.


-831: File read error (MaxDB: Meldungen)

-831: File read error

Erläuterung:

Eine Datei konnte nicht gelesen werden. Eventuell handelt es sich um einen Gerätefehler.

Benutzerreaktion:

Überprüfen Sie, ob die Datei existiert bzw. ob der Dateiname richtig angegeben wurde. Eine detaillierte Fehlerbeschreibung finden Sie in der Datei appldiag.


-832: File write error (MaxDB: Meldungen)

-832: File write error

Erläuterung:

Eine Datei konnte nicht geschrieben werden. Eventuell handelt es sich um einen Gerätefehler.

Benutzerreaktion:

Überprüfen Sie, ob die Datei existiert bzw. ob der Dateiname richtig angegeben wurde. Eine detaillierte Fehlerbeschreibung finden Sie in der Datei appldiag.


-833: Illegal INCLUDE position (MaxDB: Meldungen)

-833: Illegal INCLUDE position

Erläuterung:

Die INCLUDE-Anweisung steht im Modul an einer unzulässigen Stelle.

Benutzerreaktion:

Setzen Sie die INCLUDE-Anweisung an die richtige Stelle.


-834: INCLUDEs must not be nested (MaxDB: Meldungen)

-834: INCLUDEs must not be nested

Erläuterung:

Innerhalb einer INCLUDE-Datei wurde eine weitere INCLUDE-Anweisung gefunden.

Benutzerreaktion:

Entfernen Sie die innere INCLUDE-Anweisung.


-835: INCLUDE file open error (MaxDB: Meldungen)

-835: INCLUDE file open error

Erläuterung:

Die INCLUDE-Datei konnte nicht geöffnet werden.

Benutzerreaktion:

Überprüfen Sie, ob die Datei existiert bzw. ob der Dateiname richtig angegeben wurde. Eine detaillierte Fehlerbeschreibung finden Sie in der Datei appldiag.


-836: Invalid C preprocessor command (MaxDB: Meldungen)

-836: Invalid C preprocessor command

Erläuterung:

Die C-Preprocessor Kommandozeile ist falsch.

Benutzerreaktion:

Korrigieren Sie das Kommando den C-Regeln entsprechend.


-837: Data definition not allowed (MaxDB: Meldungen)

-837: Data definition not allowed

Erläuterung:

Der SQL-Datentyp ist syntaktisch falsch oder unzulässig.

Benutzerreaktion:

Korrigieren Sie die Datendefinition, oder konstruieren Sie eine zulässige Alternative.


-838: Invalid declarator (MaxDB: Meldungen)

-838: Invalid declarator

Erläuterung:

Der Deklarator ist ungültig.

Benutzerreaktion:

Korrigieren Sie den Deklarator im Deklarationsabschnitt.


-839: Invalid macro value (MaxDB: Meldungen)

-839: Invalid macro value

Erläuterung:

Bei der Substitution des Makros trat ein Fehler auf.

Benutzerreaktion:

Geben Sie den Makrowert der Syntax entsprechend an.


-840: Invalid numeric macro value (MaxDB: Meldungen)

-840: Invalid numeric macro value

Erläuterung:

Die Makronummer ist unzulässig.

Benutzerreaktion:

Geben Sie für das Makro eine Nummer zwischen 1 und 128 an.


-841: Invalid precompiler option (MaxDB: Meldungen)

-841: Invalid precompiler option

Erläuterung:

Eine Precompiler-Option ist falsch oder unbekannt.

Benutzeraktion:

Eine detaillierte Fehlerbeschreibung finden Sie im Precompiler-Protokoll oder in der Datei SQLERROR. Überprüfen Sie die Optionen, und geben Sie diese korrekt an.


-842: Parameter and indicator do not match (MaxDB: Meldungen)

-842: Parameter and indicator do not match

Erläuterung:

Parameter und Indikatoren sind mit unterschiedlichen Typarten (Record - Skalar) definiert. Zulässige Kombinationen von SQL-Variablen mit Indikatorvariablen sind Record - Record, Record - Integerarray und Skalar - Skalar.

Benutzerreaktion:

Verwenden Sie Indikatorvariablen einer anderen Typart.


-843: Invalid parameter name (MaxDB: Meldungen)

-843: Invalid parameter name

Erläuterung:

Der Parametername ist kein Bezeichner.

Benutzerreaktion:

Ändern Sie den Namen entsprechend der Notation für Bezeichner.


-844: Invalid record name (MaxDB: Meldungen)

-844: Invalid record name

Erläuterung:

Der Recordname ist ungültig oder unbekannt.

Benutzerreaktion:

Deklarieren Sie den Record, oder verwenden Sie eine andere SQL-Variable.


-845: Invalid SQL statement (MaxDB: Meldungen)

-845: Invalid SQL statement

Erläuterung:

Die SQL-Anweisung ist ungültig oder unbekannt.

Benutzerreaktion:

Korrigieren Sie die SQL-Anweisung, oder verwenden Sie eine andere SQL-Anweisung.


-846: Invalid statement in section (MaxDB: Meldungen)

-846: Invalid statement in section

Erläuterung:

Eine Anweisung in der Sektion ist ungültig.

Benutzerreaktion:

Korrigieren Sie die Anweisung, oder schreiben Sie eine andere Anweisung in die Sektion.


-847: Invalid type definition (MaxDB: Meldungen)

-847: Invalid type definition

Erläuterung:

Die Typdefinition bzw. Klausel ist ungültig oder nicht erlaubt.

Benutzerreaktion:

Korrigieren Sie die Definition bzw. Klausel, oder entfernen Sie die Definition bzw. Klausel aus dem Deklarationsabschnitt.


-848: Invalid unsigned integer (MaxDB: Meldungen)

-848: Invalid unsigned integer

Erläuterung:

Es wurde eine vorzeichenlose ganze Zahl erwartet, jedoch nicht gefunden.

Benutzerreaktion:

Korrigieren Sie die SQL-Anweisung.


-849: Invalid data definition (MaxDB: Meldungen)

-849: Invalid data definition

Erläuterung:

Die SQL-Variablen- bzw. Datendefinition ist ungültig oder nicht erlaubt. Die Variablendefinition ist als SQL-Variable nicht bekannt.

Benutzerreaktion:

Vereinbaren oder korrigieren Sie die Daten bzw. den Namen der SQL-Variablen im Deklarationsabschnitt.


-850: Statement termination expected (MaxDB: Meldungen)

-850: Statement termination expected

Erläuterung:

Bei der vorhergehenden SQL-Anweisung fehlt das Endesymbol. Es wird vom Precompiler gesetzt.

Benutzerreaktion:

Falls keine sonstigen Nebeneffekte auftreten, fügen Sie das Endesymbol in die Anweisung ein.


-851: Missing input file name (MaxDB: Meldungen)

-851: Missing input file name

Erläuterung:

Für eine INCLUDE-Datei wurde ein unbekannter Name angegeben.

Benutzerreaktion:

Überprüfen Sie, ob die Datei existiert bzw. ob der Dateiname richtig angegeben wurde.


-852: Missing program file (MaxDB: Meldungen)

-852: Missing program file

Erläuterung:

Die Quelldatei ist unbekannt.

Benutzerreaktion:

Überprüfen Sie, ob die Datei existiert bzw. ob der Dateiname richtig angegeben wurde.


-853: Precompiler syntax check only (MaxDB: Meldungen)

-853: Precompiler syntax check only

Erläuterung:

Bei Angabe der Precompiler-Option CHECK konnte diese Anweisung nur für den Precompiler-Lauf syntaktisch geprüft werden. Es wurden keine Einträge in den Datenbankkatalog der Datenbankinstanz vorgenommen.

Benutzerreaktion:

Um Informationen über eventuell vorhandene Fehler zu erhalten, müssen Sie die Anwendung mit der Option TRACE laufen lassen.


-854: Parameters must be question marks (MaxDB: Meldungen)

-854: Parameters must be question marks

Erläuterung:

In PREPARE-Anweisungen dürfen nur Fragezeichen als Parameter angegeben werden.

Benutzerreaktion:

Ersetzen Sie die SQL-Variable durch ein Fragezeichen.


-855: SQL variable must be an array (MaxDB: Meldungen)

-855: SQL variable must be an array

Erläuterung:

In einer SQL-Array-Anweisung müssen die SQL-Variablen Array-Strukturen sein.

Benutzerreaktion:

Definieren Sie die SQL-Variable korrekt, und geben Sie diese richtig an.


-856: Invalid loop parameter value (MaxDB: Meldungen)

-856: Invalid loop parameter value

Erläuterung:

In einer SQL-Array-Anweisung ist der Wert des Parameters LOOP PARAMETER auf kleiner gleich 0 gesetzt.

Benutzerreaktion:

Belegen Sie LOOP PARAMETER mit einem Wert > 0.


-857: Missing SERVERDB (MaxDB: Meldungen)

-857: Missing SERVERDB

Erläuterung:

Für die zweite bzw. jede weitere Datenbankverbindung wurde keine SET SERVERDB-Anweisung angegeben.

Benutzererreaktion:

Geben Sie SET SERVERDB-Anweisung vor der CONNECT-Anweisung oder in der XUSER-Datei an.


-858: Storage class not allowed (MaxDB: Meldungen)

-858: Storage class not allowed

Erläuterung:

Diese C-Speicherklasse ist nicht erlaubt.

Benutzerreaktion:

Wählen Sie eine andere Speicherklasse.


-859: Number of columns < number_of_parameters (MaxDB: Meldungen)

-859: Number of columns < number_of_parameters

Erläuterung:

In der Anweisung wurden mehr SQL-Variablen angegeben, als Spalten in der Tabelle existieren.

Benutzerreaktion:

Falls dies nicht gewünscht wird, müssen Sie entweder in der Tabelle zusätzliche Spalten definieren oder die Anzahl der SQL-Variablen reduzieren.


-860: Too many constants declared (MaxDB: Meldungen)

-860: Too many constants declared

Erläuterung:

Es wurden zu viele SQL-Konstanten definiert.

Benutzerreaktion:

Die Datenbankanwendung sollte modularisiert werden. Die maximale Anzahl der Konstanten beträgt 100.


-870: Too many type definitions (MaxDB: Meldungen)

-870: Too many type definitions

Erläuterung:

Die Anzahl der Typdefinitionen ist zu groß.

Benutzerreaktion:

Verteilen Sie die SQL-Anweisungen auf mehrere Module, oder reduzieren Sie die Anzahl der Typdefinitionen. Die maximale Anzahl beträgt 500.


-871: Too many variable definitions (MaxDB: Meldungen)

-871: Too many variable definitions

Erläuterung:

Die Anzahl der SQL-Variablendefinitionen ist zu groß.

Benutzerreaktion:

Verteilen Sie die SQL-Anweisungen auf mehrere Module, oder reduzieren Sie die Anzahl der SQL-Variablendeklarationen. Die maximale Anzahl beträgt 10000.


-872: Number of columns > number of parameters (MaxDB: Meldungen)

-872: Number of columns > number of parameters

Erläuterung:

In der Anweisung wurden weniger SQL-Variablen angegeben, als Spalten in der Tabelle existieren.

Benutzerreaktion:

Falls dies nicht gewünscht wird, fügen Sie entweder SQL-Variablen hinzu, oder reduzieren Sie in der Tabelle die Anzahl der Spalten.


-873: Unknown constant name (MaxDB: Meldungen)

-873: Unknown constant name

Erläuterung:

Der Konstantenname ist unbekannt.

Benutzerreaktion:

Korrigieren oder deklarieren Sie den Namen.


-874: Unknown cursor name (MaxDB: Meldungen)

-874: Unknown cursor name

Erläuterung:

Der Cursorname ist unbekannt.

Benutzerreaktion:

Korrigieren Sie den Namen, oder definieren Sie einen Cursor.


-876: Unknown macro number (MaxDB: Meldungen)

-876: Unknown macro number

Erläuterung:

Die Makronummer ist unbekannt. Die Anweisung SET MACRO wurde für die angegebene Makronummer nicht ausgeführt.

Benutzerreaktion:

Setzen Sie die korrekte Nummer ein, oder definieren Sie ein entsprechendes Makro.


-877: Unknown parameter name (MaxDB: Meldungen)

-877: Unknown parameter name

Erläuterung:

Der Parametername ist unbekannt.

Benutzerreaktion:

Korrigieren Sie den Namen, oder deklarieren Sie einen Indikator.


-878: Unknown record name (MaxDB: Meldungen)

-878: Unknown record name

Erläuterung:

Der Recordname ist unbekannt.

Benutzerreaktion:

Korrigieren Sie den Namen, oder deklarieren Sie einen Record.


-879: Unknown precompiler statement (MaxDB: Meldungen)

-879: Unknown precompiler statement

Erläuterung:

Die Precompiler-Anweisung ist unbekannt oder falsch.

Benutzerreaktion:

Nutzen Sie diese Precompiler-Anweisung nicht, oder korrigieren Sie diese.


-880: Unknown statement name (MaxDB: Meldungen)

-880: Unknown statement name

Erläuterung:

Der Anweisungsname ist unbekannt.

Benutzerreaktion:

Verwenden Sie diese PREPARE-Anweisung nicht, oder korrigieren Sie diese.


-881: Unknown type name (MaxDB: Meldungen)

-881: Unknown type name

Erläuterung:

Die Typdefinition ist unbekannt.

Benutzerreaktion:

Korrigieren Sie den Typnamen, oder definieren Sie einen Typ.


-882: Missing user name for connect (MaxDB: Meldungen)

-882: Missing user name for connect

Erläuterung:

Für ein durch die Precompiler-Option CHECK eingeleitetes implizites CONNECT wurde keine Benutzer/Kennwort-Kombination gefunden.

Benutzerreaktion:

Schreiben Sie die CONNECT-Anweisung statisch als erste SQL-Anweisung in das Programm, oder verwenden Sie die Option USER oder erstellen Sie eine XUSER-Datei für ein implizites CONNECT.


-883: Invalid runtime options (MaxDB: Meldungen)

-883: Invalid runtime options

Erläuterung:

Entweder sind die Precompiler- oder Laufzeitoptionen fehlerhaft.

Benutzerreaktion:

Korrigieren Sie die Optionen.


-884: Missing indicator variable (MaxDB: Meldungen)

-884: Missing indicator variable

Erläuterung:

Das Datenbanksystem erlaubt NULL-Werte für die Variable. Dafür benötigt sie eine Indikatorvariable.

Benutzerreaktion:

Zusätzlich zur SQL-Variablen müssen Sie eine Indikatorvariable angeben. Diese Angabe ist nicht erforderlich, wenn sichergestellt ist, dass Nullwerte nicht auftreten können.


-885: Variable may be truncated (MaxDB: Meldungen)

-885: Variable may be truncated

Erläuterung:

Der Wertebereich der Datenbankspalte ist kleiner als der Wertebereich der SQL-Variablen. Beim Einfügen des Wertes in die Spalte oder beim Vergleich von Werten kann der Wert der SQL-Variablen abgeschnitten und somit verfälscht werden.

Benutzerreaktion:

Falls dies nicht erwünscht ist, müssen Sie entweder das Format der Spalte oder das Format der SQL-Variablen ändern.


-886: DECLARE SECTION BEGIN or END missing (MaxDB: Meldungen)

-886: DECLARE SECTION BEGIN or END missing

Erläuterung:

Der Deklarationsabschnitt ist nicht korrekt geklammert.

Benutzerreaktion:

Jeder Deklarationsabschnitt ist in BEGIN DECLARE SECTION und END DECLARE SECTION einzuschließen.


-887: Too long WHENEVER action (MaxDB: Meldungen)

-887: Too long WHENEVER action

Erläuterung:

Zur Definition der WHENEVER-Aktion stehen maximal 50 Bytes zur Verfügung.

Benutzerreaktion:

Reduzieren Sie die Anzahl der Zeichen, z.B. durch Verkürzen der Namen.


-889: Input line longer than 512 characters (MaxDB: Meldungen)

-889: Input line longer than 512 characters

Erläuterung:

Zeilen einer Precompiler-Eingabedatei dürfen nicht länger als 512 Zeichen sein.

Benutzerreaktion:

Kürzen Sie die entsprechende Zeile.


-890: Input line longer than right margin (MaxDB: Meldungen)

-890: Input line longer than right margin

Erläuterung:

Eine Zeile der Quelldatei ist länger als der gesetzte rechte Rand.

Benutzerreaktion:

Sofern es zulässig ist, kann der rechte Rand mit der Option MARGINS verschoben werden. Anderenfalls müssen Sie die Zeile verkürzen.


-892: Variable my be overflow (MaxDB: Meldungen)

-892: Variable my be overflow

Erläuterung:

Die Warnung wird gesetzt, wenn ein numerischer Wert in eine Tabelle übertragen werden kann, der größer ist als von der Spaltendefinition her zulässig. Zur Laufzeit kann der Fehler -751 gemeldet werden; d. h., die SQL-Anweisung wird genau dann nicht ausgeführt.

Benutzerreaktion:

Zur Vermeidung des Fehlers -751 ist der Wert vor der Übertragung in die Tabelle auf seine Größe hin zu überprüfen.

Programmieren Sie eine Behandlung des genannten Fehlers.


-893: Too many hostvariables (MaxDB: Meldungen)

-893: Too many hostvariables

Erläuterung:

...

1. In einer SQL-Anweisung mit Deskriptor wurden zu viele Parameter angegeben.

2. In einem SQLDA-Bereich wurde auf einen SQLVAR-Eintrag zugegriffen, der nicht mehr existiert (maximale Anzahl der SQLVAR-Einträge < Index_des_SQLVAR-Eintrags).

Benutzerreaktion:

Reduzieren Sie die Anzahl der Parameter in der SQL-Anweisung auf 300 oder weniger.


-894: Trace parameter structure not allowed (MaxDB: Meldungen)

-894: Trace parameter structure not allowed

Erläuterung:

In SET TRACE LINE ist ein Syntaxfehler aufgetreten.

Benutzerreaktion:

Korrigieren Sie die Anweisung SET TRACE LINE.


-895: Whole table my be deleted or updated (MaxDB: Meldungen)

-895: Whole table my be deleted or updated

Erläuterung:

Warnung des Precompilers, dass sämtliche Einträge der Tabelle gelöscht oder verändert werden.

Benutzerreaktion:

Überprüfen Sie, ob dieser Effekt gewünscht ist. Anderenfalls müssen Sie eine WHERE-Klausel in die Anweisung einfügen.


-899: Error unknown (MaxDB: Meldungen)

-899: Error unknown

Erläuterung:

Es ist ein unbekannter Fehler aufgetreten.

Benutzerreaktion:

Verständigen Sie den Support.


Von -900 bis -999 (MaxDB: Meldungen)

Von -900 bis -999

Fehlermeldungen aus dem Datenbankkern

-900 | Data area full
-901 | Log full
-902 | I/O error
-903 | Hostfile I/O error
-904 | Space for result tables exhausted
-907 | Space for user session exhausted
-910 | COSTLIMIT for this user exhausted
-911 | Work rolled back
-913 | Lock request timeout
-914 | New volume not accessible
-915 | No more memory
-917 | Save/Restore write process crash - I/O error
-918 | Stack overflow
-942 | Unknown table name
-955 | Duplicate name


-900: Data area full (MaxDB: Meldungen)

-900: Data area full

Erläuterung:

Der Datenbereich der Datenbankinstanz ist voll.

Benutzerreaktion:

Sie müssen die Datenbankinstanz durch Zuweisung weiterer Volumes vergrößern. Die begonnenen SQL-Anweisungen werden anschließend weiter durchgeführt.


-901: Log full (MaxDB: Meldungen)

-901: Log full

Erläuterung:

Der Log-Bereich ist voll. Folgende Ursachen sind möglich:

...

1. Es ist keine Log-Sicherung aktiv. Der Database Manager führt Änderungsoperationen durch, die zusammen mit Änderungsoperationen anderer Transaktionen zu einem Überlauf des Log-Bereichs führen.

2. Es werden Log-Sicherungen durchgeführt. Diese erfolgen aber nicht schnell genug, oder es gibt eine sehr lange Transaktion, deren Änderungsoperationen zusammen mit den Änderungsoperationen parallel laufender Transaktionen zu einem Überlauf des Log-Bereichs führen. Der Database Manager führt Änderungsoperationen durch.

Die Durchführung der SQL-Anweisung scheitert.

Benutzerreaktion:

...

1. Sichern Sie den Log-Bereich.
Wiederholen Sie anschließend die SQL-Anweisung.

2. Das Datenbanksystem sichert den von der sehr langen Transaktion benötigten Log-Bereich in andere Bereiche der Datenbankinstanz. Anschließend kann der Befehl wiederholt werden.

Prüfen Sie, ob dieser Zustand häufig auftritt, d.h. der Log-Bereich für die Anzahl von Benutzern und durchschnittliche Länge von Transaktionen zu klein ist. Dann sollte der Log-Bereich vergrößert werden.

Prüfen Sie, ob ein Fehler in der Anwendungsprogrammierung vorliegt, der zu der sehr langen oder endlosen Transaktion führt. Beseitigen Sie gegebenenfalls diesen Fehler.


-902: I/O error (MaxDB: Meldungen)

-902: I/O error

Erläuterung:

Während der Bearbeitung einer SQL-Anweisung mußte auf dem Datenbereich oder Log-Bereich eine Lese- oder Schreiboperation ausgeführt werden. Diese Operation konnte nicht erfolgreich durchgeführt werden. Folgende Ursachen sind möglich:

...

1. Zwischenzeitlich ist ein SHUTDOWN erfolgt.

2. Eine Platte ist defekt.

Benutzerreaktion:

Der Fehlertext enthält in einigen Fällen zusätzlich eine betriebssystemspezifisch zu interpretierende Fehlerbeschreibung.

...

1. Starten Sie die Datenbankinstanz mit Hilfe des Database Manager.

2. Nach Behebung des Plattendefekts muss die Datenbankinstanz wiederhergestellt werden.


-903: Hostfile I/O error (MaxDB: Meldungen)

-903: Hostfile I/O error

Erläuterung:

Beim Betrieb einer Steuer- oder Sicherungsdatei oder eines Datensicherungsgerätes ist ein Fehler aufgetreten.

Benutzerreaktion:

Der Fehlertext enthält zusätzlich eine betriebssystemspezifisch zu interpretierende Fehlerbeschreibung.

Ermitteln Sie die Ursache für den Fehler, und beseitigen Sie den Fehler anhand der Betriebssystemdokumentation.

Prüfen Sie, ob ein Schreibfehler oder die Angabe eines Verzeichnisses statt einer Datei die Fehlerursache sein könnte.


-904: Space for result tables exhausted (MaxDB: Meldungen)

-904: Space for result tables exhausted

Erläuterung:

Der Speicherplatz für Ergebnistabellen ist erschöpft.

Folgende Ursachen sind möglich:

...

1. Der für die Ergebnistabellen zur Verfügung stehende Speicherplatz ist zu klein.

2. Durch die Datenbankanwendung wurden zu viele temporäre Informationen erzeugt.

In beiden Fällen wurde die Ausführung der SQL-Anweisung abgebrochen und der Benutzer mit einer impliziten RELEASE-Anweisung der Form ROLLBACK WORK RELEASE vom Datenbanksystem abgemeldet.

Benutzerreaktion:

...

1. Wiederholen Sie die Ausführung der SQL-Anweisung nach einer erneuten CONNECT-Anweisung. Möglicherweise hat zu diesem Zeitpunkt ein anderer Benutzer weniger Ergebnistabellen definiert bzw. temporäre Informationen erzeugt.

2. Definieren Sie einen größeren Plattenplatz mit Hilfe des Database Manager.

3. Verwenden Sie die TABLEEXTRACT-Anweisung, um Tabellen auszulagern und somit Platz zu schaffen.


-907: Space for user session exhausted (MaxDB: Meldungen)

-907: Space for user session exhausted

Erläuterung:

Der Benutzer wurde beim Datenbanksystem nicht angemeldet, weil nicht mehr genügend freier temporärer Plattenplatz für die Anmeldung einer normalen Datenbanksitzung zur Verfügung steht.

Benutzerreaktion:

...

1. Der Benutzer kann sich anmelden, wenn sich ein anderer Benutzer abgemeldet hat oder durch Löschen von Ergebnistabellen anderer Benutzer wieder genügend freier Speicherplatz zur Verfügung steht.

2. Mit dem Database Manager können Sie sich anmelden und die Datenbankinstanz umkonfigurieren.


-910: COSTLIMIT for this user exhausted (MaxDB: Meldungen)

-910: COSTLIMIT for this user exhausted

Erläuterung:

Die Ausführung der SQL-Anweisung würde infolge des notwendigen Selektierens von Zeilen den maximal zulässigen Aufwand für die Abarbeitung der SQL-Anweisung (COSTLIMIT-Wert des Benutzers) übersteigen. Der COSTLIMIT-Wert wird in der Anweisung CREATE USER, CREATE USERGROUP, ALTER USER oder ALTER USERGROUP festgelegt.

Benutzerreaktion:

Prüfen Sie, ob die SQL-Anweisung in der angegebenen Form notwendig ist. Prüfen Sie, ob z. B. durch weitere Bedingungen in der Suchbedingung die Menge der zu bearbeitenden Daten verkleinert und damit die Kosten verringert werden können.

Ist das nicht möglich, können Sie versuchen, den Effekt der SQL-Anweisung mit mehreren weniger aufwendigen SQL-Anweisungen zu erzielen.

Sie können sich den COSTLIMIT-Wert durch eine QUERY-Anweisung, angewandt auf die Systemtabelle DOMAIN.USERS, anzeigen lassen.

Durch eine ALTER USER oder ALTER USERGROUP-Anweisung kann der Datenbankadministrator, der Eigentümer der Benutzergruppe oder des Benutzers ist, den COSTLIMIT-Wert erhöhen.


-911: Work rolled back (MaxDB: Meldungen)

-911: Work rolled back

Erläuterung:

Die Transaktion des Benutzers wurde implizit abgebrochen und durch eine implizite ROLLBACK-Anweisung zurückgesetzt. Dafür kann es folgende Ursachen geben:

...

1. Der Benutzer hat innerhalb eines bestimmten Zeitintervalls keine Datenbankoperationen durchgeführt, jedoch Sperren gehalten, auf deren Zuteilung andere Benutzer warteten.

2. Die Datenbankinstanz befand sich in einer Deadlock-Situation.

Deadlock-Situation: zwei oder mehr Benutzer halten jeweils Sperren und fordern weitere Sperren an, die von den jeweils anderen Benutzern gehalten werden. Im einfachsten Fall mit zwei Benutzern hält der eine Benutzer mindestens eine Sperre und fordert eine andere an. Diese wird aber von einem anderen Benutzer gehalten, der wiederum auf die Sperre wartet, die der erste Benutzer hält. Diese Situation kann nur aufgelöst werden, wenn einer der Benutzer die schon erhaltene Sperre wieder freigibt.

Benutzerreaktion:

In einigen Fällen enthält der Fehlertext noch eine genauere Beschreibung des Fehlers.

In beiden Fällen müssen Sie die Sperranforderungen überprüfen und gegebenenfalls ändern. Wiederholen Sie die letzte Transaktion.


-913: Lock request timeout (MaxDB: Meldungen)

-913: Lock request timeout

Erläuterung:

Die Sperranforderung oder eine implizit angeforderte Sperre kollidiert mit Sperren eines anderen Benutzers. Die maximale Wartezeit auf die Zuteilung der Sperre (Datenbankparameter REQUEST_TIMEOUT) ist abgelaufen.

Benutzerreaktion:

In einigen Fällen enthält der Fehlertext noch eine genauere Beschreibung des Fehlers.

Die Sperranforderung kann noch einmal abgesetzt werden. Es empfiehlt sich jedoch, die Transaktion mit einem ROLLBACK zurückzusetzen, um eventuelle Deadlock-Situationen aufzulösen.


-914: New volume not accessible (MaxDB: Meldungen)

-914: New volume not accessible

Erläuterung:

Es wurde versucht, eine zusätzliche Platte für den Datenbereich zu definieren. Das ist nicht möglich, da auf eine Platte unter dem angegebenen Namen mit der angegebenen Größe nicht zugegriffen werden kann.

Benutzerreaktion:

Der Fehlertext enthält zusätzlich eine betriebssystemspezifisch zu interpretierende Fehlerbeschreibung.

Prüfen Sie den Namen und die Größe der Platte sowie deren Installation. Wiederholen Sie das Kommando mit veränderten Angaben.


-915: No more memory (MaxDB: Meldungen)

-915: No more memory

Erläuterung:

...

1. Es ist nicht mehr genügend Hauptspeicher zur Eröffnung einer Datenbanksitzung verfügbar. Der maximal verfügbare Hauptspeicher wird durch den Datenbankparameter CAT_CACHE_SUPPLY bei der Installation der Datenbankinstanz festgelegt.

2. Es ist nicht mehr genügend Hauptspeicherbereich zur Ausführung der gewünschten Datenbankprozedur verfügbar.

Benutzerreaktion:

...

1. Sie können erst eine Sitzung eröffnen, wenn mindestens ein anderer Benutzer seine Sitzung beendet hat. Prüfen Sie, ob der Datenbankparameter CAT_CACHE_SUPPLY groß genug gewählt ist.

2. Versuchen Sie, die Datenbankprozedur zu einem späteren Zeitpunkt auszuführen.


-917: Save/restore write process crash - I/O error (MaxDB: Meldungen)

-917: Save/restore write process crash - I/O error

Erläuterung:

  1. Bei einer Anweisung zur Datensicherung ist ein I/O-Fehler beim Versuch, auf ein Datensicherungsgerät zu schreiben, aufgetreten.
  2. Bei einer Anweisung zur Wiederherstellung ist ein I/O-Fehler beim Versuch, auf ein Volume zu schreiben, aufgetreten.

Die Anweisung zur Datensicherung bzw. Wiederherstellung wurde abgebrochen.

Benutzerreaktion:

Der Fehlertext enthält zusätzlich eine betriebssystemspezifisch zu interpretierende Fehlerbeschreibung.

Ermitteln Sie die Ursache für den Fehler anhand der Betriebssystemdokumentation und beseitigen Sie diesen.


-918: Stack overflow (MaxDB: Meldungen)

-918: Stack overflow

Erläuterung:

Durch geschachtelte Aufrufe von Datenbankprozeduren, Triggern oder Subqueries oder durch einen sehr komplizierte Spezifikation von Werten wurde der maximal mögliche Stack-Verbrauch einer Task erreicht. Eine weitere Schachtelung ist nicht möglich. Die Ausführung des Befehls wurde abgebrochen.

Benutzerreaktion:

...

1. Durch geeignete Abfragen in den Datenbankprozeduren und Triggern können Sie die Schachtelungstiefe der Aufrufe stärker beschränken.

2. Die Schachtelungstiefe können Sie beschränken, indem die SQL-Anweisung in mehrere aufgeteilt wird.


-942: Unknown table name (MaxDB: Meldungen)

-942: Unknown table name

Erläuterung:

Dem aktuellen Benutzer ist eine Tabelle mit dem angegebenen Namen nicht bekannt. Es ist möglich, dass eine solche Tabelle nicht existiert, oder dass sie existiert, der aktuelle Benutzer aber keine Privilegien für sie bekommen hat.

Benutzerreaktion:

Durch eine QUERY-Anweisung, angewandt auf die Systemtabelle DOMAIN.TABLES, ist es möglich, die Namen der Tabellen zu ermitteln, für die der aktuelle Benutzer Privilegien besitzt. Korrigieren Sie den Tabellennamen. (Gegebenenfalls reicht es, den fehlenden Eigentümer dem Namen voranzustellen.) Ist eine Korrektur nicht möglich, legen Sie eine Tabelle mit diesem Namen an. Klären Sie, warum der aktuelle Benutzer kein Privileg für die existierende Tabelle erhalten hat.


-955: Duplicate name (MaxDB: Meldungen)

-955: Duplicate name

Erläuterung:

Es existiert bereits ein Datenobjekt mit dem angegebenen Namen.

Benutzerreaktion:

Wiederholen Sie die SQL-Anweisung mit einem anderen Namen.


Von -1000 bis -1999 (MaxDB: Meldungen)

Von -1000 bis -1999

Fehlermeldungen aus dem Datenbankkern

-1000 | Too many lock requests
-1001 | Too many lock objects specified
-1002 | Too many columns
-1003 | Too many buffers requested
-1004 | Too many correlated columns
-1005 | Too many monadic operators
-1006 | Too many variables
-1007 | Parameter list too long
-1008 | Too many or too few host variables for output
-1009 | Too many named indexes for this table
-1010 | Too many volumes
-1011 | Too many correlated tables
-1012 | Too many referential constraint definitions for this table
-1013 | Too many order columns
-1014 | Too many source tables
-1015 | Too many values
-1017 | Too many joins
-1023 | Too many nested subtransactions
-1025 | Too many asynchron requests
-1026 | Too many differences between old and new view definition
-1102 | Too complicated SQL statement (Too many Subqueries)
-1103 | Too complicated SQL statement
-1104 | Too complicated SQL statement (KB-stack overflow)
-1105 | Too complicated SQL statement (Too much data)
-1106 | Too complicated SQL statement (Too much strategy data)
-1107 | Too complicated SQL statement (Too many internal commands)
-1108 | Too complicated SQL statement (Correlated row too long)
-1110 | view definition Too long
-1111 | Too many savepoints
-1112 | Constraint too complicated
-1113 | Too many nested function calls
-1114 | Communication packet too small
-1115 | Too many intern columns
-1116 | Too long trigger parameters
-1117 | Too complicated trigger qualification
-1119 | Too many constraints for this table
-1120 | Too many statements in definition
-1200 | Too few values
-1201 | Too few columns
-1400 | Input parameter cannot be NULL value
-1402 | Integrity violation
-1403 | Row not found
-1405 | Missing indicator variable, output parameter
-1406 | Output value truncated
-1452 | Duplicate secondary key
-1556 | Data space full
-1755 | SQL statement will drop further objects (use CASCADE)


-1000: Too many lock requests (MaxDB: Meldungen)

-1000: Too many lock requests

Erläuterung:

Es existieren zu viele Sperren bzw. Sperranforderungen.

Benutzerreaktion:

Sie können versuchen, die SQL-Anweisung zu einem späteren Zeitpunkt zu wiederholen bzw. die Transaktion abzubrechen. Wenn dieser Fehler häufiger auftritt, ist der Datenbankparameter MAXLOCKS zu klein gewählt und sollte vergrößert werden.


-1001: Too many lock objects specified (MaxDB: Meldungen)

-1001: Too many lock objects specified

Erläuterung:

Die LOCK-Anweisung enthält zu viele zu sperrende Tabellen oder Tabellenzeilen.

Benutzerreaktion:

Die SQL-Anweisung muss mit Hilfe zweier aufeinanderfolgender LOCK-Anweisungen dargestellt werden.


-1002: Too many columns (MaxDB: Meldungen)

-1002: Too many columns

Erläuterung:

1. Die in Technische Spezifikationen angegebene maximale Anzahl für Spalten wurde überschritten.

2. Ein benannter Index kann über maximal 16 Spalten einer Tabelle angelegt werden.

3. In einer referentiellen CONSTRAINT-Definition wurden mehr referenzierende Spalten (referencing_column) angegeben als referenzierte Spalten (referenced_column). Die Anzahl der angegebenen Spalten der referenzierenden Tabelle muss der Anzahl der angegebenen referenzierten Spalten der referenzierten Tabelle (referenced_table) entsprechen.

Benutzerreaktion:

1. Durch eine QUERY-Anweisung, angewandt auf die Systemtabelle DOMAIN.COLUMNS, können Sie die aktuelle Definition der Tabelle ermitteln. Sie dürfen keine weiteren Spalten definieren.

2. Korrigieren Sie die Anzahl der Spalten bei der Definition des Index.

3. Sie können die vollständige Definition und die Schlüsselspalten der referenzierten Tabelle (referenced_table) durch eine QUERY-Anweisung, angewandt auf die Systemtabelle DOMAIN.COLUMNS, ermitteln.

...

Wenn keine Schlüsselspalte definiert wurde, beträgt die maximale Anzahl der Spalten 254, da das System automatisch eine interne Schlüsselspalte SYSKEY einfügt. Ansonsten beträgt die Anzahl 255.

n


-1003: Too many buffers requested (MaxDB: Meldungen)

-1003: Too many buffers requested

Erläuterung:

Der Speicherplatzbedarf für die durch die Datenbankparameter definierten Puffer und Bereiche ist größer als der dem Datenbanksystem maximal zur Verfügung stehende virtuelle Speicherplatz. Die Ausführung der SQL-Anweisung wurde abgebrochen.

Benutzerreaktion:

Verringern Sie die Größe bzw. Anzahl der Puffer und Bereiche, oder vergrößern Sie den dem Datenbanksystem zur Verfügung gestellten virtuellen Speicherplatz. Starten Sie die Datenbankinstanz neu.


-1004: Too many correlated columns (MaxDB: Meldungen)

-1004: Too many correlated columns

Erläuterung:

Die SQL-Anweisung enthält mindestens eine Correlated Subquery. Dabei wurde versucht, mehr als 64 korrespondierende Spalten (correlated columns) zu verwenden. Es können höchstens 64 korrespondierende Spalten verwendet werden. Dabei zählt jede einzelne Benutzung einer korrespondierenden Spalte.

Benutzerreaktion:

Stellen Sie die SQL-Anweisung so um, dass 64 korrespondierende Spalten genügen. Sie können auch versuchen, den Effekt dieser SQL-Anweisung mit Hilfe mehrerer SQL-Anweisungen zu erzielen.


-1005: Too many monadic operators (MaxDB: Meldungen)

-1005: Too many monadic operators

Erläuterung:

In der SQL-Anweisung stehen mindestens zwei monadische Operatoren in unzulässiger Weise hintereinander.

Benutzerreaktion:

Korrigieren Sie in der SQL-Anweisung die monadischen Operatoren.


-1006: Too many variables (MaxDB: Meldungen)

-1006: Too many variables

Erläuterung:

Pro SQL-Anweisung dürfen höchstens 2000 Parameter angegeben werden (Technische Spezifikationen).

Benutzerreaktion:

Verringern Sie die Anzahl der Parameter in der SQL-Anweisung. Einige Parameter sind durch konstante Werte zu ersetzen. Ist das nicht möglich, müssen Sie die SQL-Anweisung in mehrere SQL-Anweisungen aufteilen.


-1007: Parameter list too long (MaxDB: Meldungen)

-1007: Parameter list too long

Erläuterung:

In einer Anweisung sind mehr Parameter angegeben worden, als in einer zugehörigen EXECUTE-Anweisung erlaubt.

Benutzerreaktion:

Verändern Sie die Anzahl der Parameter, so dass diese den Angaben in der Spaltenliste entspricht.


-1008: Too many or too few host variables for output (MaxDB: Meldungen)

-1008: Too many or too few host variables for output

Erklärung:

In der SQL-Anweisung sind Variablen für selektierte Spalten enthalten.

Ihre Anzahl entspricht nicht der Anzahl der selektierten Spalten.

Benutzerreaktion:

Überprüfen Sie die Anzahl und die Datentypen der Variablen und korrigieren Sie diese.

Ändern Sie in der SELECT-Anweisung die Angabe ’*’ in eine Folge von Spaltennamen.


-1009: Too many named indexes for this table (MaxDB: Meldungen)

-1009: Too many named indexes for this table

Erläuterung:

Pro Tabelle können maximal 255 benannte Indizes angelegt werden (Technische Spezifikationen).

Benutzerreaktion:

Prüfen Sie, ob eine derart große Anzahl von Indizes benötigt wird.

Der Aufwand für die Pflege der Indizes bei Änderungsoperationen und der für die Indizes benötigte Speicherplatz ist bei einer solchen Anzahl von Indizes meist unverhältnismäßig groß.


-1010: Too many volumes (MaxDB: Meldungen)

-1010: Too many volumes

Erläuterung

Bei der Installation ist die Anzahl der Data-Volumes begrenzt (Technische Spezifikationen). Diese Grenze wurde überschritten.

Benutzerreaktion

Verringern Sie die Anzahl der Data-Volumes.


-1011: Too many correlated tables (MaxDB: Meldungen)

-1011: Too many correlated tables

Erläuterung:

Die Anzahl der in den Correlated Subqueries verwendeten korrespondierenden Tabellen (Correlated Tables) darf 16 nicht überschreiten (Technische Spezifikationen).

Benutzerreaktion:

Versuchen Sie, die SQL-Anweisung so umzuformulieren, dass 16 korrespondierende Tabellen ausreichen. Wenn dies nicht möglich ist, müssen Sie mehrere SQL-Anweisungen verwenden, um den gewünschten Effekt zu erzielen.


-1012: Too many referential constraint definitions for this tabl (MaxDB: Meldungen)

-1012: Too many referential constraint definitions for this table

Erläuterung:

Es wurde versucht, eine referentielle CONSTRAINT-Definition zu erzeugen, durch die die Summe der Längen aller referenzierenden oder aller referenzierten Spalten die maximale Zeilenlänge übersteigt.

Benutzerreaktion:

Die SQL-Anweisung kann erst aufgerufen werden, wenn eine bestehende CONSTRAINT-Definition gelöscht wurde. Andernfalls müssen Sie auf die neue CONSTRAINT-Definition verzichten.


-1013: Too many order columns (MaxDB: Meldungen)

-1013: Too many order columns

Erläuterung:

Folgenden Fehlerursachen sind möglich:

  1. Es wurden mehr als 128 Spalten als Sortierkriterium oder als Gruppierspalten angegeben (Technische Spezifikationen).
  2. Die Spalten, nach denen sortiert oder gruppiert werden soll, sind insgesamt länger als 1020 Bytes.
  3. Die Länge des längsten Ergebnisdatentyps einer DISTINCT-Funktion zusammen mit den Längen der Gruppierspalten ist größer als 254. Dabei ist der Ergebnisdatentyp der Datentyp, der dem Ergebnis eines Ausdrucks zugeordnet wird.

Benutzerreaktion:

Sie müssen in der SQL-Anweisung auf eine oder mehrere Spalten verzichten, die in der ORDER-Klausel bzw. GROUP-Klausel angegeben sind.


-1014: Too many source tables (MaxDB: Meldungen)

-1014: Too many source tables

Erläuterung:

Die Anzahl der einer FROM-Klausel zugrundeliegenden Tabellen ist größer als 16. Wurde eine Join-View-Tabelle in der FROM-Klausel angegeben, so geht die Anzahl der dieser Join-View-Tabelle zugrundeliegenden Basistabellen in die Berechnung ein.

Benutzerreaktion:

Sie können die SQL-Anweisung in zwei aufeinanderfolgende SQL-Anweisungen aufteilen.

Es ist auch möglich, durch Verwendung eines QUERY-Ausdrucks in der FROM-Klausel diese Beschränkung zu umgehen.


-1015: Too many values (MaxDB: Meldungen)

-1015: Too many values

Erläuterung:

Bei einer INSERT- oder UPDATE-Anweisung übersteigt die Anzahl der angegebenen Werte die Anzahl der implizit angegebenen Spaltennamen.

Benutzerreaktion:

Passen Sie in der SQL-Anweisung die Anzahl der angegebenen Werte der Anzahl der angegebenen Spaltennamen an. Für eine INSERT-Anweisung ohne Angabe der Spaltennamen kann mit einer QUERY-Anweisung, angewandt auf die Systemtabelle DOMAIN.COLUMNS, die Definition der verwendeten Tabelle ermittelt werden.


-1017: Too many joins (MaxDB: Meldungen)

-1017: Too many joins

Erläuterung:

Die Anzahl der JOIN-Prädikate in einer Suchbedingung darf 64 nicht übersteigen (Technische Spezifikationen).

Benutzerreaktion:

Sie können das erwartete Ergebnis erzielen, indem mehrere QUERY-Anweisungen ausgeführt und entsprechende Ergebnistabellen als Zwischenergebnisse aufgebaut werden. Sie können die SQL-Anweisung auch derart verändern, dass durch Verwendung eines QUERY-Ausdrucks in einer FROM-Klausel implizit Zwischenergebnisse aufgebaut werden.


-1023: Too many nested subtransactions (MaxDB: Meldungen)

-1023: Too many nested subtransactions

Erläuterung:

Die maximale Schachtelungstiefe von Subtransaktionen liegt bei 32767. Diese Anzahl wurde überschritten.

Benutzerreaktion:

Prüfen Sie, durch welchen Fehler in der Anwendungsprogrammierung diese Schachtelungstiefe von Subtransaktionen erzeugt wurde, und korrigieren Sie diesen.


-1025: Too many asynchron requests (MaxDB: Meldungen)

-1025: Too many asynchron requests

Erläuterung

Die angegebene SQL-Anweisung würde asynchron bearbeitet werden. Dafür stehen zur Zeit nicht genügend Ressourcen zur Verfügung.

Benutzerreaktion

Führen Sie die SQL-Anweisung zu einem späteren Zeitpunkt erneut aus.


-1026: Too many differences between old and new view definition (MaxDB: Meldungen)

-1026: Too many differences between old and new view definition

Erläuterung:

Es wurde eine CREATE VIEW-Anweisung mit der REPLACE-Option angegeben. Eine View-Tabelle mit dem angegebenen Namen existiert bereits. Die bestehende View-Definition und die angegebene unterscheiden sich so stark, dass nicht mehr alle von dieser View-Tabelle abhängigen Definitionen konsistent gepflegt werden können. Die CREATE VIEW-Anweisung scheitert deshalb.

Benutzerreaktion:

Verzichten Sie auf die Änderung der angegebenen View-Tabelle oder prüfen Sie, welche abhängigen Definitionen, z. B. View-Tabellen, Privilegien usw., nicht mehr zu der neuen View-Definition passen. Diese sind gegebenenfalls vor der erneuten Ausführung der CREATE VIEW-Anweisung zu löschen und anschließend in geeigneter abgeänderter Form wieder zu erzeugen.


-1102: Too complicated SQL statement (Too many subqueries) (MaxDB: Meldungen)

-1102: Too complicated SQL statement (Too many subqueries)

Erläuterung:

1. Die SQL-Anweisung enthält zu viele Subqueries. Die Anzahl der zulässigen Subqueries hängt von der Art der SQL-Anweisung ab.

2. Es wurden in einer SQL-Anweisung, die mindestens eine korrespondierende Subquery enthält, in einem Tabellenausdruck sowohl in der WHERE-Klausel als auch in der HAVING-Klausel Subqueries angegeben. Das ist nicht zulässig.

Benutzerreaktion:

Vereinfachen Sie die SQL-Anweisung, oder teilen Sie die Anweisung in mehrere SQL-Anweisungen auf.


-1103: Too complicated SQL statement (MaxDB: Meldungen)

-1103: Too complicated SQL statement

Erläuterung:

Die Anzahl der Operationen, Funktionen und Bedingungen ist zu hoch.

Benutzerreaktion:

Vereinfachen Sie die SQL-Anweisung, oder teilen Sie die Anweisung in mehrere SQL-Anweisungen auf.


-1104: Too complicated SQL statement (KB-stack overflow) (MaxDB: Meldungen)

-1104: Too complicated SQL statement (KB-stack overflow)

Erläuterung:

Innerhalb des Systems werden für die Darstellung der SQL-Anweisung mehr Elemente einer internen Struktur benötigt als vorhanden sind.

Benutzerreaktion:

Vereinfachen Sie die SQL-Anweisung, oder teilen Sie die Anweisung in mehrere SQL-Anweisungen auf.

Ist das nicht möglich, sollten Sie überprüfen, ob der Datenbankparameter PACKET_SIZE erhöht werden kann, von dessen Größe die Größe dieser internen Struktur abhängt. Die Anpassung erfolgt dabei jeweils ab einem bestimmten Grenzwert der PACKET_SIZE.


-1105: Too complicated SQL statement (Too much data) (MaxDB: Meldungen)

-1105: Too complicated SQL statement (Too much data)

Erläuterung:

Innerhalb des Systems wird für die Darstellung der Daten der SQL-Anweisung mehr Platz benötigt als vorhanden ist.

Benutzerreaktion:

Vereinfachen Sie die SQL-Anweisung, oder teilen Sie die Anweisung in mehrere SQL-Anweisungen auf. Ist das nicht möglich, sollten Sie überprüfen, ob der Datenbankparameter PACKET_SIZE erhöht werden kann, von dessen Größe die Menge des zur Verfügung stehenden Platzes abhängt. Eine Erhöhung über 32 KB hinaus vergrößert nicht mehr die Menge des zur Verfügung stehenden Platzes.


-1106: Too complicated SQL statement (Too much strategy data) (MaxDB: Meldungen)

-1106: Too complicated SQL statement (Too much strategy data)

Erläuterung

Die ermittelte Suchstrategie für die Abarbeitung der SQL-Anweisung ist länger als Speicherplatz zur Verfügung steht.

Benutzerreaktion

Verzichten Sie auf einige mit OR verknüpfte Bedingungen.


-1107: Too complicated SQL statement (Too many internal commands (MaxDB: Meldungen)

-1107: Too complicated SQL statement (Too many internal commands)

Erläuterung:

Die SQL-Anweisung ist so kompliziert, dass mehr interne Anweisungen dafür erzeugt werden müssen, als für eine SQL-Anweisung verwaltet werden können.

Benutzerreaktion:

Vereinfachen Sie die SQL-Anweisung, oder teilen Sie die Anweisung in mehrere SQL-Anweisungen auf.


-1108: Too complicated SQL statement (correlated row too long) (MaxDB: Meldungen)

-1108: Too complicated SQL statement (correlated row too long)

Erläuterung:

Während der Bearbeitung einer SQL-Anweisung, die mindestens eine Correlated Subquery enthält, müßte ein internes Ergebnis erzeugt werden, dessen Zeilen länger wären als zulässig ist.

Benutzerreaktion:

Prüfen Sie, ob auf Spalten innerhalb der SELECT-Anweisung verzichtet werden kann oder ob die SQL-Anweisung so umformuliert werden kann, dass weniger oder keine korrespondierenden Spalten (Correlated Columns) verwendet werden.


-1110: View definition too long (MaxDB: Meldungen)

-1110: View definition too long

Erläuterung:

Die Definition einer View-Tabelle ist länger als der dafür zur Verfügung stehende Platz. Dieser Fehler kann z.B. auch bei einer RENAME COLUMN-Anweisung auftreten, wenn durch eine Verlängerung des Namens die intern vorhandene View-Tabelle die Maximallänge überschreitet.

Benutzerreaktion:

Verkürzen Sie die View-Tabelle, z.B. indem kurze Referenznamen statt langer Tabellennamen in der SELECT-Anweisung oder der Suchbedingung verwendet werden.


-1111: Too many savepoints (MaxDB: Meldungen)

-1111: Too many savepoints

Erläuterung:

Es wurden zu viele Savepoints innerhalb einer Transaktion definiert.

Benutzerreaktion:

Prüfen Sie, wie diese ungewöhnlich hohe Anzahl von Savepoints zustande kam. Nehmen Sie die fehlenden COMMIT- bzw. ROLLBACK-Anweisungen in die Anwendung auf.


-1112: Constraint too complicated (MaxDB: Meldungen)

-1112: Constraint too complicated

Erläuterung:

Die interne Darstellung des Constraint ist länger als der dafür zur Verfügung stehende Platz.

Benutzerreaktion:

Vereinfachen Sie das Constraint oder teilen Sie es in mehrere Constraints auf.


-1113: Too many nested function calls (MaxDB: Meldungen)

-1113: Too many nested function calls

Erläuterung:

Die SQL-Anweisung enthält mehr geschachtelte Funktionsaufrufe als bearbeitet werden können.

Benutzerreaktion:

Prüfen Sie, ob nicht auf einige Funktionen innerhalb der Schachtelung verzichtet werden kann. Ist das nicht der Fall, sollten Sie prüfen, ob durch die Verwendung eines QUERY-Ausdrucks in der FROM-Klausel oder durch die Erzeugung und Wiederverwendung einer benannten Ergebnismenge, die einen Teil der Funktionen enthält, der gewünschte Effekt erreicht werden kann.


-1114: Communication packet too small (MaxDB: Meldungen)

-1114: Communication packet too small

Erläuterung:

Die SQL-Anweisung ist so lang, dass nicht alle Informationen, die zwischen Client und Server ausgetauscht werden müssen, gleichzeitig in dem dafür vorgesehenen Kommunikationspaket Platz finden.

Benutzerreaktion:

Vereinfachen Sie die SQL-Anweisung, oder teilen Sie diese in mehrere SQL-Anweisungen auf. Ist das nicht möglich, sollten Sie überprüfen, ob der Datenbankparameter PACKET_SIZE erhöht werden kann, der die Größe dieses Kommunikationspakets angibt.


-1115: Too many intern columns (MaxDB: Meldungen)

-1115: Too many intern columns

Erläuterung:

Durch eine ALTER TABLE-Anweisung oder während einer CREATE VIEW-Anweisung wird eine Tabellenbeschreibung erzeugt, die mehr Spalten enthält als zulässig sind oder deren Zeilenlänge die Maximallänge überschreitet. Dieser Zustand kann unter Umständen durch Spalten erreicht werden, die für den Anwender nicht sichtbar sind.

Benutzerreaktion:

Prüfen Sie, ob bei einer CREATE VIEW-Anweisung auf einige Ausgabespalten verzichtet werden kann. Bei einer ALTER TABLE-Anweisung sollten Sie prüfen, ob die angegebene Spaltenbreite verringert werden kann. Prüfen Sie auch, ob durch vorangegangene ALTER TABLE-Anweisungen so viele unsichtbare Spalten erzeugt wurden, dass statt einer ALTER-Definition die MODIFY-Definition verwendet werden sollte, um diese unsichtbaren Spalten zu löschen. Das führt allerdings dazu, dass die Tabelle kopiert wird, was mit einem erheblichen Speicherplatz- und Zeitbedarf verbunden ist.


-1116: Too long trigger parameters (MaxDB: Meldungen)

-1116: Too long trigger parameters

Erläuterung:

Es wurde ein Trigger definiert, dessen Parameter insgesamt länger sind als möglich ist.

Benutzerreaktion:

Versuchen Sie, auf einen oder mehrere Parameter zu verzichten.


-1117: Too complicated trigger qualification (MaxDB: Meldungen)

-1117: Too complicated trigger qualification

Erläuterung:

Die interne Darstellung der Trigger-Bedingung ist länger als der dafür zur Verfügung stehende Platz.

Benutzerreaktion:

Vereinfachen Sie die Trigger-Bedingung.


-1119: Too many constraints for this table (MaxDB: Meldungen)

-1119: Too many constraints for this table

Erläuterung:

Sie haben implizit durch Verwendung eines Wertebereichs oder durch explizite Angabe von Constraints mehr Bedingungen für diese Tabelle definiert als zulässig sind.

Benutzerreaktion:

Überprüfen Sie, ob alle Constraints notwendig sind, und verzichten Sie auf einen oder mehrere, oder fassen Sie mehrere Constraints zu einem zusammen. Wiederholen Sie den Befehl mit den veränderten Constraint-Definitionen.


-1120: Too many statements in definition (MaxDB: Meldungen)

-1120: Too many statements in definition

Erläuterung:

Es wurden mehr als 255 SQL-Anweisungen innerhalb einer CREATE TRIGGER- oder CREATE DBPROC-Anweisung angegeben.

Benutzerreaktion:

Verzichten Sie auf einige SQL-Anweisungen, und versuchen Sie, den gewünschten Effekt mit nicht mehr als 255 SQL-Anweisungen zu erzielen.


-1200: Too few values (MaxDB: Meldungen)

-1200: Too few values

Erläuterung:

Bei der INSERT- oder UPDATE-Anweisung ist die Anzahl der angegebenen Werte geringer als die Anzahl der gegebenenfalls implizit angegebenen Spaltennamen.

Benutzerreaktion:

Passen Sie in der SQL-Anweisung die Anzahl der angegebenen Werte der Anzahl der angegebenen Spaltennamen an. Für eine INSERT-Anweisung ohne Angabe der Spaltennamen können Sie durch eine QUERY-Anweisung, angewandt auf die Systemtabelle DOMAIN.COLUMNS, die Definition der verwendeten Tabelle ermitteln.


-1201: Too few columns (MaxDB: Meldungen)

-1201: Too few columns

Erläuterung:

Bei einer referentiellen CONSTRAINT-Definition wurden weniger referenzierende Spalten (referencing_column) angegeben als referenzierte Spalten (referenced_column). Die Anzahl der angegebenen Spalten der referenzierenden Tabelle muss der Anzahl der implizit oder explizit angegebenen referenzierten Spalten der referenzierten Tabelle (referenced_table) entsprechen.

Benutzerreaktion:

Mit einer QUERY-Anweisung, angewandt auf die Systemtabelle DOMAIN.COLUMNS, können Sie die Definition der Schlüsselspalten der referenzierten Tabelle ermitteln. Mit einer QUERY-Anweisung, angewandt auf die Systemtabelle DOMAIN.IND_USES_COL, können Sie die Indizes der referenzierten Tabelle ermitteln. Die Angabe der Spalten für die referenzierende Tabelle müssen Sie entsprechend anpassen.


-1400: Input parameter cannot be NULL value (MaxDB: Meldungen)

-1400: Input parameter cannot be NULL value

Erläuterung:

Der Wert eines Eingabeparameters darf kein NULL-Wert sein, denn die Spalte darf keine NULL-Werte erhalten.

Benutzerreaktion:

Ändern Sie entweder die Anwendung oder die Spaltendefinition in der CREATE TABLE-Anweisung.


-1402: Integrity violation (MaxDB: Meldungen)

-1402: Integrity violation

Erläuterung:

Beim Einfügen oder Ändern würden Integritätsbedingungen verletzt, die bei der Definition der Basistabelle bzw. der View-Tabelle spezifiziert wurden.

Benutzerreaktion:

Der Fehlertext enthält die Angabe, für welche Spalte die Integritätsbedingungen verletzt würden. Korrigieren Sie den Eingabewert für die entsprechende Spalte.


-1403: Row not found (MaxDB: Meldungen)

-1403: Row not found

Erläuterung

Es gibt keine (weitere) Tabellenzeile, die die Qualifikation erfüllt.

Benutzerreaktion

Eine Benutzerreaktion ist nicht erforderlich.


-1405: Missing indicator variable, output parameter with NULL va (MaxDB: Meldungen)

-1405: Missing indicator variable, output parameter with NULL value

Erläuterung:

Die zur Rückgabe eines NULL-Werts an die SQL-Variable notwendige Indikatorvariable fehlt.

Benutzerreaktion:

Geben Sie bei dem Parameter die Indikatorvariable an.


-1406: Output value truncated (MaxDB: Meldungen)

-1406: Output value truncated

Erläuterung:

Der Wertebereich der Spalte ist größer als der Wertebereich der SQL-Variablen. Beim Einfügen des Wertes in die SQL-Variable wurde dieser abgeschnitten.

Benutzerreaktion:

Passen Sie den Wertebereich der SQL-Variablen dem Wertebereich der Spalte an.


-1452: Duplicate secondary key (MaxDB: Meldungen)

-1452: Duplicate secondary key

Erläuterung:

Bei der Angabe einer UNIQUE-Definition, bei der Verwendung des Spaltenattributes UNIQUE oder bei der Angabe von UNIQUE in der CREATE INDEX-Anweisung existieren mehrere Tabellenzeilen mit gleichen Werten in den angegebenen Spalten.

Benutzerreaktion:

Sie können UNIQUE nicht verwenden, oder sorgen Sie dafür, dass nur jeweils eine Tabellenzeile eine bestimmte Wertekombination in den angegebenen Spalten enthält. Der Fehlertext enthält die Angabe, für welche Spalte oder welchen mehrspaltigen Index die angegebenen Werte bereits existieren.


-1556: Data space full (MaxDB: Meldungen)

-1556: Data space full

Erläuterung

Der Datenbereich der Datenbankinstanz ist voll.

Benutzerreaktion

Sie müssen den Datenbereich der Datenbankinstanz durch Hinzufügen weiterer Data-Volumes vergrößern. Die begonnenen SQL-Anweisungen werden anschließend weiter ausgeführt.


-1755: SQL statement will drop further objects (use CASCADE) (MaxDB: Meldungen)

-1755: SQL statement will drop further objects (use CASCADE)

Erläuterung:

Es wurde eine DROP USER-, DROP TABLE-, DROP VIEW- oder REVOKE-Anweisung angegeben, für das weder implizit noch explizit die CASCADE-Option angegeben war. Es existieren aber von dem zu löschenden Objekt abhängige Objekte, die ebenfalls zu löschen wären. Das ist nur bei impliziter oder expliziter Angabe der CASCADE-Option zulässig.

Benutzerreaktion:

Prüfen Sie, welche abhängigen Objekte existieren, bevor diese SQL-Anweisung mit der CASCADE-Option angegeben wird.


Von -2000 bis -2999 (MaxDB: Meldungen)

Von -2000 bis -2999

Fehlermeldungen aus dem Datenbankkern

-2000 | Row too long
-2001 | Key too long
-2002 | One output column too long
-2003 | Output columns too long
-2004 | Numeric constant too long
-2008 | Data area too small
-2009 | Join columns too long
-2010 | Assignment impossible, char value too long
-2012 | View column list too long
-2013 | Select column list too long
-2014 | Identifier too long
-2020 | Data buffer too small
-2025 | Invalid number of backup devices
-2027 | Space for converted value too small
-2028 | Sequence <sequence name> exhausted
-2029 | <sequence name>.CURRVAL is not yet defined in this session


-2000: Row too long (MaxDB: Meldungen)

-2000: Row too long

Erläuterung:

Beim (Um-)Definieren einer Tabelle wird die Länge einer Tabellenzeile größer als 8088 Bytes (Technische Spezifikationen).

Benutzerreaktion:

1. Bei einer CREATE TABLE-Anweisung müssen Sie auf eine oder mehrere Spalten verzichten oder die Spaltenlängen verkürzen.

2. Bei einer ALTER TABLE-Anweisung müssen Sie auf eine oder mehrere Spalten verzichten oder die Spaltenlängen verkürzen. Durch eine QUERY-Anweisung, angewandt auf die Systemtabelle DOMAIN.COLUMNS, können Sie die aktuelle Definition der Tabelle ermitteln.


-2001: Key too long (MaxDB: Meldungen)

-2001: Key too long

Erläuterung

1. Bei einer CREATE TABLE- oder ALTER TABLE-Anweisung darf die Summe der Längen der Schlüsselspalten maximal 1024 Bytes betragen (Technische Spezifikationen).

2. Bei der Definition eines benannten Index darf die Summe der Längen der Spalten, über die der Index angelegt werden soll, nicht größer als 1024 Bytes sein.

Benutzerreaktion

1. Korrigieren Sie die Definition der Längen, oder versuchen Sie, mit weniger Spalten als Schlüssel auszukommen.

3. Versuchen Sie, den benannten Index aus weniger Spalten zu bilden.


-2002: One output column too long (MaxDB: Meldungen)

-2002: One output column too long

Erläuterung:

Infolge einer Verkettung von Werten wurde ein zu langer alphanumerischer Wert erzeugt.

Benutzerrreaktion:

Verzichten Sie auf diese Art der Ausgabe. Wenn davon auszugehen ist, dass die Werte in einer Spalte alle kürzer sind als die für diese Spalte definierte Maximallänge, dann können Sie versuchen, durch die Funktion SUBSTR eine Verkürzung des Ergebnisses auf weniger Zeichen zu erzielen. In jedem Fall können die an der Verkettung beteiligten Spalten oder Ausdrücke einzeln ausgegeben werden.


-2003: Output columns too long (MaxDB: Meldungen)

-2003: Output columns too long

Erläuterung:

Folgende Ursachen sind möglich:

...

1. Die Summe der Längen der Ausgabespalten ist größer als 8084 Bytes.

2. Die Länge der Ausgabespalten zusammen mit den in der ORDER- oder GROUP-Klausel angegebenen Spalten ist größer als 8084 Bytes.

3. In einer SQL-Anweisung mit korrespondierenden Subqueries (Correlated Subqueries) ist die Länge der Ausgabespalten zusammen mit den korrespondierenden Spalten und den Spalten aus Prädikaten, die eine Subquery enthalten, größer als 8084 Bytes.

Benutzerreaktion:

...

1. Verringern Sie die Anzahl der Ausgabespalten.

2. Versuchen Sie, ohne Sortierung bzw. Gruppierung auszukommen oder die Sortierung bzw. Gruppierung über kürzere bzw. weniger Spalten zu verlangen.

3. Versuchen Sie, mit weniger Ausgabespalten oder korrespondierenden Spalten auszukommen, oder den gewünschten Effekt durch mehrere SQL-Anweisungen zu erreichen.


-2004: Numeric constant too long (MaxDB: Meldungen)

-2004: Numeric constant too long

Erläuterung:

...

1. Die Zahl enthält mehr als 38 Ziffern (Technische Spezifikationen).

2. Die Zahl entspricht nicht der Definition des Wertebereichs.

Benutzerreaktion:

Aus der Positonsangabe in der Fehlermeldung ist ersichtlich, welche Zahl fehlerhaft eingegeben wurde.

...

1. Sie müssen die Zahl auf 38 signifikante Ziffern verkürzen und gegebenenfalls als Floating-Point-Literal angeben.

2. Überprüfen Sie die Definition des Wertebereichs. Korrigieren Sie die Zahlenangabe entsprechend.


-2008: Data area too small (MaxDB: Meldungen)

-2008: Data area too small

Erläuterung:

· Die Wiederherstellung einer Datenbankinstanz ist nicht möglich, da die Datenbankinstanz, die wiederhergestellt werden soll, größer ist als die Zieldatenbankinstanz, die für die Wiederherstellung angegeben wurde.

· Die Installation einer Datenbankinstanz ist nicht möglich, da für sie zu wenig Platz für die Ablage von Daten definiert wurde.

Benutzerreaktion:

· Erhöhen Sie die Volume-Größe der Zieldatenbankinstanz.

· Erhöhen Sie die Volume-Größe auf einen Wert größer 2000 Seiten.


-2009: Join columns too long (MaxDB: Meldungen)

-2009: Join columns too long

Erläuterung:

Die interne Länge der Join-Spalten einer Tabelle darf 1020 Bytes nicht übersteigen. Join-Spalten sind die Spalten, die in einem JOIN-Prädikat enthalten sind.

WHERE (S.A = T.V AND S.B < T.W)

Die Join-Spalten der Tabelle S sind die Spalten S.A und S.B. Die interne Länge der Join-Spalten von S ist die interne Länge der Spalte S.A plus der internen Länge der Spalte S.B. Die interne Länge der Join-Spalten von S darf 1020 Bytes nicht übersteigen.

Benutzerreaktion:

Versuchen Sie, das erwartete Ergebnis zu erzielen, indem Sie mehrere QUERY-Anweisungen angeben und Ergebnistabellen als Zwischenergebnisse erzeugen.


-2010: Assignment impossible, char value too long (MaxDB: Meldungen)

-2010: Assignment impossible, char value too long

Erläuterung:

Bei einer INSERT-Anweisung mit einem QUERY-Ausdruck oder bei einer UPDATE-Anweisung wurde versucht, einer Spalte vom Datentyp CHAR eine zu lange Zeichenkette zuzuweisen. Die Fehlermeldung tritt bei dem ersten zu langen Wert auf und nicht bei der Analyse der maximalen Spaltenlängen.

Benutzerreaktion:

Sie können die Zeilen mit einem zu langen Wert durch ein SELECT... WHERE LENGTH (<column name>) > <unsigned_integer> ermitteln. Die Länge der entsprechenden Spalte kann mit einer ALTER TABLE-Anweisung vergrößert werden.


-2012: View column list too long (MaxDB: Meldungen)

-2012: View column list too long

Erläuterung:

In der CREATE VIEW-Anweisung muss die Anzahl der zu definierenden Spalten der View-Tabelle gleich der Anzahl der Spalten sein, die als Ergebnis des QUERY-Ausdrucks geliefert werden. Im vorliegenden Fall wurde versucht, mehr View-Tabellenspalten zu definieren, als im Ergebnis der QUERY-Anforderung vorhanden sind.

Benutzerreaktion:

Verringern Sie die Anzahl der in der SQL-Anweisung angegebenen View-Tabellenspalten.


-2013: Select column list too long (MaxDB: Meldungen)

-2013: Select column list too long

Erläuterung:

Folgende Ursachen sind möglich:

1. In der CREATE VIEW-Anweisung muss die Anzahl der zu definierenden Spalten der View-Tabelle gleich der Anzahl der Spalten sein, die als Ergebnis des QUERY-Ausdrucks geliefert werden. Im vorliegenden Fall gibt es mehr Spalten im Ergebnis der QUERY-Anforderung als definierte View-Tabellenspalten.

2. Die Anzahl der Ausgabespalten einer Subquery, die in einer SET UPDATE-Klausel angegeben wurde, muss genau eins sein. In einigen SQL-Modi gilt diese Restriktion auch im Vergleichprädikat, Mengenvergleichsprädikat und IN-Prädikat. Im vorliegenden Fall lieferte die Subquery mehr als eine Ausgabespalte.

3. Es wurde eine SQL-Anweisung zur Datenanfrage angegeben. Die Anzahl der Ausgabespalten muss kleiner oder gleich 254 sein. Diese Anzahl wurde im vorliegenden Fall überschritten.

Benutzerreaktion

1. Erhöhen Sie die Anzahl der in der CREATE VIEW-Anweisung angegebenen View-Tabellenspalten oder verringern Sie die Anzahl von Ausgabespalten des QUERY Ausdrucks.

2. Beschränken Sie die Anzahl von Ausgabespalten der Subquery auf eine.

3. Korrigieren Sie die SQL-Anweisung zur Datenanfrage, indem Sie auf eine oder mehrere Ausgabespalten verzichten.


-2014: Identifier too long (MaxDB: Meldungen)

-2014: Identifier too long

Erläuterung:

Der angegebene Bezeichner ist für den verwendeten SQL-Modus zu lang.

Benutzerreaktion:

Achten Sie bei Angabe des Bezeichners auf die in der Tabelle angegebenen Beschränkungen:

SQL-Modus | Länge des Bezeichners
ANSI | Maximal 18 Zeichen
DB2 | Maximal 18 Zeichen
ORACLE | Maximal 30 Zeichen
INTERNAL | Maximal 32 Zeichen


-2020: Data buffer too small (MaxDB: Meldungen)

-2020: Data buffer too small

Erläuterung:

Momentan ist im Data-Cache kein Speicherplatz verfügbar. Die Ausführung der SQL-Anweisung wurde abgebrochen. Das Datenbanksystem führt ein implizites SHUTDOWN durch.

Benutzerreaktion:

Führen Sie ein Restart der Datenbankinstanz mit vergrößertem Data-Cache durch.


-2025: Invalid number of backup devices (MaxDB: Meldungen)

-2025: Invalid number of backup devices

Erläuterung:

Die Anzahl der Sicherungsgeräte, die bei der Sicherung bzw. Wiederherstellung angegeben wurde, entspricht nicht dem Datenbankparameter MAXBACKUPDEVS.

Benutzerreaktion:

Mit Hilfe des Werkzeuges zur Datenbankverwaltung ist der Parameter zu überprüfen und gegebenenfalls zu korrigieren.


-2027: Space for converted value too small (MaxDB: Meldungen)

-2027: Space for converted value too small

Erläuterung

Es wurde versucht, Daten aus einer ASCII- oder UCS-2-Darstellung (siehe UNICODE-Fähigkeit) in eine andere Darstellung zu konvertieren. Das ist gescheitert.

Benutzerreaktion

Prüfen Sie, ob die Zielspalte genügend groß definiert wurde. Wenn Sie die Zielspalte nicht vergrößern können, müssen Sie auf eine explizite Konvertierung verzichten. Sie können versuchen, durch explizite Konvertierung der z.B. zum Vergleich verwendeten Daten den Fehler zu vermeiden.


-2028: Sequence <sequence name> exhausted (MaxDB: Meldungen)

-2028: Sequence <sequence name> exhausted

Erläuterung:

Es wurde versucht, mit <sequence name>.NEXTVAL den nächsten Wert der angegebenen Sequenz zu ermitteln. Das ist aus einem der folgenden Gründe nicht möglich:

...

1. Der nächste Wert würde nicht in den für Sequenzen zur Verfügung stehenden Datentyp passen.

2. Der nächste Wert wäre größer als der durch MAXVALUE bei der CREATE SEQUENCE-Anweisung angegebene Wert, und es wurde implizit oder explizit NOCYCLE angegeben.

3. Der nächste Wert wäre kleiner als der durch MINVALUE bei der CREATE SEQUENCE-Anweisung angegebene Wert, und es wurde implizit oder explizit NOCYCLE angegeben.

Benutzerreaktion:

...

1. Geben Sie den gewünschten Wert explizit an.

2. Löschen und erzeugen Sie die Sequenz erneut. Dadurch wird gewährleistet, dass die Werte der Sequenz zyklisch erzeugt werden bzw. ein größerer MAXVALUE bzw. kleinerer MINVALUE verwendet wird. Geben Sie gegebenenfalls START WITH mit dem zuletzt vergebenen Wert an. Danach können Sie SQL-Anweisung erneut verwenden.


-2029: <sequence name>.CURRVAL is not yet defined in this sessio (MaxDB: Meldungen)

-2029: <sequence name>.CURRVAL is not yet defined in this session

Erläuterung:

Sie haben versucht, <sequence_name>.CURRVAL (Spezifikation von Werten (value_spec)) auszuführen, bevor Sie innerhalb dieser Datenbanksitzung <sequence_name>.NEXTVAL verwendet haben.

Benutzerreaktion:

Führen Sie zuerst <sequence_name>.NEXTVAL und danach <sequence_name>.CURRVAL aus.


Von -3000 bis -3999 (MaxDB: Meldungen)

Von -3000 bis -3999

Fehlermeldungen aus dem Datenbankkern

-3000 | Invalid host file content
-3002 | Invalid data type
-3003 | Invalid user name
-3004 | Invalid host file sequence
-3005 | Invalid SQL statement
-3007 | Invalid sequence for DML and DDL statements
-3008 | Invalid keyword or missing delimiter
-3009 | Invalid table name
-3011 | Invalid column name
-3014 | Invalids end of SQL statement
-3016 | Invalid numeric constant
-3017 | Invalid unsigned integer
-3018 | Invalid numeric parameter
-3019 | Invalid exponent
-3020 | Invalid length for this data type
-3021 | Invalid mixture of functions and columns
-3022 | Invalid number of tables for outer join
-3024 | Invalid numeric expression
-3030 | Invalid SESSION TIMEOUT
-3035 | Invalid date time format
-3037 | Invalid Volume name
-3038 | Invalid Volume size
-3046 | Invalid char position in string funktion
-3047 | Invalid table for RESTORE CATALOG
-3048 | Invalid date format
-3049 | Invalid time format
-3050 | Invalidtimestamp format
-3054 | Invalid block size
-3059 | Invalid day of week
-3060 | Invalid escape sequence
-3061 | Invalidr escape value
-3062 | Invalid month
-3063 | Invalid format code
-3064 | Date input value out of range
-3065 | Invalid date input value
-3066 | Date input value inconsistent
-3067 | Invalid timezone
-3068 | Mismatch of parameter configuration between backup and instance
-3069 | Bad xparam page in backup
-3102 | Invalid subtrans structure
-3103 | Invalid sequenz definition
-3995 | Invalid pattern
-3998 | Wrong password
-3999 | Invalid parameter


-3000: Invalid host file content (MaxDB: Meldungen)

-3000: Invalid host file content

Erläuterung:

Das verwendete Sicherungsmedium oder Sicherungsgerät hat keinen zum Menübefehl passenden Inhalt.

Benutzerreaktion:

Geben Sie das passende Sicherungsmedium oder Sicherungsgerät an. Bei Folgebandverarbeitung müssen alle bisher geladenen Versionen erneut geladen werden.


-3002: Invalid datatype (MaxDB: Meldungen)

-3002: Invalid datatype

Erläuterung:

Der angegebene Datentyp ist in dem aktuell gültigen SQL-Modus unbekannt.

Benutzerreaktion:

Verwenden Sie einen der zulässigen Datentypen.


-3003: Invalid user name (MaxDB: Meldungen)

-3003: Invalid user name

Erläuterung:

Der angegebene Benutzername entspricht nicht der Syntax für den Benutzer.

Benutzerreaktion:

Korrigieren Sie den in der SQL-Anweisung angegebenen Benutzernamen.


-3004: Invalid host file sequence (MaxDB: Meldungen)

-3004: Invalid host file sequence

Erläuterung:

Das bei der Folgebandverarbeitung zur Fortsetzung der Wiederherstellung angegebene Sicherungsmedium oder Sicherungsgerät hat keinen zum bisher ausgeführten Kommando passenden Inhalt.

Benutzerreaktion:

Der Fehlertext enthält zusätzlich eine betriebssystemspezifisch zu interpretierende Fehlerbeschreibung.

Geben Sie das zur Fortsetzung der Aktion passende Sicherungsmedium oder das Sicherungsgerät an.


-3005: Invalid SQL statement (MaxDB: Meldungen)

-3005: Invalid SQL statement

Erläuterung:

Die SQL-Anweisung enthält entweder einen Schreibfehler in den ersten beiden Schlüsselwörtern, ist in diesem SQL-Modus unbekannt oder in dieser Datenbankversion nicht erlaubt.

Benutzerreaktion:

Korrigieren Sie die Schreibfehler, oder geben Sie eine andere SQL-Anweisung an.


-3007: Invalid sequence for DML and DDL statements (MaxDB: Meldungen)

-3007: Invalid sequence for DML and DDL statements

Erläuterung:

Zwischen einer QUERY-Anweisung, die keine Ergebnistabelle aufbaut, und den dazugehörigen FETCH-Anweisungen wurden Änderungen im Datenbankkatalog vorgenommen, die die der QUERY-Anweisung zugrundeliegende Tabelle betrafen.

Benutzerreaktion:

Führen Sie die QUERY- und die FETCH-Anweisung nochmals aus.


-3008: Invalid keyword or missing delimiter (MaxDB: Meldungen)

-3008: Invalid keyword or missing delimiter

Erläuterung:

Die SQL-Anweisung enthält ein falsches Schlüsselwort oder ein Schlüsselwort, das in dem aktuell gültigen SQL-Modus unbekannt ist, oder es fehlt ein Schlüsselwort oder Trennzeichen.

Benutzerreaktion:

Korrigieren Sie die SQL-Anweisung entsprechend der Syntaxbeschreibung und dem aktuell gültigen SQL-Modus.


-3009: Invalid table name (MaxDB: Meldungen)

-3009: Invalid table name

Erläuterung:

Der angegebene Tabellenname entspricht nicht der Syntax.

Benutzerreaktion:

Korrigieren Sie den in der SQL-Anweisung angegebenen Tabellennamen.


-3011: Invalid column name (MaxDB: Meldungen)

-3011: Invalid column name

Erläuterung:

Der angegebene Spaltenname entspricht nicht der Syntax.

Benutzerreaktion:

Korrigieren Sie den in der SQL-Anweisung angegebenen Spaltennamen.


-3014: Invalid end of SQL statement (MaxDB: Meldungen)

-3014: Invalid end of SQL statement

Erläuterung:

Die angegebene SQL-Anweisung ist laut Syntax in dem aktuell gültigen SQL-Modus nicht zulässig.

Benutzerreaktion:

Aus der Fehlerposition ist ersichtlich, an welcher Stelle die eingegebene SQL-Anweisung von der zulässigen Syntax abweicht.


-3016: Invalid numeric constant (MaxDB: Meldungen)

-3016: Invalid numeric constant

Erläuterung:

...

1. Die angegebene Zahl stimmt nicht mit dem Datentyp der Spalte überein.

2. Die angegebene Länge des Ergebnisses einer Funktion, z. B. LPAD, CHR etc., ist nicht zulässig. Sie muss zwischen 1 und der maximal zulässigen Länge einer Spalte vom Datentyp CHAR liegen.

Benutzerreaktion:

...

1. Ermitteln Sie den Datentyp der Spalte durch eine QUERY-Anweisung, angewandt auf die Systemtabelle DOMAIN.COLUMNS.

2. Korrigieren Sie die angegebene Länge des Ergebnisses der Funktion.


-3017: Invalid unsigned integer (MaxDB: Meldungen)

-3017: Invalid unsigned integer

Erläuterung:

Es wurde keine zulässige Zahl angegeben.

Benutzerreaktion:

Korrigieren Sie die SQL-Anweisung.


-3018: Invalid numeric parameter (MaxDB: Meldungen)

-3018: Invalid numeric parameter

Erläuterung:

Der angegebene Wert ist keine zulässige Zahl.

Benutzerreaktion:

Überprüfen Sie den als Parameter übergebenen numerischen Wert.


-3019: Invalid exponent (MaxDB: Meldungen)

-3019: Invalid exponent

Erläuterung:

Folgende Ursachen sind möglich:

...

1. Ein numerisches Endergebnis oder ein Zwischenergebnis ist größer oder kleiner als die durch eine Gleitkommazahl darstellbaren Werte.

2. Ein numerischer Wert ist größer oder kleiner, als es der Datentyp einer angegebenen Spalte zuläßt.

Benutzerreaktion:

...

1. Ist ein numerisches Zwischenergebnis zu groß oder zu klein, dann können Sie versuchen, durch Umstellung der Rechenschritte einen Überlauf bzw. Unterlauf zu verhindern.

2. Sie können den Datentyp der Spalte durch eine QUERY-Anweisung, angewandt auf die Systemtabelle DOMAIN.COLUMNS, ermitteln. Korrigieren Sie die Werte entsprechend.


-3020: Invalid length for this data type (MaxDB: Meldungen)

-3020: Invalid length for this data type

Erläuterung:

Die für den Datentyp angegebene Länge ist nicht zulässig.

Benutzerreaktion:

...

1. Wählen Sie für das Längenattribut einer Spalte mit dem Datentyp CHAR einen Wert aus dem Bereich 1 bis 254 (SQL-Modus ANSI) bzw. 1 bis 8000 (SQL-Modus INTERNAL und ORACLE) bzw. 1 bis 4000 (SQL-Modus DB2).

2. Wählen Sie für die Genauigkeit einer Spalte mit dem Datentyp FIXED oder FLOAT einen Wert aus dem Bereich 1 bis 38.


-3021: Invalid mixture of functions and columns (MaxDB: Meldungen)

-3021: Invalid mixture of functions and columns

Erläuterung:

...

1. Wenn in einer SELECT <select_column>-Anweisung eine Set-Funktion (COUNT, MAX/MIN, SUM, AVG, VARIANCE, STDDEV) vorkommt, dann dürfen keine Nicht-Gruppierspalten in dieser Folge von ausgewählten Spalten (select_column) auftreten.

2. Es ist unzulässig, Mengenfunktionen zu schachteln, z. B. AVG (SUM...).

3. Eine korrespondierende Subquery S, die in der WHERE-Klausel der QUERY-Spezifikation Q enthalten ist, darf keine Mengenfunktionen auf Spalten von Tabellen enthalten, die in der FROM-Klausel der QUERY-Spezifikation Q angegeben sind.

Benutzerreaktion:

Korrigieren Sie die SQL-Anweisung je nach Fehlerfall.

Sie können versuchen, den gewünschten Effekt ohne Schachtelung von Mengenfunktionen zu erreichen, indem Sie mehrere QUERY-Anweisungen verwenden, die jeweils eine Mengenfunktion enthalten.

Innerhalb einer QUERY-Anweisung kann der Effekt durch die Angabe eines QUERY-Ausdrucks in der FROM-Klausel erreicht werden.


-3022: Invalid number of tables for outer join (MaxDB: Meldungen)

-3022: Invalid number of tables for outer join

Erläuterung:

Wurde in mindestens einem Join-Prädikat der QUERY-Spezifikation ein OUTER JOIN-Indikator angegeben, dann muss die Anzahl der Tabellen, die der FROM-Klausel der QUERY-Spezifikation zugrunde liegen, genau zwei sein oder es muss folgendes gelten:

...

1. Nur für eine der in der FROM-Klausel angegebenen Tabellen werden OUTER JOIN-Indikatoren angegeben.

2. Alle Joins dieser Tabelle zu genau einer anderen Tabelle enthalten jeweils den OUTER JOIN INDICATOR.

3. Alle anderen Joins enthalten keinen OUTER JOIN INDICATOR.

Benutzerreaktion:

Versuchen Sie, die gegebenenfalls fehlenden OUTER JOIN-Indikatoren hinzuzufügen oder die SQL-Anweisung in mehrere SQL-Anweisungen aufzuteilen oder den gewünschten Effekt durch QUERY-Ausdrücke in der FROM-Klausel zu erzielen.


-3024: Invalid numeric expression (MaxDB: Meldungen)

-3024: Invalid numeric expression

Erläuterung:

Die Division durch 0 gehört nicht zu einer gewählten Spalte der äußersten QUERY-Spezifikation.

Benutzerreaktion:

Prüfen Sie, ob dieser Fehler durch geeignete Angaben (Prädikate) verhindert werden kann.


-3030: Invalid SESSION TIMEOUT (MaxDB: Meldungen)

-3030: Invalid SESSION TIMEOUT

Erläuterung:

...

1. Der bei der CREATE USER- oder CREATE USERGROUP-Anweisung angegebene Timeout-Wert ist ungültig.

2. Wird bei der CONNECT-Anweisung ein Timeout-Wert angegeben, muss dieser Wert kleiner oder gleich dem für diesen Benutzer maximal möglichen Timeout-Wert sein.

Benutzerreaktion:

...

1. Für den Datenbankparameter SESSION_TIMEOUT ist ein Wert zwischen 30 und 32400 Sekunden zu wählen.

2. Wurde für diesen Benutzer kein eigener Timeout-Wert bei der CREATE USER- oder CREATE USERGROUP-Anweisung definiert, ist dieser Maximalwert gleich dem Datenbankparameter SESSION_TIMEOUT.

Wurde ein benutzerspezifischer Timeout-Wert bei der CREATE USER- oder CREATE USERGROUP-Anweisung definiert, ist das der Maximalwert.

3. Wird bei der CONNECT-Anweisung der Wert 0 für den Timeout-Wert angegeben, dann findet keine Überprüfung der Inaktivitätsdauer der Sitzung statt.


-3035: Invalid date time format (MaxDB: Meldungen)

-3035: Invalid date time format

Erläuterung:

Das bei der Installation angegebene Datums- und Zeitformat (DATE_TIME_FORMAT) ist nicht zulässig.

Benutzerreaktion:

Geben Sie für das Datums- und Zeitformat EUR, INTERNAL, ISO, JIS oder USA an.


-3037: Invalid volume name (MaxDB: Meldungen)

-3037: Invalid volume name

Erläuterung

Der bei der Installation angegebene Volume-Name ist unzulässig. Dieser Name ist von der Umgebung abhängig, in der das Datenbanksystem läuft. Im allgemeinen handelt es sich dabei um einen Betriebssystemdateinamen.

Benutzerreaktion

Der Fehlertext enthält den fehlerhaften Volume-Namen. Geben Sie den Namen entsprechend den Konventionen der Umgebung, in der das Datenbanksystem läuft, an.


-3038: Invalid volume size (MaxDB: Meldungen)

-3038: Invalid volume size

Erläuterung

Der bei der Installation für die Größe eines Volume angegebene Wert ist keine gültige Zahl.

Benutzerreaktion

Geben Sie eine gültige Zahl an.


-3046: Invalid char position in string function (MaxDB: Meldungen)

-3046: Invalid char position in string function

Erläuterung:

In einer Stringfunktion wurde für eine Position ein unzulässiger Wert angegeben.

Benutzerreaktion:

Geben Sie in der SQL-Anweisung als Position einen Wert an, der größer als 0 und kleiner oder gleich der definierten Spaltenbreite ist.


-3047: Invalid table for RESTORE CATALOG (MaxDB: Meldungen)

-3047: Invalid table for RESTORE CATALOG

Erläuterung:

In der RESTORE CATALOG-Anweisung wurde eine Tabelle angegeben, die keine mit der SAVE CATALOG-Anweisung erzeugten Daten enthält.

Benutzerreaktion:

Geben sie eine Tabelle an, deren Daten durch die SAVE CATALOG-Anweisung erzeugt wurden.


-3048: Invalid date format (MaxDB: Meldungen)

-3048: Invalid date format

Erläuterung:

Der angegebene Wert ist als Datumswert nicht zulässig oder entspricht nicht dem bei der Installation oder der aktuellen Sitzung gewählten Datums- und Zeitformat.

Benutzerreaktion:

Korrigieren Sie den Datumswert.


-3049: Invalid time format (MaxDB: Meldungen)

-3049: Invalid time format

Erläuterung:

Der angegebene Wert ist als Zeitwert nicht zulässig oder entspricht nicht dem bei der Installation oder der aktuellen Sitzung gewählten Datums- und Zeitformat.

Benutzerreaktion:

Korrigieren Sie den Zeitwert.


-3050: Invalid timestamp format (MaxDB: Meldungen)

-3050: Invalid timestamp format

Erläuterung:

Der angegebene Wert ist als Zeitstempelwert nicht zulässig oder entspricht nicht dem bei der Installation oder der aktuellen Sitzung gewählten Datums- und Zeitformat.

Benutzerreaktion:

Korrigieren Sie den Zeitstempelwert.


-3054: Invalid block size (MaxDB: Meldungen)

-3054: Invalid block size

Erläuterung

...

1. Die bei der Datensicherung oder bei der Wiederherstellung angegebene Blockungsgröße ist nicht zulässig.

2. (liveCache) Bei der Registrierung eines bereits existierenden Containers stimmt die angegebene Länge eines Objektes nicht mit der im Datenbankkatalog abgelegten Länge überein.

Benutzerreaktion

...

1. Setzen Sie die Blockungsgröße auf einen Wert >= 1.

2. Registrieren Sie den Container mit der im Datenbankkatalog abgelegten Länge.


-3059: Invalid day of week (MaxDB: Meldungen)

-3059: Invalid day of week

Erläuterung:

Im Datumswert wurde ein in der gewählten Sprache oder in dem gewählten Format unzulässiger Wochentag angegeben.

Benutzerreaktion:

Überprüfen Sie die gewählte Sprache und das Format. Wiederholen Sie die SQL-Anweisung mit einer korrekten Angabe eines Wochentages. Bei Angabe des Formatelementes DAY sind die Wochentage auszuschreiben, bei DY durch ihre dreibuchstabigen Kürzel anzugeben.


-3060: Invalid escape sequence (MaxDB: Meldungen)

-3060: Invalid escape sequence

Erläuterung:

Das Escape-Zeichen darf nur vor einem Zeichen match_char stehen, das gleich dem Escape-Zeichen ist, vor einem match_string oder vor einem match_set, das kein match_char-Zeichen ist.

Benutzerreaktion:

Entfernen Sie das überflüssige Escape-Zeichen.


-3061: Invalid escape value (MaxDB: Meldungen)

-3061: Invalid escape value

Erläuterung:

Als Escape-Zeichen ist nur genau ein Zeichen zulässig.

Benutzerreaktion:

Verkürzen Sie das Escape-Zeichen auf ein Zeichen.


-3062: Invalid month (MaxDB: Meldungen)

-3062: Invalid month

Erläuterung:

Im Datumswert wurde ein in der gewählten Sprache oder in dem gewählten Format unzulässiger Monat angegeben.

Benutzerreaktion:

Überprüfen Sie die gewählte Sprache und das Format. Wiederholen Sie die SQL-Anweisung mit einer korrekten Angabe eines Monats. Bei Angabe des Formatelementes MONTH sind die Monate auszuschreiben, bei MON durch ihre dreibuchstabigen Kürzel anzugeben.


-3063: Invalid format code (MaxDB: Meldungen)

-3063: Invalid format code

Erläuterung:

Die Formatangabe in einer Funktion zur Umwandlung von Datums- oder Zahlenangaben enthält ein unzulässiges Formatelement.

Benutzerreaktion:

Entfernen Sie das unzulässige Formatelement.


-3064: Date input value out of range (MaxDB: Meldungen)

-3064: Date input value out of range

Erläuterung:

In einer Funktion zur Umwandlung eines Wertes in einen Datumswert wurde für ein Formatelement ein unzulässiger Wert angegeben.

Grenzen für Formatelemente

Jahr | YYYY | 1-4713
Tag des Monats | DD | 1-28/29/30/31
Tag des Jahres | DDD | 1-365/366
Wochentag | D | 1-7
Stunden | HH,HH12 | 1-12
Stunden | HH24 | 0-23
Minuten | MI | 0-59
Sekunden | SS | 0-59
Sekunden des Tages | SSSSS | 0-86399
Julianischer Tag | J | 1-3442447

Benutzerreaktion:

Korrigieren Sie den Wert.


-3065: Invalid date input value (MaxDB: Meldungen)

-3065: Invalid date input value

Erläuterung:

Der in einen Datumswert umzuwandelnde Wert enthält entweder ein ungültiges, zu viele oder zu wenige Elemente.

Benutzerreaktion:

Korrigieren Sie den Wert entsprechend dem Format.


-3066: Date input value inconsistent (MaxDB: Meldungen)

-3066: Date input value inconsistent

Erläuterung:

Es wurden die Daten von zwei Formatelementen umgewandelt, deren Werte sich widersprechen. Das kann z.B. daran liegen, dass ein julianischer Tag angegeben wurde, dieser aber nicht im angegebenen Jahr oder Monat liegt oder einen anderen Tag im Monat bezeichnet. Es kann auch daran liegen, dass die Sekunden des Tages angegeben wurden, diese aber nicht den angegebenen Stunden oder Minuten oder Sekunden der Minute entsprechen.

Benutzerreaktion:

...

1. Verzichten Sie auf eins der Formatelemente, deren Werte sich widersprechen.

2. Passen Sie die Werte der beiden Formatelemente einander an.


-3067: Invalid timezone (MaxDB: Meldungen)

-3067: Invalid timezone

Erläuterung:

In der Funktion NEW_TIME wurde ein unzulässiger Wert für die Zeitzone angegeben.

Benutzerreaktion:

Wiederholen Sie die SQL-Anweisung mit einer zulässigen Zeitzone.


-3068: Mismatch of parameter configuration between backup and in (MaxDB: Meldungen)

-3068: Mismatch of parameter configuration between backup and instance

Erläuterung:

Bei einer Datensicherung werden auch die Datenbankparameter gesichert. Wenn Daten wiederhergestellt werden, wird vorher überprüft, ob die Datenbankparameter aus der Datensicherung mit den aktuellen Datenbankparametern der Zieldatenbankinstanz kompatibel sind.

Die Sicherung einer UNICODE-Datenbank darf nicht in eine nicht-UNICODE-Datenbank eingespielt werden.

Benutzerreaktion:

Die Datenbankparamter der Zieldatenbank müssen mit den in der Datensicherung gespeicherten Datenbankparametern übereinstimmen. Zur Zeit betrifft das nur den speziellen Datenbankparameter _UNICODE.


-3069: Bad xparam page in backup (MaxDB: Meldungen)

-3069: Bad xparam page in backup

Erläuterung:

Die Datensicherung enthält eine korrupte Seite, in der xparam-Parameter abgelegt sind. Da diese Seite nur in der Sicherung vorkommt, ist dieser Fall nicht so kritisch wie der Fall einer korrupten Daten- oder Log-Seite. Allerdings bricht die Datensicherung ab.

Benutzerreaktion:

Wenden Sie sich an den Support.


-3102: Invalid subtrans structure (MaxDB: Meldungen)

-3102: Invalid subtrans structure

Erläuterung:

Innerhalb einer Datenbankprozedur wurden dynamisch mehr oder weniger Subtransaktionen geöffnet als geschlossen. Die innerhalb der Datenbankprozedur geöffneten, aber bis zum Ende der Datenbankprozedur nicht wieder geschlossenen Subtransaktionen wurden zurückgerollt.

Benutzerreaktion:

Prüfen Sie, durch welchen Fehler in der Datenbankprozedur diese Schachtelung von Subtransaktionen erzeugt wurde. Korrigieren Sie die Datenbankprozedur.


-3103: Invalid sequence definition (MaxDB: Meldungen)

-3103: Invalid sequence definition

Erläuterung:

Folgende Ursachen sind möglich:

...

1. Beim CREATE SEQUENCE wurde der Wert 0 für die Schrittweite zwischen zwei Zahlen angegeben, die durch die Sequenz zu erzeugen sind. Das ist nicht zulässig.

2. Beim CREATE SEQUENCE wurde ein Startwert angegeben, der außerhalb des Bereiches liegt, der durch den Minimal- und den Maximalwert angegeben wurde, oder es wurde ein Minimalwert angegeben, der größer als der Maximalwert ist.

Benutzerreaktion:

...

1. Wiederholen Sie das Kommando mit einer ganzzahligen, positiven oder negativen Zahl.

2. Wiederholen Sie das Kommando, wobei der Startwert und/oder die Minimal- und Maximalwerte zu verändern sind.


-3995: Invalid pattern (MaxDB: Meldungen)

-3995: Invalid pattern

Erläuterung:

Der angegebene Wert in einem LIKE-Prädikat entspricht nicht der Syntax für LIKE-Ausdrücke (like_expression).

Benutzerreaktion:

Korrigieren Sie den Wert gemäß den Syntaxregeln für LIKE-Ausdrücke eines LIKE-Prädikats.


-3998: Wrong password (MaxDB: Meldungen)

-3998: Wrong password

Erläuterung:

Eine Rolle sollte aktiviert werden. Das angegebene Kennwort entspricht nicht dem bei der Definition der Rolle angegebenen.

Benutzerreaktion:

Korrigieren Sie das Kennwort.


-3999: Invalid parameter (MaxDB: Meldungen)

-3999: Invalid parameter

Erläuterung:

...

1. Es wurde ein unzulässiger Datenbankparameter angegeben.

2. Es wurde ein unzulässiger Parameter in der Folge von Parametern einer CREATE TRIGGER-Anweisung angegeben. In einem INSERT-Trigger ist die Verwendung von OLD, in einem DELETE-Trigger die Verwendung von NEW unzulässig.

Benutzerreaktion:

...

1. Der Fehlertext enthält eine genauere Fehlerbeschreibung. Korrigieren Sie die Parameterwerte entsprechend.

2. Korrigieren Sie die Parameter entsprechend.


Von -4000 bis -4999 (MaxDB: Meldungen)

Von -4000 bis -4999

Fehlermeldungen aus dem Datenbankkern

-4000 | Unknown result table
-4002 | Unknown password
-4003 | Unknown user name
-4004 | Unknown table name
-4005 | Unknown column name
-4006 | Unknown domain name
-4007 | Unknown synonym name
-4008 | Unknown user name/password combination
-4009 | Unknown referential constraint name
-4010 | Unknown MAPCHARSET name
-4011 | Unknown index name
-4013 | Unknown usergroup name
-4014 | Unknown SERVERDB name
-4016 | Unknown procedure name
-4017 | Unknown constraint
-4018 | Unknown default
-4019 | Unknown trigger name
-4020 | Unknown sequence name
-4023 | Unknown funktion name
-4024 | Unknown name
-4025 | Unknown or not loaded character set
-4027 | Unknown session


-4000: Unknown result table (MaxDB: Meldungen)

-4000: Unknown result table

Erläuterung:

Es gibt keine Ergebnistabelle mit dem angegebenen Namen.

Benutzerreaktion:

Mit einer QUERY-Anweisung, angewandt auf die Systemtabelle DOMAIN.TABLES, können Sie die Namen der existierenden Ergebnistabellen ermitteln. Korrigieren Sie den Namen der Ergebnistabelle, oder prüfen Sie, warum die Ergebnistabelle mit dem angegebenen Namen schon gelöscht wurde.

Bei einer COMMIT-Anweisung werden im SQL-Modus ANSI und DB2 implizit alle Ergebnistabellen geschlossen. Im SQL-Modus DB2 kann dieses Verhalten durch die Angabe von WITH HOLD verhindert werden.

Bei einer ROLLBACK-Anweisung werden außer im SQL-Modus ORACLE implizit alle Ergebnistabellen geschlossen, die innerhalb dieser Transaktion erzeugt wurden.


-4002: Unknown password (MaxDB: Meldungen)

-4002: Unknown password

Erläuterung:

Das angegebene Kennwort ist nicht bekannt.

Benutzerreaktion:

Wiederholen Sie die ALTER PASSWORD-Anweisung mit dem richtigen Kennwort.


-4003: Unknown user name (MaxDB: Meldungen)

-4003: Unknown user name

Erläuterung:

Es gibt keinen Benutzer mit diesem Namen.

Benutzerreaktion:

Mit einer QUERY-Anweisung, angewandt auf die Systemtabelle DOMAIN.USERS, ist es für einen DBA oder den SYSDBA möglich, die bekannten Benutzernamen zu ermitteln. Andere Benutzer können mit einer QUERY-Anweisung, angewandt auf die Systemtabelle DOMAIN.USERS, die Benutzer ermitteln, die zu dem gleichen DBA gehören wie sie selbst. Wiederholen Sie die SQL-Anweisung mit einem bekannten Benutzernamen.


-4004: Unknown table name (MaxDB: Meldungen)

-4004: Unknown table name

Erläuterung:

Dem aktuellen Benutzer ist eine Tabelle mit dem angegebenen Namen nicht bekannt. Es ist möglich, dass eine solche Tabelle nicht existiert, oder dass sie existiert, der aktuelle Benutzer aber keine Privilegien für sie bekommen hat.

Benutzerreaktion:

Mit einer QUERY-Anweisung, angewandt auf die Systemtabelle DOMAIN.TABLES, können Sie die Namen der Tabellen ermitteln, für die der aktuelle Benutzer Privilegien besitzt. Korrigieren Sie den Tabellennamen, wobei es gegebenenfalls reicht, den fehlenden Eigentümer voranzustellen. Ist durch diese Aktion der Fehler noch nicht behoben, legen Sie eine Tabelle mit diesem Namen an, oder klären Sie, warum der aktuelle Benutzer kein Privileg für die existierende Tabelle erhalten hat.


-4005: Unknown column name (MaxDB: Meldungen)

-4005: Unknown column name

Erläuterung:

Es gibt keine Spalte mit diesem Namen in einer der angegebenen Tabellen.

Benutzerreaktion:

Mit QUERY-Anweisungen, angewandt auf die Systemtabelle DOMAIN.COLUMNS, können Sie die Namen der in den Tabellen bekannten Spalten ermitteln. Korrigieren Sie den Spaltennamen.


-4006: Unknown domain name (MaxDB: Meldungen)

-4006: Unknown domain name

Erläuterung:

Es gibt keinen Wertebereich mit dem angegebenen Namen.

Benutzerreaktion:

Mit einer QUERY-Anweisung, angewandt auf die Systemtabelle DOMAIN.DOMAINS, können Sie sich eine Liste der bekannten Wertebereiche anzeigen lassen. Ändern Sie den Namen des Wertebereichs in der SQL-Anweisung entsprechend. Dabei kann es ausreichen, den fehlenden Eigentümer voranzustellen.

Ein DBA kann einen Wertebereich mit dem gewünschten Namen und den gewünschten Eigenschaften erzeugen.


-4007: Unknown synonym name (MaxDB: Meldungen)

-4007: Unknown synonym name

Erläuterung:

Es gibt kein Synonym mit diesem Namen.

Benutzerreaktion:

Sie können sich mit einer QUERY-Anweisung, angewandt auf die Systemtabelle DOMAIN.TABLES, anzeigen lassen, welche Synonymnamen existieren. Ändern Sie den Synonymnamen in der SQL-Anweisung entsprechend.


-4008: Unknown user name/password combination (MaxDB: Meldungen)

-4008: Unknown user name/password combination

Erläuterung:

Die angegebene Kombination von Benutzername und Kennwort ist unbekannt. Der Zugang zum Datenbanksystem ist nur mit einer der Datenbankinstanz bekannten Kombination möglich.

Benutzerreaktion:

Ändern Sie die Benutzer- bzw. Kennwortangabe in der SQL-Anweisung.


-4009: Unknown referential constraint name (MaxDB: Meldungen)

-4009: Unknown referential constraint name

Erläuterung:

Es gibt keine referentielle CONSTRAINT-Definition mit dem angegebenen Namen.

Benutzerreaktion:

Sie können sich mit einer QUERY-Anweisung, angewandt auf die Systemtabelle DOMAIN.FOREIGNKEYS, anzeigen lassen, welche CONSTRAINT-Definitionen existieren. Ändern Sie den Namen der referentiellen CONSTRAINT-Anweisung in der SQL-Anweisung entsprechend.


-4010: Unknown MAPCHAR SET name (MaxDB: Meldungen)

-4010: Unknown MAPCHAR SET name

Erläuterung:

Es gibt kein Mapchar-Set mit dem angegebenen Namen.

Benutzerreaktion:

Sie können sich mit einer QUERY-Anweisung, angewandt auf die Systemtabelle DOMAIN.MAPCHARSETS, anzeigen lassen, welche Mapchar-Sets existieren. Ändern Sie den Namen in der SQL-Anweisung entsprechend.


-4011: Unknown index name (MaxDB: Meldungen)

-4011: Unknown index name

Erläuterung:

Es existiert kein benannter Index mit dem angegebenen Namen für die verwendete Tabelle.

Benutzerreaktion:

Sie können sich mit einer QUERY-Anweisung, angewandt auf die Systemtabelle DOMAIN.INDEXES, anzeigen lassen, welche Indizes existieren. Ändern Sie den Indexnamen in der SQL-Anweisung entsprechend.


-4013: Unknown usergroup name (MaxDB: Meldungen)

-4013: Unknown usergroup name

Erläuterung:

Es gibt keine Benutzergruppe mit dem angegebenen Namen.

Benutzerreaktion:

Der Benutzer kann sich mit einer QUERY-Anweisung, angewandt auf die Systemtabelle DOMAIN.USERS, anzeigen lassen, welche Benutzergruppennamen existieren. Ändern Sie den Benutzergruppennamen in der SQL-Anweisung entsprechend.


-4014: Unknown SERVERDB name (MaxDB: Meldungen)

-4014: Unknown SERVERDB name

Erläuterung:

Es gibt keine Datenbankinstanz mit dem angegebenen Namen.

Benutzerreaktion:

Korrigieren Sie den Datenbanknamen.


-4016: Unknown procedure name (MaxDB: Meldungen)

-4016: Unknown procedure name

Erläuterung:

Es gibt keine Datenbankprozedur mit dem angegebenen Namen.

Benutzerreaktion:

Sie können sich mit einer QUERY-Anweisung, angewandt auf die Systemtabelle DOMAIN.DBPROCEDURES, anzeigen lassen, welche Datenbankprozeduren existieren. Ändern Sie den Prozedurnamen in der SQL-Anweisung entsprechend.


-4017: Unknown constraint (MaxDB: Meldungen)

-4017: Unknown constraint

Erläuterung:

Für die angegebene Spalte existiert keine CONSTRAINT-Definition.

Benutzerreaktion:

Es ist keine Benutzerreaktion erforderlich.


-4018: Unknown default (MaxDB: Meldungen)

-4018: Unknown default

Erläuterung:

Für die angegebene Spalte existiert keine DEFAULT-Spezifikation.

Benutzerreaktion:

Fügen Sie eine Defaultspezifikation hinzu.


-4019: Unknown trigger name (MaxDB: Meldungen)

-4019: Unknown trigger name

Erläuterung:

Es gibt keinen Trigger mit dem angegebenen Namen.

Benutzerreaktion:

Sie können sich mit einer QUERY-Anweisung, angewandt auf die Systemtabelle DOMAIN.TRIGGERS, anzeigen lassen, welche Trigger existieren.


-4020: Unknown sequence name (MaxDB: Meldungen)

-4020: Unknown sequence name

Erläuterung:

Es existiert keine Sequenz mit dem angegebenen Namen.

Benutzerreaktion:

Sie können sich mit einer QUERY-Anweisung, angewandt auf die Systemtabelle DOMAIN.SEQUENCES, anzeigen lassen, welche Sequenzen existieren.


-4023: Unknown funktion name (MaxDB: Meldungen)

-4023: Unknown funktion name

Erläuterung:

...

1. Eine Funktion mit dem angegebenen Namen existiert nicht.

2. Es wurde versucht, statt eines zulässigen QUERY-Ausdrucks einen an dieser Stelle nicht zulässige QUERY-Ausdruck (named_query_expression) zu verwenden.

Benutzerreaktion:

Ersetzen Sie den Ausdruck named_query_expression durch einen Ausdruck query_expression. Tritt die Fehlermeldung auf, obwohl kein Ausdruck named_query_expression in der SQL-Anweisung enthalten ist, prüfen Sie, ob die angegebene Funktion nur in dem verwendeten SQL-Modus nicht zur Verfügung steht.

...

1. Verzichten Sie auf die angegebene Funktion.

2. Eröffnen Sie eine Datenbanksitzung mit dem SQL-Modus, in dem die Funktion zur Verfügung steht.

3. Erzeugen Sie eine Datenbankfunktion mit dem angegebenen Namen und der gewünschten Funktionalität.


-4024: Unknown name (MaxDB: Meldungen)

-4024: Unknown name

Erläuterung:

Es existiert kein Datenbankobjekt mit dem angegebenen Namen.

Benutzerreaktion:

Durch QUERY-Anweisungen, angewandt auf Systemtabellen, können Sie ermitteln, welche Objekte für den Anwender aufgrund seiner Privilegierung sichtbar sind.


-4025: Unknown or not loaded character set (MaxDB: Meldungen)

-4025: Unknown or not loaded character set

Erläuterung:

Der angegebene CHARACTER SET ist nicht bekannt.

Benutzerreaktion:

Prüfen Sie die Schreibweise des Character Sets. Durch eine QUERY-Anweisung, angewandt auf die Systemtabelle DOMAIN.CHARSET, können Sie außerdem ermitteln, ob der angegebene Character Set geladen ist. Ersetzen Sie die Angabe durch einen der geladenen Character Sets, oder sorgen Sie dafür, daß dieser Character Set geladen wird.


-4027: Unknown session (MaxDB: Meldungen)

-4027: Unknown session

Erläuterung

Es sollte für die spezielle Datenbanksitzung der Datenbank-Trace eingeschaltet werden. Die angegebene Sitzungsnummer existiert nicht.

Benutzerreaktion

Korrigieren Sie die Sitzungsnummer.


Von -5000 bis -5999 (MaxDB: Meldungen)

Von -5000 bis -5999

Fehlermeldungen aus dem Datenbankkern

-5001 | Missing privilege
-5003 | Missing key specification
-5004 | Missing constant
-5005 | Missing non-NULL value
-5006 | Missing identifier
-5007 | Missing numeric constant
-5008 | Missing string constant
-5009 | Missing integer
-5010 | Missing value specification
-5012 | Missing definite table name
-5013 | Missing update column
-5014 | Missing definite column name
-5015 | Missing keyword
-5016 | Missing delimiter


-5001: Missing privilege (MaxDB: Meldungen)

-5001: Missing privilege

Erläuterung:

...

1. Der Benutzer hat nicht die Berechtigung, die SQL-Anweisung auszuführen.

2. Der Benutzer hat nicht die Berechtigung, diese SQL-Anweisung zur Datendefinition auszuführen. Das für diese SQL-Anweisung notwendige Privileg besitzt er nur innerhalb einer Rolle. Derart eingeschränkt gültige Privilegien reichen für andere SQL-Anweisungen aus, nicht aber für solche zur Datendefinition.

Benutzerreaktion:

Durch eine QUERY-Anweisung, angewandt auf die Systemtabelle DOMAIN.TABLEPRIVILEGES oder DOMAIN.COLUMNS können Sie ermitteln, welche Privilegien Sie für die angegebene Tabelle bzw. deren Spalten besitzen. Die Ausführung der gewünschten SQL-Anweisung ist nicht möglich.


-5003: Missing key specification (MaxDB: Meldungen)

-5003: Missing key specification

Erläuterung:

Die SQL-Anweisung setzt die Angabe eines Schlüssels voraus. Dieser ist nicht oder nicht vollständig angegeben.

Benutzerreaktion:

Durch eine QUERY-Anweisung, angewandt auf die Systemtabelle DOMAIN.COLUMNS, können Sie die Schlüsselspalten der Tabelle ermitteln. Korrigieren Sie den in der SQL-Anweisung angegebenen Schlüssel, oder fügen Sie eine Schlüsselangabe in die SQL-Anweisung ein.


-5004: Missing constant (MaxDB: Meldungen)

-5004: Missing constant

Erläuterung:

In der SQL-Anweisung fehlt eine Konstante.

Benutzerreaktion:

Fügen Sie in die SQL-Anweisung eine Konstante ein.


-5005: Missing non-NULL value (MaxDB: Meldungen)

-5005: Missing non-NULL value

Erläuterung:

Bei der INSERT- oder UPDATE-Anweisung müssen Nicht-NULL-Werte für alle Pflichtspalten angegeben werden. Bei der Angabe einer Schlüsselspezifikation müssen Nicht-NULL-Werte für alle Schlüsselspalten angegeben werden.

Benutzerreaktion:

Durch eine QUERY-Anweisung, angewandt auf die Systemtabelle DOMAIN.COLUMNS, können Sie die Pflichtspalten und Schlüsselspalten der Tabelle ermitteln.


-5006: Missing identifier (MaxDB: Meldungen)

-5006: Missing identifier

Erläuterung:

Es fehlt ein Bezeichner.

Benutzerreaktion:

Die Fehlerposition gibt an, an welcher Stelle ein Bezeichner erwartet wurde. Fügen Sie einen Bezeichner in die SQL-Anweisung ein.


-5007: Missing numeric constant (MaxDB: Meldungen)

-5007: Missing numeric constant

Erläuterung:

Es fehlt eine Zahl.

Benutzerreaktion:

Die Fehlerposition gibt an, an welcher Stelle eine Zahl erwartet wurde. Fügen Sie eine Zahl in die SQL-Anweisung ein.


-5008: Missing string constant (MaxDB: Meldungen)

-5008: Missing string constant

Erläuterung:

In der SQL-Anweisung fehlt eine Zeichenkette.

Benutzerreaktion:

Fügen Sie in die SQL-Anweisung ein Stringliteral ein.


-5009: Missing integer (MaxDB: Meldungen)

-5009: Missing integer

Erläuterung:

Es fehlt eine ganze Zahl.

Benutzerreaktion:

Fügen Sie eine ganze Zahl in die SQL-Anweisung ein.


-5010: Missing value specification (MaxDB: Meldungen)

-5010: Missing value specification

Erläuterung:

Es fehlt eine Wertangabe, oder der angegebene Wert ist nicht zulässig.

Benutzerreaktion:

Korrigieren Sie den in der SQL-Anweisung angegebenen Wert, oder fügen Sie einen Wert in die SQL-Anweisung ein.


-5012: Missing definite table name (MaxDB: Meldungen)

-5012: Missing definite table name

Erläuterung:

Wird in einer FROM-Klausel mehrmals derselbe Tabellenname mit verschiedenen Eigentümern verwendet, muss der Tabellenname innerhalb dieser SQL-Anweisung immer mit dem gewünschten Eigentümer angegeben werden.

Benutzerreaktion:

Ergänzen Sie die Tabellennamen um den Eigentümer.


-5013: Missing update column (MaxDB: Meldungen)

-5013: Missing update column

Erläuterung:

Es wurde versucht, mindestens einen Spaltenwert einer Spalte einer änderbaren Join-View-Tabelle durch eine UPDATE-Anweisung zu ändern, der nur in Kombination mit anderen Spaltenwerten geändert werden kann. Mindestens einer dieser benötigten Spaltenwerte fehlt im UPDATE-Statement.

Benutzerreaktion:

Nehmen Sie die fehlenden Spaltenwerte in der UPDATE-Anweisung auf, oder führen Sie UPDATE-Anweisungen für die der änderbaren Join-View-Tabelle zugrundeliegende(n) Tabelle(n) aus.


-5014: Missing definite column name (MaxDB: Meldungen)

-5014: Missing definite column name

Erläuterung:

Die Anzahl der in einer FROM-Klausel der SQL-Anweisung angegebenen Tabellen ist größer als 1. Es wurde ein Spaltenname ohne vorangestellten Tabellennamen verwendet, und dieser Spaltenname ist in mehr als einer der in der FROM-Klausel angegebenen Tabellen enthalten.

Benutzerreaktion:

Stellen Sie die Eindeutigkeit des Spaltennamens durch Voranstellen des gewünschten Tabellennamens her.


-5015: Missing keyword (MaxDB: Meldungen)

-5015: Missing keyword

Erläuterung:

Die SQL-Anweisung enthält ein falsches Schlüsselwort oder ein Schlüsselwort, das in dem aktuell gültigen SQL-Modus unbekannt ist, oder es fehlt ein Schlüsselwort.

Benutzerreaktion:

Korrigieren Sie die SQL-Anweisung entsprechend der Syntaxbeschreibung und dem aktuell gültigen SQL-Modus, indem Sie eines der angegebenen Schlüsselwörter verwenden.


-5016: Missing delimiter (MaxDB: Meldungen)

-5016: Missing delimiter

Erläuterung:

Die SQL-Anweisung enthält ein falsches Trennzeichen, oder es fehlt ein Trennzeichen.

Benutzerreaktion:

Korrigieren Sie die SQL-Anweisung entsprechend der Syntaxbeschreibung und dem aktuell gültigen SQL-Modus, indem Sie das angegebene Trennzeichen verwenden.


Von -6000 bis -6999 (MaxDB: Meldungen)

Von -6000 bis -6999

Fehlermeldungen aus dem Datenbankkern

-6000 | Duplicate table name
-6001 | Duplicate column name
-6002 | Duplicate privilege
-6003 | Duplicate result table name
-6006 | Duplicate name
-6008 | Duplicate index name
-6009 | Duplicate reference name
-6011 | Duplicate constraint
-6012 | Duplicate default
-6013 | Duplicate trigger definition
-6014 | Duplicate value
-6016 | Duplicate format code


-6000: Duplicate table name (MaxDB: Meldungen)

-6000: Duplicate table name

Erläuterung:

Es gibt schon eine Tabelle mit dem angegebenen Namen.

Benutzerreaktion:

Wählen Sie für die anzulegende Tabelle einen anderen Namen.


-6001: Duplicate column name (MaxDB: Meldungen)

-6001: Duplicate column name

Erläuterung:

...

1. Die Spaltennamen einer Tabelle müssen verschieden sein. Basistabellen ohne benutzerdefinierte Schlüsselspalten und benannte Ergebnistabellen enthalten die implizit angelegte Spalte SYSKEY.

2. Ergebnistabellen, die Spalten enthalten, die nicht explizit benannt wurden und die nicht einen Spaltennamen der zugrundeliegenden Tabelle erben, erhalten implizit die Spaltennamen EXPRESSION_, wobei _ für eine positive ganze Zahl steht.

3. In einer INSERT- oder UPDATE-Anweisung oder in einer Folge von Schlüsselspezifikationen darf eine Spalte nicht mehrfach angegeben werden.

Benutzerreaktion:

...

1. Wählen Sie verschiedene Spaltennamen.

2. Bei einer CREATE VIEW- oder einer QUERY-Anweisung können Sie durch Angabe von Referenznamen in den ausgewählten Spalten die Eindeutigkeit der Spaltennamen herstellen. Bei einem CREATE VIEW ist das auch durch die Angabe einer Folge von Alias-Namen möglich.

3. Korrigieren Sie die mehrfache Angabe derselben Spalte.


-6002: Duplicate privilege (MaxDB: Meldungen)

-6002: Duplicate privilege

Erläuterung:

Ein zu vergebendes Privileg wurde in der SQL-Anweisung doppelt aufgeführt.

Benutzerreaktion:

Entfernen Sie eines dieser Privilegien aus der SQL-Anweisung.


-6003: Duplicate result table name (MaxDB: Meldungen)

-6003: Duplicate result table name

Erläuterung:

Eine mit DECLARE CURSOR erzeugte Ergebnistabelle muss im SQL-Modus ANSI und DB2 durch eine CLOSE-Anweisung geschlossen werden, bevor dieser Ergebnistabellenname zum Öffnen einer neuen Ergebnistabelle in derselben Transaktion verwendet werden kann.

Benutzerreaktion:

Fügen Sie in die Anwendung eine CLOSE-Anweisung ein.


-6006: Duplicate name (MaxDB: Meldungen)

-6006: Duplicate name

Erläuterung:

Es existiert bereits ein Datenobjekt mit dem angegebenen Namen.

Benutzerreaktion:

Wiederholen Sie die SQL-Anweisung mit einem anderen Namen.


-6008: Duplicate index name (MaxDB: Meldungen)

-6008: Duplicate index name

Erläuterung:

Es gibt schon einen Index mit dem gewählten Namen.

Benutzerreaktion:

Wählen Sie einen anderen Indexnamen, oder löschen Sie den existierenden Index.


-6009: Duplicate reference name (MaxDB: Meldungen)

-6009: Duplicate reference name

Erläuterung:

In der FROM-Klausel einer QUERY-Spezifikation wurde ein Referenzname doppelt gewählt. Dadurch wird die Eindeutigkeit der Zuordnung des Referenznamens zu einer Tabelle verletzt.

Benutzerreaktion:

Ändern Sie einen der Referenznamen.


-6011: Duplicate constraint (MaxDB: Meldungen)

-6011: Duplicate constraint

Erläuterung:

Für die angegebene Spalte existiert schon eine CONSTRAINT-Definition.

Benutzerreaktion:

Verzichten Sie auf das Hinzufügen einer CONSTRAINT-Definition oder ändern Sie die bestehenden CONSTRAINT-Definition, um den gewünschten Effekt erreichen.

Die Definition der bestehenden CONSTRAINT-Definition können Sie durch eine QUERY-Anweisung, angewandt auf die Systemtabelle DOMAIN.CONSTRAINTS, ermitteln.


-6012: Duplicate default (MaxDB: Meldungen)

-6012: Duplicate default

Erläuterung:

Für die angegebene Spalte existiert schon eine DEFAULT-Spezifikation.

Benutzerreaktion:

Verzichten Sie auf das Hinzufügen eines Vorschlagswertes, oder ändern Sie den bestehenden Vorschlagswert, um den gewünschten Effekt erreichen.

Die Definition des bestehenden Vorschlagswerts können Sie durch eine QUERY-Anweisung, angewandt auf die Systemtabelle DOMAIN.COLUMNS, ermitteln.


-6013: Duplicate trigger definition (MaxDB: Meldungen)

-6013: Duplicate trigger definition

Erläuterung:

Ein Trigger mit dem angegebenen Namen existiert bereits.

Benutzerreaktion:

Durch eine QUERY-Anweisung, angewandt auf die Systemtabelle DOMAIN.TRIGGERS, können Sie ermitteln, welche Triggernamen bereits vergeben wurden. Verwenden Sie einen anderen Namen.

Durch eine QUERY-Anweisung, angewandt auf die Systemtabelle DOMAIN.TRIGGERS, können Sie feststellen, ob der existierende Trigger die gewünschte Definition aufweist und deshalb auf die Definition eines weiteren Triggers verzichtet werden kann.


-6014: Duplicate value (MaxDB: Meldungen)

-6014: Duplicate value

Erläuterung:

...

Bei der Definition eines Mapchar-Set wurde ein interner Wert mehrfach angegeben.

Benutzerreaktion:

...

Ändern Sie die Definition des Mapchar-Set so, dass für einen internen Wert nicht mehrere Umsetzungen angegeben werden.


-6016: Duplicate format code (MaxDB: Meldungen)

-6016: Duplicate format code

Erläuterung:

  1. In der Funktion TO_DATE wurde ein Formatelement mehrfach angegeben.
  2. Es wurden in der Formatangabe der Funktion TO_DATE Formatelemente angegeben, die sich nicht zusammen in einer Formatangabe befinden dürfen. Nicht zusammen in einer Formatangabe auftreten dürfen z. B. Tag des Jahres (DDD) und der julianische Tag. Es dürfen nicht mehrere Angaben das Jahr, z. B. YYYY und YY, oder den Monat, z. B. MM und MONTH, bezeichnen.

Benutzerreaktion:

  1. Entfernen Sie die zu oft angegebenen Formatelemente.
  2. Entfernen Sie eines der sich ausschließenden Formatelemente.


Von -7000 bis -7999 (MaxDB: Meldungen)

Von -7000 bis -7999

Fehlermeldungen aus dem Datenbankkern

-7002 | KEY not allowed
-7003 | NOT NULL not allowed
-7004 | DEFAULT not allowed
-7005 | Lower bound greater than upper bound not allowed
-7006 | Reserved identifier not allowed
-7007 | Key column not allowed
-7008 | Updates of this table not allowed
-7009 | NULL value in key column not allowed
-7011 | Correlated subquery not allowed
-7012 | More than one update row not allowed
-7015 | More than one result row not allowed
-7016 | Parameter spec not allowed in this context
-7017 | User not allowed
-7018 | Variable not allowed in view definition
-7019 | Feature not allowed in view definition
-7021 | View column derived from function not allowed
-7022 | Columns from more than one table not allowed
-7023 | Dropping of all columns not allowed
-7024 | Alter column not allowed, constraint violation
-7026 | SQL statement not allowed without previous FETCH
-7029 | Function not allowed for this data type
-7032 | SQL statement not allowed for column of data type LONG
-7035 | DEFAULT specification not allowed for this column
-7036 | ROWNO specification not allowed in this context
-7037 | NULL value for NOT NULL column not allowed
-7038 | Foreign key column not allowed
-7039 | Cycle in referential constraint definition not allowed
-7040 | Referential constraint not allowed
-7041 | Result table name not allowed
-7042 | Key update not allowed
-7043 | Group member not allowed
-7045 | Parameter spec not allowed
-7046 | Column with length greater than 254 not allowed
-7048 | DROP/ALTER USER not allowed while user is connected
-7050 | Fastload with indexed table not allowed
-7051 | Read only view WITH CHECK OPTION not allowed
-7055 | Column(s) already indexed
-7056 | Subquery not allowed
-7057 | View definition contradicts new table definition
-7058 | Correlated subquery with select in from clause not allowed
-7061 | LOCK ROW for this table not allowed
-7063 | Temp table not allowed
-7064 | Feature not allowed in temp table definition
-7065 | SUBTRANS COMMIT/ROLLBACK not allowed without SUBTRANS BEGIN
-7066 | Unique index referenced by foreign key not allowed
-7067 | Update without repeated read not allowed
-7068 | Outer join not allowed in this context
-7071 | AUTOSAVE LOG must be stopped
-7072 | More than one column with default SERIAL not allowed
-7074 | Cycle in granted roles not allowed
-7075 | Current SAVE SKIPPED, next is ready to take on this tape
-7076 | No more data to read from tape
-7077 | Synonym not allowed
-7078 | No backup is running
-7079 | A backup is already running
-7080 | Query in statement not allowed
-7082 | SQL statement not allowed for this table type
-7500 | DCOM HRESULT
-7900 | Different block sizes


-7002: KEY not allowed (MaxDB: Meldungen)

-7002: KEY not allowed

Erläuterung:

...

1. In der CREATE TABLE-Anweisung müssen die Schlüsselspalten als erste aufgeführt werden, wenn sie durch die Angabe von KEY in einer key_or_not_null_spec definiert werden.

2. Es ist unzulässig, in einer CREATE TABLE-Anweisung sowohl KEY in einer key_or_not_null_spec als auch eine Schlüssel-Definition anzugeben.

Benutzerreaktion:

Geben Sie die Schlüsselspalten in der SQL-Anweisung richtig an.


-7003: NOT NULL not allowed (MaxDB: Meldungen)

-7003: NOT NULL not allowed

Erläuterung:

Spalten mit der Angabe NOT NULL können einer Tabelle nicht mit der ALTER TABLE-Anweisung hinzugefügt werden.

Benutzerreaktion:

Entfernen Sie die Angabe NOT NULL aus der SQL-Anweisung, und führen Sie diese noch einmal durch.


-7004: DEFAULT not allowed (MaxDB: Meldungen)

-7004: DEFAULT not allowed

Erläuterung:

...

1. Spalten mit der Angabe DEFAULT können einer Tabelle nicht mit der ALTER TABLE-Anweisung hinzugefügt werden.

2. Die Angabe von NOT NULL DEFAULT NULL ist unzulässig.

Benutzerreaktion:

...

1. Bei einer ALTER TABLE-Anweisung können Sie erst die Spalte ohne Angabe von DEFAULT hinzufügen und in einer weiteren ALTER TABLE-Anweisung den DEFAULT hinzudefinieren. So erhält diese Spalte in allen Tabellenzeilen den DEFAULT-Wert.

2. Entfernen Sie die Angabe von DEFAULT aus der SQL-Anweisung, und führen Sie diese noch einmal durch.


-7005: Lower bound greater than upper bound not allowed (MaxDB: Meldungen)

-7005: Lower bound greater than upper bound not allowed

Erläuterung:

Bei der Angabe der Unter- und Obergrenze eines Wertebereichs ist die Untergrenze größer als die Obergrenze.

Benutzerreaktion:

Korrigieren Sie die Werte.


-7006: Reserved identifier not allowed (MaxDB: Meldungen)

-7006: Reserved identifier not allowed

Erläuterung:

Der angegebene Name ist in dem aktuellen SQL-Modus ein reserviertes Schlüsselwort und darf nicht zur Bezeichnung von Datenbankobjekten verwendet werden.

Benutzerreaktion:

Wählen Sie in der SQL-Anweisung einen anderen Bezeichner.


-7007: Key column not allowed (MaxDB: Meldungen)

-7007: Key column not allowed

Erläuterung:

Die Angabe einer Schlüsselspalte ist hier unzulässig.

Benutzerreaktion:

Entfernen Sie die Angabe der Schlüsselspalte aus der SQL-Anweisung.


-7008: Updates of this table not allowed (MaxDB: Meldungen)

-7008: Updates of this table not allowed

Erläuterung:

Die angegebene Tabelle kann nicht geändert werden. Dafür kann es folgende Ursachen geben:

...

1. Im Falle einer SQL-Anweisung mit der Angabe von CURRENT OF und Ergebnistabellenname ist die angegebene Tabelle nicht die, die in der FROM-Klausel der QUERY-Anweisung stand, die die angegebene Ergebnistabelle erzeugte.

2. Die SQL-Anweisung enthält eine korrespondierende Subquery, die die zu ändernde Tabelle verwendet.

3. Der QUERY-Ausdruck wurde mit FOR UPDATE spezifiziert. Der QUERY-Ausdruck enthält aber Anweisungsteile, die zusammen mit der Angabe von FOR UPDATE nicht zulässig sind (DISTINCT, GROUP CLAUSE, UNION, INTERSECT, EXCEPT, SUBQUERY).

4. Im SQL-Modus DB2 enthält der QUERY-Ausdruck einer SQL-Anweisung mit der Angabe von CURRENT OF <result_table_name> die Anweisung FOR FETCH ONLY.

Benutzerreaktion:

...

1. Ersetzen Sie den Tabellennamen durch den in der FROM-Klausel der QUERY-Anweisung verwendeten, oder führen Sie eine neue QUERY-Anweisung durch, die den erforderlichen Tabellennamen benutzt.

2. Im Fall der korrespondierenden Subquery können Sie den gewünschten Effekt erreichen, indem eine benannte Ergebnistabelle erzeugt wird, die dann in der Subquery verwendet wird.

3. Sie müssen auf die Angabe von FOR UPDATE oder die Angabe von DISTINCT o.ä. verzichten.

4. Wiederholen Sie den QUERY-Ausdruck ohne FOR FETCH ONLY, oder verzichten Sie auf die Angabe von CURRENT OF <result_table_name> in der SQL-Anweisung.


-7009: NULL value in key column not allowed (MaxDB: Meldungen)

-7009: NULL value in key column not allowed

Erläuterung:

Schlüsselspalten dürfen nicht mit dem NULL-Wert belegt werden.

Benutzerreaktion:

Verwenden Sie für Schlüsselspalten einen Nicht-NULL-Wert.


-7011: Correlated subquery not allowed (MaxDB: Meldungen)

-7011: Correlated subquery not allowed

Erläuterung:

...

1. In einem QUERY-Ausdruck (QUERY EXPRESSION), der mindestens ein UNION, INTERSECT oder EXCEPT enthält, wurde eine korrespondierende Subquery verwendet. Das ist z. Z. noch nicht zulässig.

2. In einer skalaren Subquery wurde in einer selektierten Spalte ein Spaltenname verwendet, der in keiner Tabelle der FROM-Klausel bekannt ist.

Benutzerreaktion:

...

1. Sie können den gewünschten Effekt dadurch erreichen, dass Sie die QUERY-Anweisung in mehrere SQL-Anweisungen aufteilen.

2. Korrigieren Sie den Spaltennamen.


-7012: More than one update row not allowed (MaxDB: Meldungen)

-7012: More than one update row not allowed

Erläuterung:

Es wurde versucht, mit einer UPDATE-Anweisung mehrere Zeilen zu ändern, wobei für eine LONG-Spalte ein neuer Wert angegeben wurde. Das ist nicht zulässig.

Benutzerreaktion:

Verändern Sie die UPDATE-Anweisung so, dass jeweils nur eine Zeile geändert wird, oder verzichten Sie auf die Änderung des Wertes für die LONG-Spalte.


-7015: More than one result row not allowed (MaxDB: Meldungen)

-7015: More than one result row not allowed

Erläuterung:

...

1. Dieser Fehler kann bei der Ausführung einer SINGLE SELECT-Anweisung auftreten, wenn mehr als eine Zeile die Suchbedingung erfüllt.

2. Der Fehler kann auftreten, wenn bei der Ausführung einer Subquery, die in einem Vergleichsprädikat oder einer SET UPDATE-Klausel einer UPDATE-Anweisung angegeben wurde, mehr als eine Zeile die Suchbedingung erfüllt.

Benutzerreaktion:

...

1. Sie können die SINGLE SELECT-Anweisung durch eine QUERY-Anweisung und eine Folge von FETCH-Anweisungen ersetzen, oder Sie können durch die Erweiterung der Suchbedingung sicherstellen, dass maximal eine Zeile die Bedingungen erfüllt.

2. Sie können das Vergleichsprädikat durch ein Mengenvergleichsprädikat ersetzen. Sie können versuchen, durch Angabe von DISTINCT oder die Erweiterung der Suchbedingung die Subquery so zu verändern, dass die Subquery maximal eine Zeile als Ergebnis enthält.


-7016: Parameter spec not allowed in this context (MaxDB: Meldungen)

-7016: Parameter spec not allowed in this context

Erläuterung:

...

1. Es wurde versucht, in einer selektierten Spalte einen Parameter anzugeben.

2. Innerhalb der Suchbedingung tritt ein Vergleichsprädikat der Form <parameter_spec> <comp_op> <parameter_spec> auf.

3. Ein Vergleichsprädikat, IN-Prädikat oder Mengenvergleichsprädikat spezifiziert einen Vergleich zwischen einem Parameter und einer Subquery.

Benutzerreaktion:

...

1. Ersetzen Sie den Parameter durch eine Konstante.

2. Lassen Sie eine solche Bedingung in der Anwendung prüfen. Ist das nicht möglich, muss einer der beiden Parameter durch eine Konstante, einen Spaltennamen oder einen Ausdruck ersetzt werden, der nicht nur Parameter enthält.

3. Ersetzen Sie den Parameter durch eine Konstante, oder fügen Sie diesen in eine Funktion (z.B. SUBSTR) ein, so dass dadurch der Datentyp des Parameters eindeutig wird.


-7017: User not allowed (MaxDB: Meldungen)

-7017: User not allowed

Erläuterung:

...

1. Ein Benutzer kann sich nicht selbst Privilegien verleihen.

2. Bei einer GRANT USER-Anweisung dürfen die angegebenen Namen nicht gleich sein.

Benutzerreaktion:

Korrigieren Sie den Benutzernamen.


-7018: Variable not allowed in view definition (MaxDB: Meldungen)

-7018: Variable not allowed in view definition

Erläuterung:

In der CREATE VIEW-Anweisung dürfen keine Parameter angegeben werden.

Benutzerreaktion:

Verwenden Sie Variablen statt der Konstanten.


-7019: Feature not allowed in view definition (MaxDB: Meldungen)

-7019: Feature not allowed in view definition

Erläuterung:

In einer View-Definition ist die Angabe von ROWNO nicht erlaubt.

Benutzerreaktion:

Entfernen Sie die Angabe von ROWNO aus der SQL-Anweisung.


-7021: View column derived from function not allowed (MaxDB: Meldungen)

-7021: View column derived from function not allowed

Erläuterung:

Es wurde eine View-Tabellenspalte angegeben, die das Ergebnis eines arithmetischen Ausdrucks oder einer Mengenfunktion ist. Im vorliegenden Fall ist die Angabe einer solchen Spalte nicht erlaubt.

Benutzerreaktion:

Versuchen Sie, den gewünschten Effekt durch eine oder mehrere andere SQL-Anweisungen zu erreichen.


-7022: Columns from more than one table not allowed (MaxDB: Meldungen)

-7022: Columns from more than one table not allowed

Erläuterung:

In bestimmten Fällen ist es unzulässig, in einem Ausdruck Spalten von mehr als einer Tabelle anzusprechen.

Benutzerreaktion:

Überlegen Sie, ob der gewünschte Effekt durch Absetzen anderer SQL-Anweisungen erzielt werden kann.


-7023: Dropping of all columns not allowed (MaxDB: Meldungen)

-7023: Dropping of all columns not allowed

Erläuterung:

Es wurde versucht, alle Spalten einer Tabelle zu löschen. Das ist nicht erlaubt.

Benutzerreaktion:

...

1. Löschen Sie die Tabelle mit der DROP TABLE-Anweisung. Dadurch werden alle von der Tabelle abhängigen View-Tabellen, Privilegien, Indizes, referentielle CONSTRAINT-Definitionen usw. gelöscht.

2. Definieren Sie anschließend mit der CREATE TABLE-Anweisung eine neue gleichnamige Tabelle.


-7024: Alter column not allowed, constraint violation (MaxDB: Meldungen)

-7024: Alter column not allowed, constraint violation

Erläuterung:

Es wurde versucht, für eine Spalte einen neuen Wertebereich zu definieren. Die SQL-Anweisung scheitert, wenn die Tabelle Zeilen enthält, die die CONSTRAINT-Definition verletzen.

Benutzerreaktion:

...

1. Wählen Sie eine andere CONSTRAINT-Definition, oder verzichten Sie auf die Änderung der CONSTRAINT-Definition.

2. Sie können durch eine QUERY-Anweisung die Zeilen ermitteln, die die CONSTRAINT-Definition verletzen. Diese können Sie dann ändern oder löschen.


-7026: SQL statement not allowed without previous FETCH (MaxDB: Meldungen)

-7026: SQL statement not allowed without previous FETCH

Erläuterung:

Es wurde versucht, eine SQL-Anweisung mit CURRENT OF für die Ergebnistabelle durchzuführen, ohne dass zuvor eine erfolgreiche FETCH-Anweisung für die angegebene Ergebnistabelle durchgeführt wurde.

Benutzerreaktion:

Führen Sie eine FETCH-Anweisung für diese Ergebnistabelle durch, und wiederholen Sie die SQL-Anweisung.


-7029: Function not allowed for this data type (MaxDB: Meldungen)

-7029: Function not allowed for this data type

Erläuterung:

...

1. Eine der Angaben DATE, TIME, TIMESTAMP, USER, USERGROUP, TRUE, FALSE oder STAMP wurde für eine Default-Spezifikation einer Spalte verwendet, deren Datentyp nicht mit dieser Angabe verträglich ist.

2. Eine Set-Funktion mit DISTINCT wurde für einen Wert aufgerufen, dessen maximale Länge 1024 Bytes überschreitet.

3. Eine Funktion wurde für einen Wert aufgerufen, der die Anwendung dieser Funktion nicht erlaubt.

4. Ein date_or_timestamp_expression wurde zusammen mit einem Wert gebildet, dessen Datentyp dafür nicht zulässig ist.

Benutzerreaktion:

...

1. Im Fall der Default-Angabe müssen Sie eine andere Default-Angabe wählen oder ganz auf diese verzichten.

2. Verwenden Sie die Funktion SUBSTR, um den Wert zu verkürzen.

3. Durch eine QUERY-Anweisung, angewandt auf die Systemtabelle DOMAIN.COLUMNS, können Sie die Datentypen der angegebenen Spalten ermitteln. Sie können prüfen, ob durch eine Funktion zur Umwandlung von Zahlen in Zeichenketten oder umgekehrt der gewünschte Effekt erreicht werden kann.


-7032: SQL statement not allowed for column of data type LONG (MaxDB: Meldungen)

-7032: SQL statement not allowed for column of data type LONG

Erläuterung:

Die SQL-Anweisung kann auf Spalten vom Datentyp LONG nicht angewendet werden.

Benutzerreaktion:

Verwenden Sie eine der Operationen, die auf Spalten vom Datentyp LONG durchgeführt werden können.


-7035: DEFAULT specification not allowed for this column (MaxDB: Meldungen)

-7035: DEFAULT specification not allowed for this column

Erläuterung:

Es wurde eine INSERT- oder UPDATE-Anweisung oder ein DEFAULT-Prädikat abgesetzt, wobei für eine Spalte DEFAULT angegeben wurde, für die weder in der CREATE TABLE- noch in einer nachfolgenden ALTER TABLE-Anweisung eine DEFAULT-Spezifikation definiert worden ist.

Benutzerreaktion:

Geben Sie statt DEFAULT den gewünschten Wert an.


-7036: ROWNO- specification not allowed in this context (MaxDB: Meldungen)

-7036: ROWNO- specification not allowed in this context

Erläuterung:

Eine der folgenden Bedingungen wurde verletzt:

...

1. Die Spezifikation von ROWNO darf nur in QUERY-Anweisungen verwendet werden. In der QUERY-Anweisung darf kein UNION, EXCEPT oder INTERSECT enthalten sein.

2. Das ROWNO-Prädikat kann innerhalb der Suchbedingung verwendet werden, und zwar in der Form ROWNO < <rowno_spec> oder ROWNO <= <rowno_spec>, d. h. ROWNO steht links vom Operator.

3. In einer Suchbedingung darf das ROWNO-Prädikat nur einmal auftreten und muss mit anderen Prädikaten mit logischem AND verbunden werden.

Benutzerreaktion:

...

1. Im Fall von UNION, EXCEPT oder INTERSECT können Sie den Effekt durch zwei aufeinanderfolgende QUERY-Anweisungen erzielen.

2. Korrigieren Sie die Suchbedingung der SQL-Anweisung entsprechend.


-7037: NULL value for NOT NULL column not allowed (MaxDB: Meldungen)

-7037: NULL value for NOT NULL column not allowed

Erläuterung:

Die Fehlermeldung tritt bei der Ausführung einer referentiellen CONSTRAINT-Definition mit Angabe von ON DELETE SET NULL in der DELETE-Regel auf, wenn eine Spalte (referencing_column) den NULL-Wert nicht zuläßt.

Benutzerreaktion:

Sie müssen eine andere Aktion in der DELETE-Regel wählen oder in der referenzierenden Tabelle für die entsprechende(n) Spalte(n) den NULL-Wert zulassen.


-7038: Foreign key column not allowed (MaxDB: Meldungen)

-7038: Foreign key column not allowed

Erläuterung:

Unter Fremdschlüsselspalte versteht man eine Spalte, die als referencing_column einer referentiellen CONSTRAINT-Definition angegeben wurde.

...

1. Es wurde versucht, eine Spalte einer Tabelle zu löschen, die als referencing_column einer CONSTRAINT-Definition angegeben wurde.

2. Es wurde versucht, den Schlüssel einer Tabelle zu löschen. Dessen Spalten wurden implizit oder explizit als referencing_column einer CONSTRAINT-Definition angegeben.

Benutzerreaktion:

Löschen Sie die referentielle CONSTRAINT-Definition und dann die Spalte oder den Schlüssel.


-7039: Cycle in referential constraint definition not allowed (MaxDB: Meldungen)

-7039: Cycle in referential constraint definition not allowed

Erläuterung:

Es wurde versucht, eine referentielle CONSTRAINT-Definition zu erzeugen, durch die ein unzulässiger Referenzzyklus entstehen würde. Die CONSTRAINT-Definition würde zu prinzipiellen Widersprüchen führen und wird deshalb vom Datenbanksystem abgelehnt.

Benutzerreaktion:

Lösen Sie die zyklische Abhängigkeit auf.


-7040: Referential constraint not allowed (MaxDB: Meldungen)

-7040: Referential constraint not allowed

Erläuterung:

Es gibt bereits eine referentielle CONSTRAINT-Definition mit der angegebenen referenzierenden Tabelle. Zusätzlich entsteht eine CASCADE-Abhängigkeit. Unter diesen Bedingungen müssen alle CONSTRAINT-Definitionen mit der angegebenen referenzierenden Tabelle entweder CASCADE oder RESTRICT spezifizieren.

Benutzerreaktion:

Der gewünschte Effekt muss überdacht werden, da er zu prinzipiellen Widersprüchen führt. Sie können sich mit einer QUERY-Anweisung, angewandt auf die Systemtabelle DOMAIN.FOREIGNKEYCOLUMNS, Informationen über bestehende referentielle CONSTRAINT-Definitionen anzeigen lassen.


-7041: Result table name not allowed (MaxDB: Meldungen)

-7041: Result table name not allowed

Erläuterung:

Bei der CREATE VIEW-Anweisung wurde in einer FROM-Klausel des QUERY-Ausdrucks eine benannte Ergebnistabelle angegeben. Es dürfen jedoch nur Basis- oder View-Tabellen angegeben werden.

Benutzerreaktion:

Geben Sie in der SQL-Anweisung eine Basis- oder View-Tabelle an, und erweitern Sie die Suchbedingung um die Bedingungen, die bei der Erstellung der Ergebnistabelle verwendet wurden.


-7042: Key update not allowed (MaxDB: Meldungen)

-7042: Key update not allowed

Erläuterung:

Es wurde versucht, den Wert einer Schlüsselspalte einer temporären Tabelle in einen neuen Wert zu ändern. Das ist nicht möglich. Schlüsselspalten permanenter Tabellen können verändert werden.

Benutzerreaktion:

Ist ein anderer Schlüsselwert erwünscht, müssen Sie die Zeile mit dem alten Schlüsselwert löschen und mit dem neuen wieder einfügen.


-7043: Group member not allowed (MaxDB: Meldungen)

-7043: Group member not allowed

Erläuterung:

Folgende Ursachen sind möglich:

...

1. Es wurde versucht, einem Benutzer, der zu einer Benutzergruppe gehört, Privilegien zu verleihen.

2. Es wurde versucht, die Eigenschaften eines Benutzers, der Mitglied einer Benutzergruppe ist, mittels einer ALTER USER-Anweisung zu ändern.

Eigenschaften des Benutzers und Privilegien können für Mitglieder einer Benutzergruppe nicht geändert werden. Das ist nur für die Benutzergruppe möglich.

Benutzerreaktion:

Mit einer QUERY-Anweisung, angewandt auf die Systemtabelle DOMAIN.USERS, ist es für einen Datenbankadministrator möglich, sich anzeigen zu lassen, zu welcher Benutzergruppe der betreffende Benutzer gehört. Bei anderen Benutzern ist die Anzeige auf Benutzer und Benutzergruppen eingeschränkt, die zu dem gleichen Datenbankadministrator gehören wie sie selbst.

...

1. Die Privilegien müssen an die Benutzergruppe vergeben werden, zu der der Benutzer gehört.

2. Ersetzen Sie die ALTER USER- durch eine ALTER USERGROUP-Anweisung.


-7045: Parameter spec not allowed (MaxDB: Meldungen)

-7045: Parameter spec not allowed

Erläuterung:

Es wurde ein Parameter angegeben, obwohl diese Datenbankkomponente bzw. diese Art der Anwendungsprogrammierung nur die Verwendung von Konstanten zuläßt.

Benutzerreaktion:

Ersetzen Sie den Parameter durch eine Konstante.


-7046: Column with length greater than 254 not allowed (MaxDB: Meldungen)

-7046: Column with length greater than 254 not allowed

Erläuterung:

Es wurde versucht, eine Spalte vom Datentyp CHAR mit einer Länge größer als 254 in einem Anweisungsteil zu verwenden, in dem sie nicht zulässig ist. Das kann u. a. der Fall sein, wenn versucht wurde, eine Spalte mit einer Definitionslänge kleiner als 254 in eine mit einer Definitionslänge größer als 254 zu ändern.

Benutzerreaktion:

Verzichten Sie auf die Verwendung dieser Spalte im Anweisungsteil. Versuchen Sie, den gewünschten Effekt durch Anwendungsprogrammierung zu erzielen. Bei der Änderung der Definitionslänge könnte durch eine MODIFY-Definition statt einer ALTER-Definition der gewünschte Effekt erreicht werden. Es ist allerdings mit einem erheblich höheren Zeitbedarf zu rechnen. Dieser Zeitbedarf richtet sich nach der Anzahl von Datensätzen in der angesprochenen Tabelle und nach der für diese Tabelle definierten Indizes.


-7048: DROP/ALTER USER not allowed while user is connected (MaxDB: Meldungen)

-7048: DROP/ALTER USER not allowed while user is connected

Erläuterung:

Es wurde versucht, einen zur Zeit angemeldeten Benutzer zu löschen oder dessen Eigenschaften zu ändern. Das ist nur erlaubt, wenn der Benutzer nicht angemeldet ist.

Benutzerreaktion:

Führen Sie die SQL-Anweisung zu einem Zeitpunkt durch, an dem der zu löschende oder zu ändernde Benutzer nicht angemeldet ist.


-7050: Fastload with indexed table not allowed (MaxDB: Meldungen)

-7050: Fastload with indexed table not allowed

Erläuterung:

Auf der zu ladenden Tabelle ist ein Index angelegt. In diesem Fall ist ein schnelles Laden (FASTLOAD) nicht möglich.

Benutzerreaktion:

Löschen Sie den Index, oder verzichten Sie auf das schnelle Laden.


-7051: Read only view WITH CHECK OPTION not allowed (MaxDB: Meldungen)

-7051: Read only view WITH CHECK OPTION not allowed

Erläuterung:

Die zu definierende View-Tabelle ist nicht änderbar. Für nicht änderbare View-Tabellen ist die Angabe von WITH CHECK OPTION nicht erlaubt.

Benutzerreaktion:

Führen Sie die gleiche SQL-Anweisung ohne Angabe von WITH CHECK OPTION durch.


-7055: Column(s) already indexed (MaxDB: Meldungen)

-7055: Column(s) already indexed

Erläuterung:

Es existiert bereits ein Index für die angegebene(n) Spalte(n).

Benutzerreaktion:

Durch eine QUERY-Anweisung, angewandt auf die Systemtabelle DOMAIN.INDEXCOLUMNS, können Sie überprüfen, ob die Ablage der Indexwerte in auf- oder absteigender Reihenfolge vorgenommen wird. Eine Benutzerreaktion ist nicht erforderlich.


-7056: Subquery not allowed (MaxDB: Meldungen)

-7056: Subquery not allowed

Erläuterung:

In einer CONSTRAINT-Definition ist die Angabe einer Subquery nicht zulässig.

Benutzerreaktion:

...

1. Versuchen Sie, die Suchbedingung so umzuformulieren, dass auf die Subquery verzichtet werden kann.

2. Versuchen Sie, den gewünschten Effekt durch Definition eines Triggers, der die Bedingung überprüft, zu erzielen.


-7057: View definition contradicts new table definition (MaxDB: Meldungen)

-7057: View definition contradicts new table definition

Erläuterung:

...

1. Es wurde versucht, einer Tabelle eine Spalte hinzuzufügen oder aus einer Tabelle eine Spalte zu löschen. Bei der Definition der angegebenen View-Tabelle wurde SELECT * verwendet, und den View-Tabellenspalten wurden neue Namen zugewiesen. Die Anzahl der View-Tabellenspalten würde nach der Tabellenänderung nicht mehr mit der Anzahl der Tabellenspalten übereinstimmen.

2. Es wurde versucht, eine referentielle CONSTRAINT-Definition zu löschen, die Voraussetzung für eine änderbare Join-View-Tabelle ist.

Benutzerreaktion:

...

1. Löschen Sie die View-Tabelle, und definieren Sie diese anschließend neu. Die gewünschten Spalten sollten Sie einzeln in den selektierten Spalten des QUERY-Ausdrucks angeben.

2. Die referentielle CONSTRAINT-Definition können Sie nur löschen, wenn zuvor die änderbare View-Tabelle gelöscht worden ist.


-7058: Correlated subquery with select in from clause not allowe (MaxDB: Meldungen)

-7058: Correlated subquery with select in from clause not allowed

Erläuterung:

Es ist nicht möglich, in einer korrespondierenden Subquery einen QUERY-Ausdruck in der FROM-Klausel anzugeben.

Benutzerreaktion:

Formulieren Sie die korrespondierende Subquery so um, dass auf den QUERY-Ausdruck verzichtet werden kann. Ist das nicht möglich, müssen Sie die SQL-Anweisung in mindestens zwei SQL-Anweisungen aufteilen und eine benannte Ergebnistabelle erzeugen, die in der FROM-Klausel verwendet werden kann.


-7061: LOCK ROW for this table not allowed (MaxDB: Meldungen)

-7061: LOCK ROW for this table not allowed

Erläuterung:

Für eine Join-View-Tabelle darf eine LOCK-Anweisung mit Angabe einer ROW-Spezifikation nur ausgeführt werden, wenn es sich um eine änderbare Join-Viewtabelle handelt. Selbst für änderbare Join-Viewtabellen ist die Angabe einer ROW-Spezifikation mit Angabe von OPTIMISTIC nicht zulässig.

Benutzerreaktion:

Sie können durch Angabe von mehreren ROW-Spezifikationen auf die zugrundeliegenden Basistabellen diesen Effekt erreichen.


-7063: Temp table not allowed (MaxDB: Meldungen)

-7063: Temp table not allowed

Erläuterung:

Für temporäre Tabellen ist nur eine eingeschränkte Menge von SQL-Anweisungen zur Datendefinition zulässig. Dazu gehören das Erzeugen und Löschen der Tabellen und die Existenzabfrage.

Benutzerreaktion:

Entscheiden Sie, ob auf die SQL-Anweisung zur Datendefinition verzichtet werden kann oder statt der temporären Tabelle eine permanente zu erzeugen ist.


-7064: Feature not allowed in temp table definition (MaxDB: Meldungen)

-7064: Feature not allowed in temp table definition

Erläuterung:

Es ist nicht möglich, für eine temporäre Tabelle eine referentielle CONSTRAINT-Definition anzugeben.

Benutzerreaktion:

Wiederholen Sie die SQL-Anweisung ohne die unzulässigen Angaben, oder erzeugen Sie statt der temporären eine permanente Tabelle.


-7065: SUBTRANS COMMIT/ROLLBACK not allowed without SUBTRANS BEG (MaxDB: Meldungen)

-7065: SUBTRANS COMMIT/ROLLBACK not allowed without SUBTRANS BEGIN

Erläuterung:

Für jede Subtransaktion, die geschlossen werden soll, muss eine SUBTRANS BEGIN-Anweisung aufgerufen worden sein.

Benutzerreaktion:

Überprüfen Sie die Datenbankanwendung auf das dynamische Verhalten der SUBTRANS-Anweisungen hin.


-7066: Unique index referenced by foreign key not allowed (MaxDB: Meldungen)

-7066: Unique index referenced by foreign key not allowed

Erläuterung:

Der angegebene Index kann nicht gelöscht werden, da die in ihm enthaltenen Spalten in einer referentiellen CONSTRAINT-Definition als referenzierte Spalten der referenzierten Tabelle (referenced_table) angegeben wurden.

Benutzerreaktion:

Sie können den Index nur löschen, nachdem die entsprechende referentielle CONSTRAINT-Definition gelöscht wurde. Sie können sich mit einer QUERY-Anweisung, angewandt auf die Systemtabelle DOMAIN.FOREIGNKEYCOLUMNS, anzeigen lassen, welche CONSTRAINT-Definitionen erzeugt wurden.


-7067: Update without repeated read not allowed (MaxDB: Meldungen)

-7067: Update without repeated read not allowed

Erläuterung:

Durch eine vorangegangene SQL-Anweisung wurde eine optimistische Sperre auf mindestens eine Zeile einer Tabelle gesetzt. Ein anderer Datenbankbenutzer veränderte danach mindestens eine dieser Zeilen. Der Datenbankbenutzer, der die optimistische Sperre gesetzt hatte, kann erst wieder Änderungen an dieser Zeile vornehmen, nachdem er sie wieder mit einer (optimistischen) Sperre gelesen hat.

Benutzerreaktion:

Die zu ändernde Zeile muss erneut mit (optimistischer) Sperre gelesen werden.


-7068: Outer Join not allowed in this context (MaxDB: Meldungen)

-7068: Outer Join not allowed in this context

Erläuterung:

Es wurde ein OUTER JOIN-Indikator in einem Vergleichsprädikat verwendet, in dem in einem der beiden Ausdrücke keine Spalte einer Tabelle angegeben ist. Ein OUTER JOIN-Indikator ist nur in einem JOIN-Prädikat zulässig.

Benutzerreaktion:

Sie können die SQL-Anweisung ohne den OUTER JOIN-Indikator wiederholen.


-7071: AUTOSAVE LOG must be stopped (MaxDB: Meldungen)

-7071: AUTOSAVE LOG must be stopped

Erläuterung:

Es sollte ein SHUTDOWN durchgeführt werden. Das ist nicht möglich, solange die automatische Log-Sicherung noch aktiv ist.

Benutzerreaktion:

Stoppen Sie die automatische Log-Sicherung, und führen Sie dann den SHUTDOWN durch.


-7072: More than one column with default SERIAL not allowed (MaxDB: Meldungen)

-7072: More than one column with default SERIAL not allowed

Erläuterung:

Es wurde versucht, bei der Definition einer Basistabelle die DEFAULT-Spezifikation DEFAULT SERIAL mehrfach zu vergeben. In jeder Basistabelle darf maximal eine Spalte mit der DEFAULT-Spezifikation DEFAULT SERIAL existieren.

Benutzerreaktion:

Entscheiden Sie, in welcher der Spalten auf diese Angabe verzichtet werden kann. Wiederholen Sie anschließend die geänderte SQL-Anweisung.


-7074: Cycle in granted roles not allowed (MaxDB: Meldungen)

-7074: Cycle in granted roles not allowed

Erläuterung:

Folgende Ursachen sind möglich:

...

1. Es wurde versucht, eine Rolle an sich selbst zu vergeben.

2. Es wurde versucht, Rollendefinitionen zyklisch zu vergeben.

Benutzerreaktion:

Prüfen Sie, ob eventuell ein Schreibfehler vorliegt. Ist das nicht der Fall, prüfen Sie, ob die Rollen, die den Zyklus ergeben würden, zu einer zusammengefasst werden können.


-7075: Current SAVE SKIPPED, next is ready to take on this tape (MaxDB: Meldungen)

-7075: Current SAVE SKIPPED, next is ready to take on this tape

Erläuterung:

Es wurde versucht, eine Log-Sicherung von einem No-Rewind-Band zurückzuladen. Die angegebene Sicherung ist älter als die benötigte. Diese könnte noch auf diesem Band gespeichert sein.

Benutzerreaktion:

Sie müssen versuchen, das Zurückladen der nächsten Sicherung durchzuführen, die sich auf diesem Band befindet.


-7076: No more data to read from tape (MaxDB: Meldungen)

-7076: No more data to read from tape

Erläuterung:

Es wurde versucht, eine Log-Sicherung von einem No-Rewind-Band zurückzuladen. Die angegebene Sicherung ist älter als die benötigte. Es befindet sich keine weitere Sicherung auf diesem Band.

Benutzerreaktion:

Das aktuelle Band wird nicht mehr benötigt. Statt dessen legen Sie das Band mit der benötigten Sicherung ein, und wiederholen Sie den Befehl.


-7077: Synonym not allowed (MaxDB: Meldungen)

-7077: Synonym not allowed

Erläuterung:

Sie haben einen Synonymnamen innerhalb einer CREATE TRIGGER- oder CREATE DBPROC-Anweisung verwendet. Das ist nicht zulässig.

Benutzerreaktion:

Verwenden Sie anstatt des Synonymnamens den Namen, für den der Synonymname definiert wurde.


-7078: No backup is running (MaxDB: Meldungen)

-7078: No backup is running

Erläuterung:

Es wurde versucht eine Sicherung abzubrechen, obwohl zur Zeit keine Sicherung aktiv ist.

Benutzerreaktion:

Es ist keine Benutzerreaktion erforderlich.


-7079: A backup is already running (MaxDB: Meldungen)

-7079: A backup is already running

Erläuterung:

Es wurde versucht, eine Sicherung zu starten, während eine Sicherung durchgeführt wird. Zu einer Zeit ist nur eine Sicherung möglich.

Benutzerreaktion:

Es ist keine Benutzerreaktion möglich.


-7080: Query in statement not allowed (MaxDB: Meldungen)

-7080: Query in statement not allowed

Erläuterung :

Die Suchbedingung einer IF- oder WHILE-Anweisung enthält eine QUERY-Anweisung. Dies ist nicht zulässig.

Benutzerreaktion :

Führen Sie die QUERY-Anweisung außerhalb der IF- bzw. WHILE-Anweisung aus und speichern Sie die benötigten Ergebnisse in Programmvariablen. Benutzen Sie diese anschließend in der IF- bzw. WHILE-Anweisung.


-7082: SQL statement not allowed for this table type (MaxDB: Meldungen)

-7082: SQL statement not allowed for this table type

Erläuterung:

SQL-Anweisungen zum Löschen oder Ändern von Tabellenzeilen oder zum Ändern von Tabellendefinitionen sind für diesen Tabellentyp nicht zulässig.

Benutzerreaktion:

Sie können diese SQL-Anweisung nicht verwenden.


-7500: DCOM HRESULT (MaxDB: Meldungen)

-7500: DCOM HRESULT

Erläuterung

Bei der CREATE PACKAGE-Anweisung ist ein unerwarteter Fehler aufgetreten. Die genaue Fehlerursache wird durch einen numerischen Wert (HRESULT) in der Fehlermeldung identifiziert.

Benutzerreaktion

Das Auftreten dieses Fehlers deutet auf falsche oder fehlende Einträge in der Registrierungsdatenbank hin.

Stellen Sie sicher, dass unter der angegebenen Programatic-ID der korrekte Verweis auf die entsprechende Bibliothek existiert. Stellen Sie sicher, dass die Bibliothek an der angegebenen Stelle existiert und dass sie ausreichend privilegiert ist.

Sollte durch dieses Vorgehen das Problem nicht behoben sein, übermitteln Sie den numerischen Wert (HRESULT) dem Support zur Fehleranalyse.


-7900: Different block sizes (MaxDB: Meldungen)

-7900: Different block sizes

Erläuterung:

Die bei der Wiederherstellung angegebene Blockungsgröße und die bei der Sicherung verwendete unterscheiden sich. Die Wiederherstellung kann nicht erfolgreich beendet werden.

Benutzerreaktion:

Sie müssen die Wiederherstellung mit der Blockungsgröße durchführen, die bei der zugehörigen Sicherung verwendet wurde.


Von -8000 bis -9799 (MaxDB: Meldungen)

Von -8000 bis -9799

Fehlermeldungen aus dem Datenbankkern

-8000 | SERVERDB must be restarted
-8001 | User must be connected
-8002 | User already connected to this user task
-8003 | Log and data must be compatible
-8004 | Constant must be compatible with column type and length
-8005 | Value expression must be parameter name
-8006 | Data types must be compatible
-8007 | Column must be key column
-8009 | DEFAULT value must be in constraint specification
-8010 | Table name must be in from list
-8013 | Order column must be output column
-8014 | Result table must be FOR REUSE
-8015 | Table must be a base table
-8016 | Table must be a view table
-8017 | Column must be group column
-8018 | Index name must be unique
-8020 | Next volume required
-8021 | Column must have DEFAULT specification
-8022 | User already connected
-8023 | COSTLIMIT must be greater than COSTWARNING
-8024 | RESTORE CATALOG failed
-8025 | Table must be temp table
-8028 | UNION columns must be compatible
-8030 | Column must be indexed
-8031 | Owner must be specified
-8033 | Imcomplete log segment
-8034 | Order column must be number
-8035 | Foreign key must exist
-8037 | DB procedure must be recompiled
-8040 | Key does not exist
-8044 | Conversion for character set value impossible
-8045 | Conversion to UNICODE impossible
-8046 | Conversion from UNICODE impossible
-8047 | Password required
-8048 | Version of component must be compatible with kernel version
-8050 | Migration error
-8888 | SERVERDB not accessible
-9000 | System error: Not yet implemented
-9001 bis -9799 | System error


-8000: SERVERDB must be restarted (MaxDB: Meldungen)

-8000: SERVERDB must be restarted

Erläuterung:

Ein Arbeiten auf der Datenbankinstanz ist nicht möglich, da die Datenbankinstanz gestoppt wurde.

Benutzerreaktion:

Starten Sie die Datenbankinstanz in den Betriebszustand ONLINE.


-8001: User must be connected (MaxDB: Meldungen)

-8001: User must be connected

Erläuterung:

Eine Datenbanksitzung kann nur mit einer CONNECT-Anweisung eröffnet werden.

Benutzerreaktion:

Geben Sie eine CONNECT-Anweisung ein.


-8002: User already connected to this user task (MaxDB: Meldungen)

-8002: User already connected to this user task

Erläuterung:

Ein Benutzer, der bereits mit der Datenbankinstanz verbunden ist, hat eine weitere CONNECT-Anweisung eingegeben.

Benutzerreaktion:

Soll unter einem anderen Benutzernamen weitergearbeitet werden, so müssen Sie zuerst eine RELEASE- und dann ein CONNECT-Anweisung eingeben.


-8003: Log and data must be compatible (MaxDB: Meldungen)

-8003: Log and data must be compatible

Erläuterung:

...

1. Beim Starten der Datenbankinstanz in den Betriebszustand ONLINE ergibt die Überprüfung, dass der Datenbereich und der aktuelle Log-Bereich einen unterschiedlichen Stand haben.

2. Beim Einspielen der Log-Einträge ergibt die Überprüfung, dass deren Reihenfolge falsch ist.

Benutzerreaktion:

...

1. Sie müssen das Datenbanksystems unter Angabe der korrekten Sicherungsversion wiederherstellen.

2. Spielen Sie alle notwendigen Log-Einträge in der richtigen Reihenfolge ein.

3. Überführen Sie die Datenbankinstanz in den Betriebszustand ONLINE.


-8004: Constant must be compatible with column type and length (MaxDB: Meldungen)

-8004: Constant must be compatible with column type and length

Erläuterung:

Die angegebene Konstante passt nicht zum Datentyp dieser Spalte.

Benutzerreaktion:

Ermitteln Sie durch eine QUERY-Anweisung, angewandt auf die Systemtabelle DOMAIN.COLUMNS, die Definition der betroffenen Spalte. Geben Sie eine Konstante mit dem richtigen Datentyp an.


-8005: Value expression must be parameter name (MaxDB: Meldungen)

-8005: Value expression must be parameter name

Erläuterung:

Beim Aufruf einer Datenbankprozedur wurde für einen OUT- oder IN/OUT-Parameter kein Parameter, sondern ein konstanter Wert angegeben.

Benutzerreaktion:

Ersetzen Sie die Angabe der Konstanten durch einen Parameter.


-8006: Data types must be compatible (MaxDB: Meldungen)

-8006: Data types must be compatible

Erläuterung:

...

1. Eine Funktion wurde auf ein nicht zulässiges Argument angewendet.

2. Eine zweistellige Operation wurde auf nicht vergleichbare Werte angewendet.

3. Ein Prädikat enthält nicht vergleichbare Datentypen.

Jeder Datentyp ist mit sich selbst vergleichbar. Spalten des Datentyps CHAR mit den unterschiedlichen Codeattributen ASCII und UNICODE sind vergleichbar, wobei eine implizite Anpassung erfolgt. Spalten der Codeattribute ASCII sind mit Datumsangaben, Zeitangaben und Zeitstempelangaben vergleichbar.

Alle Zahlen sind untereinander vergleichbar.

Benutzerreaktion:

Durch eine QUERY-Anweisung, angewandt auf die Systemtabelle DOMAIN.COLUMNS, können Sie die Definition der beteiligten Spalten ermitteln. Gegebenenfalls können Sie versuchen, durch Anwendung einer Konversionsfunktion die Vergleichbarkeit zu erreichen.


-8007: Column must be key column (MaxDB: Meldungen)

-8007: Column must be key column

Erläuterung:

Die Angabe einer Nicht-Schlüsselspalte ist hier unzulässig.

Benutzerreaktion:

Durch eine QUERY-Anweisung, angewandt auf die Systemtabelle DOMAIN.COLUMNS, können Sie ermitteln, welche Spalten zum Schlüssel der Tabelle gehören. Nur solche Spalten sind an dieser Stelle der SQL-Anweisung anzugeben.


-8009: DEFAULT value must be in constraint specification (MaxDB: Meldungen)

-8009: DEFAULT value must be in constraint specification

Erläuterung:

Der angegebene DEFAULT-Wert würde die CONSTRAINT-Definition verletzen.

Benutzerreaktion:

...

1. Überdenken Sie die Definition der entsprechenden CONSTRAINT-Definition und ändern Sie diese gegebenenfalls.

2. Wählen Sie einen anderen DEFAULT-Wert, oder verzichten Sie auf die Angabe eines DEFAULT-Wertes.


-8010: Table name must be in from list (MaxDB: Meldungen)

-8010: Table name must be in from list

Erläuterung:

In einer selektierten Spalte, Suchbedingung oder ORDER-Klausel wurde ein Tabellenname angegeben, der nicht in der FROM-Klausel aufgeführt wurde.

Benutzerreaktion:

...

1. Wurde für einen Tabellennamen ein Referenzname angegeben, müssen Sie den Referenznamen in der SQL-Anweisung verwenden.

2. Ist in der FROM-Klausel eine Tabelle angegeben, die nicht dem aktuellen Benutzer, seiner Benutzergruppe oder seinem Datenbankadministrator gehört und auch keine Systemtabelle ist, so müssen Sie in der gesamten SQL-Anweisung den Eigentümer der Tabelle mit angeben.


-8013: Order column must be output column (MaxDB: Meldungen)

-8013: Order column must be output column

Erläuterung:

...

1. Bei einer QUERY-Anweisung mit DISTINCT-Spezifikation können in der ORDER-Klausel nur Spaltennamen angegeben werden, die auch als selektierte Spalte angegeben wurden.

2. Wurden Spaltennummern angegeben, ist darauf zu achten, dass die Nummer nicht größer ist als die Anzahl der angegebenen Ausgabespalten.

3. Bei einem SELECT * kann sich die Anzahl der Ausgabespalten infolge einer ALTER TABLE-Anweisung mit Angabe einer DROP-Definition verringert haben.

Benutzerreaktion:

...

1. Verzichten Sie auf die Angabe von DISTINCT oder geben Sie die Spalte der ORDER-Klausel in einer selektierten Spalte an.

2. Verändern Sie die Nummer in der ORDER-Klausel entsprechend.


-8014: Result table must be FOR REUSE (MaxDB: Meldungen)

-8014: Result table must be FOR REUSE

Erläuterung:

In der FROM-Klausel einer QUERY- oder SINGLE SELECT-Anweisung wurde eine benannte Ergebnistabelle verwendet, die nicht mit FOR REUSE erzeugt wurde.

Benutzerreaktion:

Erzeugen Sie die benannte Ergebnistabelle mit der Angabe FOR REUSE, und führen Sie die SQL-Anweisung erneut durch.


-8015: Table must be a base table (MaxDB: Meldungen)

-8015: Table must be a base table

Erläuterung:

Es wird die Angabe einer Basistabelle erwartet. Diese Angabe fehlt, oder die angegebene Tabelle ist keine Basistabelle.

Benutzerreaktion:

Durch eine QUERY-Anweisung, angewandt auf die Systemtabelle DOMAIN.TABLES, können Sie ermitteln, ob es sich bei der angegebenen Tabelle um eine View-Tabelle oder eine Ergebnistabelle handelt. Im Fall einer View-Tabelle können Sie durch eine QUERY-Anweisung, angewandt auf die Systemtabelle DOMAIN.VIEWDEFS, die zugehörige Basistabelle feststellen. Für diese können Sie dann bei entsprechender Privilegierung die gewünschte SQL-Anweisung durchführen.


-8016: Table must be a view table (MaxDB: Meldungen)

-8016: Table must be a view table

Erläuterung:

Bei der RENAME VIEW- oder DROP VIEW-Anweisung wurde eine Tabelle angegeben, die keine View-Tabelle ist.

Benutzerreaktion:

Geben Sie in der SQL-Anweisung eine View-Tabelle an, oder ersetzen Sie die SQL-Anweisung durch eine RENAME TABLE- oder DROP TABLE- Anweisung.


-8017: Column must be group column (MaxDB: Meldungen)

-8017: Column must be group column

Erläuterung:

Es wurde eine Spalte in einer selektierten Spalte oder in der HAVING-Klausel angegeben, die keine Gruppierspalte ist, d. h. sie ist nicht in der GROUP-Klausel enthalten. Spalten, die keine Gruppierspalten sind, dürfen nur in den Argumenten der Funktionen COUNT, SUM, AVG, MAX, MIN, STDDEV und VARIANCE auftreten.

Benutzerreaktion:

Fügen Sie die angegebene Spalte als weitere Gruppierspalte in die Gruppierbedingung ein, oder entfernen Sie diese aus der selektierten Spalte bzw. der HAVING-Klausel.


-8018: Index name must be unique (MaxDB: Meldungen)

-8018: Index name must be unique

Erläuterung:

...

1. Diese Fehlermeldung kann bei der DROP INDEX- Anweisung auftreten. Zu verschiedenen Tabellen wurden Indizes mit gleichem Namen definiert. Daher ist der zu löschende Indexname nicht eindeutig.

2. Es existiert nur ein benannter einspaltiger Index für diese Spalte. Es wurde versucht, den Index für diese Spalte ohne Angabe des Namens zu löschen.

Benutzerreaktion:

...

1. Geben Sie beim DROP INDEX zusätzlich den Tabellennamen an, auf den sich der zu löschende Index bezieht.

2. Löschen Sie den Index mit Angabe seines Namens.


-8020: Next volume required (MaxDB: Meldungen)

-8020: Next volume required

Erläuterung:

1. Beim Sichern hat das aktuelle Sicherungsmedium keinen Platz mehr.

2. Beim Einspielen der Datensicherung wurden nicht alle Sicherungsmedien, die zu dieser Sicherung gehören, angegeben.

3. Beim Einspielen der Log-Sicherung wird das nächste Log-Sicherungsmedium verlangt.

Benutzerreaktion:

...

1. Geben Sie ein weiteres Sicherungsmedium an.

2. Vervollständigen Sie die Liste der Sicherungsmedien.

3. Geben Sie, sofern vorhanden, das nächste Log-Sicherungsmedium an bzw. beenden Sie das Einspielen der Log-Sicherung manuell.


-8021: Column must have DEFAULT specification (MaxDB: Meldungen)

-8021: Column must have DEFAULT specification

Erläuterung:

Es wurde versucht, in einer referentiellen CONSTRAINT-Definition die Aktion SET DEFAULT als DELETE-Regel anzugeben, obwohl für mindestens eine Spalte (referencing_column) kein DEFAULT-Wert definiert ist.

Benutzerreaktion:

...

1. Falls der Fehler bei der Bearbeitung einer CREATE TABLE- Anweisung auftrat, müssen Sie für die Spalte(n) einen DEFAULT-Wert definieren oder eine andere Aktion wählen.

2. Falls der Fehler bei der Bearbeitung einer ALTER TABLE- Anweisung auftrat, müssen Sie vor der erneuten Ausführung allen Spalten (referencing_column), die keinen DEFAULT-Wert besitzen, durch eine ALTER TABLE- Anweisung einen DEFAULT-Wert zuordnen. Als Alternative dazu können Sie eine andere Aktion wählen.


-8022: User already connected (MaxDB: Meldungen)

-8022: User already connected

Erläuterung:

Ein Benutzer versucht, sich unter einem Benutzernamen am Datenbanksystem anzumelden, für den in der CREATE USER-, CREATE USERGROUP-, ALTER USER- oder ALTER USERGROUP- Anweisung EXCLUSIVE definiert wurde und mit dem sich schon ein anderer Benutzer angemeldet hat.

Benutzerreaktion:

Warten Sie, bis sich der andere Benutzer mittels einer RELEASE-Anweisung vom Datenbanksystem abgemeldet hat.

Soll eine gleichzeitige mehrmalige Anmeldung eines Benutzers möglich sein, muss mit Hilfe einer ALTER USER- oder ALTER USERGROUP-Anweisung für den Benutzer NOT EXCLUSIVE spezifiziert werden. Diese SQL-Anweisungen dürfen nur vom Eigentümer des Benutzers oder der Benutzergruppe ausgeführt werden.


-8023: COSTLIMIT must be greater than COSTWARNING (MaxDB: Meldungen)

-8023: COSTLIMIT must be greater than COSTWARNING

Erläuterung:

Es wurde ein COSTLIMIT-Wert angegeben, der kleiner oder gleich dem angegebenen COSTWARNING-Wert ist. Der COSTLIMIT-Wert muss jedoch größer sein als der COSTWARNING-Wert.

Benutzerreaktion:

Durch eine QUERY-Anweisung, angewandt auf die Systemtabelle DOMAIN.USERS, können Sie für bestehende Benutzer den COSTWARNING-Wert ermitteln.


-8024: RESTORE CATALOG failed (MaxDB: Meldungen)

-8024: RESTORE CATALOG failed

Erläuterung

Bei einigen Datendefinitionsanweisungen werden Teile des Datenbankkatalogs zunächst gelöscht und dann wieder aufgebaut.

Wenn es dabei zu einem nicht erwarteten Fehler kommt, wird der Fehler -8024 ausgegeben.

Benutzerreaktion

Erstellen Sie einen Datenbank-Trace der letzten Datenbankaktivitäten, und sichern Sie diesen.

Übermitteln Sie den Datenbank-Trace dem Support zur Fehlerverfolgung und -behebung.


-8025: Table must be temp table (MaxDB: Meldungen)

-8025: Table must be temp table

Erläuterung:

Bei einer CREATE TABLE- Anweisung wurde die Option IGNORE ROLLBACK für eine permanente Tabelle angegeben. Das ist unzulässig.

Benutzerreaktion:

Sie können die SQL-Anweisung wiederholen, wobei entweder auf die Option IGNORE ROLLBACK verzichtet werden muss oder eine temporäre Tabelle erzeugt werden muss, indem als Eigentümer der zu erzeugenden Tabelle TEMP anzugeben ist.


-8028: UNION columns must be compatible (MaxDB: Meldungen)

-8028: UNION columns must be compatible

Erläuterung:

In einem QUERY-Ausdruck, in der mindestens ein UNION, INTERSECT oder EXCEPT angegeben wurde, müssen alle Folgen von selektierten Spalten die gleiche Anzahl von Spalten bezeichnen. Dabei müssen die Datentypen der jeweils korrespondierenden Spalten dieselben Bedingungen erfüllen, die auch für die Vergleichbarkeit gelten.

Jeder Datentyp ist mit sich selbst vergleichbar. Spalten des Datentyps CHAR mit den unterschiedlichen Codeattributen ASCII und UNICODE sind vergleichbar, wobei eine implizite Anpassung erfolgt. Spalten des Codeattributs ASCII sind mit Datumsangaben, Zeitangaben und Zeitstempelangaben vergleichbar.

Alle Zahlen sind untereinander vergleichbar.

Im SQL-Modus ANSI müssen die Datentypen und Längen der angegebenen Spalten nicht nur kompatibel, sondern gleich sein. Dazu gehört auch, dass in den selektierten Spalten der mit UNION verknüpften QUERY-Spezifikationen nur Spaltenspezifikationen oder * angegeben werden dürfen. Die Angabe von Literalen ist nicht zulässig.

Benutzerreaktion:

Durch eine QUERY-Anweisung, angewandt auf die Systemtabelle DOMAIN.COLUMNS, können Sie die Definition der beteiligten Spalten ermitteln. Gegebenenfalls können Sie versuchen, durch Anwendung einer Konversionsfunktion die Vergleichbarkeit zu erreichen.

Im SQL-Modus ANSI müssen Sie auf diese Abfrage verzichten.


-8030: Column must be indexed (MaxDB: Meldungen)

-8030: Column must be indexed

Erläuterung:

Über der angegebenen Spalte wurde kein Index angelegt.

In einer referentiellen CONSTRAINT-Definition müssen die Spalten (referenced_column) entweder den Schlüssel der Tabelle bezeichnen oder Spalten, die zusammen einen mit UNIQUE definierten Index bilden.

Benutzerreaktion:

Sie können sich mit einer QUERY-Anweisung, angewandt auf die Systemtabelle DOMAIN.INDEXES, anzeigen lassen, welche Indizes existieren. Erzeugen Sie den gewünschten Index, oder verwenden Sie keinen Index.


-8031: Owner must be specified (MaxDB: Meldungen)

-8031: Owner must be specified

Erläuterung:

In einer Datenbankprozedur muss zu jedem Tabellennamen der Eigentümer angegeben werden.

Benutzerreaktion:

Korrigieren Sie die Datenbankprozedur entsprechend.


-8033: Incomplete log segment (MaxDB: Meldungen)

-8033: Incomplete log segment

Erläuterung:

Es wurde versucht, den Log-Bereich zu sichern. Es sind weniger Log-Einträge zu sichern, als durch den Datenbankparameter LOG_SEGMENT_SIZE definiert wurde.

Benutzerreaktion:

Keine Benutzerreaktion erforderlich.


-8034: Order column must be number (MaxDB: Meldungen)

-8034: Order column must be number

Erläuterung:

In einer QUERY-Anweisung, in dessen äußerstem QUERY-Ausdruck mindestens ein UNION, INTERSECT oder EXCEPT enthalten ist, darf die ORDER-Klausel keine Spaltenspezifikationen enthalten.

Benutzerreaktion:

Ersetzen Sie die Spaltenspezifikationen durch die entsprechenden Nummern der Ausgabespalten.


-8035: Foreign key must exist (MaxDB: Meldungen)

-8035: Foreign key must exist

Erläuterung:

Es wurde eine UPDATE-Anweisung für eine änderbare Join-View-Tabelle durchgeführt. Diese UPDATE-Anweisung führt intern zu einem Einfügen in eine der zugrundeliegenden Basistabellen. Aus den Angaben innerhalb der UPDATE-Anweisung können nicht alle Pflichtspalten, die für die implizite INSERT-Anweisung notwendig sind, gebildet werden.

Benutzerreaktion:

Durch eine INSERT-Anweisung in die zugrundeliegende Basistabelle können Sie die Notwendigkeit des Einfügens während der UPDATE-Anweisung auf die Join-View-Tabelle verhindern.


-8037: DB procedure must be recompiled (MaxDB: Meldungen)

-8037: DB procedure must be recompiled

Erläuterung:

Es wurden SQL-Anweisungen zur Datendefinition ausgeführt, die Tabellen betreffen, die in der Datenbankprozedur verwendet werden. Durch Kompilation der Datenbankprozedur ist zu überprüfen, ob diese noch ausführbar ist.

Benutzerreaktion:

Der Eigentümer der Datenbankprozedur muss diese Überprüfung vornehmen, indem er die Datenbankprozedur erneut speichert.


-8040: Key does not exist (MaxDB: Meldungen)

-8040: Key does not exist

Erläuterung:

Es wurde versucht, für die angegebene Tabelle den Schlüssel zu löschen. Die angegebene Tabelle besitzt keinen benutzerdefinierten Schlüssel. Der implizit angelegte Schlüssel mit der Spalte SYSKEY kann nicht gelöscht werden.

Benutzerreaktion:

Verzichten Sie auf die SQL-Anweisung, da die gewünschte Definition der Tabelle schon besteht.


-8044: Conversion for character set value impossible (MaxDB: Meldungen)

-8044: Conversion for character set value impossible

Erläuterung:

Es wurde versucht, Daten aus einer ASCII- oder UCS-2-Darstellung (siehe Überblick: UNICODE) in eine andere Darstellung zu konvertieren. Das ist gescheitert.

Benutzerreaktion:

Eine explizite Konvertierung können Sie nicht durchführen. Sie können versuchen, durch explizite Konvertierung der z.B. zum Vergleich verwendeten Daten den Fehler zu vermeiden.


-8045: Conversion to UNICODE impossible (MaxDB: Meldungen)

-8045: Conversion to UNICODE impossible

Erläuterung:

Es wurde versucht, Daten aus einer ASCII-Darstellung in eine UCS-2-Darstellung (siehe Überblick: UNICODE) zu konvertieren. Das ist gescheitert.

Benutzerreaktion:

Eine explizite Konvertierung können Sie nicht durchführen. Sie können versuchen, durch explizite Konvertierung der z.B. zum Vergleich verwendeten UCS-2-Daten den Fehler zu vermeiden.


-8046: Conversion from UNICODE impossible (MaxDB: Meldungen)

-8046: Conversion from UNICODE impossible

Erläuterung:

Es wurde versucht, Daten aus einer UCS-2-Darstellung (siehe UNICODE-Fähigkeit) in eine ASCII-Darstellung zu konvertieren. Das ist aufgrund des Dateninhalts nicht möglich, da dieser nicht nur aus Zeichen, die Bestandteil von Latin1 sind, besteht.

Benutzerreaktion:

Klären Sie, ob die Daten korrekt sind.

Eine explizite Konvertierung können Sie nicht durchführen. Sie können versuchen, durch explizite Konvertierung der z.B. zum Vergleich verwendeten ASCII-Daten den Fehler zu vermeiden.


-8047: Password required (MaxDB: Meldungen)

-8047: Password required

Erläuterung:

Es wurde versucht, durch eine SET-Anweisung eine Rolle zu aktivieren, die die Angabe eines Kennworts erfordert.

Benutzerreaktion:

Wiederholen Sie die SQL-Anweisung, und geben Sie das Kennwort mit an.


-8048: Version of component must be compatible with kernel versi (MaxDB: Meldungen)

-8048: Version of component must be compatible with kernel version

Erläuterung:

Es wurde versucht, eine Komponente zu benutzen, deren Versionsnummer sehr viel kleiner als die des benutzten Datenbankkerns ist. Da sich die Schnittstelle zwischen den Komponenten und dem Datenbankkern erheblich verändert hat, ist das nicht möglich.

Benutzerreaktion:

Verwenden Sie eine Komponente, deren Versionsnummer der des verwendeten Datenbankkerns entspricht.


-8049: Prepare migration required (MaxDB: Meldungen)

-8049: Prepare migration required

Erläuterung:

Das Starten der INPLACE-Migration nach dem Einspielen der Version 7.4 ist nicht möglich, weil in der ursprünglichen Datenbankversion keine Migrationsvorbereitung durchgeführt wurde.

Benutzerreaktion:

...

1. Spielen Sie die ursprüngliche Datenbankversion wieder ein.

2. Bringen Sie die Datenbankinstanz in den Betriebszustand ONLINE.

3. Stoppen Sie die Datenbankinstanz.

4. Führen Sie im Betriebszustand ADMIN folgendes Database Manager CLI-Kommando in einer Utility-Sitzung aus: migrate

Dadurch werden bei der Migration die Daten gelöscht, die in der Version 7.4 nicht mehr unterstützt werden.

5. Spielen Sie die Version 7.4 ein und starten Sie die INPLACE-Migration erneut.


-8050: Migration error (MaxDB: Meldungen)

-8050: Migration error

Erläuterung

Bei der Migration einer Datenbankinstanz mit einem in ASCII gespeicherten Datenbankkatalog (spezieller Datenbankparameter _UNICODE = NO) zu einer UNICODE-fähigen Datenbankinstanz (Datenbankparameter _UNICODE = YES) ist ein Fehler aufgetreten. Die Fehlerursache ist in der Datei knldiag bzw. knldiag.errprotokolliert.

Benutzerreaktion

In Abhängigkeit von der angegebenen Fehlerursache sind unterschiedliche Maßnahmen zu ergreifen:

· "RESTART REQUIRED BEFORE MIGRATION"
Sie müssen die Datenbankinstanz mit dem aktuellen Stand der Datenbanksoftware mindestens einmal in den Betriebszustand ONLINE gebracht haben, bevor eine Migration gestartet werden kann.

· "UNHANDLED ENTRY TYPE: " + Record-Typ-Nummer
Es wurde im Datenbankkatalog ein Record-Typ gefunden, der in der Migration nicht berücksichtigt wird. In diesem Fall werden sämtliche nicht behandelte Records gesammelt und für jedes ein Eintrag geschrieben. Informieren Sie den Support.

· "ERROR HANDLING TYPE " + Record-Typ-Nummer
Bei der Behandlung eines Datenbankkatalog-Records vom Typ Record-Typ-Nummer ist ein Fehler aufgetreten. Die Migration wird abgebrochen. Das Record, bei dessen Behandlung der Fehler auftrat, wird im Arbeitsverzeichnis unter dem Namen MIGERRORREC.BINgespeichert . Informieren Sie den SAP DB-Support.

· "ERROR WHEN RECREATING VIEW" + Anfang des Textes der View-Definition
Beim Wiederaufbau einer View-Tabelle ist ein Fehler aufgetreten.
Je nach Fehler ist die entsprechende View-Tabelle ggf. zu löschen und bei Bedarf nach der Migration neu zu erzeugen.

· "MIGRATION FAILED FOR TRIGGER:" bzw. "MIGRATION FAILED FOR DBPROC:"
Es wurden Datenbankprozeduren oder Trigger auf Tabellen definiert, bei denen inzwischen verwendete Tabellen, Spalten oder Benutzer umbenannt wurden. Diese können nicht rekonstruiert werden. Die Namen sämtlicher Datenbankprozeduren und Trigger, die nicht rekonstruiert werden können, werden aufgelistet. Anschließend wird die Migration abgebrochen.
Die Datenbankprozeduren/Trigger waren zum Zeitpunkt der Migration bereits nicht mehr einsatzfähig und müssen gelöscht werden.

· "CONSTRAINTTEXT IS TOO LONG:" + Constraint-Name
Bei der Migration würde die Konversion des Definitionstextes eines Constraint nach UNICODE zur Überschreitung der maximalen Länge von Constraints führen. Das Constraint ist zu löschen bzw. zu modifizieren.

· "CATALOG IS UNICODE ALREADY"
Die Datenbankinstanz scheint bereits eine UNICODE-fähige Datenbankinstanz zu sein.

· "_UNICODE has to be YES for migration"
Die Migration wurde gestartet, obwohl der Datenbankparameter _UNICODE den Wert NO hat.


-8888: SERVERDB not accessible (MaxDB: Meldungen)

-8888: SERVERDB not accessible

Erläuterung:

Es wurde versucht, eine Datenbanksitzung zu starten. Das ist aus einem der folgenden Gründe nicht möglich:

...

1. Der Datenbankname wurde fehlerhaft angegeben

2. Die Datenbankinstanz wurde noch nicht gestartet.

Benutzerreaktion:

...

1. Überprüfen Sie den angegebenen Datenbanknamen.

2. Starten Sie die Datenbankinstanz. Achten Sie auf eventuell auftretende Fehler.


-9000: System error: Not yet implemented (MaxDB: Meldungen)

-9000: System error: Not yet implemented

Erläuterung:

Die SQL-Anweisung ist zur Zeit noch nicht implementiert. Sie wird in noch folgenden Versionen zur Verfügung gestellt.

Benutzerreaktion:

Sie können versuchen, durch eine oder mehrere andere SQL-Anweisungen den gewünschten Effekt zu erreichen.


-9001 bis -9799: System error (MaxDB: Meldungen)

-9001 bis -9799: System error

Erläuterung:

Diese Fehlermeldungen dürften im normalen Betrieb mit einer konsistenten Datenbankinstanz nicht auftreten. Bei manchen Fehlern wird ein implizites SHUTDOWN durchgeführt.

Benutzerreaktion:

In der Regel sollten Sie den Betrieb auf der Datenbankinstanz einstellen und den Support benachrichtigen. Erstellen Sie einen Trace der letzten Datenbankaktivitäten, und sichern Sie diesen. Übermitteln Sie den Trace dem Support zur Fehlerverfolgung und -behebung.


Von -9800 bis -9999 (MaxDB: Meldungen)

Von -9800 bis -9999

Fehlermeldungen vom Precompiler

-9801 | Invalid command state
-9803 | Unknown data type
-9805 | Option CHECK usage on or off error
-9806 | Invalid output value
-9807 | Too many users
-9808 | SET FORMAT error
-9809 | Option CHECK usage add error


-9801: Invalid command state (MaxDB: Meldungen)

-9801: Invalid command state

Erläuterung:

Der Kommandostatus ist falsch.

Es handelt sich um einen Laufzeitfehler des Precompilers.

Benutzerreaktion:

Benachrichtigen Sie den Support.


-9803: Unknown data type (MaxDB: Meldungen)

-9803: Unknown data type

Erläuterung:

Der Datentyp ist in der Datenbankinstanz nicht bekannt.

Benutzerreaktion:

Benachrichtigen Sie den Support.


-9805: Option CHECK usage on or off error (MaxDB: Meldungen)

-9805: Option CHECK usage on or off error

Erläuterung:

Wenn Sie die Precompiler-Option CHECK einsetzen, werden am Ende des Precompiler-Laufs die SYSUSAGE-Einträge angepasst. Hierbei ist ein Fehler aufgetreten.

Benutzerreaktion:

Beachten Sie zur Fehleranalyse und -korrektur alle während des Precompiler-Laufs ausgegebenen Fehlermeldungen. Weitere Informationen finden Sie unter den entsprechenden Fehlernummern.


-9806: Invalid output value (MaxDB: Meldungen)

-9806: Invalid output value

Erläuterung:

Define-Byte im Auftragspuffer ist mit einem falschen Wert belegt.

Benutzerreaktion:

Überprüfen Sie, ob der Kern und der Precompiler, mit dem die Anwendung übersetzt wurde, dieselbe Versionsnummer haben. Stimmen die Versionsnummern überein, benachrichtigen Sie Ihren Datenbankadministrator.


-9807: Too many users (MaxDB: Meldungen)

-9807: Too many users

Erläuterung:

Alle Datenbanksitzungen der Datenbankinstanz sind belegt.

Benutzerreaktion:

Warten Sie die Freigabe einer Datenbanksitzung ab. Wenn dieser Fehler häufiger auftritt, sollte der Datenbankadministrator die Konfiguration der Datenbankinstanz überprüfen und gegebenenfalls ändern.


-9808: SET FORMAT error (MaxDB: Meldungen)

-9808: SET FORMAT error

Erläuterung:

Nach jeder CONNECT-Anweisung wird implizit der Befehl SET FORMAT an die Datenbankinstanz gegeben. Damit wird bestimmt, welches Datums- und Zeitformat der Benutzer verwendet. Wenn bei Übergabe des SET FORMAT-Befehls ein Fehler auftritt, wird das Standardformat des Datenbanksystems verwendet.

Benutzerreaktion:

Starten Sie das Programm nochmals, und vermeiden Sie dabei diesen Fehler. Sollte der SET FORMAT-Fehler immer wieder auftreten, benachrichtigen Sie den Datenbankadministrator.


-9809: Option CHECK usage add error (MaxDB: Meldungen)

-9809: Option CHECK usage add error

Erläuterung:

Ist die Precompiler-Option CHECK gesetzt, werden am Ende des Precompiler-Laufs die SYSUSAGE-Einträge für SQL-PL, FORM, REPORT, PROC, QUERY, COMMAND und PREPARE angepasst. Hierbei ist ein Fehler aufgetreten.

Benutzerreaktion:

Beachten Sie zur Fehleranalyse und -korrektur alle während des Precompiler-Laufs ausgegebenen Fehlermeldungen. Weitere Informationen finden Sie unter den entsprechenden Fehlernummern.


Von -22000 bis -22999 (MaxDB: Meldungen)

Von -22000 bis -22999

Fehlermeldungen des Programms ODBC

-22000 | Null values not allowed on more than one long column
-22005 | Connection timeout occured. Session reconnected


-22000: Null values not allowed on more than one long column (MaxDB: Meldungen)

-22000: Null values not allowed on more than one long column

Erläuterung:

Bei einer INSERT- oder UPDATE-Anweisung darf maximal eine LONG-Spalte den NULL-Wert erhalten, wenn LONG-Spalten mittels SQLParamData und SQLPutData eingefügt werden.

Benutzerreaktion:

Nehmen Sie nur eine LONG-Spalte in die Anweisung auf, oder verwenden Sie leere Strings anstelle von NULL-Werten.


-22005: Connection timeout occured. Session reconnected (MaxDB: Meldungen)

-22005: Connection timeout occured. Session reconnected

Erläuterung:

Die Transaktion des Benutzers wurde abgebrochen und durch eine ROLLBACK-Anweisung zurückgesetzt. Die Datenbanksitzung wurde beendet, weil der Benutzer während eines bestimmten Zeitintervalls (Datenbankparameter SESSION_TIMEOUT oder bei der CONNECT-Anweisung angegebener Timeout-Wert) keine Operationen durchgeführt hatte.

Der ODBC-Treiber erkennt einen solchen Timeout und meldet den Benutzer automatisch wieder an die Datenbankinstanz an mit den ursprünglichen Parametern (Benutzername, Kennwort, Datenbankname, Datenbankrechner, ...). Jede Anweisung der betroffenen Sitzung signalisiert dies mit dem Returncode SQL_SUCCESS_WITH_INFO und der Meldung -22005.

Benutzerreaktion:

Alle Anweisungen, die eine Ergebnismenge (CURSOR) besitzen, müssen erneut ausgeführt werden, um zu gewährleisten, dass die Ergebnismengen erneut aufgebaut werden. Ist die Verbindung auf SQL_AUTOCOMMIT_OFF eingestellt, so müssen auch alle anderen Anweisungen, die in einer offenen Transaktion waren, erneut ausgeführt werden.


Von -23000 bis -23999 (MaxDB: Meldungen)

Von -23000 bis -23999

Fehlermeldungen des Programms SQL Studio

-23050 | Unknown error
-23051 | Could not load system tables for SQL Studio
-23052 | Could not save object data
-23053 | Cannot load suppose list
-23054 | Maximum numbers of windows reached
-23055 | Connection failed
-23056 | User is exclusive
-23057 | Reconnect failed
-23058 | No database connection
-23059 | You do not have the permission to modify this object
-23060 | You do not have the permission to delete this object
-23061 | Cannot analyze error
-23062 | Could not open connection
-23063 | Could not create Global Com Object
-23064 | Import failed
-23070 | Cannot open object created by newer SQL Studio Version
-23071 | Convert object created by older SQL Studio Version
-23072 | Representation of null value too long.
-23100 | OLE Error Please restart SQL Studio
-23101 | Data in clipboard truncated
-23102 | Failed to create DBC Pool
-23103 | Failed to create DBC Handle
-23104 | Could not load table definition
-23200 | No data sources
-23201 | No ODBC driver
-23202 | Could not load object description
-23203 | Cannot show tables of users, wrong database version


-23050: Unknown error (MaxDB: Meldungen)

-23050: Unknown error

Erläuterung:

Es trat ein unbekannter Fehler auf.

Benutzerreaktion:

Verständigen Sie den Support.


-23051: Could not load system tables for SQL Studio (MaxDB: Meldungen)

-23051: Could not load system tables for SQL Studio

Erläuterung:

Die Datenbankinstanz enthält nicht die für das SQL Studio benötigten Systemtabellen.

Benutzerreaktion:

Laden Sie die Systemtabellen mit dem Database Manager.

Falls die Fehlermeldung danach nochmals auftritt, verständigen Sie den Support.


-23052: Could not save object data (MaxDB: Meldungen)

-23052: Could not save object data

Erläuterung:

Ein Objekt des SQL Studio konnte nicht gespeichert werden.

Benutzerreaktion:

Laden Sie die Systemtabellen mit dem Database Manager.

Falls die Fehlermeldung danach nochmals auftritt, verständigen Sie den Support.


-23053: Cannot load suppose list (MaxDB: Meldungen)

-23053: Cannot load suppose list

Erläuterung:

Die SQL-Unterstützung konnte nicht geladen werden.

Benutzerreaktion:

Laden Sie die Systemtabellen mit dem Database Manager.

Falls die Fehlermeldung danach nochmals auftritt, verständigen Sie den Support.


-23054: Maximum numbers of windows reached (MaxDB: Meldungen)

-23054: Maximum numbers of windows reached

Erläuterung:

Die maximale Anzahl von Fenstern wurde geöffnet.

Benutzerreaktion:

Schließen Sie geöffnete Fenster.


-23055: Connection failed (MaxDB: Meldungen)

-23055: Connection failed

Erläuterung:

Die Verbindung zur Datenbankinstanz konnte nicht hergestellt werden.

Benutzerreaktion:

Überprüfen Sie den Zustand der Datenbankinstanz mit dem Database Manager.


-23056: User is exclusive (MaxDB: Meldungen)

-23056: User is exclusive

Erläuterung:

Es wurde versucht, mit einem exclusive-Benutzer mehrere Verbindungen zur Datenbankinstanz aufzubauen.

Benutzerreaktion:

Der Benutzer muss mit dem SQL Studio, falls mehrere Verbindungen nötig sind, zu einem not-exclusive-Benutzer verändert werden.


-23057: Reconnect failed (MaxDB: Meldungen)

-23057: Reconnect failed

Erläuterung:

Der Versuch, eine unterbrochene Verbindung zur Datenbankinstanz wieder aufzubauen, schlug fehl.

Benutzerreaktion:

Überprüfen Sie den Zustand der Datenbankinstanz mit dem Database Manager.

Beenden Sie die Datenbanksitzung, und melden Sie sich erneut an die Datenbankinstanz an.


-23058: No database connection (MaxDB: Meldungen)

-23058: No database connection

Erläuterung:

Die Verbindung zur Datenbankinstanz besteht nicht mehr.

Benutzerreaktion:

Überprüfen Sie den Zustand der Datenbankinstanz mit dem Database Manager.

Beenden Sie die Datenbanksitzung, und melden Sie sich erneut an die Datenbankinstanz an.


-23059: You do not have the permission to modify this object (MaxDB: Meldungen)

-23059: You do not have the permission to modify this object

Erläuterung:

Ein von einem anderen Benutzer freigegebenes Objekt des SQL Studio darf nicht verändert werden.

Benutzerreaktion:

Wenden Sie sich an den Besitzer des Objekts.


-23060: You do not have the permission to delete this object (MaxDB: Meldungen)

-23060: You do not have the permission to delete this object

Erläuterung:

Ein von einem anderen Benutzer freigegebenes Objekt des SQL Studio darf nicht gelöscht werden.

Benutzerreaktion:

Wenden Sie sich an den Besitzer des Objekts.


-23061: Cannot analyze error (MaxDB: Meldungen)

-23061: Cannot analyze error

Erläuterung:

Es trat ein ODBC-Fehler auf, der nicht analysiert werden konnte.

Benutzerreaktion:

Überprüfen Sie die Version des benutzten ODBC-Treibers, und installieren Sie gegebenenfalls eine neuere Version.


-23062: Could not open connection (MaxDB: Meldungen)

-23062: Could not open connection

Erläuterung:

Der Versuch eine Verbindung zur Datenbankinstanz aufzubauen schlug fehl.

Benutzerreaktion:

Überprüfen Sie den Zustand der Datenbankinstanz mit dem Database Manager.

Beenden Sie die SQL-Studio-Sitzung, und verbinden Sie sich erneut mit der Datenbankinstanz.


-23063: Could not create Global Com Object (MaxDB: Meldungen)

-23063: Could not create Global Com Object

Erläuterung:

Ein SQL-Studio-Objekt konnte nicht erzeugt werden.

Benutzerreaktion:

Beenden Sie das SQL Studio.

Überprüfen Sie, ob das System genügend Arbeitsspeicher zur Verfügung hat.

Starten Sie SQL Studio neu.


-23064: Import failed (MaxDB: Meldungen)

-23064: Import failed

Erläuterung:

Das Laden exportierter Objekte des SQL Studio schlug fehl.

Benutzerreaktion:

Verständigen Sie den Support.


-23070: Cannot open object created by newer SQL Studio Version (MaxDB: Meldungen)

-23070: Cannot open object created by newer SQL Studio Version

Erläuterung:

Sie haben versucht, ein Objekt des SQL Studio zu öffnen, das mit einer aktuelleren Programmversion erstellt wurde.

Benutzerreaktion:

Sie können dieses Objekt nur mit der aktuelleren Programmversion bearbeiten. Installieren Sie die aktuelle Version des SQL Studio.


-23071: Convert object created by older SQL Studio Version (MaxDB: Meldungen)

-23071: Convert object created by older SQL Studio Version

Erläuterung:

Das Objekt des SQL Studio kann in das Format einer neueren Programmversion konvertiert werden.

Benutzerreaktion:

Wählen Sie Yes, wenn Sie die Konvertierung des Objektes durchführen möchten. Nach der Sicherung des Objektes hat dieses Objekt dann das Format der neueren Version des SQL Studio. Ein konvertiertes Objekt kann mit einer älteren Version nicht mehr bearbeitet werden.

Wählen Sie No, wenn Sie die Konvertierung des Objektes nicht durchführen möchten.


-23072: Representation of null value too long (MaxDB: Meldungen)

-23072: Representation of null value too long

Erläuterung:

Die Darstellung des NULL-Wertes ist länger als 16 Zeichen.

Benutzerreaktion:

Wählen Sie eine Darstellung des NULL-Wertes kleiner als 16 Zeichen.


-23100: OLE Error! Please restart SQL Studio (MaxDB: Meldungen)

-23100: OLE Error! Please restart SQL Studio

Erläuterung:

Bei einer OLE-Operation trat ein Automatisierungsfehler im Windows-Betriebssystem auf.

Benutzerreaktion:

Beenden Sie SQL Studio, und starten Sie es neu.


-23101: Data in clipboard truncated (MaxDB: Meldungen)

-23101: Data in clipboard truncated

Erläuterung:

Beim Export des Inhalts einer LONG-Spalte in die Zwischenablage werden maximal 1048576 Byte exportiert. Sind mehr Daten in der Ergebniszeile vorhanden, werden diese ignoriert.

Benutzerreaktion:

Um den Inhalt einer LONG-Spalte größer als 1048576 Byte komplett zu exportieren, verwenden Sie das Exportieren in eine Datei.


-23102: Failed to create DBC Pool (MaxDB: Meldungen)

-23102: Failed to create DBC Pool

Erläuterung:

Das Anlegen eines Datenbank-Connection-Pool schlug fehl.

Benutzerreaktion:

Verständigen Sie den Support.


-23103: Failed to create DBC Handle (MaxDB: Meldungen)

-23103: Failed to create DBC Handle

Erläuterung:

Das Anlegen eines Datenbank-Connection-Pool schlug fehl.

Benutzerreaktion:

Verständigen Sie den Support.


-23104: Could not load table definition (MaxDB: Meldungen)

-23104: Could not load table definition

Erläuterung:

Die Definition einer Tabelle konnte nicht geladen werden.

Benutzerreaktion:

Verständigen Sie den Support.


-23200: No data sources (MaxDB: Meldungen)

-23200: No data sources

Erläuterung:

Auf dem Betriebssystem sind keine ODBC-Datenquellen mit dem ODBC-Treiber der Datenbank installiert.

Benutzerreaktion:

Installieren Sie mit dem ODBC-Administrator eine Datenquelle.


-23201: No ODBC driver (MaxDB: Meldungen)

-23201: No ODBC driver

Erläuterung:

Im Verzeichnis von SQL Studio befindet sich kein ODBC-Treiber (sqlod32.dll, sqlsp32.dll).

Benutzerreaktion:

Deinstallieren Sie SQL Studio und installieren Sie SQL Studio anschließend neu.

Falls die Fehlermeldung danach nochmals auftritt, verständigen Sie den Support.


-23202: Could not load object description (MaxDB: Meldungen)

-23202: Could not load object description

Erläuterung:

Die SQL Studio-Objekte konnten nicht geladen werden.

Benutzerreaktion:

Laden Sie die Systemtabellen mit dem Database Manager.

Falls die Fehlermeldung danach nochmals auftritt, verständigen Sie den Support.


-23203: Cannot show tables of users, wrong database version (MaxDB: Meldungen)

-23203: Cannot show tables of users, wrong database version

Erläuterung:

Die Systemtabelle DOMAIN.TABLES enthält nicht alle notwendigen Spalten zum Anzeigen der Tabellen im Katalogbaum.

Benutzerreaktion:

Benutzen Sie eine frühere Version von SQL Studio.


Von -24000 bis -24999 (MaxDB: Meldungen)

Von -24000 bis -24999

Fehlermeldungen des Programms Database Manager

-25905 | ERR_NOEBIDLIST: no information ont external backup IDs available
-25906 | ERR_EBFDIRTY: invalid format of external backup history
-24907 | ERR_DBAWRONG - wrong SYSDBA
-24908 | ERR_DOMPUNKNOWN - SYSDBA unknown
-24909 | ERR_DBAUNKNOWN - DOMAIN password unknown
-24910 | ERR_PARAMVER - wrong version of param help file (cserv.pcf) <version>
-24911 | ERR_INVDBNAME - database name <dbname> is reserved
-24912 | ERR_WRONGINST - DBM Server instroot is <instroot>
-24913 | ERR_SERVICEDB - cannot register service kernel for <instroot>
-24914 | ERR_KEYEXISTS - installation key <key> exists
-24915 | ERR_NOADDD - configuration update not allowed (param file is inactive)
-24916 | ERR_MAXDEVCNT - max device count exceeded
-24917 | ERR_MAXDATA - max data size exceeded
-24918 | ERR_MISSMIRR - missing data for mirror devspace
-24919 | ERR_CLEANUP: cannot free all operational ressources after backup operation
-24920 | ERR_BACKUPOP: backup operation was unsuccessful
-24921 | ERR_POSTOP: error while finishing backup operation
-24922 | ERR_OPCHK: cannot check state of backup operation
-24923 | ERR_TOOLREQ: error while starting external backup tool
-24924 | ERR_DBREQ: cannot start database kernel request
-24925 | ERR_PREPARE: preparation of backup operation failed
-24926 | ERR_MEDIUMCHK: medium cannot be used with this external backup tool
-24927 | ERR_TOOLCHK: external backup tool not found
-24928 | ERR_NOREPLY - no reply available
-24929 | ERR_USRFRM - invalid user record format
-24930 | ERR_XPVALUESET - parameter value not in valueset
-24931 | ERR_XPMAX - parameter value higher than maximum allowed
-24932 | ERR_XPMIN - parameter value smaller than minimum allowed
-24933 | ERR_NOSERVICESESSION - no service kernel session available
-24934 | ERR_VERSION - incompatible versions (param and kernel)
-24935 | ERR_NOUSERS - no users found
-24936 | ERR_DBNORUN - database is not running
-24937 | ERR_MISSRIGHT - no server rights for this command
-24938 | ERR_NOENTRY - no entry found
-24939 | ERR_LASTREG - cannot delete last registration of instance
-24940 | ERR_NEEDSYSLOGON - system logon required
-24941 | ERR_NEEDLOGON - DBM Server logon required
-24942 | ERR_USRDELSDBA - cannot delete sysdba
-24943 | ERR_USRDELCOLD - cannot delete DBM user
-24944 | ERR_USRDELSELF - cannot delete current user
-24945 | ERR_TOFEWPARAM - to few parameters
-24946 | ERR_TOMANYPARAM - to many parameters
-24947 | ERR_DBNAME - do not use dbname
-24948 | ERR_NODBNAME - database name required
-24949 | ERR_USREXISTS - user entry already exists
-24950 | ERR_USRFAIL - user authorization failed
-24951 | ERR_USRREAD - could not read user data
-24952 | ERR_USRSAVE - could not save user data
-24953 | ERR_DBEXIST - database instance already exists
-24954 | ERR_BANOAUTOMED – no autolog medium found in media list
-24955 | ERR_BANOSAVETYPE – backup type not defined
-24956 | ERR_BASAVETYPECON – backup type conflicts with media definition
-24957 | ERR_NOUSER – required user not set
-24958 | ERR_BAOVERWRITE – file already exists, cannot overwrite
-24959 | ERR_XPOVERFLOW – value out of margin
-24960 | ERR_DBRUN – database is running
-24961 | ERR_STATE – cannot determine current db state
-24962 | ERR_DEVTYPE – wrong devspace type
-24963 | ERR_DEVCHECK – error while checking devspace
-24964 | ERR_EXECUTE – error in programm execution
-24965 | ERR_SYSLOGON – logon to system failed
-24966 | ERR_LOGON – logon to DBM Server failed
-24967 | ERR_SYSTEM – system call error
-24968 | ERR_XPREADONLY – parameter is read only
-24969 | ERR_XPDIRTY – param file is dirty
-24970 | ERR_XPNOMODIFY –parameter must not be modified
-24971 | ERR_XPNOCHECK – no running parameter check
-24972 | ERR_XPINVCONF – invalid value
-24973 | ERR_XPCHECK – param check failure/request
-24974 | ERR_XPSESSION – param session active
-24975 | ERR_NOXPSESSION – param session inactive
-24976 | ERR_PARAMEXIST – param file of database already exists
-24977 | ERR_COMMAND – unknown command <command>
-24978 | ERR_XPSYNTAX – xparam syntax error
-24979 | ERR_XPNOTFOUND – parameter not found
-24980 | ERR_NOHELP – xparam help file not found
-24981 | ERR_HIENTRYNOTFOUND – backup history entry not found
-24982 | ERR_ERR_NOHISTORY – backup history file not found
-24983 | ERR_BANOVALIDTYPE – invalid backup type
-24984 | ERR_MENOVALID – invalid medium definition
-24985 | ERR_MENOTFOUND – medium not found
-24986 | ERR_NOMEDIA –media file not found
-24987 | ERR_TOSMALL – packet size too small for answer
-24988 | ERR_SQL – sql error
-24989 | ERR_NOHISTORYSESSION – no backup history session available
-24990 | ERR_ NOBACKUPSESSION – no backup session available
-24991 | ERR_ NOSQLUSERSESSION– no sql user session available
-24992 | ERR_NOUTILSESSION – no utility session available
-24993 | ERR_RTEEXT – runtime environment error
-24994 | ERR_RTE – runtime environment error
-24995 | ERR_MEM – memory allocation error
-24996 | ERR_PARAM – wrong parameters
-24997 | ERR_FILE – file handling error
-24998 | ERR_NOTIMPL – sorry, command not yet implemented
-24999 | ERR – common error


-24905: ERR_NOEBIDLIST: no information on external backup IDs av (MaxDB: Meldungen)

-24905: ERR_NOEBIDLIST: no information on external backup IDs available

Erläuterung:

Es sind keine Informationen zu externen Sicherungskennungen (external Backup-Ids) vorhanden, da von keinem externen Sicherungswerkzeug derartige Informationen erfragt wurden.

Benutzerreaktion:

Führen Sie die Anweisung backup_ext_ids_get zum Abfragen derartiger Informationen aus.


-24906: ERR_EBFDIRTY: invalid format of external backup history (MaxDB: Meldungen)

-24906: ERR_EBFDIRTY: invalid format of external backup history

Erläuterung:

Die Datei External Backup History entspricht nicht dem erwarteten Format.

Benutzerreaktion:

Je nachdem, ob Sie die Informationen aus dieser Datei benötigen oder nicht benötigen, verständigen Sie entweder den Support oder erstellen eine Sicherungskopie dieser Datei und ersetzen diese Datei mit einer leeren Datei gleichen Namens.


-24907: ERR_DBAWRONG - wrong SYSDBA (MaxDB: Meldungen)

-24907: ERR_DBAWRONG - wrong SYSDBA

Erläuterung:

Der dem DBM-Server als SYSDBA (Datenbanksystemadministrator) bekannte Benutzer besitzt nicht die erforderlichen Rechte.

Benutzerreaktion:

Geben Sie den tatsächlichen Datenbanksystemadministrator an.


-24908: ERR_DOMPUNKNOWN - DOMAIN password unknown (MaxDB: Meldungen)

-24908: ERR_DOMPUNKNOWN - DOMAIN password unknown

Erläuterung:

Das Kennwort des für das Laden der Systemtabellen erforderlichen Benutzers DOMAIN ist dem DBM-Server nicht bekannt.

Benutzerreaktion:

Geben Sie das Kennwort des Benutzers DOMAIN an.


-24909: ERR_DBAUNKNOWN - SYSDBA unknown (MaxDB: Meldungen)

-24909: ERR_DBAUNKNOWN - SYSDBA unknown

Erläuterung:

Der für das Laden der Systemtabellen erforderliche SYSDBA (Datenbanksystemadministrator) ist dem DBM-Server nicht bekannt.

Benutzerreaktion:

Geben Sie den Datenbanksystemadministrator an.


-24910: ERR_PARAMVER - wrong version of param help file (cserv.p (MaxDB: Meldungen)

-24910: ERR_PARAMVER - wrong version of param help file (cserv.pcf) <version>

Erläuterung:

Die Versionen von DBM-Server und der Parameter-Beschreibungsdatei (cserv.pcf) passen nicht zueinander.

Benutzerreaktion:

Korrigieren Sie die Dateien Ihrer Installation. Beachten Sie, dass vor einer Installation oder einer Aktualisierung der Installation alle Programme des Datenbanksystems beendet werden müssen.


-24911: ERR_INVDBNAME - database name <database_name> is reserve (MaxDB: Meldungen)

-24911: ERR_INVDBNAME - database name <database_name> is reserved

Erläuterung:

Sie haben einen unzulässigen Namen für Ihre Datenbankinstanz gewählt.

Benutzerreaktion:

Benutzen Sie einen anderen Namen für Ihre Datenbankinstanz.


-24912: ERR_WRONGINST – DBM server instroot is <inst_path> (MaxDB: Meldungen)

-24912: ERR_WRONGINST – DBM server instroot is <inst_path>

Erläuterung:

Sie haben versucht, eine Installation mit einem DBM-Server aus einer anderen Installation zu registrieren. Dies ist nicht möglich.

Benutzerreaktion:

Benutzen Sie den korrekten DBM-Server. Bei der Benutzung des Database Manager CLI können Sie mit der Option -R die Verwendung eines bestimmten DBM-Server erzwingen.


-24913: ERR_SERVICEDB - can not register service kernel for <ins (MaxDB: Meldungen)

-24913: ERR_SERVICEDB - can not register service kernel for <inst_path>

Erläuterung:

Die Servicedatenbankinstanz konnte nicht registriert werden. Ursache dafür können eine fehlerhafte Installation der Dateien oder fehlende Rechte des Betriebsystembenutzers sein.

Benutzerreaktion:

Korrigieren oder wiederholen Sie die Installation, bzw. statten Sie Ihren Betriebssystembenutzer mit den erforderlichen Rechten aus.


-24914: ERR_KEYEXISTS - installation key <key> exists (MaxDB: Meldungen)

-24914: ERR_KEYEXISTS - installation key <key> exists

Erläuterung:

Sie haben im DBM-Kommando inst_reg einen Schlüssel verwendet, der bereits vergeben ist. Hatten Sie keinen Schlüssel spezifiziert, so ist der leere Schlüssel bereits vergeben.

Benutzerreaktion:

Verwenden Sie im DBM-Kommando inst_reg hinter der Option -k einen eindeutigen Schlüssel inst_reg -k <key>.


-24915: ERR_NOADDD - configuration update not allowed (param fil (MaxDB: Meldungen)

-24915: ERR_NOADDD - configuration update not allowed (param file is inactive)

Erläuterung:

Das Ändern der Datenbankkonfiguration ist nicht erlaubt, da an der Parameterdatei Änderungen vorgenommen wurden, die noch nicht aktiviert wurden.

Benutzerreaktion:

Um die Änderungen in der Parameterdatei zu aktivieren, überführen Sie die Datenbank zunächst in den Betriebszustand OFFLINE und dann in den Zustand ONLINE.

Um die Änderungen in der Parameterdatei rückgängig zu machen, benutzen Sie das DBM-Kommando param_restore.


-24916: ERR_MAXDEVCNT - max device count exceeded (MaxDB: Meldungen)

-24916: ERR_MAXDEVCNT - max device count exceeded

Erläuterung:

Die Anzahl der Volumes des verwendeten Typs übersteigt den aktuell eingestellten Maximalwert.

Benutzerreaktion:

Erhöhen Sie den Wert des Datenbankparameters MAXLOGVOLUMES für die Log-Volumes oder den Wert von MAXDATAVOLUMES für die Data-Volumes. Zur Aktivierung des neuen Wertes müssen Sie die Datenbankinstanz neu starten.


-24917: ERR_MAXDATA - max data size exceeded (MaxDB: Meldungen)

-24917: ERR_MAXDATA - max data size exceeded

Erläuterung:

Die Gesamtgröße der Data-Volumes übersteigt den aktuell eingestellten Maximalwert.

Benutzerreaktion:

Verringern Sie die Größe des hinzuzufügenden Volume.


-24918: ERR_MISSMIRR - missing data for mirror volume (MaxDB: Meldungen)

-24918: ERR_MISSMIRR - missing data for mirror volume

Erläuterung:

Die Angaben zu einem gespiegelten Volume sind nicht vorhanden.

Benutzerreaktion:

Korrigieren Sie Ihre Eingabe mit den Daten für das gespiegelte Volume. Führen Sie die Anweisung erneut aus.


-24919: ERR_CLEANUP: cannot free all operational ressources afte (MaxDB: Meldungen)

-24919: ERR_CLEANUP: cannot free all operational ressources after backup operation

Erläuterung:

Es war nach der eigentlich erfolgreichen Sicherung, Überprüfung oder Wiederherstellung nicht möglich, alle in Anspruch genommenen temporären Systemressourcen wieder freizugeben.

Benutzerreaktion:

Überprüfen Sie anhand des Sicherungsprotokolls, welche Ressourcen nicht freigegeben wurden. Handelt es sich um temporäre Dateien oder Pipes, versuchen Sie, diese manuell zu entfernen. Versuchen Sie außerdem, die in der erweiterten Fehlerbeschreibung genannte Ursache des Problems zu beseitigen. Falls Sie das Problem nicht lösen können, verständigen Sie den Support.


-24920: ERR_BACKUPOP: backup operation was unsuccessful (MaxDB: Meldungen)

-24920: ERR_BACKUPOP: backup operation was unsuccessful

Erläuterung:

Die Sicherung, Überprüfung oder Wiederherstellung ist aufgrund eines Datenbankproblems oder aufgrund eines Problems des Sicherungswerkzeuges fehlgeschlagen. Im Falle einer Überprüfung ist es auch möglich, dass die überprüfte Sicherung fehlerhaft war.

Benutzerreaktion:

Versuchen Sie, die in der erweiterten Fehlerbeschreibung genannte Ursache des Problems zu beseitigen. Falls Sie das Problem nicht lösen können, verständigen Sie den Support.


-24921: ERR_POSTOP: error while finishing backup operation (MaxDB: Meldungen)

-24921: ERR_POSTOP: error while finishing backup operation

Erläuterung:

Es war nach eigentlich erfolgreicher Sicherung, Überprüfung oder Wiederherstellung nicht möglich, die notwendigen Schritte zur Nachbearbeitung durchzuführen.

Benutzerreaktion:

Versuchen Sie, die in der erweiterten Fehlerbeschreibung genannte Ursache des Problems zu beseitigen, und wiederholen Sie die Sicherung, Überprüfung oder Wiederherstellung. Falls Sie das Problem nicht lösen können, verständigen Sie den Support.


-24922: ERR_OPCHK: cannot check state of backup operation (MaxDB: Meldungen)

-24922: ERR_OPCHK: cannot check state of backup operation

Erläuterung:

Es war nicht möglich, den Zustand der Datenbankinstanz oder den Zustand des Sicherungswerkzeuges zu überprüfen.

Benutzerreaktion:

Versuchen Sie, die in der erweiterten Fehlerbeschreibung genannte Ursache des Problems zu beseitigen. Falls Sie das Problem nicht lösen können, verständigen Sie den Support.


-24923: ERR_TOOLREQ: error while starting external backup tool (MaxDB: Meldungen)

-24923: ERR_TOOLREQ: error while starting external backup tool

Erläuterung:

Es war nicht möglich das Sicherungswerkzeug korrekt zu starten.

Benutzerreaktion:

Versuchen Sie, die in der erweiterten Fehlerbeschreibung genannte Ursache des Problems zu beseitigen. Falls Sie das Problem nicht lösen können, verständigen Sie den Support.


-24924: ERR_DBREQ: cannot start database kernel request (MaxDB: Meldungen)

-24924: ERR_DBREQ: cannot start database kernel request

Erläuterung:

Die Datenbankinstanz konnte die Sicherung, Überprüfung oder Wiederherstellung nicht starten.

Benutzerreaktion:

Versuchen Sie, die in der erweiterten Fehlerbeschreibung genannte Ursache des Problems zu beseitigen. Falls Sie das Problem nicht lösen können, verständigen Sie den Support.


-24925: ERR_PREPARE: preparation of backup operation failed (MaxDB: Meldungen)

-24925: ERR_PREPARE: preparation of backup operation failed

Erläuterung:

Die nötigen Vorbereitungen zum Einsatz des Sicherungswerkzeuges konnten nicht erfolgreich abgeschlossen werden.

Benutzerreaktion:

Versuchen Sie, die in der erweiterten Fehlerbeschreibung genannte Ursache des Problems zu beseitigen. Falls Sie das Problem nicht lösen können, verständigen Sie den Support.


-24926: ERR_MEDIUMCHK: medium cannot be used with this external (MaxDB: Meldungen)

-24926: ERR_MEDIUMCHK: medium cannot be used with this external backup tool

Erläuterung:

Das angegebene Sicherungsmedium kann nicht mit dem durch den Mediennamen festgelegten Sicherungswerkzeug verwendet werden.

Benutzerreaktion:

Versuchen Sie, die in der erweiterten Fehlerbeschreibung genannte Ursache des Problems zu beseitigen, indem Sie das Sicherungsmedium entsprechend verändern. Falls Sie das Problem nicht lösen können, verständigen Sie den Support.


-24927: ERR_TOOLCHK: external backup tool not found (MaxDB: Meldungen)

-24927: ERR_TOOLCHK: external backup tool not found

Erläuterung:

Das externe Sicherungswerkzeug wurde nicht gefunden oder ist nicht korrekt installiert.

Benutzerreaktion:

Versuchen Sie, die in der erweiterten Fehlerbeschreibung genannte Ursache des Problems zu beseitigen. Wollten Sie kein externes Sicherungswerkzeug einsetzen, ändern Sie die Definition des Sicherungsmediums entsprechend. Falls Sie das Problem nicht lösen können, verständigen Sie den Support.


-24928: ERR_NOREPLY - no reply available (MaxDB: Meldungen)

-24928: ERR_NOREPLY - no reply available

Erläuterung:

Für eine asynchrone Anforderung an die Datenbankinstanz liegt noch keine Antwort vor.

Benutzerreaktion:

Wiederholen Sie die Anweisung bis ein Vorliegen der Anwort angezeigt wird, und verwenden Sie dann die zur Anforderung korrespondierende Anweisung zum Abholen der Antwort. Alternativ können Sie sofort die Anweisung zum Abholen der Antwort verwenden. Diese wartet, bis die Anwort bereitgestellt ist.


-24929: ERR_USRFRM - invalid user record format (MaxDB: Meldungen)

-24929: ERR_USRFRM - invalid user record format

Erläuterung:

Die Daten der DBM-Benutzer sind inkonsistent.

Benutzerreaktion:

Überprüfen Sie bei einer Migration die korrekte Ausführung der Migrationsschritte. Wenden Sie sich bei weiterem Bestehen des Fehlers an den Support.


-24930: ERR_XPVALUESET - parameter value not in value set (MaxDB: Meldungen)

-24930: ERR_XPVALUESET - parameter value not in value set

Erläuterung:

Der eingegebene Wert des Datenbankparameters ist nicht in der zulässigen Wertemenge enthalten.

Benutzerreaktion:

Korrigieren Sie Ihre Eingabe, und führen Sie die DBM-Kommando erneut durch.


-24931: ERR_XPMAX - parameter value higher than maximum allowed (MaxDB: Meldungen)

-24931: ERR_XPMAX - parameter value higher than maximum allowed

Erläuterung:

Der eingegebene Wert des Datenbankparameters liegt über dem maximal zulässigen Wert.

Benutzerreaktion:

Korrigieren Sie Ihre Eingabe, und führen Sie das DBM-Kommando erneut durch.


-24932: ERR_XPMIN - parameter value smaller than minimum allowed (MaxDB: Meldungen)

-24932: ERR_XPMIN - parameter value smaller than minimum allowed

Erläuterung:

Der eingegebene Wert des Datenbankparameters liegt unter dem notwendigen Minimum.

Benutzerreaktion:

Korrigieren Sie Ihre Eingabe und führen Sie das DBM-Kommando erneut durch.


-24933: ERR_NOSERVICESESSION - no service kernel available (MaxDB: Meldungen)

-24933: ERR_NOSERVICESESSION - no service kernel available

Erläuterung:

Das verwendete DBM-Kommando erfordert eine Service-Sitzung.

Benutzerreaktion:

Aktivieren Sie die Service-Sitzung vor Ausführung des DBM-Kommandos mit dem DBM-Kommando service_connect oder der Option -uSRV.


-24934: ERR_VERSION - incompatible versions (param and kernel) (MaxDB: Meldungen)

-24934: ERR_VERSION - incompatible versions (param and kernel)

Erläuterung:

Die Version der Parameterdatei der Datenbankinstanz passt nicht zum ausführbaren Datenbankprogramm.

Benutzerreaktion:

Aktualisieren Sie die Einträge in der Parameterdatei durch eine Parameterprüfung. Verwenden Sie dazu das DBM-Kommando param_checkall.


-24935: ERR_NOUSERS - no users found (MaxDB: Meldungen)

-24935: ERR_NOUSERS - no users found

Erläuterung:

Es wurden keine Benutzereinträge gefunden.

Benutzerreaktion:

Erzeugen Sie die benötigten Benutzereinträge mit dem DBM-Kommando db_create.


-24936: ERR_DBNORUN - database is not running (MaxDB: Meldungen)

-24936: ERR_DBNORUN - database is not running

Erläuterung:

Die Datenbankinstanz befindet sich nicht im Betriebszustand ADMIN oder ONLINE.

Benutzerreaktion:

Überführen Sie vor Anwendung des DBM-Kommandos die Datenbankinstanz in den gewünschten Betriebszustand. Verwenden Sie dazu das DBM-Kommando db_admin oder db_online.


-24937: ERR_MISSRIGHT - no server rights for this command (MaxDB: Meldungen)

-24937: ERR_MISSRIGHT - no server rights for this command

Erläuterung:

Der aktuelle DBM-Benutzer ist nicht berechtigt dieses Kommando auszuführen.

Benutzerreaktion:

Verwenden Sie einen anderen DBM-Benutzer, oder passen Sie die Benutzerrechte des aktuellen DBM-Benutzers entsprechend an. Benutzen Sie dazu das DBM-Kommando user_put.


-24938: ERR_NOENTRY - no entry found (MaxDB: Meldungen)

-24938: ERR_NOENTRY - no entry found

Erläuterung:

Die angeforderte Registrierung der Datenbankinstanz wurde nicht gefunden.

Benutzerreaktion:

Verwenden zur Ausführung des DBM-Kommandos eine vorhandene Registrierung.


-24939: ERR_LASTREG - cannot delete last registration of instanc (MaxDB: Meldungen)

-24939: ERR_LASTREG - cannot delete last registration of instance

Erläuterung:

Die letzte Registrierung einer Datenbankinstanz darf mit dem verwendeten DBM-Kommando nicht gelöscht werden.

Benutzerreaktion:

Zum Löschen der Datenbankinstanz verwenden Sie das DBM-Kommando db_drop. Alle gespeicherten Daten und die Konfiguration der Datenbankinstanz gehen dabei verloren.


-24940: ERR_NEEDSYSLOGON - system logon required (MaxDB: Meldungen)

-24940: ERR_NEEDSYSLOGON - system logon required

Erläuterung:

Das verwendete DBM-Kommando erfordert eine Anmeldung am Betriebssystem.

Benutzerreaktion:

Hinterlegen Sie zu dem verwendeten DBM-Benutzer einen Betriebssystembenutzer. Verwenden Sie dazu das DBM-Kommando user_put.

Zur Aktivierung des Betriebssystembenutzers melden Sie sich erneut am DBM-Server an. Verwenden Sie dazu das DBM-Kommando user_logon, und achten Sie auf Warnungen, die auf Probleme mit der Betriebssystemanmeldung hinweisen.


-24941: ERR_NEEDLOGON - DBM server logon required (MaxDB: Meldungen)

-24941: ERR_NEEDLOGON - DBM server logon required

Erläuterung:

Das verwendete DBM-Kommando erfordert eine Anmeldung am DBM-Server.

Benutzerreaktion:

Melden Sie sich korrekt am DBM-Server an. Verwenden Sie dazu das DBM-Kommando user_logon oder die Option -u.


-24942: ERR_USRDELSDBA - cannot delete sysdba (MaxDB: Meldungen)

-24942: ERR_USRDELSDBA - cannot delete sysdba

Erläuterung:

Der verwendete SYSDBA-Benutzer hat besondere Eigenschaften und darf nicht gelöscht werden.

Benutzerreaktion:

Sie dürfen diesen Benutzer nicht löschen. Sollte die Kombination Benutzername/Kennwort Unbefugten bekannt geworden sein, ändern Sie bitte das Kennwort des Benutzers. Verwenden Sie dazu das DBM-Kommando user_put.


-24943: ERR_USRDELCOLD - cannot delete DBM user (MaxDB: Meldungen)

-24943: ERR_USRDELCOLD - cannot delete DBM user

Erläuterung:

Der verwendete Benutzer hat besondere Eigenschaften und darf nicht gelöscht werden.

Benutzerreaktion:

Sie dürfen diesen Benutzer nicht löschen. Sollte die Kombination Benutzername/Kennwort Unbefugten bekannt geworden sein, ändern Sie bitte das Kennwort des Benutzers. Verwenden Sie dazu das DBM-Kommando user_put.


-24944: ERR_USRDELSELF - cannot delete current user (MaxDB: Meldungen)

-24944: ERR_USRDELSELF - cannot delete current user

Erläuterung:

Der aktuell angemeldete Benutzer darf nicht gelöscht werden.

Benutzerreaktion:

Melden Sie sich mit einem anderen Benutzer am DBM-Server an, und führen Sie das DBM-Kommando erneut aus.


-24945: ERR_TOFEWPARAM - to few parameters (MaxDB: Meldungen)

-24945: ERR_TOFEWPARAM - to few parameters

Erläuterung:

Das DBM-Kommando wurde mit zu wenig Parametern versehen.

Benutzerreaktion:

Korrigieren Sie Ihre Eingabe entsprechend der Dokumentation der DBM-Kommandos und führen Sie diese erneut aus.


-24946: ERR_TOMANYPARAM - to many parameters (MaxDB: Meldungen)

-24946: ERR_TOMANYPARAM - to many parameters

Erläuterung:

Das DBM-Kommando wurde mit zu vielen Parametern versehen.

Benutzerreaktion:

Korrigieren Sie Ihre Eingabe entsprechend der Dokumentation der DBM-Kommandos und führen Sie diese erneut aus.


-24947: ERR_DBNAME - do not use dbname (MaxDB: Meldungen)

-24947: ERR_DBNAME - do not use dbname

Erläuterung:

Das DBM-Kommando lässt sich nicht auf eine Datenbankinstanz anwenden.

Benutzerreaktion:

Verzichten Sie bei der Ausführung des DBM-Kommandos auf die Angabe eines Datenbanknamens.


-24948: ERR_NODBNAME - database name required (MaxDB: Meldungen)

-24948: ERR_NODBNAME - database name required

Erläuterung:

Das DBM-Kommando lässt sich nur auf eine Datenbankinstanz anwenden.

Benutzerreaktion:

Geben Sie mit der Option -d dem DBM-Server den Namen der zu verwendenden Datenbankinstanz bekannt.


-24949: ERR_USREXISTS - user entry already exists (MaxDB: Meldungen)

-24949: ERR_USREXISTS - user entry already exists

Erläuterung:

Das verwendete DBM-Kommando ist nicht möglich, da der Benutzername bereits existiert.

Benutzerreaktion:

Verwenden Sie einen Namen, der noch nicht für einen Benutzer vergeben wurde oder löschen Sie den vorhandenen Benutzer. Einen Benutzer sollten Sie nur löschen, wenn er nicht mehr benötigt wird. Alle gespeicherten Einstellungen zu diesem Benutzer gehen dabei verloren. Verwenden Sie zum Löschen des Benutzers das DBM-Kommando user_delete.


-24950: ERR_USRFAIL - user authorization failed (MaxDB: Meldungen)

-24950: ERR_USRFAIL - user authorization failed

Erläuterung:

Die Autorisierung am DBM-Server ist fehlgeschlagen. Der Benutzername und/oder das verwendete Kennwort sind nicht korrekt.

Benutzerreaktion:

Korrigieren Sie Ihre Eingabe und melden Sie sich erneut am DBM-Server an. Im Database Manager GUI können Sie die für die Datenbankinstanz hinterlegten Benutzerdaten korrigieren.


-24951: ERR_USRREAD - could not read user data (MaxDB: Meldungen)

-24951: ERR_USRREAD - could not read user data

Erläuterung:

Die Daten der/des DBM-Benutzer(s) konnten nicht gelesen werden.

Benutzerreaktion:

Überprüfen Sie die Dateisystemattribute und die Betriebssystem-Benutzerrechte des User Profile Containers. Diese Datei trägt den Namen <database_name>.upc. Unter Windows finden Sie diese Datei im Verzeichnis config der Datenbankinstallation. Auf UNIX-Systemen ist diese Datei unter /usr/spool/sql/config abgelegt. Überprüfen Sie mit dem DBM-Kommando user_getall das Vorhandensein des betroffenen Benutzers.


-24952: ERR_USRSAVE - could not save user data (MaxDB: Meldungen)

-24952: ERR_USRSAVE - could not save user data

Erläuterung:

Die Daten des DBM-Benutzers konnten nicht gespeichert werden.

Benutzerreaktion:

Überprüfen Sie die Dateisystemattribute und die Betriebssystem-Benutzerrechte des User Profile Containers. Diese Datei trägt den Namen <database_name>.upc. Unter Windows finden Sie diese Datei im Verzeichnis config der Datenbankinstallation. Auf UNIX-Systemen ist diese Datei unter /usr/spool/sql/config abgelegt. Überprüfen Sie die Verfügbarkeit von ausreichendem Speicherplatz auf der betroffenen Festplatte.


-24953: ERR_DBEXIST - database instance already exists (MaxDB: Meldungen)

-24953: ERR_DBEXIST - database instance already exists

Erläuterung:

Das verwendete DBM-Kommando ist nicht möglich, da die Datenbankinstanz bereits existiert.

Benutzerreaktion:

Verwenden Sie einen Namen, der noch nicht für eine Datenbankinstanz vergeben wurde, oder löschen Sie die vorhandene Datenbankinstanz. Eine Datenbankinstanz sollten Sie nur löschen, wenn sie nicht mehr benötigt wird. Alle gespeicherten Daten und die Konfiguration der Datenbankinstanz gehen dabei verloren. Verwenden Sie zum Löschen der Datenbankinstanz das DBM-Kommando db_drop.


-24954: ERR_BANOAUTOMED - no autolog medium found in media list (MaxDB: Meldungen)

-24954: ERR_BANOAUTOMED - no autolog medium found in media list

Erläuterung:

Es wurde kein Sicherungsmedium definiert, das für die automatische Log-Sicherung verwendet werden soll.

Benutzerreaktion:

Korrigieren Sie die Mediendefinition, oder geben Sie das Sicherungsmedium bei dem fehlgeschlagenen Kommando explizit an.


-24955: ERR_BANOSAVETYPE - backup type not defined (MaxDB: Meldungen)

-24955: ERR_BANOSAVETYPE - backup type not defined

Erläuterung:

Die Sicherungsmediendefinition enthält keinen Backup-Type (LOG, DATA oder PAGES).

Benutzerreaktion:

Korrigieren Sie die Mediendefinition, oder geben Sie den Backup-Type bei dem fehlgeschlagenen Kommando explizit an.


-24956: ERR_BASAVETYPECON - backup type conflicts with medium de (MaxDB: Meldungen)

-24956: ERR_BASAVETYPECON - backup type conflicts with medium definition

Erläuterung:

Es wurde eine Sicherung oder Wiederherstellung mit einem Sicherungsmedium versucht. Dabei stimmen der voreingestellte Backup-Type (LOG, DATA oder PAGES) für das Sicherungsmedium und der beim Sichern oder Wiederherstellen verwendete Backup-Type nicht überein.

Benutzerreaktion:

Korrigieren Sie Ihre Eingabe oder die Mediendefinition.

Die Anpassung der Mediendefinition muss zum Wiederherstellen älterer Sicherungen u.U. wieder korrigiert werden.


-24957: ERR_NOUSER - required user not set (MaxDB: Meldungen)

-24957: ERR_NOUSER - required user not set

Erläuterung:

Es wurde versucht, ein DBM-Kommando auszuführen, das auf einen hinterlegten Benutzer aufsetzen kann. Dieser Standardbenutzer wurde jedoch noch nicht dem DBM-Server bekannt gegeben.

Benutzerreaktion:

Hinterlegen Sie zunächst den erforderlich Benutzer mit dem DBM-Kommando user_set. Alternativ können Sie bei Ausführung der fehlgeschlagenen Anweisung auch explizit eine Benutzer/Kennwort-Kombination spezifizieren.

Tritt der Fehler im Database Manager GUI auf, und Sie haben keine Möglichkeit zur Korrektur, benachrichtigen Sie den Support.


-24958: ERR_BAOVERWRITE - file already exists, cannot overwrite (MaxDB: Meldungen)

-24958: ERR_BAOVERWRITE - file already exists, cannot overwrite

Erläuterung:

Es wurde versucht eine Sicherung durchzuführen. Das angegebene Sicherungsmedium wurde jedoch bereits für eine Sicherung genutzt und mit der Eigenschaft nicht überschreibbar definiert.

Benutzerreaktion:

Verwenden Sie ein anderes Sicherungsmedium, oder löschen Sie das Sicherungsmedium mit Betriebssystemmitteln. Alternativ können Sie auch die Mediendefinition anpassen.

Das Überschreiben oder Löschen eines Sicherungsmediums vernichtet die dort gespeicherten Daten.


-24959: ERR_XPOVERFLOW - value out of margin (MaxDB: Meldungen)

-24959: ERR_XPOVERFLOW - value out of margin

Erläuterung:

Der verwendete Wert für einen Datenbankparameter ist unzulässig. Es wurde ein unzulässiger Datentyp gewählt (z.B. Text für einen numerischen Parameter) oder die Grenzen des Datentyps überschritten (z.B. zu große Zahl oder zu langer Text).

Benutzerreaktion:

Korrigieren Sie Ihre Eingabe.

Tritt der Fehler im Database Manager GUI auf, und Sie haben keine Möglichkeit zur Korrektur, wenden Sie sich an den Support.


-24960: ERR_DBRUN - database is running (MaxDB: Meldungen)

-24960: ERR_DBRUN - database is running

Erläuterung:

Die Datenbankinstanz befindet sich im Betriebszustand ONLINE oder ADMIN. Das verwendete DBM-Kommando ist in diesem Betriebszustand unzulässig.

Benutzerreaktion:

Bringen Sie zunächst die Datenbankinstanz in den Betriebszustand OFFLINE und wiederholen Sie das Kommando.

Ein Stoppen der Datenbankinstanz in den Betriebszustand OFFLINE beendet die Verbindungen aller angemeldeten Benutzer bzw. Programme zur Datenbankinstanz.


-24961: ERR_STATE - cannot determine current db state (MaxDB: Meldungen)

-24961: ERR_STATE - cannot determine current db state

Erläuterung:

Der Betriebszustand der Datenbankinstanz konnte nicht korrekt ermittelt werden. Damit kann die Zulässigkeit von DBM-Kommandos nicht mehr bestimmt werden.

Benutzerreaktion:

Prüfen Sie die Datenbankprozesse mit Betriebssystemmitteln. Versuchen Sie mit einer Datenbankanwendung (z.B. SQL Studio) eine Verbindung zur Datenbankinstanz herzustellen. Gelingt dies, ist die Datenbankinstanz im Betriebszustand ONLINE und (evtl. mit Einschränkungen) betriebsbereit.

Nutzen Sie weitere vorhandene Möglichkeiten (z.B. Protokolldateien), um den Zustand der Datenbankinstanz zu überprüfen. Wenden Sie sich ggf. an den Support.

Sind Ihre Anwendungen bzw. Benutzer nicht mehr in der Lage, eine Verbindung zur Datenbankinstanz aufzubauen, sollte die Datenbankinstanz neu gestartet und so in einen definierten Zustand gebracht werden.


-24962: ERR_DEVTYPE - wrong volume type (MaxDB: Meldungen)

-24962: ERR_DEVTYPE - wrong volume type

Erläuterung:

Es wurde ein unbekannter oder unzulässiger Typ für ein Volume verwendet.

Benutzerreaktion:

Korrigieren Sie Ihre Eingabe.


-24963: ERR_DEVCHECK - error while checking volume (MaxDB: Meldungen)

-24963: ERR_DEVCHECK - error while checking volume

Erläuterung:

Es wurde versucht, ein ungültiges Volume zu konfigurieren. Das Volume konnte mit den verwendeten Parametern nicht gefunden bzw. angelegt werden.

Benutzerreaktion:

Überprüfen Sie Ihre Eingabe und Ihre Betriebssystemkonfiguration. Nehmen Sie entsprechende Korrekturen vor, und wiederholen Sie die Konfiguration des Volume.


-24964: ERR_EXECUTE - error in program execution (MaxDB: Meldungen)

-24964: ERR_EXECUTE - error in program execution

Erläuterung:

Beim Aufruf eines Programms oder einer Betriebssystemanweisung durch den DBM-Server ist ein Fehler aufgetreten. Das Programm bzw. die Anweisung selbst wurde nicht gefunden oder stellte bei seiner Ausführung einen Fehler fest.

Benutzerreaktion:

Achten Sie auf den gelieferten Exit-Code und die ebenfalls gelieferte Ausgabe des Programms bzw. der Anweisung. Überprüfen Sie das Vorhandensein des Programms bzw. der Anweisung auf dem Server, und beziehen Sie die Dokumentation des Programms bzw. der Anweisung in die Fehlersuche ein.

Tritt der Fehler im Database Manager GUI auf, und Sie haben keine Möglichkeit zur Korrektur, wenden Sie sich an den Support.


-24965: ERR_SYSLOGON - logon to system failed (MaxDB: Meldungen)

-24965: ERR_SYSLOGON - logon to system failed

Erläuterung:

Die Anmeldung des DBM-Server am Betriebssystem konnte nicht durchgeführt werden, oder die verwendete Anweisung erfordert eine vorherige Anmeldung am Betriebssystem.

Benutzerreaktion:

Prüfen Sie Ihre Eingabe sowie die Rechte des verwendeten Benutzers. Unter Windows muss der Benutzer das Recht logon as batch job haben. Ebenfalls muss der aktuelle Benutzer des DBM-Servers das Recht haben, sich unter einem anderen Benutzerkonto anzumelden.


-24966: ERR_LOGON - logon to DBM server failed (MaxDB: Meldungen)

-24966: ERR_LOGON - logon to DBM server failed

Erläuterung:

Es wurde eine ungültige Benutzer/Kennwort-Kombination verwendet, oder die verwendete Anweisung erfordert eine vorherige Anmeldung.

Benutzerreaktion:

Korrigieren Sie Ihre Benutzer/Kennwort-Eingabe, oder melden Sie sich zunächst am DBM-Server an.

Tritt der Fehler im Database Manager GUI auf, und Sie haben keine Möglichkeit zur Korrektur, wenden Sie sich an den Support.


-24967: ERR_SYSTEM - system call error (MaxDB: Meldungen)

-24967: ERR_SYSTEM - system call error

Erläuterung:

Die Verwendung einer Funktion des Betriebssystems ist fehlgeschlagen.

Benutzerreaktion:

Achten Sie auf den erweiterten Fehlertext, der die Meldung des Betriebssystems näher beschreibt.


-24968: ERR_XPREADONLY - parameter is read only (MaxDB: Meldungen)

-24968: ERR_XPREADONLY - parameter is read only

Erläuterung:

Der verwendete Datenbankparameter darf nicht geändert werden.

Benutzerreaktion:

Korrigieren Sie Ihre Eingabe.

Tritt der Fehler im Database Manager GUI auf, und Sie haben keine Möglichkeit zur Korrektur, ist der Support zu benachrichtigen.


-24969: ERR_XPDIRTY - param file is dirty (MaxDB: Meldungen)

-24969: ERR_XPDIRTY - param file is dirty

Erläuterung:

Es wurde versucht, eine Änderung an den Datenbankparameter vorzunehmen, ohne eine bereits vorher getätigte Änderung durch einen Neustart der Datenbankinstanz auf Lauffähigkeit zu prüfen.

Benutzerreaktion:

Starten Sie die Datenbankinstanz, und wiederholen Sie die Änderung des Datenbankparameters.

Ein erneutes Starten der Datenbankinstanz beendet die Verbindungen aller angemeldeten Benutzer bzw. Programme zur Datenbankinstanz.


-24970: ERR_XPNOMODIFY - parameter must not be modified (MaxDB: Meldungen)

-24970: ERR_XPNOMODIFY - parameter must not be modified

Erläuterung:

Der verwendete Datenbankparameter darf nicht verändert werden.

Benutzerreaktion:

Korrigieren Sie den Datenbankparameter auf seinen Ausgangswert.

Tritt der Fehler im Database Manager GUI auf, und Sie haben keine Möglichkeit zur Korrektur, wenden Sie sich an den Support.


-24971: ERR_XPNOCHECK - no running parameter check (MaxDB: Meldungen)

-24971: ERR_XPNOCHECK - no running parameter check

Erläuterung:

Das Wiederaufsetzen beim Prüfen der Datenbankparameter nach der Korrektur eines einzelnen Parameters war nicht möglich, da kein Checklauf aktiv war.

Benutzerreaktion:

Starten Sie das Prüfen der Datenbankparameter erneut.

Tritt der Fehler im Database Manager GUI auf, und Sie haben keine Möglichkeit zur Korrektur, wenden Sie sich an den Support.


-24972: ERR_XPINVCONF - invalid value (MaxDB: Meldungen)

-24972: ERR_XPINVCONF - invalid value

Erläuterung:

Es wurde versucht einen Datenbankparameter zu bestätigen. Dabei wurde ein ungültiger Wert verwendet oder ein Parameter verwendet, für den kein Request vorlag.

Benutzerreaktion:

Korrigieren Sie Ihre Eingabe oder prüfen Sie nochmals die Datenbankparameter (z.B. mit dem DBM-Kommando param_checkall).

Tritt der Fehler im Database Manager GUI auf, und Sie haben keine Möglichkeit zur Korrektur, wenden Sie sich an den Support.


-24973: ERR_XPCHECK - param check failure/request (MaxDB: Meldungen)

-24973: ERR_XPCHECK - param check failure/request

Erläuterung:

Das Überprüfen der Datenbankparameter anhand der in der Parameterhilfedatei hinterlegten Regeln und Eigenschaften war nicht erfolgreich. Im erweiterten Meldungstext finden Sie nähere Information.

Benutzerreaktion:

Korrigieren Sie den Wert des Datenbankparameters entsprechend der Dokumentation.

Tritt der Fehler im Database Manager GUI auf, und Sie haben keine Möglichkeit zur Korrektur, wenden Sie sich an den Support.


-24974: ERR_XPSESSION - param session active (MaxDB: Meldungen)

-24974: ERR_XPSESSION - param session active

Erläuterung:

Bei einer aktiven Parametersitzung wird der Start einer weiteren Sitzung abgelehnt.

Benutzerreaktion:

Überprüfen Sie die Reihenfolge Ihrer DBM-Kommandos. Beenden Sie ggf. eine existierende Parametersitzung mit param_commitsession oder param_abortsession. Alternativ können Sie auch die aktive Parametersitzung für Ihr Kommando benutzen.

Tritt der Fehler im Database Manager GUI auf, und Sie haben keine Möglichkeit zur Korrektur, wenden Sie sich an den Support.


-24975: ERR_NOXPSESSION - param session inactive (MaxDB: Meldungen)

-24975: ERR_NOXPSESSION - param session inactive

Erläuterung:

Einige DBM-Kommandos aus dem Themenkreis setzen eine Parametersitzung voraus. Diese Sitzung war im vorliegenden Fall jedoch nicht aktiv.

Benutzerreaktion:

Überprüfen Sie die Reihenfolge Ihrer Kommandos. Starten Sie zur Bearbeitung der Datenbankparameter zunächst eine Parametersitzung mit dem DBM-Kommando param_startsession.

Tritt der Fehler im Database Manager GUI auf, und Sie haben keine Möglichkeit zur Korrektur, wenden Sie sich an den Support.


-24976: ERR_PARAMEXIST - param file of database already exists (MaxDB: Meldungen)

-24976: ERR_PARAMEXIST - param file of database already exists

Erläuterung:

Für die angegebene Datenbankinstanz existiert bereits eine Parameterdatei. Die Initialisierung der Parameterdatei ist nur möglich, wenn keine Parameterdatei existiert. Damit wird der Verlust einer Konfiguration verhindert.

Benutzerreaktion:

Löschen Sie die Parameterdatei explizit mit dem DBM-Kommando param_rmfile oder auf Dateisystemebene. Dabei verlieren Sie die aktuelle Konfiguration der Datenbankinstanz.


-24977: ERR_COMMAND - unknown command <command> (MaxDB: Meldungen)

-24977: ERR_COMMAND - unknown command <command>

Erläuterung:

Das spezifizierte DBM-Kommando ist unbekannt.

Benutzerreaktion:

Geben Sie ein korrektes Kommando an. Achten Sie dabei auf Groß- und Kleinschreibung.

Tritt der Fehler im Database Manager GUI auf, und Sie haben keine Möglichkeit zur Korrektur, wenden Sie sich an den Support.


-24978: ERR_XPSYNTAX - xparam syntax error (MaxDB: Meldungen)

-24978: ERR_XPSYNTAX - xparam syntax error

Erläuterung:

Die Beschreibung der Datenbankparameter in der Parameterhilfedatei ist fehlerhaft.

Benutzerreaktion:

Achten Sie auf den erweiterten Fehlertext, und korrigieren Sie den Fehler in der Datei cserv.pcf in Verzeichnis env der Datenbankinstallation.


-24979: ERR_XPNOTFOUND - parameter not found (MaxDB: Meldungen)

-24979: ERR_XPNOTFOUND - parameter not found

Erläuterung:

Der angebene Datenbankparameter existiert nicht in der Parameterhilfedatei.

Benutzerreaktion:

Überprüfen Sie die Korrektheit des Parameternamens. Achten Sie auch auf Groß- und Kleinschreibung.

Tritt der Fehler im Database Manager GUI auf, und Sie haben keine Möglichkeit zur Korrektur, wenden Sie sich an den Support.


-24980: ERR_NOHELP - xparam help file not found (MaxDB: Meldungen)

-24980: ERR_NOHELP - xparam help file not found

Erläuterung:

Die Parameterhilfedatei, die die Datenbankparameter beschreibt, konnte nicht geöffnet werden.

Benutzerreaktion:

Überprüfen Sie das Vorhandensein und die Korrektheit der Datei cserv.pcf im Verzeichnis env Ihrer Datenbankinstallation. Überprüfen Sie ebenfalls die Zugriffsrechte des DBM-Server auf diese Datei.


-24981: ERR_HIENTRYNOTFOUND - backup history entry not found (MaxDB: Meldungen)

-24981: ERR_HIENTRYNOTFOUND - backup history entry not found

Erläuterung:

Der angeforderte Eintrag existiert nicht in der Sicherungshistorie.

Benutzerreaktion:

Korrigieren Sie die Parameter Ihres DBM-Kommandos zum Lesen der Sicherungshistorie.

Tritt der Fehler im Database Manager GUI auf, und Sie haben keine Möglichkeit zur Korrektur, wenden Sie sich an den Support.


-24982: ERR_ERR_NOHISTORY - backup history file not found (MaxDB: Meldungen)

-24982: ERR_ERR_NOHISTORY - backup history file not found

Erläuterung:

Es ist keine Sicherungshistorie vorhanden.

Benutzerreaktion:

Eine Sicherungshistorie ist nur vorhanden, wenn bereits Sicherungsoperationen durchgeführt wurden. Vorher kann die Funktionalität zur Sicherungshistorie nicht benutzt werden.


-24983: ERR_BANOVALIDTYPE - invalid backup type (MaxDB: Meldungen)

-24983: ERR_BANOVALIDTYPE - invalid backup type

Erläuterung:

Der angegebene Backup-Type ist ungültig.

Benutzerreaktion:

Geben Sie in Ihrem DBM-Kommando einen gültigen Backup-Type an.

Tritt der Fehler im Database Manager GUI auf, und Sie haben keine Möglichkeit zur Korrektur, wenden Sie sich an den Support.


-24984: ERR_MENOVALID - invalid medium definition (MaxDB: Meldungen)

-24984: ERR_MENOVALID - invalid medium definition

Erläuterung:

Die Definition des Sicherungsmediums ist ungültig.

Benutzerreaktion:

Überprüfen Sie die eingegebenen Parameter.

Tritt der Fehler im Database Manager GUI auf, und Sie haben keine Möglichkeit zur Korrektur, wenden Sie sich an den Support.


-24985: ERR_MENOTFOUND - medium not found (MaxDB: Meldungen)

-24985: ERR_MENOTFOUND - medium not found

Erläuterung:

Das angegebene Sicherungsmedium ist nicht definiert.

Benutzerreaktion:

Überprüfen Sie Ihre Eingabe. Verwenden Sie ein anderes Sicherungsmedium, oder legen Sie ein Medium unter dem Namen an.

Tritt der Fehler im Database Manager GUI auf, und Sie haben keine Möglichkeit zur Korrektur, wenden Sie sich an den Support.


-24986: ERR_NOMEDIA - media file not found (MaxDB: Meldungen)

-24986: ERR_NOMEDIA - media file not found

Erläuterung:

Für die Datenbankinstanz wurden noch keine Sicherungsmedien definiert.

Benutzerreaktion:

Legen Sie zunächst Sicherungsmedien an, bevor Sie Funktionen nutzen, die eine Definition von Sicherungsmedien voraussetzen.

Prüfen Sie, ob der DBM-Server auf seine Konfigurationsdateien zugreifen kann. Eventuell arbeitet der DBM-Server mit falschen Nutzerrechten.


-24987: ERR_TOSMALL - packet size too small for answer (MaxDB: Meldungen)

-24987: ERR_TOSMALL - packet size too small for answer

Erläuterung:

Der von der Anwendung zur Verfügung gestellte Speicherplatz für die Antwort des DBM-Servers ist nicht ausreichend.

Benutzerreaktion:

Verändern Sie Ihr DBM-Kommando, so dass die Größe der Antwort verringert wird.

Tritt der Fehler im Database Manager GUI auf, und Sie haben keine Möglichkeit zur Korrektur, wenden Sie sich an den Support.


-24988: ERR_SQL - sql error (MaxDB: Meldungen)

-24988: ERR_SQL - sql error

Erläuterung:

Bei Übergabe einer SQL-Anweisung an den Datenbankkern ist ein Fehler aufgetreten.

Benutzerreaktion:

Beachten Sie ggf. die zusätzlich vorhandene Fehlermeldung des Datenbankkerns, und korrigieren Sie Ihre Eingabe entsprechend.

Tritt der Fehler im Database Manager GUI auf, und Sie haben keine Möglichkeit zur Korrektur, wenden Sie sich an den Support.


-24989: ERR_NOHISTORYSESSION - no backup history session availab (MaxDB: Meldungen)

-24989: ERR_NOHISTORYSESSION - no backup history session available

Erläuterung:

Das DBM-Kommando ist nur bei geöffneter Sicherungshistorie möglich.

Benutzerreaktion:

Öffnen Sie zunächst die Sicherungshistorie mit backup_history_open, und beachten Sie ggf. auftretende Fehler.

Tritt der Fehler im Database Manager GUI auf, und Sie haben keine Möglichkeit zur Korrektur, wenden Sie sich an den Support.


-24990: ERR_ NOBACKUPSESSION - no backup session available (MaxDB: Meldungen)

-24990: ERR_ NOBACKUPSESSION - no backup session available

Erläuterung:

Das DBM-Kommando ist nur bei aktiver Sicherung oder Wiederherstellung zulässig.

Benutzerreaktion:

Starten Sie zunächst die erforderliche Sicherungssitzung mit den DBM-Kommandos backup_start oder recover_start, und führen Sie dann entsprechend dem Verlauf der Sicherung/Wiederherstellung weitere Kommandos aus.

Prüfen Sie, ob das Starten der Sicherung/Wiederherstellung erfolgreich war.

Beachten Sie, dass das Einlesen einer Datenbanksicherung den aktuellen Zustand Ihrer Datenbankinstanz überschreibt.

Tritt der Fehler im Database Manager GUI auf, und Sie haben keine Möglichkeit zur Korrektur, wenden Sie sich an den Support.


-24991: ERR_ NOSQLUSERSESSION - no sql user session available (MaxDB: Meldungen)

-24991: ERR_ NOSQLUSERSESSION - no sql user session available

Erläuterung:

Für Ihr DBM-Kommando ist eine Sitzung mit einer User-Task erforderlich.

Benutzerreaktion:

Starten Sie die Sitzung mit dem DBM-Kommando sql_connect oder der Option –uSQL des Database Manager CLI.

Prüfen Sie, ob ein vorheriger Versuch die Sitzung aufzubauen, fehlgeschlagen ist, und beachten Sie die dabei ausgegebene Fehlermeldung.

Tritt der Fehler im Database Manager GUI auf, und Sie haben keine Möglichkeit zur Korrektur, wenden Sie sich an den Support.


-24992: ERR_NOUTILSESSION - no utility session available (MaxDB: Meldungen)

-24992: ERR_NOUTILSESSION - no utility session available

Erläuterung:

Für Ihr DBM-Kommando ist eine Sitzung mit der Utility-Task erforderlich.

Benutzerreaktion:

Starten Sie die Sitzung mit dem DBM-Kommando util_connect oder der Option –uUTL des Database Manager CLI.

Prüfen Sie, ob ein vorheriger Versuch, die Sitzung aufzubauen, fehlgeschlagen ist, und beachten Sie die dabei ausgegebene Fehlermeldung.

Tritt der Fehler im Database Manager GUI auf, und Sie haben keine Möglichkeit zur Korrektur, wenden Sie sich an den Support.


-24993: ERR_RTEEXT - runtime environment error (MaxDB: Meldungen)

-24993: ERR_RTEEXT - runtime environment error

Erläuterung:

Die Datenbanklaufzeitumgebung konnte eine Funktion nicht korrekt ausführen.

Benutzerreaktion:

Beachten Sie die zusätzlich ausgegebene Fehlermeldung der Laufzeitumgebung.


-24994: ERR_RTE - runtime environment error (MaxDB: Meldungen)

-24994: ERR_RTE - runtime environment error

Erläuterung:

Die Datenbanklaufzeitumgebung konnte eine Funktion nicht korrekt ausführen.

Benutzerreaktion:

Beachten Sie die zusätzlich ausgegebene Fehlermeldung der Laufzeitumgebung.


-24995: ERR_MEM - memory allocation error (MaxDB: Meldungen)

-24995: ERR_MEM - memory allocation error

Erläuterung:

Das Betriebssystem konnte dem DBM-Server nicht ausreichend Hauptspeicher zur Verfügung stellen.

Benutzerreaktion:

Korrigieren Sie ein ggf. vorhandenes Limit bei den Nutzerrechten des DBM-Server.

Prüfen Sie den allgemeinen Zustand Ihres Betriebssystems auf Probleme bei der Verwaltung des Hauptspeichers.


-24996: ERR_PARAM - wrong parameters (MaxDB: Meldungen)

-24996: ERR_PARAM - wrong parameters

Erläuterung:

Ihr DBM-Kommando wurde mit falschen Parametern ausgeführt.

Benutzerreaktion:

Überprüfen Sie die Eingabe. Prüfen Sie ebenfalls, ob das Kommando einen Datenbanknamen oder eine spezielle Sitzung voraussetzt.

Tritt der Fehler im Database Manager GUI auf, und Sie haben keine Möglichkeit zur Korrektur, wenden Sie sich an den Support.


-24997: ERR_FILE - file handling error (MaxDB: Meldungen)

-24997: ERR_FILE - file handling error

Erläuterung:

Der Zugriff auf eine Datei war fehlerhaft.

Benutzerreaktion:

Möglicherweise fehlen die erforderlichen Nutzerrechte. Prüfen Sie daher die Installation des DBM-Server und dessen aktuelle Rechte.

Prüfen Sie auch, ob die Datei beschädigt ist.


-24998: ERR_NOTIMPL - sorry, command not yet implemented (MaxDB: Meldungen)

-24998: ERR_NOTIMPL - sorry, command not yet implemented

Erläuterung:

Ihr DBM-Kommando steht in dieser Version nicht zur Verfügung.

Benutzerreaktion:

Wählen Sie ein alternatives Kommando.

Tritt der Fehler im Database Manager GUI auf, und Sie haben keine Möglichkeit zur Korrektur, wenden Sie sich an den Support.


-24999: ERR - common error (MaxDB: Meldungen)

-24999: ERR - common error

Erläuterung:

Es ist ein Fehler aufgetreten, den der Database Manager nicht näher analysieren konnte.

Benutzerreaktion:

Wenden Sie sich an den Support.


Von -25000 bis -25999 (MaxDB: Meldungen)

Von -25000 bis -25999

Fehlermeldungen des SAP DB Loaders

-25003 | Name of database host could not be determined
-25004 | Error when connecting to the database
-25005 | Error when logging user on to the database
-25006 | Error occurred when connecting to the database with specified userkey
-25007 | Error when executing the command; no connection to the database exists
-25008 | Error when logging on user; previous user's database connection has been restored
-25009 | Failure in db communication
-25010 | <SQL error text>
-25011 | Error when executing the internal SQL command
-25018 | Error when changing the authorizations for the log file; unable to change the file owner
-25019 | Error when opening the log file; temporary log file opened
-25020 | Memory space exhausted
-25021 | Error during user changeover
-25022 | Request to terminate operation received; processing of command terminated
-25109 | <command> not implemented
-25201 | Invalid length specification for INTEGER field
-25202 | Invalid length specification for REAL field
-25203 | Invalid length specification for DECIMAL field
-25204 | Invalid length specification for ZONED field
-25205 | Invalid specification for USAGE
-25206 | Invalid specification in lines for USAGE
-25207 | Number of lines specified for USAGE is too high
-25208 | Invalid position specification; specify a positive value
-25209 | Invalid value for FRACTION; specify a positive value
-25210 | Invalid value for SCALE; enter a value between -127 and 127
-25211 | Invalid ROUND specification; specify a value between 0 and 18
-25212 | Invalid TRUNC specification; enter a value between 0 and 18
-25213 | Invalid file format specification; FORMATTED and COMPRESSED exclude each other
-25214 | Invalid file format specification; Separator/Delimiter is not allowed together with FORMATTED
-25216 | File format specification FORMATTED required
-25218 | Invalid file format specification; no columns specified despite FORMATTED file format
-25219 | Columns must be specified in the command in ascending order according to their position
-25220 | Invalid separator/delimiter specification
-25221 | Invalid specification for representation of decimal numbers
-25222 | Invalid specification for representation of Boolean values
-25223 | Invalid specification for representation of NULL values
-25224 | Invalid specification for language of messages; specify ENG or DEU
-25225 | Invalid specification for the representation of thousand separator and decimal point in numerical values
-25226 | Maximum number of column specifications in a command has been exceeded
-25227 | Maximum number of conditions in a command has been exceeded
-25228 | Invalid specification for external representation of date or time values
-25229 | Incorrect comparison operator in condition
-25230 | Error in DATAEXTRACT command; specification for command file is missing
-25231 | Specification of ROUND, TRUNC, or SCALE not allowed for this column
-25232 | Unknown keyword
-25233 | Error in column description; file format is COMPRESSED, but some descriptions contain end positions
-25234 | Error in column description; file format is FORMATTED, but some descriptions do not contain end positions
-25235 | Error in column description; identical positions for different columns
-25236 | Error in column description; column positions overlap
-25237 | Error when executing the command; the columns that are to be updated are missing from the command
-25238 | Error when executing the command; the command does not contain any column specifications
-25239 | The value specified is not a integer number
-25281 | Syntax error at a certain position
-25301 | Invalid entry in Date or Time column
-25302 | The value entered is not a valid numerical value
-25303 | The values entered are not in the correct order
-25304 | Key field entries are missing
-25305 | The entries in the key fields are too long
-25306 | The value you have entered is not valid for hexadecimal display
-25308 | CONSTRAINT condition violated
-25309 | The value you entered was not recognized as a BOOLEAN entry
-25310 | Column does not permit NULL values
-25311 | Data missing for NOT NULL column
-25313 | Numerical value truncated
-25314 | Too few decimal places defined for column
-25315 | The data type of the column and the external data type are not compatible
-25316 | The FASTLOAD command cannot be executed; the table contains at least one column of data type LONG
-25317 | Entry for column is not compatible with the data type or the column length
-25318 | The generated system key has exceeded the maximum possible value
-25319 | Unable to find any data for the column in the data file
-25320 | The LONG value could not be loaded into column
-25321 | Error in the command; the constant you have entered is not a valid number
-25322 | Error in the command; the constant you entered was truncated during conversion
-25323 | Error in command; the data type of the constant in the column’s NULL condition is not compatible with the external column data type
-25324 | Error in the length specifications of the column descriptions; see log file for more detailed information
-25325 | Error in command; the external and internal data types are not compatible. For more detailed information, please consult the log file
-25326 | Error when executing the extract command; the number extracted was truncated during conversion
-25327 | Error when extracting data record
-25328 | Error when executing the DATAEXTRACT command; the server’s log file contains more detailed information
-25329 | Error when executing the TABLELOAD command; the data file is corrupt or was not created using TABLEEXTRACT
-25330 | Error when executing the TABLELOAD command; the page sizes of the source and target file are different
-25331 | This is a restricted statement, user must be SYSDBA
-25332 | Unable to extract table definition
-25333 | Unable to extract index definition
-25334 | The file counter exceeds the maximum of 9999 files
-25335 | Error when restoring the table; the data file specified was created with TABLEEXTRACT USER/ALL
-25336 | Error when restoring tables; the data file specified was created using TABLEEXTRACT TABLE
-25337 | Error when restoring table; the data file contains no data for the specified table
-25338 | Error when restarting the command; entry in assignment file not found
-25339 | Error when restarting the TABLELOAD command; unable to open restart
-25340 | UCS2 conversion error; character string contains invalid characters or character sequences
-25341 | Error when generating the CREATE TABLE/CREATE INDEX statement
-25342 | Error when restoring table <table name>; the structures of the source and target tables are different
-25343 | Error in command; the SELECT statement in the command does not contain the column name
-25344 | Error in command for downloading data; the output length specified is too small for the column. Minimum output length is:
-25351 | Error in command; the LONGFILE specification for the column is missing from the command
-25352 | Error when downloading data; several errors occurred when analyzing the LONGFILE specification in the command. For more information, please consult the log file
-25353 | Error when downloading data; the maximum number of LONG data files for the column has been exceeded
-25354 | Error in the command for uploading data; the LONG data file specification is missing
-25501 | Error when opening file
-25502 | Error when closing file
-25503 | Error when reading file
-25504 | Error when writing file
-25505 | Error when erasing file
-25507 | Error when shrinking file
-25801 | Internal program error


-25003: Name of database host could not be determined (MaxDB: Meldungen)

-25003: Name of database host could not be determined

Erläuterung:

Im Kommando zum Aufbau einer Verbindung wurde kein Name für den Datenbankrechner angegeben. Der Datenbankrechner konnte nicht ermittelt werden.

Benutzerreaktion:

Geben Sie im Kommando zum Verbindungsaufbau des Loaders den Namen des Rechners an, auf dem die Datenbankinstanz läuft, für die eine Verbindung aufgebaut werden soll. Starten Sie den Loader erneut.


-25004: Error when connecting to the database (MaxDB: Meldungen)

-25004: Error when connecting to the database

Erläuterung:

Die Verbindung zur Datenbankinstanz konnte nicht aufgebaut werden.

Benutzerreaktion:

Überprüfen Sie anhand des SQL-Fehlertextes, warum die Verbindung fehlgeschlagen ist. Beseitigen Sie die Ursache, und starten Sie den Loader erneut.


-25005: Error when logging user on to the database (MaxDB: Meldungen)

-25005: Error when logging user on to the database

Erläuterung:

Der angegebene Benutzer konnte nicht an der angegebenen Datenbankinstanz angemeldet werden.

Benutzerreaktion:

Überprüfen Sie anhand des SQL-Fehlertextes, warum das Anmelden fehlgeschlagen ist. Beseitigen Sie die Ursache und starten Sie den Loader erneut.


-25006: Error occurred when connecting to the database with spec (MaxDB: Meldungen)

-25006: Error occurred when connecting to the database with specified user key

Erläuterung:

Die Verbindung zur Datenbankinstanz mit den angegeben Daten für einen Benutzer konnte nicht aufgebaut werden.

Benutzerreaktion:

Überprüfen Sie anhand des SQL-Fehlertextes, warum die Verbindung fehlgeschlagen ist. Beseitigen Sie die Ursache und starten Sie den Loader erneut.


-25007: Error when executing the command; no connection to the d (MaxDB: Meldungen)

-25007: Error when executing the command; no connection to the database exists

Erläuterung:

Während der Ausführung eines Entlade- oder Ladekommandos bzw. einer SQL-Anweisung wird festgestellt, dass keine Verbindung zur angegebenen Datenbankinstanz besteht. Grund dafür kann sein, dass Sie nicht an der gewünschten Datenbankinstanz angemeldet sind.

Benutzerreaktion:

Melden Sie sich mit dem USE USER-Kommando an der Datenbankinstanz an, bevor Sie das Kommando oder die SQL-Anweisung ausführen.


-25008: Error when logging on user; previous user's database con (MaxDB: Meldungen)

-25008: Error when logging on user; previous user's database connection has been restored

Erläuterung:

Beim Anmelden eines Benutzers an die Datenbankinstanz ist ein Fehler aufgetreten. Der vorher bereits erfolgreich angemeldete Benutzer ist wieder angemeldet worden.

Diese Fehlermeldung tritt nur dann auf, wenn nach dem erfolgreichen Anmelden eines Benutzers und dem Bearbeiten von Entlade – und Ladekommandos ein neuer Benutzer nicht an der gleichen Datenbankinstanz angemeldet werden kann. Dieser Meldung geht die Fehlermeldung –25005 voraus.

Benutzerreaktion:

Da es sich hier lediglich um die Information handelt, dass eine alte Verbindung wiederhergestellt wurde, gehen Sie bitte vor, wie es in der Fehlermeldung -25005 angegeben ist.


-25009: Failure in db communication (MaxDB: Meldungen)

-25009: Failure in db communication

Erläuterung:

Die Kommunikation zwischen dem Loader und der Datenbankinstanz erfolgt über den synchronen Austausch sogenannter Kommunikationspakete. Dabei schickt der Loader ein Paket mit dem zu bearbeitenden Kommando an die Datenbankinstanz (Request). Während die Datenbankinstanz das empfangene Kommando verarbeitet, wartet der Loader auf das Antwortpaket der Datenbankinstanz mit dem Resultat (Receive).

Während dieses Prozesses des Paketaustausches kann ein Fehler auftreten, wenn die Verbindung des Loader zur Datenbankinstanz abbricht oder die Datenbankinstanz nicht mehr verfügbar ist.

Benutzerreaktion:

Prüfen Sie anhand des Fehlertextes, warum die Kommunikation fehlgeschlagen ist. Beseitigen Sie die Ursache und starten Sie den Loader erneut.


-25010: <SQL_error_text> (MaxDB: Meldungen)

-25010: <SQL_error_text>

Erläuterung:

Mit dieser Fehlernummer werden SQL-Fehler ausgegeben, die von der Datenbankinstanz während der Bearbeitung von SQL-Anweisungen des Benutzers gemeldet werden.

Benutzerreaktion:

Beseitigen Sie die Ursache des Fehlers und starten Sie den Loader erneut.


-25011: Error when executing the internal SQL command (MaxDB: Meldungen)

-25011: Error when executing the internal SQL command

Erläuterung:

Eine zur Bearbeitung eines Entlade – oder Ladekommandos vom Loader intern erzeugte SQL–Anweisung konnte nicht ausgeführt werden. Die Meldung gibt die Ursache des Fehlers mit aus.

Benutzerreaktion:

Beseitigen Sie die Ursache des Fehlers und starten Sie den Loader erneut.


-25018: Error when changing the authorizations for the log file; (MaxDB: Meldungen)

-25018: Error when changing the authorizations for the log file; unable to change the file owner

Erläuterung:

Dieser Fehler kann nur unter den Betriebssystemen UNIX oder Linux auftreten, wenn der Befehl SET LOGOWNER <user_name> ausgeführt wird.

Benutzerreaktion:

Prüfen Sie anhand des Fehlertextes, warum die Änderung fehlgeschlagen ist. Beseitigen Sie die Ursache und führen Sie die Anweisung erneut aus.


-25019: Error when opening the log file; temporary log file open (MaxDB: Meldungen)

-25019: Error when opening the log file; temporary log file opened

Erläuterung:

Das Öffnen der Protokolldatei des Loader ist fehlgeschlagen. Grund hierfür kann ein bereits laufender Loader auf dem gleichen Rechner sein. Da die Protokolldatei exklusiv geöffnet wird, können mehrere gleichzeitig auf einem Rechner gestartete Loader nicht auch gleichzeitig auf die Protokolldatei zugreifen.

Damit der gestartete Loader die Anweisungen trotzdem bearbeiten kann, öffnet er eine temporäre Protokolldatei mit dem in der Meldung angegebenen Namen.

Benutzerreaktion:

Es ist keine Benutzeraktion notwendig.


-25020: Memory space exhausted (MaxDB: Meldungen)

-25020: Memory space exhausted

Erläuterung:

Ein Kommando oder eine Anweisung kann aufgrund von Hauptspeicherbeschränkungen nicht ausgeführt werden.

Benutzerreaktion:

Es ist keine Benutzeraktion möglich.


-25021: Error during user changeover (MaxDB: Meldungen)

-25021: Error during user changeover

Erläuterung:

Es ist ein Fehler beim Entladen oder Laden von Daten mit den Kommandos TABLEEXTRACT ALL und TABLELOAD ALL aufgetreten.

Beim Entladen oder Laden von Daten mit der oben angegeben Anweisung muss der Loader intern den Benutzer wechseln, um benutzerspezifischen Daten bearbeiten zu können. Dieser interne Benutzerwechsel ist fehlgeschlagen.

Benutzerreaktion:

Beseitigen Sie die Ursache des Fehlers und führen Sie das Kommando erneut aus.


-25022: Request to terminate operation received; processing of c (MaxDB: Meldungen)

-25022: Request to terminate operation received; processing of command terminated

Erläuterung:

Der Loader hat vom Benutzer mit dem Ctrl C – Kommando die Aufforderung erhalten, die weitere Bearbeitung der Kommandos und Anweisungen abzubrechen.

Benutzerreaktion:

Es ist keine Benutzeraktion notwendig.


-25109: <command> not implemented (MaxDB: Meldungen)

-25109: <command> not implemented

Erläuterung:

Die angegebene Anweisung kann nicht ausgeführt werden, da im Loader die erforderliche Funktionalität nicht implementiert ist.

Benutzerreaktion:

Es ist keine Benutzereaktion möglich.


-25201: Invalid length specification for INTEGER field (MaxDB: Meldungen)

-25201: Invalid length specification for INTEGER field

Erläuterung:

Fehler im Kommando zum Entladen oder Laden von Daten.

In einer expliziten Spaltenbeschreibung ist ein Dateifeld vom Typ INTEGER angegeben, dessen Länge nicht der hier genannten entspricht.

Benutzerreaktion:

Korrigieren Sie die Positionsangabe und führen Sie das Kommando erneut aus.


-25202: Invalid length specification for REAL field (MaxDB: Meldungen)

-25202: Invalid length specification for REAL field

Erläuterung:

Fehler im Kommando zum Entladen oder Laden von Daten.

In einer expliziten Spaltenbeschreibung ist ein Dateifeld vom Typ REAL angegeben, dessen Länge nicht der in der Fehlermeldung genannten entspricht.

Benutzerreaktion:

Korrigieren Sie die Angabe und führen Sie das Kommando erneut aus.


-25203: Invalid length specification for DECIMAL field (MaxDB: Meldungen)

-25203: Invalid length specification for DECIMAL field

Erläuterung:

Fehler im Kommando zum Entladen oder Laden von Daten.

In einer expliziten Spaltenbeschreibung ist ein Dateifeld vom Typ DECIMAL angegeben, dessen Länge nicht der in der Fehlermeldung genannten entspricht.

Benutzerreaktion:

Korrigieren Sie die Angabe, und führen Sie das Kommando erneut aus.


-25204: Invalid length specification for ZONED field (MaxDB: Meldungen)

-25204: Invalid length specification for ZONED field

Erläuterung:

Fehler im Kommando zum Entladen oder Laden von Daten.

In einer expliziten Spaltenbeschreibung ist ein Dateifeld vom Typ ZONED angegeben, dessen Länge nicht der in der Fehlermeldung genannten entspricht.

Benutzerreaktion:

Korrigieren Sie die Angabe und führen Sie das Kommando erneut aus.


-25205: Invalid specification for USAGE (MaxDB: Meldungen)

-25205: Invalid specification for USAGE

Erläuterung:

Fehler in einem FASTLOAD-Kommando.

Der im Kommando für USAGE angegebene Wert entspricht nicht den zulässigen Werten zwischen 50% und 100%.

Benutzerreaktion:

Korrigieren Sie die Prozentangabe für USAGE im Kommando und führen Sie es erneut aus.


-25206: Invalid specification in lines for USAGE (MaxDB: Meldungen)

-25206: Invalid specification in lines for USAGE

Erläuterung:

Fehler in einem FASTLOAD-Kommando.

Der für USAGE angegebene Wert von 0 Zeilen ist nicht zulässig.

Benutzerreaktion:

Korrigieren Sie die Angabe der Zeilenanzahl für USAGE im Kommando und führen Sie es erneut aus.


-25207: Number of lines specified for USAGE is too high (MaxDB: Meldungen)

-25207: Number of lines specified for USAGE is too high

Erläuterung:

Fehler in einem FASTLOAD-Kommando.

Die angegebene Zeilenzahl für USAGE (Zeilen pro Datenbankseite) ist zu groß. Die maximal zulässige Zeilenanzahl kann aus der Größe einer Datenbankseite und der Größe eines Satzes der zu ladenden Tabelle bestimmt werden.

Benutzerreaktion:

Korrigieren Sie die Angabe im Kommando und führen Sie es erneut aus.


-25208: Invalid position specification; specify a positive value (MaxDB: Meldungen)

-25208: Invalid position specification; specify a positive value

Erläuterung:

Fehler im Kommando zum Entladen oder Laden von Daten.

Positionsangaben können nicht negativ sein.

Benutzerreaktion:

Korrigieren Sie die Positionsangabe und führen Sie das Kommando erneut aus.


-25209: Invalid value for FRACTION; specify a positive value (MaxDB: Meldungen)

-25209: Invalid value for FRACTION; specify a positive value

Erläuterung:

Fehler im Kommando zum Entladen oder Laden von Daten.

Angaben für FRACTION können nicht negativ sein.

Benutzerreaktion:

Korrigieren Sie die Angabe für FRACTION und führen Sie das Kommando erneut aus.


-25210: Invalid value for SCALE; enter a value between -127 and (MaxDB: Meldungen)

-25210: Invalid value for SCALE; enter a value between -127 and 127

Erläuterung:

Fehler im Kommando zum Entladen oder Laden von Daten.

Eine für SCALE angegebene Zahl kann nur einen Wertebereich zwischen -127 und +127 haben.

Benutzerreaktion:

Korrigieren Sie die Angabe für SCALE und führen Sie das Kommando erneut aus.


-25211: Invalid ROUND specification; specify a value between 0 a (MaxDB: Meldungen)

-25211: Invalid ROUND specification; specify a value between 0 and 18

Erläuterung:

Fehler im Kommando zum Entladen oder Laden von Daten.

Eine für ROUND angegebene Zahl kann nur einen Wertebereich zwischen 0 und 18 haben.

Benutzerreaktion:

Korrigieren Sie die Angabe der Zeilenanzahl für ROUND und führen Sie das Kommando erneut aus.


-25212: Invalid TRUNC specification; enter a value between 0 and (MaxDB: Meldungen)

-25212: Invalid TRUNC specification; enter a value between 0 and 18

Erläuterung:

Fehler im Kommando zum Entladen oder Laden von Daten.

Eine für TRUNC angegebene Zahl kann nur einen Wertebereich zwischen 0 und 18 haben.

Benutzerreaktion:

Korrigieren Sie die Angabe der Zeilenanzahl für TRUNC und führen Sie das Kommando erneut aus.


-25213: Invalid file format specification; FORMATTED and COMPRES (MaxDB: Meldungen)

-25213: Invalid file format specification; FORMATTED and COMPRESSED exclude each other

Erläuterung:

Fehler im Kommando zum Entladen oder Laden von Daten.

Es ist nicht möglich, als Formatangabe für einen Datenstrom sowohl COMPRESSED als auch FORMATTED anzugeben. Die beiden Formate schließen einander aus.

Benutzerreaktion:

Korrigieren Sie die Formatangabe und führen Sie das Kommando erneut aus.


-25214: Invalid file format specification; Separator/Delimiter i (MaxDB: Meldungen)

-25214: Invalid file format specification; Separator/Delimiter is not allowed together with FORMATTED

Erläuterung:

Fehler im Kommando zum Entladen oder Laden von Daten.

Wenn in einem Kommando als Format für einen Datenstrom FORMATTED angegeben ist, können weder Separatoren noch Delimiter zusätzlich in dieser Anweisung spezifiziert werden.

Benutzerreaktion:

Korrigieren Sie die Angaben und führen Sie das Kommando erneut aus.


-25216: File format specification FORMATTED required (MaxDB: Meldungen)

-25216: File format specification FORMATTED required

Erläuterung:

Fehler im Kommando zum Entladen oder Laden von Daten.

Die Formatangaben INTEGER, REAL, DECIMAL und ZONED für einzelne zu entladende oder zu ladende Spalten sind nur zulässig, wenn als Formatangabe für den Datenstrom FORMATTED gewählt wurde.

Benutzerreaktion:

Korrigieren Sie die Formatangabe und führen Sie das Kommando erneut aus.


-25218: Invalid file format specification; no columns specified (MaxDB: Meldungen)

-25218: Invalid file format specification; no columns specified despite FORMATTED file format

Erläuterung:

Fehler im Kommando zum Entladen oder Laden von Daten.

In einem Kommando wurde als Format für den Datenstrom FORMATTED angegeben, aber es sind keine Spalten spezifiziert. Die Formatangabe FORMATTED verlangt, dass jede zu entladende oder zu ladende Spalte im Kommando spezifiziert wird.

Benutzerreaktion:

Korrigieren Sie das Kommando und führen Sie es erneut aus.


-25219: Columns must be specified in the command in ascending or (MaxDB: Meldungen)

-25219: Columns must be specified in the command in ascending order according to their position

Erläuterung:

Fehler im Kommando zum Laden von Daten.

Im Kommando wurde als Datenstromformat COMPRESSED angegeben. In diesem Fall müssen die im Kommando angegebenen Spalten nach Positionen aufsteigend sortiert angegeben werden.

Benutzerreaktion:

Korrigieren Sie die Angaben und führen Sie das Kommando erneut aus.


-25220: Invalid separator/delimiter specification (MaxDB: Meldungen)

-25220: Invalid separator/delimiter specification

Erläuterung:

Fehler im Kommando zum Entladen oder Laden von Daten.

Separatoren und Delimiter können nur jeweils ein Zeichen lang sein.

Benutzerreaktion:

Korrigieren Sie die Formatangabe und führen Sie das Kommando erneut aus.


-25221: Invalid specification for representation of decimal numb (MaxDB: Meldungen)

-25221: Invalid specification for representation of decimal numbers

Erläuterung:

Fehler im Kommando zum Entladen oder Laden von Daten.

Im Kommando entspricht in der Formatangabe für den Datenstrom die Spezifikation der Zeichen, die bei Dezimalzahlen zu verwenden sind, um Tausender zu gliedern und ganze Zahlen von Dezimalstellen zu trennen, nicht der Syntax.

Benutzerreaktion:

Korrigieren Sie die Angaben und führen Sie das Kommando erneut aus.


-25222: Invalid specification for representation of Boolean valu (MaxDB: Meldungen)

-25222: Invalid specification for representation of Boolean values

Erläuterung:

Fehler im Kommando zum Entladen oder Laden von Daten.

Im Kommando entspricht in der Formatangabe für den Datenstrom die Spezifikation der Zeichenkette, mit der aus der Datenbankinstanz entladene bzw. in eine Datenbankinstanz zu ladende BOOLEAN-Werte repräsentiert werden, nicht der Syntax.

Benutzerreaktion:

Korrigieren Sie die Angaben und führen Sie das Kommando erneut aus.


-25223: Invalid specification for representation of NULL values (MaxDB: Meldungen)

-25223: Invalid specification for representation of NULL values

Erläuterung:

Fehler im Kommando zum Entladen oder Laden von Daten.

Die Spezifikation der Zeichenkette, mit der NULL-Werte extern in einem Datenstrom dargestellt sind oder dargestellt werden sollen, entspricht nicht der Syntax. NULL-Werte können als Zeichenketten maximal 20 Zeichen lang sein.

Benutzerreaktion:

Korrigieren Sie die Angabe und führen Sie das Kommando erneut aus.


-25224: Invalid specification for language of messages; specify (MaxDB: Meldungen)

-25224: Invalid specification for language of messages; specify ENG or DEU

Erläuterung:

Fehler im Kommando zum Entladen oder Laden von Daten.

Als Sprache in Meldungen (Fehler-, Status- oder Warnmeldungen) werden Deutsch (DEU) und Englisch (ENG) unterstützt.

Benutzerreaktion:

Korrigieren Sie die Angabe und führen Sie das Kommando erneut aus.


-25225: Invalid specification for the representation of thousand (MaxDB: Meldungen)

-25225: Invalid specification for the representation of thousand separator and decimal point in numerical values

Erläuterung:

Fehler im Kommando zum Entladen oder Laden von Daten.

Die Spezifikation des Tausendertrennzeichens und des Dezimalzeichens, die beim Entladen oder Laden numerischer Werte vom Loader genutzt werden sollen, entspricht nicht der Syntax.

Benutzerreaktion:

Korrigieren Sie die Angabe und führen Sie das Kommando erneut aus.


-25226: Maximum number of column specifications in a command has (MaxDB: Meldungen)

-25226: Maximum number of column specifications in a command has been exceeded

Erläuterung:

Fehler im Kommando zum Entladen oder Laden von Daten.

In einem Kommando zum Entladen oder Laden von Daten können nicht mehr Spalten angegeben werden, als die Datenbankinstanz pro Tabelle erlaubt. Dieser Wert von 1024 Spalten wurde im auszuführenden Kommando überschritten.

Benutzerreaktion:

Korrigieren Sie die Angabe und führen Sie das Kommando erneut aus.


-25227: Maximum number of conditions in a command has been excee (MaxDB: Meldungen)

-25227: Maximum number of conditions in a command has been exceeded

Erläuterung:

Fehler im Kommando zum Entladen oder Laden von Daten.

In einem Kommando zum Entladen oder Laden von Daten können nicht mehr als 254 Bedingungen für alle Spalten zusammen spezifiziert werden. Dieser Wert wurde im auszuführenden Kommando überschritten.

Benutzerreaktion:

Korrigieren Sie die Angabe und führen Sie das Kommando erneut aus.


-25228: Invalid specification for external representation of dat (MaxDB: Meldungen)

-25228: Invalid specification for external representation of date or time values

Erläuterung:

Fehler im Kommando zum Entladen oder Laden von Daten.

Die Angabe für die Darstellung der Datums- oder Zeitwerte (angegebene Maske) ist unzulässig.

Benutzerreaktion:

Korrigieren Sie die Angabe wie in date_spec bzw. time_spec angegeben und führen Sie das Kommando erneut aus.


-25229: Incorrect comparison operator in condition (MaxDB: Meldungen)

-25229: Incorrect comparison operator in condition

Erläuterung:

Fehler im Kommando zum Entladen oder Laden von Daten.

Der in einer Bedingung angegeben Vergleichsoperator wird nicht unterstützt. Mögliche Vergleichsoperatoren sind in der Syntaxregel compare_operator angegeben.

Benutzerreaktion:

Korrigieren Sie die Angabe und führen Sie das Kommando erneut aus.


-25230: Error in DATAEXTRACT command; specification for command (MaxDB: Meldungen)

-25230: Error in DATAEXTRACT command; specification for command file is missing

Erläuterung:

Fehler beim Entladen von Daten mit dem DATAEXTRACT-Kommando.

Das angegebene Kommando DATAEXTRACT FOR DATALOAD/FASTLOAD/DATAUPDATE muss mindestens Angaben für 2 Ausgabedatenströme enthalten - einen Datenstrom für Daten und einen Datenstrom für die zu erzeugenden Kommandos. Der Datenstrom für die Kommandos fehlt im Kommando.

Benutzerreaktion:

Korrigieren Sie die Angabe und führen Sie das Kommando erneut aus.


-25231: Specification of ROUND, TRUNC, or SCALE not allowed for (MaxDB: Meldungen)

-25231: Specification of ROUND, TRUNC, or SCALE not allowed for this column

Erläuterung:

Fehler beim Entladen oder Laden von Daten.

Die Angabe von ROUND, TRUNC oder SCALE ist nur möglich für numerische Tabellenspalten, d. h. für Tabellenspalten vom Typ INTEGER, SMALLINT, FLOAT oder FIXED.

Benutzerreaktion:

Korrigieren Sie die Angabe und führen Sie das Kommando erneut aus.


-25232: Unknown keyword (MaxDB: Meldungen)

-25232: Unknown keyword

Erläuterung:

Fehler im Kommando zum Entladen oder Laden von Daten.

Das angegebene Kommando enthält ein unbekanntes Schlüsselwort.

Benutzerreaktion:

Korrigieren Sie das Kommando und führen Sie es erneut aus.


-25233: Error in column description; file format is COMPRESSED, (MaxDB: Meldungen)

-25233: Error in column description; file format is COMPRESSED, but some descriptions contain end positions

Erläuterung:

Fehler im Kommando zum Laden (DATALOAD oder FASTLOAD) oder zum Aktualisieren von Daten (DATAUPDATE).

Das Dateiformat für Datenströme ist im Kommando mit COMPRESSED angegeben. Bei diesem Format geben die Positionen in den Spaltenbeschreibungen die laufende Nummer des Feldes in einer Datenzeile des Datenstroms an, das geladen werden soll. Endpositionen sind für dieses Format nicht erlaubt.

Benutzerreaktion:

Korrigieren Sie die Positionsangaben und führen Sie das Kommando erneut aus.


-25234: Error in column description; file format is FORMATTED, b (MaxDB: Meldungen)

-25234: Error in column description; file format is FORMATTED, but some descriptions do not contain end positions

Erläuterung:

Fehler im Kommando zum Laden (DATALOAD oder FASTLOAD) oder zum Aktualisieren von Daten (DATAUPDATE).

Das Format für Datenströme ist im Kommando mit FORMATTED angegeben. Bei diesem Format sind Positionsangaben in der Form Anfangsposition - Endposition erforderlich.

Benutzerreaktion:

Korrigieren Sie die Positionsangaben und führen Sie das Kommando erneut aus.


-25235: Error in column description; identical positions for dif (MaxDB: Meldungen)

-25235: Error in column description; identical positions for different columns

Erläuterung:

Fehler beim Entladen von Daten mit dem DATAEXTRACT-Kommando.

Das Format für den Datenstrom ist im Kommando mit COMPRESSED angegeben. Alle zu entladenden Werte müssen durch unterschiedliche Positionsangaben im Kommando angegeben sein, da sonst entladene Werte überschrieben werden.

Benutzerreaktion:

Korrigieren Sie die Positionsangabe und führen Sie das Kommando erneut aus.


-25236: Error in column description; column positions overlap (MaxDB: Meldungen)

-25236: Error in column description; column positions overlap

Erläuterung:

Fehler beim Entladen von Daten mit dem DATAEXTRACT-Kommando.

Das Format für den Datenstrom ist im Kommando mit FORMATTED angegeben. Alle zu entladenden Werte müssen durch nicht überschneidende Positionsangaben im Kommando spezifiziert sein, da sonst bereits entladene Werte überschrieben werden.

Benutzerreaktion:

Korrigieren Sie die Positionsangabe und führen Sie das Kommando erneut aus.


-25237: Error when executing the command; the columns that are t (MaxDB: Meldungen)

-25237: Error when executing the command; the columns that are to be updated are missing from the command

Erläuterung:

Fehler beim Aktualisieren von Daten mit dem DATAUPDATE-Kommando.

Die für die Ausführung notwendigen Angaben zu den zu aktualisierenden Spalten fehlen im Kommando. Diese Spaltenangaben müssen mit dem Schlüsselwort SET eingeleitet werden.

Benutzerreaktion:

Korrigieren Sie das Kommando und führen Sie es erneut aus.


-25238: Error when executing the command; the command does not c (MaxDB: Meldungen)

-25238: Error when executing the command; the command does not contain any column specifications

Erläuterung:

Fehler beim Aktualisieren von Daten mit dem DATAUPDATE-Kommando.

Die für die Ausführung notwendigen Angaben zu den Qualifikationsspalten fehlen im Kommando. Die Werte der Qualifikationsspalten identifizieren eine Zeile der Zieltabelle, die aktualisiert werden soll.

Benutzerreaktion:

Korrigieren Sie das Kommando und führen Sie es erneut aus.


-25239: The value specified is not a integer number (MaxDB: Meldungen)

-25239: The value specified is not a integer number

Erläuterung:

Fehler im Kommando zum Laden (DATALOAD oder FASTLOAD) oder Aktualisieren von Daten (DATAUPDATE).

Der im Kommando angegeben Zahlenwert kann nicht als ganze Zahl interpretiert werden (Wertebereich für ganze Zahlen: 0 <= Zahl <= 2147483647).

Benutzerreaktion:

Korrigieren Sie das Kommando und führen Sie es erneut aus.


-25281: Syntax error at a certain position (MaxDB: Meldungen)

-25281: Syntax error at a certain position

Erläuterung:

Beim Parsen des auszuführenden Kommandos hat der Loader einen Syntaxfehler im Kommando festgestellt.

Benutzerreaktion:

Korrigieren Sie das Kommando und führen Sie es erneut aus.


-25301: Invalid entry in Date or Time column (MaxDB: Meldungen)

-25301: Invalid entry in Date or Time column

Erläuterung:

Fehler im Kommando zum Laden ( DATALOAD oder FASTLOAD) oder Aktualisieren von Daten ( DATAUPDATE).

Für die Angabe von Werten für Spalten vom Datentyp DATE oder TIME stehen verschiedene Formate zur Verfügung: INTERNAL, EUR, ISO, USA, JIS. Der Loader nutzt diese Angaben, um beim Einfügen der Werte diese in das interne Datenbankformat für die jeweiligen Datentypen umzuwandeln.

Ein angegebener Datenwert, der in eine Spalte vom Datentyp DATE oder TIME eingefügt werden soll, kann nicht in das entsprechende interne Datenbankformat umgewandelt werden.

Benutzerreaktion:

Korrigieren Sie die Werte und führen Sie das Kommando erneut aus.


-25302: The value entered is not a valid numerical value (MaxDB: Meldungen)

-25302: The value entered is not a valid numerical value

Erläuterung:

Fehler im Kommando zum Entladen/Laden oder Aktualisieren von Daten.

Dieser Fehler kann verschiedene Ursachen haben abhängig vom Kontext, in dem er auftritt.

· Beim Laden von Daten kann ein Wert, der in eine Spalte mit numerischem Datentyp (INTEGER, FIXED (n, m), ...) geladen werden soll, nicht in das interne Format umgewandelt werden. Der Wert ist entweder zu groß oder kann nicht als Zahl interpretiert werden.

· Beim Entladen von Daten kann ein Wert, der aus einer Spalte mit numerischem Datentyp (INTEGER; FIXED (n, m), ...) extrahiert werden soll, nicht in die externe Darstellung umgewandelt werden. Der Wert ist entweder zu groß oder die Datentypen korrelieren nicht miteinander (z.B. beim Versuch, einen Wert aus einer Spalte vom Datentyp FLOAT in eine externe Darstellung vom Datentyp INTEGER BINARY zu extrahieren).

· Ein Kommando zum Entladen oder Laden von Daten enthält Bedingungen, z.B. für das Entladen oder Laden von NULL-Werten. Wenn Bedingungen für Spalten mit numerischem Datentyp definiert werden, müssen die Werte in den Bedingungen auch als Zahl interpretierbar sein.

Benutzerreaktion:

Korrigieren Sie die Werte und führen Sie das Kommando erneut aus.


-25303: The values entered are not in the correct order (MaxDB: Meldungen)

-25303: The values entered are not in the correct order

Erläuterung:

Fehler beim Laden von Daten mit dem FASTLOAD-Kommando.

Alle zu ladenden Werte müssen in Schlüsselreihenfolge sortiert im Datenstrom vorliegen. Diese Reihenfolge ist durch den Datensatz in der angegebenen Zeile (Format des Datenstroms: COMPRESSED oder FORMATTED ohne binäre Daten) oder an der angegebenen Position (Format der Eingabedatei: FORMATTED mit binären Daten) verletzt.

Benutzerreaktion:

Korrigieren Sie die Daten und führen Sie das Kommando erneut aus.


-25304: Key field entries are missing (MaxDB: Meldungen)

-25304: Key field entries are missing

Erläuterung:

Fehler beim Laden von Daten mit dem FASTLOAD-Kommando.

Für ein oder mehrere Schlüsselfelder einer zu ladenden Tabelle wurden keine Daten angegeben. Der betroffene Datensatz ist in der nachfolgenden Meldung angegeben.

Benutzerreaktion:

Korrigieren Sie die Daten und führen Sie das Kommando erneut aus.


-25305: The entries in the key fields are too long (MaxDB: Meldungen)

-25305: The entries in the key fields are too long

Erläuterung:

Fehler beim Laden von Daten mit dem FASTLOAD-Kommando.

Benutzerreaktion:

Korrigieren Sie die Daten und führen Sie das Kommando erneut aus.


-25306: The value you have entered is not valid for hexadecimal (MaxDB: Meldungen)

-25306: The value you have entered is not valid for hexadecimal display

Erläuterung:

Fehler im Kommando zum Laden ( DATALOAD oder FASTLOAD) oder Aktualisieren von Daten ( DATAUPDATE).

Im Kommando wurde für eine oder mehrere Spalten definiert, dass die Werte zum Laden in Klarschrift in hexadezimaler Kodierung vorliegen.

Die angegebenen Werte entsprechen nicht der hexadezimalen Darstellung.

Benutzerreaktion:

Korrigieren Sie die Werte und führen Sie das Kommando erneut aus.


-25308: CONSTRAINT condition violated (MaxDB: Meldungen)

-25308: CONSTRAINT condition violated

Erläuterung:

Fehler beim Laden von Daten mit dem FASTLOAD-Kommando.

Der angegebene Datensatz erfüllt nicht die auf dieser Tabelle definierte CONSTRAINT-Bedingung.

Benutzerreaktion:

Korrigieren Sie die Daten und führen Sie das Kommando erneut aus.


-25309: The value you entered was not recognized as a BOOLEAN en (MaxDB: Meldungen)

-25309: The value you entered was not recognized as a BOOLEAN entry

Erläuterung:

Fehler im Kommando zum Laden ( DATALOAD oder FASTLOAD) oder Aktualisieren von Daten ( DATAUPDATE).

Die externe Darstellung von Eingabewerten vom Datentyp BOOLEAN kann in einzelnen Kommandos oder für alle Kommandos einer Kommandodatei definiert werden.

Der zu ladende Wert entspricht nicht dieser Darstellung.

Benutzerreaktion:

Korrigieren Sie die Daten und führen Sie das Kommando erneut aus.


-25310: Column does not permit NULL values (MaxDB: Meldungen)

-25310: Column does not permit NULL values

Erläuterung:

Fehler im Kommando zum Laden ( DATALOAD oder FASTLOAD) oder Aktualisieren von Daten ( DATAUPDATE).

Es ist nicht möglich, NULL-Werte in Spalten zu laden, die NOT NULL ohne Vorschlagswert des Systems definiert wurden.

Benutzerreaktion:

Korrigieren Sie die Daten und führen Sie das Kommando erneut aus.


-25311: Data missing for NOT NULL column (MaxDB: Meldungen)

-25311: Data missing for NOT NULL column

Erläuterung:

Fehler beim Laden von Daten mit dem FASTLOAD-Kommando.

Dieser Fehler tritt auf, wenn für eine Spalte, die als NOT NULL ohne Vorschlagswert des Systems definiert wurde, keine Daten im Datenstrom gefunden werden, oder wenn die Spalte im Kommando nicht angegeben ist.

Benutzerreaktion:

Korrigieren Sie die Werte oder das Kommando und führen Sie das Kommando erneut aus.


-25313: Numerical value truncated (MaxDB: Meldungen)

-25313: Numerical value truncated

Erläuterung:

Fehler beim Entladen von Daten mit dem DATAEXTRACT-Kommando.

Ein zu entladender numerischer Wert kann in die im Kommando angegebenen externen Darstellung nicht entladen werden. Dieser Fehler tritt z.B. auf, wenn versucht wird, den Wert 2147483647 vom Datentyp INTEGER in einen externen 2 Byte langen binären INTEGER-Wert zu entladen.

Bei diesem Fehler wird allerdings nur eine Fehlermeldung ausgegeben und anstelle der numerischen Daten wird eine entsprechende Anzahl von * im Datenstrom eingetragen. Das Entladen der Daten wird von diesem Fehler nicht unterbrochen.

Benutzerreaktion:

Überprüfen Sie nach Beendigung des Entladevorgangs die entladenen Daten.


-25314: Too few decimal places defined for column (MaxDB: Meldungen)

-25314: Too few decimal places defined for column

Erläuterung:

Fehler beim Entladen von Daten mit dem DATAEXTRACT-Kommando.

Die Definition der externen Darstellung der Werte der angegebenen Spalte (externes Format DECIMAL oder ZONED) enthält zu wenig Nachkommastellen. Die erforderliche Anzahl ergibt sich aus der Definition der Spalte in der Datenbankinstanz und/oder durch die beim Entladen auszuführenden Operationen auf den Werten der Spalte.

Benutzerreaktion:

Korrigieren Sie die Angaben zur externen Darstellung der Werte dieser Spalte und führen Sie das Kommando erneut aus.


-25315: The data type of the column and the external data type a (MaxDB: Meldungen)

-25315: The data type of the column and the external data type are not compatible

Erläuterung:

Fehler beim Entladen von Daten mit dem DATAEXTRACT-Kommando.

Benutzerreaktion:

Wählen Sie einen anderen externen Datentyp und führen Sie das Kommando erneut aus.


-25316: The FASTLOAD command cannot be executed; the table conta (MaxDB: Meldungen)

-25316: The FASTLOAD command cannot be executed; the table contains at least one column of data type LONG

Erläuterung:

Fehler beim Laden von Daten mit dem FASTLOAD-Kommando.

Die zu ladende Tabelle darf keine Spalten vom Datentyp LONG enthalten. Das gilt selbst dann, wenn die betreffende Spalte in diesem Fall nicht geladen werden soll, d.h. das Kommando selbst diese Spalte in der Spaltenbeschreibung nicht aufführt.

Benutzerreaktion:

Laden Sie die Tabelle mit dem DATALOAD-Kommando.


-25317: Entry for column is not compatible with the data type or (MaxDB: Meldungen)

-25317: Entry for column is not compatible with the data type or the column length

Erläuterung:

Fehler im Kommando zum Laden ( DATALOAD oder FASTLOAD) oder Aktualisieren von Daten ( DATAUPDATE).

Der zu ladende Wert kann nicht in die Spalte geladen werden, da er entweder zu lang ist oder der externe Datentyp und der Datentyp der Spalte nicht kompatibel sind.

Benutzerreaktion:

Korrigieren Sie die Daten und führen Sie das Kommando erneut aus.


-25318: The generated system key has exceeded the maximum possib (MaxDB: Meldungen)

-25318: The generated system key has exceeded the maximum possible value

Erläuterung:

Fehler beim Laden von Daten mit dem FASTLOAD-Kommando.

Es werden Daten in eine Tabelle geladen, die keinen benutzerdefinierten Schlüssel besitzt. In diesem Fall wird ein datenbankinterner Schlüssel erzeugt.

Der beim Laden erzeugte Wert übersteigt den maximal möglichen Wert. Dieser Fehler tritt allerdings erst auf, wenn die Anzahl der Datensätze in dieser Tabelle den Wert 2E48 überschreitet.

Benutzerreaktion:

Es ist keine Benutzerreaktion möglich.


-25319: Unable to find any data for the column in the data file (MaxDB: Meldungen)

-25319: Unable to find any data for the column in the data file

Erläuterung:

Fehler im Kommando zum Laden ( DATALOAD oder FASTLOAD) von Daten.

Beim Laden von Daten müssen für alle im Kommando aufgeführten Spalten Daten im Datenstrom angegeben werden. Eine Ausnahme bilden Spalten, die einen Systemsvorschlagswert oder NULL-Wert erlauben.

Für die angegebene Spalte hat der Loader keine Daten im Datenstrom gefunden.

Zusätzlich zu dieser Fehlermeldung protokolliert der Loader, in welcher Zeile (Textdatenstrom) oder an welcher Position im Datenstrom (binärer Datenstrom) der Fehler aufgetreten ist.

Benutzerreaktion:

Überprüfen Sie die Daten im Datenstrom und führen Sie das Kommando erneut aus.


-25320: The LONG value could not be loaded into column (MaxDB: Meldungen)

-25320: The LONG value could not be loaded into column

Erläuterung:

Fehler beim Laden (DATALOAD) oder Aktualisieren von Daten (DATAUPDATE).

Beim Laden eines Wertes in eine Spalte vom Datentyp LONG ist ein Fehler aufgetreten. Die Fehlermeldung erhält einen zusätzlichen Fehlertext, in dem die Ursache für das Fehlschlagen angegeben wird.

Benutzerreaktion:

Beheben Sie die Fehlerursache und führen Sie das Kommando erneut aus.


-25321: Error in the command; the constant you have entered is n (MaxDB: Meldungen)

-25321: Error in the command; the constant you have entered is not a valid number

Erläuterung:

Fehler beim Laden (DATALOAD oder FASTLOAD) oder Aktualisieren von Daten (DATAUPDATE).

Im Kommando können für einzelne Spalten Bedingungen definiert werden, die das Laden/Aktualisieren der Werte steuern. Die Vergleichskonstanten in Bedingungen für numerische Spalten müssen auch als Zahlen interpretierbar sein.

Bei diesem Fehler ist die angegebene Vergleichskonstante nicht als Zahl interpretierbar.

Benutzerreaktion:

Korrigieren Sie das Kommando und führen Sie es erneut aus.


-25322: Error in the command; the constant you entered was trunc (MaxDB: Meldungen)

-25322: Error in the command; the constant you entered was truncated during conversion

Erläuterung:

Fehler beim Laden (DATALOAD oder FASTLOAD) oder Aktualisieren von Daten (DATAUPDATE).

Im Kommando können für einzelne Spalten Bedingungen definiert werden, die das Laden/Aktualisieren der Werte steuern. Die Vergleichskonstanten in Bedingungen für numerische Spalten müssen auch als Zahlen interpretierbar sein.

Bei diesem Fehler ist die angegebene Vergleichskonstante als Zahl interpretierbar. Sie wurde aber bei der Konvertierung um Nachkommastellen gekürzt und kann deshalb für Vergleiche nicht mehr herangezogen werden.

Benutzerreaktion:

Korrigieren Sie das Kommando und führen Sie es erneut aus.


-25323: Error in command; the data type of the constant in the c (MaxDB: Meldungen)

-25323: Error in command; the data type of the constant in the column’s NULL condition is not compatible with the external column data type

Erläuterung:

Fehler beim Entladen von Daten mit dem DATAEXTRACT-Kommando.

Im Kommando kann für einzelne Spalten eine NULL-Wert-Repräsentation spezifiziert werden. Damit wird im Fall eines entladenen NULL-Wertes die im Kommando angegebene Konstante in den Datenstrom eingetragen.

Der Datentyp der angegebenen Konstante muss kompatibel sein zum externen Datentyp der zu entladenen Spalte. Wird kein Datentyp im Kommando angegeben, dann wird als Vorgabewert der Datentyp CHAR angenommen.

Benutzerreaktion:

Korrigieren Sie das Kommando und führen Sie es erneut aus.


-25324: Error in the length specifications of the column descrip (MaxDB: Meldungen)

-25324: Error in the length specifications of the column descriptions; see log file for more detailed information

Erläuterung:

Fehler beim Entladen von Daten mit dem DATAEXTRACT-Kommando.

Im Kommando kann für einzelne Spalten die Länge der Werte im Datenstrom angegeben werden. Einige der angegebenen Längen sind kürzer als die definierten Längen der Spalten in der Datenbank. Diese Werte könnten somit nur fehlerhaft entladen werden.

Bei dieser Fehlermeldung handelt es sich um eine zusammenfassende Meldung. Die Fehlermeldungen –25203, -25204 und -25315, welche die fehlerhaften Spaltenbeschreibungen angeben, sind nur in der Protokolldatei aufgeführt.

Benutzerreaktion:

Korrigieren Sie das Kommando und führen Sie es erneut aus.


-25325: Error in command; the external and internal data types a (MaxDB: Meldungen)

-25325: Error in command; the external and internal data types are not compatible. For more detailed information, please consult the log file

Erläuterung:

Fehler beim Entladen von Daten mit dem DATAEXTRACT-Kommando.

Im Kommando kann für einzelne Spalten der externe Datentyp der Werte im Datenstrom angegeben werden.

Bei dieser Fehlermeldung handelt es sich um eine zusammenfassende Meldung. Die Fehlermeldungen -25315 und -25323, welche die fehlerhaften Spaltenbeschreibungen angeben, sind nur in der Protokolldatei aufgeführt.

Benutzerreaktion:

Korrigieren Sie das Kommando und führen Sie es erneut aus.


-25326: Error when executing the extract command; the number ext (MaxDB: Meldungen)

-25326: Error when executing the extract command; the number extracted was truncated during conversion

Erläuterung:

Fehler beim Entladen von Daten mit dem DATAEXTRACT-Kommando.

Die entladene Zahl wurde bei der Konvertierung in den externen Datentyp um Nachkommastellen gekürzt.

Dieser Fehler hat keinen Abbruch des Kommandos zur Folge.

Benutzerreaktion:

Es ist keine Benutzerreaktion erforderlich.


-25327: Error when extracting data record (MaxDB: Meldungen)

-25327: Error when extracting data record

Erläuterung:

Fehler beim Entladen von Daten mit dem DATAEXTRACT-Kommando.

Der in der Fehlermeldung aufgeführte Datensatz konnte nur fehlerhaft entladen werden.

Die angegebene Position ist nur für binäre Datenströme interessant, da sie die genaue Position des fehlerhaften Datensatzes im Datenstrom angibt. Im Fall von Textdatenströmen ist die Position immer 1.

Dieser Fehlermeldung sind bereits Fehlermeldungen vorausgegangen, welche die aufgetretenen Fehler und die fehlerhaften Werte im Datensatz genauer beschreiben.

Dieser Fehler hat keinen Abbruch des Kommandos zur Folge, wenn das Kommando mit einer Fehlertoleranz größer als 1 ausgeführt wird.

Benutzerreaktion:

Überprüfen Sie die fehlerhaften Datensätze.

Korrigieren Sie im Fall eines Abbruchs das Kommando und führen Sie es erneut aus.


-25328: Error when executing the DATAEXTRACT command; the server (MaxDB: Meldungen)

-25328: Error when executing the DATAEXTRACT command; the server’s log file contains more detailed information

Erläuterung:

Fehler beim Entladen von Daten mit dem DATAEXTRACT-Kommando.

Diese Fehlermeldung wird nur vom Client (z.B. LOADERCLI) ausgegeben.

Benutzerreaktion:

Überprüfen Sie die aufgetretenen Probleme anhand der Einträge in der Protokolldatei des Loader.

Korrigieren Sie gegebenenfalls das Kommando und führen Sie es erneut aus.


-25329: Error when executing the TABLELOAD command; the data fil (MaxDB: Meldungen)

-25329: Error when executing the TABLELOAD command; the data file is corrupt or was not created using TABLEEXTRACT

Erläuterung:

Fehler beim Laden von Daten mit dem TABLELOAD-Kommando.

Datenströme für das TABLELOAD-Kommando müssen binäre sein und die Datenbankstrukturen und spezielle Informationen zum Ausführen eines anschließenden TABLELOAD-Kommandos enthalten. Diese Datenströme werden durch das TABLEEXTRACT-Kommando erzeugt und dürfen nicht verändert werden.

Der im Kommando angegebene Datenstrom ist nach Ausführung von TABLEEXTRACT verändert worden oder wurde nicht mit TABLEEXTRACT erstellt. In der Fehlerursache wird angegeben, welche Information im Datenstrom nicht ausgewertet werden kann.

Benutzerreaktion:

Erstellen Sie den Datenstrom mit dem TABLEEXTRACT-Kommando und führen das Kommando erneut aus.


-25330: Error when executing the TABLELOAD command; the page siz (MaxDB: Meldungen)

-25330: Error when executing the TABLELOAD command; the page sizes of the source and target file are different

Erläuterung:

Fehler beim Laden von Daten mit dem TABLELOAD-Kommando.

Die mit dem TABLEEXTRACT-Kommando erzeugten Daten sind Binärstrukturen der entladenen Datenbankinstanz. Damit diese Daten wieder in eine andere Datenbankinstanz geladen werden können, müssen beide Datenbankinstanzen die gleiche Seitengröße haben.

Dieser Fehler tritt auf, wenn die Seitengröße der Datenbankinstanz, aus der die Tabelle(n) entladen wurde(n) und die Seitengröße der zu ladenden Datenbankinstanz nicht übereinstimmen.

Benutzerreaktion:

Es ist keine Benutzerreaktion möglich. Die Daten können nur in eine Datenbankinstanz mit der gleichen Seitengröße der Quelldatenbankinstanz geladen werden.


-25331: This is a restricted statement, user must be SYSDBA (MaxDB: Meldungen)

-25331: This is a restricted statement, user must be SYSDBA

Erläuterung:

Die Kommandos TABLEEXTRACT ALL, TABLELOAD ALL, CATALOGEXTRACT ALL und CATALOGLOAD ALL sind Kommandos, die den gesamten Datenbankkatalog betreffen und deshalb nur vom Datenbanksystemadministrator ausgeführt werden dürfen

Benutzerreaktion:

Rufen Sie den Loader mit der entsprechenden Benutzerkennung auf oder führen Sie vor dem Kommando ein USE-USER–Kommando mit der entsprechenden Benutzerkennung aus.


-25332: Unable to extract table definition (MaxDB: Meldungen)

-25332: Unable to extract table definition

Erläuterung:

Fehler beim Entladen von Daten mit dem TABLEEXTRACT-Kommando.

Beim Ausführen eines TABLEEXTRACT-Kommandos wird für jede zu entladende Tabelle neben den Daten auch die Schemadefinition der Tabelle entladen. Das ermöglicht es, die entladene Tabelle bei Aufruf des entsprechenden TABLELOAD-Kommandos vollständig wiederherzustellen.

Beim Entladen der Schemadefinition der Tabelle ist ein Fehler aufgetreten. Dem SQL-Fehlertext können Sie die Ursache des Fehlers entnehmen.

Benutzerreaktion:

Analysieren Sie die Ursache des Fehlers und führen Sie das Kommando erneut aus.


-25333: Unable to extract index definition (MaxDB: Meldungen)

-25333: Unable to extract index definition

Erläuterung:

Fehler beim Entladen von Daten mit dem TABLEEXTRACT-Kommando.

Beim Ausführen eines TABLEEXTRACT-Kommandos wird für jede zu entladende Tabelle neben den Daten auch die Indexdefinition der Tabelle entladen. Das ermöglicht es, die entladene Tabelle bei Aufruf des entsprechenden TABLELOAD-Kommandos vollständig wiederherzustellen.

Beim Entladen der Indexdefinition der Tabelle ist ein Fehler aufgetreten. Dem SQL-Fehlertext können Sie die Ursache des Fehlers entnehmen.

Benutzerreaktion:

Analysieren Sie die Ursache des Fehlers und führen Sie das Kommando erneut aus.


-25334: The file counter exceeds the maximum of 9999 files (MaxDB: Meldungen)

-25334: The file counter exceeds the maximum of 9999 files

Erläuterung:

Fehler beim Entladen von Daten mit dem TABLEEXTRACT-Kommando.

Um die vorgegebene Größe der bei Ausführung eines TABLEEXTRACT-Kommandos zu erzeugenden Datenströme einzuhalten, wird implizit aus dem im Kommando angegebenen Namen des Datenstroms eine Folge von Dateien erzeugt.

Die maximal zu erzeugende Anzahl von Dateien ist auf 9999 Dateien begrenzt.

Benutzerreaktion:

Korrigieren Sie die in dem TABLEEXTRACT-Kommando angegebene Größe für einen einzelnen Datenstrom und führen Sie das Kommando erneut aus.


-25335: Error when restoring the table; the data file specified (MaxDB: Meldungen)

-25335: Error when restoring the table; the data file specified was created with TABLEEXTRACT USER/ALL

Erläuterung:

Fehler beim Laden von Daten mit dem TABLELOAD TABLE-Kommando.

Die mit dem TABLEEXTRACT-Kommando erzeugten Daten wurden entweder mit der Option USER oder ALL erstellt. Die so entladenen Tabellen können nur mit dem entsprechenden TABLELOAD USER- oder TABLELOAD ALL-Kommando geladen werden. Das Laden einer einzelnen Tabelle aus diesen Daten ist nicht möglich.

Benutzerreaktion:

Wenn Sie eine einzelne Tabelle laden wollen, müssen Sie diese zuerst mit dem TABLEEXTRACT-Kommando entladen.

Wenn Sie die gesamten Daten des Datenstroms laden wollen, korrigieren Sie das Kommando und führen Sie es erneut aus.


-25336: Error when restoring tables; the data file specified was (MaxDB: Meldungen)

-25336: Error when restoring tables; the data file specified was created using TABLEEXTRACT TABLE

Erläuterung:

Fehler beim Laden von Daten mit dem TABLELOAD ALL- oder TABLELOAD USER-Kommando.

Die mit dem TABLEEXTRACT-Kommando erzeugten Daten wurden mit der Option TABLE erstellt. Mit diesem Kommando wird eine einzelne Tabelle entladen. Diese kann nur mit einem entsprechenden TABLELOAD TABLE-Kommando geladen werden.

Das Laden mehrerer Tabellen aus diesen Daten ist nicht möglich.

Benutzerreaktion:

Wenn Sie Tabellen laden wollen, müssen Sie diese zuerst mit dem entsprechenden TABLEEXTRACT-Kommando (Option ALL oder USER) entladen:

· Option ALL oder USER für mehrere Tabellen

· Option TABLE für eine einzelne Tabelle


-25337: Error when restoring table; the data file contains no da (MaxDB: Meldungen)

-25337: Error when restoring table; the data file contains no data for the specified table

Erläuterung:

Fehler beim Laden von Daten mit dem TABLELOAD-Kommando.

Der angegebene Datenstrom enthält keine Daten, mit der die Tabelle geladen werden könnte. Bevor eine Tabelle geladen werden kann, muss sie mit dem TABLEEXTRACT-Kommando entladen werden.

Benutzerreaktion:

Entladen Sie die Tabelle bevor Sie diese wiederherstellen.


-25338: Error when restarting the command; entry in assignment f (MaxDB: Meldungen)

-25338: Error when restarting the command; entry in assignment file not found

Erläuterung:

Fehler beim Wiederaufsetzen des Ladens von Daten mit dem TABLELOAD-Kommando.

Mit dem TABLELOAD-Kommando haben Sie die Möglichkeit, abgebrochene Ladeläufe wiederaufzusetzen. Um das zu ermöglichen, schreibt der Loader beim Ausführen des Kommandos eine Restart-Datei, die den Namen der letzten erfolgreich geladenen Tabelle enthält.

Der angegebene Fehler tritt auf, wenn der Loader den Namen der Tabelle aus der Restart-Datei nicht in der Zuordnungsdatei finden kann. Die mögliche Ursache ist eine Modifikation der Zuordnungsdatei nach Abbruch des Ladelaufes.

Benutzerreaktion:

Wenn möglich, stellen Sie die Zuordnungsdatei in ihrer ursprünglichen Version wieder her. Ist das nicht möglich, sollte für einen konsistenten Datenbestand das Entladen und Laden der Daten komplett wiederholt werden.


-25339: Error when restarting the TABLELOAD command; unable to o (MaxDB: Meldungen)

-25339: Error when restarting the TABLELOAD command; unable to open restart

Erläuterung:

Fehler beim Wiederaufsetzen des Ladens von Daten mit dem TABLELOAD-Kommando.

Die Restart-Datei konnte nicht geöffnet werden.

Benutzerreaktion:

Analysieren und beseitigen Sie die Fehlerursache. Führen Sie das Kommando erneut aus.


-25340: UCS2 conversion error; character string contains invalid (MaxDB: Meldungen)

-25340: UCS2 conversion error; character string contains invalid characters or character sequences

Erläuterung:

Fehler beim Laden oder Aktualisieren von Daten mit dem DATALOAD- , FASTLOAD- oder DATAUPDATE-Kommando auf einer UNICODE-fähigen Datenbank.

Wenn bei einer UNICODE-Datenbank Daten in Spalten mit einem zeichenbasierten Datentyp (CHAR) geladen werden, konvertiert der Loader die Daten in die datenbankinterne Darstellung (UCS2). Dabei ist ein Fehler aufgetreten. Die zu ladenden Daten enthalten Zeichen, die nicht in UCS2 konvertiert werden können.

Benutzerreaktion:

Korrigieren Sie die abgewiesenen Daten und führen Sie das Kommando erneut aus.


-25341: Error when generating the CREATE TABLE/CREATE INDEX stat (MaxDB: Meldungen)

-25341: Error when generating the CREATE TABLE/CREATE INDEX statement

Erläuterung:

Fehler beim Entladen von Daten mit dem DATAEXTRACT FOR DATALOAD–Kommando.

Beim Ausführen des DATAEXTRACT FOR DATALOAD-Kommando werden neben den entladenen Daten auch die Kommandos zum Anlegen der Tabelle (CREATE TABLE) und zum Anlegen der Indizes (CREATE INDEX) erzeugt.

Dabei ist ein Fehler aufgetreten. Der Fehler wird in der im Fehlermeldungstext angegebenen Fehlermeldung näher beschrieben.

Benutzerreaktion:

Beseitigen Sie die Fehlerursache und führen Sie das Kommando erneut aus.


-25342: Error when restoring table <table name>; the structures (MaxDB: Meldungen)

-25342: Error when restoring table <table name>; the structures of the source and target tables are different

Erläuterung:

Fehler beim Laden von Daten mit dem TABLELOAD-Kommando.

Die angegebene Tabelle existiert bereits in der Datenbankinstanz. Der Loader hat festgestellt, dass das Schema der Quelltabelle nicht mit dem Schema der Zieltabelle übereinstimmt. Deshalb können die Daten nicht geladen werden.

Benutzerreaktion:

Verändern Sie die Zieltabelle so, dass die Schemata übereinstimmen. Führen Sie das Kommando erneut aus.


-25343: Error in command; the SELECT statement in the command do (MaxDB: Meldungen)

-25343: Error in command; the SELECT statement in the command does not contain the column name

Erläuterung:

Fehler beim Entladen von Daten mit dem DATAEXTRACT–Kommando.

In der Spaltenliste sind die angeführten Spaltennamen enthalten, die jedoch in der SELECT-Anweisung fehlen. Diese werden nicht entladen und können deswegen nicht in den Datenstrom gesichert werden.

Benutzerreaktion:

Wenn Sie die angegebenen Spalten ebenfalls entladen wollen, nehmen Sie diese zusätzlich in die SELECT-Anweisung mit auf. Andernfalls löschen Sie die Spaltennamen aus der Spaltenliste.

Führen Sie das Kommando erneut aus.


-25344: Error in command for downloading data; the output length (MaxDB: Meldungen)

-25344: Error in command for downloading data; the output length specified is too small for the column. Minimum output length is:

Erläuterung:

Fehler beim Entladen von Daten mit dem DATAEXTRACT–Kommando.

Die für die Spalte definierte Ausgabelänge ist zu klein, um die Werte auszugeben, die gemäß Definition der Spalte in der Datenbankinstanz möglich sind.

Benutzerreaktion:

Korrigieren Sie die Ausgabelänge der angegebenen Spalte und führen Sie das Kommando erneut aus.


-25351: Error in command; the LONGFILE specification for the col (MaxDB: Meldungen)

-25351: Error in command; the LONGFILE specification for the column is missing from the command

Erläuterung:

Fehler beim Entladen von Daten mit dem DATAEXTRACT-Kommando.

Die in der SELECT-Anweisung des auszuführenden DATAEXTRACT-Kommandos angegebene Spalte ist vom Datentyp LONG. Um sie zu entladen, muss im Kommando für diese Spalte eine longfile_spec angegeben werden.

Benutzerreaktion:

Korrigieren Sie das Kommando und führen Sie es erneut aus.


-25352: Error when downloading data; several errors occurred whe (MaxDB: Meldungen)

-25352: Error when downloading data; several errors occurred when analyzing the LONGFILE specification in the command. For more information, please consult the log file

Erläuterung:

Fehler beim Entladen von Daten mit dem DATAEXTRACT-Kommando.

Bei dieser Fehlermeldung handelt es sich um eine zusammenfassende Meldung. Die dieser Meldung vorausgegangenen Fehlermeldungen sind in der Protokolldatei aufgeführt.

Benutzerreaktion:

Überprüfen Sie die Fehlermeldungen. Korrigieren Sie das Kommando und führen Sie es erneut aus.


-25353: Error when downloading data; the maximum number of LONG (MaxDB: Meldungen)

-25353: Error when downloading data; the maximum number of LONG data files for the column has been exceeded

Erläuterung:

Fehler beim Entladen von Daten mit dem DATAEXTRACT-Kommando.

Im Kommando kann für Spalten vom Datentyp LONG in der longfile_spec angegeben werden, dass jeder entladene Werte in einen einzelnen Datenstrom geschrieben werden soll. Dabei wird mit Platzhaltern im Namen des Datenstroms (‚#’) definiert, wie viele Datenströme maximal erzeugt werden können, z. B. würde eine Definition des Namens <name>### es ermöglichen, 1000 Datenströme zu erzeugen.

Der Fehler tritt auf, wenn die Tabelle mehr Datensätze enthält als Datenströme erzeugt werden können.

Benutzerreaktion:

Korrigieren Sie das Kommando und führen Sie es erneut aus.


-25354: Error in the command for uploading data; the LONG data f (MaxDB: Meldungen)

-25354: Error in the command for uploading data; the LONG data file specification is missing

Erläuterung:

Fehler beim Laden oder Aktualisieren von Daten mit dem DATALOAD- oder DATAUPDATE-Kommando, wenn alle einzufügenden LONG-Werte einer Spalte in einem LONG-Datenstrom stehen.

Der Loader hat im Quelldatenstrom keine Positionsangaben für die Werte im LONG-Datenstrom gefunden.

Benutzerreaktion:

Korrigieren Sie den Datenstrom und führen Sie das Kommando erneut aus.


-25501: Error when opening file (MaxDB: Meldungen)

-25501: Error when opening file

Erläuterung:

Im Fehlertext des Betriebssystems erscheint ein betriebssystemabhängiger Text, der den aufgetretenen Fehler benennt. Ursachen können sein, dass es keine Datei mit diesem Namen gibt, dass die angegebene Platte schreibgeschützt ist usw.

Benutzerreaktion:

Geben Sie einen anderen Dateiname an oder beseitigen Sie die Fehlerursache (auf Betriebssystemebene).


-25502: Error when closing file (MaxDB: Meldungen)

-25502: Error when closing file

Erläuterung:

Im Fehlertext des Betriebssystems erscheint ein betriebssystemabhängiger Text, der den aufgetretenen Fehler benennt.

Benutzerreaktion:

Eine Benutzerreaktion ist nicht erforderlich.


-25503: Error when reading file (MaxDB: Meldungen)

-25503: Error when reading file

Erläuterung:

Im Fehlertext des Betriebssystems erscheint ein betriebssystemabhängiger Text, der den aufgetretenen Fehler benennt.

Benutzerreaktion:

Beseitigen Sie die Ursache für diesen Fehler und starten Sie den Loader zur Bearbeitung des abgebrochenen Kommandos erneut.


-25504: Error when writing file (MaxDB: Meldungen)

-25504: Error when writing file

Erläuterung:

Im Fehlertext des Betriebssystems erscheint ein betriebssystemabhängiger Text, der den aufgetretenen Fehler benennt.

Benutzerreaktion:

Beseitigen Sie die Ursache für diesen Fehler und starten Sie den Loader zur Bearbeitung des abgebrochenen Kommandos erneut.


-25505: Error when erasing file (MaxDB: Meldungen)

-25505: Error when erasing file

Erläuterung:

Im Fehlertext des Betriebssystems erscheint ein betriebssystemabhängiger Text, der den aufgetretenen Fehler benennt.

Benutzerreaktion:

Eine Benutzerreaktion ist nicht erforderlich.


-25507: Error when shrinking file (MaxDB: Meldungen)

-25507: Error when shrinking file

Erläuterung:

In Fehlertext des Betriebssystems erscheint ein betriebssystemabhängiger Text, der den aufgetretenen Fehler benennt. Ursachen können sein, dass es keine Datei mit diesem Namen gibt, dass die angegebene Platte schreibgeschützt ist, usw.

Benutzerreaktion:

Geben Sie einen anderen Dateiname an oder beseitigen Sie die Fehlerursache auf Betriebssystemebene.


-25801: Internal program error (MaxDB: Meldungen)

-25801: Internal program error

Erläuterung:

Es ist ein interner Programmfehler aufgetreten.

Benutzerreaktion:

Verständigen Sie den Support und übermitteln Sie die Ausgaben der Fehlermeldung.


Von -27000 bis -28999 (MaxDB: Meldungen)

Von -27000 bis -28999

Fehlermeldungen des liveCache

-27000 | Unknown error
-27003 | Numeric input parameter overflow
-27006 | Incompatible data types
-27009 | Command too long
-27014 | Connect not ok
-27015 | Connection down
-27016 | DB shut down
-27017 | Too many users
-27018 | Connection error
-27019 | Conversion UNICODE to ASCII not possible
-28001 | Access via NIL OID
-28002 | Invalid OID
-28003 | Unknown GUID
-28005 | Duplicate object
-28006 | Object not locked
-28007 | OID not compatible with given class
-28501 | Error reading OMS input stream
-28502 | Error writing OMS output stream
-28503 | Crash in DB-Procedure
-28505 | No component object found
-28508 | Unsupported parameter type
-28514 | Unknown OMS version
-28515 | OMS Version already open
-28516 | Commit or Rollback required
-28517 | Already in Critical Section
-28518 | Not in Critical Section
-28521 | Already in version
-28522 | Missing before image
-28523 | Unknown schema
-28524 | Duplicate schema
-28525 | Procedure Address not found
-28527 | Directory not found
-28529 | Too small name buffer
-28530 | omsTerminate called
-28531 | OMS read only
-28532 | Version bound by transaction
-28533 | Integer out of packed range
-28534 | Package must be recreated
-28600 | Invalid request code in package
-28601 | Object data packet for read missing
-28602 | Packet size does not match object size
-28603 | Requested packet size to transfer an object is too big
-28604 | Trying to queue too many data packets when sending object data
-28605 | Invalid operation in ProcServer-Kernel communication
-28606 | Communication error
-28607 | Missing object data packet
-28608 | Invalid reply for stored procedure
-28609 | Stored procedure not found
-28801 | Wrong class id
-28802 | Wrong object version
-28803 | Wrong object state
-28804 | Too old OID
-28806 | Nil page pointer
-28808 | Hash not found
-28810 | Duplicate hash key
-28813 | Unknown consistent version
-28814 | Object not found
-28815 | Object history not found
-28817 | Wrong object length
-28818 | Wrong object position
-28819 | Object has been updated by other transactions
-28823 | Page already in use
-28826 | Pagecounter inconsistent
-28828 | Inconsistent information concerning “is container dropped”
-28902 | Too many nested try/catch statements
-28903 | DBFunction $1 must return a value
-28822 bis -28999 | Internal Error


-27000: Unknown error (MaxDB: Meldungen)

-27000: Unknown error

Erklärung:

Es ist ein Systemfehler aufgetreten.

Benutzerreaktion:

Verständigen Sie den Support.


-27003: Numeric input parameter overflow (MaxDB: Meldungen)

-27003: Numeric input parameter overflow

Erklärung:

Es trat ein Überlauf auf entweder

· bei einer lesenden SQL-Anweisung:
beim Übertragen eines numerischen Wertes aus der Datenbankinstanz in eine Host-Variable

oder

· bei einer schreibenden SQL-Anweisung:
beim Übertragen eines numerischen Wertes einer Host-Variable in die Datenbankinstanz

Benutzerreaktion:

Verständigen Sie den Support.


-27006: Incompatible data types (MaxDB: Meldungen)

-27006: Incompatible data types

Erklärung:

Es wurde entweder versucht

· bei einer lesenden SQL-Anweisung einen Wert aus der Datenbankinstanz in eine inkompatible Host-Variable zu lesen

oder

· bei einer schreibenden SQL-Anweisung den Wert einer inkompatiblen Host-Variable in die Datenbankinstanz zu schreiben.

Benutzerreaktion:

Verständigen Sie den Support.


-27009: Command too long (MaxDB: Meldungen)

-27009: Command too long

Erklärung:

Es wurde versucht eine zu lange SQL-Anweisung zu preparieren oder auszuführen.

Benutzerreaktion:

Verständigen Sie den Support.


-27014: Connect not ok (MaxDB: Meldungen)

-27014: Connect not ok

Erklärung:

Es trat ein nicht näher spezifizierter Fehler beim Verbindungsaufbau auf.

Benutzerreaktion:

Verständigen Sie den Support.


-27015: Connection down (MaxDB: Meldungen)

-27015: Connection down

Erklärung:

Die Verbindung zum liveCache ist abgebrochen.

Benutzerreaktion:

Verständigen Sie den Support.


-27016: DB shut down (MaxDB: Meldungen)

-27016: DB shut down

Erklärung:

Es wurde versucht über die externe SQL-Klasse eine Verbindung zu einer Datenbankinstanz im Betriebszustand OFFLINE aufzubauen.

Benutzerreaktion:

Verständigen Sie den Support.


-27017: Too many users (MaxDB: Meldungen)

-27017: Too many users

Erklärung:

Die Anzahl der maximal möglichen Verbindungen zur Datenbankinstanz wurde überschritten.

Benutzerreaktion:

Verständigen Sie den Support.


-27018: Connection error (MaxDB: Meldungen)

-27018: Connection error

Erklärung:

Bei der Ausführung einer SQL-Anweisung im liveCache trat ein nicht näher spezifizierter Verbindungsfehler auf.

Benutzerreaktion:

Verständigen Sie den Support.


-27019: Conversion UNICODE to ASCII not possible (MaxDB: Meldungen)

-27019: Conversion UNICODE to ASCII not possible

Erklärung:

Es sollte eine UNICODE-Zeichenkette aus der Datenbankinstanz in eine ASCII-Variable gelesen werden. Mindestens ein Zeichen ist jedoch ein UNICODE-Zeichen, das somit nicht nach ASCII konvertiert werden kann.

Dieser Fehler kann nur dann auftreten, wenn im liveCache Unicode-Spalten mittels nativer SQL gefüllt wurden oder sowohl Unicode- als auch ASCII-Anwendungen dieselbe liveCache-Instanz verwenden.

Benutzerreaktion:

Falls Sie im liveCache Unicode-Spalten mittels nativer SQL geändert haben, überprüfen Sie, ob diese Änderungen ASCII-kompatibel sind.

Falls Sie keine Änderungen mittels nativer SQL vorgenommen haben, verständigen Sie Ihren lokalen Support.


-28001: Access via NIL OID (MaxDB: Meldungen)

-28001: Access via NIL OID

Erklärung:

Es wurde eine OMS-Operation, z.B. Dereferenzierung (omsDeref) unter Angabe der NIL Oid versucht. Dies ist nicht zulässig.

Benutzerreaktion:

Verständigen Sie den Support.


-28002: Invalid OID (MaxDB: Meldungen)

-28002: Invalid OID

Erklärung:

Bei einer OMS-Operation wurde eine nicht zulässige OID angegeben.

Dies ist der Fall, wenn der Seitennummer- oder Positionsanteil der OID ausserhalb der zulässigen Grenzen liegt.

Benutzerreaktion:

Verständigen Sie den Support.


-28003: Unknown GUID (MaxDB: Meldungen)

-28003: Unknown GUID

Erklärung:

Es wurde eine nicht registrierte Klasse angesprochen.

Vor dem ersten Zugriff auf eine persistente Klasse muss sie durch Aufruf vom omsRegClass registriert werden.

Benutzerreaktion:

Verständigen Sie den Support.


-28005: Duplicate object (MaxDB: Meldungen)

-28005: Duplicate object

Erklärung:

Es wird versucht eine Kopie eines variabel langen Objekts zu erzeugen (omsLoadVarObject), obwohl der Aufrufer bereits eine Kopie davon besitzt.

Diese muss zuvor mit omsReleaseVarObject freigegeben werden.

Benutzerreaktion:

Verständigen Sie den Support.


-28006: Object not locked (MaxDB: Meldungen)

-28006: Object not locked

Erklärung:

Beim Ändern oder Löschen einer Instanz einer persistenten Klasse hat der liveCache festgestellt, dass die aktuelle Transaktion keine Sperre für die Instanz besitzt.

Dies ist nicht zulässig.

Benutzerreaktion:

Verständigen Sie den Support.


-28007: OID not compatible with given class (MaxDB: Meldungen)

-28007: OID not compatible with given class

Erklärung:

Es wird versucht ein Objekt zu derefenzieren, dessen OID nicht zu der vorgegebenen Klassen passt.

OID und Objekt nicht typverträglich.

Benutzerreaktion:

Verständigen Sie den Support.


-28501: Error reading OMS input stream (MaxDB: Meldungen)

-28501: Error reading OMS input stream

Erklärung:

Beim Lesen aus einer internen ABAP-Tabelle oder in einem Stream ist ein Fehler aufgetreten.

Nähere Informationen können der Datei knldiag des liveCache entnommen werden.

Benutzerreaktion:

Verständigen Sie den Support.


-28502: Error writing OMS output stream (MaxDB: Meldungen)

-28502: Error writing OMS output stream

Erklärung:

Beim Schreiben in eine interne ABAP-Tabelle oder in einen Stream ist ein Fehler aufgetreten. Nähere Informationen können der Datei knldiag des liveCache entnommen werden.

Benutzerreaktion:

Verständigen Sie den Support.


-28503: Crash in DB-Procedure (MaxDB: Meldungen)

-28503: Crash in DB-Procedure

Erklärung:

Beim Aufruf einer [image] Datenbankprozedur ist im Code der Methode der entsprechenden Komponenteninstanz eine unbehandelte Exception aufgetreten.

Nähere Informationen können der Datei knldiag des liveCache entnommen werden.

Benutzerreaktion:

Verständigen Sie den Support.


-28505: No Component Object found (MaxDB: Meldungen)

-28505: No Component Object found

Erklärung:

Die OMS-Bibliothek konnte beim Starten des liveCache nicht geladen werden.

Ein Betrieb des liveCache ist somit nicht möglich.

Benutzerreaktion:

Verständigen Sie den Support.


-28508: Unsupported parameter type (MaxDB: Meldungen)

-28508: Unsupported parameter type

Erklärung:

Einem Parameter einer Methode einer Komponentenklasse kann vom liveCache kein SQL Datentyp zugeordnet werden.

Benutzerreaktion:

Verständigen Sie den Support.


-28514: Unknown OMS Version (MaxDB: Meldungen)

-28514: Unknown OMS Version

Erklärung:

Beim Aufruf von omsOpenVersion, OmsCloseVersion, omsDropVersion oder omsRenameVersion wurde vom liveCache festgestellt, dass die angegebene [image] OMS-Version nicht existiert.

Benutzerreaktion:

Verständigen Sie den Support.


-28515: OMS Version already open (MaxDB: Meldungen)

-28515: OMS Version already open

Erklärung:

Beim Aufruf von omsOpenVersion wurde vom liveCache festgestellt, dass die angesprochene [image] OMS-Version bereits durch eine konkurrierende Task geöffnet worden ist.

Die OMS-Version kann erst geöffnet werden, wenn diese Task die Version geschlossen und die Transaktion beendet hat.

Benutzerreaktion:

Verständigen Sie den Support.


-28516: Commit or Rollback required (MaxDB: Meldungen)

-28516: Commit or Rollback required

Erklärung:

Bei Aufruf von omsCreateVersion, omsOpenVersion oder omsDropVersion wurde vom liveCache festgestellt, dass in der aktuellen Transaktion zuvor bereits Änderungen an Instanzen persistenter Klassen vorgenommen worden sind.

Dies ist nicht zulässig, die aktuelle Transaktion muss zuvor beendet werden.

Benutzerreaktion:

Verständigen Sie den Support.


-28517: Already in Critical Section (MaxDB: Meldungen)

-28517: Already in Critical Section

Erklärung:

Es wurde die Funktion omsEnter für eine Instanz von OmsCriticalSection aufgerufen, obwohl sich diese Instanz bereits im kritischen Abschnitt befindet.

Dies ist nicht zulässig.

Benutzerreaktion:

Verständigen Sie den Support.


-28518: Not in Critical Section (MaxDB: Meldungen)

-28518: Not in Critical Section

Erklärung:

Es wurde die Funktion omsLeave für eine Instanz von OmsCriticalSection aufgerufen, obwohl sich die Instanz nicht im kritischen Abschnitt befindet.

Dies ist nicht zulässig.

Benutzerreaktion:

Verständigen Sie den Support.


-28521: Already in version (MaxDB: Meldungen)

-28521: Already in version

Erklärung:

Beim Aufruf der Funktion omsOpenVersion wurde vom liveCache festgestellt, dass sich der Aufrufer bereits in einer [image] OMS-Version befindet.

Dies ist nicht zulässig.

Benutzerreaktion:

Verständigen Sie den Support.


-28522: Missing before image (MaxDB: Meldungen)

-28522: Missing before image

Erklärung:

Beim Aufruf der Funktion omsStore wurde festgestellt, dass für das zu ändernde Objekt kein Before-Image existiert.

Im diesem Fall wurde für das Objekt kein ForUpd-Zeiger angefordert.

Änderungen an dem Objekt sind somit nicht zulässig.

Benutzerreaktion:

Verständigen Sie den Support.


-28523: Unknown schema (MaxDB: Meldungen)

-28523: Unknown schema

Erklärung:

Es wird versucht auf ein nicht existierendes [image] liveCache-Schema zuzugreifen.

Dies kann beim Registrieren oder Löschen eines Containers oder beim Lösen eines liveCache-Schemas der Fall sein.

Benutzerreaktion:

Verständigen Sie den Support.


-28524: Duplicate schema (MaxDB: Meldungen)

-28524: Duplicate schema

Erklärung:

Beim Aufruf der Funktion omsCreateSchema wird vom liveCache festgestellt, dass ein [image] liveCache-Schema des angegebenen Namens bereits existiert.

Dies ist nicht zulässig.

Benutzerreaktion:

Verständigen Sie den Support.


-28525: Procedure Address not found (MaxDB: Meldungen)

-28525: Procedure Address not found

Erklärung:

Die beim Aufruf von dbpGetProcAddress angegebene Funktion konnte nicht lokalisiert werden.

Benutzerreaktion:

Verständigen Sie den Support.


-28527: Directory not found (MaxDB: Meldungen)

-28527: Directory not found

Erklärung:

Beim Aufruf von dbpGetDbrootSapPath oder dbpGetWorkingDirectory konnte der Pfadname nicht geliefert werden.

Der Puffer zur Aufnahme des Namens ist zu klein.

Benutzerreaktion:

Verständigen Sie den Support.


-28529: Too small name buffer (MaxDB: Meldungen)

-28529: Too small name buffer

Erklärung:

Beim Aufruf von omsGetLiveCacheVersion, omsGetLocalDateTime, omsGetLocalDateTime oder omsGetSchemaName ist der Puffer für den Rückgabewerte zu klein.

Benutzerreaktion:

Verständigen Sie den Support.


-28530: omsTerminate called (MaxDB: Meldungen)

-28530: omsTerminate called

Erklärung:

Die Methode omsTerminate wurde gerufen.

Hierdurch wurden alle Komponenteninstanzen der betroffenen Sitzung aufgelöst und die aktuelle Transaktion zurückgesetzt.

Benutzerreaktion:

Verständigen Sie den Support.


-28531: OMS read only (MaxDB: Meldungen)

-28531: OMS read only

Erklärung:

Es wurde versucht ein Objekt zu sperren, obwohl sich die aufrufende Sitzung im Nur-Lese-Betrieb befindet. Dies ist nicht zulässig.

Benutzerreaktion:

Verständigen Sie den Support.


-28532: Version bound by transaction (MaxDB: Meldungen)

-28532: Version bound by transaction

Erklärung:

Beim Aufruf von omsOpenVersion wurde vom liveCache festgestellt, dass die angesprochene [image] OMS-Version noch durch eine konkurrierende Task gebunden, jedoch nicht geöffnet ist.

Die Version kann erst geöffnet werden, wenn diese Task ihre Transaktion beendet hat.

Benutzerreaktion:

Verständigen Sie den Support.


-28533: Integer out of packed range (MaxDB: Meldungen)

-28533: Integer out of packed range

Erklärung:

Es soll ein Integer-Wert von 8 Byte in einen Wert vom Typ OmsTypePacked_8_3 umgewandelt werden, der ausserhalb des zulässigen Bereichs liegt.

Benutzerreaktion:

Verständigen Sie den Support.


-28534: Package must be recreated (MaxDB: Meldungen)

-28534: Package must be recreated

Erklärung:

Die dem Package zugeordnete Bibliothek wurde nach dem Erzeugen des Package verändert.

Benutzerreaktion:

Löschen Sie das Package und erzeugen Sie es neu.


-28600: Invalid request code in packet (MaxDB: Meldungen)

-28600: Invalid request code in packet

Erklärung:

Das Paket enthält ungültigen Anfrage-Code.

Benutzerreaktion:

Wenden Sie sich an Ihren lokalen Support.


-28601: Object data packet for read missing (MaxDB: Meldungen)

-28601: Object data packet for read missing

Erklärung:

Ein Datenpaket fehlt, weil ein Endpunkt zu wenig Pakete gesendet hat.

Dieser Fehler tritt nur auf, wenn Socket-Kommunikation verwendet wird. Bei einer Shared-Memory-Kommunikation werden Daten direkt über Shared Memory ausgetauscht. Im Unterschied hierzu werden Daten bei einer Socket-Kommunikation in Extra-Paketen vor dem Anfrage- bzw. nach dem Antwort-Paket gesendet.

Benutzerreaktion:

Wenden Sie sich an Ihren lokalen Support.


-28602: Packet size does not match object size (MaxDB: Meldungen)

-28602: Packet size does not match object size

Erklärung:

Dieser Fehler tritt nur auf, wenn Nicht-Shared-Memory-Kommunikation verwendet wird.

Die angegebene Objektgröße stimmt nicht mit der empfangenen Paketgröße überein.

Benutzerreaktion:

Wenden Sie sich an Ihren lokalen Support.


-28603: Requested packet size to transfer an object is too big (MaxDB: Meldungen)

-28603: Requested packet size to transfer an object is too big

Erklärung:

Die Paketgröße, die im Kommunikationskanals erlaubt ist, ist zu klein, um das Objekt aufzunehmen.

Benutzerreaktion:

Vergrößern Sie die Paketgröße für den Kommunikationskanal.


-28604: Trying to queue too many data packets when sending objec (MaxDB: Meldungen)

-28604: Trying to queue too many data packets when sending object data

Erklärung:

Die Obergrenze für die Größe der Warteschlange für die Nicht-Shared-Memory-Kommunikation wurde erreicht. Dieser Fehler tritt oft bei Massen-Operationen auf, wenn zu viele Objekte in der Warteschlange sind.

Benutzerreaktion:

Ändern Sie den Code, der die Warteschlange für Pakete steuert, so dass weniger Pakete in die Warteschlange gelangen. Massen-Operationen sollten maximal 100 Pakete in die Warteschlange schicken.


-28605: Invalid operation in ProcServer-Kernel communication (MaxDB: Meldungen)

-28605: Invalid operation in ProcServer-Kernel communication

Erklärung:

Es wurde versucht, in einer Shared-Memory-Kommunikation Objektdaten über einen Kommunikationskanal zu senden. In einer Shared-Memory-Kommunikation werden Objektdaten immer über Adressen im Shared Memory ausgetauscht, das Senden über einen Kommunikationskanal ist nicht möglich.

Benutzerreaktion:

Wenden Sie sich an Ihren lokalen Support.


-28606: Communication error (MaxDB: Meldungen)

-28606: Communication error

Erklärung:

Dieser Fehler tritt nur auf, wenn Socket-Kommunikation verwendet wird.

Ein unerwartetes Datenpaket wurde empfangen oder die Größe des Datenpakets stimmt nicht mit der im Anfragepaket angegebenen Größe des Objekts überein.

Benutzerreaktion:

Wenden Sie sich an Ihren lokalen Support.


-28607: Missing object data packet (MaxDB: Meldungen)

-28607: Missing object data packet

Erklärung:

Ein Datenpaket fehlt, weil ein Endpunkt zu wenig Pakete gesendet hat.

Dieser Fehler tritt nur auf, wenn Socket-Kommunikation verwendet wird. Bei einer Shared-Memory-Kommunikation werden Daten direkt über Shared Memory ausgetauscht. Im Unterschied hierzu werden Daten bei einer Socket-Kommunikation in Extra-Paketen vor dem Anfrage- bzw. nach dem Antwort-Paket gesendet.

Benutzerreaktion:

Wenden Sie sich an Ihren lokalen Support.


-28608: Invalid reply for stored procedure (MaxDB: Meldungen)

-28608: Invalid reply for stored procedure

Erklärung:

Das Antwort-Paket in der Kernel-ProcServer-Kommunikation passt nicht zur Anfrage.

Benutzerreaktion:

Wenden Sie sich an Ihren lokalen Support.


-28609: Stored procedure not found (MaxDB: Meldungen)

-28609: Stored procedure not found

Erklärung:

Der Benutzer hat versucht, eine gespeicherte Prozedur aufzurufen. Diese Prozedur konnte jedoch nicht in der zugeordneten DB-Prozedur gefunden werden.

Benutzerreaktion:

Überprüfen Sie, ob die Prozedur mit ihrer DB-Prozedur-Definition im Datenbankkatalog übereinstimmt.


-28801: Wrong class id (MaxDB: Meldungen)

-28801: Wrong class id

Erklärung:

Beim Zugriff auf ein Objekt wurde eine fehlerhafte Container-Identifikation verwendet.

Es handelt sich um einen liveCache-internen Fehler, der nicht durch fehlerhafte Handhabung des OMS API hervorgerufen werden kann.

Benutzerreaktion:

Verständigen Sie den Support.


-28802: Wrong object version (MaxDB: Meldungen)

-28802: Wrong object version

Erklärung:

Beim Sperren eines Objektes wurde festgestellt, dass das Objekt zwischenzeitlich bereits gelöscht und wiederverwendet wurde.

Dieser Fehler wird in eine OmsOutOfDate Exceptionübersetzt, kann aber als Fehler in der knldiag-Datei protokolliert werden.

Benutzerreaktion:

Verständigen Sie den Support.


-28803: Wrong object version (MaxDB: Meldungen)

-28803: Wrong object version

Erklärung:

Beim Zugriff auf ein Objektes wurde festgestellt, dass es zwischenzeitlich bereits gelöscht wurde. Dieser Fehler wird in eine OmsOutOfDate Exceptionübersetzt, kann aber als Fehler in der knldiag-Datei protokolliert werden.

Benutzerreaktion:

Verständigen Sie den Support.


-28804: Too old OID (MaxDB: Meldungen)

-28804: Too old OID

Erklärung:

Beim Dereferenzieren einer OID kann vom liveCache nicht entschieden werden, ob die OID jemals existierte.

Siehe auch Fehlermeldung –28815.

Dieser Fehler wird in eine OmsOutOfDate Exception übersetzt.

Benutzerreaktion:

Verständigen Sie den Support.


-28806: Nil page pointer (MaxDB: Meldungen)

-28806: Nil page pointer

Erklärung:

Das Container-Verzeichnis ist inkonsistent.

Es handelt sich um einen liveCache-internen Fehler, der nicht durch fehlerhafte Handhabung des OMS API hervorgerufen werden kann.

Benutzerreaktion:

Verständigen Sie den Support.


-28808: Hash not found (MaxDB: Meldungen)

-28808: Hash not found

Erklärung:

Ein B*Baum eines Keyed-Object-Containers konnte nicht gefunden werden.

Es handelt sich um einen liveCache-internen Fehler, der nicht durch fehlerhafte Handhabung des OMS API hervorgerufen werden kann.

Benutzerreaktion:

Verständigen Sie den Support.


-28810: Duplicate hash key (MaxDB: Meldungen)

-28810: Duplicate hash key

Erklärung:

Beim Einfügen in das globale Container-Verzeichnis wurde ein doppelter Eintrag festgestellt.

Es handelt sich um einen liveCache-internen Fehler, der nicht durch fehlerhafte Handhabung des OMS API hervorgerufen werden kann.

Benutzerreaktion:

Verständigen Sie den Support.


-28813: Unknown consistent version (MaxDB: Meldungen)

-28813: Unknown consistent version

Erklärung:

Es wird ein Zugriff auf ein Objekt in einer [image] Sicht versucht, die dem liveCache nicht mehr bekannt ist.

Es handelt sich um einen liveCache-internen Fehler, der nicht durch fehlerhafte Handhabung des OMS API hervorgerufen werden kann.

Benutzerreaktion:

Verständigen Sie den Support.


-28814: Object not found (MaxDB: Meldungen)

-28814: Object not found

Erklärung:

Es wurde eine nicht existierende OID dereferenziert.

Benutzerreaktion:

Verständigen Sie den Support.


-28815: Object history not found (MaxDB: Meldungen)

-28815: Object history not found

Erklärung:

Beim Dereferenzieren eines Objektes muss die [image] konsistente Sicht der Instanz aus dem Datenbereich des liveCache befriedigt werden, der die Before-Images von persistenten Objekten enthält.

Before-Images sind entsprechend ihrer Vergangenheit von alt nach neu sortiert.

Im Normalfall werden nur diejenigen Before-Images gelöscht, auf die keine konsistente Sicht mehr zugreifen wird.

In Ausnahmefällen müssen aufgrund von Speicherplatzproblemen auch Before-Images gelöscht werden, auf die prinzipell konsistente Sichten noch zugreifen können.

In diesen Fällen kann der liveCache die angeforderte Sicht der Instanz nicht mehr liefern.

Je älter die konsistente Sicht desto eher tritt in den genannten Ausnahmesituationen dieses Phänomen auf.

Benutzerreaktion:

Verständigen Sie den Support.


-28817: Wrong object length (MaxDB: Meldungen)

-28817: Wrong object length

Erklärung:

Ein Objekt passt nicht in den bereitgestellten Speicherplatz.

Es handelt sich um einen liveCache-internen Fehler, der nicht durch fehlerhafte Handhabung des OMS API hervorgerufen werden kann.

Benutzerreaktion:

Verständigen Sie den Support.


-28818: Wrong object position (MaxDB: Meldungen)

-28818: Wrong object position

Erklärung:

Eine OID enthält eine unzulässige Positionsangabe.

Benutzerreaktion:

Verständigen Sie den Support.


-28819: Object has been updated by other transactions (MaxDB: Meldungen)

-28819: Object has been updated by other transactions

Erklärung:

Eine Instanz vom Typ OmsOutOfDate wurde als DbpError aufgefangen.

Benutzerreaktion:

Verständigen Sie den Support.


-28823: Page already in use (MaxDB: Meldungen)

-28823: Page already in use

Erklärung:

Es wurde versucht, eine Seite zu benutzen, die bereits als belegt markiert ist.

Benutzerreaktion:

Benachrichtigen Sie Ihren lokalen Support.


-28826: Pagecounter inconsistent (MaxDB: Meldungen)

-28826: Pagecounter inconsistent

Erklärung:

Die Angaben für den Pagecounter auf der Rootpage des Object-Containerfile und im Object-Filedirectory sind nicht konsistent.

Dieser Fehler kann auftreten, wenn CHECK DATA ausgeführt wird.

Benutzerreaktion:

Benachrichtigen Sie Ihren lokalen Support.


-28828: Inconsistent information concerning “is container droppe (MaxDB: Meldungen)

-28828: Inconsistent information concerning “is container dropped”

Erklärung:

Die Angaben zu „is container dropped“ auf der Rootpage des Object-Containerfile und im Object-Filedirectory sind nicht konsistent.

Dieser Fehler kann auftreten, wenn CHECK DATA ausgeführt wird.

Benutzerreaktion:

Benachrichtigen Sie Ihren lokalen Support.


-28902: Too many nested try/catch statements (MaxDB: Meldungen)

-28902: Too many nested try/catch statements

Erläuterung:

In einer Datenbankprozedur sind maximal 16 ineinander geschachtelte TRY/CATCH-Blöcke erlaubt.

Benutzerreaktion:

Kodieren Sie die Datenbankprozedur so, dass die Obergrenze von 16 ineinander geschachtelten TRY/CATCH-Blöcken nicht überschritten wird.


-28903: DBFunction$1 must return a value (MaxDB: Meldungen)

-28903: DBFunction$1 must return a value

Erklärung:

Eine Datenbankfunktion enthält keine RETURN-Anweisung und liefert somit kein Ergebnis. Dies ist nicht zulässig.

Benutzerreaktion:

Erweitern Sie die Datenbankfunktion um eine RETURN-Anweisung.


-28822 bis -28999: Internal Error (MaxDB: Meldungen)

-28822 bis -28999: Internal Error

Erklärung:

Es handelt sich um liveCache-interne Systemfehler.

Benutzerreaktion:

Verständigen Sie den Support.


Von 0 bis 1999 (MaxDB: Meldungen)

Von 0 bis 1999

Rückmeldungen aus dem Datenbankkern

0 | Success
100 | Row not found
200 | Duplicate key
250 | Duplicate secondary key
300 | Integrity violation
320 | View violation
350 | Referential integrity violated
360 | Foreign key integrity violated
400 | Lock collision
500 | Lock request timeout
600 | Work rolled back
650 | Work rolled back
700 | Session inactivity timeout (work rolled back)
710 | Session terminated by shutdown (work rolled back)
750 | Too many SQL statements (work rolled back)
1403 | Row not found


0: Success (MaxDB: Meldungen)

0: Success

Erläuterung:

Die SQL-Anweisung wurde erfolgreich ausgeführt. Der gewünschte Effekt wurde hergestellt.

Benutzerreaktion:

Eine Benutzerreaktion ist nicht erforderlich.


100: Row not found (MaxDB: Meldungen)

100: Row not found

Erläuterung:

Es gibt keine (weitere) Tabellenzeile, die die Qualifikation erfüllt.

Benutzerreaktion:

Eine Benutzerreaktion ist nicht erforderlich.


200: Duplicate key (MaxDB: Meldungen)

200: Duplicate key

Erläuterung:

Es gibt bereits eine Tabellenzeile mit dem einzufügenden Schlüssel.

Benutzerreaktion:

Prüfen Sie, ob die bereits existierende Tabellenzeile die gewünschten Werte enthält. Ist das nicht der Fall, prüfen Sie, ob Werte in der bestehenden Tabellenzeile durch die gewünschten ersetzt werden können. Muss eine neue Tabellenzeile eingefügt werden, ist der Wert des einzufügenden Schlüssels in der SQL-Anweisung zu ändern, damit keine Schlüsselkollision auftritt.


250: Duplicate secondary key (MaxDB: Meldungen)

250: Duplicate secondary key

Erläuterung:

Es gibt bereits eine Tabellenzeile mit dem angegebenen Sekundärschlüssel. Für den Sekundärschlüssel ist UNIQUE spezifiziert.

Benutzerreaktion:

Damit keine Schlüsselkollision auftritt, ist der Wert des einzufügenden Sekundärschlüssels in der SQL-Anweisung zu ändern.

Der Fehlertext enthält die Angabe, für welche Spalte oder welchen mehrspaltigen Index die angegebenen Werte bereits existieren.


300: Integrity violation (MaxDB: Meldungen)

300: Integrity violation

Erläuterung:

Beim Einfügen oder Ändern wurden Integritätsbedingungen, die bei der Definition der Basistabelle bzw. der View-Tabelle spezifiziert wurden, verletzt.

Benutzerreaktion:

Der Fehlertext enthält die Angabe, für welche Spalte die Integritätsbedingungen verletzt wurden.

Der Eingabewert ist für die entsprechende Spalte zu korrigieren.


320: View violation (MaxDB: Meldungen)

320: View violation

Erläuterung:

Es wurde eine INSERT- oder UPDATE-Anweisung für eine View-Tabelle angegeben. Mindestens eine in der SQL-Anweisung angegebene Zeile erfüllt nicht die Suchbedingungen aller mit WITH CHECK OPTION definierten, zugrundeliegenden View-Tabellen.

Benutzerreaktion:

Sie können sich die Definition der View-Tabelle durch eine QUERY-Anweisung, angewandt auf die Systemtabelle DOMAIN.VIEWDEFS, anzeigen lassen. Ändern Sie die INSERT- oder UPDATE-Anweisung dieser Definition entsprechend.


350: Referential integrity violated (MaxDB: Meldungen)

350: Referential integrity violated

Erläuterung:

Eine der folgenden Ursachen ist möglich:

...

1. Bei der Einfügen in eine oder Ändern einer Tabelle, die referenzierende Tabelle in einer referentiellen CONSTRAINT-Definition ist, entsteht eine Zeile, die nicht Trefferzeile der CONSTRAINT-Definition ist.

2. Beim Löschen von Zeilen einer referenzierten Tabelle (referenced_table) einer referentiellen CONSTRAINT-Definition mit ON DELETE RESTRICT in der DELETE-Regel existiert eine Trefferzeile.

3. Bei der Ausführung einer referentiellen CONSTRAINT-Definition enthält die referenzierte Tabelle (referenced_table) oder referenzierende Tabelle Zeilen, die der CONSTRAINT-Definition widersprechen.

Benutzerreaktion:

...

1. Sie können sich die bei der referentiellen CONSTRAINT-Definition verwendete Definition durch eine QUERY-Anweisung, angewandt auf die Systemtabelle DOMAIN.FOREIGNKEYCOLUMNS, anzeigen lassen. Ändern Sie die INSERT- oder UPDATE-Anweisung dieser Definition entsprechend.

2. Sie können mit Hilfe einer geeigneten QUERY-Anweisung ermitteln, welche Zeile der referenzierenden Tabelle verhindert, dass die gewünschten Zeilen der referenzierten Tabelle (referenced_table) gelöscht werden können.

3. Sie können mit Hilfe einer geeigneten QUERY-Anweisung ermitteln, welche Zeile der referenzierten Tabelle (referenced_table) oder referenzierenden Tabelle der referentiellen CONSTRAINT-Definition widerspricht. Ändern oder löschen Sie diese, oder korrigieren Sie die CONSTRAINT-Definition.


360: Foreign key integrity violated (MaxDB: Meldungen)

360: Foreign key integrity violated

Erläuterung:

Bei der INSERT- oder UPDATE-Anweisung für eine Join-View-Tabelle widersprechen die von den referenzierenden Spalten (referencing_column) der referenzierenden Tabelle funktional abhängigen Spaltenwerte den bereits existierenden Spaltenwerten dieser Spalten.

Benutzerreaktion:

Ändern Sie die Spaltenwerte der Anweisung oder die bereits existierenden Werte, und lösen Sie so diesen Widerspruch auf.


400: Lock collision (MaxDB: Meldungen)

400: Lock collision

Erläuterung:

Bei der Angabe der Option (NOWAIT) in der LOCK-Anweisung oder in der LOCK-Option signalisiert diese Rückmeldung, dass die Sperranforderung mit den Sperren eines anderen Benutzers kollidiert.

Benutzerreaktion:

1. Im Dialog kann in dieser Situation ein anderer Verarbeitungsvorgang angestoßen werden, der die gewünschte Sperre nicht voraussetzt.

2. Alternativ dazu kann mit derselben SQL-Anweisung ohne Angabe der Option (NOWAIT) auf die Sperrfreigabe gewartet werden.


500: Lock request timeout (MaxDB: Meldungen)

500: Lock request timeout

Erläuterung:

1. Die Sperranforderung oder eine implizit angeforderte Sperre kollidiert mit Sperren eines anderen Benutzers. Die maximale Wartezeit auf die Zuteilung der Sperre (Datenbankparameter REQUEST_TIMEOUT) ist abgelaufen.

2. Die Datenbankinstanz konnte in einem bestimmten Zeitintervall nicht gestoppt werden, weil noch Transaktionen mit SQL-Anweisungen zum Ändern von Daten offen sind.

Benutzerreaktion:

3. In einigen Fällen enthält der Fehlertext noch eine genauere Beschreibung des Fehlers. Die Sperranforderung kann noch einmal abgesetzt werden. Es empfiehlt sich jedoch, die Transaktion mit einer ROLLBACK-Anweisung zurückzusetzen, um eventuelle Deadlock-Situationen aufzulösen.

4. Sie verzichten auf das Stoppen oder erzwingen das Abschalten der Datenbankinstanz mit der Option QUICK.


600: Work rolled back (MaxDB: Meldungen)

600: Work rolled back

Erläuterung:

Die Transaktion des Benutzers wurde implizit abgebrochen und durch eine implizite ROLLBACK-Anweisung zurückgesetzt, weil

1. der Benutzer innerhalb eines bestimmten Zeitintervalls keine Operationen durchführte, jedoch Sperren hielt, auf deren Zuteilung andere Benutzer warteten, oder

2. sich die Datenbankinstanz in einer Deadlock-Situation befand. Eine Deadlock-Situation ist eine Situation, in der zwei oder mehr Benutzer jeweils Sperren halten und weitere Sperren anfordern, die von den jeweils anderen Benutzern gehalten werden. Im einfachsten Fall mit zwei Benutzern hält der eine Benutzer mindestens eine Sperre und fordert eine andere an. Diese wird aber von einem anderen Benutzer gehalten, der wiederum auf die Sperre wartet, die der erste Benutzer hält. Diese Situation kann nur aufgelöst werden, wenn einer der Benutzer die schon erhaltene Sperre wieder freigibt.

Benutzerreaktion:

In einigen Fällen enthält der Fehlertext noch eine genauere Beschreibung des Fehlers.

In beiden Fällen sind die Sperranforderungen zu überprüfen und ggf. zu ändern. Die letzte Transaktion ist zu wiederholen.


650: Work rolled back (MaxDB: Meldungen)

650: Work rolled back

Erläuterung:

Die Transaktion des Benutzers wurde implizit abgebrochen und durch eine implizite ROLLBACK-Anweisung zurückgesetzt, weil der Log-Bereich voll ist.

Benutzerreaktion:

Der Fehlertext enthält eine genauere Beschreibung des Fehlers.

Sichern Sie den Log-Bereich (Log-Sicherung).


700: Session inactivity timeout (work rolled back) (MaxDB: Meldungen)

700: Session inactivity timeout (work rolled back)

Erläuterung:

Die Transaktion des Benutzers wurde implizit abgebrochen und durch eine implizite ROLLBACK-Anweisung zurückgesetzt. Die Datenbanksitzung wurde implizit beendet, weil der Benutzer während eines bestimmten Zeitintervalls (Datenbankparameter SESSION_TIMEOUT oder bei der CONNECT-Anweisung angegebener Timeout-Wert) keine Operationen durchgeführt hatte.

Benutzerreaktion:

Wiederholen Sie die CONNECT-Anweisung, wobei evtl. ein größerer Timeout-Wert angegeben werden sollte.

Überprüfen und ändern Sie gegebenenfalls auch den Wert des Datenbankparameters SESSION_TIMEOUT.


710: Session terminated by shutdown (work rolled back) (MaxDB: Meldungen)

710: Session terminated by shutdown (work rolled back)

Erläuterung:

Die Transaktion des Benutzers wurde implizit abgebrochen und durch eine implizite ROLLBACK-Anweisung zurückgesetzt. Die Datenbanksitzung wurde implizit beendet, weil parallel durch den Database Manager ein Shutdown der Datenbankinstanz erzwungen wurde. Um den später durchzuführenden Restart zu beschleunigen, wird durch das Datenbanksystem versucht, offene Transaktionen innerhalb eines kurzen zur Verfügung stehenden Zeitraumes zurückzusetzen und nicht nur abzubrechen.

Benutzerreaktion:

Nachdem die Datenbankinstanz wieder betriebsbereit ist, wiederholen Sie die CONNECT-Anweisung sowie die Transaktion.


750: Too many SQL statements (work rolled back) (MaxDB: Meldungen)

750: Too many SQL statements (work rolled back)

Erläuterung:

Die Transaktion des Benutzers wurde abgebrochen und durch eine implizite ROLLBACK-Anweisung zurückgesetzt. Die Datenbanksitzung wurde beendet, weil der Benutzer innerhalb einer Sitzung zu viele SQL-Anweisungen abgesetzt oder zu viele Transaktionen betrieben hat.

Benutzerreaktion:

Nach einer erneuten CONNECT-Anweisung können Sie die Transaktion wiederholen.


1403: Row not found (MaxDB: Meldungen)

1403: Row not found

Erläuterung:

Es gibt keine (weitere) Tabellenzeile, die die Qualifikation erfüllt.

Benutzerreaktion:

Eine Benutzerreaktion ist nicht erforderlich.


Von 25000 bis 25999 (MaxDB: Meldungen)

Von 25000 bis 25999

Rückmeldungen des Loader

25601 | Warning when downloading data; character string for the value NULL in the column will be truncated
25602 | Warning when downloading data; integer values of column may become to large for output
25603 | Warning when downloading data; literal will be truncated
25604 | Warning when downloading data; supernumerary specifications for the LONG data file will be ignored
25605 | Warning when downloading data; neither the header nor the record length was found in the data file or command. The <N> value that was calculated will be used as a record length
25606 | Warning when uploading data; different byte swap of source and target computer. Check LONG values
25607 | The USAGE value is too low and will be ignored
25608 | No restart file found. Upload will restart


25601: Warning when downloading data; character string for the v (MaxDB: Meldungen)

25601: Warning when downloading data; character string for the value NULL in the column will be truncated

Erläuterung:

Warnung beim Entladen von Daten mit dem DATAEXTRACT-Kommando.

Die Länge der Zeichenkette für den NULL-Wert übersteigt die definierte Ausgabelänge einer Spalte. Die Zeichenkette wird nicht vollständig ausgegeben.

Diese Warnung hat keinen Abbruch des Kommandos zur Folge.

Benutzerreaktion:

Es ist keine Benutzerreaktion notwendig.


25602: Warning when downloading data; integer values of column m (MaxDB: Meldungen)

25602: Warning when downloading data; integer values of column may become to large for output

Erläuterung:

Warnung beim Entladen von Daten mit dem DATAEXTRACT-Kommando.

Die für die Spalte definierte Ausgabelänge ist zu klein, um alle Werte vom Datentyp ganze Zahl auszugeben, die gemäß Definition der Spalte in der Datenbankinstanz möglich sind.

Diese Warnung hat keinen Abbruch des Kommandos zur Folge.

Benutzerreaktion:

Es ist keine Benutzerreaktion notwendig.


25603: Warning when downloading data; literal will be truncated (MaxDB: Meldungen)

25603: Warning when downloading data; literal will be truncated

Erläuterung:

Warnung beim Entladen von Daten mit dem DATAEXTRACT-Kommando.

Die Länge des Literals übersteigt die definierte Ausgabelänge für dieses Literal. Das Literal wird nicht vollständig ausgegeben.

Diese Warnung hat keinen Abbruch des Kommandos zur Folge.

Benutzerreaktion:

Es ist keine Benutzerreaktion notwendig.


25604: Warning when downloading data; supernumerary specificatio (MaxDB: Meldungen)

25604: Warning when downloading data; supernumerary specifications for the LONG data file will be ignored

Erläuterung:

Warnung beim Entladen von Daten mit dem DATAEXTRACT-Kommando, wenn LONG-Spalten entladen werden sollen.

Im Kommando wurden LONG-Datenströme angegeben, die keiner Spalte in der Spaltenliste des Kommandos zugeordnet werden können. Die überzähligen LONG-Datenströme werden beim Entladen der Daten ignoriert.

Diese Warnung hat keinen Abbruch des Kommandos zur Folge.

Benutzerreaktion:

Es ist keine Benutzerreaktion notwendig.


25605: Warning when downloading data; neither the header nor the (MaxDB: Meldungen)

25605: Warning when downloading data; neither the header nor the record length was found in the data file or command. The <N> value that was calculated will be used as a record length

Erläuterung:

Warnung beim Laden oder Aktualisieren von Daten aus binären Datenströmen mit den Kommandos FASTLOAD, DATALOAD oder DATAUPDATE.

Wenn die zu ladenden Daten mit dem Loader entladen wurden, enthält der binäre Datenstrom einen Header mit der Länge eines einzelnen Datensatzes im Datenstrom. Dieser Header wurde nicht gefunden. Auch im Kommando wurde die Länge eines einzelnen Datensatzes nicht definiert.

Deshalb berechnet der Loader die Satzlänge aus den im Kommando definiert Spaltenlängen.

Diese Warnung hat keinen Abbruch des Kommandos zur Folge.

Benutzerreaktion:

Es ist keine Benutzerreaktion notwendig.


25606: Warning when uploading data; different byte swap of sourc (MaxDB: Meldungen)

25606: Warning when uploading data; different byte swap of source and target computer. Check LONG values

Erläuterung:

Warnung beim Laden von Daten mit dem TABLELOAD-Kommando.

Die zu ladende Tabelle enthält LONG-Werte. Der Byte-Swap von Quell- und Zielrechner ist unterschiedlich. Deshalb können die LONG-Werte nach dem Laden falsch oder korrumpiert sein.

Diese Warnung hat keinen Abbruch des Kommandos zur Folge.

Benutzerreaktion:

Überprüfen Sie die LONG-Werte in der Datenbankinstanz nach dem Laden:

· Wenn sie fehlerfrei geladen wurden, ist keine weitere Benutzerreaktion notwendig.

· Wenn die LONG-Werte fehlerhaft sind, müssen sie erneut geladen werden.


25607: The USAGE value is too low and will be ignored (MaxDB: Meldungen)

25607: The USAGE value is too low and will be ignored

Erläuterung:

Warnung beim Laden von Daten mit dem FASTLOAD-Kommando.

Die zu ladende Tabelle ist in der Datenbankinstanz so definiert, dass ein einzelner Datensatz größer ist als der für USAGE angegebene Wert. Der Wert für USAGE wird deshalb vom Loader ignoriert.

Diese Warnung hat keinen Abbruch des Kommandos zur Folge.

Benutzerreaktion:

Es ist keine Benutzerreaktion erforderlich.


25608: No restart file found. Upload will restart (MaxDB: Meldungen)

25608: No restart file found. Upload will restart

Erläuterung:

Warnung beim Laden von Daten mit dem TABLELOAD ALL- oder TABLELOAD USER-Kommando.

Im Kommando wurde die Option RESTART angegeben. Der Loader findet die angegebene Restart-Datei nicht. Er beginnt den Ladevorgang noch einmal von vorn.

Diese Warnung hat keinen Abbruch des Kommandos zur Folge.

Benutzerreaktion:

Es ist keine Benutzerreaktion erforderlich.


Hintergrundwissen

In dieser Dokumentation finden Sie Hintergrundwissen zum Datenbanksystem MySQL MaxDB. Folgende Themen sind detailliert beschrieben:

· Logging

· Datenzugriff

· SQL-Optimierer

· High-Availability (Schattendatenbanken, Hot Standby und Erstellen einer homogenen Systemkopie)

· Performance

Einen allgemeinen Überblick über das Datenbanksystem MySQL MaxDB finden Sie in der Dokumentation Datenbankverwaltung.


Logging (MaxDB: Hintergrundwissen)

Logging

Das Datenbanksystem führt im normalen Betrieb ein Online-Logging durch. Das Online-Logging dient dazu, dass das Datenbanksystem transaktionskonsistent arbeiten kann und einzelne SQL-Anweisungen gegebenenfalls rückgängig machen und im Falle eines System-Crashes nachfahren kann (Verwendung der Log-Einträge bei Restart oder Wiederherstellung).

Bei liveCache-Datenbankinstanzen werden die Undo-Log-Einträge außerdem benötigt, damit Transaktionen ungesperrt konsistent lesen können.


Online-Logging (MaxDB: Hintergrundwissen)

Online-Logging

Das Logging im normalen Datenbankbetrieb (Betriebszustand ONLINE) wird als Online-Logging bezeichnet. Beim Online-Logging protokolliert das Datenbanksystem alle ändernden SQL-Anweisungen der Transaktionen, d. h. es werden Log-Einträge geschrieben.

Das Online-Logging lässt sich folgendermaßen unterteilen:

· Redo-Log-Verwaltung

· Undo-Log-Verwaltung

· History-Verwaltung (nur für liveCache-Datenbankinstanzen)

Das Online-Logging hat aktive Komponenten (Tasks) und passive Komponenten (Speichereinheiten).

 | aktive Komponenten | passive Komponenten
Redo-Log-Verwaltung | User-Tasks, die Transaktionen ausführen Log-Writer | Log-Warteschlange Log-Bereich
Undo-Log-Verwaltung | User-Tasks | Undo-Log-Datei
History-Verwaltung | User-Tasks Garbage-Collectoren | History-Datei


Redo-Log-Verwaltung (MaxDB: Hintergrundwissen)

Redo-Log-Verwaltung

In der Redo-Log-Verwaltung werden die Redo-Log-Einträge für Transaktionen geschrieben und verwaltet.

Für sehr spezielle Situationen können Sie die Redo-Log-Verwaltung zeitweise ausschalten.

Redo-Log-Einträge werden immer dann geschrieben, wenn eine User-Task eine ändernde Transaktion ausführt.

1. Die User-Task, die eine Transaktion ausführt, reserviert in der Log-Warteschlange Hauptspeicherplatz und schreibt dann den Redo-Log-Eintrag für ihre Transaktion in eine Log-Seite des zuvor reservierten Bereichs.

2. Die User-Task gibt den reservierten Bereich der Log-Warteschlange für die Bearbeitung durch den Log-Writer frei. Sie teilt dem Log-Writer mit, ob sie auf das Schreiben der entsprechenden Log-Seite aus der Log-Warteschlange in den Log-Bereich warten möchte; dies ist für COMMIT- und ROLLBACK-Vorgänge immer erforderlich.

3. Der Log-Writer liest die Redo-Log-Einträge aus der Log-Warteschlange

4. Der Log-Writer schreibt die Redo-Log-Einträge als Log-Seite in den Log-Bereich.

5. Falls die User-Task auf das Schreiben des Redo-Log-Eintrags wartet, weckt der Log-Writer sie nach dem Schreiben auf und teilt ihr die Log-Sequenznummer mit.

Die Redo-Log-Verwaltung legt auch die Datenbankparameter und andere interne Informationen, die das Logging steuern, im Log-Bereich ab und aktualisiert sie regelmäßig.

Die Redo-Log-Verwaltung spielt außerdem in folgenden Fällen eine Rolle:

· Bei einer Log-Sicherung erfragt die Redo-Log-Verwaltung, ob und wie viele Einträge aus dem Log-Bereich gesichert werden müssen.

· Für Monitoranzeigen erfragt die Redo-Log-Verwaltung Informationen über Wartezustände und Art der Zugriffe auf die Einträge in der Log-Warteschlange.

Siehe auch:

Log-Einstellungen

Verwendung der Log-Einträge bei Restart oder Wiederherstellung


Redo-Log-Eintrag (MaxDB: Hintergrundwissen)

Redo-Log-Eintrag

REDO (Nachfahren) einer Transaktion bedeutet, dass die Änderungen einer erfolgreichen Transaktion wiederholt werden. Die Datenbank wird in den konsistenten Zustand versetzt, den sie nach dem Ende der Transaktion hatte.

Die Informationen, die für das REDO benötigt werden, speichert das Datenbanksystem in den Redo-Log-Einträgen (auch als After-Image-Einträge bezeichnet). Die Redo-Log-Einträge werden erst mit dem COMMIT der Transaktion dauerhaft im Log-Bereich abgelegt.

Siehe auch:

Verwendung der Log-Einträge bei Restart oder Wiederherstellung

Undo-Log-Eintrag


Log-Warteschlange (MaxDB: Hintergrundwissen)

Log-Warteschlange

Der Hauptspeicherbereich, in dem Redo-Log-Einträge der Transaktionen abgelegt werden, wird Log-Warteschlange genannt. Sie können die Größe der Log-Warteschlange über den speziellen Datenbankparameter LOG_IO_QUEUE konfigurieren.


Log-Seiten (MaxDB: Hintergrundwissen)

Log-Seiten

Log-Seiten sind die Hauptspeichereinheiten, die von der Redo-Log-Verwaltung verwendet werden. Sie haben eine Größe von 8 KB.

Eine User-Task schreibt ihre Redo-Log-Einträge in die Log-Seiten der Log-Warteschlange. Jede Log-Seite bekommt dabei eine Log-Warteschlange-Sequenznummer, die den Zeitpunkt des Schreibens des Redo-Log-Eintrags in die Log-Warteschlange festhält.

Die Log-Seiten werden dann später vom Log-Writer in den Log-Bereich geschrieben. Log-Seiten der Log-Warteschlange, die beim Schreiben noch nicht voll waren, verbleiben in der Log-Warteschlange, werden weiter gefüllt und werden bei einem erneuten Schreibvorgang wieder in den Log-Bereich geschrieben. Der Log-Writer ist so konfiguriert, dass er ein und dieselbe Log-Seite immer auf den gleichen physikalischen Platz im Log-Bereich schreibt.

Wenn der Log-Writer eine Log-Seite aus der Log-Warteschlange in den Log-Bereich schreibt, gibt er ihr eine Log-Sequenznummer und einen Zeitstempel. Anhand der Log-Sequenznummern kann die eindeutige Reihenfolge der Log-Seiten im Log-Bereich ermittelt werden. Der Zeitstempel wird benötigt, um die Datenbank in den Zustand zu einem bestimmten Zeitpunkt wiederherzustellen.


Log-Writer (MaxDB: Hintergrundwissen)

Log-Writer

Der Log-Writer ist eine aktive Komponente der Redo-Log-Verwaltung. Er gehört zum User-Kernel-Thread. Aufgabe des Log-Writers ist es, Log-Seiten aus der Log-Warteschlange in den Log-Bereich zu schreiben.

Der Log-Writer wird in folgenden Fällen aktiv:

· eine Log-Seite ist voll

· COMMIT- oder ROLLBACK-Transaktion

Nachdem der Log-Writer Log-Seiten in den Log-Bereich geschrieben hat, weckt er die User-Tasks, die auf das Schreiben ihrer Redo-Log-Einträge gewartet haben.

Der Log-Writer überprüft regelmäßig den Zustand des Log-Bereichs. Wenn der Log-Bereich voll ist, sperrt der Log-Writer die Log-Warteschlange. Das bedeutet, dass alle Transaktionen, die Redo-Log-Einträge in die Log-Warteschlange eintragen wollen, angehalten werden.

Der Log-Writer wird beim Start des Datenbanksystems anhand dauerhaft abgelegter interner Konfigurationsinformationen initialisiert. Die Konfigurationsinformationen werden in regelmäßigen Abständen, insbesondere auch bei einem Savepoint, in den Log-Bereich geschrieben.

Wenn die automatische Log-Sicherung aktiviert ist, sorgt der Log-Writer dafür, dass die Redo-Log-Einträge aus dem Log-Bereich automatisch gesichert werden. Wenn eine gewisse Menge an Log-Einträgen geschrieben wurde, werden die Verwaltungsinformationen in den Log-Bereich kopiert und gegebenenfalls Savepoints angefordert. Wenn ein Restart durchgeführt werden muss, verkürzt sich dadurch die Restartzeit.


Undo-Log-Verwaltung (MaxDB: Hintergrundwissen)

Undo-Log-Verwaltung

In der Undo-Log-Verwaltung werden die Undo-Log-Einträge für Transaktionen geschrieben und verwaltet. Mit Hilfe der Undo-Log-Einträge kann das Datenbanksystem einen transaktionskonsistenten Datenbankzustand wiederherstellen, der dem Zustand zum Zeitpunkt des letzten Savepoints entspricht.

Eine User-Task schreibt immer dann Undo-Log-Einträge, wenn sie ändernde SQL-Anweisungen ausführt. Sie legt die Undo-Log-Einträge in ihrer Undo-Log-Datei ab.

Siehe auch:

Verwendung der Log-Einträge bei Restart oder Wiederherstellung


Undo-Log-Eintrag (MaxDB: Hintergrundwissen)

Undo-Log-Eintrag

UNDO (Rollback) einer Transaktion bedeutet, dass die Transaktion rückgängig gemacht wird. Die Datenbank wird in den konsistenten Zustand versetzt, den sie vor Beginn der Transaktion hatte.

Für das UNDO werden für jede Transaktion die ursprünglichen, also die vor Beginn der Transaktion vorliegenden Werte derjenigen Datenbankobjekte gespeichert, die von der Transaktion geändert werden sollen. Diese Informationen werden als Undo-Log-Einträge (oder Before-Image-Einträge) bezeichnet.

Bevor eine ändernde SQL-Anweisung ausgeführt wird, werden die Undo-Log-Einträge in einer Undo-Log-Datei im Datenbereich abgelegt. Jede Transaktion kann jederzeit auf ihre Undo-Log-Einträge zugreifen.

liveCache-Datenbankinstanzen verwenden Undo-Log-Einträge zusätzlich dazu, um ungesperrt konsistent lesen zu können. Sie benötigen die Undo-Log-Einträge auch nach dem Ende der zugehörigen Transaktion noch so lange, bis alle anderen Transaktionen, die auf dieselben Objekte wie die beendete Transaktion zugreifen, ebenfalls abgeschlossen sind. Deswegen werden bei liveCache-Datenbankinstanzen die Undo-Log-Einträge nach dem Ende der zugehörigen Transaktion an die History-Verwaltung übergeben.

Siehe auch:

Redo-Log-Eintrag

Verwendung der Log-Einträge bei Restart oder Wiederherstellung


Undo-Log-Datei (MaxDB: Hintergrundwissen)

Undo-Log-Datei

Undo-Log-Dateien enthalten die Undo-Log-Einträge, die von den User-Tasks für ändernde SQL-Anweisungen angelegt werden. Jeder Undo-Log-Eintrag in einer Undo-Log-Datei erhält eine Undo-Log-Sequenznummer, beginnend mit 0.

Undo-Log-Dateien werden im Datenbereich abgelegt.

Die Ablage der Undo-Log-Dateien im Datenbereich kann im Extremfall zu einem vollen Datenbereich führen. Erweitern Sie in diesem Fall den Datenbereich.

Undo-Log-Dateien werden folgendermaßen gelöscht:

· MySQL MaxDB: Am Ende einer Transaktion werden die Undo-Log-Dateien von der User-Task der Transaktion gelöscht.

· SAP liveCache: Am Ende einer Transaktion werden die Undo-Log-Dateien an die History-Verwaltung übergeben, da sie für das ungesperrte konsistente Lesen erforderlich sind. Sie werden zu einem späteren Zeitpunkt vom Garbage-Collector gelöscht.


History-Verwaltung (liveCache) (MaxDB: Hintergrundwissen)

History-Verwaltung (liveCache)

Die History-Verwaltung ist dafür zuständig, Undo-Log-Dateien zwischenzuspeichern und sie später endgültig zu löschen. Sie dient dazu, dass Transaktionen ungesperrt konsistent lesen können.

Nur SAP liveCache-Instanzen haben eine History-Verwaltung. Konsistentes Lesen für OLTP-Instanzen kann über eine geeignete Wahl des Isolation-Level ermöglicht werden.

Bevor eine User-Task in einer Transaktion eine ändernde SQL-Anweisung ausführt, schreibt sie Undo-Log-Einträge in eine Undo-Log-Datei. Diese Undo-Log-Dateien werden bei OLTP-Datenbankinstanzen nach Ende der Transaktion gelöscht, bei liveCache-Datenbankinstanzen übergibt die User-Task sie jedoch an die History-Verwaltung.

...

1. Nach dem Ende einer Transaktion schreibt die User-Task einen Verweis auf ihre Undo-Log-Datei in eine History-Datei.

2. Wenn keine Anwendung mehr auf die Daten zugreifen muss, deren Änderungen in der Undo-Log-Datei gespeichert sind, liest der Garbage-Collector den Speicherort dieser Undo-Log-Datei aus der History-Datei und löscht den entsprechenden Verweis in der History-Datei.

3. Der Garbage-Collector löscht die Undo-Log-Datei und gegebenenfalls endgültig alle Datensätze, die von der User-Task als gelöscht markiert wurden.

Siehe auch:

Verwendung der Log-Einträge bei Restart oder Wiederherstellung

Beispiel: Daten ungesperrt konsistent lesen


History-Datei (liveCache) (MaxDB: Hintergrundwissen)

History-Datei (liveCache)

History-Dateien sind datenbankinterne Dateien, die Verweise auf die Undo-Log-Dateien beendeter Transaktionen enthalten. In den History-Dateien steht, welche Undo-Log-Datei zu welcher beendeten Transaktion gehört.

History-Dateien werden nur von liveCache-Datenbankinstanzen verwendet.

Die initialen History-Dateien werden beim Erzeugen der Datenbankinstanz im Datenbereich angelegt. Bei jedem Savepoint werden die aktualisierten History-Dateien in den Datenbereich gesichert.

Aus Performance-Gründen sind immer mehrere History-Dateien parallel offen. Die Anzahl der History-Dateien wird vom Datenbanksystem aus dem allgemeinen Datenbankparameter MAXUSERTASKS berechnet.


Garbage-Collector (liveCache) (MaxDB: Hintergrundwissen)

Garbage-Collector (liveCache)

Die Garbage-Collectoren sind aktive Komponenten der History-Verwaltung. Sie gehören zu den User-Kernel-Threads. Aufgabe der Garbage-Collectoren ist es, nicht mehr benötigte Undo-Log-Dateien und die dazugehörigen Datenbankobjekte endgültig zu löschen. Die Garbage-Collectoren ermöglichen ein ungesperrtes, konsistentes Lesen.

Nur SAP liveCache-Instanzen verwenden Garbage-Collectoren.

Die Garbage-Collectoren werden beim Start des Datenbanksystems anhand dauerhaft abgelegter interner Konfigurationsinformationen initialisiert.

Die History-Verwaltung startet Garbage-Collectoren immer dann, wenn eine konsistente Sicht beendet wird. Die hierzu notwendigen Informationen werden von der Sperrverwaltung geliefert. Ein Garbage-Collector arbeitet die History-Datei, die ihm von der History-Verwaltung zugewiesen wurde, sequentiell ab.

Der Garbage-Collector fragt die History-Verwaltung, welche Undo-Log-Dateien aus der ihm zugewiesenen History-Datei gelöscht werden dürfen; hierfür stellt die History-Verwaltung eine Anfrage an die Sperrverwaltung, die wiederum überprüft, ob die zugehörigen Transaktionen noch in irgendeiner Sicht auftauchen.


Beispiel: Daten ungesperrt konsistent lesen (liveCache) (MaxDB: Hintergrundwissen)

Beispiel: Daten ungesperrt konsistent lesen (liveCache)

Undo-Log-Einträge werden von liveCache-Datenbankinstanzen dafür verwendet, dass mehrere Transaktionen gleichzeitig auf denselben Datensatz zugreifen und ihn konsistent lesen können, ohne dass der Datensatz für eine der Transaktionen gesperrt werden muss.

...

1. Transaktion T1 liest in einer Tabelle den Datensatz 4711 zum ersten Mal. Transaktion T1 sperrt den Datensatz nicht.

2. Transaktion T2 ändert den Datensatz 4711 und wird mit einem COMMIT beendet.

3. Transaktion T1 liest erneut den Datensatz 4711.

4. Transaktion T1 prüft in der History-Datei, ob seit dem ersten Lesen eine andere Transaktion den Datensatz 4711 geändert hat.

Falls ja, greift Transaktion T1 auf die Undo-Log-Einträge der Transaktion T2 zurück, um für das zweite Lesen dasselbe Ergebnis wie für das erste Lesen zu erhalten. Ohne Undo-Log-Einträge würde Transaktion T1 für das erste und zweite Lesen von Datensatz 4711 unterschiedliche Ergebnisse erhalten.

5. Erst wenn Transaktion T1 mit einem COMMIT beendet wird, löschen die Garbage-Collectoren die Undo-Log-Einträge von Transaktion T2.

Nur liveCache-Datenbankinstanzen können auf diese Weise ungesperrt konsistent lesen. Bei OLTP-Instanzen müsste der Datensatz 4711 so lange gesperrt werden, bis Transaktion T1 beendet ist. Dies ist über eine entsprechende Wahl des Isolation-Level möglich.


Verwendung der Log-Einträge bei Restart oder Wiederherstellung (MaxDB: Hintergrundwissen)

Verwendung der Log-Einträge bei Restart oder Wiederherstellung

Bei einem Restart oder einer Wiederherstellung werden die Log-Einträge benutzt, um den letzten konsistenten Zustand der Datenbankinstanz wiederherzustellen.

Restart und Wiederherstellung bestehen aus zwei Phasen:

· Auswerten der Log-Informationen

· Nachfahren der Transaktionen

Diese Phasen umfassen jeweils aktive Komponenten (Tasks) und passive Komponenten (Speichereinheiten).

 | aktive Komponenten | passive Komponenten
Auswerten der Log-Informationen | Redo-Log-Manager Log-Leser | Redo-Log-Datei Redo-Liste
Nachfahren der Transaktionen | Redo-Tasks |

Siehe auch:

Beispiel: Restart


Ermitteln der Informationen für das Nachfahren der Transaktionen (MaxDB: Hintergrundwissen)

Ermitteln der Informationen für das Nachfahren der Transaktionen

Wenn es zu einem System-Crash kommt, muss ein Restart oder eine Wiederherstellung der Datenbank durchgeführt werden. Hierfür ermittelt das Datenbanksystem zunächst alle Informationen für das Nachfahren derjenigen Transaktionen, die seit dem letzten Savepoint ausgeführt wurden.

...

1. Der Redo-Log-Manager startet den Log-Leser.

2. Der Log-Leser liest die Transaktionsdatei, die beim letzten Savepoint abgelegt wurde.

3. Der Log-Leser erzeugt anhand der Transaktionsdatei die Transaktionsliste neu.

4. Für Transaktionen, die nach dem letzten Savepoint gestartet wurden, erfragt der Log-Leser bei der Redo-Log-Verwaltung oder beim Backup-Manager die erforderlichen Redo-Log-Einträge und schreibt diese aus dem Log-Bereich in eine Redo-Log-Datei.

5. Dann trägt der Log-Leser diese Transaktionen in die Redo-Liste ein.


Redo-Log-Manager (MaxDB: Hintergrundwissen)

Redo-Log-Manager

Der Redo-Log-Manager sorgt bei einem Restart oder einer Wiederherstellung dafür, dass die erforderlichen Redo-Log-Einträge zur Verfügung gestellt und in der zeitlich korrekten Reihenfolge abgearbeitet werden.

Der Redo-Log-Manager startet den Log-Leser und die Redo-Tasks.


Log-Leser (MaxDB: Hintergrundwissen)

Log-Leser

Der Log-Leser ist eine aktive Komponente bei einem Restart oder einer Wiederherstellung. Er ist eine Server-Task.

Der Log-Leser ermittelt alle Informationen, die für einen Restart oder eine Wiederherstellung notwendig sind, und erstellt die notwendigen Dateien und Listen zum Nachfahren der Transaktionen.


Transaktionsdatei (MaxDB: Hintergrundwissen)

Transaktionsdatei

Die Transaktionsdatei ist eine datenbankinterne Datei, in bei einem Savepoint die Daten aller offenen Transaktionen geschrieben werden. Die Transaktionsdatei wird im Datenbereich abgelegt.

Bei einem Restart oder einer Wiederherstellung erzeugt der Log-Leser anhand dieser Transaktionsdatei die Transaktionsliste neu.


Transaktionsliste (MaxDB: Hintergrundwissen)

Transaktionsliste

Die Transaktionsliste ist eine datenbankinterne Liste aller offenen Änderungstransaktionen. Die Transaktionsliste befindet sich im Hauptspeicher.

Alle Änderungstransaktionen sind über diese Transaktionsliste global in der Datenbank verfügbar. Für jede Transaktion befindet sich in der Transaktionsliste ein Transaktionseintrag, der unter anderem Verweise auf eventuell vorhandene Redo-Log-Einträge und Undo-Log-Einträge enthält.

Die Transaktionsliste wird bei einem Restart oder einer Wiederherstellung vom Log-Leser aus der Transaktionsdatei neu erzeugt.


Redo-Log-Datei (MaxDB: Hintergrundwissen)

Redo-Log-Datei

Redo-Log-Dateien enthalten die Redo-Log-Einträge von Transaktionen, die beim letzten Savepoint noch nicht beendet waren und bei einem Restart oder einer Wiederherstellung nachgefahren werden müssen.

Redo-Log-Dateien sind datenbankinterne Speicherstrukturen, die im Datenbereich abgelegt werden.


Redo-Liste (MaxDB: Hintergrundwissen)

Redo-Liste

Die Redo-Liste ist eine datenbankinterne Liste von Transaktionen, die initial vom Redo-Log-Manager angelegt wird. Sie befindet sich im Hauptspeicher.

Die Redo-Liste ergänzt die Transaktionsliste. In der Redo-Liste sind diejenigen Transaktionen und die Reihenfolge ihrer Ausführung aufgeführt, die nach dem letzten Savepoint gestartet wurden und bei einem Restart oder einer Wiederherstellung wiederholt werden müssen.

Der Log-Leser ermittelt die Transaktionen, die in die Redo-Liste eingetragen werden müssen, auf folgende Weise:

· Wenn Transaktionen in der Transaktionsliste zum Zeitpunkt des Savepoints als beendet markiert sind, trägt der Log-Leser diese Transaktionen sofort in die Redo-Liste ein.

· Für jede weitere in den Redo-Log-Einträgen gefundene Transaktion legt der Log-Leser eine Redo-Log-Datei an. Wenn ein COMMIT oder ein ROLLBACK für die gesamte Transaktion gefunden wird, trägt der Log-Leser die Transaktion in die Redo-Liste ein. Wenn ein ROLLBACK innerhalb einer Transaktion gefunden wird, entfernt der Log-Leser die entsprechenden Redo-Log-Einträge aus der Redo-Log-Datei, um ein unnötiges Abarbeiten dieser Log-Einträge zu vermeiden.

· Wenn nach dem Lesen aller Redo-Log-Einträge nicht abgeschlossene Transaktionen gefunden werden, dann versieht der Log-Leser diese Transaktionen mit einem ROLLBACK und trägt sie in die Redo-Liste ein. Im weiteren Verlauf werden diese Transaktionen wie ROLLBACK-Transaktionen verarbeitet.


Nachfahren der Transaktionen (MaxDB: Hintergrundwissen)

Nachfahren der Transaktionen

Nachdem alle notwendigen Informationen ermittelt wurden, können die Transaktionen nachgefahren werden.

...

1. Der Redo-Log-Manager startet die User-Tasks der Transaktionen aus der Transaktionsliste neu.

2. Der Redo-Log-Manager startet die Redo-Tasks. Die Redo-Tasks werten die Redo-Liste aus. Dann lesen sie die erforderlichen Redo- und Undo-Log-Einträge für die in der Redo-Liste aufgeführten Transaktionen ein und führen danach diese Transaktionen aus.


Redo-Task (MaxDB: Hintergrundwissen)

Redo-Task

Redo-Tasks sind aktive Komponenten bei einem Restart oder einer Wiederherstellung. Sie sind Server-Tasks. Die Redo-Tasks führen diejenigen Transaktionen aus, die für den Restart oder die Wiederherstellung wiederholt werden müssen. Hierbei gehen sie wie folgt vor.

COMMIT-Transaktionen

...

1. Die Redo-Tasks suchen in der Redo-Liste nach Transaktionen, die mit einem COMMIT abgeschlossen wurden und daher bereit sind, wiedereingelesen zu werden. Die Transaktionen sind in der Redo-Liste nach der Log-Sequenznummer ihres COMMIT sortiert.

2. Die Redo-Task beginnt mit der Abarbeitung der Transaktion mit der kleinsten COMMIT-Log-Sequenznummer. Die zu dieser Transaktion gehörende Redo-Log-Datei wird der Reihe nach abgearbeitet. Ein Redo-Log-Eintrag dieser Redo-Log-Datei mit einer höheren Log-Sequenznummer als die kleinste COMMIT-Log-Sequenznummer darf nicht bearbeitet werden. Die Redo-Task wartet in diesem Fall auf das COMMIT der entsprechenden anderen Transaktion. Erst danach kann die Abarbeitung der Redo-Log-Datei durch die Redo-Task fortgesetzt werden. Durch diesen Mechanismus wird die Datenkonsistenz sichergestellt.

3. Wenn eine COMMIT-Transaktion komplett bearbeitet wurde, löscht die Redo-Task die Redo-Log-Datei und, wenn es sich um eine OLTP-Instanz handelt, auch die Undo-Log-Datei der Transaktion; bei liveCache-Instanzen wird die Undo-Log-Datei der History-Verwaltung übergeben. Die Transaktion wird aus der Redo-Liste entfernt.

ROLLBACK-Transaktionen

...

1. Die Redo-Tasks suchen in der Redo-Liste nach Transaktionen, die mit einem ROLLBACK abgeschlossen wurden.

2. Die Redo-Tasks löschen die entsprechenden Redo-Log-Dateien. Dadurch wird ein unnötiges Nachfahren der Transaktionen vermieden.

3. Wenn der Beginn einer ROLLBACK-Transaktion vor dem Savepoint lag, wertet die Redo-Task die Undo-Log-Datei der Transaktion aus, um die Transaktion auf den Stand vor dem Savepoint zu bringen. Wenn die ROLLBACK-Transaktion komplett bearbeitet wurde, löscht die Redo-Task die Undo-Log-Datei der Transaktion. Wenn der Beginn einer ROLLBACK-Transaktion nach dem Savepoint lag, bearbeitet die Redo-Task die Transaktion nicht weiter.

Siehe auch:

Beispiel: Restart


Beispiel: Restart (MaxDB: Hintergrundwissen)

Beispiel: Restart

Wegen eines Datenbankabsturzes (Crash) muss ein Restart durchgeführt werden. Die Datenbankinstanz wird beginnend ab dem Zeitpunkt des letzten Savepoint wiederhergestellt.

Die folgende Abbildung zeigt, wie unterschiedliche Transaktionen bei einem Restart behandelt werden.

Transaktion | Erforderliche Wiederherstellungsmaßnahmen
T1 | Keine Wiederherstellungsmaßnahmen erforderlich. Die Änderungen der Transaktion T1 wurden vollständig durch den letzten Savepoint vor dem Absturz festgeschrieben.
T2, T3 | Keine Wiederherstellungsmaßnahmen erforderlich. Allerdings müssen die vor dem Savepoint erfolgten Änderungen rückgängig gemacht werden. Daher werten die Redo-Tasks die entsprechenden Undo-Log-Dateien aus.
T5 | Keine Wiederherstellungsmaßnahmen erforderlich. Die Änderungen von T5 wurden vor dem Absturz zurückgerollt und noch nicht im Datenbereich abgelegt.
T4, T6 | Der Log-Leser legt die Redo-Log-Dateien und entsprechende Einträge in der Redo-Liste an. Für diese Transaktionen lesen die Redo-Tasks die erforderlichen Redo-Log-Einträge ein.


Savepoint bei Restart (MaxDB: Hintergrundwissen)

Savepoint bei Restart

Auch während eines Restarts werden Savepoints geschrieben, um ein Redo vom Redo zu ermöglichen. Hierbei werden die Positionen des Log-Lesers und der Zustand aller offenen Redo-Transaktionen in den Datenbereich gesichert. Mit Hilfe dieser Savepoints kann ein abgebrochener Restart dort fortgesetzt werden, wo er abgebrochen wurde.

Siehe auch:

Redo-Log-Verwaltung


Datenzugriff (MaxDB: Hintergrundwissen)

Datenzugriff

Das Datenbanksystem verwendet die folgenden logischen Strukturen, um Daten zu speichern:

· Primärtabellen (mit Primärschlüssel und Sekundärschlüssel)

· Sekundärschlüsseltabellen

· B*-Bäume

B*-Bäume werden für Primärtabellen und Sekundärschlüsseltabellen aufgebaut (B*-Bäume für Tabellen). Für Tabellen mit LONG-Spalten (Datentyp LONG, auch als BLOBs = Binary Large Objects bezeichnet) findet eine spezielle Datenverarbeitung über entsprechende B*-Bäume statt.

Das Datenbanksystem führt einen automatischen Belegungsausgleich durch und macht dadurch manuelle Reorganisationen der Daten überflüssig. Der Datenbereich kann online erweitert werden.

Um effizient auf Daten zuzugreifen, verwendet das Datenbanksystem folgende Strategien:

· Tabellenzugriff (SELECT) über einen B*-Baum

· Tabellenzugriff (INSERT) über einen B*-Baum

· Tabellenzugriff (UPDATE) über einen B*-Baum

· Tabellenzugriff (DELETE) über einen B*-Baum


Begriffe (MaxDB: Hintergrundwissen)

Begriffe

· B*-Baum

· Primärschlüssel

· Sekundärschlüssel

· Tabellenzugriff

· Tabellen-ID


B*-Baum (MaxDB: Hintergrundwissen)

B*-Baum

Die meisten Daten einer Datenbank werden in Strukturen gespeichert, die als B*-Bäume bezeichnet werden. Das Datenbanksystem kann auf die Zeilen einer Tabelle über B*-Bäume weitaus effizienter zugreifen als mit anderen Methoden wie z. B. einer sequentiellen Suche.

Ein B*-Baum umfasst mehrere Ebenen: von der oberen Wurzelebene über mehrere Indexebenen bis hin zur niedrigsten Ebene, der Blattebene. Die Speichereinheiten, in denen die Daten abgelegt werden, heißen Seiten.

Sortierkriterium für den Aufbau eines B*-Baumes ist der Primärschlüssel. Alle Vergleiche in einem B*-Baum verwenden ASCII-Code. Die Vergleiche werden für alle Werte auf Zeichenbasis durchgeführt.

Siehe auch:

· Wurzel-/Indexseite

· Blattseite

· Tabellenzugriff

· B*-Bäume für Tabellen


Wurzel-/Indexseite (MaxDB: Hintergrundwissen)

Wurzel-/Indexseite

Einträge in Wurzel- und Indexseiten in einem B*-Baum enthalten zwei Bereiche.

· Erster Bereich: Dieser Bereich enthält ein initiales Segment der Schlüsselfelder einer Tabellenzeile. Er wird als Separator bezeichnet. Das Datenbanksystem verwendet nur den signifikanten Teil des Primärschlüssels, der zur Unterscheidung zwischen den Folgeeinträgen benötigt wird. So wird der von diesen Seiten benötigte Speicherplatz minimiert.

Der erste Separator in der äußersten linken Seite pro Ebene (einschließlich der Wurzelebene) enthält nur den Zeiger auf die äußerste linke Seite auf der nächstunteren Ebene.

Die durchschnittliche Länge der Separatoren hängt von der Struktur und Selektivität des Primärschlüssels ab. Wenn sehr viele Schlüsselfelder ausgewertet werden müssen, um die Einträge (Sätze) voneinander unterscheiden zu können, die Merkmale in den vorderen Schlüsselfeldern aber häufig gleich sind, so hat dies längere Separatoren zur Folge.

· Zweiter Bereich: Dieser Bereich enthält die logische Adresse einer Seite auf einer niedrigeren Indexebene oder auf Blattebene. Die Anzahl der Einträge in diesem Bereich hängt von der Länge der Separatoren ab.


Blattseite (MaxDB: Hintergrundwissen)

Blattseite

Blattseiten in einem B*-Baum enthalten den Inhalt von Tabellenzeilen, d.h. die Anwendungsdaten. Die Anzahl der Einträge in einer Blattseite hängt von der Gesamtlänge der Tabellenzeilen ab.

Die Blattseiten im B*-Baum werden in aufsteigender Reihenfolge von links nach rechts sortiert. Anders ausgedrückt: Jede Blattseite enthält nur die Tabellenzeilen, die in ihren Sortierbereich passen.

Die Tabellenzeilen liegen im ersten Bereich (Datenbereich) der Blattseite. Die Zeilen im Datenbereich werden standardmäßig nicht sortiert. Der letzte Bereich der Blattseite enthält eine Positionsliste mit Adressen, die auf die entsprechenden Tabellenzeilen innerhalb der Blattseite zeigen. Diese Positionsliste ist immer aufsteigend sortiert.

Der für die Speicherung der gesamten Tabelle erforderliche Speicherplatz hängt von der Länge der Separatoren und von der Gesamtlänge der Tabellenzeilen ab.


Primärschlüssel (MaxDB: Hintergrundwissen)

Primärschlüssel

Jede Datenbanktabelle hat einen Primärschlüssel. Der Primärschlüssel wird entweder vom Datenbankbenutzer definiert oder intern generiert. Ein benutzerdefinierter Primärschlüssel kann aus mehreren Spalten bestehen.


Sekundärschlüssel (MaxDB: Hintergrundwissen)

Sekundärschlüssel

Für jede Tabelle können Sekundärschlüssel definiert werden, um den Datenzugriff über SQL-Anweisungen zu optimieren. Sie können sich auf eine beliebige Spaltenkombination beziehen und tragen dazu bei, ein sequentielles Durchsuchen der Tabelle zu vermeiden. Wie der Primärschlüssel kann auch der Sekundärschlüssel aus mehreren Spalten bestehen.

Ein Sekundärschlüssel wird oft als Index bezeichnet (nicht zu verwechseln mit dem B*-Index).


Tabellen-ID (MaxDB: Hintergrundwissen)

Tabellen-ID

Der Datenbankbenutzer spezifiziert eine Tabelle durch Angabe ihres Namens. Der Zugriff auf eine Tabelle erfolgt intern über eine Tabellen-ID fester Länge.

Die Beziehung zwischen dem Tabellennamen und dieser Tabellen-ID ist im Datenbankkatalog gespeichert.

Zusätzlich verfügt das Datenbanksystem über eine spezielle Verwaltungsstruktur (File Directory), in der die Wurzelseiten von B*-Bäumen Tabellen-IDs zugeordnet sind.

Die Tabellen-IDs sind im File Directory zusammen mit einem Typkennzeichen und weiteren Informationen gespeichert. Das Typkennzeichen gibt an, ob die Tabelle Primärdaten, Sekundärschlüssel oder LONG-Daten enthält. Die Angabe des Typkennzeichens ermöglicht die Verwendung einer Tabellen-ID für alle B*-Bäume, die für die logischen Strukturen derselben Tabelle benötigt werden.


Tabellenzugriff (MaxDB: Hintergrundwissen)

Tabellenzugriff

Der logische Begriff Tabelle bezeichnet Primärdaten, einschließlich Daten in Spalten des Typs LONG und Daten in Sekundärschlüsselstrukturen.

· Entsprechend ihrer Schemadefinition hat eine Tabelle genau einen B*-Baum für die Primärdaten und genau einen B*-Baum für jeden Sekundärschlüssel.

· Wenn die Tabellendefinition Spalten des Datentyps LONG enthält, wird ein zusätzlicher B*-Baum angelegt, um alle Daten dieses Typs unterbringen zu können, die eine vorgegebene Länge nicht überschreiten (Daten des Typs short LONG). Dateneinträge des Typs LONG, die diese vorgegebene Länge überschreiten, werden in separaten B*-Bäumen gespeichert (Daten des Typs long LONG).

Alle Suchvorgänge und Änderungen in der Tabelle werden über SQL-Anweisungen (SELECT, INSERT, UPDATE, DELETE,...) im Hauptspeicher des Computers durchgeführt, also sehr schnell. Die B*-Baumstruktur ändert sich bei INSERT-, UPDATE- und DELETE-Anweisungen nur dann, wenn es in der Zielseite nicht genug Platz für die neuen Informationen gibt oder der Füllgrad einer Seite den vordefinierten Füllgrad unterschreitet.

Siehe auch B*-Bäume für Tabellen sowie Tabellenzugriff über einen B*-Baum


B*-Bäume für Tabellen (MaxDB: Hintergrundwissen)

B*-Bäume für Tabellen

B*-Bäume werden für folgende Tabellenarten angelegt:

· Tabellen mit Primärdaten

· Tabellen mit Sekundärschlüsseln

· Tabellen mit LONG-Spalten

Siehe auch Tabellenzugriff

Hier finden Sie einige Beispiele für das Anlegen von B*-Bäumen:

· B*-Bäume für Tabellen mit LONG-Spalten

· B*-Bäume für Tabellen mit Sekundärschlüssel

· B*-Bäume für Tabellen mit LONG-Spalten und Sekundärschlüssel


B*-Bäume für Tabellen mit LONG-Spalten (MaxDB: Hintergrundwissen)

B*-Bäume für Tabellen mit LONG-Spalten

Als Beispiel für B*-Bäume für Tabellen sind im Folgenden die B*-Bäume für eine Tabelle beschrieben, die über Primärdaten und Daten des Datentyps LONG verfügt.

Die Primärtabelle enthält eine LONG-Spalte. Die numerische Spalte definiert die Länge des LONG-Feldes für jede Zeile. Es gibt einen B*-Baum für die Primärdaten, einen anderen für Daten des Typs short LONG und mehrere B*-Bäume für andere Daten des Typs long LONG.

Die Primärtabelle enthält einen Verweis fester Länge auf den Inhalt des LONG-Feldes in den einzelnen Zeilen. Dieser Verweis zeigt eindeutig auf den Speicherort des Inhaltes des LONG-Feldes, entweder als Schlüssel für einen B*-Baum (short LONG) oder als Tabellen-ID eines von mehreren B*-Bäumen (long LONG).


B*-Bäume für Tabellen mit Sekundärschlüssel (MaxDB: Hintergrundwissen)

B*-Bäume für Tabellen mit Sekundärschlüssel

Als Beispiel für B*-Bäume für Tabellen sind im Folgenden die B*-Bäume für eine Tabelle beschrieben, die Primärdaten und Sekundärschlüssel enthält.

Die Tabelle hat einen zweispaltigen mehrfachen Sekundärschlüssel. Es gibt einen B*-Baum für die Primärdaten und einen zweiten für die Daten der Sekundärschlüsseltabelle.


B*-Bäume für Tabellen mit LONG-Spalten und Sekundärschlüssel (MaxDB: Hintergrundwissen)

B*-Bäume für Tabellen mit LONG-Spalten und Sekundärschlüssel

Als Beispiel für B*-Bäume für Tabellen sind im Folgenden die B*-Bäume für eine Tabelle beschrieben, die über alle Arten von Strukturen verfügt: Primärdaten, Sekundärschlüssel und Daten des Datentyps LONG.


Tabellenzugriff über einen B*-Baum (MaxDB: Hintergrundwissen)

Tabellenzugriff über einen B*-Baum

Für alle SELECT- und DML-Anweisungen (DML = Data Manipulation Language) verwendet das Datenbanksystem denselben Suchalgorithmus zur Bestimmung der Blattseite, in der ein Tabelleneintrag zu finden ist oder geändert werden muss.

Hier finden Sie einige Beispiele für den Tabellenzugriff über B*-Bäume:

· Tabellenzugriff (SELECT) über einen B*-Baum

· Tabellenzugriff (INSERT) über einen B*-Baum

· Tabellenzugriff (DELETE) über einen B*-Baum

· Tabellenzugriff (UPDATE) über einen B*-Baum


Tabellenzugriff (SELECT) über einen B*-Baum (MaxDB: Hintergrundwissen)

Tabellenzugriff (SELECT) über einen B*-Baum

Der Tabellenzugriff über einen B*-Baum soll am Beispiel einer SELECT-Anweisung dargestellt werden.

Die Tabelle addresswird durch die Spalte mit dem Primärschlüssel city definiert. In der Tabelle soll das System einen Eintrag mit dem Wert Athens für das Primärschlüsselfeld citysuchen.

...

1. Die Suche beginnt auf der Wurzelebene des B*-Baums. Das Datenbanksystem vergleicht den Wert Athensmit dem Wert des ersten Eintrags in der Wurzelseite, Ba.

2. Da der Wert Athens niedriger ist als Ba, werden die entsprechenden Adressinformationen ausgewertet. Dabei wird auf eine Indexseite gezeigt.

3. Die Suche wird auf der Indexebene fortgesetzt. Der Wert Athens ist größer als der Wert des ersten Eintrags in der Datenseite, An. Der nächste Eintrag in der Seite wird ausgewertet. Da der Wert Athens niedriger ist als Au, werden die entsprechenden Adressinformationen ausgewertet. Dabei wird auf eine Blattseite gezeigt.

4. Die Suche wird auf der Blattebene fortgesetzt. In der Positionsliste der Blattseite wird ein binärer Suchalgorithmus verwendet. Die entsprechenden Adressinformationen zum Tabelleneintrag mit dem Schlüsselwert Athens werden ausgewertet.

5. Das Datenbanksystem durchsucht den Datenbereich in der Blattseite, bis es die entsprechenden Tabelleneinträge gefunden hat. Die Suche ist dann abgeschlossen.


Tabellenzugriff (INSERT) über einen B*-Baum (MaxDB: Hintergrundwissen)

Tabellenzugriff (INSERT) über einen B*-Baum

Der Tabellenzugriff über einen B*-Baum soll am Beispiel einer INSERT-Anweisung dargestellt werden.

Die Tabelle address wird durch die Spalte mit dem Primärschlüssel city definiert. Mit der entsprechenden INSERT-Anweisung soll in der Tabelle address ein Eintrag mit dem Wert Arbon für das Primärschlüsselfeld city eingefügt werden.

Wenn in der Blattseite des B*-Baumes genug Platz für den neuen Eintrag ist, fügt das Datenbanksystem den Eintrag am Ende des Datenbereichs ein und aktualisiert die Positionsliste. Die Adresse des neuen Eintrags wird an die richtige Stelle in der Positionsliste geschrieben. Im obigen Beispiel ist das Position 4. Position 4 zeigt auf den neuen Tabelleneintrag Nr. 7.

Wenn das Datenbanksystem Daten auf einer Datenseite einfügt, dann wird diese Datenseite physikalisch von oben links mit Daten und von unten rechts mit den dazugehörenden Positionseinträgen gefüllt. Positionsliste und Datenbereich konvergieren also, wenn viele Daten in einer Datenseite eingefügt werden.


Tabellenzugriff (DELETE) über einen B*-Baum (MaxDB: Hintergrundwissen)

Tabellenzugriff (DELETE) über einen B*-Baum

Der Tabellenzugriff über einen B*-Baum soll am Beispiel einer DELETE-Anweisung dargestellt werden.

Die Tabelle address wird durch die Spalte mit dem Primärschlüssel city definiert. Mit der entsprechenden DELETE-Anweisung soll in der Tabelle ein Eintrag mit dem Wert Apach für das Primärschlüsselfeld city gelöscht werden.

Wenn ein Eintrag aus der Tabelle gelöscht wird, treten im Datenbereich und in der Positionsliste der Blattseite im B*-Baum Lücken auf. Das Datenbanksystem schließt diese Lücken und aktualisiert die Positionsliste, um Speicherplatz zu sparen.


Tabellenzugriff (UPDATE) über einen B*-Baum (MaxDB: Hintergrundwissen)

Tabellenzugriff (UPDATE) über einen B*-Baum

Der Tabellenzugriff über einen B*-Baum soll für eine UPDATE-Anweisung erläutert werden.

· Wenn ein UPDATE ausgeführt wird und der Primärschlüssel unverändert bleibt, wird nur der Inhalt der Tabellenzeile geändert.

· Wenn sich die Datenlänge ändert, werden die Positionen der Folgeeinträge und deren Adressen in der Positionsliste in der Blattseite im B*-Baum geändert.

· Wenn sich das Schlüsselfeld ändert, wird der UPDATE als DELETE (Tabellenzugriff (DELETE) über einen B*-Baum) mit einem nachfolgenden INSERT (Tabellenzugriff (INSERT) über einen B*-Baum) ausgeführt.


Änderungen der B*-Baumstruktur (MaxDB: Hintergrundwissen)

Änderungen der B*-Baumstruktur

Die B*-Baumstruktur ändert sich bei INSERT-, UPDATE- und DELETE-Anweisungen nur dann, wenn es in der Zielseite nicht genug Platz für die neuen Informationen gibt oder der Füllgrad einer Seite unter dem vordefinierten Füllgrad liegt.

Die Tabelle address wird durch die Spalte mit dem Primärschlüssel city definiert. In der Tabelle soll nun ein Eintrag mit dem Wert Albas für das Primärschlüsselfeld city eingefügt werden. Wenn der neue Tabelleneintrag für die entsprechende Blattseite im B*-Baum zu groß ist, führt das Datenbanksystem folgende Aktionen aus:

· Eine neue Blattseite wird angelegt. Die neue Tabellenzeile wird in diese Blattseite aufgenommen. Anders ausgedrückt: Der Anfang des Sortierbereichs der neuen Blattseite wird durch diese Tabellenzeile angegeben. Die Sortierreihenfolge der einzelnen Blattseiten muss wiederhergestellt werden. Dazu kann es erforderlich sein, die Tabellenzeilen, die in den neuen Sortierbereich gehören, aus der Blattseite mit dem nächstkleineren Sortierbereich in die neue Blattseite zu kopieren und sie dann aus der vorherigen Blattseite zu löschen. Dieser Vorgang wird als Seitensplit bezeichnet.

· Zeiger auf Folgeseiten werden bei Bedarf aktualisiert.

· Adressen- und Separatorinformationen in der neuen Seite werden auch in der entsprechenden Wurzel- oder Indexseite auf der nächsthöheren Ebene eingefügt. Wenn die Indexseite für diese Informationen zu klein ist, wird auf dieser Indexebene auch eine neue Indexseite eingefügt. Wenn die Wurzelseite auf der obersten Ebene zu klein für einen neuen Eintrag ist, wird eine neue Indexebene angelegt.

Eine Kette von Seitensplits kann das Datenbanksystem dazu veranlassen, einen Ausgleich im B*-Baum durchzuführen (Belegungsausgleich).

Siehe auch Nichteinheitliche Verteilung von Datenseiten


Nichteinheitliche Verteilung von Datenseiten (MaxDB: Hintergrundwissen)

Nichteinheitliche Verteilung von Datenseiten

Änderungen der B*-Baumstruktur können zu einer uneinheitlichen Verteilung der Datenseiten führen. Wenn bestimmte Zweige des B*-Baumes mehr Seiten haben als andere, ist die Verteilung der Datenseiten nicht einheitlich. Das kann die Performance beeinträchtigen, da bei der Suche nach Daten im allgemeinen mehr Zugriffe erforderlich sind.

Nichteinheitliche Verteilungen werden vom Datenbanksystem bei der Ausführung von INSERT-, UPDATE- oder DELETE-Anweisungen festgestellt, und bei Ausführung des jeweiligen Vorgangs wird der Ausgleich im Baum wiederhergestellt. Das bedeutet, dass der Baum ständig gepflegt wird, um einen optimalen Betrieb zu gewährleisten. Dabei werden Seiteneinträge an neue Positionen verschoben, und Seitenzeiger werden neu ausgerichtet. Die Nutzung von Datenseiten wird dadurch effizienter.

Eine einheitliche Datenverteilung verhindert den Überlauf einzelner Datenbereiche. Die Größe einer Tabelle ist lediglich durch den im Datenbanksystem verfügbaren Speicherplatz begrenzt.


SQL-Optimierer (MaxDB: Hintergrundwissen)

SQL-Optimierer

Der SQL-Optimierer ist Bestandteil des Kerns des Datenbanksystems. Er analysiert SQL-Anfragen, die an die Datenbank gestellt werden, und wählt die beste Suchstrategie für den Zugriff auf die Datenbanktabellen mittels SQL aus.

Diese Dokumentation beschreibt folgende Themen:

· Arbeitsweise des Optimierers

· Problemanalyse

· Begriffe

· Beispiele

Allgemeine Informationen zum MaxDB-Datenbanksystem finden Sie in der Dokumentation Datenbankverwaltung. Informationen zur Syntax der SQL-Anweisungen, die Sie im Datenbanksystem verwenden können, finden Sie im Referenzhandbuch.


Arbeitsweise des Optimierers (MaxDB: Hintergrundwissen)

Arbeitsweise des Optimierers

SQL-Anweisungen spezifizieren nur, welche Resultate gewünscht sind. Sie enthalten keine Informationen darüber, wie in der Datenbank nach den Daten gesucht werden soll.

Um nach den in der SQL-Anweisung spezifizierten Daten zu suchen, hat das Datenbanksystem oft mehrere Möglichkeiten. Der Optimierer hat die Aufgabe, die beste Suchstrategie für den Zugriff auf die Daten zu finden.

Die Arbeitsweise des Optimierers besteht aus den folgenden Schritten:

...

1. Der Optimierer wird aufgerufen, wenn eine SQL-Anweisung mit einer Suchbedingung an die Datenbank übermittelt wird.

2. Der Optimierer formt die Suchbedingung in eine Standard-Form um.

3. Er ermittelt alle Suchstrategien, mit denen auf die in der SQL-Anweisung gesuchten Daten zugegriffen werden kann.

4. Er ermittelt die Kosten für jede einzelne dieser Suchstrategien und wählt die Strategie, die bei der Abarbeitung der SQL-Anweisung am wenigsten Ressourcen kostet.

5. Die SQL-Anweisung wird vom Datenbanksystem mit dieser Suchstrategie ausgeführt.


Suchbedingungen (MaxDB: Hintergrundwissen)

Suchbedingungen

Der Optimierer kann den Datenzugriff nur für SQL-Anweisungen optimieren, die eine Suchbedingung enthalten. Eine Suchbedingung wird mit einer WHERE-Klausel definiert.

SELECT name

FROM customer

WHERE city = 'Berlin' AND zip > 13000

Folgende SQL-Schlüsselwörter können mit einer Suchbedingung kombiniert werden: SELECT, UPDATE, DELETE, INSERT.

Für UPDATE-Anweisungen gelten Einschränkungen für Suchbedingungen.

Die Form der Suchbedingung hat wesentlichen Einfluss auf die Kosten, die bei der Ausführung der SQL-Anweisung entstehen. Der Optimierer berücksichtigt bei der Kostenermittlung für eine SQL-Anweisung nur die folgenden Suchbedingungen:

· Gleichheitsbedingung

· Bereichsbedingung

· IN-Bedingung

· LIKE-Bedingung

Wenn sich die Suchbedingungen in einer SQL-Anweisung nicht in eine der oben aufgeführten Formen überführen lassen, kann der Optimierer für sie keine Suchstrategie ermitteln.

Wenn mehrere Suchbedingungen durch den gleichen Boolschen Operator verknüpft sind, dann hat ihre Reihenfolge keinen Einfluss auf die Ermittlung der Suchstrategie durch den Optimierer.


Gleichheitsbedingung (MaxDB: Hintergrundwissen)

Gleichheitsbedingung

Gleichheitsbedingungen sind Suchbedingungen mit Vergleichsprädikat. Für sie gilt

· Operator ist nur der Vergleichsoperator =

· Sie haben eine der folgenden Formen:
<column_spec>  =  <extended_value_spec>
<column_spec> =  <subquery>

Nur wenn eine Gleichheitsbedingung in dieser Form vorliegt, kann der Optimierer sie zum Ermitteln einer Suchstrategie verwenden. Wenn Gleichheitsbedingungen in einer anderen Form vorliegen, dann versucht der Optimierer, sie umzuformen.

Ausdrücke der folgenden Formen werden in Bedingungen ohne NOT mit entsprechend negiertem Operator = überführt:

...NOT (<column_spec> <> <extended_value_spec>)

...NOT (<column_spec> <> <subquery>)

Die umgeformte Bedingung wird dann vom Optimierer weiterverarbeitet.


Bereichsbedingung (MaxDB: Hintergrundwissen)

Bereichsbedingung

Bereichsbedingungen sind Suchbedingungen mit Vergleichsprädikat oder BETWEEN-Prädikat. Für sie gilt Folgendes:

· Operatoren sind nur die Vergleichsoperatoren < | <= | => | > und der Operator BETWEEN

· Bereichsbedingungen haben eine der folgenden Formen:
 <column_spec > < < | <= | => | > > <extended_value_spec >

oder
 <column_spec> BETWEEN <extended_value_spec> AND <extended_value_spec>

Nur Bereichsbedingungen, die diesen Festlegungen genügen, kann der Optimierer zum Ermitteln einer optimalen Suchstrategie verwenden.

Ob der Bereich durch einen BETWEEN-Operator oder durch Kombination der Vergleichsoperatoren <= und => begrenzt wird, ist für die Suchstratgie unerheblich.

Bedingungen der folgenden Form werden, wenn möglich, in einen Ausdruck ohne NOT mit entsprechend negiertem Operator überführt:

...NOT (<column_spec> < < | <= | => | > > <extended_value_spec>)

...NOT (<column_spec> NOT BETWEEN <extended_value_spec> AND <extended_value_spec>)

Die umgeformte Bedingung wird dann vom Optimierer weiterverarbeitet.


IN-Bedingung (MaxDB: Hintergrundwissen)

IN-Bedingung

IN-Bedingungen sind Suchbedingungen mit IN-Prädikat, für die folgende Festlegungen gelten:

· Operator ist der Operator IN

· IN-Bedingungen haben eine der folgenden Formen:
<column_spec> IN (<extended_value_spec>,...)
 <column_spec> IN <subquery >

Nur IN-Bedingungen, die diesen Festlegungen genügen, kann der Optimierer zum Ermitteln einer optimalen Suchstrategie verwenden.

Bedingungen der folgenden Form werden, wenn möglich, in einen Ausdruck ohne NOT mit entsprechend negiertem Operator überführt:

...NOT (<column_spec> NOT IN (<extended_value_spec>,...))

...NOT (<column_spec> NOT IN <subquery>)

Die umgeformte Bedingung wird dann weiterverarbeitet.


LIKE-Bedingung (MaxDB: Hintergrundwissen)

LIKE-Bedingung

LIKE-Bedingungen sind Suchbedingungen mit LIKE-Prädikat, für die Folgendes gilt:

· Operator ist der Operator LIKE .

· LIKE-Bedingungen haben folgende Form:
<column_spec> LIKE <extended_value_spec>

· Die verwendete Wertespezifikation (extended_value_spec) darf nicht mit den SQL-Syntaxelementen match_string bzw. match_set beginnen.

Nur LIKE-Bedingungen, die diesen Festlegungen genügen, kann der Optimierer zum Ermitteln einer optimalen Suchstrategie verwenden.

Bedingungen der Form ...NOT (<column_spec> NOT LIKE <extended_value_spec>) werden, wenn möglich, in einen Ausdruck <column_spec> LIKE <extended_value_spec> überführt. Diese umgeformte Bedingung wird dann vom Optimierer weiterverarbeitet.


Einschränkungen für UPDATE-Anweisungen (MaxDB: Hintergrundwissen)

Einschränkungen für UPDATE-Anweisungen

Für SQL-Anweisungen, die UPDATE enthalten, gilt die folgende Einschränkung für die Verwendung von Suchbedingungen: Wenn der neue Wert einer Spalte in einem arithmetischen Ausdruck errechnet wird, kann eine Invertierung dieser Spalte, d. h. der entsprechende Index, nicht zur Suche verwendet werden.

UPDATE <table_name>

SET columnx = columnx + 3

WHERE columnx IN (100, 103, 106, 109, 112)

Diese SQL-Anweisung kann zu fehlerhaften Ergebnissen führen, wenn schrittweise die Invertierungslisten mit den Werten 100, 103, 106, 109, 112 abgearbeitet werden würden.

Dasselbe gilt für SQL-Anweisungen, die FOR UPDATE im SELECT-Teil enthalten.


Suchstrategien (MaxDB: Hintergrundwissen)

Suchstrategien

Um auf Daten zuzugreifen, kann das Datenbanksystem in der Regel mehrere unterschiedliche Strategien anwenden („Suchstrategien“).

Diese Suchstrategien unterscheiden sich u. a. in den Kosten, die bei ihrer Ausführung entstehen. Die einfachste Suchstrategie ist die sequentielle Suche, bei der die gesamte Tabelle Zeile für Zeile durchsucht wird. Bei großen Datenmengen ist die sequentielle Suche aber auch häufig die aufwendigste Suchstrategie. Deshalb analysiert der Optimierer andere Suchstrategien, bei denen der zu durchsuchende Bereich der Tabelle kleiner ist.

Welche anderen Suchstrategien möglich sind, hängt von der Suchbedingung und dem Aufbau der jeweiligen SQL-Anweisung sowie vom Design der Datenbank (Primärschlüssel usw.) ab. In dieser Dokumentation werden die folgenden Fälle beschrieben:

· Suchbedingungen für Schlüsselspalten

· Suchbedingungen für invertierte Spalten

· Suchbedingungen für UPDATE-Anweisungen

· Mit OR verknüpfte Suchbedingungen

· Verlagerung der Suche auf den FETCH-Zeitpunkt

· Join

Um herauszufinden, welche Suchstrategie der Optimierer für eine SQL-Anweisung auswählt, können Sie die EXPLAIN-Anweisung benutzen.

Siehe auch:

Liste aller Suchstrategien

Tipps zum Datenbank-Design


Sequentielle Suche (MaxDB: Hintergrundwissen)

Sequentielle Suche

Grundsätzlich kann jede Suche sequentiell, also Zeile für Zeile, durch die gesamte Tabelle erfolgen. Dies ist in folgenden Fällen erforderlich:

· Es ist keine Suchbedingung angegeben.

· Weder für Schlüsselspalten noch für invertierte Spalten ist eine Suchbedingung angegeben.

Falls die möglichen nicht-sequentiellen Suchstrategien aufwendiger wären als die sequentielle Suche, wird die Tabelle sequentiell abgearbeitet.


Suchbedingungen für Schlüsselspalten (MaxDB: Hintergrundwissen)

Suchbedingungen für Schlüsselspalten

Wenn die SQL-Anweisung Suchbedingungen für Schlüsselspalten enthält, sind die folgenden Suchstrategien möglich.

Suchbedingung | Suchstrategie
Gleichheitsbedingung für jede Schlüsselspalte | Es wird direkt auf die entsprechende(n) Zeile(n) zugegriffen.
IN-Bedingung für eine Schlüsselspalte und auf allen anderen Schlüsselspalten eine Gleichheitsbedingung | Es wird direkt auf die entsprechende(n) Zeile(n) zugegriffen.
Bereichsbedingungen | Für die Schlüsselspalten wird eine Unter- und Obergrenze für den zulässigen Schlüsselbereich gebildet. Alle Suchstrategien, auch die Strategien über Invertierungen, nutzen das Wissen über diesen zulässigen Schlüsselbereich aus.


Suchbedingungen für invertierte Spalten (MaxDB: Hintergrundwissen)

Suchbedingungen für invertierte Spalten

Wenn die SQL-Anweisung Suchbedingungen für invertierte Spalten enthält, dann sind die folgenden Suchstrategien möglich.

Suchbedingung | Suchstrategie
Gleichheitsbedingung für alle invertierten Spalten | Es wird auf die Zeilen zugegriffen, deren Schlüssel in der zugehörigen Invertierungsliste enthalten sind.
IN-Bedingung für invertierte Spalten | Es wird auf die Zeilen zugegriffen, deren Schlüssel in den Invertierungslisten enthalten sind.
Bereichsbedingungen mit nur einer Bedingung ( <, <=, >, >= ) für eine der beiden Bereichsgrenzen (Unter- bzw. Obergrenze). | Es wird auf die Zeilen zugegriffen, deren Schlüssel in den Invertierungslisten enthalten sind, die durch den Bereich bestimmt wurden.
Bereichsbedingungen, bei denen beide Bereichsgrenzen angegeben sind. Für die Auswahl der Suchstrategie ist es unerheblich, ob diese Angabe durch einen BETWEEN-Operator oder durch zwei durch AND verknüpfte Bedingungen ( <= bzw. >= ) für dieselbe Spalte erfolgt. | Es wird auf die Zeilen zugegriffen, deren Schlüssel in den Invertierungslisten enthalten sind, die durch den Bereich bestimmt wurden.

Im Fall der Gleichheit/IN-Bedingungen und der Bereichsbedingungen gibt es auch Anfragen, bei denen darauf verzichtet werden kann, auf die Zeilen zuzugreifen, da alle notwendigen Werte bereits in der/den Invertierungsliste(n) enthalten sind.

Siehe auch:

Beispiele: Suchbedingungen für invertierte Spalten


Beispiele: Suchbedingungen für invertierte Spalten (MaxDB: Hintergrundwissen)

Beispiele: Suchbedingungen für invertierte Spalten

Die folgenden Beispiele zeigen Suchbedingungen für invertierte Spalten der Tabelle example sowie die entsprechenden Suchstrategien, die angewendet werden.

Auszug aus der SQL-Anweisung

Suchstrategie

... WHERE firstkey >= 123

Die Tabelle wird ab der Zeile mit dem Schlüssel '123' sequentiell durchsucht.

... WHERE invcolumn1 = 'Miller' AND firstkey >= 123

Die gesamte Invertierungsliste mit dem Wert 'Miller' wird beginnend mit dem Schlüssel '123' bis zum Ende bearbeitet.

... WHERE invcolumn1 = 'Miller' AND invcolumn2 < 'C'

Es wird eine logische Invertierungsliste gebildet, die alle Invertierungslisten von invcolumn2 enthält, die mit einem Wert kleiner als 'C' beginnen (' ', 'A', 'B').

Die Schnittmenge der logischen Invertierungsliste und der Invertierungsliste mit dem Wert 'Miller' wird gebildet und vollständig bearbeitet.

... WHERE invcolumn1 IN ('Miller', 'Smith', 'Hawk')

Drei Invertierungslisten werden vollständig bearbeitet.

... WHERE invcolumn2 > 8965 AND firstkey = 34 AND secondkey BETWEEN 12 AND 18

Alle Invertierungslisten von invcolumn2, deren Werte größer als 8965 sind, werden bearbeitet. Sie werden allerdings nur innerhalb der Schlüsselgrenzen '34, 12' und '34, 18' betrachtet.

... WHERE
multinvcolumn1 = 'Düsseldorf' AND
multinvcolumn2 = '40223' AND
multinvcolumn3 = 10000

Die vollständige Invertierungsliste des benannten Index ind mit den Werten 'Düsseldorf', '40223' und 10000 wird bearbeitet.

... WHERE
multinvcolumn1 = 'Düsseldorf' AND
multinvcolumn2 BETWEEN '40221' AND'40238'

Es werden die Invertierungslisten innerhalb und einschließlich der Werte 'Düsseldorf', '40221', (binäre Nullen) und 'Düsseldorf', '40238', (binäre Einsen) bearbeitet.


Mit OR verknüpfte Suchbedingungen (MaxDB: Hintergrundwissen)

Mit OR verknüpfte Suchbedingungen

Bei SQL-Anweisungen, die mit OR verknüpfte Suchbedingungen enthalten, analysiert der Optimierer zunächst einzeln jede Suchbedingung.

Wenn eine Gleichheitsbedingung auf Schlüsselspalten gefunden wird, werden die weiteren mit OR verknüpften Suchbedingungen ignoriert.

b1 AND b2 AND (b3 OR b4 AND b5)

Die Ausdrücke b1, b2 und (b3 OR b4 AND b5) werden zunächst einzeln analysiert. Wird bei b1 oder b2 eine Gleichheitsbedingung auf Schlüsselspalten gefunden, so wird (b3 OR b4 AND b5) bei der Auswahl der Suchstrategie nicht berücksichtigt, da der Suchbereich nicht sinnvoll weiter eingegrenzt werden kann.

Wenn keine Gleichheitsbedingung für Schlüsselspalten gefunden wird, werden die bis dahin nicht betrachteten, mit OR verknüpften Suchbedingungen weiter analysiert. Dabei geht der Optimierer folgendermaßen vor:

..

1. Umformen in die disjunktive Normalform

b1 AND b2 AND (b3 OR b4 AND b5)

ergibt in der disjunktiven Normalform

(b1 AND b2 AND b3) OR (b1 AND b2 AND b4 AND b5)

2. Analyse des neuen Ausdrucks
Die neu gebildeten Klammerausdrücke werden separat analysiert.

3. Kostenermittlung
Die Kosten der verschiedenen Suchstrategien für die Klammerausdrücke der disjunktiven Normalform werden summiert. Wenn diese Summe kleiner als die anfangs ermittelten Kosten für die Suchstrategie ohne Betrachtung der mit OR verknüpften Suchbedingungen ist, werden diese verschiedenen Suchstrategien verwendet.

Wenn die Summe der Kosten von (b1 AND b2 AND b3) und (b1 AND b2 AND b4 AND b5) kleiner ist als die Kosten für die Suchstrategie für b1 und b2, dann werden Strategien für (b1 AND b2 AND b3) und (b1 AND b2 AND b4 AND b5) angewendet.


Verlagerung der Suche auf den FETCH-Zeitpunkt (MaxDB: Hintergrundwissen)

Verlagerung der Suche auf den FETCH-Zeitpunkt

Der Optimierer versucht, nur dann Ergebnistabellen zu bilden, wenn es unbedingt notwendig ist.

Wenn keine Ergebnistabelle aufgebaut werden muss, kann die Suche auf den FETCH-Zeitpunkt (FETCH-Anweisung) verlagert werden. Dadurch wird kein Speicher für Ergebnisse belegt, und auf die ersten Ergebnisse kann schnell zugegriffen werden.

Die Suche kann jedoch nicht immer auf den FETCH-Zeitpunkt verlagert werden, da in einigen Fällen immer eine Ergebnistabelle aufgebaut werden muss:

· SELECT auf mehrere Tabellen (Join)

· SELECT ... FOR REUSE

In den folgenden Fällen muss meistens eine Ergebnistabelle aufgebaut werden:

· SELECT DISTINCT ...

· SELECT ... ORDER BY ...

Wenn alle folgenden Bedingungen zutreffen, muss keine Ergebnistabelle aufgebaut werden:

¡ Weder eine DISTINCT-Spezifikation (<distinct spec>) (bis auf einige Ausnahmen) noch das Syntaxelement FOR REUSE sind angegeben.

¡ Die Spalten, nach denen sortiert werden soll, bilden zusammen in der angegebenen Reihenfolge und Sortierung (aufsteigend oder absteigend) einen Index.

Mit Hilfe der EXPLAIN-Anweisung können Sie herausfinden, ob eine Ergebnistabelle erstellt wird (RESULT IS COPIED) oder nicht (RESULT IS NOT COPIED).


Joins (MaxDB: Hintergrundwissen)

Joins

Um zu verstehen, wie der Optimierer Suchstrategien für Joins findet, sind einige Informationen darüber notwendig, wie das Datenbanksystem Joins abarbeitet.

Erzeugen von Ergebnistabellen

Joins sind Verbundanweisungen, die Tabellen miteinander verbinden. Dabei werden die einzelnen Tabellen schrittweise verknüpft:

...

1. Die erste Tabelle wird durchsucht.

2. Das Ergebnis wird in einer Zwischenergebnistabelle gespeichert.

3. Die Zwischenergebnistabelle wird nach den Join-Spalten des folgenden Join-Schritts sortiert.

4. Die nächste noch vorhandene Tabelle wird durchsucht.

5. Die bestehende Zwischenergebnistabelle wird mit der neuen Tabelle verknüpft.

6. Das Ergebnis wird in einer neuen Zwischenergebnistabelle gespeichert.

7. Diese Zwischenergebnistabelle wird nach den Join-Spalten des folgenden Join-Schritts sortiert.

8. Die alte Zwischenergebnistabelle wird gelöscht.

9. Gibt es weitere Tabellen, wird die Vorgehensweise ab Schritt 4 wiederholt.

Die letzte Zwischenergebnistabelle ist die vom Benutzer gewünschte Ergebnistabelle.

Reihenfolge der Abarbeitung der Join-Tabellen

Bei der Optimierung sollen Zeit und Speicherplatz eingespart werden. Für Joins bedeutet das, dass auf die Zeilen der zu verknüpfenden neuen Tabellen möglichst direkt zugegriffen werden kann und die Zwischenergebnistabellen möglichst klein sind.

Der Optimierer beginnt die Abarbeitung von Joins deswegen mit den kleinsten Tabellen mit den restriktivsten Suchbedingungen, um zunächst kleine Zwischenergebnistabellen zu erhalten. Der Optimierer legt die Reihenfolge der Abarbeitung also selbst fest; die Reihenfolge, in der die Tabellen in der FROM-Klausel der SELECT-Anweisung spezifiziert sind, hat hierauf keinen Einfluss.

Suchstrategien für Joins

Die folgenden Suchstrategien sind möglich, um ausgehend von den Join-Spaltenwerten der alten Zwischenergebnistabelle auf Zeilen der neuen Tabelle zuzugreifen:

JOIN VIA INDEXED COLUMN

JOIN VIA KEY COLUMN

JOIN VIA KEY RANGE

JOIN VIA MULTIPLE INDEXED COLUMNS

JOIN VIA MULTIPLE KEY COLUMNS

JOIN VIA RANGE OF MULTIPLE INDEXED COL.

JOIN VIA RANGE OF MULTIPLE KEY COLUMNS

Sind die Spaltenlängen der in einem Join-Schritt jeweils zu vergleichenden beiden Spalten nicht gleich, dann können nicht alle Suchstrategien angewendet werden. Um diese Einschränkung zu umgehen, sollten Sie deshalb für Spalten, die über einen Join verbunden werden sollen, denselben Wertebereich definieren.

Mit der EXPLAIN-Anweisung (EXPLAIN-Anweisung für Joins) können Sie herausfinden, welche Suchstrategie der Optimierer anwendet.


Liste aller Suchstrategien (MaxDB: Hintergrundwissen)

Liste aller Suchstrategien

Im Folgenden sind alle Suchstrategien aufgelistet, die der Optimierer kennt. Die Bezeichnungen entsprechen den Rückgabewerten der EXPLAIN-Anweisung, mit deren Hilfe Sie erfragen können, welche Suchstrategie der Optimierer für eine bestimmte SQL-Anweisung ausgewählt hat.

CATALOG KEY ACCESS

CATALOG SCAN

CATALOG SCAN USING USER EQUAL CONDITION

DIFFERENT STRATEGIES FOR OR-TERMS

EQUAL CONDITION FOR INDEX

EQUAL CONDITION FOR INDEX (SUBQ)

EQUAL CONDITION FOR KEY COLUMN

EQUAL CONDITION FOR KEY COLUMN (SUBQ)

IN CONDITION FOR INDEX

IN CONDITION FOR KEY COLUMN

JOIN VIA INDEXED COLUMN

JOIN VIA KEY COLUMN

JOIN VIA KEY RANGE

JOIN VIA MULTIPLE INDEXED COLUMNS

JOIN VIA MULTIPLE KEY COLUMNS

JOIN VIA RANGE OF MULTIPLE INDEXED COL.

JOIN VIA RANGE OF MULTIPLE KEY COLUMNS

NO RESULT SET POSSIBLE

NO STRATEGY NOW (ONLY AT EXECUTION TIME)

RANGE CONDITION FOR KEY COLUMN

RANGE CONDITION FOR KEY COLUMN (SUBQ)

RANGE CONDITION FOR INDEX

RANGE CONDITION FOR INDEX (SUBQ)

INDEX SCAN

TABLE SCAN


CATALOG KEY ACCESS (MaxDB: Hintergrundwissen)

CATALOG KEY ACCESS

CATALOG KEY ACCESS ist eine Suchstrategie.

Diese Suchstrategie kann für Suchbedingungen angewendet werden, die Gleichheitsbedingungen enthalten. Solche Suchbedingungen können durch einen Zugriff auf Schlüsselspalten im Datenbankkatalog abgearbeitet werden.

Eine Suchbedingung für die Tabelle DOMAIN.TABLES enthält Gleichheitsbedingungen für OWNER und TABLENAME.

Siehe auch:

Liste aller Suchstrategien


CATALOG SCAN (MaxDB: Hintergrundwissen)

CATALOG SCAN

CATALOG SCAN ist eine Suchstrategie. Es wird eine sequentielle Suche auf dem Datenbankkatalog durchgeführt.

Siehe auch:

Liste aller Suchstrategien


CATALOG SCAN USING USER EQUAL CONDITION (MaxDB: Hintergrundwissen)

CATALOG SCAN USING USER EQUAL CONDITION

CATALOG SCAN USING USER EQUAL CONDITION ist eine Suchstrategie. Es wird eine sequentielle Suche über diejenigen Einträge im Datenbankkatalog durchgeführt, die Objekte des angegebenen Benutzers beschreiben.

Siehe auch:

Liste aller Suchstrategien


DIFFERENT STRATEGIES FOR OR-TERMS (MaxDB: Hintergrundwissen)

DIFFERENT STRATEGIES FOR OR-TERMS

DIFFERENT STRATEGIES FOR OR-TERMS ist eine Suchstrategie.

Mit OR verknüpfte Suchbedingungen wurden umgeformt und analysiert. Wenn eine Gleichheitsbedingung für Schlüsselspalten gefunden wird, werden die weiteren mit OR verknüpften Suchbedingungen ignoriert. Sollte keine Gleichheitsbedingung gefunden werden, werden für die verschiedenen Teile der mit OR verknüpften Suchbedingungen unterschiedliche Suchstrategien ermittelt.

Siehe auch:

Liste aller Suchstrategien


EQUAL CONDITION FOR INDEX (MaxDB: Hintergrundwissen)

EQUAL CONDITION FOR INDEX

EQUAL CONDITION FOR INDEX ist eine Suchstrategie.

Diese Suchstrategie kann für Suchbedingungen angewendet werden, die eine Gleichheitsbedingung für alle Spalten eines Index enthalten.

Mit Hilfe der Invertierungsliste wird direkt auf die entsprechenden Tabellenzeilen zugegriffen.

Siehe auch:

Liste aller Suchstrategien


EQUAL CONDITION FOR INDEX (SUBQ) (MaxDB: Hintergrundwissen)

EQUAL CONDITION FOR INDEX (SUBQ)

EQUAL CONDITION FOR INDEX (SUBQ) ist eine Suchstrategie.

Diese Suchstrategie kann für Suchbedingungen angewendet werden, die eine Gleichheitsbedingung für alle Spalten eines Index enthalten.

Die Werte für die Invertierungsliste stammen aus einer Unterabfrage.

Siehe auch:

Liste aller Suchstrategien


EQUAL CONDITION FOR KEY COLUMN (MaxDB: Hintergrundwissen)

EQUAL CONDITION FOR KEY COLUMN

EQUAL CONDITION FOR KEY COLUMN ist eine Suchstrategie.

Diese Suchstrategie kann angewendet werden, wenn die beiden folgenden Bedingungen erfüllt sind:

· Die Tabelle hat nur eine Schlüsselspalte.

· In der Suchbedingung ist eine Gleichheitsbedingung für diese Schlüsselspalte angegeben.

Bei dieser Suchstrategie wird direkt auf die betreffende Tabellenzeile zugegriffen.

Siehe auch:

Liste aller Suchstrategien


EQUAL CONDITION FOR KEY COLUMN (SUBQ) (MaxDB: Hintergrundwissen)

EQUAL CONDITION FOR KEY COLUMN (SUBQ)

EQUAL CONDITION FOR KEY COLUMN (SUBQ) ist eine Suchstrategie.

Diese Suchstrategie kann angewendet werden, wenn die beiden folgenden Bedingungen erfüllt sind:

· Die Tabelle hat nur eine Schlüsselspalte.

· In der Suchbedingung ist eine Gleichheitsbedingung für diese Schlüsselspalte angegeben.

Die Werte für die Schlüsselspalte stammen aus einer Unterabfrage.

Siehe auch:

Liste aller Suchstrategien


IN CONDITION FOR INDEX (MaxDB: Hintergrundwissen)

IN CONDITION FOR INDEX

IN CONDITION FOR INDEX ist eine Suchstrategie.

Diese Suchstrategie kann in den folgenden Fällen angewendet werden:

· Die Suchbedingung enthält eine IN-Bedingung für die erste Spalte eines Index, der aus mehreren Spalten besteht.

· Die Suchbedingung enthält Gleichheitsbedingungen für die ersten (k-1) Spalten eines solchen Index und eine IN-Bedingung für dessen k-te Spalte.

Mit Hilfe der Invertierungslisten wird direkt auf die entsprechenden Tabellenzeilen zugegriffen.

Siehe auch:

Liste aller Suchstrategien


IN CONDITION FOR KEY COLUMN (MaxDB: Hintergrundwissen)

IN CONDITION FOR KEY COLUMN

IN CONDITION FOR KEY COLUMN ist eine Suchstrategie.

Diese Suchstrategie kann angewendet werden, wenn Folgendes gilt:

· Die Tabelle hat nur eine Schlüsselspalte.

· Die Suchbedingung enthält eine IN-Bedingung für diese Schlüsselspalte.

Es wird direkt auf die betreffenden Tabellenzeilen zugegriffen.

Siehe auch:

Liste aller Suchstrategien


JOIN VIA INDEXED COLUMN (MaxDB: Hintergrundwissen)

JOIN VIA INDEXED COLUMN

JOIN VIA INDEXED COLUMN ist eine Suchstrategie für Joins.

Diese Suchstrategie kann angewendet werden, wenn für die Joinspalte ein Index erzeugt wurde, der nur diese eine Spalte enthält.

Der Zugriff auf die Zeilen der zu verknüpfenden Tabellen erfolgt über den Index der Joinspalte.

Siehe auch:

Liste aller Suchstrategien


JOIN VIA KEY COLUMN (MaxDB: Hintergrundwissen)

JOIN VIA KEY COLUMN

JOIN VIA KEY COLUMN ist eine Suchstrategie für Joins.

Diese Suchstrategie kann angewendet werden, wenn die Joinspalte die einzige Schlüsselspalte ist.

Es wird direkt auf Tabellenzeilen in der neuen Tabelle zugegriffen.

Siehe auch:

Liste aller Suchstrategien


JOIN VIA KEY RANGE (MaxDB: Hintergrundwissen)

JOIN VIA KEY RANGE

JOIN VIA KEY RANGE ist eine Suchstrategie für Joins.

Diese Suchstrategie kann angewendet werden, wenn die Joinspalte die erste Schlüsselspalte ist.

Innerhalb des Schlüsselbereichs wird sequentiell auf Tabellenzeilen der neuen Tabelle zugegriffen.

Siehe auch:

Liste aller Suchstrategien


JOIN VIA MULTIPLE INDEXED COLUMNS (MaxDB: Hintergrundwissen)

JOIN VIA MULTIPLE INDEXED COLUMNS

JOIN VIA MULTIPLE INDEXED COLUMNS ist eine Suchstrategie für Joins.

Diese Suchstrategie kann angewendet werden, wenn die Joinspalten sich zu einem vollständigen, mehrere Spalten umfassenden Index zusammensetzen lassen.

Der Zugriff auf die Zeilen der zu verknüpfenden Tabellen erfolgt über diesen Index.

Siehe auch:

Liste aller Suchstrategien


JOIN VIA MULTIPLE KEY COLUMNS (MaxDB: Hintergrundwissen)

JOIN VIA MULTIPLE KEY COLUMNS

JOIN VIA MULTIPLE KEY COLUMNS ist eine Suchstrategie für Joins.

Diese Suchstrategie kann angewendet werden, wenn sich die Joinspalten zu dem aus mehreren Spalten bestehenden Schlüssel der neuen Tabelle zusammensetzen lassen.

Es wird direkt auf die Tabellenzeilen in der neuen Tabelle zugegriffen.

Siehe auch:

Liste aller Suchstrategien


JOIN VIA RANGE OF MULTIPLE INDEXED COL. (MaxDB: Hintergrundwissen)

JOIN VIA RANGE OF MULTIPLE INDEXED COL.

JOIN VIA RANGE OF MULTIPLE INDEXED COL. ist eine Suchstrategie für Joins.

Diese Suchstrategie kann angewendet werden, wenn die Joinspalten sich zum Anfangsstück eines mehrere Spalten umfassenden Index zusammensetzen lassen.

Innerhalb des Indexbereichs wird auf die Zeilen der Tabelle zugegriffen.

Siehe auch:

Liste aller Suchstrategien


JOIN VIA RANGE OF MULTIPLE KEY COLUMNS (MaxDB: Hintergrundwissen)

JOIN VIA RANGE OF MULTIPLE KEY COLUMNS

JOIN VIA RANGE OF MULTIPLE KEY COLUMNS ist eine Suchstrategie für Joins.

Diese Suchstrategie kann angewendet werden, wenn die Joinspalten sich zum Anfangsstück des aus mehreren Spalten bestehenden Schlüssels der neuen Tabelle zusammensetzen lassen.

Innerhalb des Schlüsselbereiches wird sequentiell auf Tabellenzeilen der neuen Tabelle zugegriffen.

Siehe auch:

Liste aller Suchstrategien


NO RESULT SET POSSIBLE (MaxDB: Hintergrundwissen)

NO RESULT SET POSSIBLE

Der Optimierer erkennt Suchbedingungen, die logisch kein Ergebnis haben können. In diesem Fall findet keine Suche statt.

Siehe auch:

Liste aller Suchstrategien


NO STRATEGY NOW (ONLY AT EXECUTION TIME) (MaxDB: Hintergrundwissen)

NO STRATEGY NOW (ONLY AT EXECUTION TIME)

NO STRATEGY NOW (ONLY AT EXECUTION TIME) ist eine Suchstrategie.

Wenn die Spaltenwerte einer Unterabfrage erst zum Ausführungszeitpunkt der Unterabfrage bekannt sind, dann wird die Suchstrategie für den effektivsten Zugriff auf die entsprechende Tabelle der Unterabfrage erst bestimmt, wenn diese Werte vorliegen.

Siehe auch:

Liste aller Suchstrategien


RANGE CONDITION FOR KEY COLUMN (MaxDB: Hintergrundwissen)

RANGE CONDITION FOR KEY COLUMN

RANGE CONDITION FOR KEY COLUMN ist eine Suchstrategie.

Diese Suchstrategie wird angewendet, wenn eine Bereichsbedingung für eine Schlüsselspalte vorliegt.

Es wird eine sequentielle Suche im angegebenen Bereich der Tabelle durchgeführt.

Siehe auch:

Liste aller Suchstrategien


RANGE CONDITION FOR KEY COLUMN (SUBQ) (MaxDB: Hintergrundwissen)

RANGE CONDITION FOR KEY COLUMN (SUBQ)

RANGE CONDITION FOR KEY COLUMN (SUBQ) ist eine Suchstrategie.

Diese Suchstrategie wird angewendet, wenn eine Bereichsbedingung für eine Schlüsselspalte vorliegt.

Die Werte für die Schlüsselspalte stammen aus einer Unterabfrage.

Siehe auch:

Liste aller Suchstrategien


RANGE CONDITION FOR INDEX (MaxDB: Hintergrundwissen)

RANGE CONDITION FOR INDEX

RANGE CONDITION FOR INDEX ist eine Suchstrategie.

Diese Suchstrategie kann angewendet werden, wenn die Suchbedingung Gleichheits- oder Bereichsbedingungen für die ersten k Spalten eines Index enthält.

Mit Hilfe der in diesem Bereich liegenden Invertierungslisten wird direkt auf die entsprechenden Tabellenzeilen zugegriffen.

Siehe auch:

Liste aller Suchstrategien


RANGE CONDITION FOR INDEX (SUBQ) (MaxDB: Hintergrundwissen)

RANGE CONDITION FOR INDEX (SUBQ)

RANGE CONDITION FOR INDEX (SUBQ) ist eine Suchstrategie.

Diese Suchstrategie kann angewendet werden, wenn die Suchbedingung Gleichheits- oder Bereichsbedingungen für die ersten k Spalten eines Index enthält.

Die Werte der Indexspalten stammen aus einer Unterabfrage.

Siehe auch:

Liste aller Suchstrategien


INDEX SCAN (MaxDB: Hintergrundwissen)

INDEX SCAN

INDEX SCAN ist eine Suchstrategie.

Es wird eine sequentielle Suche im gesamten angegebenen Index durchgeführt.

Siehe auch:

Liste aller Suchstrategien


TABLE SCAN (MaxDB: Hintergrundwissen)

TABLE SCAN

TABLE SCAN ist eine Suchstrategie.

Es wird eine sequentielle Suche in der gesamten Tabelle durchgeführt.

Siehe auch:

Liste aller Suchstrategien


Kostenermittlung (MaxDB: Hintergrundwissen)

Kostenermittlung

Der Optimierer ermittelt für jede mögliche Suchstrategie die Kosten.

Bei der Kostenermittlung berücksichtigt der Optimierer nur die zu erwartende Anzahl der I/O-Vorgänge, die für die verschiedenen möglichen Suchstrategien durchgeführt werden müssten. Ein I/O-Vorgang überträgt eine Page. Um die voraussichtliche Treffermenge abzuschätzen, führt der Optimierer Stichproben durch und nutzt statistische Informationen, die vom Datenbanksystem geliefert werden.

Der Optimierer berücksichtigt keine Kosten für Ressourcen wie CPU-Zeit oder Speicherauslastung.

Die Kosten einer Suchstrategie hängen im Wesentlichen von der Form der in der SQL-Anweisung angegebenen Suchbedingung ab. SQL-Anweisungen sollten grundsätzlich so geschrieben werden, dass in den Datenbanktabellen nur die Zeilen durchsucht werden, die tatsächlich benötigt werden und außerdem Ergebnis- und Zwischenergebnistabellen so klein wie möglich gehalten werden.

Um zu sehen, welche Kosten der Optimierer für eine bestimmte SQL-Anweisung ermittelt hat, können Sie die EXPLAIN-Anweisung verwenden.


Problemanalyse (MaxDB: Hintergrundwissen)

Problemanalyse

Wenn das Datenbanksystem unverhältnismäßig lange braucht, um eine SQL-Anweisung abzuarbeiten, sollten Sie folgende Schritte unternehmen:

..

1. Untersuchen Sie mit der EXPLAIN-Anweisung, welche Suchstrategie der Optimierer für die SQL-Anweisung verwendet.

2. Überprüfen Sie Ihr Datenbank-Design.


EXPLAIN-Anweisung (MaxDB: Hintergrundwissen)

EXPLAIN-Anweisung

Mit Hilfe der EXPLAIN-Anweisung können Sie herausfinden, welche Suchstrategie der Optimierer für eine SQL-Anweisung auswählt.

Syntax

EXPLAIN <query_statement>

EXPLAIN SELECT *

FROM example

WHERE firstkey > 30

Als Ergebnis einer EXPLAIN-Anweisung wird eine Tabelle zurückgegeben. In der Spalte STRATEGY wird angezeigt, welche Suchstrategie der Optimierer für diese SQL-Anweisung auswählt. In der Spalte PAGECOUNT wird das Ergebnis der Kostenermittlung für die gewählte Suchstrategie angezeigt.

Die EXPLAIN-Anweisung gibt folgende Tabelle zurück:

TABLE NAME | COLUMN_ OR_INDEX | STRATEGY | PAGE COUNT
EXAMPLE | FIRSTKEY | RANGE CONDITION FOR KEY COLUMN RESULT IS NOT COPIED, COSTVALUE IS | 1250 97

Das bedeutet, dass die Tabelle example 1250 Seiten umfasst und die I/O-Kosten für die Ausführung der SQL-Anweisung 97 Seiten betragen.

Eine vollständige Syntaxbeschreibung der EXPLAIN-Anweisung finden Sie im Referenzhandbuch unter EXPLAIN-Anweisung (explain_statement).

Siehe auch:

· EXPLAIN-Anweisung für Joins

· EXPLAIN-Anweisung für komplizierte SELECT-Anweisungen

· EXPLAIN-Anweisung für SELECT-Anweisungen mit Unterabfragen


EXPLAIN-Anweisung für Joins (MaxDB: Hintergrundwissen)

EXPLAIN-Anweisung für Joins

Wenn die EXPLAIN-Anweisung auf Joins angewendet wird, werden folgende Informationen angezeigt:

· Reihenfolge, in der die Tabellen abgearbeitet werden, wenn die SELECT-Anweisung ausgeführt wird

· Ob ausgehend von den Werten in den Joinspalten der alten Zwischenergebnistabelle direkt oder über eine Invertierung auf die Zeilen einer neuen Tabelle zugegriffen werden kann

· Strategie, nach der in der jeweils neuen Tabelle gesucht wird, wenn auf die Zeilen dieser Tabelle nicht direkt oder über eine Invertierung zugegriffen werden kann

EXPLAIN SELECT one.key ten1.keyft1, ten2.keyft2
FROM one, ten1, ten2
WHERE ten1.keyft1 < 100
  AND ten1.ft1    = one.keyf
  AND one.indf    = ten2.keyft2
  AND ten2.keyft2 < 100;

Diese EXPLAIN-Anweisung liefert folgendes Ergebnis zurück:

TABLE NAME

COLUMN_
OR_INDEX

STRATEGY

PAGE COUNT

TEN1

ONE

TEN2

KEYFT1

KEF

KEYFT2

RANGE CONDITION FOR KEY COLUMN

JOIN VIA KEY COLUMN

JOIN VIA KEY COLUMN

RESULT IS COPIED, COSTVALUE IS

1250

125

1463

97

Dieses Ergebnis ist folgendermaßen zu interpretieren:

§ Die Joins der Tabellen werden in der Reihenfolge TEN1, ONE, TEN2 durchgeführt.

§ Die Tabelle TEN1 hat eine Gesamtgröße von 1250 Seiten, die Tabelle ONE hat 125 Seiten und die Tabelle TEN2 hat 1463 Seiten.

§ Die I/O-Kosten für die Ausführung der SQL-Anweisung betragen 97 Seiten.

§ Die Tabelle TEN1 wird über den Schlüssel keyft1 selektiert, auf die Tabellen ONE wird über den Primärschlüssel KEF, auf die Tabelle TEN2 über den Primärschlüssel KEYFT2 zugegriffen.

Siehe auch:

Erläuterungen zu den Beispielen


EXPLAIN-Anweisung für komplizierte SELECT-Anweisungen (MaxDB: Hintergrundwissen)

EXPLAIN-Anweisung für komplizierte SELECT-Anweisungen

Der Optimierer zerlegt komplizierte SELECT-Anweisungen in mehrere interne SELECT-Schritte, die temporäre Ergebnisse erzeugen.

Die EXPLAIN-Anweisung für solche SELECT-Anweisungen liefert als Ausgabe mehrere Suchstrategien. Als Tabellenname wird dabei INTERNAL TEMPORARY RESULT angegeben. Die Suche über solche internen Zwischenergebnisse kann immer nur sequentiell erfolgen.


EXPLAIN-Anweisung für SELECT-Anweisungen mit Unterabfragen (MaxDB: Hintergrundwissen)

EXPLAIN-Anweisung für SELECT-Anweisungen mit Unterabfragen

Um die Kosten für Suchstrategien zu ermitteln, bei denen der Wert einer Spalte mit den Trefferzeilen einer Unterabfrage (subquery) verglichen wird, muss der Optimierer die Anzahl der Trefferzeilen kennen. Die Anzahl der Trefferzeilen ist jedoch erst nach der Abarbeitung der Unterabfrage bekannt.

Die EXPLAIN-Anweisung für eine SELECT-Anweisung mit Unterabfragen ermittelt die möglichen Suchstrategien, ohne die enthaltenen Unterabfragen auszuführen. Daher wird in der Regel für die äußere SQL-Anweisung die Suchstrategie NO STRATEGY NOW (ONLY AT EXECUTION TIME) angezeigt.


Spalte STRATEGY (MaxDB: Hintergrundwissen)

Spalte STRATEGY

Die EXPLAIN-Anweisung liefert als Ergebnis eine Tabelle zurück, die aus mehreren Spalten besteht. In der Spalte STRATEGY wird die Suchstrategie angezeigt, die vom Optimierer für die untersuchte SQL-Anweisung verwendet wird. Die Namen der verschiedenen Suchstrategien und ihre Bedeutung sind in der Liste aller Suchstrategien aufgeführt.

Zusätzlich zur Suchstrategie kann der Optimierer in der Spalte STRATEGY die folgenden Hinweise ausgeben:

Hinweis | Bedeutung
ONLY INDEX ACCESSED | Es wird nur der angegebene Index zur Abarbeitung der SQL-Anweisung benutzt; auf die Daten der Basistabelle wird nicht zugegriffen. Dies ist nur möglich, wenn in der SQL-Anweisung nur solche Spalten angesprochen werden, die in der Indexstruktur enthalten sind.
DISTINCT OPTIMIZATION (A) | Der komplette Schlüssel steht in der SELECT-Liste/den Ausgabespalten. Das Ergebnis ist deshalb automatisch duplikatfrei.
DISTINCT OPTIMIZATION (C) | Complete Secondary Key Nach dem Schlüsselwort DISTINCT sind alle Spalten eines Index (und nur diese) in beliebiger Reihenfolge angegeben (DISTINCT-Spezifikation (distinct_spec)). Es wird nur jeweils einmal auf die Werte der entsprechenden Indexspalten zugegriffen. Eine Ergebnistabelle wird nicht aufgebaut. SELECT DISTINCT <alle_Spalten_des_Index> FROM ...
DISTINCT OPTIMIZATION (P) | Partial Secondary Key Nach dem Schlüsselwort DISTINCT sind die ersten k (k < Gesamtanzahl der Spalten des Index) Spalten eines Index in beliebiger Reihenfolge angegeben. Es wird nur jeweils einmal auf die Werte der entsprechenden Indexspalten zugegriffen. Eine Ergebnistabelle wird nicht aufgebaut. SELECT DISTINCT <ersten_k_Spalten_des_Index> FROM ...
DISTINCT OPTIMIZATION (K) | Primary Key Nach dem Schlüsselwort DISTINCT sind alle Spalten eines Index sowie die ersten k (k <= Gesamtzahl der Spalten des Schlüssels) Spalten des Schlüssels in beliebiger Reihenfolge angegeben. Es wird nur jeweils einmal auf die Werte der entsprechenden Index- und Schlüsselspalten zugegriffen. Eine Ergebnistabelle wird nicht aufgebaut. SELECT DISTINCT <alle_Spalten_des_Index_+_ersten_k_Spalten_des_Schlüssels> FROM ...
TEMPORARY INDEX CREATED | Es wird intern ein temporärer Index aufgebaut, in dem die Schlüssel der über die entsprechenden Indexspalten ermittelten Trefferzeilen in aufsteigender Reihenfolge sortiert vorliegen. Auf die Basistabelle wird über diesen temporären Index zugegriffen.
ADDNL. QUALIFICATION ON INDEX | Es gibt Suchbedingungen für Index- oder Schlüsselspalten, die nicht für die direkte Eingrenzung des Bereichs für einen Indexzugriff verwendet werden können (z. B. wird bei einer Gleichheits-/IN-Bedingung auf der ersten und dritten Spalte eines mehrspaltigen Index nur die erste Suchbedingung von der Suchstrategie zum Zugriff genutzt). Diese Suchbedingungen fließen in die entsprechende Indexstrategie mit ein, indem sie für die Einschränkung der Zugriffe auf die Basistabelle benutzt werden.

Weitere Informationen zur Struktur der Ergebnistabelle finden Sie unter
EXPLAIN-Anweisung im Referenzhandbuch.


Tipps für das Datenbank-Design (MaxDB: Hintergrundwissen)

Tipps für das Datenbank-Design

Neben Suchbedingungen beeinflussen auch die folgenden Faktoren die Abarbeitung von SQL-Anweisungen und somit die Performance von Datenbankanwendungen:

· Art der SQL-Anweisung (SELECT, INSERT, UPDATE, DELETE)

· Elemente einer SELECT-Anweisung (ORDER-Klausel, UPDATE-Klausel, DISTINCT-Spezifikation, Angabe von FOR REUSE),

· Änderungen, die in der UPDATE-Anweisung spezifiziert sind

· Art der physikalischen Speicherung einer Tabelle sowie die Größe der Tabellen (Anzahl der Zeilen und B*-Baum-Seiten)

Viele Performance-Probleme lassen sich vermeiden, wenn Sie die folgenden Tipps beim Design Ihrer Datenbank beachten:

· Die Definition der Tabellen sollte von einer vorher durchgeführten Untersuchung der Strukturen abgeleitet werden. Bei der Definition der Schlüsselspalten sollte beachtet werden, dass diejenigen Spalten, die besonders selektiv sind und für die besonders häufig Suchbedingungen angegeben werden, an den Anfang des Schlüssels gestellt werden. Damit besteht die Möglichkeit, nur einen sehr kleinen Teil der Tabelle bei der Abarbeitung einer SELECT-Anweisung betrachten zu müssen.

· Es sollten nur Spalten mit möglichst hoher Selektivität invertiert werden. Spalten wie z. B. Geschlecht oder Familienstand sollten Sie aufgrund ihrer geringen Anzahl an unterschiedlichen Werten nicht als Indexschlüssel wählen. Diese Spalten könnten nur sehr selten für eine nicht-sequentielle Suche herangezogen werden, da diese meist aufwendiger wäre als die sequentielle Suche.

· Bei relativ statischen Datenbeständen können viele Spalten invertiert werden. Hierbei müssen Sie wie bei der Definition der Schlüsselspalten beachten, dass Sie am Anfang des Index möglichst selektive Spalten, die häufig in Gleichheitsbedingungen verwendet werden, angeben.

· Es sollten möglichst nicht alle Spalten, die in Suchbedingungen benutzt werden, invertiert werden. Der Platz für die Indizes und der Aufwand für ihre Pflege ist beträchtlich.

· Wenn viele Änderungen in einer Tabelle gemacht worden sind, sollte die UPDATE STATISTICS-Anweisung ausgeführt werden.

· Sie sollten nur solche Suchbedingungen formulieren, die nicht von allen Zeilen erfüllt werden. Es werden häufig Anwendungen geschrieben, in denen der Benutzer die Werte einer Suchbedingung bestimmt. Gibt er keine Werte ein, werden Standardwerte in die Suchbedingung eingesetzt, so dass sie immer „wahr“ liefert. Das Datenbanksystem muss nun diese wirkungslose Suchbedingung für jede zu untersuchende Zeile auswerten. Besser ist es, verschiedene SELECT-Anweisungen in Abhängigkeit von einer Benutzereingabe durchzuführen.

· Die selektivsten Suchbedingungen sollten an den Anfang der Bedingung gestellt werden, da die Überprüfung ggf. früher abgebrochen werden kann.

· Die Angabe
columnx IN (1,13,24,...)
kann vom Optimizer besser ausgewertet werden als semantisch gleiche Angabe
columnx=1 OR columnx=13 OR columnx=24 OR ...


Begriffe (MaxDB: Hintergrundwissen)

Begriffe

Invertierte Spalte

Invertierungsliste

Siehe auch:

Dokumentation Datenbankverwaltung, Begriffe


Invertierte Spalte (MaxDB: Hintergrundwissen)

Invertierte Spalte

Eine invertierte Spalte ist eine Spalte, die Bestandteil eines Index ist.


Invertierungsliste (MaxDB: Hintergrundwissen)

Invertierungsliste

Eine Invertierungsliste ist eine Liste von Schlüsseln, die zu einem Index gehört. Für jede Spalte des Index gilt, dass alle Tabellenzeilen, deren Schlüssel in der Liste angegeben sind, für diese Spalte denselben Wert enthalten.


Beispiele (MaxDB: Hintergrundwissen)

Beispiele

Die in dieser Dokumentation verwendeten Beispiele stützen sich auf die folgenden Tabellen und Indizes:

· Tabellen (example, one, ten1, ten2)

· Indizes (invcolumn1, invcolumn2, indf, ind)


example (MaxDB: Hintergrundwissen)

example

Definition der Tabelle example

EXEC SQL CREATE TABLE example
  (firstkey         FIXED (3) KEY,
   secondkey        FIXED (4) KEY,
   normalcolumn     FIXED (5),
   invcolumn1       CHAR (15),
   invcolumn2       CHAR (9),
   multinvcolumn1   CHAR (22),
   multinvcolumn2   CHAR (5,
   multinvcolumn3   CHAR (8,
   PRIMARY KEY (firstkey, secondkey));

Für die Tabelle example werden zwei einspaltige Indizes ( invcolumn1 und invcolumn2 ) und ein mehrspaltiger Index ind definiert.


ind (MaxDB: Hintergrundwissen)

ind

Definition des Index ind

EXEC SQL CREATE INDEX ind ON example (multinvcolumn1, multinvcolumn2, multinvcolumn3);


indf (MaxDB: Hintergrundwissen)

indf

Definition des Index indf

EXEC SQL CREATE INDEX indf on one (indf);


invcolumn1 (MaxDB: Hintergrundwissen)

invcolumn1

Definition des Index invcolumn1

EXEC SQL CREATE INDEX invcolumn1 ON example (invcolumn1);


invcolumn2 (MaxDB: Hintergrundwissen)

invcolumn2

Definition des Index invcolumn2

EXEC SQL CREATE INDEX invcolumn2 ON example (invcolumn2);


one (MaxDB: Hintergrundwissen)

one

Definition der Tabelle one

EXEC SQL CREATE TABLE one
  (keyf         FIXED (6),
   indf         FIXED (3),
   ...,
   PRIMARY KEY (keyf)); /*1000 rows*/

Für die Tabelle one wird der Index indf angelegt.


ten1 (MaxDB: Hintergrundwissen)

ten1

Definition der Tabelle ten1

EXEC SQL CREATE TABLE ten1
  (keyft1         FIXED (6),
   ft1            FIXED (3),
   ...,
   PRIMARY KEY (keyft1)); /*10000 rows*/


ten2 (MaxDB: Hintergrundwissen)

ten2

Definition der Tabelle ten2

EXEC SQL CREATE TABLE ten2
  (keyft2         FIXED (6),
   ...,
   PRIMARY KEY (keyft2)); /*10000 rows*/


High-Availability (MaxDB: Hintergrundwissen)

High-Availability

High-Availability bedeutet, dass ein IT-System kontinuierlich ohne Ausfälle im Einsatz ist.

Ein Datenbanksystem kann sowohl wegen physischer Fehler wie Festplattendefekten, Stromausfall, CPU-Ausfall oder Hauptspeicherdefekten als auch wegen logischer Fehler wie dem Löschen benötiger Software und Daten oder dem Import ungeeigneter Daten ausfallen.

Um die Ausfallsicherheit eines Datenbanksystems zu erhöhen, können Vorkehrungen sowohl auf Hardwareebene als auch auf logischer Ebene getroffen werden.

High-Availability-Strategien gehen über diese klassischen Vorkehrungen gegen Ausfälle hinaus und sind in der Regel nur bei großen oder besonders kritischen Systemen sinnvoll. Folgende High-Availability-Strategien können für das Datenbanksystem eingesetzt werden:

· Schattendatenbanken

· Hot Standby mit Clustering

· Erstellen einer homogenen Systemkopie

Welche dieser Möglichkeiten für Ihr System geeignet ist, hängt von Ihren speziellen Systemanforderungen ab.

Siehe auch:

Sicherheitsleitfaden


Schattendatenbanken (MaxDB: Hintergrundwissen)

Schattendatenbanken

MaxDB unterstützt das Einrichten von Schattendatenbanken für erhöhte Ausfallsicherheit.

Eine Schatteninstanz ist eine Kopie der aktiven Datenbankinstanz (Originalinstanz). Um ihren Datenbankinhalt aktuell zu halten, werden in bestimmten Zeitabständen die Log-Sicherungen der Originalinstanz eingelesen. Die Schatteninstanz bleibt dabei ständig im Betriebszustand ADMIN.

Im Falle eines Problems mit der Originalinstanz können Sie die Schatteninstanz sofort in Betrieb nehmen und ohne längere Ausfallzeiten weiterarbeiten.

Dabei können Sie je nach Konfiguration die Schatteninstanz auch in einen Zustand zu einem bestimmten Zeitpunkt in der Vergangenheit wiederherstellen.

Siehe auch:

Beispiel


Einrichten einer Schatteninstanz (MaxDB: Hintergrundwissen)

Einrichten einer Schatteninstanz

Dieser Abschnitt beschreibt, wie Sie eine Schattendatenbank einrichten.

Vorgehensweise

Verwenden Sie für die folgenden Schritte den Database Manager:

...

1. Legen Sie die Schatteninstanz an, indem Sie eine Kopie Ihrer Originalinstanz erstellen. Verfahren Sie dabei wie in Erstellen einer homogenen Systemkopie (Punkt 1-5) beschrieben. Starten Sie die Kopie jedoch nicht in den Betriebszustand ONLINE, sondern lassen Sie sie im Betriebszustand ADMIN.

Sie sollten die Originalinstanz und die Schatteninstanz auf unterschiedlichen Rechnern einrichten.

2. Legen Sie in der Schatteninstanz ein Sicherungsmedium für das Einlesen von Log-Sicherungen an.

3. Erstellen Sie in Ihrer aktiven Originalinstanz regelmäßig Log-Sicherungen.

4. Spielen Sie diese Log-Sicherungen mit der gewünschten zeitlichen Verzögerung regelmäßig in die Schatteninstanz ein.

Im Database Manager GUI verfahren Sie zum Einspielen der Sicherungen wie in Wiederherstellen ohne Sicherungshistorie beschrieben.

Im Database Manager CLI verwenden Sie die Kommandos zum Wiederherstellen recover_start und recover_replace.

Hinweise

Beachten Sie dabei die folgenden Punkte:

· Die Data-Volumes und Log-Volumes der Schatteninstanz müssen groß genug konfiguriert sein, um die Log-Sicherungen der Originalinstanz einlesen zu können.

· Die beiden Instanzen dürfen nicht auf dieselben Dateien zugreifen, d.h. ihre Arbeitsverzeichnisse müssen physikalisch unterschiedlich sein.

· Sie können die Datensicherung über Pipes transportieren. Log-Sicherungen können Sie per ftp transportieren oder über ein exportiertes Dateisystem (z.B. NFS oder Shared File System) kopieren.


Inbetriebnahme der Schatteninstanz als aktive Instanz (MaxDB: Hintergrundwissen)

Inbetriebnahme der Schatteninstanz als aktive Instanz

Wenn Sie Probleme mit Ihrer aktiven Originalinstanz haben, dann können Sie sie stoppen und die Schatteninstanz in den Betriebszustand ONLINE bringen. Die Schatteninstanz kann dann sofort die Rolle der aktiven Instanz übernehmen.

Datenverlust

Beachten Sie, dass bei der hier beschriebenen Vorgehensweise die Schatteninstanz nach dem Starten keine Datenänderungen enthält, die noch nicht mit Log-Sicherungen aus der Originalinstanz eingelesen wurden.

Wenn Sie die Schatteninstanz ohne Datenverlust oder in einem Zustand zu einem Zeitpunkt in der Vergangenheit starten wollen, haben Sie je nach Konfiguration und Zustand der Originalinstanz folgende Möglichkeiten:

· Einspielen der Log-Sicherungen bis zu einem bestimmten Zeitpunkt

· Einspielen einer weiteren manuellen Logsicherung der Originalinstanz

· Kopieren der Log-Volumes der Originalinstanz

Voraussetzungen

· Sie haben eine Schatteninstanz eingerichtet.

· Die Schatteninstanz war seit ihrer letzten Initialisierung nicht im Betriebszustand ONLINE.

Vorgehensweise

Verwenden Sie für die folgenden Schritte den Database Manager:

...

1. Stellen Sie sicher, dass die Originalinstanz im Betriebszustand OFFLINE ist.

2. Starten Sie die Schatteninstanz in den Betriebszustand ONLINE.

3. Stellen Sie in der gestarteten Schatteninstanz Indizes, die nicht mehr aktuell sind (BAD INDEXES), wieder her.

Im Database Manager GUI verfahren Sie dabei wie in Wiederherstellen der Indizes nach Datenbankwiederherstellung beschrieben.

Im Database Manager CLI verwenden Sie das Kommando sql_recreateindex zum Wiederherstellen eines beschädigten Indexes.

4. Erstellen Sie eine vollständige Datensicherung der Schatteninstanz.

Ergebnis

Sie können die bisherige Schatteninstanz jetzt als aktive Datenbankinstanz betreiben. Die Originalinstanz kann zur Schatteninstanz werden. Initialisieren Sie dazu die Originalinstanz und verfahren Sie dann wie in Einrichten einer Schatteninstanz beschrieben.


Einspielen der Log-Sicherungen bis zu einem bestimmten Zeitpunkt (MaxDB: Hintergrundwissen)

Einspielen der Log-Sicherungen bis zu einem bestimmten Zeitpunkt

Sie können die Schatteninstanz in einem bestimmten Zustand der Vergangenheit starten, zum Beispiel wenn durch eine Operation in der Originalinstanz ein Datenverlust entstand und Sie den Zustand davor wiederherstellen wollen.

Voraussetzungen

· Sie haben eine Schatteninstanz eingerichtet.

· Die Schatteninstanz war seit ihrer letzten Initialisierung nicht im Betriebszustand ONLINE.

· Sie haben die Log-Sicherungen aus der Originalinstanz nur bis zu einem Zeitpunkt eingespielt, der zeitlich vor dem von Ihnen gewünschten Zeitpunkt liegt.

Vorgehensweise

Wenn Sie die Log-Sicherungen aus der Originalinstanz jeweils automatisch in die Schatteninstanz einspielen lassen, dann brechen Sie diesen Vorgang ab (recover_cancel) und spielen Sie die noch fehlenden Log-Sicherungen bis zu dem gewünschten Zeitpunkt manuell ein. Verfahren Sie dabei folgendermaßen:

· Im Database Manager GUI wählen Sie beim Einspielen der Log-Sicherung, die den entsprechenden Zeitraum betrifft, die Option Wiederherstellen bis zu einem bestimmten Zeitpunkt (siehe auch: Wiederherstellen ohne Sicherungshistorie).

· Im Database Manager CLI verwenden Sie beim Einspielen der Log-Sicherung, die den entsprechenden Zeitraum betrifft, das Kommando recover_start mit der Option UNTIL <date> <time> (siehe auch: Kommandos zum Wiederherstellen).

Ergebnis

Die Log-Einträge werden in der Schatteninstanz nur bis zu dem gewünschten Zeitpunkt eingespielt. Änderungen, die Sie nach diesem Zeitpunkt in der Originalinstanz vorgenommen hatten, sind in der Schatteninstanz unwirksam.

Sie können die Schatteninstanz jetzt als aktive Instanz in Betrieb nehmen.


Einspielen einer weiteren manuellen Log-Sicherung (MaxDB: Hintergrundwissen)

Einspielen einer weiteren manuellen Log-Sicherung

Wenn es möglich ist, noch eine manuelle (interaktive) Log-Sicherung in der Originalinstanz zu erstellen, dann können Sie die Schatteninstanz ohne Datenverlust starten, so dass sie im gleichen Zustand ist wie die Originalinstanz.

Voraussetzungen

· Sie haben eine Schatteninstanz eingerichtet.

· Die Schatteninstanz war seit ihrer letzten Initialisierung nicht im Betriebszustand ONLINE.

· Die Log-Volumes der Originalinstanz sind unbeschädigt.

· Sie können in der Originalinstanz im Betriebszustand ADMIN eine Log-Sicherung erstellen.

Vorgehensweise

...

1. Erstellen Sie eine interaktive Log-Sicherung in der Originalinstanz.

2. Spielen Sie diese Log-Sicherung in die Schatteninstanz ein.

Ergebnis

Sie können die Schatteninstanz jetzt als aktive Instanz in Betrieb nehmen.


Kopieren der Log-Volumes der Originalinstanz (MaxDB: Hintergrundwissen)

Kopieren der Log-Volumes der Originalinstanz

Wenn die Log-Volumes der Originalinstanz unbeschädigt sind und es möglich ist, ihren Inhalt mit Betriebssystemmitteln in die Log-Volumes der Schatteninstanz zu übertragen, dann können Sie die Schatteninstanz ohne Datenverlust oder in einem Zustand der Vergangenheit starten.

Voraussetzungen

· Sie haben eine Schatteninstanz eingerichtet.

· Die Schatteninstanz war seit ihrer letzten Initialisierung nicht im Betriebszustand ONLINE.

· Die Log-Volumes der Originalinstanz sind unbeschädigt.

· Die Anzahl und Größe der Log-Volumes der beiden Instanzen sind gleich.

· Die Originalinstanz ist im Betriebszustand OFFLINE.

Vorgehensweise

...

1. Wenn Sie die Log-Sicherungen aus der Originalinstanz jeweils automatisch in die Schatteninstanz einspielen lassen, dann brechen Sie diesen Vorgang ab (recover_cancel).

2. Kopieren Sie die Log-Volumes mit Betriebssystemmitteln von der Originalinstanz in die Schatteninstanz.

3. Spielen Sie die noch fehlenden Log-Sicherungen aus der Originalinstanz in die Schatteninstanz ein.

Ergebnis

Sie können die Schatteninstanz jetzt als aktive Instanz in Betrieb nehmen.

Dabei können Sie die Schatteninstanz in einem Zustand zu einem bestimmten Zeitpunkt der Vergangenheit starten.

Im Database Manager GUI wählen Sie dazu Instance ® Restart Until.

Im Database Manager CLI verwenden Sie das Kommando db_online –u.


Beispiel: Schattendatenbank (MaxDB: Hintergrundwissen)

Beispiel: Schattendatenbank

Dieses Beispiel eines Eingabeskripts zeigt, wie Sie mit dem Database Manager CLI eine Schatteninstanz einrichten und als aktive Instanz in Betrieb nehmen können.

Detaillierte Erläuterungen zum Arbeiten mit dem Administrationswerkzeug Database Manager CLI und zur Bedeutung der einzelnen DBM-Kommandos finden Sie in der Dokumentation Database Manager CLI.

Eingabeskript

Instanz in den Zustand ADMIN überführen:
db_offline
db_admin

Anlegen eines Sicherungsmediums in der Schatteninstanz für das Einspielen der vollständigen Datensicherung aus der Originalinstanz:
medium_put <medium_name_data> <path_data> <medium_type> DATA

Initialisieren der bestehenden Schatteninstanz und Einspielen der Datensicherung:
util_connect
db_activate RECOVER <medium_name_data>
util_release

Anlegen eines Sicherungsmediums in der Schatteninstanz für das Einspielen der Log-Sicherungen aus der Originalinstanz:
medium_put <medium_name_log> <path_log>\save.log FILE LOG

Die Log-Sicherungen werden automatisch durchnummeriert jeweils in der Datei save.log <nnn> im Pfad <path_log> abgelegt. Um herauszufinden, welche Log-Sicherung zuerst eingespielt werden muss, geben Sie den Befehl db_restartinfo ein. Die Zeile Used Log Page zeigt an, aus welcher Logseite als nächstes Log-Einträge eingelesen werden müssen.

Die Log-Historie im Originalsystem zeigt an, welche Logseiten die jeweilige Log-Sicherung enthält. Informationen zur Log-Historie erhalten Sie mit den folgenden Befehlen: backup_history_open
backup_history_list
backup_history_close.

Einspielen der Log-Sicherungen:
db_offline
db_admin
util_connect
recover_start <medium_name_log> LOG 001
recover_replace <medium_name_log> <path_log>\save.log 002
recover_replace <medium_name_log> <path_log>\save.log 003
...

Inbetriebnahme der Schatteninstanz als aktive Instanz:
recover_ignore

Die Schatteninstanz enthält in diesem Fall nicht die Änderungen, die noch nicht mit Log-Sicherungen aus der Originalinstanz eingespielt wurden.

Sie können das Einspielen der Log-Sicherungen auch abbrechen, ohne die Schatteninstanz gleichzeitig in den Betriebszustand ONLINE zu starten. Verwenden Sie dazu das Kommando recover_cancel. Die Datenbankinstanz wird in den Zustand OFFLINE gesetzt. Bevor Sie weitere Kommandos angeben können, müssen Sie die Schatteninstanz deshalb mit dem Kommando db_admin wieder in den Betriebszustand ADMIN bringen.

Siehe auch:

Übersicht aller DBM-Kommandos


Hot Standby (MaxDB: Hintergrundwissen)

Hot Standby

Hot Standby ist eine High Availability-Strategie, die bei Ausfall der aktiven Datenbankinstanz einen schnellen Wechsel auf eine parallel laufende Standby-Datenbankinstanz ermöglicht.

Ein Hot Standby-System besteht aus einer aktiven Master-Instanz (Master-Komponente) und einer oder mehreren Standby-Komponenten, die in einer Cluster-Konfiguration installiert sind (siehe auch Architektur eines Hot Standby-Systems). Das Hot Standby-System verhält sich nach außen hin wie eine normale einzelne Datenbankinstanz.

Im Falle eines Fehlers in der Master-Instanz kann eine Standby-Komponente wesentlich schneller als in einer Standard-Clusterlösung und ohne Datenverluste automatisch die Rolle der Master-Komponente übernehmen. Dies wird durch einen speziellen Fail-Over-Mechanismus der Cluster-Software gewährleistet.

Einrichten eines Hot Standby-Systems

Um ein Hot Standby-System einzurichten, installieren Sie eine Datenbankinstanz, die zunächst die Rolle der Master-Komponente übernimmt. Dann fügen Sie die gewünschte Anzahl von Standby-Komponenten hinzu.

Beim Initialisieren einer neuen Standby-Komponente kopiert das Speicherverwaltungssystem den kompletten Inhalt des Datenbereichs der Master-Komponente in einem konsistenten Zustand, also z. B. den Zustand beim letzten Savepoint, in den Datenbereich der Standby-Komponente.

Siehe auch:

Systemanforderungen

Database Manager CLI: Einrichten eines Hot Standby-Systems

Database Manager GUI: Master-Komponente einrichten (Hot Standby) und Standby-Komponente hinzufügen (Hot Standby)


Systemanforderungen (MaxDB: Hintergrundwissen)

Systemanforderungen

Um ein Hot Standby-System einzurichten, benötigen Sie neben der Datenbanksoftware eine Cluster-Lösung und ein Speicherverwaltungssystem.

Datenbanksoftware

Hot Standby-Systeme können für MaxDB-Datenbanken ab der Version 7.5.08 eingerichtet werden.

Cluster-Lösung

Eine Cluster-Lösung ermöglicht eine logische Kopplung mehrerer physikalischer Komponenten, also keine Hardware-seitige Kopplung. Ein Hot Standby-System besteht aus zwei oder mehr Rechnern in einer Cluster-Konfiguration.

Die Cluster-Software muss einen speziellen Fail-Over-Mechanismus zur Verfügung stellen, der im Fehlerfall den Rollentausch zwischen Master- und Standby-Komponente erlaubt. Hierzu ist eine ständige Überwachung der Hot Standby-Komponenten durch die Cluster-Software notwendig. Da die Master- und Standby-Komponenten innerhalb der Cluster-Konfiguration jeweils eine eigene interne Netzwerkadresse besitzen, muss die Cluster-Software IP-Switching unterstützen.

Für die folgende Cluster-Lösung wurde die Einrichtung eines Hot Standby-Systems mit MaxDB getestet: IBM High Availability Cluster Multiprocessing for AIX clustering software.

Speicherverwaltungssystem

Die Volumes der Master- und Standby-Komponenten müssen in einem Speicherverwaltungssystem liegen, das folgende Voraussetzungen erfüllt:

· Die Komponenten können gemeinsam auf den Log-Bereich zugreifen.

· Es sind zwei unterschiedliche Zugriffsberechtigungen auf den Log-Bereich möglich: nur lesend („Read only“) und lesend und schreibend („Read and write“).

· Jedes Data-Volume hat einen eigenen physikalischen Speicherbereich.

· Die Data-Volumes lassen sich mit demselben Namen ansprechen oder es kann ein entsprechender symbolischer Link eingerichtet werden.

· Es lassen sich konsistente Kopien der Data-Volumes („Split“) erstellen. Während des Erstellens der Kopie ist es der Master-Komponente möglich, weiter auf ihr Data-Volume zu schreiben, so dass Ausfallzeiten minimal bleiben. Nach dem Split sind die Data-Volumes der Master- und der Standby-Komponenten vollständig unabhängig voneinander.

· Bei der Initialisierung von Standby-Komponenten und im Fehlerfall müssen unter Umständen große Datenmengen kopiert werden. Deshalb sollte ein Speicherverwaltungssystem eingesetzt werden, mit dem Daten schnell kopiert und sofort weitergearbeitet werden kann.

Folgende Speicherverwaltungssysteme erfüllen diese Voraussetzungen und unterstützen die Einrichtung eines Hot Standby-Systems mit MaxDB: EMC Symmetrix, IBM TotalStorage Enterprise Storage Server (ESS), IBM TotalStorage SAN Volume Controller (SVC).


Architektur eines Hot Standby-Systems (MaxDB: Hintergrundwissen)

Architektur eines Hot Standby-Systems

Ein Hot Standby-System besteht aus einer Master- und einer oder mehreren Standby-Komponenten. Das Hot Standby-System verhält sich nach außen hin wie eine normale einzelne Datenbankinstanz. Innerhalb des Cluster-Systems kommunizieren die einzelnen Komponenten miteinander über interne, lokale Rechneradressen.

Um das Hot Standby-System von außen anzusprechen, werden der gemeinsame Name der Datenbankinstanz und der offizielle Name der Komponente benötigt, auf der die Datenbank läuft. Wenn die Master-Komponente ausfällt, geht dieser offzielle Name auf die Standby-Komponente über, die die Masterfunktion übernimmt.

Die Standby-Komponenten befinden sich im Betriebszustand STANDBY, der einem Zustand zwischen den Betriebszuständen ADMIN und ONLINE entspricht. Eine Standby-Komponente ist im STANDBY-Betrieb keine echte Instanz; dazu wird sie erst nach einem Ausfall der Master-Instanz, wenn sie deren Funktion übernimmt.

Master- und Standby-Komponenten verfügen jeweils über eigene, voneinander unabhängige Daten-Bereiche. Sie greifen jedoch auf denselben Log-Bereich zu. Die Standby-Komponenten haben dabei nur lesenden Zugriff.

Um sich gegen Hardware-Fehler zu schützen, sollten Sie den Log-Bereich spiegeln.

Schattendatenbanken haben im Gegensatz zu Hot Standby-Systemen getrennte Log-Bereiche für alle Instanzen.

Master- und Standby-Komponenten besitzen jeweils einen eigenen Kern, eigene Caches, einen eigenen X-Server und DBM-Server etc. Sie verwenden jedoch dieselben Datenbankparameter.

Siehe auch:

Synchronisation von Master- und Standby-Komponenten


Synchronisation von Master- und Standby-Komponenten (MaxDB: Hintergrundwissen)

Synchronisation von Master- und Standby-Komponenten

Standby-Komponenten in einem Hot Standby-System werden ständig mit der Master-Komponente synchronisiert. Die Log-Einträge, die die Master-Komponente in den Log-Bereich schreibt, werden in den Standby-Komponenten automatisch nachgefahren.

Der Datenbestand einer Standby-Komponente entspricht mit einer Verzögerung immer dem Datenbestand der Master-Komponente. Sie können diese Zeitverzögerung über den speziellen Datenbankparameter HS_DELAY_TIME konfigurieren.

Im Gegensatz zu Standby-Komponenten werden bei einer Schatteninstanz nur periodisch Log-Sicherungen eingelesen.

Die Synchronisation der Standby-Komponenten mit der Master-Komponente wird vom System in bestimmten Zeitabständen angestoßen. Um das Nachfahren der Änderungen seit der letzten Synchronisation zu ermöglichen, informiert die Master-Komponente die Standby-Komponenten regelmäßig (spezieller Datenbankparameter HS_SYNC_INTERVAL), bis zu welcher Position neue Log-Einträge geschrieben wurden. Die Standby-Komponenten melden dann zurück, bis wohin sie den Log bisher gelesen haben und fahren dann die Log-Einträge bis zu einem bestimmten Zeitpunkt (HS_DELAY_TIME) nach.

Master- und Standby-Komponenten verwenden dieselben Datenbankparameter. Wenn eine neue Standby-Komponente eingerichtet wird, erhält sie eine exakte Kopie der Parameter der Master-Komponente. Änderungen der Parameter werden immer an der Master-Komponente vorgenommen und automatisch an alle Standby-Komponenten übertragen.


Verhalten des Hot Standby-Systems im Fehlerfall (MaxDB: Hintergrundwissen)

Verhalten des Hot Standby-Systems im Fehlerfall

Die Cluster-Software überwacht ständig die Master-Komponente des Hot Standby-Systems. Wenn die Master-Komponente ausfällt, bestimmt die Cluster-Software eine der Standby-Komponenten zur neuen Master-Komponente und sendet eine entsprechende Information an die Standby-Komponente.

Die neue Standby-Komponente übernimmt von der alten Master-Komponente den offiziellen Namen, unter dem das System von außen angesprochen wird.

Die Standby-Komponente erhält Schreibrechte für das Log-Volume und fährt die letzten noch nicht gelesenen Log-Einträge, insbesondere auch alle mit einem COMMIT abgeschlossenen Transaktionen, nach. Dann geht sie automatisch in den Betriebszustand ONLINE.

Die Hot Standby-Konfiguration bietet keine Absicherung gegen vom Benutzer oder einer Anwendung verursachte Fehler und Inkonsistenzen. Um sich gegen derartige Fehler abzusichern, müssen Sie auch in einem Hot Standby-System regelmäßig Daten- und Log-Sicherungen durchführen.

In einem solchen Fall muss auf das Einspielen von Daten- und Log-Sicherungen bis zu einem bestimmten Zeitpunkt zurückgegriffen werden. Informationen hierzu finden Sie in den Dokumentationen Database Manager GUI: Wiederherstellen von Daten und Database Manager CLI: Sichern und Wiederherstellen von Datenbankinstanzen.


Erstellen einer homogenen Systemkopie (MaxDB: Hintergrundwissen)

Erstellen einer homogenen Systemkopie

Verwendung

Sie möchten eine Kopie Ihrer Datenbankinstanz erzeugen, zum Beispiel zu Test- oder Entwicklungszwecken oder um eine Schattendatenbank einzurichten.

Voraussetzungen

Abhängig vom Typ der Datenbankinstanz, die kopiert werden soll, geltende unterschiedliche Voraussetzungen:

· Datenbankinstanztyp OLTP oder Archive: Die Prozessor-Architekturen des Quell- und Zielrechners müssen kompatibel sein.

· Datenbankinstanztyp liveCache: Sowohl die Prozessor-Architekturen als auch die Betriebssysteme des Quell- und Zielrechners müssen identisch sein, und auf beiden Rechnern müssen die gleichen DB-Prozeduren verwendet werden.

Vorgehensweise

Verwenden Sie für die folgenden Schritte den Database Manager.

...

1. Erstellen Sie eine vollständige Datensicherung der Originalinstanz.

2. Initialisieren Sie eine vorhandene Zielinstanz, oder installieren Sie eine neue Zielinstanz for recovery.
Die Zielinstanz muss vom gleichen Datenbankinstanztyp sein wie die Originalinstanz und die gleiche Softwareversion 7.x haben.

Die Zielinstanz darf vor dem Einspielen der Datensicherung aus der Originalinstanz (Schritt 5) nicht in den Betriebszustand ONLINE gebracht werden. Falls die Zielinstanz bereits einmal ONLINE war, initialisieren Sie sie neu.

3. Konfigurieren Sie die Data-Volumes der Zielinstanz groß genug, um eine vollständige Datensicherung der Originalinstanz einlesen zu können, z. B. 10 Prozent größer als die vollständige Datensicherung der Originalinstanz.

4. Legen Sie in der Zielinstanz ein Sicherungsmedium für das Einlesen von Datensicherungen an. Das verwendete Medium muss kompatibel sein mit dem Medium, mit dem Sie die vollständige Datensicherung der Originalinstanz erzeugt haben.

5. Spielen Sie die vollständige Datensicherung der Originalinstanz in die Zielinstanz ein.

Mit dem Database Manager GUI verfahren Sie dabei wie im Abschnitt Wiederherstellen ohne Sicherungshistorie beschrieben.

6. Starten Sie die Zielinstanz.

7. Aktualisieren Sie in der Zielinstanz die Systemtabellen.

8. Stellen Sie in der Zielinstanz Indizes, die nicht mehr aktuell sind (BAD INDEXES), wieder her.

Beispiel

Homogene Systemkopie mit dem Database Manager CLI


Betriebssystem-Kompatibilität für homogene Systemkopien (MaxDB: Hintergrundwissen)

Betriebssystem-Kompatibilität für homogene Systemkopien

Wenn Sie eine homogene Systemkopie Ihrer Datenbankinstanz erstellen möchten, müssen die Prozessor-Architekturen des Quell- und Zielrechners kompatibel sein. Für MaxDB-Datenbankinstanzen gilt die folgende Verträglichkeitsmatrix:

 | Win32 | Win64 | Linux 32 | Linux 64 | Tru64 | AIX | HP-UX | Solaris
Win32 | . | . | . | . | . |  |  |
Win64 | . | . | . | . | . |  |  |
Linux 32 | . | . | . | . | . |  |  |
Linux 64 | . | . | . | . | . |  |  |
Tru64 | . | . | . | . | . |  |  |
AIX |  |  |  |  |  | . | . | .
HP-UX |  |  |  |  |  | . | . | .
Solaris |  |  |  |  |  | . | . | .

Die Medien für das Erstellen und Einspielen der Datensicherung müssen ebenfalls kompatibel sein.


Homogene Systemkopie mit dem Database Manager CLI (MaxDB: Hintergrundwissen)

Homogene Systemkopie mit dem Database Manager CLI

Mit den folgenden DBM-Kommandos können Sie eine homogene Systemkopie Ihrer Datenbankinstanz erzeugen.

Sicherungsmedium für vollständige Datensicherungen in der Originalinstanz anlegen:

dbmcli -d TST -u dbm,dbm medium_put databasecopy /usr/sapdb/dbcopy FILE DATA 0 0 NO

Vollständige Datensicherung der Originalinstanz erstellen:

dbmcli -d TST -u dbm,dbm -uUTL -c backup_start databasecopy

Zielinstanz installieren:

dbmcli -s –R <dependent_path> db_create TST1 dbm,dbm

Datenbankparameter aus der Originalinstanz übernehmen und anpassen:

dbmcli -d TST1 -u dbm,dbm -uSRV -c recover_config databasecopy
dbmcli -d TST1 -u dbm,dbm
  > param_startsession
  > param_put RUNDIRECTORY <newrundirectory>
  > param_put DIAG_HISTORY_PATH <newdiaghistorypath>
  > param_checkall
  > param_commitsession

Data-Volumes der Zielinstanz konfigurieren:

dbmcli -d TST1 -u dbm,dbm param_addvolume DATA <newdatavolume> <datatype> <datasize>
dbmcli -d TST1 -u dbm,dbm param_addvolume LOG <newlogvolume> <logtype> <logsize>

Sicherungsmedium in der Zielinstanz anlegen:

dbmcli -d TST1 -u dbm,dbm medium_put databasecopy /usr/sapdb/dbcopy FILE DATA 0 0 NO

Zielinstanz in den Betriebszustand ADMIN bringen:

dbmcli -d TST1 -u dbm,dbm db_admin

Zielinstanz initialisieren:

dbmcli -d TST1 -u dbm,dbm util_execute INIT CONFIG

Vollständige Datensicherung der Originalinstanz in die Zielinstanz einspielen:

dbmcli -d TST1 -u dbm,dbm -uUTL -c recover_start databasecopy

Zielinstanz in den Betriebszustand ONLINE bringen:

dbmcli -d TST1 -u dbm,dbm db_online

Systemtabellen laden, Kennwörter für SYSDBA- und DOMAIN-Benutzer vergeben:

dbmcli –d TST1 –u dbm,dbm load_systab –u <sysdba>,<password> -ud <password2>


Performance (MaxDB: Hintergrundwissen)

Performance

Beim Einrichten einer neuen Datenbankinstanz treffen Sie Entscheidungen, die später großen Einfluss auf die Performance im laufenden Betrieb haben können.

· Für eine gute I/O-Performance beachten Sie die Tipps für das Einrichten der Datenbankinstanz.

· Für kurze Zugriffszeiten bei Datenabfragen beachten Sie die Tipps für das Datenbank-Design.

· Wählen Sie geeignete Datenbankparameter.

Um die Performance im laufenden Betrieb zu analysieren, stehen Ihnen der Database Analyzer und weitere Datenbankwerkzeuge zur Verfügung.

Das Datenbanksystem führt intern ein Load-Balancing durch und optimiert den Datenzugriff mit Hilfe des SQL-Optimierers.


Tipps für das Einrichten der Datenbankinstanz (MaxDB: Hintergrundwissen)

Tipps für das Einrichten der Datenbankinstanz

Um eine gute I/O-Performance im laufenden Betrieb zu erreichen, beachten Sie beim Einrichten einer neuen Datenbankinstanz die folgenden Tipps.

· Wenn Sie mehrere Datenbankinstanzen betreiben wollen, dann installieren Sie jede Datenbankinstanz auf einem separaten Rechner.

· Data-Volumes und Log-Volumes sollten auf verschiedenen Platten liegen. Weil in den Log-Volumes alle Datenänderungen protokolliert werden, sind sie die Bereiche der Datenbankinstanz mit der höchsten Schreibaktivität.

· Auch wenn Sie RAID-5-Systeme nutzen, sollten Sie die Datenbankinstanz mit mehreren Data-Volumes konfigurieren. Da einige Parallelisierungstechniken des Datenbanksystems von der Anzahl der konfigurierten Data-Volumes abhängen, erzielen Sie mit mehreren Data-Volumes eine bessere Performance als mit einem.

· Die Log-Volumes sollten nicht auf RAID-5-Systemen, sondern nur auf dedizierten Platten oder RAID-1-Systemen angelegt werden.

· Swap- oder Paging-Bereiche sollten nicht auf derselben Platte wie die Log-Einträge liegen.

· Auf UNIX-Systemen sollten Sie für die Data- und Log-Volumes Raw-Devices verwenden, weil der Zugriff auf Daten in Raw-Devices im Allgemeinen schneller ist als der Zugriff auf Daten in Dateien.


Load-Balancing (MaxDB: Hintergrundwissen)

Load-Balancing

Das Load-Balancing dient dazu, Tasks optimal auf die zur Verfügung stehenden User-Kernel-Threads zu verteilen. Hierdurch erreicht das Datenbanksystem insbesondere auf Rechnern mit mehreren Prozessoren eine bessere Ressourcenauslastung und damit für die einzelnen Benutzer zu kürzeren Antwortzeiten.

Load-Balancing ist für Datenbankinstanzen ab der Version 7.4.03 möglich.

Das Betriebssystem hat keinen Einfluss darauf, wie Tasks vom Datenbanksystem auf die zur Verfügung stehenden User-Kernel-Threads verteilt werden. Es kann daher nicht eingreifen, wenn z. B. ein User-Kernel-Thread einen Prozessor zu 100% auslastet, die anderen drei Prozessoren des Rechners jedoch überhaupt nicht genutzt werden.

Tasks verhalten sich in einem User-Kernel-Thread grundsätzlich kooperativ. Sie entscheiden selbst darüber, wann sie sich suspendieren und die nächste wartende Task im selben User-Kernel-Thread weiterarbeiten lassen. Dieses Verhalten kann dazu führen, dass eine einzelne Task alle anderen Tasks im selben User-Kernel-Thread lange blockiert.

Beim Load-Balancing koordiniert der Timer-Thread die Verteilung der Tasks auf die einzelnen User-Kernel-Threads. Der Timer fragt in regelmäßigen Abständen ab, wie lange die einzelnen Tasks in den User-Kernel-Threads bereits gewartet haben und summiert diese Wartezeiten für jeden User-Kernel-Thread auf.

Wenn die Summe der Wartezeiten in einem User-Kernel-Thread sehr viel größer ist als in einem anderen, dann veranlasst der Timer, dass diejenige Task, die im ersten User-Kernel-Thread am längsten gewartet hat, in den zweiten User-Kernel-Thread verschoben wird.

User-Kernel-Thread UKT1 enthält die Tasks T1, T2, T3, UKT2 die Task T4. T1 befindet sich in einer langen Schleife, während T2 und T3 warten.

Die Summe der Wartezeiten in UKT1 beträgt 210 ms, in UKT 2 jedoch nur 10 ms. Deswegen wird T2, die in UKT1 am längsten gewartet hat, in UKT2 verschoben.

Load-Balancing aktivieren

Um das Load-Balancing zu aktivieren, setzen Sie den speziellen Datenbankparameter LOAD_BALANCING_CHK auf einen Wert größer als Null.

Siehe auch:

Database Manager GUI, Datenbankparameter anzeigen und ändern

Database Manager CLI, Ändern des Werts eines Datenbankparameters


SAP-Sicherheitsleitfaden: MySQL MaxDB

Die folgenden Abschnitte beschreiben die Sicherheitsmaßnahmen, die Sie für das Datenbanksystem MySQL MaxDB einhalten sollten.

· Schutzmaßnahmen für Datenbank-Standardbenutzer

· Maßnahmen unter UNIX

· Maßnahmen unter Microsoft Windows

Informationen zum Datenbanksystem MaxDB finden Sie in der Dokumentation Datenbankverwaltung.

Weiterführende Dokumentationen: Übersicht der Dokumentation


Schutzmaßnahmen für Datenbank-Standardbenutzer (MaxDB: SAP-Sicherheitsleitfaden: MySQL MaxDB)

Schutzmaßnahmen für Datenbank-Standardbenutzer

Folgende Schutzmaßnahmen für die Datenbank-Standardbenutzer sollten Sie ergreifen:

· Kennwörter der Standardbenutzer ändern

· Serverberechtigungen für Benutzer ändern

Kennwörter der Standardbenutzer ändern

Um die Standardbenutzer des Datenbanksystems zu schützen, sollten Sie deren Kennwörter ändern.

Gegebenenfalls können Sie auch die Eigenschaft SECONDPASSWORD zuweisen, um für einen Benutzer ein zweites Kennwort zu definieren. Sie können damit zeitweise anderen Personen eine Arbeit mit dem Benutzerkonto erlauben, ohne dass dazu das Originalkennwort weitergegeben oder geändert werden muss.

Voraussetzung

Die Datenbankinstanz befindet sich in einem Betriebszustand, in dem das Ändern des Kennworts für den betreffenden Benutzer möglich ist.

Benutzer | Name | Erforderlicher Betriebszustand
<DBM_user> | Erster Database Manager-Benutzer (DBM-Benutzer) | OFFLINE
<SYSDBA_user> | Datenbanksystemadministrator (SYSDBA-Benutzer) | ONLINE
DOMAIN | DOMAIN-Benutzer | ONLINE

Vorgehensweise

Database Manager GUI: Ändern eines Benutzerkennworts

Database Manager CLI: Ändern der DBM-Benutzerdaten

Serverberechtigungen für Benutzer ändern

Wir empfehlen Ihnen, den Benutzern Serverberechtigungen individuell zuweisen. So verteilen Sie die verschiedenen Verwaltungsaufgaben auf mehrere Benutzer und Administratoren.

Vorgehensweise

Database Manager GUI: Ändern der Serverberechtigungen

Database Manager CLI: Ändern der DBM-Benutzerdaten

Ändern der Database Manager-Benutzer (DBM-Benutzer) mit dem Database Manager CLI

Fügen Sie für den DBM-Benutzer DBM folgende Serverberechtigung hinzu: Datenbankinstanz starten

Löschen Sie für den DBM-Benutzer DBM folgende Serverberechtigung: Datenbankinstanz stoppen

user_put DBM SERVERRIGHTS=+StartDB, -StopDB


Maßnahmen unter UNIX (MaxDB: SAP-Sicherheitsleitfaden: MySQL MaxDB)

Maßnahmen unter UNIX

Die folgenden Abschnitte beschreiben die Maßnahmen, die Sie für das Datenbanksystem unter UNIX ergreifen müssen:

· Schutzmaßnahmen für die Betriebssystembenutzer

· Berechtigungskonzept für datenbankbezogene Ressourcen


Schutzmaßnahmen für Betriebssystembenutzer (MaxDB: SAP-Sicherheitsleitfaden: MySQL MaxDB)

Schutzmaßnahmen für Betriebssystembenutzer

Um die Betriebssystembenutzer zu schützen, ändern Sie deren Kennwörter.

Benutzer | Typ | Änderung des Kennworts
<sid>adm | UNIX-Benutzer | UNIX-Befehl passwd
sqd<sid> | UNIX-Benutzer | UNIX-Befehl passwd

Kennwörter von <sid>adm und sqd<sid> ändern

1. Melden Sie sich als Benutzer <sid>adm an.

2. Geben Sie hinter der UNIX-Eingabeaufforderung den Befehlt passwd ein.

3. Geben Sie das alte und das neue Kennwort ein.

Wiederholen Sie die Vorgehensweise für den Benutzer sqd<sid>.

Wenn Sie den Network Information Service (NIS) verwenden, sollten Sie auch im NIS-Leitfaden und der Betriebssystemdokumentation nachlesen, da sich die Änderung des Kennworts mit einem aktiven NIS von der Änderung mit passwd unterscheiden kann.


Berechtigungskonzept für datenbankbezogene Ressourcen (MaxDB: SAP-Sicherheitsleitfaden: MySQL MaxDB)

Berechtigungskonzept für datenbankbezogene Ressourcen

Die Zugriffsrechte werden bei der Installation automatisch eingestellt. Das Berechtigungskonzept für die Dateien und Verzeichnisse bis einschließlich der Datenbankversion 7.4.03 ist in folgender Tabelle angegeben:

Berechtigungskonzept Verzeichnisse und Dateien der SAP-Systeme (bis Datenbankversion 7.4.03)

Verzeichnisse | Privileg | Eigentümer | Gruppe | Kommentar
/sapdb/<SID>/sapdata | 750 | sqd<sid> | sapsys |
/sapdb/<SID>/saplog | 750 | sqd<sid> | sapsys |
/sapdb/<SID>/sapsys | 750 | sqd<sid> | sapsys |
/sapdb/<SID>/dbsys | 750 | sqd<sid> | sapsys | entfällt ab Version 7.4
/sapdb/<SID>DB | 750 | sqd<sid> | sapsys |
Dateien |  |  |  |
/sapdb/<SID>/sapdata/* | 660 | sqd<sid> | sapsys |
/sapdb/<SID>/saplog/* | 660 | sqd<sid> | sapsys |
/sapdb/<SID>/sapsys/* | 660 | sqd<sid> | sapsys |
/sapdb/<SID>/dbsys/sys | 660 | sqd<sid> | sapsys | entfällt ab Version 7.4
Raw-Devices des Datenbanksystems | 660 | sqd<sid> |  | Link auf die als Data- oder Log-Volumes verwendeten Raw-Devices

Sie können die Zugriffsprivilegien ändern. Verfahren Sie dazu wie in Zugriffsprivilegien für Dateien und Verzeichnisse vergeben beschrieben.

Neuerungen mit der Datenbankversion 7.5

Ab der Datenbankversion 7.5 werden die Zugriffsprivilegien für die Verzeichnisse und Dateien nur bei der Installation und gegebenenfalls von den Datenbankwerkzeugen gesetzt. Es werden der Eigentümer sdb und die Gruppe sdba zugewiesen. Weitere Informationen dazu erhalten Sie im Installationshandbuch: Berechtigungskonzept für UNIX-Betriebssysteme.

Insbesondere erhalten auch alle Volumes diese Zugriffsprivilegien. Somit erhalten alle Mitglieder der sdba-Gruppe Zugriff auf die Volumes. Wenn es die Sicherheit Ihres Systems erfordert, kann der Administrator diese Zugriffsprivilegien einschränken, indem er mit einem DBM-Kommando den Volumes instanzspezifische Gruppen zuordnet. Als höchste Sicherheitsstufe kann der Administrator einem Volume eine leere Gruppe zuordnen, so dass nur noch die Datenbankinstanz selbst Zugriff auf das Volume hat.

Version 7.5 und eine ältere Version sind gemeinsam auf einem Rechner installiert

Für das Verzeichnis /sapdb/<SID>DB der Datenbankversion kleiner 7.5 müssen Sie das Zugriffsprivileg auf 755 ändern, damit die Datenbankprozesse der Version 7.5 auf dieses Verzeichnis uneingeschränkt Zugriff haben.


Zugriffsprivilegien für Dateien und Verzeichnisse vergeben (MaxDB: SAP-Sicherheitsleitfaden: MySQL MaxDB)

Zugriffsprivilegien für Dateien und Verzeichnisse vergeben

Bevor Sie Zugriffsprivilegien ändern, sichern Sie die aktuellen Einstellungen. Dieses Vorgehen ist nur für Datenbankinstanzen bis einschließlich Version 7.4 relevant.

Aktuelle Einstellungen sichern

Geben Sie folgende Befehle ein:

cd /usr/sap
ls -lR > sap_perm.txt

cd /sapmnt
ls -lR > sap_sw.txt

cd /sapdb/<SID>
ls -lR > sapdb_perm.txt (ab der Datenbankversion 7.5 kann nur der root-Benutzer lesend oder schreibend auf diese Verzeichnisse zugreifen)

Zugriffsprivilegien vergeben

Um die Zugriffsprivilegien für eine Datei oder ein Verzeichnis zu ändern, verwenden Sie den Befehl chmod wie folgt:

chmod <Zugriffsprivilegien_in_Oktalform> <Datei_oder_Verzeichnis>

chmod 750 /sapdb/<SID>/sap*

chmod 750 /sapdb/<SID>/sapdata/*

chmod 750 /sapdb/<SID>/saplog/*

.

.

Verwenden Sie chmod nicht rekursiv, da dies leicht zu unbeabsichtigten Änderungen an Berechtigungen führen kann.


Maßnahmen unter Microsoft Windows (MaxDB: SAP-Sicherheitsleitfaden: MySQL MaxDB)

Maßnahmen unter Microsoft Windows

Die folgenden Abschnitte beschreiben die Maßnahmen, die Sie für das Datenbanksystem unter Microsoft Windows-Betriebssystemen ergreifen müssen:

· Schutzmaßnahmen für Betriebssystembenutzer <SID>ADM

· Zugriffsprivilegien für datenbankbezogene Ressourcen

Schutzmaßnahmen für Betriebssystembenutzer <SID>ADM

Um den Betriebssystembenutzer <SID>ADM zu schützen, ändern Sie sein Kennwort.

Zugriffsprivilegien für datenbankbezogene Ressourcen

Bei Einsatz eines Microsoft Windows-Betriebssystems sind die Volumes der Datenbankinstanz automatisch geschützt. Nur die Administratorgruppe hat sämtliche Zugriffsprivilegien für die Volumes, alle anderen Benutzer haben keinen Zugriff.

Allerdings müssen Sie das Datenbankverzeichnis <independent_data_path>\config schützen, das die Konfigurationsdateien der Datenbankinstanz enthält. Stellen Sie folgende Zugriffsprivilegien für das Verzeichnis <independent_data_path>\config und alle darin enthaltenen Dateien ein:

· Zugriffsprivilegien Full Control für die lokale Gruppe Administrators

· Keine Zugriffsprivilegien für andere Gruppen oder Benutzer

Falls Sie allen anderen Benutzern den Zugriff auf die Datenbankinstanz mit Datenbankwerkzeugen verweigern wollen, stellen Sie folgende Privilegien für das Verzeichnis <independent_data_path> und alle seine Unterverzeichnisse ein.

· Zugriffsprivilegien Full Control für die lokale Gruppe Administrators

· Keine Zugriffsprivilegien für andere Gruppen oder Benutzer


Werkzeuge

Titel der Dokumentation | Erläuterung
Database Manager · Database Manager GUI · Web DBM · Database Manager CLI | Anlegen und Verwalten von Datenbankinstanzen · grafische Benutzeroberfläche · web-basierte Benutzeroberfläche · kommandozeilenorientierte Benutzeroberfläche
Database Analyzer | Analyse der Performance von Datenbankinstanzen
Loader | Entladen und Laden von Daten
Query Tools · SQL Studio · Web SQL Studio | Datenanfrage und Datenbearbeitung · grafische Benutzeroberfläche · web-basierte Benutzeroberfläche
WebDAV GUI | Web-basierte Anwendung für die Indizierung von XML-Dokumenten im MaxDB WebDAV-Service


Database Manager GUI

Der Database Manager GUI ist eine Ausprägung des Database Manager, dem Werkzeug zur Verwaltung der Datenbankinstanzen.

Für das Arbeiten mit dem Database Manager GUI ist ein fundiertes Wissen über die Verwaltung von Datenbanken erforderlich.

Allgemeine Informationen zum Datenbanksystem finden Sie in der Dokumentation Datenbankverwaltung.

· Aufruf des Database Manager GUI

· Anlegen/Initialisieren einer Datenbankinstanz

· Verwalten der Database Manager-Benutzer

· Verwalten von Datenbankinstanzen

· Sichern von Daten

· Wiederherstellen von Daten

· Anzeigen von Informationen

· Diagnosemöglichkeiten

· Update der Datenbanksoftware

· Zugriff auf das Programm SQL Studio

· Bildschirmbereiche des Database Manager GUI


Aufruf des Database Manager GUI (MaxDB: Database Manager GUI)

Aufruf des Database Manager GUI

Um das Programm Database Manager GUI aufzurufen, empfehlen wir den Start über Start ® Programs ® MySQL MaxDB ® Database Manager oder die Verwendung des entsprechenden Shortcut.

In Ausnahmefällen können Sie den Database Manager GUI (dbmgui<n>.exe, n ist ein Programmversionszähler) auch von der Kommandozeile aus aufrufen. Wechseln Sie dazu in das Verzeichnis des Programms dbmgui<n>.exe und geben Sie folgenden Befehl ein:

dbmgui<n> [<options>]

Optionen

Anzeige aller Kommandozeilen-Optionen | -?
Datenbankname | -d <database_name>
Name des Datenbankrechners | -n <database_server>
Eröffnen einer Datenbanksitzung unter Angabe der Benutzerdaten (Benutzername und Kennwort) | -u <user_name>,[<password>]
Öffnen der Konfigurationsdatei | -f <file_name>
Fenster für Verbindungsangaben | -prompt
Version des Database Manager GUI | -version
Aufruf des Database Manager ohne Anzeige des Eingangsbildschirms | -nologo
Datenbank-Trace einschalten | -trace


Anlegen/Initialisieren einer Datenbankinstanz (MaxDB: Database Manager GUI)

Anlegen/Initialisieren einer Datenbankinstanz

Sie können mit dem Database Manager Datenbankinstanzen auf einem lokalen oder entfernten Rechner anlegen oder initialisieren.

Voraussetzungen

· Anlegen oder Initialisieren einer lokalen Datenbankinstanz
Um eine Datenbankinstanz lokal auf Ihrem Rechner anzulegen, müssen Sie als Betriebssystembenutzer Administrationsrechte für den Rechner besitzen.
Für die Initialisierung einer bereits bestehenden lokalen Datenbankinstanz müssen Sie außerdem auch Administrationsrechte für diese Datenbankinstanz haben. Das ist in jedem Fall gesichert, wenn Sie sich als erster DBM-Benutzer anmelden.

· Anlegen oder Initialisieren einer entfernten Datenbankinstanz
Um eine Datenbankinstanz auf einem entfernten Rechner anzulegen, müssen Sie einen Betriebssystembenutzer für diesen entfernten Rechner angeben, der Administrationsrechte besitzt und zusätzlich das Recht log on as batch job oder ein vergleichbares Recht hat (Hinweise zur Verwaltung von Betriebssystembenutzern finden Sie in Ihrer Betriebssystemdokumentation).
Für die Initialisierung einer bereits bestehenden Datenbankinstanz auf einem entfernten Rechner müssen Sie zusätzlich Administrationsrechte für diese Datenbankinstanz haben. Das ist in jedem Fall gesichert, wenn Sie sich als erster DBM-Benutzer anmelden.

Vordefinierte Konfigurationen in Templates

Der Database Manager GUI bietet für das Anlegen von Datenbankinstanzen vordefinierte Konfigurationen an, die in Templates abgelegt sind. Mit Hilfe dieser Templates können Sie Datenbankinstanzen verschiedener Größe und Eigenschaften anlegen. Der Database Manager GUI stellt folgende Templates bereit:

· Blank: Datenbankinstanz mit Standardeinstellungen, allerdings müssen die Volumes und die Sicherungsmedien interaktiv angelegt werden.

· Demo: Demonstrationsdatenbank, die vollständig konfiguriert ist, so dass sich diese Datenbankinstanz für Testzwecke gut eignet. Die Demonstrationsdatenbank kann im Hintergrund angelegt werden.

· Small: Datenbankinstanz, deren Parameter, Volumes und Sicherungsmedien so konfiguriert sind, dass eine kleine Datenbank angelegt wird.

· Medium: Datenbankinstanz, deren Parameter, Volumes und Sicherungsmedien so konfiguriert sind, dass eine mittelgroße Datenbank angelegt wird.

Die Voreinstellungen dieser Templates sind Empfehlungen und können Ihren Wünschen entsprechend verändert werden. Die Einstellungen der von Ihnen angelegten Datenbankinstanz können Sie unter einem selbstgewählten Namen als Template speichern und somit die Menge der im Database Manager GUI gespeicherten Templates erweitern.

Anlegen einer Datenbankinstanz

...

Wählen Sie im Database Manager GUI Instance ® Create... .

Starten Sie die gewünschten Schritte jeweils mit Next.

1. Wählen Sie das gewünschte Template aus.
Wenn Sie Standardeinstellungen verwenden wollen, wählen Sie Blank.
Wenn Sie eine vordefinierte Konfiguration verwenden wollen, wählen Sie eines der angezeigten Templates (z.B. Demo, Small,...) aus.
Wenn Sie das Template Demo für das Anlegen einer Datenbankinstanz verwenden, können Sie das Anlegen im Hintergrund durchführen. Wählen Sie dazu Unattended Installation.

2. Machen Sie folgende Angaben:
Datenbankinstanz auf Ihrem lokalen Rechner:
Database Server: <local>: Lassen Sie diesen Eintrag unverändert.
Database Name: Datenbankname
- Anlegen einer Datenbankinstanz: Geben Sie den neuen Datenbanknamen ein.
- Initialisieren einer Datenbankinstanz: Geben Sie den Namen der Datenbankinstanz ein, die Sie initialisieren wollen.

Datenbankinstanz auf einem entfernten Rechner:
Database Server: Geben Sie den gewünschten Rechnernamen ein.
Database Name: Datenbankname
- Anlegen einer Datenbankinstanz: Geben Sie den neuen Datenbanknamen ein.
- Initialisieren einer Datenbankinstanz: Geben Sie den Namen der Datenbankinstanz ein, die Sie initialisieren wollen.
Login Name: Geben Sie den Betriebssystembenutzer für diesen Rechner an.
Password: Geben Sie das Kennwort für diesen Betriebssystembenutzer an.

3. Auf einem Rechner kann es mehrere Installationen der Datenbanksoftware geben. Wählen Sie aus den vorhandenen Installationen die gewünschte aus.

4. Geben Sie den Database Manager-Benutzer (DBM-Benutzer) an. Verwenden Sie dabei keine Sonderzeichen. Vorschlagswert für den Namen und das Kennwort ist DBM. Verändern Sie gegebenenfalls Name und Kennwort und bestätigen Sie das gewünschte Kennwort.

Name und Kennwort des DBM-Benutzers werden vom Database Manager immer in Großbuchstaben abgelegt.

5. Entscheiden Sie, auf welche Art die Datenbankparameter mit initialen Werten belegt werden sollen:

Initialize parameters with default values
Für die initiale Belegung der Datenbankparameter werden Standardwerte der Datenbanksoftware verwendet.

Copy parameters from existing database
Für die initiale Belegung der Datenbankparameter werden die Parameterwerte einer bereits vorhandenen Datenbankinstanz verwendet.
Markieren Sie die Datenbankinstanz, deren Parameterwerte übernommen werden soll.

Restore parameters from a backup medium
Für die initiale Belegung der Datenbankparameter werden die Parameterwerte verwendet, die in einer vollständigen Datensicherung gespeichert sind.
Wählen Sie die gewünschte vollständige Datensicherung aus.

Use current parameters
Für eine vorhandene Datenbankinstanz (im Fall des Initialisierens einer Datenbankinstanz) können Sie die aktuell eingestellten Parameterwerte übernehmen.

6. Wählen Sie einen Datenbankinstanztyp aus.
Wenn Sie Use current parameters gewählt haben, übernimmt das System den Datenbankinstanztyp der vorhandenen Datenbankinstanz.

7. Passen Sie die Datenbankparameter Ihren Erfordernissen an.
Wählen Sie den gewünschten Datenbankparameter aus.
New Value: Geben Sie den neuen Wert des Datenbankparameters ein und bestätigen Sie Ihre Eingabe.
Der Wert des Datenbankparameters wird in den internen Datenstrukturen gehalten und beim nächsten Starten der Datenbankinstanz wirksam.

Die Datenbankparameter werden beim Verlassen der Eingabemaske geprüft. Sie werden gegebenenfalls aufgefordert, Änderungen durchzuführen und zu bestätigen, bevor Sie die Eingabemaske verlassen können.

8. Definieren Sie die gewünschten Data- und Log-Volumes.

Wählen Sie jeweils New Volume.
Tragen Sie die Größe sowie die Bezeichnung oder den absoluten Pfad des Volume ein und bestätigen Sie Ihre Eingaben.

9. Definieren Sie gegebenenfalls Sicherungsmedien.

10. Wählen Sie zwischen folgenden Optionen:

Create and start instance
Geben Sie den Datenbanksystemadministrator (SYSDBA-Benutzer) an. Verwenden Sie dabei keine Sonderzeichen. Vorschlagswert für den Namen und das Kennwort ist DBA. Verändern Sie gegebenenfalls Name und Kennwort und bestätigen Sie das gewünschte Kennwort.
Die Datenbankinstanz wird angelegt bzw. initialisiert und in den Betriebszustand ONLINE überführt.

Create instance for recovery
Die Datenbankinstanz wird angelegt bzw. initialisiert und in den Betriebszustand ADMIN überführt. Diese Datenbankinstanz kann nur für eine Wiederherstellung verwendet werden.
Die Angaben zum SYSDBA-Benutzer werden aus der Datensicherung übernommen.

11. Wählen Sie Start, um die Datenbankinstanz anzulegen bzw. zu initialisieren.

Wenn Fehler auftreten, wird der Vorgang sofort abgebrochen. Der bis zum Fehler erreichte Stand bleibt jedoch erhalten.

12. Wählen Sie Close.

Initialisieren einer Datenbankinstanz

Sie können eine vorhandene Datenbankinstanz initialisieren.

1. Markieren Sie in der Liste der Datenbankinstanzen die gewünschte Datenbankinstanz.

2. Wählen Sie im Database Manager GUI Instance ® Initialize... .
Starten Sie die gewünschten Schritte jeweils mit Next.

3. Markieren Sie Initialize the database instance <database_name>.

4. Überführen Sie die Datenbankinstanz gegebenenfalls in den Betriebszustand OFFLINE.

5. Lassen Sie die Markierung Use current parameters unverändert.
Sie können die aktuell eingestellten Parameterwerte übernehmen.

6. Verfahren Sie weiter wie ab Schritt 7 der Vorgehensweise für das Anlegen einer Datenbankinstanz beschrieben. Für die Volumes und Sicherungsmedien werden die Angaben der bisherigen Datenbankinstanz vorgeschlagen.

Template erstellen

Die Angaben, die Sie beim Anlegen/Initialisieren einer Datenbankinstanz gemacht haben, können Sie unter einem selbstgewählten Namen als Template speichern. Das System schlägt einen Pfad und eine Bezeichnung des Template vor und legt dieses Template als Betriebssystemdatei ab. Auf diese Weise können Sie die Menge der Templates Ihren Bedürfnissen entsprechend erweitern.


Verwalten der Database Manager-Benutzer (MaxDB: Database Manager GUI)

Verwalten der Database Manager-Benutzer

Das Datenbanksystem unterscheidet zwei Hauptklassen von Benutzern:

· Database Manager-Benutzer (DBM-Benutzer)

· Datenbankbenutzer

Beim Anlegen einer neuen Datenbankinstanz legen Sie den jeweils ersten Benutzer dieser beiden Klassen an.
Der erste DBM-Benutzer wird als Erster Database Manager-Benutzer (erster DBM-Benutzer) bezeichnet. Der erste Datenbankbenutzer ist der Datenbanksystemadministrator (SYSDBA-Benutzer).

Diese beiden Benutzer haben dann die Berechtigung, weitere Benutzer der beiden genannten Hauptklassen anzulegen.
Verwenden Sie zum Anlegen weiterer DBM-Benutzer den Database Manager.
Verwenden Sie zum Anlegen weiterer Datenbankbenutzer die Query Tools oder den Loader.

Siehe auch: Benutzerkonzept in der Dokumentation Datenbankverwaltung

Beachten Sie, dass ein Database Manager-Benutzer nur eine Datenbankinstanz verwalten, aber nicht mit den Datenbankobjekten (z.B. über die Query Toools oder den Loader) arbeiten kann. Ein DBM-Benutzer steht in allen Betriebszuständen zur Verfügung, um die entsprechenden Verwaltungsaufgaben durchführen zu können.

Der Datenbanksystemadministrator (SYSDBA-Benutzer) kann im Betriebszustand ONLINE mit den Datenbankobjekten arbeiten und hat außerdem auch die Berechtigungen des Ersten Database Manager-Benutzers. Er kann also auch die Database Manager-Funktionen ausführen, die im Betriebszustand ONLINE möglich sind.

Folgende Verwaltungsaktionen sind mit dem Database Manager GUI möglich:

· Anlegen/Ändern/Löschen eines Database Manager-Benutzers

· Ändern der Benutzereigenschaften

· Ändern eines Benutzerkennworts

· Ändern der Serverberechtigungen


Anlegen/Ändern/Löschen eines Database Manager-Benutzers (MaxDB: Database Manager GUI)

Anlegen/Ändern/Löschen eines Database Manager-Benutzers

Sie können einen Database Manager-Benutzer (DBM-Benutzer) anlegen, seine Eigenschaften und Serverberechtigungen ändern oder den DBM-Benutzer löschen. Sie können die Eigenschaften und Serverberechtigungen eines Datenbanksystemadministrators (SYSDBA-Benutzer) ändern.

Markieren Sie in der Liste der Datenbankinstanzen die gewünschte Datenbankinstanz.

Anlegen eines DBM-Benutzers

Die Datenbankinstanz kann sich in einem beliebigen Betriebszustand befinden.

...

1. Wählen Sie Instance ® Configuration ® Users.

2. Wählen Sie Actions ® New.

3. Wählen Sie die Registerkarte General .
Geben Sie den Namen des Database Manager-Benutzers an.
Geben Sie ein Kennwort an und bestätigen Sie dieses.
Markieren Sie Disabled, wenn Sie den Benutzer sperren wollen.
Sie können ein zweites Kennwort vergeben.
siehe auch: Eigenschaften eines DBM-Benutzers

4. Wählen Sie die Registerkarte Server Rights.
Markieren Sie die gewünschten Serverberechtigungen.
siehe auch: Liste der Serverberechtigungen

Ändern eines Benutzers

Sie können die Eigenschaften und Serverberechtigungen eines Benutzers ändern. Wollen Sie das Kennwort des ersten DBM-Benutzers ändern, muss sich die Datenbankinstanz im Betriebszustand OFFLINE befinden. Wollen Sie das Kennwort des Datenbanksystemadministrators ändern, muss sich die Datenbankinstanz im Betriebszustand ONLINE befinden.

Verfahren Sie zum Ändern der Eigenschaften und Serverberechtigungen wie in folgenden Abschnitten beschrieben:

· Ändern der Benutzereigenschaften

· Ändern eines Benutzerkennworts

· Ändern der Serverberechtigungen

Löschen eines DBM-Benutzers

Sie können einen DBM-Benutzer löschen. Ausgenommen davon sind der Erste DBM-Benutzer und der Datenbanksystemadministrator.

Verfahren Sie wie folgt:

1. Wählen Sie Instance ® Configuration ® Users.

2. Markieren Sie den gewünschten DBM-Benutzer.

3. Wählen Sie Actions ® Delete.


Ändern der Benutzereigenschaften (MaxDB: Database Manager GUI)

Ändern der Benutzereigenschaften

Die Eigenschaften der Database Manager-Benutzer (DBM-Benutzer) und des Datenbanksystemadministrators (SYSDBA-Benutzer) sind änderbar.

Vorgehensweise

...

1. Wählen Sie Instance ® Configuration ® Users.

2. Markieren Sie den gewünschten Benutzer.

3. Wählen Sie Actions ® Properties.

4. Wählen Sie die Registerkarte General und ändern Sie die gewünschten Eigenschaften.
siehe auch: Eigenschaften eines DBM-Benutzers
Wenn Sie Kennwörter ändern wollen, müssen Sie die Datenbankinstanz gegebenenfalls in den entsprechenden Betriebszustand überführen.
siehe auch: Ändern eines Benutzerkennworts

Ergebnis

Die Benutzereigenschaften werden geändert.


Ändern eines Benutzerkennworts (MaxDB: Database Manager GUI)

Ändern eines Benutzerkennworts

Die Kennworte aller Database Manager-Benutzer (DBM-Benutzer) und des Datenbanksystemadministrator (SYSDBA-Benutzer) sind mit Hilfe des Database Manager in verschiedenen Betriebszuständen der Datenbankinstanz änderbar:

Benutzerklasse | Benutzer | Betriebszustand der Datenbankinstanz
Database Manager-Benutzer | Erster Database Manager -Benutzer alle anderen DBM-Benutzer | OFFLINE Benutzerkennwort ist in jedem Betriebszustand änderbar
Datenbankbenutzer | SYSDBA-Benutzer | ONLINE

Voraussetzung

Sie haben die Datenbankinstanz in den entsprechenden Betriebszustand überführt (Starten der Datenbankinstanz, Stoppen der Datenbankinstanz).

Vorgehensweise

Für das Ändern eines Kennwortes verfahren Sie generell wie in Ändern der Benutzereigenschaften beschrieben. Achten Sie darauf, dass sich die Datenbankinstanz im geforderten Betriebszustand befindet.

...

1. Wählen Sie Instance ® Configuration ® Users.

2. Markieren Sie den gewünschten Benutzer.

3. Wählen Sie Actions ® Properties.

4. Wählen Sie die Registerkarte General und anschließend Password Change.

5. Geben Sie das alte und das neue Kennwort ein und sichern Sie Ihre Eingaben.

Siehe auch:

Eigenschaften eines DBM-Benutzers


Ändern der Serverberechtigungen (MaxDB: Database Manager GUI)

Ändern der Serverberechtigungen

Eine Serverberechtigung ist die Berechtigung eines Benutzers, bestimmte Kommandos im Database Manager auszuführen. Dabei kann eine Serverberechtigung mehrere Kommandos umfassen und ein Kommando mehreren Serverberechtigungen zugeordnet sein.

Die Serverberechtigungen des Database Manager-Benutzer (DBM-Benutzer) und des Datenbanksystemadministrators (SYSDBA-Benutzer) können Sie mit dem Database Manager ändern.

Voraussetzungen

Sie haben die Serverberechtigung Verwalten der DBM-Benutzer (User management).

Vorgehensweise

1. Wählen Sie Instance ® Configuration ® Users.

2. Markieren Sie den gewünschten Benutzer.

3. Wählen Sie Action ® Server Rights.

4. Unter der Registerkarte Server Rights haben Sie nun die Möglichkeit, die Serverberechtigung des gewählten Benutzers zu erweitern oder zu reduzieren, indem Sie die gewünschten Berechtigungen markieren oder entmarkieren.

Siehe auch:

Liste der Serverberechtigungen


Verwalten von Datenbankinstanzen (MaxDB: Database Manager GUI)

Verwalten von Datenbankinstanzen

Folgende Datenbankverwaltungsaufgaben werden beschrieben:

Datenbankinstanz anlegen/initialisieren oder löschen | Anlegen/Initialisieren einer Datenbankinstanz Datenbankinstanz löschen
Liste der Datenbankinstanzen anlegen, ändern oder löschen | Liste der Datenbankinstanzen verwalten
Datenbankinstanzverbindung zum DBM-Server herstellen | Verbindung zum DBM-Server
Datenbankinstanz starten oder stoppen | Starten der Datenbankinstanz (Restart) Stoppen der Datenbankinstanz (Shutdown)
Datenbanksitzungen überwachen | Betriebszustand überwachen Datenbanksitzungen anzeigen Datenbanksitzung manuell beenden
Volumes anlegen, anzeigen, ändern, löschen | Volumes anlegen Volumes anzeigen, ändern und löschen Datenbereichs-Informationen anzeigen
Datenbankparameter anzeigen, ändern | Datenbankparameter anzeigen und ändern Volume-Datenbankparameter ändern
Log-Einstellungen anzeigen und ändern | Log-Bereichs-Informationen anzeigen Log-Einstellungen ändern
Hot Standby-System einrichten | Master-Komponente einrichten (Hot Standby) Standby-Komponenten hinzufügen (Hot Standby)
Indizes aktivieren, deaktivieren, löschen | Indizes de-/aktivieren oder löschen
Sprachunterstützung (Mapchar-Set) | Mapchar-Sets anlegen Mapchar-Sets anzeigen, ändern und löschen
Statistiken aktualisieren | Statistikinformationen aktualisieren


Betriebszustand überwachen (MaxDB: Database Manager GUI)

Betriebszustand überwachen

Sie können mit dem Database Manager GUI den Betriebszustand jeder Datenbankinstanz überwachen.

Voraussetzung

1. Sorgen Sie dafür, dass die Datenbankinstanz in die Liste der Datenbankinstanzen aufgenommen ist (siehe dazu: Liste der Datenbankinstanzen verwalten).

2. Stellen Sie die Verbindung zum DBM-Server her.

Betriebszustand anzeigen

Prüfen Sie, mit welchem Kennzeichen das allgemeine Symbol für die Datenbankinstanz in der Liste der Datenbankinstanzen versehen ist.

Sie können die Anzeigen View ® Large Icons / Small Icons / List für diese Zwecke verwenden.

Allgemeines Symbol für eine Datenbankinstanz

Datenbankinstanz ist im Betriebszustand OFFLINE

Datenbankinstanz ist im Betriebszustand ADMIN

Datenbankinstanz ist im Betriebszustand ONLINE

Hot Standby-Datenbankinstanzen werden mit folgenden Symbolen versehen:

Master-Komponente oder Standby-Komponente im Betriebszustand OFFLINE.

Master-Komponente im Betriebszustand ADMIN oder Standby-Komponente im Betriebszustand STANDBY.

Master-Komponente im Betriebszustand ONLINE.

Betriebszustand ändern

Wählen Sie die gewünschte Datenbankinstanz in der Liste der Datenbankinstanzen mittels Doppelklick aus.

Wählen Sie Actions ® OFFLINE / ADMIN / ONLINE, um in den gewünschten Betriebszustand zu wechseln.

Der Betriebszustand von Standby-Komponenten in einem Hot Standby-System kann nicht direkt geändert werden. Standby-Komponenten werden von der Master-Komponente gesteuert.

Siehe auch:

Starten der Datenbankinstanz (Restart)

Stoppen der Datenbankinstanz (Shutdown)


Liste der Datenbankinstanzen verwalten (MaxDB: Database Manager GUI)

Liste der Datenbankinstanzen verwalten

Um mit dem Database Manager GUI Datenbankinstanzen verwalten zu können, müssen diese in die Liste der Datenbankinstanzen (siehe dazu Bildschirmbereiche) aufgenommen sein. Die Art der Anzeige der Datenbankinstanzen in dieser Liste können Sie über View ® ... Ihren Wünschen entsprechend einstellen.

Voraussetzung

Wenn Sie mit dem Database Manager auf eine entfernte Datenbankinstanz (remote) zugreifen wollen, muss auf dem entsprechenden Datenbankrechner der X-Server gestartet sein.

Eintrag in die Liste der Datenbankinstanzen hinzufügen

...

1. Wählen Sie Instance ® Add.

2. Geben Sie als Database Server den gewünschten Rechnernamen ein.
Bestätigen Sie Ihre Wahl mit Add Server.

3. Markieren Sie die Datenbankinstanzen, die in die Liste aufgenommen werden sollen und bestätigen Sie Ihre Wahl.

Die Datenbankinstanz wird in die Liste der Datenbankinstanzen aufgenommen.

Sie können die Anzeige und Ablage der Datenbankinstanzen im Database Manager GUI Ihren Wünschen entsprechend organisieren.

Um eine Datenbankinstanz verwalten zu können, müssen Sie für die gewünschte Datenbankinstanz die Verbindung zum DBM-Server herstellen.

Eintrag aus der Liste der Datenbankinstanzen löschen

...

1. Markieren Sie die gewünschte Datenbankinstanz in der Liste der Datenbankinstanzen.

2. Wählen Sie File ® Delete.

3. Bestätigen Sie, dass Sie die Datenbankinstanz aus der Liste löschen wollen.

Die Datenbankinstanz wird aus der Liste der Datenbankinstanzen im Database Manager gelöscht.

Wenn Sie eine Datenbankinstanz löschen wollen, verfahren Sie wie in Datenbankinstanz löschen beschrieben.

Datenbankinstanzliste im Database Manager mit den vorhandenen Datenbankinstanzen synchronisieren

Sie können dafür sorgen, dass die Liste der Datenbankinstanzen mit den auf dem Rechner tatsächlich vorhandenen Datenbankinstanzen übereinstimmt.

1. Markieren Sie den gewünschten Rechner in der Verzeichnisstruktur der Datenbankinstanzen.

2. Wählen Sie File ® Sync Server.

Alle auf dem Rechner vorhandenen Datenbankinstanzen werden in die Liste der Datenbankinstanzen aufgenommen. Einträge von Datenbankinstanzen, die auf dem Rechner nicht mehr vorhanden sind, werden aus der Liste gelöscht.


Datenbankparameter anzeigen und ändern (MaxDB: Database Manager GUI)

Datenbankparameter anzeigen und ändern

Sie können mit dem Database Manager GUI die Datenbankparameter der aktuellen Datenbankinstanz anzeigen und ändern. Dies ist in jedem Betriebszustand der Datenbankinstanz möglich.

Die Änderungen werden in der Parameterdatei gespeichert, aber erst nach dem erneuten Starten der Datenbankinstanz (Restart) wirksam.

Vorgehensweise

1. Wählen Sie Instance ® Configuration ® Parameters. Sie erhalten die allgemeinen Datenbankparameter (General) angezeigt.

2. Wenn Sie auch die speziellen und Support-Datenbankparameter anzeigen wollen, wählen Sie Actions ® Show Extended and Support Parameters.

3. Wählen Sie den gewünschten Datenbankparameter aus.

Name

Name des Datenbankparameters

Value

Wert des Datenbankparameters, der aktuell im Kern der Datenbankinstanz benutzt wird

New Value

Kein Eintrag:
Der Datenbankparameter wurde seit dem letzten Starten der Datenbankinstanz nicht geändert.

Eingetragener neuer Wert:
Der Datenbankparameter ist nach dem letzten Starten der Datenbankinstanz geändert worden.
Alle Änderungen werden jedoch erst beim nächsten Start der Datenbankinstanz in die Parameterdatei gesichert und damit aktiv.

Description

Hilfetext zum gewählten Parameter

4. Wählen Sie Action ® Properties.

5. Geben Sie den neuen Wert des Datenbankparameters im Feld New Value ein.

6. Sichern Sie Ihre Eingabe.

Der neue Wert des Datenbankparameters wird in den internen Datenstrukturen gehalten und beim nächsten Starten der Datenbankinstanz wirksam.

Siehe auch:

Datenbankparameter anzeigen


Datenbanksitzung manuell beenden (MaxDB: Database Manager GUI)

Datenbanksitzung manuell beenden

In Sonderfällen kann es notwendig sein, eine einzelne Datenbanksitzung gezielt zu unterbrechen. Sie können diese Aktion mit dem Database Manager GUI durchführen.

Voraussetzung

Die Datenbankinstanz befindet sich im Betriebszustand ONLINE.

Vorgehensweise

1. Markieren Sie in der Liste der Datenbankinstanzen die gewünschte Datenbankinstanz.

2. Wählen Sie Instance ® Sessions.

3. Markieren Sie die gewünschte Datenbanksitzung.

4. Wählen Sie Actions ® Kill Selected Sessions, um die Datenbanksitzung zu beenden.

Siehe auch:

Datenbanksitzungen anzeigen


Indizes de-/aktivieren oder löschen (MaxDB: Database Manager GUI)

Indizes de-/aktivieren oder löschen

Sie können mit Hilfe des Database Manager GUI ermitteln, welche der vorhandenen Indizes in einer Datenbankinstanz genutzt wurden.

Sie können außerdem ausgewählte Indizes aktivieren, deaktivieren oder löschen.

Voraussetzungen

Die Datenbankinstanz befindet sich im Betriebszustand ONLINE.

Vorgehensweise

1. Markieren Sie in der Liste der Datenbankinstanzen die gewünschte Datenbankinstanz.

2. Wählen Sie Instance ® Tuning ® Index Use.

3. Sie haben die Möglichkeit auszuwählen, welche Indizes angezeigt werden sollen. Geben Sie dazu geeignete Suchargumente ein:

Owner | Eigentümer
Table Name | Name der Tabelle
Index Name | Name des Index

Sie können weiterhin zwischen folgenden Optionen wählen:

Disabled indexes only | Nur deaktivierte Indizes
Unused indexes only | Nur ungenutzte Indizes

4. Wählen Sie Actions ® Search. Sie erhalten eine Liste der Indizes, die Ihren Angaben entsprechen.

5. Markieren Sie die Indizes, die Sie aktivieren wollen.
Wenn Sie alle ausgegebenen Indizes aktivieren wollen, wählen Sie Actions ® Mark All.
Entmarkieren Sie die Indizes der Liste, die Sie deaktivieren wollen.

6. Wählen Sie Actions und die gewünschte Aktion.


Log-Einstellungen ändern (MaxDB: Database Manager GUI)

Log-Einstellungen ändern

Sie können mit dem Database Manager GUI die Log-Einstellungen ändern.

Voraussetzung

Stellen Sie fest, welche Sicherheitsbedürfnisse Sie haben und informieren Sie sich über die möglichen Log-Einstellungen. Informationen dazu finden Sie in der allgemeinen Datenbankdokumentation in den Abschnitten zu den Log-Einstellungen.

Überprüfen Sie im Database Manager GUI die Log-Bereichs-Informationen.

Vorgehensweise

Markieren Sie in der Liste der Datenbankinstanzen die gewünschte Datenbankinstanz. Wählen Sie im Database Manager GUI Instance ® Configuration ®Log Settings.

Starten Sie die gewünschten Schritte jeweils mit Next.

Markieren Sie die Log-Einstellungen, die Sie ändern möchten:

· Log Mode: Log-Bereich spiegeln

· Overwrite Mode for the Log Area: Überschreibmodus für Log-Bereich ein- und ausschalten

· Activating or Deactivating the Redo Log Management: Redo-Log-Verwaltung aus- und einschalten

Sie können nacheinander mehrere Log-Einstellungen ändern. Wählen Sie dazu nach Abschluss einer Log-Einstellung Back.

Log-Bereich spiegeln

Wenn Sie den Log-Bereich spiegeln wollen (siehe dazu: Log-Modus), markieren Sie die Log-Einstellung Log Mode.

Die Datenbankinstanz kann in einem beliebigen Betriebszustand sein. Beachten Sie jedoch, dass die Datenbankinstanz nach Beendigung der Einstellung des Log-Modus in jedem Fall in den Betriebszustand OFFLINE überführt wird und anschließend in den Betriebszustand ONLINE.

Sie werden vom Database Manager aufgefordert, die erforderlichen Spiegel der Log-Volumes anzulegen.

...

1. Wählen Sie Properties.

2. Geben Sie unter Location die Lage der Spiegel an.

3. Starten Sie den Vorgang.

Die Datenbankinstanz wird nach Abschluss dieser Operation in den Betriebszustand OFFLINE und anschließend ONLINE überführt.

Wenn Sie den Spiegel nicht mehr verwenden wollen, markieren Sie die Log-Einstellung Log Mode und folgen Sie den weiteren Anweisungen.

Überschreibmodus für Log-Bereich

Wenn Ihr Sicherheitskonzept es erlaubt, dass Sie den Log-Bereich ohne vorherige Sicherung der Log-Einträge überschreiben können (siehe dazu: Überschreibmodus für Log-Bereich), markieren Sie die Log-Einstellung Overwrite Mode for the Log Area und folgen Sie den weiteren Anweisungen.

Nach einer Standardinstallation ist der normale Log-Sicherungsbetrieb eingeschaltet, d.h. der Überschreibmodus ist deaktiviert. Damit Sie den Überschreibmodus ändern können, muss die Datenbankinstanz im Betriebszustand ADMIN oder ONLINE sein.

Wenn der Überschreibmodus aktiviert wurde, bleibt diese Einstellung auch nach einem erneuten Start der Datenbankinstanz erhalten.

Um erneut auf den normalen Log-Sicherungsbetrieb umzuschalten (d.h. Deaktivieren des Überschreibmodus), markieren Sie Overwrite Mode for the Log Area und folgen Sie den weiteren Anweisungen. Sie werden aufgefordert, eine vollständige Datensicherung durchzuführen, um die Sicherheit Ihres Datenbestandes zu gewährleisten.

Redo-Log-Verwaltung aus- und einschalten

Für Ausnahmesituationen besteht die Möglichkeit, die Redo-Log-Verwaltung auszuschalten. Markieren Sie dazu die Log-Einstellung Activating or Deactivating the Redo Log Management (siehe dazu: Redo-Log-Verwaltung ein- oder ausschalten) und folgen Sie den weiteren Anweisungen.

Nach einer Standardinstallation ist die Redo-Log-Verwaltung eingeschaltet. Damit Sie diese Log-Einstellung ändern können, muss die Datenbankinstanz im Betriebszustand ADMIN sein.

Wenn die Redo-Log-Verwaltung ausgeschaltet wurde, bleibt diese Einstellung auch nach einem erneuten Start der Datenbankinstanz erhalten.

Sie sollten möglichst bald die Redo-Log-Verwaltung wieder einschalten, um die Sicherheit Ihres Datenbanksystems zu gewährleisten. Markieren Sie dazu Activating or Deactivating the Redo Log Management und folgen Sie den weiteren Anweisungen. Sie werden aufgefordert, eine vollständige Datensicherung durchzuführen, um die Sicherheit Ihres Datenbestandes zu gewährleisten.


Mapchar-Sets anlegen (MaxDB: Database Manager GUI)

Mapchar-Sets anlegen

Sie können mit dem Database Manager GUI Mapchar-Sets anlegen.

Für UNICODE-Datenbanken können Sie dieses Kommando nicht verwenden.

Voraussetzung

Die Datenbankinstanz befindet sich im Betriebszustand ONLINE.

Vorgehensweise

...

1. Markieren Sie in der Liste der Datenbankinstanzen die gewünschte Datenbankinstanz.

2. Wählen Sie Instance ® Configuration ® Mapchar Sets.

3. Wählen Sie Actions ® New. Geben Sie folgende Informationen ein:

Name | Name des Mapchar-Set, seine Länge beträgt maximal 18 Bytes
Code Type | Der dem Mapchar-Set zugrundeliegende Code Gültiger Code: ASCII-Code gemäß ISO 8859/1.2
Mapchar | Definieren Sie die Umsetzung der gewünschten Zeichen. Jedes umzusetzende Zeichen von einem Byte ist zunächst in seiner Ursprungsform und dann in seiner Zielform mit einer Maximallänge von zwei Bytes anzugeben. Intern: Ursprungsform in hexadezimalem Format Extern Hex: Zielform in hexadezimalem Format Ext. ASCII: Zielform als druckbares Zeichen

4. Sichern Sie Ihre Eingabe.

Siehe auch:

Mapchar-Sets anzeigen, ändern und löschen


Mapchar-Sets anzeigen, ändern und löschen (MaxDB: Database Manager GUI)

Mapchar-Sets anzeigen, ändern und löschen

Sie können mit dem Database Manager GUI Mapchar-Sets anzeigen, ändern und löschen.

Für UNICODE-Datenbanken können Sie diese Möglichkeiten nicht verwenden.

Voraussetzung

Die Datenbankinstanz befindet sich im Betriebszustand ONLINE.

Vorgehensweise

...

1. Markieren Sie in der Liste der Datenbankinstanzen die gewünschte Datenbankinstanz.

2. Wählen Sie Instance ® Configuration ® Mapchar Sets.
Sie erhalten die bereits verfügbaren Mapchar-Sets angezeigt.

3. Wählen Sie das gewünschte Mapchar-Set aus.

4. Wählen Sie Actions ® Propertiesbzw. Delete.
Sie können folgende Angaben ändern:

Code Type | Der dem Mapchar-Set zugrundeliegende Code. Gültiger Code; ASCII-Code gemäß ISO 8859/1.2
Mapchar | Definieren Sie die Umsetzung der gewünschten Zeichen. Jedes umzusetzende Zeichen von einem Byte ist zunächst in seiner Ursprungsform und dann in seiner Zielform mit einer Maximallänge von zwei Bytes anzugeben. Intern: Ursprungsform in hexadezimalem Format Extern Hex: Zielform in hexadezimalem Format Ext. ASCII: Zielform als druckbares Zeichen

5. Sichern Sie Ihre Eingaben.

Siehe auch:

Mapchar-Sets anlegen


Master-Komponente einrichten (Hot Standby) (MaxDB: Database Manager GUI)

Master-Komponente einrichten (Hot Standby)

Sie richten die Master-Komponente eines Hot Standby-Systems ein.

Sie benötigen ein geeignetes Speicherverwaltungssystem sowie eine Cluster-Lösung. Informationen zum Einrichten von Speicherverwaltungssystem und Cluster-Konfiguration finden Sie in der Dokumentation der Hersteller.

Voraussetzungen

· Es wurde bereits eine Datenbankinstanz angelegt und Sie sind im Database Manager GUI mit dieser Datenbankinstanz verbunden.

· Die Datenbankinstanz befindet sich im Betriebszustand OFFLINE.

· Auf allen Rechnern des Hot Standby-Systems ist dieselbe Version der Datenbanksoftware installiert.

· Alle Rechner sind eingeschaltet.

· Der X-Server läuft auf allen Rechnern.

· Der Benutzer, der das Hot Standby-System einrichtet, hat Administrationsrechte auf allen Rechnern.

Vorgehensweise

Wählen Sie im Database Manager GUI Instance ® Configuration ® Hot Standby.

Starten Sie die gewünschten Schritte jeweils mit Next.

...

1. Wählen Sie Enable or Disable the Hot Standby System.

2. Wählen Sie Enable Hot Standby System. Geben Sie als Official Node den Namen der Datenbank innerhalb des Cluster-Systems und unter Storage DLL den Namen der Bibliothek an, über die das Speicherverwaltungssytem angesteuert wird.

3. Wählen Sie Start.

Die Master-Komponente des Hot Standby-Systems wurde eingerichtet.

Siehe auch:

Standby-Komponente hinzufügen (Hot Standby)


Starten der Datenbankinstanz (Restart) (MaxDB: Database Manager GUI)

Starten der Datenbankinstanz (Restart)

Sie können mit dem Database Manager GUI eine Datenbankinstanz starten.

Voraussetzungen

1. Sorgen Sie dafür, dass die Datenbankinstanz in die Liste der Datenbankinstanzen aufgenommen ist (siehe dazu Liste der Datenbankinstanzen verwalten).

2. Stellen Sie die Verbindung zum DBM-Server her.

3. Ermitteln Sie den Betriebszustand der Datenbankinstanz: Betriebszustand überwachen.

Vorgehensweise

Wählen Sie die gewünschte Datenbankinstanz aus der Liste der Datenbankinstanzen mittels Doppelklick aus.

Die Datenbankinstanz befindet sich im Betriebszustand OFFLINE.

· Überführen in den Betriebszustand ONLINE
Wählen Sie Actions ® Online.
Die Datenbankinstanz wird gestartet.

· Überführen in den Betriebszustand ADMIN
Wählen Sie Actions ® Admin.
Die Datenbankinstanz wird in den Betriebszustand ADMIN überführt.

Die Datenbankinstanz befindet sich im Betriebszustand ADMIN.

· Überführen in den Betriebszustand ONLINE
Wählen Sie Actions ® Online.
Die Datenbankinstanz wird gestartet.

Bei jedem Starten der Datenbankinstanz wird eine Kopie der Protokolldatei knldiag unter dem Namen knldiag.old erstellt und die Datei knldiagüberschrieben. Nutzen Sie diese Protokolldatei, um Fehler beim Starten oder Stoppen der Datenbankinstanz zu analysieren.

Siehe auch:

Stoppen der Datenbankinstanz (Shutdown)


Standby-Komponente hinzufügen (Hot Standby) (MaxDB: Database Manager GUI)

Standby-Komponente hinzufügen (Hot Standby)

Sie fügen einem Hot Standby-System eine Standby-Komponente hinzu.

Während des Einrichtens einer neuen Standby-Komponente darf kein Savepoint geschrieben werden.

Sie benötigen ein geeignetes Speicherverwaltungssystem sowie eine Cluster-Lösung. Informationen zum Einrichten von Speicherverwaltungssystem und Cluster-Konfiguration finden Sie in der Dokumentation der Hersteller.

Voraussetzungen

· Die Master-Komponente des Hot Standby-Systems wurde bereits eingerichtet.

· Master- und Standby-Komponenten verwenden die gleichen Hardware-Plattformen (Speicherplatz, Art und Anzahl der Prozessoren).

· Alle Datenpfade und Dateien (Arbeitsverzeichnis, Volumes, Tracedateien etc.), die in der Konfiguration verwendet werden, stimmen für Master- und Standby-Komponenten überein.

· Auf allen Rechnern ist dieselbe Version der Datenbanksoftware installiert.

· Alle Rechner sind eingeschaltet.

· Der X-Server läuft auf allen Rechnern.

· Der Benutzer, der das Hot Standby-System einrichtet, hat Administrationsrechte auf allen Rechnern.

Vorgehensweise

Wählen Sie im Database Manager GUI Instance ® Configuration ® Hot Standby.

Starten Sie die gewünschten Schritte jeweils mit Next.

...

1. Wählen Sie Add or Remove Standby Instances.

2. Klicken Sie auf den Add Standby Instance-Button. Machen Sie folgende Angaben:

Node | Name des Standby-Rechners
Login Name | Betriebssystembenutzer auf dem Standby-Rechner
Password | Kennwort des Betriebssystembenutzers auf dem Standby-Rechner
Installation | Installationspfad der Datenbanksoftware auf dem Standby-Rechner
Delay | Zeitverzögerung in Sekunden, mit der die Standby-Komponente die Änderungen in der Master-Komponente nachfährt.

3. Wählen Sie Start.

Die Standby-Komponente wurde hinzugefügt und in den Betriebszustand STANDBY gebracht.

Siehe auch:

Master-Komponente einrichten (Hot Standby)


Statistikinformationen aktualisieren (MaxDB: Database Manager GUI)

Statistikinformationen aktualisieren

Von der Datenbankinstanz werden verschiedene Statistikinformationen ermittelt, wie z.B. die Anzahl der Tabelleneinträge, die Größe der Tabellen und Indizes und die Werteverteilung (verschiedene Werte) von Indizes oder Spalten. Diese Informationen werden vom SQL-Optimierer benötigt, um die beste Strategie für das Abarbeiten komplexer SQL-Anweisungen festzulegen. Die Statistikinformationen werden im Datenbankkatalog gespeichert.

Wenn sich die Größenverhältnisse oder Werte in der Datenbankinstanz wesentlich geändert haben, ist es notwendig, die Statistiken zu aktualisieren. Dies sollte etwa einmal wöchentlich erfolgen.

Sie können die Statistikwerte für bestimmte Spalten, bestimmte Tabellen oder alle Basistabellen aktualisieren.

Voraussetzungen

Die Datenbankinstanz befindet sich im Betriebszustand ONLINE.

Vorgehensweise

Markieren Sie in der Liste der Datenbankinstanzen die gewünschte Datenbankinstanz. Wählen Sie Instance ® Tuning ® Optimizer Statistics.

Das Datenbanksystem verfügt über eine interne Liste der Tabellen, für die eine Aktualisierung der Statistiken erforderlich ist.

· Statistikeinträge für alle Tabellen aktualisieren
Sie können die Statistikeinträge für alle Tabellen dieser internen Liste aktualisieren. Geben Sie dazu unter Search keine Suchargumente ein, sondern belassen Sie die Einstellungen *.
Statistikeinträge für ausgewählte Tabellen aktualisieren
Sie können die Statistikeinträge für ausgewählte Tabellen dieser internen Liste aktualisieren. Geben Sie dazu unter Search geeignete Suchargumente ein.

Owner | Eigentümer
Table Name | Tabellenname
Column Name | Spaltenname

· Sie können die Größe einer Stichprobe bestimmen. Geben Sie dazu unter Estimate entsprechende Informationen ein.

Use estimate value | Markieren Sie diese Möglichkeit.
Rows | Anzahl der zu prüfenden Zeilen
Percent | Prozentsatz der zu prüfenden Zeilen

Die Aktion wird nur über die angegebene Anzahl von Zeilen bzw. den angegeben Prozentsatz bezogen auf die Gesamtzahl der Datenbanktabellen ausgeführt und ist daher entsprechend schneller.

Die Aussagefähigkeit einer solchen Stichprobe ist von der Größe der Tabellen und der physischen Lage der Daten abhängig. Messungen haben ergeben, dass bei großen Tabellen (mehr als 1 Mio Einträge) Stichproben mit mehr als 20000 Zeilen gute Ergebnisse bringen.

· Sie können sich unabhängig von der internen Liste alle Tabellen anzeigen lassen, für die eine Aktualisierung der Statistiken durchgeführt werden könnte. Im Bereich Advanced markieren Sie dazu Select from tables.

Tabellenstatistiken aktualisieren

1. Wählen Sie Actions ® Search.

2. Sie erhalten eine Liste der Tabellen, die Ihren Angaben im Bereich Search oder Advanced entsprechen. An den Ausgaben unter Update Statistics Date und Update Statistics Time können Sie ablesen, wann für die jeweilige Tabelle die Statistiken letztmalig aktualisiert wurden.
Wenn Sie die Statistiken einzelner Tabellen in der ausgegeben Liste aktualisieren wollen, markieren Sie diese gezielt. Wenn Sie die Statistiken aller ausgegebenen Tabellen aktualisieren wollen, wählen Sie Actions ® Mark All.
Markieren Sie Include update columns for marked tables (im Bereich Advanced) wenn zusätzlich zu den Tabellenstatistiken auch die Spaltenstatistiken aktualisiert werden sollen. Mittels Doppelklick erhalten Sie eine Anzeige der Spalten einer Tabelle. Wählen Sie die gewünschten Spalten aus.

3. Wählen Sie Actions ® Execute, um die Statistiken der ausgewählten Tabellen zu aktualisieren.
Wenn Sie keine Tabellen ausgewählt haben, werden die Statistiken der Tabellen aktualisiert, die in der internen Liste des Datenbanksystems geführt werden.


Stoppen der Datenbankinstanz (Shutdown) (MaxDB: Database Manager GUI)

Stoppen der Datenbankinstanz (Shutdown)

Sie können mit dem Database Manager GUI eine Datenbankinstanz stoppen.

Voraussetzungen

1. Sorgen Sie dafür, dass die Datenbankinstanz in die Liste der Datenbankinstanzen aufgenommen ist (siehe dazu Liste der Datenbankinstanzen verwalten).

2. Stellen Sie die Verbindung zum DBM-Server her.

3. Die Datenbankinstanz befindet sich im Betriebszustand ONLINE: Betriebszustand überwachen.

Vorgehensweise

Wählen Sie die gewünschte Datenbankinstanz aus der Liste der Datenbankinstanzen mittels Doppelklick aus.

· Überführen in den Betriebszustand ADMIN
Wählen Sie Actions ® Admin.
Die Datenbankinstanz wird in den Betriebszustand OFFLINE und anschließend in den Betriebszustand ADMIN überführt. Eventuelle Änderungen an den Datenbankparametern werden wirksam.

· Überführen in den Betriebszustand OFFLINE
Wählen Sie Actions ® Offline.
Die Datenbankinstanz wird gestoppt

Wenn gerade eine Sicherung durchgeführt wird, wartet der Database Manager mit dem Stoppen der Datenbankinstanz solange, bis die Sicherung beendet ist.

Nutzen Sie die Protokolldatei knldiag, um Fehler beim Starten oder Stoppen der Datenbankinstanz zu analysieren.

Siehe auch:

Starten der Datenbankinstanz (Restart)


Verbindung zum DBM-Server (MaxDB: Database Manager GUI)

Verbindung zum DBM-Server

Das Verwalten von Datenbankinstanzen mit Hilfe des Programms Database Manager GUI setzt voraus, dass eine Verbindung zwischen der zu verwaltenden Datenbankinstanz und ihrem DBM-Server besteht.

Sie können die Verbindung zum DBM-Server unter Berücksichtigung der Performance Ihres Systems für eine, mehrere oder alle in der Liste angezeigten Datenbankinstanzen gezielt herstellen. Ebenso können Sie die Verbindung einzelner Datenbankinstanzen zum DBM-Server beenden, um die Systemlast zu reduzieren.

Voraussetzung

Die gewünschte Datenbankinstanz muss in die Liste der Datenbankinstanzen aufgenommen sein. Verfahren Sie dazu wie in Liste der Datenbankinstanzen verwalten beschrieben.

Aufbau der Verbindung einer Datenbankinstanz zum DBM-Server

Der Eintrag zum Zustand der Datenbankinstanz State ist Not connected.

1. Markieren Sie die gewünschte Datenbankinstanz in der Liste der Datenbankinstanzen.

2. Wählen Sie Instance ® Connect.

3. Geben Sie gegebenenfalls Name und Kennwort des Database-Manager-Benutzers ein. Sie können diese Angaben speichern.

Der Database Manager kann nun den aktuellen Betriebszustand der ausgewählten Datenbankinstanz ermitteln.

Beenden der Verbindung einer Datenbankinstanz zum DBM-Server

1. Markieren Sie die gewünschte Datenbankinstanz in der Liste der Datenbankinstanzen.

2. Wählen Sie Instance ® Disconnect.

Der Eintrag zum Zustand dieser Datenbankinstanz State ist nun Not connected.

Die Verbindung zum DBM-Server wurde beendet. Der Database Manager kann nun nicht mehr den aktuellen Betriebszustand der Datenbankinstanz ermitteln.


Volumes anlegen (MaxDB: Database Manager GUI)

Volumes anlegen

Sie wollen mit Hilfe des Database Manager GUI die Speicherkapazität Ihres Daten- oder Log-Bereichs erweitern.

· Sie können so viele Data-Volumes anlegen wie im allgemeinen Datenbankparameter MAXDATAVOLUMES angegeben.

· Es können so viele Log-Volumes anlegen wie im allgemeinen Datenbankparameter MAXLOGVOLUMES angegeben.

Voraussetzung

Die Datenbankinstanz befindet sich im Betriebszustand ONLINE.

Der Wert des Datenbankparameters MAXDATAVOLUMES bzw. MAXLOGVOLUMES ist mindestens so groß wie die Summe der vorhandenen und der neu zu definierenden Volumes.

Das System prüft vor jedem Start der Datenbankinstanz, ob noch genügend Speicherplatz für mindestens ein Volume jeden Typs frei ist. Wenn nicht, vergrößert es den entsprechenden Datenbankparameter automatisch um 1.

Falls erforderlich, verändern Sie die Datenbankparameter MAXDATAVOLUMES und/oder MAXLOGVOLUMES entsprechend (Volume-Datenbankparameter ändern). Damit können Sie nachfolgend im Betriebszustand ONLINE der Datenbankinstanz mehrmals hintereinander ein Volume eines Typs hinzufügen, ohne zwischendurch die Datenbankinstanz stoppen zu müssen.

Vorgehensweise

...

1. Markieren Sie in der Liste der Datenbankinstanzen die gewünschte Datenbankinstanz.

2. Wählen Sie Instance ® Configuration ® Volumes.
Sie erhalten alle bisher vorhandenen Volumes der gewählten Art mit ihren Daten sowie die entsprechend des eingestellten Parameterwertes noch mögliche Anzahl Volumes angezeigt.

Name | Name des Volume
Size | Größe des Volume
Type | Datei, Raw Device oder symbolischer Link
Location | Pfad des Volume
M. Type | Datei, Raw Device oder symbolischer Link (gespiegeltes Volume)
M. Location | Pfad des gespiegelten Log-Volume

3. Wählen Sie einen der vorgeschlagenen Volume-Namen aus.

4. Wählen Sie Actions ® New. Definieren Sie das neue Volume, indem Sie Größe und Pfad eingeben.

Archive-Volumes von Archive-Instanzen können nachträglich nicht vergrößert werden, und es können keine Daten von diesen Volumes gelöscht werden. Setzen Sie deshalb die Größe solcher Volumes auf den maximal möglichen Wert.

5. Sichern Sie Ihre Eingabe.

Siehe auch:

Volumes anzeigen, ändern und löschen


Volumes anzeigen, ändern und löschen (MaxDB: Database Manager GUI)

Volumes anzeigen, ändern und löschen

Sie können mit dem Database Manager GUI Volumes anzeigen, Pfadangaben ändern oder löschen.

Voraussetzungen

Die Datenbankinstanz befindet sich im Betriebszustand OFFLINE.

Sie haben das Log- oder Data-Volume, dessen geänderten Pfad Sie dem Database Manager GUI bekanntgeben wollen, in den neuen Pfad kopiert.

Vorgehensweise

...

1. Markieren Sie in der Liste der Datenbankinstanzen die gewünschte Datenbankinstanz.

2. Wählen Sie Instance ® Configuration ® Volumes.
Sie erhalten alle bisher vorhandenen Volumes der gewählten Art angezeigt.

Name | Name des Volume
Size | Größe des Volume
Type | Datei, Raw Device oder symbolischer Link
Location | Pfad des Volume
M. Type | Datei, Raw Device oder symbolischer Link (gespiegeltes Volume)
M. Location | Pfad des gespiegelten Log-Volume

3. Wählen Sie das zu ändernde Log- oder Data-Volume aus.

4. Wählen Sie Action ® Properties.

5. Geben Sie unter Location den neuen Pfad des Volume an.

6. Sichern Sie Ihre Eingabe.

Wenn Sie nun die Datenbankinstanz neu starten, ist der neue Pfad dem Datenbanksystem bekannt.

Siehe auch:

Volumes anlegen


Volume-Datenbankparameter ändern (MaxDB: Database Manager GUI)

Volume-Datenbankparameter ändern

Mit dem Database Manager GUI können Sie Datenbankparameter definieren, unter anderem auch diejenigen, die die maximal mögliche Anzahl Volumes einer Datenbankinstanz festlegen: die allgemeinen Datenbankparameter MAXDATAVOLUMES und MAXLOGVOLUMES.

Sie können die Werte beider Datenbankparameter nachträglich in jedem Betriebszustand der Datenbankinstanz verändern. Wie alle Datenbankparameteränderungen werden diese jedoch erst mit dem nächsten Starten der Datenbankinstanz wirksam.

Vorgehensweise

...

1. Verfahren Sie für die Datenbankparameter MAXDATAVOLUMES und/oder MAXLOGVOLUMES wie unter Datenbankparameter anzeigen und ändern beschrieben.

2. Überführen Sie die Datenbankinstanz in den Betriebszustand ADMIN.

3. Starten Sie die Datenbankinstanz.
Der Database Manager GUI überführt die Datenbankinstanz nacheinander in die Betriebszustände OFFLINE und ONLINE und sichert den neuen Wert des Datenbankparameters in der Parameterdatei.
Der für diese Anzahl von Volumes erforderlichen Speicherplatz zuzüglich einer Reserve von der Größe des größten Volume dieses Typs wird reserviert. Diese Reserve ermöglicht Ihnen, bei laufendem Datenbankbetrieb ein zusätzliches Volume anzulegen, wenn die anfangs geplante Anzahl von Volumes nicht ausreicht.

Siehe auch:

Volumes anlegen


Sichern von Daten (MaxDB: Database Manager GUI)

Sichern von Daten

Mit dem Database Manager können Sie Datensicherungen und Log-Sicherungen durchführen.

· Interaktive Sicherungen
Verwenden Sie den Backup Wizard.

· Hintergrundsicherungen
Verwenden Sie den Database Manager CLI.
siehe dazu: Database Manager CLI, Abschnitt Sichern und Wiederherstellen von Datenbankinstanzen

Mit dem Database Manager können Sie die Sicherungsmedien verwalten.

Der Database Manager unterstützt eine Reihe von Sicherungsverfahren.

Beachten Sie die empfohlenen Sicherungsstrategien.

Für SAP-Anwendungen kann die Sicherungsfunktionalität des Database Manager und die Verwaltung der Sicherungsmedien über den DBA-Einplanungskalender des Computing Center Management System (CCMS) optimal eingeplant und automatisiert werden. Weitere Informationen dazu finden Sie in der Dokumentation Datenbankverwaltung im CCMS: MySQL MaxDB, Abschnitt [image] DBA-Einplanungskalender


Backup Wizard (MaxDB: Database Manager GUI)

Backup Wizard

Zum Sichern der Daten einer Datenbankinstanz können Sie den Backup Wizard verwenden, der Sie durch den gesamten Vorgang leitet.

Der Backup Wizard kann auf einem windows-basierten Rechner gestartet werden, um auf einem lokalen oder einem entfernten Rechner Daten zu sichern.

Vorgehensweise

Wählen Sie im Database Manager GUI Instance ®Backup ® Backup Wizard.

Starten Sie die gewünschten Sicherungsschritte jeweils mit Next.

1. Sie können Daten einer Datenbankinstanz lokal oder auf einem entfernten Rechner sichern.
Wählen Sie die gewünschte Datenbankinstanz aus oder geben Sie direkt folgende Angaben ein:
Angaben zur Datenbankinstanz
Database Server: Geben Sie den gewünschten Rechnernamen ein.
Database Name: Geben Sie den Datenbanknamen ein.
Angaben zum Database Manager-Benutzer (DBM-Benutzer)
User Name: Geben Sie den Namen des Database Manager-Benutzers an.
Password: Geben Sie das Kennwort ein.

2. Sie können die Datenbankinstanz in den gewünschten Betriebszustand bringen. Für Sicherungen sind die Betriebszustände ADMIN oder ONLINE erforderlich.

3. Wählen Sie die gewünschte Sicherungsart:
Complete Data Backup: Vollständige Datensicherung
Incremental Data Backup: Inkrementelle Datensicherung
Log Backup: Interaktive Log-Sicherung
Activate/deactivate automatic log backup: Automatische Log-Sicherung

Berücksichtigen Sie die Angaben im Backup Wizard zu den bereits durchgeführten Sicherungen.
Informieren Sie sich über die Sicherungsverfahren und wählen Sie eine geeignete Sicherungsstrategie.

4. Wählen Sie ein Sicherungsmedium aus.
Sollte noch kein Sicherungsmedium vorhanden sein, können Sie das Sicherungsmedium oder eine Gruppe paralleler Sicherungsmedien anlegen.
siehe dazu Verwalten der Sicherungsmedien

5. Starten Sie die Sicherung.

6. Schließen Sie den Backup Wizard.


Verwalten der Sicherungsmedien (MaxDB: Database Manager GUI)

Verwalten der Sicherungsmedien

Bevor Sie Daten sichern können, müssen Sie Sicherungsmedien definiert haben. Sicherungsmedien können Sie interaktiv mit dem Database Manager GUI oder dem Backup Wizard anlegen und verwalten.

· Anlegen eines einzelnen Sicherungsmediums

· Anlegen einer Gruppe paralleler Sicherungsmedien

· Ändern von Sicherungsmedien

· Löschen von Sicherungsmedien


Anlegen eines einzelnen Sicherungsmediums (MaxDB: Database Manager GUI)

Anlegen eines einzelnen Sicherungsmediums

Sicherungsmedien können Sie interaktiv mit dem Database Manager GUI oder dem Backup Wizard anlegen.

Voraussetzung

Die Verbindung der Datenbankinstanz zum DBM-Server ist hergestellt.

Vorgehensweise

· Database Manager GUI
Markieren Sie in der Liste der Datenbankinstanzen die gewünschte Datenbankinstanz
Wählen Sie Instance ® Backup ® Backup Medium.
Wählen Sie Actions ® New Medium.

· Backup Wizard
Im Fenster Media for Backup wählen Sie New Medium.

...

General

Wählen Sie General und geben Sie folgende Informationen ein:

Name | Name des Sicherungsmediums Beachten Sie die Namenskonventionen für Sicherungsmedien.
Backup Type | Wählen Sie gegebenenfalls die gewünschte Sicherungsart aus: Complete Data Backup: Vollständige Datensicherung IncrementalData Backup: Inkrementelle Datensicherung Log Backup: Log-Sicherung
Device Type | Wählen Sie die Art des Sicherungsmediums aus: File: Datei Wenn Sie den Log-Bereich in eine Datei sichern, erzeugt der Database Manager automatisch Versionsdateien. Tape: Band Log-Sicherungen auf Band sind nicht möglich. Pipe: Pipe Wenn Sie mit Hilfe eines externen Sicherungswerkzeugs sichern, geben Sie stets Pipe an.
Location/Device | Geben Sie an, wohin gesichert werden soll. Bei Dateien und Pipes empfehlen wir, den absoluten Pfad des Sicherungsmediums anzugeben. UNIX: Wenn Sie auf ein Band sichern, müssen Sie den Device-Treiber korrekt ansprechen. Verwenden Sie für Datensicherungen ein Rewind-Tape. Windows: Das System stellt den Device-Treiber automatisch ein.

Extended

Wählen Sie Extended und geben Sie folgende Informationen ein:

Size | Größe des Sicherungsmediums
Overwrite | Markieren Sie Overwrite, wenn Sie den Überschreibemodus für das Sicherungsmedium nutzen wollen.
Blocksize | Markieren Sie Blocksize, wenn Sie in Blöcken zu 8 Seiten sichern wollen.
Autoloader | Markieren Sie Autoloader, wenn Sie eine Bandstation mit automatischem Bandwechsel verwenden wollen (Sichern mit automatischem Bandwechsler).
OS Command | Sie können Betriebssystemkommandos angeben, die beim Sichern auf Band möglich sind.


Anlegen einer Gruppe paralleler Sicherungsmedien (MaxDB: Database Manager GUI)

Anlegen einer Gruppe paralleler Sicherungsmedien

Um eine höhere Geschwindigkeit beim Sichern zu erreichen, können Sie auf mehrere Sicherungsmedien parallel sichern. Sie legen dafür eine Gruppe paralleler Sicherungsmedien unter einem Mediennamen an. Einer Sicherung, die auf mehrere Medien parallel ausgeführt werden soll, muss der Name der Gruppe paralleler Sicherungsmedien zugeordnet werden. Beim Wiederherstellen können Sie die Daten aus einer solchen Sicherung auch wieder parallel einlesen.

Sicherungsmedien können Sie interaktiv mit dem Database Manager GUI oder dem Backup Wizard anlegen.

Voraussetzung

Die Verbindung der Datenbankinstanz zum DBM-Server ist hergestellt.

Vorgehensweise

· Database Manager GUI
Markieren Sie in der Liste der Datenbankinstanzen die gewünschte Datenbankinstanz.
Wählen Sie Instance ® Backup ® Backup Medium.
Wählen Sie Actions ® New Parallel Medium.

· Backup Wizard
Im Fenster Media for Backup wählen Sie New Parallel Medium.

General

Wählen Sie General und geben Sie folgende Informationen ein:

Name

Name für die Gruppe paralleler Sicherungsmedien
Beachten Sie die Namenskonventionen für Sicherungsmedien.

Backup Type

Wählen Sie gegebenenfalls die gewünschte Sicherungsart aus:
Complete Data Backup: Vollständige Datensicherung
Incremental Data Backup: Inkrementelle Datensicherung

Device Type

Wählen Sie die Art der Sicherungsmedien aus:
File: Datei
Tape: Band
Pipe: Pipe
Wenn Sie mit Hilfe eines externen Sicherungswerkzeugs sichern, geben Sie stets Pipe an.

Name/Location

Name und Pfadangaben für die Sicherungsmedien, die in der Gruppe paralleler Sicherungsmedien enthalten sein sollen.

Ändern oder ergänzen Sie die Vorschlagswerte, um anzugeben, wohin gesichert werden soll.

Bei Dateien und Pipes empfehlen wir, die absoluten Pfade der Sicherungsmedien anzugeben.
UNIX: Wenn Sie auf Bänder sichern, müssen Sie den Device-Treiber korrekt ansprechen. Verwenden Sie für Datensicherungen ein Rewind-Tape.
Windows: Das System stellt den Device-Treiber automatisch ein.

Extended

Wählen Sie Extended und geben Sie folgende Informationen ein:

Unit | Maßeinheit für die Angabe der Größen der Sicherungsmedien
Overwrite | Markieren Sie Overwrite, wenn Sie den Überschreibemodus für die Sicherungsmedien nutzen wollen.
Blocksize | Markieren Sie Blocksize, wenn Sie in Blöcken zu 8 Seiten sichern wollen.
Autoloader | Markieren Sie Autoloader, wenn Sie eine Bandstation mit automatischem Bandwechsel verwenden wollen (Sichern mit automatischem Bandwechsler).
Name/Size/OS Command | Für jedes Sicherungsmedium der Gruppe können Sie die Größe angeben. Sie können Betriebssystemkommandos angeben, die beim Sichern auf Band möglich sind.

...


Ändern von Sicherungsmedien (MaxDB: Database Manager GUI)

Ändern von Sicherungsmedien

Sicherungsmedien können Sie interaktiv mit dem Database Manager GUI oder dem Backup Wizard ändern.

Vorgehensweise

· Database Manager GUI
Markieren Sie in der Liste der Datenbankinstanzen die gewünschte Datenbankinstanz.
Wählen Sie Instance ® Backup ® Backup Medium.
Wählen Sie das gewünschte Sicherungsmedium oder die Gruppe paralleler Sicherungsmedien aus.

· Backup Wizard
Im Fenster Media for Backup wählen Sie das gewünschte Sicherungsmedium oder die Gruppe paralleler Sicherungsmedien aus.

...

Namen des Sicherungsmediums/der Gruppe paralleler Sicherungsmedien ändern

1. Wählen Sie Action ® Rename bzw. Rename und führen Sie die Änderungen durch.

2. Wählen Sie die Eingabetaste, um Ihre Änderung zu sichern.

Eigenschaften eines Sicherungsmediums ändern

1. Wählen Sie Action ® Properties bzw. Properties und führen Sie die Änderungen durch.

2. Informationen zu den Eigenschaften, die in General und Extended geändert werden können, finden Sie in Anlegen eines einzelnen Sicherungsmediums.

3. Wählen Sie Label, wenn Sie die Sicherungskennung anzeigen lassen wollen.


Löschen von Sicherungsmedien (MaxDB: Database Manager GUI)

Löschen von Sicherungsmedien

Sicherungsmedien können Sie interaktiv mit dem Database Manager GUI oder dem Backup Wizard löschen.

Vorgehensweise

· Database Manager GUI
Markieren Sie in der Liste der Datenbankinstanzen die gewünschte Datenbankinstanz.
Wählen Sie Instance ® Backup ® Backup Medium.
Wählen Sie das gewünschte Sicherungsmedium oder die Gruppe paralleler Sicherungsmedien aus.

· Backup Wizard
Im Fenster Media for Backup wählen Sie das gewünschte Sicherungsmedium oder die Gruppe paralleler Sicherungsmedien aus.

Wählen Sie Action ® Delete bzw. Delete, um das gewünschte Sicherungsmedium zu löschen.


Sicherungsverfahren (MaxDB: Database Manager GUI)

Sicherungsverfahren

Das Sichern von Daten können Sie interaktiv mit dem Backup Wizard durchführen. In Abhängigkeit von den technischen Voraussetzungen sind folgende Sicherungsverfahren möglich:

· Sichern auf ein einzelnes Sicherungsmedium

· Sichern auf eine Gruppe paralleler Sicherungsmedien

Wenn die Kapazität des gewählten Sicherungsmediums für die Gesamtmenge der zu sichernden Daten ausreicht, ist kein Eingriff eines Datenbankadministrators während des Sicherungsvorganges nötig.

Wenn die Kapazität des gewählten Sicherungsmediums nicht ausreicht, müssen Folgemedien verwendet werden, d. h. dass ein Sicherungsmedium, wenn es voll ist, automatisch oder manuell durch ein leeres Medium ersetzt werden muss:

· Sichern mit automatischen Bandwechsler

· Sichern mit manuellem Medienwechsel (Folgemedium)

Der Backup Wizard fordert weitere Sicherungsmedien an, wenn ein Sicherungsmedium vollständig beschrieben wurde, die Sicherung aber noch nicht beendet ist. Dafür muss die Mediengröße beim Anlegen des Mediums definiert worden sein bzw. die Bandstation das Bandende als solches erkennen.

Sie haben auch die Möglichkeit, externe Sicherungswerkzeuge zu verwenden:

· Sichern mit externen Sicherungswerkzeugen

Für das Sichern der Log-Einträge steht Ihnen eine automatische Sicherungsfunktion zur Verfügung:

· Ein- und Ausschalten der automatischen Log-Sicherung


Sichern auf ein einzelnes Sicherungsmedium (MaxDB: Database Manager GUI)

Sichern auf ein einzelnes Sicherungsmedium

Das Sichern von Daten können Sie interaktiv mit dem Backup Wizard durchführen. Sie können die Daten auf ein einzelnes Sicherungsmedium sichern.

Wenn möglich, bevorzugen Sie für Datensicherungen immer das Sichern auf eine Gruppe paralleler Sicherungsmedien gegenüber der Sicherung auf ein einzelnes Sicherungsmedium mit Folgemedien. Für Log-Sicherungen sind keine parallelen Sicherungen möglich.

Vor jeder vollständigen Datensicherung sollten Sie die Datenbankstrukturen prüfen.

Voraussetzung

Es steht nur ein Sicherungsgerät zur Verfügung.

Sie haben das gewünschte Sicherungsmedium angelegt.
Wenn Sie mit Hilfe eines automatischen Bandwechslers (Sichern mit automatischem Bandwechsler) oder mit Hilfe externer Sicherungswerkzeuge (Sichern mit externen Sicherungswerkzeugen) sichern wollen, müssen Sie dies bereits beim Anlegen des Sicherungsmediums explizit angeben.

Im Normalfall sollten Sie Datenbankinstanzen im Betriebszustand ONLINE sichern.
Das Sichern ist im Notfall auch im Betriebszustand ADMIN möglich.

Vorgehensweise

Verwenden Sie den Backup Wizard.

1. Falls noch kein Sicherungsmedium angelegt wurde, müssen Sie dies tun wie in Anlegen eines einzelnen Sicherungsmediums beschrieben. Im Fenster Media for Backup wählen Sie das gewünschte Sicherungsmedium aus.

2. Überprüfen Sie die Angaben. Ändern Sie diese erforderlichenfalls (Ändern von Sicherungsmedien).

3. Starten Sie die Sicherung bzw. schalten Sie die automatische Log-Sicherung ein.
Falls die Kapazität des angegebenen Sicherungsmediums für die Sicherung nicht ausreicht und Sie keinen automatischen Bandwechsler verwenden, fordert Sie der Backup Wizard auf, ein neues Sicherungsmedium anzugeben und einzulegen, sobald das vorhergehende Sicherungsmedium voll beschrieben ist (Sichern mit manuellem Medienwechsel (Folgemedium)).


Sichern auf eine Gruppe paralleler Sicherungsmedien (MaxDB: Database Manager GUI)

Sichern auf eine Gruppe paralleler Sicherungsmedien

Das Sichern von Daten können Sie interaktiv mit dem Backup Wizard durchführen. Sie können die Daten auf eine Gruppe paralleler Sicherungsmedien sichern, um maximalen Datendurchsatz zu gewährleisten. Durch den gleichzeitigen Einsatz von bis zu 32 Bandgeräten können Sie so die Sicherungszeiten erheblich reduzieren.

Wenn möglich, bevorzugen Sie für eine Datensicherung immer das Sichern auf eine Gruppe paralleler Sicherungsmedien gegenüber der Sicherung auf ein einzelnes Sicherungsmedium mit Folgemedien. Für Log-Sicherungen sind keine parallelen Sicherungen möglich.

Vor jeder vollständigen Datensicherung sollten Sie die Datenbankstrukturen prüfen.

Voraussetzung

Es stehen mehrere Sicherungsgeräte zur Verfügung.

Sie haben die gewünschten Sicherungsmedien angelegt.
Wenn Sie mit Hilfe eines automatischen Bandwechslers (Sichern mit automatischem Bandwechsler) oder mit Hilfe externer Sicherungswerkzeuge (Sichern mit externen Sicherungswerkzeugen) sichern wollen, müssen Sie dies bereits bei der Mediendefinition explizit angeben.

Im Normalfall sollten Sie Datenbankinstanzen im Betriebszustand ONLINE sichern.
Das Sichern ist im Notfall auch im Betriebszustand ADMIN möglich.

Vorgehensweise

Verwenden Sie den Backup Wizard.

1. Falls noch keine Gruppe paralleler Sicherungsmedien angelegt wurde, müssen Sie dies tun wie in Anlegen einer Gruppe paralleler Sicherungsmedien beschrieben. Im Fenster Media for Backup wählen Sie die gewünschte Gruppe paralleler Sicherungsmedium aus.

2. Überprüfen Sie die Angaben. Ändern Sie diese erforderlichenfalls (Ändern von Sicherungsmedien).

3. Starten Sie die Sicherung.
Falls die Kapazität der angegebenen Gruppe paralleler Sicherungsmedien für die Sicherung nicht ausreicht und Sie keinen automatischen Bandwechsler verwenden, fordert Sie der Backup Wizard auf, ein neue Sicherungsmedien anzugeben und einzulegen, sobald das vorhergehende Sicherungsmedium voll beschrieben ist (Sichern mit manuellem Medienwechsel (Folgemedium)).


Sichern mit automatischem Bandwechsler (MaxDB: Database Manager GUI)

Sichern mit automatischem Bandwechsler

Das Sichern von Daten können Sie interaktiv mit dem Backup Wizard durchführen, der auch automatische Bandwechsler unterstützt.

Eine alternative Möglichkeit ist das Sichern mit Hilfe eines externen Sicherungswerkzeugs (Sichern mit externen Sicherungswerkzeugen).

Wenn Sie für das Sichern einen automatischen Bandwechsler verwenden wollen, wählen Sie beim Anlegen der Sicherungsmedien (Anlegen eines einzelnen Sicherungsmediums, Anlegen einer Gruppe paralleler Sicherungsmedien oder Ändern von Sicherungsmedien) folgende Einstellungen:

· General
Wählen Sie als Device Type Tape.

· Extended
Markieren Sie Autoloader.
Unter dem Betriebssystem Windows ist damit der automatische Bandwechsel definiert.
Wenn Sie ein anderes Betriebssystem verwenden, geben Sie zusätzlich das dem Betriebssystem entsprechende Kommando für den Bandwechsel an. Tragen Sie im Feld OS Command das Betriebssystemkommando ein.

Nach dem Einlegen des Bandmagazins in den automatischen Bandwechsler muss das erste Band im Gerät per Hand ausgewählt werden.
Wenn das Ende des Bandes erreicht ist, nimmt der Bandwechsler das nächste zur Verfügung stehende Band.

Voraussetzung für ein erfolgreiches Sichern ist eine ausreichende Anzahl von Bändern.

Am Ende des Sicherungsvorganges ist die Anzahl der beschriebenen Bänder am Bandgerät zu erkennen. Die Bänder sollten mit der Sicherungskennung beschriftet werden, die zu Beginn der Sicherung angezeigt und bestätigt wurde.

Prüfen Sie vor dem Sichern unbedingt, dass der Schreibschutz bei allen Bändern deaktiviert ist, da andernfalls der gesamte Sicherungsvorgang abgebrochen wird.


Sichern mit manuellem Medienwechsel (Folgemedium) (MaxDB: Database Manager GUI)

Sichern mit manuellem Medienwechsel (Folgemedium)

Das Sichern von Daten können Sie interaktiv mit dem Backup Wizard durchführen, der Sie gegebenenfalls auch zu einem Medienwechsel (Verwenden eines Folgemediums) auffordert.

Voraussetzungen

Sie haben das Sichern auf ein einzelnes Sicherungsmedium oder auf eine Gruppe paralleler Sicherungsmedien gestartet.

Die Kapazität des eingelegten Sicherungsmediums bzw. der eingelegten Sicherungsmedien ist für die gewählte Sicherung nicht ausreichend. Die Balkenanzeige des Sicherungsfortschritts stoppt, bevor 100 % erreicht sind.

Sie wurden vom Backup Wizard aufgefordert, das Folgemedium zur Verfügung zu stellen.

Folgemedium Band

...

1. Legen Sie das nächste Band ein.

2. Vergewissern Sie sich, dass das gerade beschriebene Band in Sicherheit gebracht wurde und das richtige Band eingelegt ist.

3. Setzen Sie die Sicherung fort.

Wir empfehlen, bei der Mediendefinition von Bändern die genaue Kapazität des Mediums anzugeben. Wenn der Bandgerätetreiber zuverlässig anzeigt, wann das Ende des Bandes erreicht wird, reagiert der Database Manager GUI auch bei Size = 0wie beschrieben.
Falls das Bandende nicht richtig erkannt wird, erscheint die Meldung Writing Error. Auch in diesem Fall können Sie wie in den Schritten 1-3 beschrieben fortfahren.

Folgemedium Datei

...

1. Geben Sie unter New Location den Namen und vollständigen Pfad einer neuen Datei an, auf die gesichert werden soll.

2. Setzen Sie die Sicherung fort.

Wiederholen Sie die dem Medientyp entsprechende Verfahrensweise so oft, bis der Sicherungsvorgang abgeschlossen ist.

Solange der Sicherungsvorgang läuft, kann keine weitere Sicherung gestartet werden.


Sichern mit externen Sicherungswerkzeugen (MaxDB: Database Manager GUI)

Sichern mit externen Sicherungswerkzeugen

Das Sichern von Daten können Sie interaktiv mit dem Backup Wizard durchführen, der auch das Sichern auf Bänder und Folgebänder mit Hilfe von externen Sicherungswerkzeugen unterstützt.

Voraussetzung

Anschluss Externer Sicherungswerkzeuge

Im Normalfall sollten Sie eine Datenbankinstanz im Betriebszustand ONLINE sichern. Das Sichern ist im Notfall auch im Betriebszustand ADMIN möglich.

Vorgehensweise

Wenn Sie für das Sichern externe Sicherungswerkzeuge verwenden wollen, wählen Sie beim Anlegen der Sicherungsmedien (Anlegen eines einzelnen Sicherungsmediums, Anlegen einer Gruppe paralleler Sicherungsmedien oder Ändern von Sicherungsmedien) folgende Einstellungen:

General

· Beachten Sie die Namenskonventionen für Sicherungsmedien.

· Wählen Sie als Device Type Pipe.

· Geben Sie unter Location den Betriebssystempfad dieser Pipe an.

Verfahren Sie bei der Sicherung wie unter Sichern auf ein einzelnes Sicherungsmedium bzw. Sichern auf eine Gruppe paralleler Sicherungsmedien beschrieben.


Ein- und Ausschalten der automatischen Log-Sicherung (MaxDB: Database Manager GUI)

Ein- und Ausschalten der automatischen Log-Sicherung

Die automatische Log-Sicherung können Sie mit dem Backup Wizard oder mit dem Database Manager GUI ein- und ausschalten, um maximale Datensicherheit in produktiven Systemen zu gewährleisten.

Voraussetzung

Die Datenbankinstanz ist im Betriebszustand ONLINE.

Verwenden des Backup Wizard

Die automatische Log-Sicherung können Sie mit dem Backup Wizard ein- und ausschalten.

1. Starten Sie den Backup Wizard .

2. Falls noch kein Sicherungsmedium angelegt wurde, müssen Sie dies tun wie in Anlegen eines einzelnen Sicherungsmediums beschrieben. Im Fenster Media for Backup wählen Sie das gewünschte Sicherungsmedium aus.

3. Überprüfen Sie die Angaben. Ändern Sie diese erforderlichenfalls ( Ändern von Sicherungsmedien ).

4. Wenn sich die Datenbankinstanz im Betriebszustand ONLINE befindet, können Sie die automatische Log-Sicherung ein- oder ausschalten (Activate/deactivate automatic log backup).

Verwenden des Database Manager GUI

Die automatische Log-Sicherung können Sie mit dem Database Manager GUI ein- und ausschalten.

Voraussetzung für das Durchführen von Log-Sicherungen ist das Anlegen der erforderlichen Sicherungmedien.

1. Starten Sie den Database Manager GUI.

2. Wählen Sie Instance.

3. Wenn sich die Datenbankinstanz im Betriebszustand ONLINE befindet, können Sie die automatische Log-Sicherung ein- oder ausschalten (Set Auto Log ON/OFF).

Wenn Sie die automatische Log-Sicherung Ihres Systems einschalten, bleibt diese solange eingeschaltet, bis Sie die automatische Log-Sicherung wieder ausschalten. Die automatische Log-Sicherung bleibt auch dann eingeschaltet, wenn die Datenbankinstanz neu gestartet wird.


Wiederherstellen von Daten (MaxDB: Database Manager GUI)

Wiederherstellen von Daten

Der Database Manager unterstützt das Wiederherstellen der Datenbankinstanz durch das Einlesen von Sicherungen. Dabei können Sie den letzten oder einen früheren Datenbankzustand wiederherstellen.

Desweiteren wird das Wiederherstellen von Indizes und defekten Spiegel-Log-Volumes unterstützt.

Wenn vor dem Beginn des Wiederherstellens der Datenbankinstanz die automatische Log-Sicherung aktiv war, wird diese nach dem Wiederherstellen nicht automatisch wieder eingeschaltet.

Um die Log-Sicherung wieder einzuschalten, verfahren Sie wie in Einschalten der automatischen Log-Sicherung beschrieben.

Vorgehensweise

Für interaktive Wiederherstellungsprozesse von Daten können Sie in der Regel den Recovery Wizard verwenden. Der Recovery Wizard schlägt Ihnen die optimale Wiederherstellungsstrategie vor. Es gibt folgende Verfahren:

· Wiederherstellen aus der zuletzt angefertigten Sicherung der Sicherungshistorie

· Wiederherstellen aus einer früheren Sicherung der Sicherungshistorie

· Wiederherstellen ohne Sicherungshistorie

· Fortsetzen einer unterbrochenen Wiederherstellung

· Wiederherstellen mit automatischem Bandwechsler

· Wiederherstellen mit externen Sicherungswerkzeugen

Sollte ein Wiederherstellen mit dem Recovery Wizard nicht möglich sein (z.B. weil die Datenbankinstanz gelöscht wurde), müssen Sie die Datenbankinstanz initialisieren (Anlegen/Initialisieren einer Datenbankinstanz) und dann mit dem Recovery Wizard wiederherstellen. Dieses Verfahren ist auf Grund des Initialisierungsvorgang wesentlich zeitaufwändiger und sollte daher nur dann eingesetzt werden, wenn es wirklich erforderlich ist.

· Wiederherstellen nach Initialisieren einer Datenbankinstanz

Mit dem Database Manager GUI können Sie Indizes und gespiegelte Volumes wiederherstellen:

· Wiederherstellen der Indizes nach Datenbankwiederherstellung

· Wiederherstellen eines gespiegelten Log-Volume


Recovery Wizard (MaxDB: Database Manager GUI)

Recovery Wizard

Zum Wiederherstellen von Daten einer Datenbankinstanz können Sie den Recovery Wizard verwenden, der Sie durch den gesamten Vorgang leitet.

Der Recovery Wizard kann auf einem windows-basierten Rechner gestartet werden, um auf einem lokalen oder einem entfernten Rechner Daten wiederherzustellen.

Der Recovery Wizard schlägt grundsätzlich das schnellste Verfahren der Wiederherstellung vor. Dabei werden zuerst vollständige Datensicherung(en) und anschließend, soweit notwendig, eine inkrementelle Datensicherung und Log-Sicherungen eingelesen.

Um maximalen Datendurchsatz zu gewährleisten, können Datensicherungen von mehreren Sicherungsmedien gleichzeitig eingelesen werden. Die Anzahl der Medien in einer solchen Gruppe paralleler Sicherungsmedien ist dabei unabhängig von der Anzahl der beim Anfertigen der Sicherung verwendeten parallelen Sicherungsmedien. Auch eine Sicherung auf ein einzelnes Medium mit Folgemedien kann parallel zurückgeladen werden. Durch den Einsatz von bis zu 32 Bandgeräten können Sie so die Wiederherstellungszeiten erheblich reduzieren.

Log-Sicherungen können nicht parallel eingelesen werden.

Vorgehensweise

Wählen Sie im Database Manager GUI Instance ®Recovery ® Recovery Wizard.

Starten Sie die gewünschten Wiederherstellungsschritte jeweils mit Next.

1. Sie können Daten einer Datenbankinstanz lokal oder auf einem entfernten Rechner wiederherstellen.
Wählen Sie die gewünschte Datenbankinstanz aus oder geben Sie direkt folgende Angaben ein:
Angaben zur Datenbankinstanz
Database Server: Geben Sie den gewünschten Rechnernamen ein.
Database Name: Geben Sie den Datenbanknamen ein.
Angaben zum Database Manager-Benutzer (DBM-Benutzer)
User Name: Geben Sie den Namen des Database Manager-Benutzers an.
Password: Geben Sie das Kennwort ein.

2. Sie können die Datenbankinstanz in den gewünschten Betriebszustand bringen. Für Wiederherstellungen ist der Betriebszustand ADMIN erforderlich.

3. Wählen Sie die gewünschte Wiederherstellungsart:
Restore last backup: Wiederherstellen aus der zuletzt angefertigten Sicherung der Sicherungshistorie
Restore a specified backup from history: Wiederherstellen aus einer früheren Sicherung der Sicherungshistorie
Restore a medium: Wiederherstellen ohne Sicherungshistorie
Continue restoring pages/log: Wenn das Fortsetzen einer unterbrochenen Wiederherstellung erforderlich ist, wird Ihnen diese Einstellung angezeigt.
Restore database until a specified time: Wenn Sie die Wiederherstellung nur bis zu einem bestimmten Zeitpunkt wünschen, markieren Sie diese Einstellung und tragen den gewünschten Zeitpunkt ein.

4. Die Wiederherstellungsstrategie wird Ihnen angezeigt. Sie werden aufgefordert, die erforderlichen Sicherungsmedien einzulegen.

5. Starten Sie die Wiederherstellung.

6. Schließen Sie den Recovery Wizard.

Ergebnis

Die Datenbankinstanz ist auf den gewünschten Stand wiederhergestellt.

Wenn die im Recovery Wizard angebotenen Wiederherstellungsverfahren nicht zum gewünschten Erfolg führen, müssen Sie das Verfahren Wiederherstellen nach Initialisieren einer Datenbankinstanz einsetzen.


Wiederherstellen aus der zuletzt angefertigten Sicherung der Sic (MaxDB: Database Manager GUI)

Wiederherstellen aus der zuletzt angefertigten Sicherung der Sicherungshistorie

Das Wiederherstellen von Daten können Sie interaktiv mit dem Recovery Wizard durchführen. Sie können eine Wiederherstellung anhand der zuletzt angefertigten Sicherung durchführen.

Voraussetzungen

Die Protokolldateien dbm.knl und dbm.mdf sind unbeschadet geblieben. Die Sicherungshistorie ist damit vollständig.

Wenn es sich um eine Wiederherstellung mit externen Sicherungswerkzeugen handelt, dann muss zusätzlich das Protokoll dbm.ebf unbeschadet geblieben sein.

Die Datenbankinstanz befindet sich im Betriebszustand ADMIN.

Vorgehensweise

Verwenden Sie den Recovery Wizard.

...

1. Wählen Sie Restore last backup.
Sie haben die Möglichkeit, einen Zeitpunkt zu bestimmen, bis zu dem wiederhergestellt werden soll. Markieren Sie in diesem Fall Restore database until a specified time und geben Sie den gewünschten Zeitpunkt ein.
Das System schlägt Ihnen den aktuellen Zeitpunkt vor. Wenn Sie diesen Systemvorschlag nicht ändern, wird die Datenbankinstanz vollständig, d. h. mit allen aktuellen Änderungen wiederhergestellt.

2. Die zuletzt angefertigte vollständige Datensicherung und die entsprechend Ihren Einstellungen zugehörige inkrementelle Datensicherung sowie die notwendigen Log-Sicherungen werden angezeigt.
Sie haben die Möglichkeit, die inkrementelle Datensicherung aus dem Vorschlag abzuwählen. Der Recovery Wizard schlägt dann stattdessen die entsprechenden Log-Sicherungen oder falls vorhanden eine alternative inkrementelle Datensicherung vor.

3. Sie werden aufgefordert, das angegebene Sicherungsmedium einzulegen.

4. Starten Sie die Wiederherstellung.
Handelt es sich um eine Wiederherstellung mit externen Sicherungswerkzeugen, werden an dieser Stelle die externen Sicherungskennungen angezeigt.
Die vollständige Datensicherung wird wiederhergestellt.

5. Wenn eine inkrementelle Datensicherung wiederhergestellt wird, fordert Sie der Recovery Wizard auf, diese Aktion zu bestätigen.

6. Wenn Log-Sicherungen wiederhergestellt werden müssen, fordert Sie der Recovery Wizard auf, das Wiederherstellen aller angezeigten Log-Sicherungen insgesamt zu bestätigen. Nach dem Wiederherstellen der Log-Sicherungen befindet sich die Datenbankinstanz im Betriebszustand ONLINE.
Wenn keine Log-Sicherungen wiederhergestellt werden müssen, endet die Wiederherstellung. Gegebenenfalls können Sie einen UNTIL-Zeitpunkt angeben. Wählen Sie Restart, um die Datenbankinstanz zu starten.

Beim Einlesen der aufeinanderfolgenden Sicherungen werden Sie vom Recovery Wizard explizit dazu aufgefordert, das jeweils nächstfolgende Sicherungsmedium einzulegen, sofern Sie nicht den Vorgang des Wiederherstellens mit einem automatischem Bandwechsler durchführen.

Sie haben die Möglichkeit, den Vorgang der Wiederherstellung zu unterbrechen und später fortzusetzen (Fortsetzen einer unterbrochenen Wiederherstellung ).


Wiederherstellen aus einer früheren Sicherung der Sicherungshist (MaxDB: Database Manager GUI)

Wiederherstellen aus einer früheren Sicherung der Sicherungshistorie

Das Wiederherstellen von Daten können Sie interaktiv mit dem Recovery Wizard durchführen. Sie können eine Wiederherstellung anhand einer vollständigen Datensicherung aus der Sicherungshistorie durchführen.

Voraussetzung

Die Protokolldateien des Database Manager dbm.knl und dbm.mdf sind unbeschadet geblieben. Die Sicherungshistorie ist damit vollständig.

Handelt es sich um eine Wiederherstellung mit externen Sicherungswerkzeugen, muss zusätzlich das Protokoll dbm.ebf unbeschadet geblieben sein.

Die Datenbankinstanz befindet sich im Betriebszustand ADMIN.

Vorgehensweise

Verwenden Sie den Recovery Wizard.

...

1. Wählen Sie Restore a specified backup from history.
Sie haben die Möglichkeit, einen Zeitpunkt zu bestimmen, bis zu dem wiederhergestellt werden soll. Markieren Sie in diesem Fall Restore database until a specified time und geben Sie den gewünschten Zeitpunkt ein.
Das System schlägt Ihnen den aktuellen Zeitpunkt vor. Wenn Sie diesen Systemvorschlag nicht ändern, wird die Datenbankinstanz vollständig, d. h. mit allen aktuellen Änderungen wiederhergestellt.

2. Die Sicherungshistorie der vollständigen Datensicherungen wird angezeigt.

3. Wählen Sie die gewünschte Datensicherung aus.

4. Die gewählte Datensicherung, die zugehörige inkrementelle Datensicherung und die notwendigen Log-Sicherungen werden angezeigt.
Sie haben die Möglichkeit, die inkrementelle Datensicherung aus dem Vorschlag abzuwählen. Der Recovery Wizard schlägt dann stattdessen die entsprechenden Log-Sicherungen oder falls vorhanden eine alternative inkrementelle Datensicherung vor.

5. Sie werden aufgefordert, das angegebene Sicherungsmedium einzulegen.

6. Starten Sie die Wiederherstellung.
Handelt es sich um eine Wiederherstellung mit externen Sicherungswerkzeugen, werden an dieser Stelle die externen Sicherungskennungen angezeigt.
Die vollständige Datensicherung wird wiederhergestellt.

7. Wenn eine inkrementelle Datensicherung wiederhergestellt wird, fordert Sie der Recovery Wizard auf, diese Aktion zu bestätigen.

8. Wenn Log-Sicherungen wiederhergestellt werden müssen, fordert Sie der Recovery Wizard auf, das Wiederherstellen aller angezeigten Log-Sicherungen insgesamt zu bestätigen. Nach dem Wiederherstellen von Log-Sicherungen befindet sich die Datenbankinstanz im Betriebszustand ONLINE.
Wenn keine Log-Sicherungen wiederhergestellt werden müssen, endet die Wiederherstellung. Gegebenenfalls können Sie einen UNTIL-Zeitpunkt angeben. Wählen Sie Restart, um die Datenbankinstanz zu starten.

Beim Einlesen der aufeinanderfolgenden Sicherungen werden Sie vom Recovery Wizardexplizit dazu aufgefordert, das jeweils nächstfolgende Sicherungsmedium einzulegen, sofern Sie nicht den Vorgang des Wiederherstellen mit automatischem Bandwechsler durchführen.

Sie haben die Möglichkeit, den Vorgang der Wiederherstellung zu unterbrechen und später fortzusetzen (Fortsetzen einer unterbrochenen Wiederherstellung ).


Wiederherstellen ohne Sicherungshistorie (MaxDB: Database Manager GUI)

Wiederherstellen ohne Sicherungshistorie

Das Wiederherstellen von Daten können Sie interaktiv mit dem Recovery Wizard durchführen. Sie können eine Wiederherstellung auch dann durchführen, wenn die Sicherungshistorie nicht verfügbar ist.

Voraussetzungen

Die Datenbankinstanz befindet sich im Betriebszustand ADMIN.

Die Sicherungshistorie ist fehlerhaft oder nicht mehr vollständig.

Vorgehensweise

Verwenden Sie den Recovery Wizard.

...

1. Wählen Sie Restore a medium.
Sie haben die Möglichkeit, einen Zeitpunkt zu bestimmen, bis zu dem die Informationen eines Sicherungsmediums wiederhergestellt werden soll. Markieren Sie in diesem Fall Restore database until a specified time und geben Sie den gewünschten Zeitpunkt ein.
Das System schlägt Ihnen den aktuellen Zeitpunkt vor. Wenn Sie diesen Systemvorschlag nicht ändern, werden die Sicherungen vollständig, d. h. mit allen darin vorhandenen Änderungen wiederhergestellt.

2. Eine Liste aller vorhandenen Sicherungsmedien wird angezeigt.

3. Wählen Sie das wiederherzustellende Sicherungsmedium aus.
Wenn es sich um eine Wiederherstellung mit externen Sicherungswerkzeugen handelt, erhalten Sie eine Liste der Sicherungen. Wählen Sie gegebenenfalls die gewünschten externen Sicherungskennungen aus.

4. Sie werden aufgefordert, das angegebene Sicherungsmedium einzulegen. Handelt es sich um eine Wiederherstellung mit externen Sicherungswerkzeugen, werden nochmals die externen Sicherungskennungen angezeigt.

5. Starten Sie den Wiederherstellungsvorgang.
Wenn Sie anschließend weitere Sicherungsmedien ohne Sicherungshistorie wiederherstellen wollen, wiederholen Sie die Vorgehensweise.

6. Wählen Sie Restart, um die Datenbankinstanz neu zu starten.

Sie haben die Möglichkeit, den Vorgang der Wiederherstellung zu unterbrechen und später fortzusetzen (Fortsetzen einer unterbrochenen Wiederherstellung ).


Fortsetzen einer unterbrochenen Wiederherstellung (MaxDB: Database Manager GUI)

Fortsetzen einer unterbrochenen Wiederherstellung

Sie haben die Möglichkeit, nach Abbruch des Wiederherstellens von Daten diesen Vorgang später fortzusetzen.

Voraussetzung

Die Datenbankinstanz befindet sich im Betriebszustand ADMIN.

Eines der möglichen Wiederherstellungsverfahren war gestartet und wurde vor dem Abschluss abgebrochen.

· Wiederherstellen aus der zuletzt angefertigten Sicherung der Sicherungshistorie

· Wiederherstellen aus einer früheren Sicherung der Sicherungshistorie

· Wiederherstellen ohne Sicherungshistorie

Vorgehensweise

Verwenden Sie den Recovery Wizard.

...

1. Wählen Sie Continue restoring pages/log.
Sie haben die Möglichkeit, einen Zeitpunkt zu bestimmen, bis zu dem wiederhergestellt werden soll. Markieren Sie in diesem Fall Restore database until a specified time und geben Sie den gewünschten Zeitpunkt ein.
Das System schlägt Ihnen den aktuellen Zeitpunkt vor. Wenn Sie diesen Systemvorschlag nicht ändern, werden die Sicherungen vollständig, d. h. mit allen darin vorhandenen Änderungen wiederhergestellt.

2. Sie erhalten die Liste aller zu der/den bereits wiederhergestellten Datensicherung/en passenden Log-Sicherungen angezeigt.

3. Setzen Sie den Wiederherstellungsvorgang fort. Sie können den Vorgang des Wiederherstellens sowie seinen Abschluss an der Anzeige auf dem Bildschirm verfolgen.

4. Wählen sie Restart, um die Datenbankinstanz zu starten.

...

Beim Einlesen der aufeinanderfolgenden Sicherungen werden Sie vom Recovery Wizardexplizit dazu aufgefordert, das jeweils nächstfolgende Sicherungsmedium einzulegen, sofern Sie nicht den Vorgang des Wiederherstellens mit einem automatischem Bandwechsler durchführen.


Wiederherstellen mit automatischem Bandwechsler (MaxDB: Database Manager GUI)

Wiederherstellen mit automatischem Bandwechsler

Das Wiederherstellen von Daten können Sie interaktiv mit dem Recovery Wizard durchführen. Zur Optimierung des Vorgangs können Sie automatische Bandwechsler verwenden.

Voraussetzungen

Damit das Zurückladen erfolgreich verlaufen kann, müssen alle zur Sicherung gehörenden Bänder im Bandwechsler eingelegt sein.

Die Datenbankinstanz befindet sich im Betriebszustand ADMIN.

Vorgehensweise

Sie verwenden die gleiche Mediendefinition wie beim Sichern (Anlegen eines einzelnen Sicherungsmediums). Führen Sie die einzelnen Schritte gemäss der Beschreibung des entsprechenden Wiederherstellungsvorganges aus:

· Wiederherstellen aus der zuletzt angefertigten Sicherung der Sicherungshistorie

· Wiederherstellen aus einer früheren Sicherung der Sicherungshistorie

· Wiederherstellen ohne Sicherungshistorie


Wiederherstellen mit externen Sicherungswerkzeugen (MaxDB: Database Manager GUI)

Wiederherstellen mit externen Sicherungswerkzeugen

Das Wiederherstellen von Daten können Sie interaktiv mit dem Recovery Wizard durchführen. Der Recovery Wizard unterstützt die Verwendung externer Sicherungserkzeuge.

Voraussetzung

Anschluss Externer Sicherungswerkzeuge

Die Datenbankinstanz befindet sich im Betriebszustand ADMIN.

Vorgehensweise

Sie starten den Vorgang des Wiederherstellens aus dem Recovery Wizard. Aufgrund der Namenskonventionen für Sicherungsmedien erkennt der Recovery Wizard das externe Sicherungswerkzeug anhand der externen Sicherungskennungen. Der Recovery Wizard zeigt die externen Sicherungskennungen zur Überprüfung durch den Benutzer an und verwendet diese bei der Wiederherstellung. Der Benutzer muss die externen Sicherungskennungen nicht selbst explizit ermitteln oder angeben.

Die Zahl der Medien einer Gruppe paralleler Sicherungsmedien muss der Anzahl der Medien entsprechen, die für das Erstellen der Sicherung verwendet wurde.

Verfahren Sie gemäss der Beschreibung des entsprechenden Wiederherstellungsvorganges:

· Wiederherstellen aus der zuletzt angefertigten Sicherung der Sicherungshistorie

· Wiederherstellen aus einer früheren Sicherung der Sicherungshistorie

· Wiederherstellen ohne Sicherungshistorie


Wiederherstellen nach Initialisieren einer Datenbankinstanz (MaxDB: Database Manager GUI)

Wiederherstellen nach Initialisieren einer Datenbankinstanz

Für das Wiederherstellen von Daten kann unter Umständen ein Initialisieren der Datenbankinstanz erforderlich sein, um das Löschen der Log-Einträge im Log-Bereich zu erzwingen. Anschließend können Sie die erforderlichen Sicherungen einspielen, um die Datenbankinstanz bis zum gewünschten Zustand wiederherzustellen.

Sie benötigen diese Variante des Wiederherstellens z.B. in folgenden Situationen:

· Sie wollen eine gelöschte Datenbankinstanz aus einer Sicherung wiederherstellen.

· Sie wollen Sicherungen nutzen, die zeitlich vor dem Zeitpunkt liegen, bis zu dem eine Wiederherstellung mit UNTIL-Zeitpunkt durchgeführt wurde (Beispiel: Sie wollen eine Wiederherstellung mit UNTIL-Zeitpunkt wiederholen, um einen anderen Zeitpunkt anzugeben).

Sicherungen, die vor dem Zeitpunkt des Unterbrechens der Sicherungshistorie liegen, können nur mit dem hier beschriebenen Verfahren wiedereingespielt werden.

Bei dem hier beschriebenen Verfahren erfolgt ein Initialisieren der Datenbankinstanz. Dieser Vorgang ist sehr zeitaufwändig. Daher sollte dieses Verfahren nur dann eingesetzt werden, wenn es wirklich erforderlich ist.

Voraussetzungen

Die Protokolldateien dbm.knl und dbm.mdf sind unbeschadet geblieben. Die Sicherungshistorie ist damit vollständig.

Die Datenbankinstanz befindet sich im Betriebszustand OFFLINE.

Vorgehensweise

Generell ist das Verfahren zum Initialisieren einer Datenbankinstanz in Anlegen/Initialisieren einer Datenbankinstanz im Abschnitt Initialisieren einer Datenbankinstanz beschrieben. Beachten Sie die folgenden Besonderheiten:

· Markieren Sie in der Liste der Datenbankinstanzen im Database Manager GUI die gewünschte Datenbankinstanz.

· Markieren Sie Initialize the database instance <database_name>. Unter dem bereits existierenden Namen wird eine leere Datenbankinstanz angelegt (die Datenbankinstanz wird initialisiert).

· Der Database Manager bietet unter Use current parameters an, die Datenbankparameter der Datenbankinstanz als Vorschlag für die neue Datenbankinstanz zu übernehmen. Alle Daten der alten Version gehen verloren.

Wählen Sie im weiteren Ablauf Create Instance for recovery (nicht Create and start instance), denn nur dann können Sie anschließend die Daten wiederherstellen.

Die Datenbankinstanz befindet sich im Betriebszustand ADMIN. Der Database Manager öffnet automatisch den Recovery Wizard.

Der Recovery Wizard schlägt grundsätzlich das schnellste Verfahren der Wiederherstellung vor. Gegebenenfalls müssen Sie ein Ihrer Situation angepaßtes Verfahren auswählen.

Sie werden durch den gesamten Vorgang des Wiederherstellens der Datenbankinstanz geleitet. Die weiteren Wiederherstellungschritte sind in den entsprechenden Wiederherstellungsverfahren beschrieben.


Wiederherstellen der Indizes nach Datenbankwiederherstellung (MaxDB: Database Manager GUI)

Wiederherstellen der Indizes nach Datenbankwiederherstellung

Aus Gründen der Optimierung werden beim Wiederherstellen von Daten die im Log-Bereich enthaltenen Indizes nicht wiederhergestellt. Nicht wiederhergestellte Indizes werden als BAD markiert und können mit dem Database Manager GUI explizit wiederhergestellt werden.

Voraussetzungen

Die Datenbankinstanz befindet sich im Betriebszustand ONLINE.

Vorgehensweise

1. Wählen Sie Instance ® Recovery ® Index.

2. Sie haben die Möglichkeit auszuwählen, zu welchen Tabellen die als BAD markierten Indizes angezeigt werden sollen. Geben Sie dazu geeignete Suchargumente für folgende Angaben ein:

Owner | Eigentümer
Table Name | Name der Tabelle
Index Name | Name des Index

3. Wählen Sie Actions ® Search. Sie erhalten eine Liste der Indizes, die Ihren Angaben entsprechen.

4. Markieren Sie die Indizes, die Sie wiederherstellen wollen.

5. Wählen Sie Actions ® Recreate, um die Aktion auszuführen.

Es empfiehlt sich, die Indizes in Zeiten geringer Last wiederherzustellen.


Wiederherstellen eines gespiegelten Log-Volume (MaxDB: Database Manager GUI)

Wiederherstellen eines gespiegelten Log-Volume

Wenn Sie die Log-Volumes gespiegelt betreiben, kann es zu einem Ausfall eines Volume-Spiegels kommen. Bei Zugriffsproblemen auf den Log-Bereich oder den Spiegel-Log-Bereich wird das betroffene Log-Volume als BAD markiert und die Datenbankinstanz in den Betriebszustand OFFLINE überführt.

Mit dem Database Manager GUI können Sie ein beschädigtes Spiegel-Log-Volume wiederherstellen. Dabei wird der komplette Inhalt des entsprechenden Log-Volumes aus dem anderen Log-Bereich in das defekte Log-Volume kopiert. Damit ist gesichert, dass nach einem Plattenfehler, bei dem der Inhalt eines Log-Volume zerstört wurde, die Datenbankinstanz nicht wiederhergestellt werden muss, da der Inhalt des Log-Volumes gespiegelt war.

Voraussetzungen

Die Datenbankinstanz befindet sich im Betriebszustand ADMIN.

Vorgehensweise

1. Wählen Sie Instance ® Recovery ® Volumes.
Markieren Sie die wiederherzustellenden BAD Volumes.

2. Wählen Sie Actions ® Reintegrate, um das Kopieren des Spiegel-Volume zu starten.

Siehe auch:

Log-Modus


Anzeigen von Informationen (MaxDB: Database Manager GUI)

Anzeigen von Informationen

Für einen Gesamtüberblick an Informationen und Statistiken zu wichtigen Datenbankfunktionen markieren Sie in der Liste der Datenbankinstanzen die gewünschte Datenbankinstanz.

Wenn Sie detaillierte Informationen zu einen bestimmten Bereich einsehen wollen, wählen Sie Instance ® Information und anschließend den gewünschten Bereich. So erhalten Sie Informationen zu folgenden Schwerpunkten:

Activity | Datenbankaktivitäten anzeigen
Caches | Cache-Informationen anzeigen
Data Area | Datenbereichs-Informationen anzeigen
Log Area | Log-Bereichs-Informationen anzeigen
Backup History | Sicherungshistorie anzeigen
Parameters | Datenbankparameter anzeigen
Sessions | Datenbanksitzungen anzeigen
System Info Tables | Systemtabellen anzeigen


Cache-Informationen anzeigen (MaxDB: Database Manager GUI)

Cache-Informationen anzeigen

Sie können im Database Manager GUI die Trefferrate der Caches anzeigen lassen. Diese Trefferraten zeigen, ob die Caches ausreichend groß konfiguriert wurden. Besonders wichtig sind die Trefferraten von Data-Cache und Converter.

Voraussetzung

Die Datenbankinstanz befindet sich im Betriebszustand ONLINE.

Vorgehensweise

Markieren Sie in der Liste der Datenbankinstanzen die gewünschte Datenbankinstanz. Wählen Sie Instance ® Information ® Caches.

Type | Art des Cache
Accesses | Anzahl der Zugriffe insgesamt
Successful | Anzahl erfolgreicher Zugriffe
Unsuccessful | Anzahl nicht erfolgreicher Zugriffe
Hit Rate (%) | Trefferrate (prozentualer Anteil der Treffer an der Gesamtzahl der Zugriffe)

Die Trefferrate des Data-Cache sollte bei mindestens 99% und die des Converter bei mindestens 98% liegen.

Kurzzeitig kann es zu niedrigeren Trefferraten kommen, z. B. beim erstmaligen Lesen von Tabellen oder wenn bei wiederholten Tabellendurchsuchungen die Tabelle nicht in 10% des Data-Cache passt.

Sollten die Werte dauerhaft unter dem empfohlenen Prozentsatz liegen, deutet dies auf eine schlechte Performance hin und gegebenenfalls muss der allgemeine Datenbankparameter CACHE_SIZE angepasst werden.


Datenbankaktivitäten anzeigen (MaxDB: Database Manager GUI)

Datenbankaktivitäten anzeigen

Sie können im Database Manager GUI die Datenbankaktivitäten anzeigen lassen.

Voraussetzung

Die Datenbankinstanz befindet sich im Betriebszustand ONLINE.

Vorgehensweise

Markieren Sie in der Liste der Datenbankinstanzen die gewünschte Datenbankinstanz. Wählen Sie Instance ® Information ® Activity.

Sie erhalten eine Anzeige der Datenbankaktivitäten, die in folgende Bereiche unterteilt ist:

· Commands: Informationen zu den SQL-Anweisungen

· I/O Activity: Informationen zu den Lese- und Schreibvorgängen

· Lock Activity: Informationen zur Sperraktivität

· Log Activity: Informationen zur Log-Aktivität

· Scan and Sort Activity: Informationen zu Tabellendurchsuchungen

Commands

Im Bereich Commands erhalten Sie z.B. folgende Informationen zu den SQL-Anweisungen:

Kommandotyp | Kommandofunktion
SQL-Kommandos | Anzahl der SQL-Anweisungen, die zur Ausführung an das Datenbanksystem gesendet wurden. Direkter Indikator der Datenbankaktivität.
Prepares | Anzahl der dynamischen SQL-Anweisungen
Executes | Anzahl der ausgeführten dynamischen SQL-Anweisungen
Rollbacks | Bezeichnen nicht erfolgreiche Datenbankoperationen, die in der Regel durch abgebrochene Anwendungen entstehen.
Commits | Bezeichnen erfolgreiche Datenbankoperationen. Das Verhältnis von ROLLBACK- zu COMMIT-Aktionen kann auf logische Inkonsistenzen in einer oder mehreren SQL-Anwendungen hinweisen.
Updates, Selects and Fetches, Creates, Alters, Drops, DB procedure calls, Deletes, Inserts | Anzahl der einzelnen SQL-Anweisungen und gegebenenfalls Zeileninformationen

I/O Activity

Im Bereich I/O Activity erhalten Sie Informationen über die I/O-Aktivitäten, die vom Datenbanksystem ausgelöst wurden. Dazu gehören Einzelheiten über logische und physische Lese- und Schreibvorgänge.

Bei einem physischen Lese- oder Schreibvorgang greift das System direkt auf ein Volume zu. Bei einem logischen Zugriff werden dagegen Daten verwendet, die im Data-Cache oder einem anderen Cache abgelegt sind.

Lock Activity

Im Bereich Lock Activity erhalten Sie Informationen über die maximale Anzahl der verfügbaren Datenbanksperren (Available Entries) sowie die Anzahl der Sperren, die gesetzt wurden. Entspricht die Anzahl der gesetzten Sperren in etwa der Anzahl der verfügbaren Einträge, sollten Sie eventuell den Wert für den allgemeinen Datenbankparameter MAXLOCKS erhöhen.

Escalations zeigt die Gesamtanzahl der Zeilen, die von einer einzigen Datenbanksitzung gesperrt wurden. Wenn die Anzahl der von einer Datenbanksitzung gesperrten Zeilen einen bestimmten Prozentsatz übersteigt, sperrt das Datenbanksystem die ganze Tabelle. Der Schwellenwert für Escalations richtet sich nach dem Wert für MAXLOCKS dieser Datenbankinstanz.

Wird ein gesperrtes Objekt noch einmal angefordert, entsteht ein Sperrkonflikt. Wenn in Ihrem System zahlreiche Sperrkonflikte auftreten, wird eine bestimmte Sperre entweder zu lange gehalten, oder mehrere Benutzer greifen häufig auf die gleiche Datenbankzeile zu.

Die Werte für Lock Owner und Lock Requestor beziehen sich auf die Sperren zum Zeitpunkt der Transaktionsausführung.

Scan and Sort Activity

Im Bereich Scan and Sort Activity erhalten Sie unter anderem Informationen über die Tabellendurchsuchungen (Tabellen-Scans).

Da eine hohe Anzahl von sequentiellen Suchvorgängen in Tabellen die Datenbank-Performance beeinträchtigen kann, sollten Sie dafür sorgen, dass diese Suchvorgänge auf ein Minimum reduziert werden.


Datenbankparameter anzeigen (MaxDB: Database Manager GUI)

Datenbankparameter anzeigen

Sie können im Database Manager GUI eine Anzeige aller Datenbankparameter und eine chronologische Auflistung aller erfolgten Parameteränderungen erhalten.

Vorgehensweise

Markieren Sie in der Liste der Datenbankinstanzen die gewünschte Datenbankinstanz. Wählen Sie Instance ® Information ® Parameters.

Die Datenbankparameteranzeige ist in folgende Bereiche unterteilt:

· General: Anzeige der allgemeinen Datenbankparameter

· Extended: Anzeige der speziellen Datenbankparameter

· Support: Anzeige der Supportparameter

· History: Sie können anhand der Historie der Parameter verfolgen, wann die Parametereinstellung geändert wurde, welchen Wert der Parameter hatte und welcher Wert jetzt eingestellt ist.

Siehe auch:

Datenbankparameter anzeigen und ändern


Datenbanksitzungen anzeigen (MaxDB: Database Manager GUI)

Datenbanksitzungen anzeigen

Sie können im Database Manager GUI alle Benutzer anzeigen lassen, die aktuell eine Datenbankverbindung halten.

Voraussetzung

Die Datenbankinstanz befindet sich im Betriebszustand ONLINE.

Vorgehensweise

Markieren Sie in der Liste der Datenbankinstanzen die gewünschte Datenbankinstanz. Wählen Sie Instance ® Information ® Sessions.

Folgende Informationen werden angezeigt:

Name | Name des angemeldeten Benutzers.
Terminal ID | Vom jeweiligen Betriebssystem abhängige Terminal-Identifikation
Task ID | Nummer der Task
Session ID | Nummer der Datenbanksitzung
Node | Name des Datenbankrechners
Catalog Cache Size | Größe des für den Benutzer verfügbaren Catalog-Cache

Siehe auch:

Datenbanksitzung manuell beenden


Datenbereichs-Informationen anzeigen (MaxDB: Database Manager GUI)

Datenbereichs-Informationen anzeigen

Sie können im Database Manager GUI Informationen zur Größe und aktuellen Auslastung des Datenbereichs anzeigen lassen.

Vorgehensweise

Markieren Sie in der Liste der Datenbankinstanzen die gewünschte Datenbankinstanz. Wählen Sie Instance ® Information ® Data Area.

Die Anzeige ist in folgende Bereiche unterteilt:

· Volumes: Angaben zu den Data-Volumes

· Settings: Wert des Datenbankparameters MAXDATAVOLUMES

· Usage: Auslastung des Datenbereichs

· I/O: Lese- und Schreibaktivitäten pro Data-Volume

Volumes

Sie erhalten für jedes Data-Volume unter anderem folgende Informationen: Name, Größe, Typ und Pfadangabe im Arbeitsverzeichnis

Settings

Die maximale Anzahl der Data-Volumes wird durch den allgemeinen Datenbankparameter MAXDATAVOLUMES gesteuert. Der aktuelle Wert dieses Datenbankparameters wird angezeigt.

Usage

Wenn sich die Datenbankinstanz im Betriebszustand ONLINE befindet, können Sie sich die Auslastung des Datenbereichs anzeigen lassen.

Total Size | Gesamtgröße des Datenbereichs
Used Area | Belegter Datenbereich
Permanent Used Area | Mit permanenten Daten belegter Datenbereich
Temporary Used Area | Mit temporären Daten belegter Datenbereich
Free Area | Freier Datenbereich

Desweiteren wird der Füllungsgrad jedes einzelnen Data-Volumes angezeigt.

I/O

Wenn sich die Datenbankinstanz im Betriebszustand ONLINE befindet, können Sie sich die Lese- und Schreibaktivität für jedes einzelne Data-Volume anzeigen lassen.


Log-Bereichs-Informationen anzeigen (MaxDB: Database Manager GUI)

Log-Bereichs-Informationen anzeigen

Sie können im Database Manager GUI Informationen zur Größe und aktuellen Auslastung des Log-Bereichs anzeigen lassen.

Vorgehensweise

Markieren Sie in der Liste der Datenbankinstanzen die gewünschte Datenbankinstanz. Wählen Sie Instance ® Information ® Log Area.

Die Anzeige ist in folgende Bereiche unterteilt:

· Volumes: Angaben zu den Log-Volumes

· Settings: Angaben zu den Log-Einstellungen, Werte der Datenbankparameter MAXLOGVOLUMES und LOG_SEGMENT_SIZE

· Usage: Auslastung des Log-Bereichs

· I/O: Lese- und Schreibaktivitäten pro Log-Volume

Volumes

Sie erhalten für jedes Log-Volume unter anderem folgende Informationen: Name, Größe, Typ und Pfadangabe im Arbeitsverzeichnis

Settings

Die Redo-Log-Verwaltung kann durch verschiedene Log-Einstellungen gesteuert werden. Diese Einstellungen werden angezeigt.

· Log Mode: siehe dazu Log-Modus
SINGLE: Die Log-Volumes werden nicht gespiegelt.
MIRRORED: Die Log-Volumes werden gespiegelt.

· Overwrite Mode: siehe dazu Überschreibmodus für den Log-Bereich
NORMAL: Der Log-Bereich kann erst nach dem Sichern der Log-Einträge überschrieben werden.
OVERWRITE: Der Log-Bereich wird überschrieben, sofern er voll ist.

· Redo Log Management: siehe dazu Redo-Log-Verwaltung ein- oder ausschalten
ACTIVATED: Die Redo-Log-Verwaltung ist eingeschaltet.
DEACTIVATED: Die Redo-Log-Verwaltung ist ausgeschaltet.

Siehe auch:

Log-Einstellungen ändern

Die maximale Anzahl der Data-Volumes wird durch den allgemeinen Datenbankparameter MAXDATAVOLUMES gesteuert. Der allgemeine Datenbankparameter LOG_SEGMENT_SIZE steuert, wie groß die Segmente bei Log-Sicherungen gewählt werden. Die aktuellen Werte dieser Datenbankparameter werden angezeigt.

Usage

Wenn sich die Datenbankinstanz im Betriebszustand ONLINE befindet, können Sie sich die Auslastung des Log-Bereichs anzeigen lassen.

Total Size | Gesamtgröße des Log-Bereichs
Free Log Area | Freier Log-Bereich
Used Log Area | Belegter Log-Bereich
Unsaved Log Area | Größe des noch nicht gesicherten Log-Bereichs
Log since last data backup | Log-Einträge, die seit der letzten Datensicherung geschrieben wurden

I/O

Wenn sich die Datenbankinstanz im Betriebszustand ONLINE befindet, können Sie sich die Lese- und Schreibaktivität für jedes einzelne Log-Volume anzeigen lassen.


Sicherungshistorie anzeigen (MaxDB: Database Manager GUI)

Sicherungshistorie anzeigen

Sie können im Database Manager GUI eine chronologische Auflistung aller erfolgten Sicherungs- und Wiederherstellungsaktionen (Sicherungshistorie) erhalten.

Vorgehensweise

Markieren Sie in der Liste der Datenbankinstanzen die gewünschte Datenbankinstanz.

Wählen Sie Instance ® Information ® Backup History
oder
wählen Sie Instance ® Backup ® Backup History

Sie erhalten zu jeder Aktion folgende Informationen:

Label | Sicherungskennung
Action | Aktion (Sichern oder Wiederherstellen) und Betriebszustand, in dem die Aktion erfolgte
Beginning | Beginn der Aktion
Result | Ergebnis
Media Name | Name des Sicherungsmediums
Log Required | Log-Sicherungen erforderlich
Size (KB) | Größe (KB)
Volumes | Volumes
Next Log Page | Log-Seite
From Page | Von Seitennummer
To Page | Bis Seitennummer

Für weitere Informationen wählen Sie Actions und eine der folgende Funktionen:

· ® Show details
Sie erhalten Medieninformationen. Bei Verwendung von externen Sicherungswerkzeugen werden die externen Sicherungskennungen und die Verfügbarkeit der Sicherungsmedien angezeigt.

· ® Columns
Sie können sich hier Ihre persönliche Anzeigevariante der Sicherungshistorie zusammenstellen.

· ® Refresh with External Backup Info
Sie aktualisieren die Sicherungshistorie sowie die Informationen zu den Sicherungen, die mit externen Sicherungswerkzeugen durchgeführt wurden.


Systemtabellen anzeigen (MaxDB: Database Manager GUI)

Systemtabellen anzeigen

Sie können im Database Manager GUI die Systemtabellen, die Informationen zu den Datenbankzuständen enthalten, anzeigen.

Voraussetzungen

Die Datenbankinstanz befindet sich im Betriebszustand ONLINE.

Vorgehensweise

Markieren Sie in der Liste der Datenbankinstanzen die gewünschte Datenbankinstanz. Wählen Sie Instance ® Information ® System Info Tables.

Sie erhalten eine Liste der Systemtabellen mit Informationen zu den Datenbankzuständen. Eigentümer dieser Tabellen ist der SYSINFO-Benutzer. Klicken Sie auf die gewünschte Tabelle, um in die Anzeige der Zustandsinformationen zu gelangen, die in dieser Tabelle abgelegt sind.


Diagnosemöglichkeiten (MaxDB: Database Manager GUI)

Diagnosemöglichkeiten

Bei Fehlern oder Performance-Problemen bietet Ihnen der Database Manager GUI einige Diagnosemöglichkeiten.

Markieren Sie in der Liste der Datenbankinstanzen die gewünschte Datenbankinstanz. Wählen Sie Instance ® Check und anschließend den gewünschten Bereich:

Database Structure | Datenbankstrukturen prüfen
Database Server | Datenbankrechner prüfen
Diagnosis Files | Datenbankdateien lesen
Database Trace | Datenbank-Trace einschalten

Wählen Sie Instance und anschließend den gewünschten Bereich:

Command Line | Kommandozeilenversion (Database Manager CLI) verwenden
OMS Caches | OMS-Caches anzeigen
OMS Container | OMS-Klassencontainer anzeigen
OMS Monitor | OMS-Monitor einschalten


Datenbankdateien lesen (MaxDB: Database Manager GUI)

Datenbankdateien lesen

Das Datenbanksystem verfügt über eine Reihe von Datenbankdateien. Dazu gehören auch die Dateien des Database Manager.

Sie können vom Database Manager GUI aus auf die vorhandenen Datenbankdateien zugreifen.

Vorgehensweise

Markieren Sie in der Liste der Datenbankinstanzen die gewünschte Datenbankinstanz. Wählen Sie Instance ® Check ® Diagnosis Files.

Wählen Sie die gewünschte Datei aus.


Datenbankrechner prüfen (MaxDB: Database Manager GUI)

Datenbankrechner prüfen

Der Database Manager GUI ermöglicht Ihneneinen Überblick über die von der Datenbankinstanz belegten Betriebssystemressourcen, die Aufteilung der Datenbanksitzungen auf die Threads und den Status der aktiven Datenbanksitzungen.

Zusätzlich stehen weitere Funktionen zur Verfügung, die jedoch vornehmlich Supportmitarbeitern und Entwicklern vorbehalten sein sollten

Voraussetzungen

Die Datenbankinstanz befindet sich im Betriebszustand ONLINE oder ADMIN.

Vorgehensweise

1. Markieren Sie in der Liste der Datenbankinstanzen die gewünschte Datenbankinstanz.

2. Wählen Sie Instance ® Check ® Database Server.

3. Wählen Sie die gewünschte Informationsart aus.

4. Wählen Sie Actions ® View, um sich die Detailinformationen anzusehen.


Datenbankstrukturen prüfen (MaxDB: Database Manager GUI)

Datenbankstrukturen prüfen

Sie können mit Hilfe des Database Manager GUI ein Prüfen der Datenbankstrukturen veranlassen.

Bei schwerwiegenden Inkonsistenzen muss die Datenbankinstanz wie nach einem Plattenfehler wiederhergestellt werden.

Wenn Sie die Datenbankstrukturen im Betriebszustand ADMIN prüfen, werden nicht belegte Speicherseiten, die seit einem nicht ordnungsgemäß beendeten Datenbankbetrieb fälschlich als belegt geführt werden, der Freispeicherverwaltung zugeführt.

Voraussetzungen

Die Datenbankinstanz befindet sich im Betriebszustand ONLINE oder ADMIN.

Vorgehensweise

1. Markieren Sie in der Liste der Datenbankinstanzen die gewünschte Datenbankinstanz.

2. Wählen Sie Instance ® Check ® Database Structure.

3. Wählen Sie Actions ® Execute.

Die vom Datenbankkern gelieferten Informationen werden in die Datei Database Errors geschrieben.

Sie können diese Datei zur weiteren Auswertung öffnen wie in Datenbankdateien lesen beschrieben.


Datenbank-Trace einschalten (MaxDB: Database Manager GUI)

Datenbank-Trace einschalten

Der Database Manager GUI bietet Ihnen die Möglichkeit, in Fehlersituationen den Datenbank-Trace einzuschalten.

Benutzen Sie diese Funktion, wenn Sie vom Support dazu aufgefordert werden. Es empfiehlt sich nicht, den Datenbank-Trace ohne explizite Notwendigkeit einzuschalten, da die Funktion großen Einfluss auf die Performance der Datenbankinstanz hat.

Schalten Sie den Datenbank-Trace wieder aus, sobald die für die Analyse notwendigen Aktionen protokolliert worden sind.

Vorgehensweise

Markieren Sie in der Liste der Datenbankinstanzen die von Ihnen gewünschte Datenbankinstanz. Wählen Sie Instance ® Check ® Database Trace.

Sie haben die Möglichkeit, die nachfolgend aufgeführten Protokollfunktionen einzeln oder in einer von Ihnen gewählten Kombination auszuführen.

Protokollieren von Datenbankanweisungen allgemein

1. Unter der Registerkarte Options markieren Sie in der angebotenen Liste die gewünschten Datenbank-Trace-Optionen. Wenn die Optionen die Auswahl eines Trace-Levels unterstützen, finden Sie in der Spalte Level den Vorschlagswert des Systems.

2. Wählen Sie Actions ® Selected Items ON, um den Datenbank-Trace für die gewählten Datenbank-Trace-Optionen einzuschalten.

Wenn Sie das Trace-Level für die gewählten Datenbank-Trace-Optionen ändern möchten, wählen Sie Actions ® Selected Items ON with Level... Sie haben die Möglichkeit ein anderes Trace-Level auszuwählen. Je höher das gewählte Trace-Level ist, um so detaillierter sind die vom Datenbank-Trace gesammelten Informationen.

Mit Actions ® Selected Items OFF schalten Sie den Datenbank-Trace wieder aus.

Protokollieren von Datenbankanweisungen in einer bestimmten Datenbanksitzung

Gemäß Voreinstellung des Systems wird der Datenbank-Trace für alle Datenbanksitzungen geschrieben. Diese Voreinstellung ist änderbar:

1. Wählen Sie die Registerkarte Advanced und markieren Sie die Option Trace session.

2. Wählen Sie aus, ob der Datenbank-Trace für die aktuelle (Current session) oder für eine bestimmte Datenbanksitzung geschrieben werden soll. In diesem Fall geben Sie die Kennung der gewünschten Datenbanksitzung an (Ermitteln der Kennung: Datenbanksitzungen anzeigen).

3. Wählen Sie Actions ® Set Advanced Options.

Protokollieren des Auftretens von bestimmten Fehlern

1. Unter der Registerkarte Advanced markieren Sie die Option Stop on error. Geben Sie den Code des Fehlers ein, bei dessen Auftreten die Erstellung des Datenbank-Trace beendet werden soll.

2. Wählen Sie Actions ® Flush, um die noch im Puffer enthaltenen Informationen in den Trace zu schreiben und damit den Datenbank-Trace vor Erstellung der Protokolldatei zu aktualisieren.

Erstellen und Anzeigen des Datenbank-Trace-Protokolls

1. Unter der Registerkarte Protocol markieren Sie die gewünschten Optionen.

2. Wählen Sie Actions ® Flush, um die noch im Puffer enthaltenen Informationen in den Trace zu schreiben und damit den Datenbank-Trace vor Erstellung der Protokolldatei zu aktualisieren.

3. Wählen Sie Actions ® Make Protocol. Damit wird der Datenbank-Trace in eine lesbare Form umgewandelt.

Um das Protokoll zu öffnen, wählen Sie Instance ® Check ® Diagnosis Files. Markieren Sie die Datei Kernel Trace Protocol und wählen Sie Actions ® View.


Kommandozeilenversion (Database Manager CLI) verwenden (MaxDB: Database Manager GUI)

Kommandozeilenversion (Database Manager CLI) verwenden

Sie können vom Database Manager GUI aus die Kommandozeilenversion des Database Manager, den Database Manager CLI, aufrufen.

Vorgehensweise

1. Markieren Sie in der Liste der Datenbankinstanzen die gewünschte Datenbankinstanz.

2. Wählen Sie Instance ® Command Line .

3. Geben Sie in der Zeile Command die gewünschten DBM-Kommandos ein.

4. Wählen Sie Actions ® Execute.


OMS-Caches anzeigen (MaxDB: Database Manager GUI)

OMS-Caches anzeigen

Diese Funktion im Database Manager GUI dient dem Support zur Performance-Analyse des SAP liveCache.

Voraussetzungen

Die aktuelle Datenbankinstanz ist eine liveCache-Instanz. Sie befindet sich im Betriebszustand ONLINE.

Vorgehensweise

Markieren Sie in der Liste der Datenbankinstanzen die gewünschte Datenbankinstanz. Wählen Sie Instance ® Information ® OMS Caches, um die OMS-Caches anzuzeigen.

Weitere Informationen zum liveCache finden Sie in der Dokumenation Benutzerhandbuch: SAP liveCache.


OMS-Klassencontainer anzeigen (MaxDB: Database Manager GUI)

OMS-Klassencontainer anzeigen

Diese Funktion im Database Manager GUI dient dem Support zur Performance-Analyse des SAP liveCache.

Voraussetzungen

Die aktuelle Datenbankinstanz ist eine liveCache-Instanz. Sie befindet sich im Betriebszustand ONLINE.

Vorgehensweise

Markieren Sie in der Liste der Datenbankinstanzen die gewünschte Datenbankinstanz. Wählen Sie Instance ® Information ® OMS Class Containers, um die Informationen zu den Klassencontainern anzuzeigen.

Weitere Informationen zum liveCache finden Sie in der Dokumenation Benutzerhandbuch: SAP liveCache.


OMS-Monitor einschalten (MaxDB: Database Manager GUI)

OMS-Monitor einschalten

Diese Funktion des Database Manager GUI dient dem Support zur Performance-Analyse des SAP liveCache.

Voraussetzungen

Die aktuelle Datenbankinstanz ist eine liveCache-Instanz. Sie befindet sich im Betriebszustand ONLINE.

Vorgehensweise

Markieren Sie in der Liste der Datenbankinstanzen die gewünschte Datenbankinstanz. Wählen Sie Instance ® Information ® OMS Monitor, um den OMS-Monitor einzuschalten.

Weitere Informationen zum liveCache finden Sie in der Dokumenation Benutzerhandbuch: SAP liveCache.


Update der Datenbanksoftware (MaxDB: Database Manager GUI)

Update der Datenbanksoftware

Nach einem Update der Datenbanksoftware können Sie mit Hilfe des Database Manager GUI dafür sorgen, dass die neue Softwareversion der Datenbankinstanz bekannt ist.

Vorgehensweise

1. Führen Sie ein Update der Datenbanksoftware durch.

2. Starten Sie die Datenbankinstanz.
Beim ersten Start des Database Manager nach einem Update der Datenbanksoftware passt der Database Manager die Kernparameter der Datenbankinstanz automatisch an die neue Version der Datenbanksoftware an.

3. Wählen Sie Instance ® Configuration ® Upgrade System Tables, um die Systemtabellen zu aktualisieren.

Ergebnis

Der Database Manager legt bei jeder Parameteränderung eine Kopie der Parameterdatei an.

UNIX: <independent_data_path>/config/<database_name>.<running_number>
Windows: <independent_data_path>\config\<database_name>.<running_number>

<running_number>: Version der Kopie, beginnend bei 01

Falls Fehler bei der Parameterübernahme auftreten, ist es möglich, den Vorgang rückgängig zu machen, indem die Original-Parameterdatei wiederhergestellt wird. Kopieren Sie dazu mit Hilfe des Programms Database Manager CLI die Datei <database_name>.<running_number> (Kopie der Parameterdatei) wieder nach <database_name> (aktive Parameterdatei) zurück.


Aktualisieren der Systemtabellen (MaxDB: Database Manager GUI)

Aktualisieren der Systemtabellen

Bei einem Update der Datenbanksoftware können Sie mit Hilfe des Database Manager GUI die Systemtabellen aktualisieren.

Voraussetzungen

Die Datenbankinstanz befindet sich im Betriebszustand ONLINE.

Vorgehensweise

...

1. Markieren Sie in der Liste der Datenbankinstanzen die gewünschte Datenbankinstanz.

2. Wählen Sie Instance ® Configuration ® Upgrade System Tables.

3. Starten Sie die Aktualisierung der Systemtabellen. Der Database Manager ermittelt die erforderlichen Datenbankbenutzer (SYSDBA- und DOMAIN-Benutzer). Sollte das nicht möglich sein, werden Sie aufgefordert, die entsprechenden Benutzerangaben vorzunehmen.

Ergebnis

Die Systemtabellen werden geladen und aktualisiert. Am Ende des Vorgangs wird das Protokoll dbm.ins (Installation Protocol) angezeigt.

Wenn ein Fehler auftritt, erscheint der Status ERROR. Öffnen Sie in diesem Fall das Installation Protocol wie in Datenbankdateien lesen beschrieben.


Zugriff auf das Programm SQL Studio (MaxDB: Database Manager GUI)

Zugriff auf das Programm SQL Studio

Sie können aus dem Database Manager GUI heraus das Query Tool SQL Studio aufrufen und damit auf die Daten einer Datenbankinstanz zugreifen.

Voraussetzungen

Sie haben die Berechtigung eines Datenbankbenutzers dieser Datenbankinstanz.

Vorgehensweise

Wählen Sie Tools ® SQL Studio.

Informationen zu diesem Werkzeug finden Sie in der Dokumentation SQL Studio.


Bildschirmbereiche des Database Manager GUI (MaxDB: Database Manager GUI)

Bildschirmbereiche des Database Manager GUI

Der Bildschirm des Database Manager GUI gliedert sich in acht Bereiche. Die Größe dieser Bildschirmbereiche ist veränderbar.

1
2
4 | 3
5 | 6
7 |  | 8

Inhalt der Fensterbereiche

Nr. | Name des Fensters | Beschreibung
1 | Menüleiste | Auswahl der Funktionen und Anzeigen zur aktuellen Datenbankinstanz Die Menüleiste passt sich dynamisch an ausgewählte Funktionen an.
2 | Symbolleiste | Symbole, mit denen Sie Funktionen der Menüleiste zur aktuellen Datenbankinstanz aufrufen
3 | Liste der Datenbankinstanzen | In die Liste der Datenbankinstanzen des Database Manager GUI aufgenommenen Datenbankinstanzen, deren Anmeldestatus bzw. Betriebszustand Wenn für eine Datenbankinstanz der Betriebszustand ONLINE angezeigt wird, erhalten Sie zusätzlich eine Übersicht der Statistiken und wichtiger Betriebswerte Siehe auch: Liste der Datenbankinstanzen verwalten
4 | Verzeichnisstruktur der Datenbankinstanzen | Organisation der Datenbankinstanzen, die in die Liste der Datenbankinstanzen im Database Manager GUI aufgenommen wurden, wie im Windows Explorer Sie können die Verzeichnisstruktur ein- oder ausblenden. Wählen Sie dazu View ® Tree und markieren oder entmarkieren Sie Tree.
5 | Menüliste der aktuellen Datenbankinstanz | Der Name der gewählten Datenbankinstanz wird angezeigt. Sie können die Menüliste ein- oder ausblenden. Wählen Sie dazu View ® Menu und markieren oder entmarkieren Sie Menu.
6 | Ausgabe | Zentraler Bildschirmbereich Darin erscheinen die Eingabemasken für Funktionen und die Ausgabewerte der Anzeigen.
7 | Meldungsausgabe | Anzeige allgemeiner Meldungen und Fehler
8 | Anzeige des Datenbanknamens | Name der aktuellen Datenbankinstanz, gegebenenfalls Name des Datenbankrechners und Anzeige des Betriebszustandes


Web DBM

Der Web DBM ist eine Ausprägung des Database Manager, dem Werkzeug zur Verwaltung der Datenbankinstanzen.

Für das Arbeiten mit dem Database Manager ist ein fundiertes Wissen über die Verwaltung von Datenbankeninstanzen erforderlich.

Die Installation des Web DBM ist im Installationsleitfaden Web Tools beschrieben. Allgemeine Informationen zum Datenbanksystem finden Sie in der Dokumentation Datenbankverwaltung .

Dokumentation

Sowohl die Bildschirmdarstellungen als auch die Vorgehensweisen im Web DBM entsprechen weitgehend denen im Database Manager GUI. Verwenden Sie deshalb die Dokumentation zum Database Manager GUI für die Arbeit mit dem Web DBM.

Überwachung mehrerer Datenbankinstanzen

Mit dem Database Manager GUI können Sie mehrere Datenbankinstanzen gleichzeitig überwachen. Mit dem Web DBM können Sie sich jeweils nur an einer Datenbankinstanz anmelden. Dennoch ist es möglich, mehrere Datenbankinstanzen gleichzeitig zu überwachen. Öffnen Sie dazu mehrere Browser-Fenster mit dem Web DBM und melden sich in jedem Fenster an eine andere Datenbankinstanz an.

Benutzerführung

Der Database Manager GUI bietet für das Installieren, Registrieren, Sichern und Wiederherstellen Wizards an, die den Benutzer zielgerichtet und sicher führen.

Wenn Sie mit dem Web DBM eine neue Datenbankinstanz installieren wollen, wählen Sie in der Anmeldemaske New Database. Ein Registrieren der Datenbankinstanzen ist mit dem Web DBM nicht notwendig, da sich der Web DBM immer nur auf eine Datenbankinstanz bezieht.

Beim Sichern und Wiederherstellen werden Sie durch Auswahl der entsprechenden Funktionen in den Menüs Backup bzw. Recovery Wizard-ähnlich geführt, allerdings ohne dass ein neues Fenster geöffnet wird.

Timeout-Behandlung

Im Gegensatz zum Database Manager GUI kann es bei der Arbeit mit dem Web DBM zu einem Timeout kommen, in dessen Folge die Verbindung zur Datenbankinstanz unterbrochen wird. In diesem Fall müssen Sie sich erneut anmelden.


Database Manager CLI

Einsatzmöglichkeiten

Der Database Manager ist das Verwaltungswerkzeug für Datenbankinstanzen. Mit diesem Werkzeug können Sie auf lokalen oder entfernten Rechnern Datenbankinstanzen anlegen und überwachen. Sie können die Daten von Datenbankinstanzen sichern und, wenn erforderlich, wiederherstellen.

Einführungshinweise

Das Datenbankverwaltungswerkzeug Database Manager kann als graphische Benutzeroberfläche (Database Manager GUI), als web-basiertes Werkzeug (Web DBM) oder als kommandozeilenorientiertes Werkzeug (Database Manager CLI) aufgerufen werden. Alle drei Ausprägungen diese Programms bieten einen ähnlichen Funktionsumfang.

Der Database Manager CLI und der Web DBM können auf allen vom Datenbanksystem unterstützten Betriebssystemen installiert werden. Der Database Manager GUI ist nur auf Microsoft Windows lauffähig.

Jede Ausprägung des Database Manager kann Datenbankinstanzen auf allen vom Datenbanksystem unterstützten Betriebssystemen verwalten.

Für das Arbeiten mit dem Database Manager ist ein fundiertes Wissen über die Verwaltung von Datenbanken erforderlich.

Sie können das Programm Database Manager CLI unter der Adresse http://www.mysql.com/downloads kostenlos herunterladen. Es ist Bestandteil des Softwarepakets für den Datenbankkern und damit in den Installationsprofilen all und Server enthalten.

Allgemeine Informationen zum Datenbanksystem finden Sie in der Dokumentation Datenbankverwaltung .

Sie können auf die Funktionen des Database Manager CLI auch mit anderen Programmiersprachen zugreifen und damit die Verwaltung von Datenbankinstanzen mit Hilfe von Programmen automatisieren. Dazu stehen Ihnen folgende Programmierschnittstellen zur Verfügung:

Programmiersprache | Modul
Java | powertoys.DBM
Python | sapdb.dbm
Perl | SAP::DBtech::dbm

Weitere Informationen dazu finden Sie in den Handbüchern Perl und Python.

Der Database Manager CLI, Version 7.5, ist Gegenstand der folgenden Beschreibung:

Funktionsweise des Database Manager CLI

Anmelden an den Database Manager

Arbeiten mit dem Database Manager CLI

Beenden des Database Manager

Übersicht aller DBM-Kommandos


Funktionsweise des Database Manager CLI (MaxDB: Database Manager CLI)

Funktionsweise des Database Manager CLI

Mit dem Database Manager CLI verfügen Sie über ein komfortables Werkzeug zur Verwaltung von beliebig vielen lokalen und entfernten Datenbankinstanzen. Diese können von der Kommandozeile aus verwaltet werden. Das Programm ist sowohl für den interaktiven Betrieb als auch für den Batch-Betrieb geeignet.

Der Database Manager CLI ist das Client-Programm des Database Manager, mit dem die Verbindung zum DBM-Server hergestellt wird und Daten ausgetauscht werden. Es kann nur von einem Database Manager-Benutzer (DBM-Benutzer) aufgerufen werden.

Um eine Datenbankinstanz verwalten zu können, meldet sich ein DBM-Benutzer mit dem Benutzernamen und Benutzerkennwort an den Database Manager an und registriert diese Datenbankinstanz im Database Manager. Er verwendet DBM-Kommandos und Optionen, um sich an die Datenbankinstanz anzumelden und Anfragen an den Database Manager zu richten. Die Ausführung von DBM-Kommandos setzt voraus, dass der DBM-Benutzer über die notwendige Benutzerberechtigung verfügt. Der Database Manager übermittelt die Antworten auf die Kommandos und die eingegebenen Optionen. Eine Antwort enthält neben Informationen über den Zustand der Datenbankinstanz auch Daten in aufbereiteter Form (Antwortformat).

Jeder Aufruf des Database Manager CLI entspricht dem Aufbau einer Sitzung. Wenn die eingegebenen Kommandos abgearbeitet sind, wird die Sitzung mit dem Database Manager geschlossen.


Serverberechtigungen (MaxDB: Database Manager CLI)

Serverberechtigungen

Die Ausführung von DBM-Kommandos setzt voraus, dass der Database Manager-Benutzer (DBM-Benutzer) über die notwendigen Berechtigungen verfügt, um auf den DBM-Server und damit das Programm Database Manager zugreifen zu können. Diese Berechtigungen werden Serverberechtigungen genannt und unter dem Berechtigungstyp SERVERRIGHTS im Database Manager gespeichert. Dabei kann eine Serverberechtigung mehrere DBM-Kommandos umfassen und ein DBM-Kommando mehreren Serverberechtigungen zugeordnet sein.

(Siehe auch: Berechtigungen eines DBM-Benutzers)

Nachfolgend finden Sie eine Übersicht, welche Serverberechtigung für welche Aktionen im Database Manager vorausgesetzt wird.

Serverberechtigung | Erläuterung
AccessAdmin | Zugriff auf Datenbanksitzung
AccessSQL | Zugriff auf SQL-Sitzung
AccessUtility | Zugriff auf Utility-Sitzung
Backup | Durchführen von Sicherungen
DBFileRead | Zugriff auf Datenbankdateien (nur lesend)
DBInfoRead | Anzeigen von Zustandsinformationen
DBStart | Starten der Datenbankinstanz
DBStop | Stoppen der Datenbankinstanz
ExecLoad | Ausführen des Programms LOAD
InstallMgm | Installationsverwaltung
LoadSysTab | Laden der Systemtabellen
ParamCheckWrite | Zugriff auf Datenbankparameter (geprüftes Schreiben)
ParamFull | Zugriff auf Datenbankparameter (lesend und schreibend)
ParamRead | Zugriff auf Datenbankparameter (nur lesend)
Recovery | Wiederherstellen von Sicherungen
SystemCmd | Ausführen von Betriebssystemkommandos
UserMgm | Verwalten der DBM-Benutzer


Anzeigen von Zustandsinformationen: DBInfoRead (MaxDB: Database Manager CLI)

Anzeigen von Zustandsinformationen: DBInfoRead

Benutzer, denen die Serverberechtigung DBInfoRead zugewiesen wurde, dürfen folgende DBM-Kommandos ausführen:

Aktivieren eines Events | event_set
Änderungsdatum der Mediendefinitionsdatei | medium_date
Änderungsdatum der Sicherungshistorie | backup_history_date
Anzeigen der Funktion zur automatischen Log-Sicherung | autolog_show
Anzeigen der Mediendaten | medium_get
Anzeigen der Schlüsselwörter für Informationen zur Datenbankinstanz | show_list
Anzeigen der Sicherungshistorie | backup_history_list
Anzeigen der Variante des Datenbankkerns | db_speed
Anzeigen des Betriebszustands der Datenbankinstanz | db_state
Anzeigen von externen Sicherungskennungen | backup_ext_ids_list
Anzeigen von Informationen zur Datenbankinstanz | show
Anzeigen von Zustandsinformationen der Datenbankinstanz | info
Beenden einer Eventsitzung | event_release
Beenden einer SQL-Sitzung | sql_release
Blättern in den externen Sicherungskennungen | backup_ext_ids_listnext
Blättern in den Informationen zur Datenbankinstanz | show_next
Blättern in den Zustandsinformationen der Datenbankinstanz | info_next
Blättern in der Sicherungshistorie | backup_history_listnext
Deaktivieren eines Events | event_delete
Eröffnen einer SQL-Sitzung | sql_connect
Freigeben des von externen Sicherungskennungen belegten Arbeitsspeichers | backup_ext_ids_forget
Holen der Sicherungshistorie | backup_history_open
Holen von externen Sicherungskennungen | backup_ext_ids_get
Liste aller definierten Sicherungsmedien | medium_getall
Liste der Events und ihres Status erstellen | event_list
Schließen der Sicherungshistorie | backup_history_close
Übernehmen einer vorhandenen Mediendefinition | medium_migrate
Warten auf ein Event | event_wait


Ausführen des Programms LOAD: ExecLoad (MaxDB: Database Manager CLI)

Ausführen des Programms LOAD: ExecLoad

Benutzer, denen die Serverberechtigung ExecLoad zugewiesen wurde, dürfen folgende DBM-Kommandos ausführen:

Laden der Systemtabellen | load_systab
Laden SAP-spezifischer Tabellen | load_r3tab
Starten des Programms PythonLOAD | exec_load


Ausführen von Betriebssystemkommandos: SystemCmd (MaxDB: Database Manager CLI)

Ausführen von Betriebssystemkommandos: SystemCmd

Benutzer, denen die Serverberechtigung SystemCmd zugewiesen wurde, dürfen folgendes DBM-Kommando ausführen:

Ausführen des liveCache-Initialisierungsskripts

exec_lcinit


Durchführen von Sicherungen: Backup (MaxDB: Database Manager CLI)

Durchführen von Sicherungen: Backup

Benutzer, denen die Serverberechtigung Backup zugewiesen wurde, dürfen folgende DBM-Kommandos ausführen:

Änderungsdatum der Mediendefinitionsdatei | medium_date
Änderungsdatum der Sicherungshistorie | backup_history_date
Anlegen oder Ändern eines Sicherungsmediums | medium_put
Anzeigen aktueller Informationen zur Datenbankinstanz | db_restartinfo
Anzeigen der externen Sicherungskennungen | backup_ext_ids_list
Anzeigen der Funktion zur automatischen Log-Sicherung | autolog_show
Anzeigen der Mediendaten | medium_get
Anzeigen der Sicherungshistorie | backup_history_list
Anzeigen der Sicherungsinformationen im Betriebszustand OFFLINE | medium_labeloffline
Anzeigen der Sicherungsinformationen im Betriebszustand ONLINE oder ADMIN | medium_label
Anzeigen des aktuellen Standes der Prüfung einer Sicherung | recover_state_check
Anzeigen des aktuellen Standes der Sicherung | backup_state
Ausschalten der automatischen Log-Sicherung | autolog_off
Beenden einer Servicesitzung | service_release
Beenden einer unterbrochenen automatischen Log-Sicherung | autolog_cancel
Beenden einer unterbrochenen Sicherung | backup_cancel
Beenden einer unterbrochenen Wiederherstellung oder der Prüfung einer Sicherung | recover_cancel
Beenden einer Utility-Sitzung | util_release
Blättern in den externen Sicherungskennungen | backup_ext_ids_listnext
Blättern in der Sicherungshistorie | backup_history_listnext
Einschalten der automatischen Log-Sicherung | autolog_on
Eröffnen einer Servicesitzung | service_connect
Eröffnen einer Utility-Sitzung | util_connect
Fortsetzen der parallelen Wiederherstellung oder der Prüfung einer Sicherung | recover_ignore
Fortsetzen der Sicherung ohne das zuletzt als voll gemeldete Medium | backup_ignore
Freigeben des von externen Sicherungskennungen belegten Arbeitsspeichers | backup_ext_ids_forget
Holen der Sicherungshistorie | backup_history_open
Holen von externen Sicherungskennungen | backup_ext_ids_get
Liste aller definierten Medien | medium_getall
Löschen eines Sicherungsmediums | medium_delete
Prüfen einer Sicherung | recover_check
Schließen der Sicherungshistorie | backup_history_close
Sichern auf ein Folgemedium | backup_replace
Sichern der Datenbankinstanz | backup_start
Übernehmen einer vorhandenen Mediendefinition | medium_migrate
Wiederherstellen oder Prüfen einer Sicherung mit Folgemedium | recover_replace


Installationsverwaltung: InstallMgm (MaxDB: Database Manager CLI)

Installationsverwaltung: InstallMgm

Benutzer, denen die Serverberechtigung InstallMgm zugewiesen wurde, dürfen folgende DBM-Kommandos ausführen:

Aktualisieren der Registrierung einer Datenbankinstanz | db_reg
Ändern eines Konfigurationsparameters des Database Manager | dbm_configset
Anzeigen eines Konfigurationsparameters des Database Manager | dbm_configget
Initialisieren der Datenbankparameter für eine neue Datenbankinstanz | param_init
Kopieren einer Datenbank-Parameterdatei | param_copy
Löschen der aktuellen Datenbankinstanz | db_drop
Löschen der Datenbank-Parameterdatei | param_rmfile


Laden der Systemtabellen: LoadSysTab (MaxDB: Database Manager CLI)

Laden der Systemtabellen: LoadSysTab

Benutzer, denen die Serverberechtigung LoadSysTab zugewiesen wurde, dürfen das folgende DBM-Kommando ausführen:

Laden der Systemtabellen | load_systab
Laden SAP-spezifischer Tabellen | load_r3tab


Starten der Datenbankinstanz: DBStart (MaxDB: Database Manager CLI)

Starten der Datenbankinstanz: DBStart

Benutzer, denen die Serverberechtigung DBStart zugewiesen wurde, dürfen folgende DBM-Kommandos ausführen:

Starten der Datenbankinstanz | db_start
Überführen in den Betriebszustand ONLINE | db_online


Stoppen der Datenbankinstanz: DBStop (MaxDB: Database Manager CLI)

Stoppen der Datenbankinstanz: DBStop

Benutzer, denen die Serverberechtigung DBStop zugewiesen wurde, dürfen folgende DBM-Kommandos ausführen:

Benutzen der Datenbankkonsole | db_cons
Löschen von Laufzeitinformationen nach einem Datenbankfehler | db_clear
Restart der Datenbankinstanz | db_restart
Stoppen der Datenbankinstanz | db_stop
Überführen in den Betriebszustand ADMIN | db_admin
Überführen in den Betriebszustand OFFLINE | db_offline


Verwalten der DBM-Benutzer: UserMgm (MaxDB: Database Manager CLI)

Verwalten der DBM-Benutzer: UserMgm

DBM-Benutzer, denen die Serverberechtigung UserMgm zugewiesen wurde, dürfen folgende DBM-Kommandos ausführen:

Ändern von DBM-Benutzerdaten | user_put
Anlegen von DBM-Benutzern | user_create
Anzeigen der Serverberechtigungen | user_getrights
Anzeigen der Benutzerdaten | user_get
Liste der registrierten Datenbankbenutzer | user_getall
Löschen von DBM-Benutzern | user_delete


Wiederherstellen von Sicherungen: Recovery (MaxDB: Database Manager CLI)

Wiederherstellen von Sicherungen: Recovery

Benutzer, denen die Serverberechtigung Recovery zugewiesen wurde, dürfen alle unter der Benutzerberechtigung Backup aufgeführten Kommandos ausführen. Zusätzlich dürfen sie folgende DBM-Kommandos ausführen:

Anzeigen des aktuellen Standes der Wiederherstellung | recover_state
Anzeigen von Informationen zur Datenbankinstanz | db_restart_info
Wiederherstellen der Datenbankinstanz | recover_start
Wiederherstellen einer Datenbank-Parameterdatei | recover_config


Zugriff auf Datenbankdateien (nur lesend): DBFileRead (MaxDB: Database Manager CLI)

Zugriff auf Datenbankdateien (nur lesend): DBFileRead

Benutzer, denen die Serverberechtigung DBFileRead zugewiesen wurde, dürfen folgende DBM-Kommandos ausführen:

Blättern im weiteren Inhalt einer Datenbankdatei | file_getnext
Öffnen einer Datenbankdatei | file_getfirst
Packen von Datenbankdateien | diag_pack
Sichern einer Datenbankdatei | file_backup
Wiederherstellen einer Datenbankdatei | file_restore


Zugriff auf Datenbankparameter (geprüftes Schreiben): ParamCheck (MaxDB: Database Manager CLI)

Zugriff auf Datenbankparameter (geprüftes Schreiben): ParamCheckWrite

Benutzer, denen die Serverberechtigung ParamCheckWrite zugewiesen wurde, dürfen alle unter der Benutzerberechtigung ParamRead aufgeführten Kommandos ausführen. Zusätzlich dürfen sie folgende DBM-Kommandos ausführen:

Ändern des Wertes eines Datenbankparameters | param_put
Ändern von Volume-Parametern | param_addvolume
Bestätigen von Änderungen der Datenbank-Parameterdatei | param_commitsession
Korrektur von Parametern | param_putconfirm
Löschen von Volume-Parametern | param_delvolume
Prüfen aller Datenbankparameter | param_checkall
Zurücksetzen der Parameterdatei auf eine vorherige Version | param_restore


Zugriff auf Datenbankparameter (lesend und schreibend): ParamFul (MaxDB: Database Manager CLI)

Zugriff auf Datenbankparameter (lesend und schreibend): ParamFull

Benutzer, denen die Serverberechtigung ParamFull zugewiesen wurde, dürfen alle unter den Benutzerberechtigungen ParamRead und ParamCheckWrite aufgeführten Kommandos ausführen. Zusätzlich dürfen sie folgende DBM-Kommandos ausführen:

Direktes Ändern eines Wertes in der Datenbank-Parameterdatei | param_directput
Hinzufügen eines Volume | db_addvolume
Löschen eines Parameters | param_directdel


Zugriff auf Datenbankparameter (nur lesend): ParamRead (MaxDB: Database Manager CLI)

Zugriff auf Datenbankparameter (nur lesend): ParamRead

Benutzer, denen die Serverberechtigung ParamRead zugewiesen wurde, dürfen folgende DBM-Kommandos ausführen:

Abbrechen einer Parametersitzung | param_abortsession
Anzeigen aller Daten eines Datenbankparameters | param_getfull
Anzeigen aller Eigenschaften eines Datenbankparameters | param_getproperties
Anzeigen aller Parameter der aktuellen Datenbank-Parameterdatei | param_directgetall
Anzeigen der Daten aller Datenbankparameter | param_extgetall
Anzeigen der Daten aller Volume-Parameter | param_getvolsall
Anzeigen der Daten eines einzelnen Volume-Parameters | param_getvolume
Anzeigen des aktuellen Wertes eines Datenbankparameters | param_getvalue
Anzeigen des Datentyps eines Datenbankparameters | param_gettype
Anzeigen des hinterlegten Erläuterungstextes | param_getexplain
Anzeigen des hinterlegten Hilfetextes | param_gethelp
Anzeigen des Systemvorschlags (Defaultwert) | param_getdefault
Anzeigen eines Wertes aus der Datenbank-Parameterdatei | param_directget
Anzeigen einzelner Daten eines Datenbankparameters | param_extget
Blättern in der Datenbankparameter-Historie | param_gethistorynext
Eröffnen einer Parametersitzung | param_startsession
Liste der vorhandenen Parameterdateien | param_versions
Öffnen der Datenbankparameter-Historie | param_gethistory


Zugriff auf Datenbanksitzung: AccessAdmin (MaxDB: Database Manager CLI)

Zugriff auf Datenbanksitzung: AccessAdmin

Benutzer, denen die Serverberechtigung AccessAdmin zugewiesen wurde, dürfen folgende Kommandos ausführen:

Aktivieren einer neuen Datenbankinstanz | db_activate
Ausführen einer Datenbankanweisung | db_execute
Beenden einer Datenbanksitzung | db_release
Eröffnen einer Datenbanksitzung | db_connect


Zugriff auf SQL-Sitzung: AccessSQL (MaxDB: Database Manager CLI)

Zugriff auf SQL-Sitzung: AccessSQL

Benutzer, denen die Serverberechtigung AccessSQL zugewiesen wurde, dürfen folgende Kommandos ausführen:

Aktualisieren der Optimiererstatistiken | sql_updatestat
Aktualisieren der Optimiererstatistiken mit dem Programm XPU | exec_xpu
Anzeigen der Struktur einer Ergebnismenge | sql_info
Ausführen einer SQL-Anweisung | sql_execute
Blättern in den weiteren Ergebnisdaten | sql_fetch
Eröffnen einer SQL-Sitzung | sql_connect
Schließen einer SQL-Sitzung | sql_release
Wiederherstellen eines beschädigten Indexes | sql_recreateindex


Zugriff auf Utility-Sitzung: AccessUtility (MaxDB: Database Manager CLI)

Zugriff auf Utility-Sitzung: AccessUtility

Benutzer, denen die Serverberechtigung AccessUtility zugewiesen wurde, dürfen folgende DBM-Kommandos ausführen:

Ausführen eines Utility- oder SQL-Kommandos | util_execute
Beenden einer Utility-Sitzung | util_release
Eröffnen einer Utility-Sitzung | util_connect
Hinzufügen eines Volume | db_addvolume


Eröffnen einer DBM-Server-Sitzung (MaxDB: Database Manager CLI)

Eröffnen einer DBM-Server-Sitzung

Verwendung

Sie eröffnen eine Sitzung mit dem DBM-Server und legen fest, auf welche Datenbankinstanz die nachfolgend übergebenen Optionen und Kommandos sich beziehen. Wenn sich die Datenbankinstanz auf einem entfernten Rechner befindet, müssen Sie neben dem Namen der Datenbankinstanz <database_name> auch den Rechnernamen <database_server> angeben.

Eine DBM-Server-Sitzung ist die Voraussetzung für das Anmelden an das Programm Database Manager und die Ausführung der meisten DBM-Kommandos.

Voraussetzungen

Sie haben das Installationsprofil all oder Server auf Ihrem Rechner installiert. Das Programm Database Manager CLI ist in beiden Installationsprofilen enthalten.

Syntax

dbmcli –d <database_name> [-n <database_server>]

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat.


Aufrufen des Database Manager CLI (MaxDB: Database Manager CLI)

Aufrufen des Database Manager CLI

Verwendung

Beim Aufrufen des Programms Database Manager CLI können DBM-Optionen und jeweils maximal ein DBM-Kommando übergeben werden.

Für DBM-Optionen können zusätzliche Parameter angegeben werden. Welche Parameter möglich sind, ist in der Beschreibung der jeweiligen DBM-Option erläutert.

Für das DBM-Kommando können zusätzliche Kommandooptionen angegeben werden. Erläuterungen zu den möglichen Kommandooptionen finden Sie in der Beschreibung des jeweiligen DBM-Kommandos.

Für DBM-Kommandos stehen Ihnen Eingabehilfen zur Verfügung.

Zum Format der Rückgabewerte auf DBM-Kommandos siehe Antwortformat.

Syntax

dbmcli [<dbm_options>] [<dbm_command> [command_options]]

Wenn Sie DBM-Optionen zusammen mit Parametern verwenden, markieren Sie den Beginn des nachfolgenden DBM-Kommandos mit der Option –c (Kennzeichnen als DBM-Kommando: -c).
Sie vermeiden damit, dass das Programm Database Manager den Beginn des DBM-Kommandos als Parameter der zuvor angegebenen DBM-Option interpretiert.

Beispiel

Anmelden an den Database Manager CLI als Benutzer DBM mit dem Kennwort DBM, Anzeigen des Inhalts der Datenbanktabelle customers der Datenbankinstanz HOTELDB ohne explizite Angabe eines Benutzers (der Database Manager verwendet die Daten des aktuell angemeldeten DBM-Benutzers):

dbmcli –d HOTELDB –u DBM,DBM –uSQL -c sql_execute SELECT * FROM customers


DBM-Optionen (MaxDB: Database Manager CLI)

DBM-Optionen

Im Database Manager CLI sind folgende DBM-Optionen möglich (Siehe auch: Kommandostruktur):

Anlegen oder Ändern von XUSER-Einträgen | -us
Anmelden an das Programm XUSER | -ux
Anzeigen von XUSER-Daten | -ul
Eröffnen einer Servicesitzung | -uSRV
Eröffnen einer SQL-Sitzung | -uSQL | -USQL
Eröffnen einer Utility-Sitzung | -uUTL | -UUTL
Installationsverzeichnis der Datenbankinstanz | -R <inst_path>
Kennzeichnen als DBM-Kommando | -c
Löschen von XUSER-Einträgen | -ud
Name der Ausgabedatei | -o <file_name>
Name der Datenbankinstanz | -d <database_name>
Name der Protokolldatei | -t <file_name>
Name des Datenbankrechners | -n <database_server>
Name des Eingabeskripts | -i <file_name> | -ic <file_name>
Version des Database Manager | -V
XUSER-Schlüssel | -uk

Wenn Sie DBM-Optionen mit optionalen Parametern verwenden, markieren Sie den Beginn des DBM-Kommandos mit der Option –c (Kennzeichnen als DBM-Kommando: -c).
Sie vermeiden damit, dass das Programm Database Manager den Beginn des DBM-Kommandos als Parameter der zuvor angegebenen DBM-Option interpretiert.


Anlegen oder Ändern von XUSER-Einträgen: -us (MaxDB: Database Manager CLI)

Anlegen oder Ändern von XUSER-Einträgen: -us

Verwendung

Mit der DBM-Option –us können Sie aus dem Database Manager CLI heraus mit dem Programm XUSER neue XUSER-Einträge für DBM- oder Datenbankbenutzer anlegen oder vorhandene überschreiben.

XUSER-Einträge sind Sets von Benutzerdaten, die durch Schlüsselnamen definiert sind. Sie erleichtern die Anmeldung an Programme, die XUSER unterstützen. Einen XUSER-Schlüssel können Sie zusammen mit der DBM-Option –U für die Anmeldung an den Database Manager verwenden. Auf diese Weise können Sie auf die Angabe des DBM-Benutzernamens und -kennwortes (DBM-Option –u) verzichten, da der Database Manager CLI die erforderlichen Daten dem entsprechenden XUSER-Eintrag entnimmt.

Verwenden Sie für das Anlegen oder Ändern von XUSER-Einträgen vorzugsweise direkt das Werkzeug XUSER.

Siehe auch: XUSER

Zugriff auf die Datenbankinstanz haben Sie mit einem unter einem XUSER-Eintrag gespeicherten Benutzer nur dann, wenn dieser zuvor auch tatsächlich für diese Datenbankinstanz angelegt wurde. DBM-Benutzer müssen mit Hilfe des Database Manager (Siehe: Anlegen von DBM-Benutzern), Datenbankbenutzer mit Hilfe der Query Tools angelegt werden.

Anlegen von XUSER-Einträgen

Für das Anlegen neuer XUSER-Einträge ist keine Anmeldung an das Programm XUSER erforderlich.

Sie können für einen XUSER-Eintrag einen Schlüsselnamen definieren, unter dem dieser Eintrag abgelegt werden soll.

Sie können diesen Schlüsselnamen auch als eine Kombination aus Datenbank- und Rechnername vom Database Manager CLI generieren lassen, indem Sie zusätzlich zum Benutzernamen und Kennwort auch die zugehörige Datenbankinstanz und den Datenbankrechner angeben.

Für die Arbeit im Database Manager empfiehlt es sich, einen XUSER-Eintrag mit dem Schlüsselnamen DBMUSR und den Benutzerdaten des ersten DBM-Benutzers anzulegen. Der Database Manager CLI versucht bei der Anmeldung an dieses Programm implizit auf diesen Schlüssel zuzugreifen, wenn Sie die DBM-Option –U ohne einen Schlüsselnamen angeben.

Ändern von XUSER-Einträgen

Für das Ändern von XUSER-Einträgen müssen Sie sich mit den Daten desjenigen Benutzers anmelden, dessen Daten Sie ändern wollen, oder mit den Daten unter dem XUSER-Schlüssel DEFAULT.

Wenn Sie sich mit den Daten unter dem XUSER-Schlüssel DEFAULT anmelden, haben Sie die Berechtigung, jeden XUSER-Eintrag zu ändern. Zur Identifizierung des XUSER-Eintrags, den Sie ändern wollen, verwenden Sie die DBM-Option –uk oder eine Kombination aus dem Datenbank- und dem Rechnernamen (DBM-Optionen -d und –n).

Syntax

-us <new_user_name>,<new_user_password>

Beispiele

Anlegen eines neues XUSER-Eintrags

...

1. Aufruf des Database Manager CLI, Anlegen eines neuen XUSER-Eintrags (Beispiel. Benutzer MONA mit dem Kennwort RED), Speichern unter einem definierten Schlüsselnamen (Beispiel: Schlüsselname MOKEY):

dbmcli –uk<user_key> –us <new_user_name>,<new_user_password> [options]

dbmcli –uk MOKEY –us MONA,RED

2. Aufruf des Database Manager CLI, Anlegen eines neuen XUSER-Eintrags (Beispiel. Benutzer MONA mit dem Kennwort RED), Speichern unter dem Schlüsselnamen, der aus Datenbank- und Rechnername generiert wird (Beispiel: Datenbankinstanz HOTELDB, Rechnername GENUA):

dbmcli –d <database_name> [-n <database_server>] –us <new_user_name>,<new_user_password> [options]

dbmcli –d HOTELDB –n GENUA -us MONA,RED

Ändern eines vorhandenen XUSER-Eintrags

...

1. Aufruf des Database Manager CLI. Anmelden an das Programm XUSER mit den Daten des zu ändernden XUSER-Eintrags mit der DBM-Option -u (Beispiel: Benutzer DAVID, Kennwort BLUE ändern auf Benutzer BORIS, Kennwort PINK)

a. Spezifizieren des zu ändernden XUSER-Eintrags über Schlüsselname (Beispiel: Schlüsselname MOKEY):

dbmcli -u <user_name>,<user_password> -uk <user_key> –us <new_user_name>,<new_user_password> [options]

dbmcli –u DAVID,BLUE –uk DAKEY –us BORIS,PINK

b. Spezifizieren des zu ändernden XUSER-Eintrags über Kombination aus Datenbankname und –rechnername (Beispiel: Datenbankinstanz HOTELDB, Rechnername GENUA):

dbmcli -u <user_name>,<user_password> –d <database_name> [-n <database_server>] –us <new_user_name>,<new_user_password> [options]

dbmcli –u DAVID,BLUE –d HOTELDB –n GENUA –us BORIS,PINK

2. Aufruf des Database Manager CLI. Anmelden an das Programm XUSER mit den unter dem XUSER-Schlüssel DEFAULT gespeicherten Daten mit Hilfe der DBM-Option -ux (Beispiel: Benutzer MONA, Kennwort RED),

a. Spezifizieren des zu ändernden XUSER-Eintrags mit Hilfe der DBM-Option –uk (Beispiel: Schlüsselname: DAKEY),
Angabe der neuen Daten mit Hilfe der DBM-Option –us (Beispiel: Benutzer BORIS, Kennwort PINK):

dbmcli -ux <default_user_name>,<default_user_password> -uk <user_key> –us <new_user_name>,<new_user_password> [options]

dbmcli –ux MONA,RED –uk DAKEY –us BORIS,PINK

b. Spezifizieren des zu ändernden XUSER-Eintrags mit Hilfe der Kombination aus Datenbankname und –rechnername (Beispiel: Datenbankinstanz HOTELDB, Rechnername GENUA),
Angabe der neuen Daten mit Hilfe der DBM-Option –us (Beispiel: Benutzer BORIS, Kennwort PINK):

dbmcli -ux <default_user_name>,<default_user_password> –d <database_name> [-n <database_server>] –us <new_user_name>,<new_user_password> [options]

dbmcli –ux MONA,RED –d HOTELDB –n GENUA –us BORIS,PINK


Anmelden an das Programm XUSER: -ux (MaxDB: Database Manager CLI)

Anmelden an das Programm XUSER: -ux

Verwendung

Sie verwenden die DBM-Option -ux, um sich aus dem Database Manager CLI heraus mit den Daten unter dem XUSER-Schlüssel DEFAULT an das Programm XUSER anzumelden.

Sie können diese DBM-Option beim Ändern (DBM-Option –us) oder Löschen von XUSER-Einträgen (DBM-Option –ud) verwenden.

Verwenden Sie vorzugsweise direkt das Werkzeug XUSER.

Siehe auch: XUSER

Syntax

-ux <default_user>,<default_user_password>

Beispiel

Ändern eines vorhandenen XUSER-Eintrags

dbmcli -ux <default_user_name>,<default_user_password> -uk <user_key> –us <new_user_name>,<new_user_password> [options]

Aufruf des Database Manager CLI, Anmelden mit dem unter dem XUSER-Schlüssel DEFAULT gespeicherten Benutzer MONA, Kennwort RED, Angabe des zu ändernden XUSER-Eintrags mit dem Schlüsselnamen DAKEY, Angabe des neuen Benutzernamens und –kennworts BORIS und PINK:

dbmcli –ux MONA,RED –uk DAKEY –us BORIS,PINK

Löschen eines vorhandenen XUSER-Eintrags

dbmcli -ux <default_user_name>,<default_user_password> -uk <user_key> -ud

Aufruf des Database Manager CLI, Anmelden mit dem unter dem XUSER-Schlüssel DEFAULT gespeicherten Benutzer MONA, Kennwort RED, Angabe des zu löschenden XUSER-Eintrags mit dem Schlüsselnamens DAKEY, Angabe der DBM-Option –ud zum Löschen dieses Eintrags:

dbmcli –ux MONA,RED –uk DAKEY –ud


Anzeigen von XUSER-Daten: -ul (MaxDB: Database Manager CLI)

Anzeigen von XUSER-Daten: -ul

Verwendung

Mit Hilfe der DBM-Option –ul lassen Sie sich aus dem Database Manager CLI heraus die im Programm XUSER gespeicherten Benutzerdaten anzeigen. Sie melden sich dazu als der unter dem Benutzerschlüssel DEFAULT gespeicherte Benutzer an das Programm XUSER an (DBM-Option -ux).

Sie erhalten eine Liste der vorhandenen XUSER-Schlüssel mit den zugeordneten Benutzernamen.

Siehe auch: XUSER

Syntax

-ul

Beispiel

Aufruf des Database Manager CLI, Anmelden an das Programm XUSER mit den unter dem Schlüsselnamen DEFAULT gespeicherten Benutzer MONA, Kennwort RED, Auflisten aller im Programm XUSER gespeicherten XUSER-Einträge:

dbmcli -ux MONA,RED -ul

OK
DEFAULT MONA,RED
DAKEY DAVID,BLUE
DBMUSR DBM


Eröffnen einer Servicesitzung: -uSRV (MaxDB: Database Manager CLI)

Eröffnen einer Servicesitzung: -uSRV

Verwendung

Bestimmte DBM-Kommandos setzen eine Servicesitzung voraus, bevor sie ausgeführt werden dürfen.

Wenn Sie bei der Anmeldung an den Database Manager CLI mit Hilfe der DBM-Optionen –d (Name der Datenbankinstanz) und –u (DBM-Benutzer) zusätzlich die DBM-Option –uSRV angeben, wird implizit das DBM-Kommando Eröffnen einer Servicesitzung ausgeführt.

Mit Hilfe der DBM-Option –uSQL übermitteln Sie die Benutzerdaten des gewünschten Datenbankbenutzers. Die Servicesitzung wird mit diesen Benutzerdaten zu der angegebenen Datenbankinstanz eröffnet.

Wenn Sie den Database Manager CLI beenden, wird auch die Servicesitzung beendet.

Syntax

-uSRV

Beispiel

Aufruf des Database Manager CLI, Anmelden als Benutzer DBM mit dem Kennwort DBM an die Datenbankinstanz HOTELDB, Aufbau einer Servicesitzung und Wiederherstellen der Parameterdatei dieser Datenbankinstanz vom Sicherungsmedium CPLBM

dbmcli –d HOTELDB –u DBM,DBM –uSRV recover_config CPLBM

OK


Eröffnen einer SQL-Sitzung: -uSQL (MaxDB: Database Manager CLI)

Eröffnen einer SQL-Sitzung: -uSQL

Verwendung

Bestimmte DBM-Kommandos setzen eine SQL-Sitzung voraus, bevor sie ausgeführt werden dürfen.

Wenn Sie bei der Anmeldung an den Database Manager CLI mit Hilfe der DBM-Optionen -d (Name der Datenbankinstanz) und -u (DBM-Benutzer) zusätzlich die DBM-Option -uSQL angeben, wird implizit das DBM-Kommando zum Eröffnen einer SQL-Sitzung ausgeführt.

Mit Hilfe der DBM-Option -uSQL übermitteln Sie die Benutzerdaten des gewünschten Datenbankbenutzers. Die SQL-Sitzung wird mit diesen Benutzerdaten zu der angegebenen Datenbankinstanz eröffnet.

Wenn Sie den Database Manager CLI beenden, wird auch die Servicesitzung beendet.

Beachten Sie die unterschiedliche Bedeutung des Kommandos bei Groß- und Kleinschreibung.
-uSQL: Angabe des mit Benutzername und Kennwort ausgewiesenen Datenbankbenutzers
-USQL: Anmeldung mit einem in der XUSER-Datei hinterlegten Benutzerschlüssel eines Datenbankbenutzers.

Siehe auch: XUSER

Wenn Sie bei -uSQL keinen Benutzer angeben, verwendet der Database Manager CLI die Daten des ersten DBM-Benutzers der angegebenen Datenbankinstanz. Das Eröffnen einer SQL-Sitzung mit dem ersten DBM-Benutzer ist jedoch nur dann erfolgreich, wenn der im Database Manager CLI angemeldete DBM-Benutzer über die erforderliche Serverberechtigung für die Ausführung des DBM-Kommandos zum Eröffnen einer SQL-Sitzung verfügt.

Der mit Benutzername und Kennwort oder als XUSER-Schlüssel angegebene Datenbankbenutzer muss für die unter der DBM-Option -d angegebene Datenbankinstanz angelegt sein, andernfalls schlägt das Kommando fehl.

Ein unter einem angegebenen XUSER-Schlüssel eventuell gespeicherter Datenbankname wird beim Eröffnen der SQL-Sitzung ignoriert.

Syntax

Anmeldung mit Name und Kennwort eines Datenbankbenutzers:

-uSQL [<database_user>,<database_user_password>]

oder Anmeldung mit XUSER-Schlüssel eines Datenbankbenutzers:
-USQL <user_key>

Beispiel für -uSQL

Aufruf des Database Manager CLI, Anmelden als Benutzer DBM mit dem Kennwort DBM an die Datenbankinstanz HOTELDB, Anzeigen des Inhalts der Datenbanktabelle customer für den Datenbankbenutzer MONA mit dem Kennwort RED:

dbmcli -d HOTELDB -u DBM,DBM -uSQL MONA,RED sql_execute SELECT * FROM customer

OK
<content_of_table_customer>

Beispiel für -USQL

Aufruf des Database Manager CLI, Anmelden als Benutzer DBM mit dem Kennwort DBM an die Datenbankinstanz HOTELDB, Anzeigen des Inhalts der Datenbanktabelle customer für den Datenbankbenutzer unter dem XUSER-Schlüssel MOKEY:

dbmcli -d HOTELDB -u DBM,DBM -USQL MOKEY sql_execute SELECT * FROM customer

OK
<content_of_table_customer>


Eröffnen einer Utility-Sitzung: -uUTL (MaxDB: Database Manager CLI)

Eröffnen einer Utility-Sitzung: -uUTL

Verwendung

Eine Utility-Sitzung zur Datenbankinstanz ist Voraussetzung für die Ausführung bestimmter DBM-Kommandos.

Wenn Sie bei der Anmeldung an den Database Manager CLI mit Hilfe der DBM-Optionen –d (Name der Datenbankinstanz) und –u (DBM-Benutzer) zusätzlich die DBM-Option -uUTL angeben, wird implizit das DBM-Kommando Eröffnen einer Utility-Sitzung ausgeführt.

Mit Hilfe der DBM-Option -uUTL übermitteln Sie die Benutzerdaten des gewünschten Datenbankbenutzers. Die Utility-Sitzung wird mit diesen Benutzerdaten zur angegebenen Datenbankinstanz eröffnet.

Wenn Sie den Database Manager CLI beenden, wird auch die Utilitysitzung zur Datenbankinstanz beendet.

Beachten Sie die unterschiedliche Bedeutung des Kommandos bei Groß- und Kleinschreibung.
-uUTL: Verwendung des mit Benutzername und Kennwort ausgewiesenen Datenbankbenutzers
-UUTL: Verwendung eines in der XUSER-Datei hinterlegten Benutzerschlüssel eines Datenbankbenutzers

Siehe auch: XUSER

Wenn Sie bei –uUTL keinen Benutzer angeben, verwendet der Database Manager CLI die Daten des ersten DBM-Benutzers. Das Eröffnen einer Utility-Sitzung mit dem ersten DBM-Benutzer ist jedoch nur dann erfolgreich, wenn der im Database Manager CLI angemeldete DBM-Benutzer über die erforderliche Serverberechtigung für die Ausführung des DBM-Kommandos zum Eröffnen einer Utility-Sitzung verfügt.

Wenn Sie bei –UUTL keinen Benutzer angeben, versucht der Database Manager, die Benutzerangaben unter dem XUSER-Schlüssel c zu verwenden. Es empfiehlt sich deshalb, einen XUSER-Eintrag mit dem Schlüsselnamen C und den Daten des ersten DBM-Benutzers anzulegen (Siehe: Anlegen oder Ändern von XUSER-Einträgen).

Der mit Benutzername und Kennwort oder als XUSER-Schlüssel angegebene Datenbankbenutzer muss für die unter der DBM-Option –d angegebene Datenbankinstanz angelegt sein, andernfalls schlägt das Kommando fehl.

Ein unter einem angegebenen XUSER-Schlüssel eventuell gespeicherter Datenbankname wird beim Eröffnen der SQL-Sitzung ignoriert.

Syntax

-uUTL [<database_user>,<database_user_password>]

oder Anmeldung mit XUSER-Schlüssel eines Datenbankbenutzers:

-UUTL [<user_key>]

Beispiel für -uSQL

Aufruf des Database Manager CLI, Anmelden als Benutzer DBM mit Kennwort DBM an die Datenbankinstanz HOTELDB, Eröffnen einer Utility-Sitzung als Datenbankbenutzer DAVID mit dem Kennwort BLUE und Sichern der Datenbankinstanz auf das Sicherungsmedium CPLBM:

dbmcli –d HOTELDB –u DBM,DBM –uUTL DAVID,BLUE backup_start CPLBM

OK
<reply_to_backup_command>

Beispiel für -USQL

Aufruf des Database Manager CLI, Anmelden als Benutzer DBM mit Kennwort DBM an die Datenbankinstanz HOTELDB, Eröffnen einer Utility-Sitzung als Datenbankbenutzer unter dem XUSER-Schlüssel DAKEY und Sichern der Datenbankinstanz auf das Sicherungsmedium CPLBM:

dbmcli –d HOTELDB –u DBM,DBM –UUTL DAKEY backup_start CPLBM

OK
<reply_to_backup_command>


Installationsverzeichnis der Datenbanksoftware: -R (MaxDB: Database Manager CLI)

Installationsverzeichnis der Datenbanksoftware: -R

Verwendung

Auf einem Datenbankrechner können mehrere Versionen der Software des Datenbanksystems vorhanden sein. Beim Anlegen einer neuen Datenbankinstanz oder DBM-Kommandos, die sich sich nicht auf eine bestimmte Datenbankinstanz und damit eine bestimmte Softwareversion beziehen, müssen Sie deshalb angeben, auf welche Softwareversion sich das nachfolgende DBM-Kommando beziehen soll. Sie verwenden dazu die DBM-Option –R.

Beim Aufbau der Sitzung wird geprüft, ob die angegebene Version auf dem Rechner in der Liste der registrierten Versionen vorhanden ist. Andernfalls wird das Eröffnen der Sitzung abgelehnt.

Beim Aufruf des Database Manager CLI kann mit Hilfe der Option -R nur dann die Verbindung zu einer bestimmten Version der Datenbanksoftware hergestellt werden, wenn vorher die korrekte Registrierung der Version der Datenbanksoftware erfolgt ist.

Wenn Sie zusätzlich zur Option -R die Option -d und den Namen einer Datenbankinstanz angeben, dann wird die Option -R ignoriert. Der Database Manager CLI verwendet in diesem Fall die der Datenbankinstanz zugeordnete Version der Datenbanksoftware.

Syntax

-R <dependent_path>

Beispiele

Anlegen einer neuen Datenbankinstanz

Anmelden an den Database Manager CLI mit dem Benutzer DBM und dem Kennwort DBM, Anlegen einer Datenbankinstanz HOTELDBmit der unter dem Pfad C:\Program Files\SDB\V75 abgelegten Softwareversion auf dem entfernten Rechner GENUA, Identifizierung auf diesem Rechner als Betriebssystembenutzer ANNA mit dem Kennwort MAY:

dbmcli -R "C:\Program Files\SDB\7500" –n GENUA db_create HOTELDB DBM,DBM ANNA,MAY

OK

Anzeigen aller vorhandenen Datenbankinstanzen einer bestimmten Softwareversion

Anmelden an den Database Manager CLI mit der Option –R und dem Installationspfad der Softwareversion 7.5 als Benutzer DBM und dem Kennwort DBM, Ausführen des DBM-Kommandos zum Anzeigen der Liste aller auf dem Rechner GENUA unter der angegebenen Version registrierten Datenbankinstanzen:

dbmcli -R "C:\Program Files\SDB\7500" –n GENUA db_enum

OK
HOTELDB C:\Program Files\SDB\7500 7.5.0.5 fast online
HOTELDB C:\Program Files\SDB\7500 7.5.0.5 quick offline
HOTELDB C:\Program Files\SDB\7500 7.5.0.5 slow offline


Kennzeichnen als DBM-Kommando: -c (MaxDB: Database Manager CLI)

Kennzeichnen als DBM-Kommando: -c

Verwendung

Wenn Sie eine DBM-Option mit optionalen Parametern verwenden, müssen Sie diese logisch von einem nachfolgenden DBM-Kommando abzugrenzen. Sie fügen dazu die DBM-Option –c ein. Der Database Manager CLI interpretiert dann alle nach –c folgenden Angaben als DBM-Kommando.

Syntax

-c <DBM_command>

Beispiele

Aufruf des Database Manager CLI, Anmelden als Benutzer DBM mit dem Kennwort DBM an die Datenbankinstanz HOTELDB, Anzeigen des Inhalts der Datenbank-Systemtabelle usersohne explizite Angabe eines Datenbankbenutzers

· Ohne Angabe von -c zwischen den optionalen Parametern der DBM-Option und dem DBM-Kommando wird das DBM-Kommando als Benutzername/Kennwort-Kombination für die Option –uSQL interpretiert. Sie erhalten eine Fehlermeldung.

dbmcli -d HOTELDB -u DBM,DBM -uSQL sql_execute SELECT * FROM users

ERR
-24988,ERR_SQL: sql error
-4008,Unknown user name/password combination

· Mit der Option –c markieren Sie den Beginn des DBM-Kommandos. Für die Option –uSQL wird der Vorschlagswert (erster DBM-Benutzer) verwendet.

dbmcli -d HOTELDB -u DBM,DBM -uSQL –c sql_execute SELECT * FROM users

OK
...


Löschen von XUSER-Einträgen: -ud (MaxDB: Database Manager CLI)

Löschen von XUSER-Einträgen: -ud

Verwendung

Option im Database Manager CLI

Sie löschen die Daten und damit den entsprechenden XUSER-Eintrag eines Datenbankbenutzers im Programm XUSER.

Für das Löschen von Benutzerdaten müssen Sie sich entweder mit den Daten des zu löschenden Datenbankbenutzers oder mit den unter dem Benutzerschlüssel DEFAULTregistrierten Benutzerdaten anmelden.

Zur Identifizierung des Benutzers, dessen Daten gelöscht werden sollen, geben Sie eine Kombination aus dem Namen der Datenbankinstanz und des Datenbankrechners oder einen XUSER-Schlüssel an.

Verwenden Sie vorzugsweise direkt das Werkzeug XUSER.

Siehe auch: XUSER

Syntax

-ud

Anmeldung als der im Programm XUSER zu löschende Benutzer <user_name>
Zur Identifizierung des zu löschenden Benutzers geben Sie eine Kombination aus Datenbank- und Rechnername an.

-u <user_name>,<password> -ud -d <database_name> [-n <database_server>]

Anmeldung mit den unter dem XUSER-Schlüssel DEFAULT gespeicherten Benutzerdaten an das Programm XUSER
Zur Identifizierung des zu löschenden Benutzers geben Sie eine Kombination aus Datenbank- und Rechnername an.

–ux <default_user>,<password> -ud -d <database_name> [-n <database_server>]

Anmeldung als der im Programm XUSER zu löschende Benutzer <user_name>
Zur Identifizierung des zu löschenden Benutzers geben Sie den XUSER-Schlüssel <user_key>an.

-u <user_name>,<password> -ud -uk <user_key>

Anmeldung mit den unter dem XUSER-Schlüssel DEFAULT gespeicherten Benutzerdaten an das Programm XUSER
Zur Identifizierung des zu löschenden Benutzers geben Sie den XUSER-Schlüssel <user_key> an.

-ux <default_user>,<password> -ud -uk <user_key>


Name der Ausgabedatei: -o (MaxDB: Database Manager CLI)

Name der Ausgabedatei: -o

Verwendung

Option im Database Manager CLI

Alle Ausgaben werden in die unter <file_name> angegebene Datei geschrieben.

Syntax

-o <file_name>

Speichern der Antwort auf das Kommandos zum Anzeigen des Betriebszustandes Datenbankinstanz in der Datei state.txt

dbmcli –d myDB –u DBM,DBM –o state.txt db_state


Name der Datenbankinstanz: -d (MaxDB: Database Manager CLI)

Name der Datenbankinstanz: -d

Verwendung

Option im Database Manager CLI

Der in <database_name> angegebene Name der Datenbankinstanz gilt für die gesamte Sitzung. Alle datenbankspezifischen DBM-Kommandos beziehen sich auf diese Datenbankinstanz.

Beim Aufbau der Sitzung wird geprüft, ob der angegebene Name der Datenbankinstanz auf dem Rechner in der Liste der registrierten Datenbankinstanzen registriert ist. Andernfalls wird die Eröffnung der Sitzung abgelehnt.

Voraussetzung

Die unter <database_name> angegebene Datenbankinstanz ist vorhanden (Anlegen einer Datenbankinstanz).

Syntax

-d <database_name>

Anzeigen des Betriebszustandes der Datenbankinstanz myDB

dbmcli –d myDB –u DBM,DBM db_state

OK
ONLINE


Name der Protokolldatei: -t (MaxDB: Database Manager CLI)

Name der Protokolldatei: -t

Verwendung

Option im Database Manager CLI

Das übergebene DBM-Kommando wird ausgeführt. Zusätzlich werden alle an den Database Manager übermittelten Optionen und Kommandos sowie die jeweiligen Antworten in der angegebenen Datei <file_name>protokolliert. Der in der Datei bereits vorhandene Inhalt bleibt erhalten.

Syntax

-t <file_name>

Speichern der Aufrufoptionen und des DBM-Kommandos sowie der Antwort in der Protokolldatei log.txt

dbmcli –d myDB –u DBM,DBM –t log.txt db_state

OK
ONLINE


Name des Datenbankrechners: -n (MaxDB: Database Manager CLI)

Name des Datenbankrechners: -n

Verwendung

Option für den Aufbau der Sitzung mit dem Database Manager CLI

Es wird das Programm DBM-Server auf dem unter <database_server> angegebenen Datenbankrechner angesprochen.

Voraussetzungen

Auf dem Rechner <database_server> ist das Programm X-SERVER aktiv (Status: Started).

Syntax

-n <database_server>

Abfragen des Betriebszustandes der Datenbankinstanz myDB auf dem Rechner myServer

dbmcli –n myServer –d myDB –u DBM,DBM db_state

OK
ONLINE


Name des Eingabeskripts: -i | -ic (MaxDB: Database Manager CLI)

Name des Eingabeskripts: -i | -ic

Verwendung

Option im Database Manager CLI

Wenn Sie die Option –i oder -ic angeben, werden das bzw. die in der Datei <file_name> aufgelisteten DBM-Kommandos abgearbeitet. Bei –i bricht die Abarbeitung der DBM-Kommandos bei Auftreten eines Fehlers ab. Bei –ic wird bei Auftreten eines Fehlers die Abarbeitung fortgesetzt.

Syntax

-i <file_name> | -ic <file_name>

Ausführen von DBM-Kommandos, die im Eingabescript input.dbmenthalten sind

dbmcli–d myDB –u DBM,DBM –i input.dbm

OK
<reply_to_first_DBM_command_in_script>

OK
<reply_to_second_DBM_command_in_script>
...


Version des Database Manager: -V (MaxDB: Database Manager CLI)

Version des Database Manager: -V

Verwendung

Option im Database Manager CLI

Sie fragen die Version des Programms Database Manager ab. == _________Version

Syntax

-V

>dbmcli –V

OK
 version,os,dbroot,logon,code,swap
"7.4.3","WIN32","C:\PROGRAM FILES\SAPDB\DEPEND",True,ASCII,2


XUSER-Schlüssel: -uk (MaxDB: Database Manager CLI)

XUSER-Schlüssel: -uk

Verwendung

Option im Database Manager CLI beim Anlegen neuer oder Ändern vorhandener XUSER-Einträge im Programm XUSER

Sie verwenden diese Option zur Angabe des XUSER-Schlüssels, unter dem der Eintrag im Programm gespeichert werden soll.

Verwenden Sie vorzugsweise direkt das Werkzeug XUSER.

Siehe auch: XUSER

Syntax

-uk <user_key>

Anmelden an den Database Manager CLI (ohne explizite Benutzerangabe, es werden die Daten des ersten DBM-Benutzers verwendet), Anmelden des unter dem XUSER-Schlüssel DEFAULT gespeicherten Datenbankbenutzers SAPR3, Kennwort SAP und Eintragen der Daten des Benutzers Meyer, Kennwort secret unter dem XUSER-Schlüssel new

dbmcli –ux SAPR3,SAP –us Meyer,secret –uk new

OK


DBM-Kommandos (MaxDB: Database Manager CLI)

DBM-Kommandos

Verwendung

DBM-Kommandos sind Kommandos im Database Manager CLI für das Verwalten von Datenbankinstanzen.

Alle DBM-Kommandos während einer Sitzung mit dem Database Manager beziehen sich auf die Datenbankinstanz, deren Name beim Anmelden an den Database Manager CLI unter der Option -d angegeben wurde.

Siehe auch: Kommandostruktur

Voraussetzungen

Das Recht ein DBM-Kommando auszuführen, kann an drei Voraussetzungen gebunden sein:

· Anmeldung an den Database Manager

· Serverberechtigungen

· Anmeldung an das Betriebssystem

Welche dieser Voraussetzungen für die Ausführung eines bestimmten DBM-Kommandos erfüllt sein müssen, entnehmen Sie den Beschreibungen für die jeweilige Aktion.

Syntax

<command_name> [<parameters>]

Siehe auch:

Liste der DBM-Kommandos erstellen

Übersicht aller DBM-Kommandos


Eingabehilfen (MaxDB: Database Manager CLI)

Eingabehilfen

Für den Skriptmodus und den Sitzungsmodus stehen Ihnen folgende Eingabehilfen zur Verfügung:

Lokaler Systemaufruf: !

Kommentar: #

Zeilenverknüpfung: /

Zeilenverknüpfung: <


Kommentar: # (MaxDB: Database Manager CLI)

Kommentar: #

Eine Kommando, das mit einem Nummernzeichen beginnt, wird ignoriert.


Lokaler Systemaufruf: ! (MaxDB: Database Manager CLI)

Lokaler Systemaufruf: !

Dem einzugebenden Kommando wird ein Ausrufungszeichen vorangestellt.

Das Kommando wird nicht an den Database Manager übergeben, sondern im lokalen Kommandointerpreter des Betriebssystems ausgeführt.


Zeilenverknüpfung: / (MaxDB: Database Manager CLI)

Zeilenverknüpfung: /

Voraussetzung

Sie befinden sich im Sitzungsmodus oder Skriptmodus .

Wenn Sie eine Zeile innerhalb eines mehrzeiligen DBM-Kommandos mit einem Schrägstrich abschließen, erkennt das System, dass das Kommando noch nicht vollständig ist. Es wird deshalb bei Eingabe eines Zeilenvorschubs noch nicht ausgeführt.

Erst die Eingabe eines Zeilenvorschubs ohne vorhergehenden Schrägstrich zeigt dem System an, dass das Kommando vollständig eingegeben wurde. Es wird daraufhin an den Database Manager übermittelt.


Zeilenverknüpfung: < (MaxDB: Database Manager CLI)

Zeilenverknüpfung: <

Mit dem Sonderzeichen Kleiner als (<) können mehrzeilige Kommandos an den Database Manager übermittelt werden.

Syntax

'<'<stop-token> <command-begin>

Die Zeichenkette <command-begin> wird mit den Folgezeilen verknüpft, bis eine Zeile gefunden wird, die mit <stop-token> beginnt.

Alle Zeilen werden durch Zeilenvorschub voneinander getrennt.

Die Zeile mit <stop-token> fließt nicht in das Kommando ein.


Antwortformat (MaxDB: Database Manager CLI)

Antwortformat

Üblicherweise erfolgt die Kommunikation in ASCII-Darstellung. Nur in einigen Spezialfällen, wie dem binären Dateizugriff, enthalten Anfrage und Antwort auch binäre Daten.

Damit sind die Antworten auf der Client-Seite gut lesbar. Außerdem werden Abhängigkeiten von der Hardwarearchitektur weitgehend vermieden.

Erfolgreiche Antwort

Wenn die Anfrage erfolgreich ist, wird eine OK-Meldung im folgenden Format gegeben:

OK[,<description>]<NL>
[<answer>]

Die Zeichenkette OK ist das erste Token der Antwort. Auf der gleichen Zeile folgt optional ein Erläuterungstext. Das Metazeichen <NL> steht für einen Zeilenvorschub.

Die Antwortdaten werden nach dem Zeilenvorschub geliefert. Die Struktur der Antwortdaten hängt vom konkreten DBM-Kommando ab.

Fehlermeldung

ERR[,<description>]<NL>
[<errcode>,<errdescription><NL>
[<subcode>,<subdescription><NL>]
[<extended_description><NL>]]

Ein Fehler beginnt immer mit der Zeichenkette ERR. Auf der gleichen Zeile folgt optional eine Beschreibung.

Auf der ersten Folgezeile können die Nummer des Fehlers (<errcode>) und ein zugehöriger Text (<errdescription>) gemeldet werden
(Siehe auch: Dokumentation Meldungen)

Wenn dem System Fehlernummer und zugehöriger Text einer Subkomponente (z.B. LZU oder Betriebssystem) vorliegen, dann werden diese als <subcode> und <subdescription> übertragen.

Eventuelle weitere Informationen folgen in der <extended_description>. Spezialfälle, bei denen die <extended_description> ein strukturiertes Format hat, werden bei den jeweiligen DBM-Kommandos beschrieben.

Interner Fehler des Database Manager:

ERR
-24979,ERR_XPNOTFOUND_CN00 : parameter not found

Fehler der Laufzeitumgebung:

ERR
-24994,ERR_RTE_CN00 : runtime environment error
3,cannot access PARAM file [32]

Fehler bei Analyse der Beschreibungsdatei (siehe auch: Konfiguration von Datenbankinstanzen):

ERR
-24978,ERR_XPSYNTAX_CN00 : xparam syntax error
16,XPERR_IVSEQ_CN21 : error in IF-ELSIF-ELSE sequence
D:\d628\usr\env\cserv.pcf(60) :     ELSE


Betriebsmodi (MaxDB: Database Manager CLI)

Betriebsmodi

Das Programm Database Manager CLI bietet drei Betriebsmodi an:

  • Kommandomodus
  • Skriptmodus
  • Sitzungsmodus

Alle Modi werden implizit durch die Art des Aufrufs des Database Manager CLI aktiviert.


Kommandomodus (MaxDB: Database Manager CLI)

Kommandomodus

Der Database Manager CLI arbeitet im Kommandomodus, wenn beim Aufruf des Programms ein DBM-Kommando angegeben wird.

Das Kommando wird ausgeführt. Danach werden die Sitzung und das Programm Database Manager CLI beendet.

Siehe auch:

Aufrufen des Database Manager CLI


Skriptmodus (MaxDB: Database Manager CLI)

Skriptmodus

Der Database Manager CLI arbeitet im Skriptmodus, wenn Sie beim Aufruf dieses Programms mit Hilfe der Option –i ein Eingabeskript <file_name> angeben, das die DBM-Kommandos enthält, die vom Database Manager abgearbeitet werden sollen. Das Eingabeskript wird ausgeführt. Danach werden die Sitzung und das Programm Database Manager CLI beendet.

In einem Skript können Sie folgende Eingabemöglichkeiten verwenden:

Lokaler Systemaufruf: !

Kommentar: #

Zeilenverknüpfung: /

Zeilenverknüpfung: <

Syntax

dbmcli –i <file_name>


Sitzungsmodus (MaxDB: Database Manager CLI)

Sitzungsmodus

Im Sitzungsmodus können Sie mehrere DBM-Kommandos einzeln auszuführen, ohne jedes Mal den Database Manager neu aufzurufen.

Um den Database Manager CLI im Sitzungsmodus zu starten, rufen Sie das Programm ohne DBM-Kommando und ohne Eingabeskript auf.

Syntax

dbmcli

Im Sitzungsmodus haben Sie folgende Eingabemöglichkeiten:

Lokaler Systemaufruf: !

Kommentar: #

Zeilenverknüpfung: /

Zeilenverknüpfung: <

Um den Sitzungsmodus zu beenden, geben Sie exit ein.


Anmelden an den Database Manager (MaxDB: Database Manager CLI)

Anmelden an den Database Manager

Verwendung

Der angegebene Database Manager-Benutzer (DBM-Benutzer) meldet sich an das Programm Database Manager an.

Bei einer lokalen Kommunikation ist dieser Benutzer bereits an das Betriebssystem angemeldet.

Voraussetzungen

Die Anmeldung an den Database Manager setzt eine Sitzung mit dem DBM-Server voraus. Sie können diese Sitzung vor der Anmeldung an den Database Manager oder zusammen mit der Anmeldung eröffnen.

Zweistufige Anmeldung

Sie können zunächst die Sitzung mit dem DBM-Server eröffnen und sich in einem zweiten Schritt an den Database Manager anmelden.

Eröffnen einer DBM-Server-Sitzung:

dbmcli – d <database_name> [-n <database_server>]

Anmelden an den Database Manager:

user_logon <dbm_user>,<password>

Einstufige Anmeldung

Mit Hilfe der DBM-Option –u | -Ukönnen Sie auch beide Schritte der Anmeldung gleichzeitig ausführen. Dabei führt der Database Manager implizit das DBM-Kommando user_logon aus.

Beachten Sie die verschiedene Bedeutung des Kommandos bei Groß- und Kleinschreibung.

Verwendung der DBM-Option -u

dbmcli -u [<dbm_user>,<password>] –d <database_name>

· -u: explizite Angabe des mit <dbm_user> und <password> ausgewiesenen DBM-Benutzers

Aufruf des Database Manager CLI als DBM-Benutzer OLEG mit dem Kennwort MONDAY, Anmelden an die Datenbankinstanz HOTELDB, Abfragen des Betriebszustandes der Datenbankinstanz

dbmcli –u OLEG,MONDAY –d HOTELDB db_state

Verwendung der DBM-Option –U (Anmeldung mit XUSER)

dbmcli -U [<user_key>] –d <database_name>

· -U: Anmeldung mit einem in der XUSER-Datei hinterlegten Benutzer

Mit Hilfe des Programms XUSER können Sie Sets von Benutzerangaben unter Schlüsselnamen speichern und diese zur Anmeldung verwenden. XUSER-Schlüssel für DBM-Benutzer können jedoch nur dann erfolgreich verwendet werden, wenn die darin gespeicherten DBM-Benutzer für die entsprechende Datenbankinstanz auch tatsächlich angelegt wurden (Siehe: Anlegen von DBM-Benutzern).

Wenn Sie bei –U keinen <user_key> angeben, versucht der Database Manager die Daten unter dem XUSER-Schlüssel DBMUSR zu verwenden. Es empfiehlt sich deshalb, einen XUSER-Eintrag mit dem Schlüsselnamen DBMUSR und den Daten des ersten DBM-Benutzers anzulegen (Siehe: Anlegen oder Ändern von XUSER-Einträgen).

Aufruf des Database Manager CLI als DBM-Benutzer unter dem Schlüsselnamen OLKEY, Anmelden an die Datenbankinstanz HOTELDB, Abfragen des Betriebszustandes der Datenbankinstanz

dbmcli –U OLKEY –d HOTELDB db_state

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat


Arbeiten mit dem Database Manager CLI (MaxDB: Database Manager CLI)

Arbeiten mit dem Database Manager CLI

Verwendung

Mit dem Database Manager CLI können Sie folgende Aufgaben ausführen:

Verwalten der DBM-Benutzer

Hinterlegen von speziellen Benutzern

Konfiguration des Database Manager

Installations- und Registrierungsmanagement

Konfiguration von Datenbankinstanzen

Einrichten eines Hot Standby-Systems

Funktionen für den Datenbankbetrieb

Sichern und Wiederherstellen von Datenbankinstanzen

Anzeigen von Datenbankinformationen

Analysieren der Datenbankinstanz

Zugriff auf die Datenbankinstanz

Anmelden an das Betriebssystem

Ausführen des liveCache-Initialisierungsskripts

Liste der DBM-Kommandos erstellen


Verwalten der DBM-Benutzer (MaxDB: Database Manager CLI)

Verwalten der DBM-Benutzer

Verwendung

Der Database Manager CLI bietet Ihnen eine Anzahl von DBM-Kommandos, mit denen Sie sich Daten von DBM-Benutzern anzeigen lassen, neue DBM-Benutzer anlegen, Daten von DBM-Benutzern ändern und DBM-Benutzer löschen können.

Voraussetzungen

Sie haben die Serverberechtigung UserMgm.

Übersicht der Kommandos zum Verwalten der DBM-Benutzer


Übersicht der DBM-Kommandos zum Verwalten der DBM-Benutzer (MaxDB: Database Manager CLI)

Übersicht der DBM-Kommandos zum Verwalten der DBM-Benutzer

Ändern der DBM-Benutzerdaten | user_put
Anlegen von DBM-Benutzern | user_create
Anzeigen der Serverberechtigungen | user_getrights
Anzeigen der Benutzerdaten | user_get
Liste der DBM-Benutzer | user_getall
Löschen von DBM-Benutzern | user_delete


Ändern der DBM-Benutzerdaten (MaxDB: Database Manager CLI)

Ändern der DBM-Benutzerdaten

Verwendung

Sie können die Benutzerdaten des unter <user_name>angegebenen DBM-Benutzers ändern.

Die neuen Werte werden mittels <property>=<value> zugewiesen.

Für <property> können Sie alle Berechtigungen eines DBM-Benutzers angeben.

Für die Berechtigung SERVERRIGHTS können Sie mehrere Werte angeben, die durch Kommas voneinander zu trennen sind. Setzen Sie ein Pluszeichen vor das Recht, um es zu vergeben, und ein Minuszeichen, um es zu entziehen. Für die möglichen Werte siehe: Serverberechtigungen.

Das Kennwort des SYSDBA-Benutzers (spezieller DBM-Benutzer) ist nicht im Database Manager änderbar.

Voraussetzungen

Sie haben die Serverberechtigung UserMgm.

Wenn Sie das Kennwort des ersten DBM-Benutzers ändern wollen, muss sich die Datenbankinstanz im Betriebszustand OFFLINE befinden.

Wenn Sie das Kennwort eines normalen DBM-Benutzers ändern wollen, dann kann sich die Datenbankinstanz in einem beliebigen Betriebszustand befinden.

Syntax

user_put <user_name> <property>=<value>[, <property>=<value>, ...]

<property> ::= PASSWORD | COMMENT | DISABLED | SECONDPASSWORD | SERVERRIGHTS

Anmelden an den Database Manager CLI als Benutzer DBM mit Kennwort DBM, Herstellen der Verbindung zur Datenbankinstanz myDB, Zuweisen der Serverberechtigung zum Starten von Datenbankinstanzen und Entziehen der Serverberechtigung zum Stoppen von Datenbankinstanzen für den Benutzer mit dem Benutzernamen Meyer

dbmcli –u DBM,DBM –d myDB user_put meyer SERVERRIGHTS=+StartDB, -StopDB

OK

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat.


Anlegen von DBM-Benutzern (MaxDB: Database Manager CLI)

Anlegen von DBM-Benutzern

Verwendung

Sie erzeugen einen DBM-Benutzer mit dem in <user_name> und <password> angegebenen Benutzernamen und Benutzerkennwort.

Geben Sie als Benutzernamen nicht die Zeichenfolge SYSDBA an, da dies ein reserviertes SQL-Schlüsselwort ist.

Zu den Vorschriften für die Länge und erlaubten Zeichen bei Benutzernamen siehe auch: Database Manager-Benutzer (DBM-Benutzer).

Dieser Benutzer hat zunächst keine Serverberechtigungen. Sie müssen ihm diese explizit zuweisen (Ändern der DBM-Benutzerdaten).

Alternativ dazu können Sie auch einen <template_user> angeben, von dem dann alle Berechtigungen, jedoch nicht Benutzername und Benutzerkennwort, kopiert werden. (Siehe auch: Berechtigungen eines DBM-Benutzers)

Voraussetzungen

Sie haben die Serverberechtigung UserMgm.

Syntax

user_create <user_name>,<password> [<template_user>]

<user_name> | Name des anzulegenden DBM-Benutzers Dies kann ein Database Manager-Benutzer <dbm_user> im eigentlichen Sinne oder der Datenbanksystemadministrator <sysdba_user> sein (einziger Datenbankbenutzer mit den Berechtigungen eines DBM-Benutzers).
<password> | Benutzerkennwort
<template_user> | Benutzer, dessen Berechtigungen übernommen werden sollen

Anmelden an den Database Manager CLI als Benutzer DBM mit Kennwort DBM, Herstellen der Verbindung zur Datenbankinstanz myDB, Anlegen des DBM-Benutzers MEYER mit dem Kennwort secret und den Berechtigungen des Benutzers DBM

dbmcli –u DBM,DBM –d myDB user_create Meyer,secret DBM

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat


Anzeigen der Serverberechtigungen (MaxDB: Database Manager CLI)

Anzeigen der Serverberechtigungen

Verwendung

Sie lassen sich die Liste der Serverberechtigungen des unter <user_name> angegebenen Benutzers anzeigen.

Voraussetzungen

Sie haben die Serverberechtigung UserMgm.

Syntax

user_getrights <user_name>

Beispiel

Antwort

OK<NL>
 UserMgm                 <flag>  User management
InstallMgm              <flag>  Install management
SystemCmd               <flag>  System commands
FileFull                <flag>  File full access
FileRead                <flag>  File read access
DBFileRead              <flag>  Database file read access
AccessUtility           <flag>  Utility session access
BackupRestore           <flag>  Backup restore actions
BackupSave              <flag>  Backup save actions
ParamFull               <flag>  Parameter full access
ParamCheckWrite         <flag>  Parameter check-write access
ParamRead               <flag>  Parameter read access
AccessSQL               <flag>  SQL session access
ExecLoad                <flag>  Can execute load
LoadSysTab              <flag>  Can load system tables
DBStop                  <flag>  Can stop database
DBStart                 <flag>  Can start database
DBInfoRead              <flag>  Info functions access

Wenn unter <flag> ein Plus ausgegeben wird, ist die betreffende Serverberechtigung dem Benutzer zugeordnet. Wenn unter <flag> ein Minus ausgegeben wird, hat der Benutzer die entsprechende Serverberechtigung nicht.

Im Fehlerfall siehe Antwortformat.


Beispiel für das Kommando user_getrights (MaxDB: Database Manager CLI)

Beispiel für das Kommando user_getrights

Anmelden an den Database Manager CLI als Benutzer DBM mit Kennwort DBM, Aufbau der Verbindung zur Datenbankinstanz myDB und Anzeigen der Rechte des darin registrierten DBM-Benutzers mit dem Namen Meyer

dbmcli -u dbm,dbm -d myDB user_getrights Meyer

OK

DBInfoRead              +       Request status data
ExecLoad                +       Execute the LOAD program
SystemCmd               +       Execute operating system commands
UserMgm                 +       User management
FileFull                -       File access (read and write)
FileRead                -       File access (read only)
DBFileRead              +       Database file access (read only)
Backup                  +       Saving backups
InstallMgm              +       Installation management
LoadSysTab              +       Load the system tables
ParamCheckWrite         +       Parameter access (checked write)
ParamFull               +       Parameter access (read and write)
ParamRead               +       Parameter access (read only)
DBStart                 +       Start database instance
DBStop                  +       Stop database instance
Recovery                +       Restoring backups
AccessSQL               +       Access to SQL session
AccessUtility           +       Access to utility session

Ergebnis der Abfrage

Der Database-Manager-Benutzer DBM hat alle Serverberechtigungen für den Database Manager, mit Ausnahme von FileFull und FileRead.


Anzeigen der Benutzerdaten (MaxDB: Database Manager CLI)

Anzeigen der Benutzerdaten

Verwendung

Sie lassen sich die Daten des in <user_name>angegebenen Database Manager-Benutzers (DBM-Benutzers) anzeigen.

Der Database Manager gibt eine Liste der dem Benutzer zugeordneten Serverberechtigungen aus. Diese sind durch Kommas voneinander getrennt.

Voraussetzungen

Sie haben die Serverberechtigung UserMgm.

Syntax

user_get <user_name>

Anmelden an den Database Manager CLI als Benutzer DBM mit Kennwort DBM, Herstellen der Verbindung zur Datenbankinstanz myDB, Anzeigen der Daten des DBM-Benutzers mit dem Namen Meyer

dbmcli -u dbm,dbm -d myDB user_get meyer

OK
SERVERRIGHTS=DBInfoRead,ExecLoad,SystemCmd,UserMgm,DBFileRead,Backup,...
SECONDPASSWORD=NO
DISABLED=NO
COMMENT=

Antwort

OK<NL>
SERVERRIGHTS=<right_list><NL>
SECONDPASSWORD=[YES|NO]<NL>
DISABLED=[YES|NO]<NL>
COMMENT=<comment><NL>

Im Fehlerfall siehe Antwortformat.


Liste der DBM-Benutzer (MaxDB: Database Manager CLI)

Liste der DBM-Benutzer

Verwendung

Sie rufen die Benutzernamen aller Database Manager-Benutzer (DBM-Benutzer) ab, die für die aktuelle Datenbankinstanz registriert sind.

Voraussetzungen

Sie haben die Serverberechtigung UserMgm.

Syntax

user_getall

Anmelden an den Database Manager CLI als Benutzer DBM mit Kennwort DBM, Herstellen der Verbindung zur Datenbankinstanz myDB, Anzeigen aller DBM-Benutzer der Datenbankinstanz:

dbmcli -u dbm,dbm -d myDB user_getall

OK
dbm
DBA
domain

Antwort

OK<NL>
<userid><NL>
<userid><NL>
...

Im Fehlerfall siehe Antwortformat


Löschen von DBM-Benutzern (MaxDB: Database Manager CLI)

Löschen von DBM-Benutzern

Verwendung

Sie löschen den in <user_name> angegebenen Database Manager-Benutzer (DBM-Benutzer).

Der aktuell angemeldete DBM-Benutzer und der erste DBM-Benutzer, der beim Anlegen der Datenbankinstanz erzeugt wird, können nicht gelöscht werden.

Voraussetzungen

Sie haben die Serverberechtigung UserMgm.

Syntax

user_delete <user_name>

Anmelden an den Database Manager CLI als Benutzer DBM mit Kennwort DBM an die Datenbankinstanz myDB und Löschen des für diese Datenbankinstanz registrierten DBM-Benutzers Meyer

dbmcli -u dbm,dbm -d myDB user_delete Meyer

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat


Hinterlegen von speziellen Benutzern (MaxDB: Database Manager CLI)

Hinterlegen von speziellen Benutzern

Verwendung

Sie speichern spezielle Benutzer im Programm Database Manager. Dies können sowohl DBM-Benutzer als auch Datenbankbenutzer sein.

Sie legen mit diesem Kommando keine neuen Benutzer an, sie hinterlegen nur die Daten bereits vorhandener Benutzer im Database Manager.

Folgende Benutzer können hinterlegt werden:

<user_type> | Erklärung
DBM | erster DBM-Benutzer
DBA | Datenbankadministrator
DOMAIN | DOMAIN-Benutzer
SAP | spezieller Datenbankbenutzer im Zusammenhang mit SAP-Anwendungen

Im Normalfall sind diese Nutzer dem Database Manager bekannt. Bei Problemen mit der Ablage der Benutzerdaten oder nach einer Wiederherstellung der Datenbankinstanz kann diese Information im Database Manager verloren gehen. Sie verwenden dann dieses Kommando, um die Benutzer im Database Manager wieder zu hinterlegen.

Voraussetzungen

Sie haben die Serverberechtigung UserMgm.

Syntax

user_set user-type=<user_type> <usr>,<pwd>

<user_type> ::= DBM, DBA, DOMAIN, SAP

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat.


Konfiguration des Database Manager (MaxDB: Database Manager CLI)

Konfiguration des Database Manager

Verwendung

Für die Konfiguration des Database Manager stehen Ihnen folgende DBM-Kommandos zur Verfügung:

Anzeigen eines Konfigurationsparameters des Database Manager | dbm_configget
Ändern eines Konfigurationsparameters des Database Manager | dbm_configset

Voraussetzungen

Sie haben die Serverberechtigung InstallMgm.


Anzeigen eines Konfigurationsparameters des Database Manager (MaxDB: Database Manager CLI)

Anzeigen eines Konfigurationsparameters des Database Manager

Verwendung

Sie lassen sich den Wert des in <parameter_name>angegebenen Konfigurationsparameters des Database Manager anzeigen.

Die Parameterwerte liegen in der Konfigurationsdatei verschlüsselt vor. Geben Sie die Option -raw an, um den verschlüsselten Wert zu erhalten. Wenn Sie die Option nicht angeben, wird der Wert unverschlüsselt ausgegeben.

Beachten Sie, dass der Database Manager beim Parameternamen zwischen Groß- und Kleinschreibung unterscheidet.

Voraussetzungen

Sie haben die Serverberechtigung InstallMgm.

Syntax

dbm_configget [-raw] <parameter_name>

Anmelden an den Database Manager CLI als Benutzer DBM mit Kennwort DBM, Herstellen der Verbindung zur Datenbankinstanz myDB, Anzeigen des verschlüsselten Wertes VALUE mit der Option -raw

dbmcli -u DBM,DBM -d myDB dbm_configget –raw VALUE

OK

c92ee241db0bf5632bc029bcf98f186b440bb548c0f056eb

Antwort

OK<NL>
<parameter_value><NL>

Im Fehlerfall siehe Antwortformat.


Ändern eines Konfigurationsparameters des Database Manager (MaxDB: Database Manager CLI)

Ändern eines Konfigurationsparameters des Database Manager

Verwendung

Sie hinterlegen für den angegebenen Parameter <parameter_name> den spezifizierten Wert <value> in der Konfiguration des Database Manager. Der neue Wert des Parameters wird vom System registriert und beim nächsten Restart der Datenbankinstanz als gültiger Wert in die Konfigurationsdatei übernommen.

Mit der Option -raw geben Sie an, dass der Wert unverschlüsselt abgelegt werden soll.

Maximale Zeichenzahl für verschlüsselte Werte: 18
Ein längerer Wert wird vom Database Manager CLI auf 18 Zeichen gekürzt.

Maximal Zeichenzahl für unverschlüsselte Werte: 512

Voraussetzungen

Sie haben die Serverberechtigung InstallMgm.

Syntax

dbm_configset <parameter_name> <value>

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat.


Installations- und Registrierungsmanagement (MaxDB: Database Manager CLI)

Installations- und Registrierungsmanagement

Verwendung

Mit dem Registrierungsmanagement werden Informationen über die Versionen der Datenbanksoftware und über erzeugte Datenbankinstanzen verwaltet.

Zur Pflege der Installation/en der Datenbanksoftware und zum Registrieren und Löschen von Datenbankinstanzen stehen Ihnen DBM-Kommandos zur Verfügung. Viele dieser Kommandos müssen im normalen Datenbankbetrieb jedoch nicht explizit ausgeführt werden, sondern werden durch Installationsprogramme der Datenbanksoftware bzw. der Datenbankanwendung aufgerufen.

Voraussetzungen

Beachten Sie die für die jeweiligen DBM-Kommandos notwendigen Serverberechtigungen.

Übersicht der Kommandos für das Installations- und Registrierungsmanagement


Übersicht der DBM-Kommandos zum Installations- und Registrierung (MaxDB: Database Manager CLI)

Übersicht der DBM-Kommandos zum Installations- und Registrierungsmanagement

Aktivieren einer neuen Datenbankinstanz | db_activate
Aktualisieren der Registrierung einer Datenbankinstanz | db_reg
Ändern der Softwareversion der aktuellen Datenbankinstanz | db_reg -R
Anlegen einer Datenbankinstanz | db_create
Anzeigen der Variante des Datenbankkerns | db_speed
Anzeigen der Versionsinformationen | dbm_version
Anzeigen der versionsunabhängigen Verzeichnisse | dbm_getpath
Liste aller registrierten Datenbankinstanzen | db_enum
Liste aller registrierten Versionen der Datenbanksoftware | inst_enum
Löschen der aktuellen Datenbankinstanz | db_drop
Löschen der Registrierung einer Version der Datenbanksoftware | inst_unreg
Registrieren einer Version der Datenbanksoftware | inst_reg


Aktivieren einer neuen Datenbankinstanz (MaxDB: Database Manager CLI)

Aktivieren einer neuen Datenbankinstanz

Verwendung

Sie starten eine neu registrierte Datenbankinstanz zum ersten Mal und legen dabei den ersten Datenbankbenutzer, den Datenbanksystemadministrator SYSDBA, an.

Geben Sie als Benutzernamen nicht die Zeichenfolge SYSDBA an, da dies ein reserviertes SQL-Schlüsselwort ist.

Voraussetzungen

Sie haben die Serverberechtigung AccessAdmin.

Syntax

db_activate <sysdba_user>,<password>

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat.


Ändern der Softwareversion der aktuellen Datenbankinstanz (MaxDB: Database Manager CLI)

Ändern der Softwareversion der aktuellen Datenbankinstanz

Verwendung

Sie ändern die Version der Datenbanksoftware für die aktuelle Datenbankinstanz.

Sie können nur zwischen Versionen der Datenbanksoftware wechseln, die keine Migration der Datenbankinstanz erfordern.

Voraussetzungen

Die Datenbankinstanz befindet sich im Betriebszustand OFFLINE (Überführen in den Betriebszustand OFFLINE).

Sie haben den Database Manager CLI mit der Option -d aufgerufen.

Syntax

db_reg -R

Vorgehensweise

...

1. Beenden Sie alle Sitzungen mit dem DBM-Server, insbesondere auch alle Sitzungen im Database Manager GUI.

2. Führen Sie das Kommando db_reg -R aus.

3. Wenn Sie mit dem Database Manager CLI im Sitzungsmodus arbeiten, beenden Sie nun auch den Database Manager CLI.

Ergebnis

Bei jedem nachfolgenden Zugriff auf diese Datenbankinstanz verwendet das Programm Database Manager die neue Version der Datenbanksoftware.


Aktualisieren der Registrierung einer Datenbankinstanz (MaxDB: Database Manager CLI)

Aktualisieren der Registrierung einer Datenbankinstanz

Verwendung

Sie aktualisieren die Registrierung einer Datenbankinstanz. Unter Microsoft Windows wird der entsprechende Eintrag in der Registry aktualisiert, unter UNIX die Datei Databases.ini im Verzeichnis <independent_data_path>/config.

Voraussetzungen

· Sie haben die Serverberechtigung InstallMgm.

· Die Datenbankinstanz befindet sich im Betriebszustand OFFLINE.

· Sie haben den Database Manager CLI mit der Option -d aufgerufen.

Syntax

db_reg <database_name>

Die erste Registrierung einer Datenbankinstanz erfolgt implizit beim Anlegen einer Datenbankinstanz. Sie sollten das Kommando db_reg nur verwenden, wenn Sie vom Support dazu aufgefordert werden.


Anlegen einer Datenbankinstanz (MaxDB: Database Manager CLI)

Anlegen einer Datenbankinstanz

Verwendung

Sie legen auf einem lokalen oder entfernten Rechner eine neue Datenbankinstanz an. Dabei werden immer alle Kernvarianten (fast, quick und slow) erstellt.

Voraussetzungen

Sie haben die Rechte eines Betriebssystembenutzers für den Rechner, auf dem die Datenbankinstanz angelegt werden soll.

Für das Anlegen einer Datenbankinstanz auf einem entfernten Rechner unter Microsoft Windows müssen Sie zusätzlich Administrationsrechte für den Datenbankrechner haben sowie das Recht log on as batch job. Hinweise zur Verwaltung von Betriebssystembenutzern finden Sie in Ihrer Betriebssystemdokumentation.

Wenn auf dem Datenbankrechner mehrere Versionen der Datenbanksoftware zur Verfügung stehen, ist beim Registrieren der Datenbankinstanz der Pfad derjenigen Version anzugeben, der diese Datenbankinstanz zugeordnet werden soll. Verwenden Sie dazu beim Aufruf des Database Manager CLI noch die Option -R (Installationsverzeichnis der Datenbanksoftware).

Syntax

db_create [-a|-auto] <database_name> <dbm_user>,<dbm_user_password> [<os_user>,< os_user_password>]

-a | -auto | Wenn Sie diese Option verwenden, wird unter Microsoft Windows der Service-Eintrag Start-up-type im Control-Panel auf automatic gesetzt. Unter dem Betriebssystem UNIX wird dieser Parameter ignoriert.
database_name | Name der Datenbankinstanz, maximal 8 Zeichen lang
dbm_user | Database-Manager-Benutzer (DBM-Benutzer) Dieser wird beim ersten Schritt des Anlegens auf dem Datenbankrechner hinterlegt. Weitere Zugriffe auf die Datenbankinstanz sind nur unter Angabe dieses Benutzers möglich.
dbm_user_password | Kennwort des DBM-Benutzers
os_user | Betriebssystembenutzer Wenn Sie die Datenbankinstanz auf einem entfernten Rechner (remote) anlegen wollen, ist es erforderlich, auch den Betriebssystembenutzer dieses Rechners anzugeben. Wenn die Anmeldung an das Betriebssystem scheitert, dann ist auch das Anlegen der Datenbankinstanz nicht möglich.
os_user_password | Kennwort des Betriebssystembenutzers

Der Zugriff auf die neue Datenbankinstanz ist nachfolgend nur noch mit den unter <dbm_user>,<dbm_user_password> angegebenen Benutzerdaten möglich.

Beispiel

Unter Microsoft Windows:

Anmelden an den Database Manager CLI, Anlegen einer lokalen Datenbankinstanz mit dem Namen HOTELDB, Definieren des DBM-Bernutzers DAVID mit dem Kennwort BLUE:
dbmcli db_create HOTELDB DAVID,BLUE

Anmelden an den Database Manager CLI, Anlegen einer lokalen Datenbankinstanz mit dem Namen HOTELDB mit der unter dem Pfad C:\Program Files\SDB\V75 abgelegten Software, Definieren des DBM-Bernutzers DAVID mit dem Kennwort BLUE:

dbmcli -R "C:\Program Files\SDB\V75" db_create HOTELDB DAVID,BLUE

Anmelden an den Database Manager CLI, Anlegen einer Datenbankinstanz mit dem Namen HOTELDBauf dem entfernten Rechner GENUA, Definieren des DBM-Bernutzers DAVID mit dem Kennwort BLUE, Anmelden als Betriebssystembenutzer ANNA mit dem Kennwort BLACK an den entfernten Rechner:
dbmcli –n GENUA db_create HOTELDB DAVID,BLUE ANNA,BLACK

Unter UNIX:

Anmelden an den Database Manager CLI, Anlegen einer lokalen Datenbankinstanz mit dem Namen HOTELDB, Definieren des DBM-Bernutzers DAVID mit dem Kennwort BLUE, Vermeiden der Identifikation als Betriebssystembenutzer mit Hilfe der Option –s

dbmcli -s db_create HOTELDB DAVID,BLUE

Antwort

Nach erfolgreicher Ausführung des Kommandos wird eine OK-Meldung ausgegeben.

Im Fehlerfall siehe Antwortformat

Beispiel für das Anlegen einer Datenbankinstanz

Beispiel für das Anlegen einer Datebankinstanz vom Typ Archive


Beispiel für das Kommando db_create (MaxDB: Database Manager CLI)

Beispiel für das Kommando db_create

Zum Anlegen einer neuen Datenbankinstanz mit Hilfe des Database Manager CLI sind nur einige wenige DBMCLI-Kommandos notwendig.

Führen Sie zuerst das Kommando db_create aus und definieren Sie den ersten Database Manager-Benutzer (DBM-Benutzer):

dbmcli db_create <database_name> <dbm_user>,<dbm_user_password>

· Wenn Sie zwischen mehreren Versionen der Datenbanksoftware wählen können, spezifizieren Sie ihre Wahl durch die zusätzliche Angabe der Option -R:
dbmcli -R <dependent_path> db_create <database_name> <dbm_user>,<dbm_user_password>.

· Wenn Sie eine neue Datenbankinstanz auf einem entfernten Rechner installieren wollen, geben Sie zusätzlich die Option -n an. Außerdem müssen sie sich an das Betriebssystem dieses Rechners anmelden:

dbmcli -n <database_server> db_create <database_name> <dbm_user>,<dbm_user_password> <os_user>,<os_user_password>

Für die weiteren notwendigen Schritte zum Anlegen der Datenbankinstanz verwenden Sie ein DBMCLI-Skript:

dbmcli -d <database_name> -u <dbm_user>,<dbm_user_password> -i <script_file>

Beispiel für ein Skript:

param_startsession
param_init
param_put MAXUSERTASKS 5
param_checkall
param_commitsession
param_addvolume 1 LOG LOG_001 F 2000
param_addvolume 1 DATA DAT_001 F 10000
db_admin
db_activate <sysdba>,<password>
load_systab -ud <domain_password>

Passen Sie die Werte für die Datenbankparameter Ihren Erfordernissen an.


Beispiel für das Anlegen einer Datenbankinstanz vom Typ Archive (MaxDB: Database Manager CLI)

Beispiel für das Anlegen einer Datenbankinstanz vom Typ Archive

Um eine Datenbankinstanz vom Typ Archive mit einem Log-, einem normalen Data-Volume und einem Archive-Data-Volume anzulegen, geben Sie im Database Manager CLI folgende Kommandos ein:

dbmcli db_create HOTELDB DBM,DBM

dbmcli –d HOTELDB –u DBM,DBM

param_startsession

param_init ARCHIVE

param_put MAXUSERTASKS 5

param_checkall

param_commitsession

param_addvolume 1 LOG LOG_001 F 2000

param_addvolume 1 DATA DAT_001 F 10000

param_addvolume 2 DATA ARCH_001 A 10000

db_admin

db_activate DBA,DBA

load_systab -ud DBA

Passen Sie die Werte für die Datenbankparameter Ihren Erfordernissen an. Wenn Sie alle Parameter korrekt gesetzt haben, erhalten Sie nach dem letzten Schritt die Meldung Installation successfully finished.


Anzeigen der Variante des Datenbankkerns (MaxDB: Database Manager CLI)

Anzeigen der Variante des Datenbankkerns

Verwendung

Sie lassen sich die Variante des Datenbankkerns der aktuellen Datenbankinstanz anzeigen.

Voraussetzungen

Sie haben die Serverberechtigung DBInfoRead.

Die Datenbankinstanz befindet sich im Betriebszustand ONLINE oder ADMIN.

Syntax

db_speed

Antwort

OK<NL>
Speed<NL>
(FAST|QUICK|SLOW|UNKNOWN|)

FAST | Schnellste Variante des Datenbankkerns, es erfolgen nur minimale Protokollierungen und Laufzeitprüfungen
QUICK | Variante des Datenbankkerns, bei der diverse Protokollierungen und Laufzeitprüfungen erfolgen.
SLOW | Variante des Datenbankkerns, bei der umfangreiche Protokollierungen und Laufzeitprüfungen erfolgen.
UNKNOWN | Die Kernvariante konnte nicht ermittelt werden.

Wenn sich die Datenbankinstanz im Betriebszustand OFFLINE befindet, erhalten Sie als Antwort auf dieses Kommando eine Fehlermeldung.

Siehe auch: Antwortformat


Anzeigen der Versionsinformationen (MaxDB: Database Manager CLI)

Anzeigen der Versionsinformationen

Verwendung

Sie lassen sich die Versionsinformationen des Database Manager anzeigen. Da die Version des DBM-Server immer mit der Version der Datenbanksoftware identisch ist, können Sie so auch die Version der Datenbanksoftware ermitteln.

Voraussetzungen

Für die Ausführung dieses DBM-Kommandos ist keine Anmeldung an den Database Manager erforderlich.

Sie benötigen auch keine Serverberechtigung.

Syntax

dbm_version

Antwort

OK
VERSION    = <version><NL>
BUILD      = <build_number><NL>
OS         = <os><NL>
INSTROOT   = <dependent_path><NL>
LOGON      = <logon_state><NL>
CODE       = <code><NL>
SWAP       = <swap><NL>
UNICODE    = (YES|NO)<NL>
INSTANCE   = (OLTP|LVC|CS|BW|unknown)<NL>
SYSNAME    = <os><NL>

Werte der Antwortzeilen

VERSION | Versionsnummer des Database Manager
BUILD | Identifikationsnummer des Database Manager
OS | Name des Betriebssystems
INSTROOT | Installationsverzeichnis der versionsabhängigen Komponenten
LOGON | Anzeige ob eine Anmeldung an das Betriebssystem erfolgt ist: True angemeldet False nicht angemeldet
CODE | Ausgabe des im Database Manager verwendeten Zeichensatzes: ASCII oder EBCDIC
SWAP | Ausgabe des im Database Manager verwendeten Swap-Typs (interne Darstellung numerischer Werte): no hihi-hilo-lohi-lolo full lolo-lohi-hilo-hihi half lohi-lolo-hihi-hilo
UNICODE | Konfiguration der aktuellen Datenbankinstanz als UNICODE-Datenbank
INSTANCE | Datenbankinstanztyp
SYSNAME | Name des Betriebssystems

Im Fehlerfall siehe Antwortformat.


Anzeigen der versionsunabhängigen Verzeichnisse (MaxDB: Database Manager CLI)

Anzeigen der versionsunabhängigen Verzeichnisse

Verwendung

Sie lassen sich die auf dem Datenbankrechner konfigurierten versionsunabhängigen Verzeichnisse anzeigen.
Wenn auf Ihrem Rechner mehr als eine Version der Datenbanksoftware installiert sind, werden in diesen Verzeichnissen versionsunabhängige Daten oder Programme abgelegt bzw. gesucht.

Voraussetzungen

Für die Ausführung dieses DBM-Kommandos ist keine Anmeldung an den Database Manager erforderlich. Sie benötigen auch keine Serverberechtigung.

Syntax

dbm_getpath IndepDataPath | IndepProgPath

Siehe auch Variablen


Liste aller registrierten Datenbankinstanzen (MaxDB: Database Manager CLI)

Liste aller registrierten Datenbankinstanzen

Verwendung

Sie rufen die Liste aller auf dem Rechner registrierten Datenbankinstanzen ab.

Wenn Sie die Option [-s] angeben, werden auch die zu jeder Version der Datenbanksoftware gehörenden Service-Datenbankinstanzen aufgelistet (Zugriff über Servicesitzung).

Voraussetzungen

Für die Ausführung dieses DBM-Kommandos ist keine Anmeldung an den Database Manager erforderlich.

Es ist auch keine Serverberechtigung erforderlich.

Syntax

db_enum [-s]

Antwort

Sie erhalten eine OK-Meldung. Nachfolgend werden die registrierten Datenbankinstanzen in tabellarischer Form aufgeführt.

OK<NL>
<database_name><TAB><dependent_path><TAB><database_version><TAB><kernel_version><TAB><operational_state><NL>
<database_name><TAB><dependent_path><TAB><database_version><TAB><kernel_version><TAB><operational_state><NL>
...

Werte der Antwort

<database_name> | Name der Datenbankinstanz
<dependent_path> | Verzeichnis, das die von der Datenbankversion abhängige Server-Software enthält
<database_version> | Version der Datenbanksoftware
<kernel_version> | Kernvariante
<operational_state> | Betriebszustand der Datenbankinstanz

Beispiel

Anmelden an den Database Manager CLI mit der Option –R und dem Installationspfad der Softwareversion 7.5 als Benutzer DBM und dem Kennwort DBM, Ausführen des DBM-Kommandos zum Anzeigen der Liste aller auf dem Rechner GENUA unter der angegebenen Version registrierten Datenbankinstanzen:

dbmcli -R "C:\Program Files\SDB\7500" –n GENUA db_enum

OK
HOTELDB C:\Program Files\SDB\7500 7.5.0.5 fast online
HOTELDB C:\Program Files\SDB\7500 7.5.0.5 quick offline
HOTELDB C:\Program Files\SDB\7500 7.5.0.5 slow offline


Liste aller registrierten Versionen der Datenbanksoftware (MaxDB: Database Manager CLI)

Liste aller registrierten Versionen der Datenbanksoftware

Verwendung

Sie fragen die Liste aller auf dem Datenbankrechner registrierten Versionen der Datenbanksoftware ab.

Voraussetzungen

Für die Ausführung dieses DBM-Kommandos ist keine Anmeldung an den Database Manager erforderlich.

Es ist auch keine Serverberechtigung erforderlich.

Syntax

inst_enum

Antwort

Sie erhalten eine OK-Meldung. Nachfolgend werden die registrierten Versionen <version> mit ihren Installationspfaden <dependent_path> in tabellarischer Form ausgegeben.

OK<NL>
<version><TAB><dependent_path><NL>
<version><TAB><dependent_path><NL>
...

OK
7.4.0.3 "C:\Program Files\SAPDB\depend"
7.5.0.3 "C:\Program Files\SDB\7500"


Löschen der aktuellen Datenbankinstanz (MaxDB: Database Manager CLI)

Löschen der aktuellen Datenbankinstanz

Verwendung

Mit diesem Kommando löschen Sie eine Datenbankinstanz.

Wenn Sie zu diesem Kommando die Option WITHOUTFILES angeben, bleiben die Datenbankdateien auf dem DBM-Server erhalten. Ohne Angabe dieser Option werden auch die Dateien der Datenbankinstanz gelöscht.

Voraussetzungen

Die Datenbankinstanz befindet sich im Betriebszustand OFFLINE (Überführen in den Betriebszustand OFFLINE).

Sie haben die Serverberechtigung InstallMgm.

Syntax

db_drop [WITHOUTFILES]

Beispiel

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat.


Beispiel für das Kommando db_drop (MaxDB: Database Manager CLI)

Beispiel für das Kommando db_drop

1. Stoppen der Datenbankinstanz:

dbmcli –d <database_name> -u <user_name>,<password> db_stop

oder

dbmcli -d <database_name> -u <user_name>,<password> db_offline

2. Löschen der aktuellen Datenbankinstanz vom Datenbankrechner:

dbmcli -d <database_ name> -u <user_name>,<password> db_drop

Die Dateien der Datenbankinstanz werden gelöscht.


Löschen der Registrierung einer Version der Datenbanksoftware (MaxDB: Database Manager CLI)

Löschen der Registrierung einer Version der Datenbanksoftware

Verwendung

Sie löschen den Versionseintrag und den Pfad, unter dem die von der Datenbankversion abhängige Server-Software im System abgelegt ist, aus der Liste der registrierten Versionen der Datenbanksoftware. Datenbanksoftware, die diese Information benötigt, ist danach nicht mehr lauffähig.

Als Parameter ist der Installationspfad <dependent_path> anzugeben.

Voraussetzung

Sie haben den Database Manager CLI mit der Option -R aufgerufen.

Sie sind an das Betriebssystem angemeldet (Anmelden an das Betriebssystem).

Sie benötigen keine Serverberechtigung.

Syntax

inst_unreg <dependent_path>

Anmelden an den Database Manager CLI mit Benutzer DBM und Kennwort DBM, Herstellen der Verbindung zur Datenbankinstanz myDB,

Löschen der Registrierung der Softwareversion 7.5 (Default-Installationspfad)

dbmcli –u DBM,DBM –d myDB instunreg C:Program Files\SDB\7500

oder

Löschen der Registrierung der Softwareversion 7.4 (Default-Installationspfad)

dbmcli –u DBM,DBM –d myDB instunreg C:Program Files\SAPDB\depend

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat.


Registrieren einer Version der Datenbanksoftware (MaxDB: Database Manager CLI)

Registrieren einer Version der Datenbanksoftware

Verwendung

Sie tragen die Softwareversion des Database Manager aus der aktuellen Datenbankinstallation in die Liste der registrierten Versionen der Datenbanksoftware ein.

Die Registrierung erfolgt einmalig bei der Installation der entsprechenden Datenbanksoftware. Sie ist die Voraussetzung für das korrekte Funktionieren dieser Software.

Voraussetzung

Sie sind an das Betriebssystem angemeldet (Anmelden an das Betriebssystem).

Sie haben das Kommando inst_enum ausgeführt, um alle registrierten Versionen der Datenbanksoftware mit ihrem eventuellen Schlüssel anzuzeigen.

Syntax

inst_reg [-k <key>][-c]

Optionen

Die Angabe eines eindeutigen Schlüssels -k <key> ist dann erforderlich, wenn sie die Datenbanksoftware mehrfach in der gleichen Version installiert haben.

Wenn auf einem Rechner nur die Client-Programme der Datenbanksoftware installiert wurden, registrieren Sie den Client durch Angabe der Option -c.

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat.


Konfiguration von Datenbankinstanzen (MaxDB: Database Manager CLI)

Konfiguration von Datenbankinstanzen

Verwendung

Die Datenbankparameter sind in der Beschreibungsdatei und in der Parameterdatei abgelegt.

In der Beschreibungsdatei sind die Vorschlagswerte, Wertebereiche, Berechnungsvorschriften und Eigenschaften der Parameter hinterlegt, die vom Database Manager zur korrekten Bearbeitung der Parameter benötigt werden.

Die Beschreibungsdatei und eine mit Standardwerten belegte Parameterdatei werden mit der Datenbankinstanz installiert. Mit den Kommandos für die Konfiguration von Datenbankinstanzen ändern Sie die Einträge in der Parameterdatei der Datenbankinstanz.

Voraussetzungen

Einige der Kommandos zur Konfiguration setzen eine Parametersitzung voraus.

Beachten Sie die für die jeweiligen DBM-Kommandos notwendigen Serverberechtigungen.

Vorgehensweise

Geben Sie beim Anmelden an den Database Manager mit Hilfe der Option -d den Namen der Datenbankinstanz an, deren Parameter sie bearbeiten wollen. Bei Eingabe der param_*-Kommandos wird in der zu dieser Datenbankinstanz gehörigen Parameterdatei nach dem Wert der jeweiligen Parameter gesucht.

Wenn Sie keinen Namen oder den Namen einer nicht existenten Datenbankinstanz angeben, wird der gewünschte Parameter nicht gefunden.

Übersicht der Kommandos für die Konfiguration von Datenbankinstanzen


Übersicht der DBM-Kommandos für die Konfiguration von Datenbanki (MaxDB: Database Manager CLI)

Übersicht der DBM-Kommandos für die Konfiguration von Datenbankinstanzen

Abbrechen einer Parametersitzung | param_abortsession
Ändern des Wertes eines Datenbankparameters | param_put
Ändern von Volume-Parametern | param_addvolume
Anzeigen aller Daten eines Datenbankparameters | param_getfull
Anzeigen aller Eigenschaften eines Datenbankparameters | param_getproperties
Anzeigen aller Parameter der aktuellen Datenbank-Parameterdatei | param_directgetall
Anzeigen der Daten aller Datenbankparameter | param_extgetall
Anzeigen der Daten aller Volume-Parameter | param_getvolsall
Anzeigen der Daten eines einzelnen Volume-Parameters | para_getvolume
Anzeigen des aktuellen Wertes eines Datenbankparameters | param_getvalue
Anzeigen des Datentyps eines Datenbankparameters | param_gettype
Anzeigen des hinterlegten Erläuterungstextes | param_getexplain
Anzeigen des hinterlegten Hilfetextes | param_gethelp
Anzeigen des Systemvorschlags (Defaultwert) | param_getdefault
Anzeigen eines Wertes aus der Datenbank-Parameterdatei | param_directget
Anzeigen einzelner Daten eines Datenbankparameters | param_extget
Bestätigen von Änderungen der Datenbank-Parameterdatei | param_commitsession
Blättern in der Datenbankparameter-Historie | param_gethistorynext
Direktes Ändern eines Wertes in der Datenbank-Parameterdatei | param_directput
Eröffnen einer Parametersitzung | param_startsession
Hinzufügen eines Volume | db_addvolume
Initialisieren der Datenbankparameter für eine neue Datenbankinstanz | param_init
Kopieren einer Datenbank-Parameterdatei | param_copy
Korrigieren von Datenbankparametern | param_putconfirm
Liste der vorhandenen Parameterdateien | param_versions
Löschen der Datenbank-Parameterdatei | param_rmfile
Löschen eines Datenbankparameters | param_directdel
Löschen von Volume-Parametern | param_delvolume
Öffnen der Datenbankparameter-Historie | param_gethistory
Prüfen aller Datenbankparameter | param_checkall
Zurücksetzen der Parameterdatei auf eine vorherige Version | param_restore

Die Kommandos der Klasse param_direct* greifen direkt auf die Parameterdatei der Datenbankinstanz zu. Diese Kommandos setzen keine Parametersitzung voraus und sind daher auch nicht ROLLBACK-fähig.


Abbrechen einer Parametersitzung (MaxDB: Database Manager CLI)

Abbrechen einer Parametersitzung

Verwendung

Sie brechen die Parametersitzung ab. Alle in dieser Sitzung durchgeführten Änderungen und Korrekturen von Datenbankparametern werden verworfen. Die internen Datenstrukturen, in denen die Inhalte der Beschreibungsdatei und der Parameterdatei abgelegt wurden, werden aufgelöst (siehe auch: Konfiguration von Datenbankinstanzen).

Wenn Sie Werte ohne Parametersitzung, also direkt in der Parameterdatei ändern (Direktes Ändern mit param_directput und Löschen mit param_directdel) dann werden die Änderungen sofort in die Parameterdatei geschrieben, d.h. sie können nicht verworfen werden.

Voraussetzungen

Sie haben eine Parametersitzung eröffnet.

Sie haben die Serverberechtigung ParamRead.

Syntax

param_abortsession

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat


Ändern des Wertes eines Datenbankparameters (MaxDB: Database Manager CLI)

Ändern des Wertes eines Datenbankparameters

Verwendung

Mit diesem Kommando ändern Sie den Wert eines Datenbankparameters in den internen Datenstrukturen und legen ihn im Database Manager ab.

Im Unterschied zur Funktion Direktes Ändern eines Wertes in der Datenbank-Parameterdatei wird der Parameter noch nicht in die Parameterdatei geschrieben und kann noch verworfen werden, indem Sie die Parameteränderungen nicht bestätigen oder die Parametersitzung abbrechen.

Die Änderung des Parameters wird abgelehnt, wenn der eingegebene Wert oder die Änderung aufgrund der Eigenschaften des Parameters nicht zulässig sind.

Nach dem Ändern des Datenbankparameters müssen Sie noch das Kommando zum Prüfen aller Datenbankparameter ausführen,

Voraussetzungen

Sie haben eine Parametersitzung eröffnet.

Sie haben die Serverberechtigung ParamCheckWrite.

Syntax

param_put <parameter_name> <user_value>

Beispiel

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat.


Beispiel für das Kommando param_put (MaxDB: Database Manager CLI)

Beispiel für das Kommando param_put

Sie ändern den Wert des Datenbankparameters MAXUSERTASKS auf den Wert 5.

param_startsession
param_init
param_put MAXUSERTASKS 5
param_checkall
param_commitsession


Ändern von Volume-Parametern (MaxDB: Database Manager CLI)

Ändern von Volume-Parametern

Verwendung

Verwenden Sie das hier beschriebene Kommando param_addvolume nur beim Anlegen einer Datenbankinstanz, beim Anlegen eines ersten Spiegel-Volume für eine Datenbankinstanz oder nach Aufforderung durch den Support.

Inkonsistenzen in den Volume-Einstellungen können zur Beschädigung der Datenbankinstanz führen.

Erweitern Sie eine bestehende Datenbankinstanz mit dem Kommando db_addvolume (Hinzufügen eines Volume).

Verwenden Sie db_addvolume für das Anlegen von Spiegel-Volumes nur dann, wenn die Datenbankinstanz bereits gespiegelt wird, also bereits Spiegel-Volumes vorhanden sind.

Zum Spiegeln des Log-Volume siehe auch: Log-Modus

Mit diesem Kommando tragen Sie Volume-Parameter in die Parameterdatei der Datenbankinstanz ein. Der neue Wert des Parameters wird vom System registriert und beim nächsten Restart der Datenbankinstanz als gültiger Wert in die Parameterdatei übernommen.

Das Ändern von Volume-Parametern erfolgt in zwei Schritten:

...

1. Änderung der Einträge zu den Parametern in der Parameterdatei

2. Übermittlung der entsprechenden Informationen an den Datenbankkern mit einem administrativen Kommando (Siehe: Ausführen einer Datenbankanweisung)

Wenn dieses Kommando fehlschlägt, müssen Sie auch die Einträge in der Parameterdatei der Datenbankinstanz wieder entfernen.

Es wird nicht geprüft, ob für das Hinzufügen des Volume noch eine ausreichende Plattenkapazität vorhanden ist.

Wenn Sie mit diesem Kommando ein Spiegel-Volume anlegen, dann müssen Sie anschließend noch den allgemeinen Datenbankparameter LOG_MIRRORED auf den Wert YES setzen.
Zum Ändern des Datenbankparameters siehe: Ändern des Wertes eines Datenbankparameters

Volumes vom Typ Archive können nachträglich nicht mehr vergrößert werden. Wählen Sie deshalb für die Größe solcher Volumes den maximalen Wert, den das Speichersystem erlaubt.

Voraussetzungen

Sie haben die Serverberechtigung ParamFull.

Syntax

param_addvolume <vol_no> <vol_mode> <vol_name> <volt_ype> <vol_size>

Optionen

<vol_no> | Nummer des Volume
<vol_mode> | Art des Volume
<vol_name> | Name des Volume / der Datei des Volume
<vol_type> | Typ des Volume
<vol_size> | Größe des Volume in Seiten
<vol_mode>
DATA | Data-Volume, die Nummer des Data-Volume wird beim Anlegen des Volume als vierstellige Zahl mit vorangestellten Nullen vom System vergeben
LOG | Log-Volume, die Nummer des Log-Volume wird beim Anlegen des Volume als dreistellige Zahl mit vorangestellten Nullen vom System vergeben
MLOG | Gespiegeltes Log-Volume
<vol_type>
F | Datei
L | Link
R | Raw Device
A | Archive

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat.

Beispiel

Um das erste Data-Volume vom Typ Datei zu definieren, führen Sie folgendes Kommando aus:

param_addvolume 1 DATA DAT_001 F 10000


Anzeigen aller Daten eines Datenbankparameters (MaxDB: Database Manager CLI)

Anzeigen aller Daten eines Datenbankparameters

Verwendung

Sie erfragen sämtliche für den Datenbankparameter <parameter_name> hinterlegten Daten.

Voraussetzungen

Sie haben die Serverberechtigung ParamRead.

Syntax

param_getfull <parameter_name>

Beispiel

Antwort

Sie erhalten eine OK-Meldung und nachfolgend alle Daten zu diesem Parameter.

OK<NL>
<type><NL>
<default><NL>
<value><NL>
<property> <value><NL>
<property> <value><NL>
...
HELP
<help_line><NL>
<help_line><NL>
...
EXPLAIN
<explain_line><NL>
<explain_line><NL>
...

Werte der Antwort

<type> | Datentyp des Parameters
<default> | Vorschlagswert des Systems
<value> | Aktueller Wert, wird zum Zeitpunkt des Starts der Sitzung aus der Parameterdatei übernommen
<property> | Eigenschaft des Parameters
<help_line> | Hilfetext
<explain_line> | Erläuterungstext

Im Fehlerfall siehe Antwortformat.


Beispiel für das Kommando param_getfull (MaxDB: Database Manager CLI)

Beispiel für das Kommando param_getfull

Anzeigen der Daten des Parameters RUNDIRECTORY

dbmcli -d DB -u dbm,dbm param_getfull RUNDIRECTORY

OK
c64
d:\sapdb\usr\wrk\DB
CHANGE YES
INTERN NO
MANDATORY YES
CLEAR YES
DYNAMIC NO
CASESENSITIVE YES
OVERRIDE NO
DEVSPACE NO
MODIFY YES
GROUP GENERAL
DISPLAYNAME
VALUESET
MAX
MIN
INSTANCES
LASTKNOWNGOOD d:\sapdb\usr\wrk\DB
HELP
Path where context and diagnosis information is stored
EXPLAIN
Path where context and diagnosis information is stored for this database instance.
(char(64))


Anzeigen aller Eigenschaften eines Datenbankparameters (MaxDB: Database Manager CLI)

Anzeigen aller Eigenschaften eines Datenbankparameters

Verwendung

Sie fragen alle Eigenschaften des in <parameter_name>angegebenen Datenbankparameters ab. Alle Eigenschaften <property> werden mit ihren Werten <value> aufgelistet.

Voraussetzungen

Sie haben die Serverberechtigung ParamRead.

Syntax

param_getproperties <parameter_name>

Antwort

OK<NL>
<property> <value><NL>
<property> <value><NL>
...

Im Fehlerfall siehe Antwortformat.


Anzeigen aller Parameter der aktuellen Datenbank-Parameterdatei (MaxDB: Database Manager CLI)

Anzeigen aller Parameter der aktuellen Datenbank-Parameterdatei

Verwendung

Sie lassen sich alle Datenbankparameter der aktuellen Datenbankinstanz mit ihren Werten anzeigen. Pro Zeile wird je ein Parameter mit Namen <parameter_name> und Wert <value> ausgegeben.

Das Kommando greift direkt auf die Parameterdatei der Datenbankinstanz zu. Es setzt keine Parametersitzung voraus und ist daher auch nicht ROLLBACK-fähig.

Voraussetzungen

Sie haben die Serverberechtigung ParamRead.

Syntax

param_directgetall

Antwort

OK<NL>
 <parameter_name> <value><NL>
<parameter_name> <value><NL>
...

Im Fehlerfall siehe Antwortformat.


Anzeigen der Daten aller Datenbankparameter (MaxDB: Database Manager CLI)

Anzeigen der Daten aller Datenbankparameter

Verwendung

Sie fragen alle Datenbankparameter aus der Beschreibungsdatei und der Parameterdatei der Datenbankinstanz ab (siehe auch: Konfiguration von Datenbankinstanzen).

Bei einer erfolgreichen Antwort werden der Name jedes Datenbankparameters <parameter_name>, sein Datentyp <type> und sein aktueller Wert <value> ausgegeben. Dies ist der Wert, der zum Zeitpunkt des Beginns der Sitzung aus der Parameterdatei übernommen wird. Wenn der Parameter darin nicht vorhanden ist, wird der Vorschlagswert aus der Beschreibungsdatei ausgegeben.

Voraussetzungen

Sie haben die Serverberechtigung ParamRead.

Syntax

param_extgetall [<property>=<value>]

Option <property>

Durch die Angabe von Eigenschaften können Sie die Anzeige einschränken. Jede Eigenschaft kann jedoch nur einmal spezifiziert werden. Bei mehrfacher Eingabe derselben Eigenschaft wird der Wert der letzten Eingabe verwendet.

Ein Parameter muss bei allen angegebenen Eigenschaften dem spezifizierten Wert entsprechen (UND-Verknüpfung). Werden zu einer Eigenschaft mehrere durch Kommas getrennte Werte angegeben, dann ist dies eine ODER-Verknüpfung.

Eigenschaft | Mögliche Werte
CASESENSITIVE | YES | NO
CHANGE | YES | NO
CLEAR | YES | NO
VOLUME | YES | NO
DISPLAYNAME | Zeichenkette (auch mit Leerzeichen), die anstelle des Parameternamens im Database Manager GUI angezeigt wird
DYNAMIC | YES | NO
GROUP | GENERAL | EXTENDED | SUPPORT | NO
INFO | YES | NO
INSTANCES | Datenbankinstanztyp, für den der Parameter relevant ist: LVC | OLTP | ARCHIVE Keine Angabe: der Parameter ist allgemein gültig
INTERN | YES | NO
MANDATORY | YES | NO
MAX | Maximaler Wert für einen Parameter
MIN | Minimaler Wert für einen Parameter
MODIFY | YES | NO
OVERRIDE | YES | NO | HIGHER
VALUESET | Zugelassene Wertemenge für einen Parameter

Anmelden an den Database Manager CLI als Benutzer DBM mit Kennwort DBM, Herstellen der Verbindung zur Datenbankinstanz myDB, Anzeigen alle Parameter, die änderbar und der Gruppe General - Allgemeine Datenbankparameter zugeordnet sind

dbmcli –u DBM,DBM –d myDB param_getextall CHANGE=YES GROUP=GENERAL

Anmelden an den Database Manager CLI als Benutzer DBM mit Kennwort DBM, Herstellen der Verbindung zur Datenbankinstanz myDB, Anzeigen alle Parameter, die der Gruppe General - Allgemeine Datenbankparameter oder der Gruppe Extended - Spezielle Datenbankparameter zugeordnet sind.

dbmcli –u DBM,DBM –d myDB param_getextall GROUP=GENERAL,EXTENDED

Antwort

OK<NL>
< parameter_name > <type> <value><NL>
< parameter_name > <type> <value><NL>
...

Im Fehlerfall siehe Antwortformat.


Anzeigen der Daten aller Volume-Parameter (MaxDB: Database Manager CLI)

Anzeigen der Daten aller Volume-Parameter

Verwendung

Sie lassen sich die Daten aller Volumes einer Datenbankinstanz anzeigen.

Voraussetzungen

Sie haben die Serverberechtigung ParamRead.

Syntax

param_getvolsall [<vol_mode>]

Optionen

<vol_mode>

Art des Volume
Option <vol_mode>
DATA | Data-Volume, die Nummer des Data-Volume wird beim Anlegen des Volume als vierstellige Zahl mit vorangestellten Nullen vom System vergeben
LOG | Log-Volume, die Nummer des Log- Volume wird beim Anlegen des Volume als dreistellige Zahl mit vorangestellten Nullen vom System vergeben
MLOG | Gespiegeltes Log-Volume (siehe auch:Log-Modus)

Anmelden an den Database Manager CLI als Benutzer DBM mit Kennwort DBM, Herstellen der Verbindung zur Datenbankinstanz myDB, Anzeigen der Daten aller Volumes der Art DATA

dbmcli -u dbm,dbm -d myDB param_getvolsall DATA

OK
MAXDATAVOLUMES   3
DATAVOL_0001       10000      F  DAT_001
DATAVOL_0002       11000      F  DAT_002

Antwort

Sie erhalten eine Aufstellung der Daten der Volumes.

OK<NL>
<parameter_name> <value>
<parameter_name> <value>
...
<volume> <vol_size> <vol_type> <vol_name>
<volume> <vol_size> <vol_type> <vol_name>
...

Werte für die Felder der Antwort

<parameter_name> | Name eines für Volumes relevanten Datenbankparameters
<value> | Wert des Parameters
<volume> | Identifikation des Volume
<vol_name> | Name des Volume/der Datei des Volume
<vol_type> | Typ des Volume (z. B. Datei, Raw Device)
<vol_size> | Größe des Volume

Im Fehlerfall siehe Antwortformat.


Anzeigen der Daten eines einzelnen Volume-Parameters (MaxDB: Database Manager CLI)

Anzeigen der Daten eines einzelnen Volume-Parameters

Verwendung

Sie lassen sich die Daten eines einzelnen Volume-Parameters der aktuellen Datenbankinstanz anzeigen.

Voraussetzungen

Sie haben die Serverberechtigung ParamRead.

Syntax

param_getvolume <vol_no> <vol_mode>

Optionen

<vol_no> | Nummer des Volume
<vol_mode> | Art des Volume
Option <vol_mode>
DATA | Data-Volume, die Nummer des Data-Volume wird beim Anlegen des Volume als vierstellige Zahl mit vorangestellten Nullen vom System vergeben
LOG | Log-Volume, die Nummer des Log- Volume wird beim Anlegen des Volume als dreistellige Zahl mit vorangestellten Nullen vom System vergeben
MLOG | Gespiegeltes Log-Volume (siehe auch:Log-Modus)

Anmelden an den Database Manager CLI als Benutzer DBM mit Kennwort DBM, Herstellen der Verbindung zur Datenbankinstanz myDB, Anzeigen der Daten des Volume Nr. 1 vom Typ DATA

dbmcli -u dbm,dbm -d myDB param_getvolume 1 DATA

OK
DAT_001
F
10000

Antwort

OK<NL>
<vol_name>
<vol_type>
<vol_size>

Werte für die Felder der Antwort

<vol_name> | Name des Volume /der Datei des Volume
<vol_type> | Typ des Volume (z. B. Datei, Raw Device)
<vol_size> | Größe des Volume

Im Fehlerfall siehe Antwortformat.


Anzeigen des aktuellen Wertes eines Datenbankparameters (MaxDB: Database Manager CLI)

Anzeigen des aktuellen Wertes eines Datenbankparameters

Verwendung

Sie lassen sich den aktuellen Wert des in <parameter_name> angegebenen Datenbankparameters anzeigen.

Sie erhalten den Wert des Parameters, der beim letzten Starten der Datenbankinstanz in der Datenbank-Parameterdatei gesichert war.

Voraussetzungen

Sie haben die Serverberechtigung ParamRead.

Syntax

param_getvalue <parameter_name>

Antwort

OK<NL>
<value>

Im Fehlerfall siehe Antwortformat.


Anzeigen des Datentyps eines Datenbankparameters (MaxDB: Database Manager CLI)

Anzeigen des Datentyps eines Datenbankparameters

Verwendung

Sie lassen sich den Datentyp des in <parameter_name> angegebenen Parameters anzeigen.

Nach erfolgreicher Ausführung des Kommandos wird eine OK-Meldung ausgegeben. Darauf folgt der Datentyp <type> des angegebenen Parameters. Folgenden Ausgabewerte für <type> sind möglich:
int2 | int4 | c8 | c18 | c24 | c40 | c64

Voraussetzungen

Sie haben die Serverberechtigung ParamRead.

Syntax

param_gettype <parameter_name>

Antwort

OK<NL>
<type>

Im Fehlerfall siehe Antwortformat


Anzeigen des hinterlegten Erläuterungstexts (MaxDB: Database Manager CLI)

Anzeigen des hinterlegten Erläuterungstexts

Verwendung

Sie lassen sich den für den Datenbankparameter <parameter_name>hinterlegten Erläuterungstext anzeigen.

Sie erhalten eine OK-Meldung und nachfolgend den Erläuterungstext <explanation_line>. Die Zeile ist leer, wenn kein Erläuterungstext hinterlegt ist.

Voraussetzungen

Sie haben die Serverberechtigung ParamRead.

Syntax

param_getexplain <parameter_name>

Antwort

OK<NL>
<explanation_line><NL>
<explanation_line><NL>
...

Im Fehlerfall siehe Antwortformat.


Anzeigen des hinterlegten Hilfetexts (MaxDB: Database Manager CLI)

Anzeigen des hinterlegten Hilfetexts

Verwendung

Sie lassen sich den für den Datenbankparameter <parameter_name>hinterlegten Hilfetext anzeigen.

Sie erhalten eine OK-Meldung und nachfolgend den hinterlegten Hilfetext <helpline>. Die Zeile ist leer, wenn kein Hilfetext hinterlegt ist.

Voraussetzungen

Sie haben die Serverberechtigung ParamRead.

Syntax

param_gethelp <parameter_name>

Antwort

OK<NL>
<help_line><NL>
<help_line><NL>
...

Im Fehlerfall siehe Antwortformat.


Anzeigen des Systemvorschlags (Default-Wert) (MaxDB: Database Manager CLI)

Anzeigen des Systemvorschlags (Default-Wert)

Verwendung

Sie lassen sich den Vorschlagswert des Systems für den in <parameter_name>angegebenen Datenbankparameter anzeigen.

Sie erhalten eine OK-Meldung und eine Zeile mit dem Vorschlagswert <default> des Systems. Die Zeile ist leer, wenn kein Vorschlagswert für den Datenbankparameter existiert.

Voraussetzungen

Sie haben die Serverberechtigung ParamRead.

Syntax

param_getdefault <parameter_name>

Antwort

OK<NL>
<default>

Im Fehlerfall siehe Antwortformat.


Anzeigen eines Wertes aus der Datenbank-Parameterdatei (MaxDB: Database Manager CLI)

Anzeigen eines Wertes aus der Datenbank-Parameterdatei

Verwendung

Die Parameterdatei der Datenbankinstanz wird nach dem Wert des in <parameter_name> angegebenen Datenbankparameters durchsucht.

Nach erfolgreicher Suche erhalten Sie eine OK-Meldung. In der darauffolgenden Zeile werden der Name des Datenbankparameters <parameter_name> und sein Wert <value> ausgegeben. Wenn der angegebene Parameter in der Parameterdatei nicht enthalten ist, erhalten Sie die Meldung not found.

Das Kommando greift direkt auf die Parameterdatei der Datenbankinstanz zu. Es setzt keine Parametersitzung voraus und ist daher auch nicht ROLLBACK-fähig.

Voraussetzungen

Sie haben die Serverberechtigung ParamRead.

Syntax

param_directget <parameter_name>

Antwort

OK<NL>
<parameter_name> <value><NL>

Im Fehlerfall siehe Antwortformat.


Anzeigen einzelner Daten eines Datenbankparameters (MaxDB: Database Manager CLI)

Anzeigen einzelner Daten eines Datenbankparameters

Verwendung

Sie lassen sich den Namen, Datentyp und aktuellen Wert des in < parameter_name> angegebenen Datenbankparameters anzeigen. Die Suche erfolgt sowohl in der Beschreibungsdatei als auch in der Parameterdatei der aktuellen Datenbankinstanz (siehe auch: Konfiguration von Datenbankinstanzen).

Voraussetzungen

Sie haben die Serverberechtigung ParamRead.

Syntax

param_extget <parameter_name>

Antwort

OK<NL>
< parameter_name> <type> <value><NL>

<parameter_name> | Name des Datenbankparameters
<type> | Datentyp des Datenbankparameters
<value> | aktueller Wert Dies ist der Wert, der zum Zeitpunkt des Starts der Sitzung aus der Datenbank-Parameterdatei übernommen wird. Wenn der Parameter darin nicht vorhanden ist, wird hier der Vorschlagswert aus der Beschreibungsdatei ausgegeben.

Im Fehlerfall siehe Antwortformat.


Bestätigen von Änderungen der Datenbank-Parameterdatei (MaxDB: Database Manager CLI)

Bestätigen von Änderungen der Datenbank-Parameterdatei

Verwendung

Sie bestätigen alle Änderungen an den Datenbankparametern und übergeben diese an die Parameterdatei der Datenbankinstanz. Vor dem Speichern wird der Check-Status aller Parameter geprüft.

Wenn Sie die Option NOCLOSE angeben, bleibt die Parametersitzung nach dem Speichern der Datenbankparameter weiterhin geöffnet. Wenn Sie diese Option nicht angeben, wird die Parametersitzung nach dem Speichern der Datenbankparameter beendet.

Die geänderten Werte in der Datenbank-Parameterdatei werden erst mit einem Restart der Datenbankinstanz wirksam.

Voraussetzungen

Sie haben während einer Parametersitzung Parameterwerte geändert.

Sie haben die Serverberechtigung ParamCheckWrite.

Syntax

param_commitsession [NOCLOSE]

Erfolgreiche Antwort

Sie erhalten eine OK-Meldung.

Fehlermeldung

Die Ausführung des Kommandos wird abgelehnt:

ERR
14,ERR_XPCHECK_CN00 : param check failure/request
<identifier>      <check_status>
<user_value>
<computed_value>

Werte für die einzelnen Felder der Antwort

<check_status>

Als Check-Status können auftreten:

Mandatory: Ein obligatorischer Datenbankparameter wurde mit einem leeren Wert belegt.

Constraint: Eine in der Beschreibungsdatei definierte Bedingung konnte nicht erfüllt werden ( Konfiguration von Datenbankinstanzen).

Request: Die Benutzereingabe weicht sowohl von dem Wert ab, der bereits früher an das System übermittelt und von diesem bestätigt wurde, als auch vom Vorschlagswert des Systems.

<user_value>

Wert, den der Benutzer mit param_put (Ändern des Wertes eines Datenbankparameters) eingegeben hat

<computed_value>

Vom System errechneter Vorschlagswert

Der Check-Status request wird nur dann ausgegeben, wenn die Benutzereingabe vom Wert des Parameters in der Datenbank-Parameterdatei verschieden ist.

Weitere Vorgehensweise

Wenn der Check-Status request ist, beheben Sie den Fehler wie folgt:

Geben Sie mit param_putconfirm (Korrektur von Datenbankparametern) den gültigen Wert ein. Andernfalls wird für diesen Parameter bei allen weiteren Berechnungen anderer Parameter der Vorschlagswert des Systems <computed_value> benutzt.

In folgenden Fällen wird die Parameteränderung abgelehnt:

- Der Parameter hat für die Eigenschaft Change den Wert Nobody

- Der Parameter hat für die Eigenschaft Modify den Wert No, die Parameterdatei wurde bereits vom Kern geprüft (Parameter __PARAM_CHANGED___ existiert)

- Es handelt sich um einen Volume-Parameter (Eigenschaft Volume= Yes) und in der Parameterdatei stehen geänderte Kernparameter (Eigenschaft Volume = No), die noch nicht vom Kern geprüft wurden
(Ausnahme: Sie legen gerade eine neue Datenbankinstanz an)

- Der Parameter ist ein Kernparameter und es wurden bereits Volume-Parameter geändert, aber noch nicht vom Kern geprüft


Blättern in der Datenbankparameter-Historie (MaxDB: Database Manager CLI)

Blättern in der Datenbankparameter-Historie

Verwendung

Sie rufen den weiteren Inhalt der Datenbankparameter-Historie ab.

Wenn Sie beim Öffnen der Datenbankparameter-Historie durch die Angabe von Optionen Selektionskriterien gesetzt haben, dann gelten diese auch für das Blättern in der Parameterhistorie.

Voraussetzungen

Sie haben die Datenbankparameter-Historie geöffnet ( Öffnen der Datenbankparameter-Historie ).

Sie haben die Serverberechtigung ParamRead .

Syntax

param_gethistorynext

Antwort

OK
<header_line><NL>
<param_line><NL>
<param_line><NL>
...

Wenn Sie nur die Antwort

OK
<header_line><NL>

erhalten, dann sind alle spezifizierten Einträge bereits ausgegeben worden.

Werte für die einzelnen Felder der Antwort

<header_line> | enthält die Namen der ausgegebenen Felder S steht für STATE und beschreibt des Änderungszustand des Datenbankparameters
<param_line> | enthält die Werte für die in der <header_line> beschriebenen Felder, dabei hat der Wert die gleiche Spaltenposition wie die Feldbeschreibung in der <header_line> Im Feld S für STATE sind folgende Ausgaben möglich: c: geändert (changed ) d: gelöscht (deleted) a: aktiv (active)


Direktes Ändern eines Wertes in der Datenbank-Parameterdatei (MaxDB: Database Manager CLI)

Direktes Ändern eines Wertes in der Datenbank-Parameterdatei

Verwendung

Mit diesem Kommando ändern Sie die Parameter der Datenbankinstanz. Im Unterschied zur Funktion Ändern des Wertes eines Datenbankparameters wird der Wert <value> für den unter <parameter_name> angegebenen Parameter direkt in die Parameterdatei eingetragen. Der Eintrag erfolgt jedoch nur, wenn der Parameter bereits in der Parameterdatei enthalten ist.

In folgenden Fällen wird das Ändern des Parameters abgelehnt:

  • Der Parameter hat für die Eigenschaft Change den Wert Nobody
  • Der Parameter hat für die Eigenschaft Modify den Wert No, die Parameterdatei wurde bereits vom Kern geprüft (Parameter __PARAM_CHANGED___ existiert)
  • Es handelt sich um einen Volume -Parameter (Eigenschaft VOLUME = Yes) und in der Parameterdatei stehen geänderte Kernparameter (Eigenschaft VOLUME = No), die noch nicht vom Kern geprüft wurden
    (Ausnahme: Sie legen gerade eine neue Datenbankinstanz an)
  • Der Parameter ist ein Kernparameter und es wurden bereits Volume-Parameter geändert, aber noch nicht vom Kern geprüft

Der eingegebene Wert für den Parameter wird nicht auf Konsistenz geprüft. Deshalb sind mit dem Kommando param_directput auch unqualifizierte Änderungen an Parametern möglich. Diese können dann nicht mit param_abortsession verworfen werden, da die Änderungen direkt in die Parameterdatei geschrieben werden.

Voraussetzungen

Sie haben die Serverberechtigung ParamFull .

Syntax

param_directput <parameter_name> <value>

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat .


Eröffnen einer Parametersitzung (MaxDB: Database Manager CLI)

Eröffnen einer Parametersitzung

Verwendung

Sie eröffnen eine Parametersitzung, um Parameter einer Datenbankinstanz zu prüfen oder zu ändern.

Das Programm DBM-Server liest die Beschreibungsdatei und die Parameterdatei der Datenbankinstanz ein (siehe auch: Konfiguration von Datenbankinstanzen ) und legt deren Inhalt in internen Datenstrukturen ab. Innerhalb einer Parametersitzung erfolgen alle Zugriffe auf diese internen Daten.

Bei Syntaxfehlern wird eine Fehlermeldung ausgegeben, die den Dateinamen, die Zeilennummer und den Zeilentext enthält.

Voraussetzungen

Sie haben die Serverberechtigung ParamRead .

Syntax

param_startsession

Antwort

Sie erhalten eine OK-Meldung.

Bei Syntaxfehlern wird eine Fehlermeldung ausgegeben, die den Dateinamen, die Zeilennummer und den Zeilentext enthält.


Hinzufügen eines Volume (MaxDB: Database Manager CLI)

Hinzufügen eines Volume

Verwendung

Sie definieren zusätzliche Volumes, um den Plattenplatz für die Datenbankinstanz zu erweitern. Sie verwenden dieses Kommando auch für das Anlegen weiterer Spiegel-Volumes, wenn die Datenbankinstanz bereits gespiegelt betrieben wird.

Wenn die Datenbankinstanz noch nicht gespiegelt betrieben wird, legen Sie das erste Spiegel-Volume mit dem Kommando param_addvolume (Ändern von Volume-Parametern) an.

Volumes vom Typ Archive können nach dem Einrichten der Datenbank nicht mehr hinzugefügt werden.

Zum Spiegeln des Log-Volume siehe auch: Log-Modus

Voraussetzungen

Sie haben die Serverberechtigung ParamFull oder AccessUtility.

Syntax

db_addvolume <vol_mode> <vol_name> <vol_type> <size>

<vol_mode>

Art des Volume, das hinzugefügt werden soll
mögliche Werte sind:
DATA (Data-Volume)
LOG (Log-Volume)
MLOG (gespiegeltes Log-Volume)

<vol_name>

Name des Gerätes / der Datei

<vol_type>

Typ des Gerätes/der Datei, das/die hinzugefügt werden soll
mögliche Werte sind:
F (Datei)
L (Link)
R (Raw Device)

Die Option A (Archive Device) ist nicht erlaubt. Archive-Volumes können nur beim Einrichten der Datenbank mit dem Kommando param_addvolume definiert werden, ein nachträgliches Hinzufügen ist nicht möglich.

<size>

Größe des hinzuzufügenden Volume in Seiten

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat.


Initialisieren der Datenbankparameter für eine neue Datenbankins (MaxDB: Database Manager CLI)

Initialisieren der Datenbankparameter für eine neue Datenbankinstanz

Verwendung

Sie initialisieren alle für die Erzeugung einer neuen Datenbankinstanz notwendigen Datenbankparameter.

Bei diesem Vorgang wird der Name der Datenbankinstanz aus der Sitzung mit dem Database Manager benutzt. Für diese Datenbankinstanz darf noch keine Datenbank-Parameterdatei existieren.

Sämtliche Datenbankparameter werden zunächst mit ihren Vorschlagswerten aus der Beschreibungsdatei belegt (siehe auch: Konfiguration von Datenbankinstanzen). Danach wird ein vollständiger Berechnungslauf durchgeführt. Die Werte aus dem Berechnungslauf überschreiben die Vorschlagswerte.

Die neuen Parameterwerte in der Datenbank-Parameterdatei werden auf korrekte Syntax überprüft. Sie erhalten keine Meldung bei nicht erfüllten Bedingungen bzw. fehlenden obligatorischen Werten.

Die Initialisierung erfolgt nur innerhalb des Database Manager. Das Sichern der Parameter in der Datenbank-Parameterdatei erfolgt erst beim Bestätigen von Änderungen der Datenbank-Parameterdatei.

Voraussetzungen

Sie haben eine Parametersitzung eröffnet.

Sie haben die Serverberechtigung InstallMgm.

Syntax

param_init [<db_instance_type>]

db_instance_type

Datenbankinstanztyp.

Erlaubte Werte sind:
OLTP (OLTP)
LVC (liveCache)
ARCHIVE (Archive)

Wenn Sie keinen Datenbankparameter angeben, verwendet das System OLTP.

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat


Kopieren einer Datenbank-Parameterdatei (MaxDB: Database Manager CLI)

Kopieren einer Datenbank-Parameterdatei

Verwendung

Sie kopieren die Parameterdatei einer existierenden Datenbankinstanz als Initialkonfiguration für eine neue Datenbankinstanz . Sie können eine vorhandene Parameterdatei nur dann kopieren, wenn für die neue Datenbankinstanz noch keine Parameterdatei existiert.

Alle bis zu diesem Zeitpunkt in der aktuellen Parametersitzung durchgeführten Parameteränderungen werden von der kopierten Parameterdatei überschrieben. Bei Parametern, die aufgrund ihrer Eigenschaften nicht kopiert werden können, bleiben die aus der Beschreibungsdatei übernommenen Vorschlagswerte des Systems erhalten. Dies trifft für folgende Parameter zu:

  • RUNDIRECTORY enthält einen Verzeichnisnamen <independent_data_path>/wrk/<database_name>
  • KERNELVERSION wird mit der im DBM-Server hinterlegten Versionsnummer initialisiert

In <source_db> geben Sie den Namen der Quell-Datenbank an.

(siehe auch: Konfiguration von Datenbankinstanzen )

Voraussetzungen

Sie haben eine Parametersitzung eröffnet .

Sie haben die Serverberechtigung InstallMgm .

Syntax

param_copy <source_db>

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat


Korrigieren von Parametern (MaxDB: Database Manager CLI)

Korrigieren von Parametern

Verwendung

Sie korrigieren den Wert eines Parameters. Dabei haben Sie die Wahl, den mit request gemeldeten Parameter <parameter_name> entweder mit der Benutzereingabe <user_value> oder dem Vorschlagswert des Systems <computed_value> zu belegen.

Im Parameter-Manager wird der Wert hinterlegt und nach dem Restart der Datenbankinstanz wirksam. Parameter, die Sie mit diesem Kommando korrigieren, werden nur dann rückgefragt, wenn sowohl die aktuelle Benutzereingabe als auch der Vorschlagswert des Systems ungleich dem bestätigten Wert sind.

Dieses Kommando steht Ihnen nur für Datenbanksysteme bis Version 7.3 zur Verfügung.

Voraussetzungen

Sie haben die Serverberechtigung ParamCheckWrite .

Sie haben eine Parametersitzung eröffnet und Parameter geprüft.

Es wurde der Check-Status Request für einen Parameter gemeldet.

Syntax

param_putconfirm <parameter_name> <user_value>|<computed_value>

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat .


Liste der vorhandenen Parameterdateien (MaxDB: Database Manager CLI)

Liste der vorhandenen Parameterdateien

Verwendung

Sie fragen die Liste aller vorhandenen Parameterdateien ab.

Voraussetzungen

Sie haben die Serverberechtigung ParamRead.

Syntax

param_versions

Antwort

OK<NL>
<file><NL>
<file><NL>
...

<file>

Name der Parameterdatei

Im Fehlerfall siehe Antwortformat.


Löschen der Datenbank-Parameterdatei (MaxDB: Database Manager CLI)

Löschen der Datenbank-Parameterdatei

Verwendung

Sie löschen die Parameterdatei.

Verwenden Sie dieses Kommando mit großer Sorgfalt.

Mit dem Kommando param_restore (Zurücksetzen der Parameterdatei auf eine vorherige Version) können Sie die vor dem Löschen gültige Version der Parameterdatei wiederherstellen.

Voraussetzung

Sie haben die Serverberechtigung InstallMgm.

Syntax

param_rmfile

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat.


Löschen eines Datenbankparameters (MaxDB: Database Manager CLI)

Löschen eines Datenbankparameters

Verwendung

Der angegebene Parameter <parameter_name> wird aus der Datenbank-Parameterdatei gelöscht.

Die Änderung wird in die Parameterdatei übernommen und beim nächsten Restart der Datenbankinstanz wirksam.

Verwenden Sie dieses Kommando mit großer Sorgfalt.

Das Kommando param_directdel greift direkt auf die Parameterdatei der Datenbankinstanz zu. Es setzt keine Parametersitzung voraus und ist daher auch nicht ROLLBACK-fähig.

Voraussetzungen

Sie haben die Serverberechtigung ParamFull.

Syntax

param_directdel <parameter_name>

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat.


Löschen von Volume-Parametern (MaxDB: Database Manager CLI)

Löschen von Volume-Parametern

Verwendung

Sie löschen die Parameter des angegebenen Volume aus der Datenbank-Parameterdatei. Dieses Kommando löscht nur die Parameter des Volumes; ein echtes Löschen einmal benutzter Volumes ist nicht möglich.

Verwenden Sie dieses Kommando mit großer Sorgfalt. Inkonsistenzen in den Volume-Einstellungen können zur Beschädigung der Datenbankinstanz führen.

Voraussetzungen

Sie haben die Serverberechtigung ParamCheckWrite.

Syntax

param_delvolume <vol_no> <vol_mode>

Optionen

<vol_no> | Nummer des Volume
<vol_mode> | Art des Volume
Option <vol_mode>
DATA | Data-Volume, die Nummer des Data-Volume wird beim Anlegen des Volume als vierstellige Zahl mit vorangestellten Nullen vom System vergeben
LOG | Log-Volume, die Nummer des Log-Volume wird beim Anlegen des Volume als dreistellige Zahl mit vorangestellten Nullen vom System vergeben
MLOG | Gespiegeltes Log-Volume (siehe auch: Log-Modus)

Anmelden an den Database Manager CLI als Benutzer DBM mit Kennwort DBM, Herstellen der Verbindung zur Datenbankinstanz hoteldb, Löschen des Volume Nr. 3 vom Typ DATA

dbmcli –u DBM,DBM –d hoteldb param_delvolume 3 DATA

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat


Öffnen der Datenbankparameter-Historie (MaxDB: Database Manager CLI)

Öffnen der Datenbankparameter-Historie

Verwendung

Sie öffnen die Historie der Datenbankparameter und übertragen den ersten Block des Inhalts. Dabei werden die Einträge in umgekehrter zeitlicher Reihenfolge ausgegeben, d.h. die jüngsten Einträge zuerst und die ältesten zuletzt.

Durch die Angabe von Optionen haben Sie die Möglichkeit, die Ausgabe einzuschränken. Wenn Sie mehrere Selektionskriterien angeben, dann werden nur jene Parameteränderungen ausgegeben, die allen Kriterien entsprechen.

Wenn die Einträge der Parameterhistorie nicht vollständig übertragen wurden, rufen Sie den weiteren Inhalt mit Hilfe des Kommandos zum Blättern in der Datenbankparameter-Historie ab.

Voraussetzungen

Sie haben die Serverberechtigung ParamRead.

Syntax

param_gethistory [fields=<field_list>] [name=<parameter_name>]

[date=<yyyymmdd>] [group=<group_list>]

[state=<state_list>]

Beispiel

Optionen

<field_list>

Durch die Angabe einer Feldliste können Sie die Menge der vom Database Manager gelieferten Felder der Historie einschränken.
Geben Sie hier die auszugebenden Felder an und trennen sie diese mittels Komma voneinander.
Die gewählten Felder werden immer in der unten angegebenen Reihenfolge ausgegeben.

Mögliche Angaben:

DATE Datum der Parameteränderung (YYYYMMDD)
TIME Uhrzeit der Parameteränderung (00HHMMSS)
NAME Name des Parameters
NEWVALUE Neuer Wert des Parameters
OLDVALUE Alter Wert des Parameters
STATE Änderungsstatus des Parameters
GROUP Gruppenzuordnung des Parameters

Wenn Sie keine Feldliste angeben, werden alle Felder ausgegeben.

<parameter_name>

Durch die Angabe des Namens eines Parameters können Sie sich die Historie dieses speziellen Parameters anzeigen lassen.
Wenn Sie keinen Parameternamen angeben, werden die Einträge für alle Parameter in der Historie ausgegeben.

<yyyymmdd>

Durch die Angabe eines Datums werden nur jene Parameteränderungen ausgegeben, die seit diesem Tag erfolgten.
Wenn Sie kein Datum angeben, werden alle Einträge in der Historie geliefert.

<group_list>

Durch die Angabe von Parametergruppen schränken Sie ein, für welche Datenbankparameter die Änderungen ausgegeben werden sollen. Trennen Sie mehrere Angaben mittels Komma voneinander.

Mögliche Angaben sind:
GENERAL: Allgemeine Datenbankparameter
EXTENDED: Spezielle Datenbankparameter
SUPPORT: Support-Datenbankparameter

Wenn Sie keine Parametergruppen angeben, werden die Parameteränderungen aller Gruppen ausgegeben.

<state_list>

Durch die Angabe von Änderungsstatus spezifizieren Sie, ob aktive, geänderte und/oder gelöschte Datenbankparameter ausgegeben werden sollen. Trennen Sie mehrere Angaben mittels Komma.

Mögliche Angaben sind: A (aktiv), C (geändert), D (gelöscht

Wenn Sie keinen Status angeben, werden alle Parameteränderungen ausgegeben.

Antwort

OK
<header_line><NL>
<param_line><NL>
<param_line><NL>
...

Werte für die einzelnen Felder der Antwort

<header_line> | enthält die Namen der ausgegebenen Felder S steht für STATE und beschreibt des Zustand des Parameters
<param_line> | enthält die Werte für die in <header_line> beschriebenen Felder, dabei hat der Wert die gleiche Spaltenposition wie die Feldbeschreibung in der <header_line> Im Feld S für STATE (Änderungsstatus des Datenbankparameters) sind folgende Ausgaben möglich: c: geändert (changed ) d: gelöscht (deleted) a: aktiv (active)


Beispiel für das Kommando param_gethistory (MaxDB: Database Manager CLI)

Beispiel für das Kommando param_gethistory

Öffnen der Parameterhistorie für den Parameter _MAXDATAVOLUMES

dbmcli -d myDB -u dbm,dbmp param_gethistory name=_MAXDATAVOLUMES

OK
DATE TIME NAME  NEWVALUE OLDVALUE S GROUP
20010613 00152700 _MAXDATAVOLUMES 5 4 A SUPPORT
20010613 00152700 _MAXDATAVOLUMES 4 3 C SUPPORT
20010613 00152659 _MAXDATAVOLUMES 3 C SUPPORT


Prüfen aller Datenbankparameter (MaxDB: Database Manager CLI)

Prüfen aller Datenbankparameter

Verwendung

Sie prüfen die Gesamtheit aller Datenbankparameter anhand der in der Beschreibungsdatei (Konfiguration von Datenbankinstanzen) hinterlegten Eigenschaften, Berechnungsvorschriften und Bedingungen.

Voraussetzungen

Sie haben eine Parametersitzung eröffnet.

Sie haben die Serverberechtigung ParamCheckWrite.

Syntax

param_checkall [<mode>]

Option <mode>

Mit dem Parameter <mode> steuern Sie das Verhalten des Database Managers bei Parametern mit dem Checkstatus request.

Für <mode> sind folgende Werte möglich:

Keine Eingabe | Für alle Parameter wird der Vorschlagswert des Systems übernommen (notwendig für die Verarbeitung im Hintergrund).
GENERAL | Nur die Parameter der Gruppe General - Allgemeine Datenbankparameter werden beim Checkstatus request nachgefragt.
EXTENDED | Nur die Parameter der Gruppen Allgemeine Datenbankparameter (General) und Spezielle Datenbankparameter (Extended) werden überprüft.
SUPPORT | Diese Option ist nur für den Support relevant. Es werden alle Parameter geprüft (Gruppen General, Extended und Support).

Antwort

Bei Auftreten eines Fehlers wird die Überprüfung der Datenbankparameter abgebrochen und eine Fehlermeldung ausgegeben..

ERR
14,ERR_XPCHECK_CN00 : param check failure/request
<parameter_name>      <check_status>
<user_value>
<computed_value>

<parameter_name> | Name des Datenbankparameters
<check_status> | Als Checkstatus können auftreten: Mandatory – Ein obligatorischer Parameter wurde mit einem leeren Wert belegt. Constraint – Ein Constraint konnte nicht erfüllt werden. Request – Die Benutzereingabe weicht sowohl von dem Wert ab, der bereits früher an das System übermittelt und von diesem bestätigt wurde, als auch vom Vorschlagswert des Systems.
<user_value> | Wert, den der Benutzer mit param_put eingegeben hat
<computed_value> | Vom System errechneter Vorschlagswert

Bei offenen requests können die Änderungen der Parameter nicht bestätigt werden (Bestätigen von Änderungen der Datenbank-Parameterdatei).

Weitere Vorgehensweise

Korrigieren Sie den beanstandeten Parameter mittels param_putconfirm (Korrektur von Parametern) bzw. param_put (Ändern eines Parameterwertes) und führen Sie mit dem Kommando param_checkall [<mode>] eine erneute Überprüfung durch.

Der neue Wert des Parameters wird vom System registriert und beim nächsten Restart der Datenbankinstanz als gültiger Wert in die Datenbank-Parameterdatei übernommen.


Zurücksetzen der Parameterdatei auf eine vorherige Version (MaxDB: Database Manager CLI)

Zurücksetzen der Parameterdatei auf eine vorherige Version

Verwendung

Die Parameterdatei wird auf die angegebene Version <version_number> zurückgesetzt.

Beim nächsten Start der Datenbankinstanz wird diese Parameterdatei benutzt.

Voraussetzungen

Sie haben die Serverberechtigung ParamCheckWrite.

Syntax

param_restore <version_number>

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat.


Eigenschaften von Parametern (MaxDB: Database Manager CLI)

Eigenschaften von Parametern

Eigenschaft | Erläuterung | Mögliche Werte
CASESENSITIVE | Beachtung Groß-/Kleinschreibung bei den Werten erforderlich (z.B. Dateinamen unter UNIX) | YES | NO
CHANGE | Parameter ist änderbar | YES | NO
CLEAR | Parameter darf bei Neuinstallation nicht von anderer Datenbankinstanz übernommen werden (z.B. Name der Datenbankinstanz, Volumes) | YES | NO
VOLUME | Angabe der Parameterart ( Yes: Volume-Parameter, NO: Kernparameter) | YES | NO
DISPLAYNAME | Zeichenkette (auch mit Leerzeichen), die anstelle des Parameternamens im Database Manager GUI angezeigt wird |
DYNAMIC | Parameter ist in der Beschreibungsdatei mit Platzhalter versehen, z.B. DATAVOL_? Er wird in der Parameterdatei zu DATAVOL_00, DATAVOL_01 etc.) | YES | NO
GROUP | Zuordnung zu einer Gruppe für die Anzeige im Database Manager GUI GENERAL: Allgemeine Datenbankparameter, einsehbar EXTENDED: Spezielle Datenbankparameter, einsehbar SUPPORT: Support-Datenbankparameter, einsehbar NO: Der Parameter ist über den Database Manager GUI nicht zugänglich. INFO: Der Parameter enthält spezielle Informationen für den Benutzer | GENERAL | EXTENDED | SUPPORT | NO | INFO
INSTANCES | Instanztyp, für den der Parameter relevant ist keine Angabe: Parameter ist allgemein gültig | LVC | OLTP | ARCHIVE
INTERN | Wert steht nur in der Beschreibungsdatei und nicht in der Parameterdatei (Konfiguration von Datenbankinstanzen) | YES | NO
LASTKNOWNGOOD | Gültiger Wert des Parameters, mit die Datenbankinstanz das letzte Mal gestartet wurde |
MANDATORY | Pflichtparameter | YES | NO
MAX | Maximaler Wert für einen Parameter |
MIN | Minimaler Wert für einen Parameter |
MODIFY | Parameter nach dem Erzeugen der Datenbankinstanz noch änderbar (z.B. RUNDIRECTORY: NO) | YES | NO
OVERRIDE | Benutzer darf den Vorschlagswert des DBM-Server überschreiben | YES | NO | HIGHER
VALUESET | Zugelassene Wertemenge für einen Parameter Die einzelnen Werte sind durch Leerzeichen oder Tabs voneinander zu trennen. Bei Zeichenkettenparametern sind die zugelassenen Zeichenkettenkonstanten in Anführungszeichen zu setzen. |


Einrichten eines Hot Standby-Systems (MaxDB: Database Manager CLI)

Einrichten eines Hot Standby-Systems

Verwendung

Sie richten ein Hot Standby-System zur Erhöhung der Ausfallsicherheit ihres Datenbanksystems ein. Sie benötigen hierzu ein geeignetes Speicherverwaltungssystem sowie eine Cluster-Lösung. Informationen zum Einrichten von Speicherverwaltungssystem und Cluster-Konfiguration finden Sie in der Dokumentation der Hersteller.

Voraussetzungen

· Master- und Standby-Komponenten verwenden die gleichen Hardware-Plattformen (Speicherplatz, Art und Anzahl der Prozessoren).

· Alle Datenpfade und Dateien (Arbeitsverzeichnis, Volumes, Trace-Dateien etc.), die in der Konfiguration verwendet werden, stimmen für Master- und Standby-Komponenten überein.

· Auf allen Rechnern ist dieselbe Version der Datenbanksoftware installiert.

· Alle Rechner sind eingeschaltet.

· Der X-Server läuft auf allen Rechnern.

· Der Benutzer, der das Hot Standby-System einrichtet, hat Administrationsrechte auf allen Rechnern.

Vorgehensweise

...

1. Anlegen der Datenbankinstanz.

2. Überführen der Datenbankinstanz in den Betriebszustand OFFLINE.

3. Konfigurieren einer Master-Komponente.

4. Überführen der Datenbankinstanz in den Betriebszustand ONLINE.

5. Definieren einer neuen Standby-Komponente.

Während des Einrichtens einer neuen Standby-Komponente darf kein Savepoint geschrieben werden.

6. Überführen der Standby-Komponente in den Betriebszustand STANDBY.

Ergebnis

Das Hot Standby-System ist nun eingerichtet. Um weitere Standby-Komponenten hinzuzufügen, wiederholen Sie die Vorgehensweise ab Schritt 5.

Um Datenbankparameter zu ändern, sprechen Sie die Master-Komponente des Hot Standby-Systems mit den üblichen Kommandos an. Die Änderungen werden automatisch an alle Standby-Komponenten übertragen.

Siehe auch:

Beispiel

Dokumentation Datenbankverwaltung: Spezielle Datenbankparameter


Übersicht der DBM-Kommandos für das Einrichten eines Hot Standby (MaxDB: Database Manager CLI)

Übersicht der DBM-Kommandos für das Einrichten eines Hot Standby-Systems

Abfragen von Hot Standby-Parametern | hss_getnodes
Ansprechen einer Standby-Komponente | hss_execute
Definieren einer weiteren Standby-Komponente | hss_addstandby
Entfernen einer Standby-Komponente | hss_removestandby
Konfigurieren einer Master-Komponente | hss_enable


Abfragen von Hot Standby-Parametern (MaxDB: Database Manager CLI)

Abfragen von Hot Standby-Parametern

Verwendung

Sie fragen die Werte der Hot Standby-Parameter ab. Zusätzlich erhalten Sie die Information, welcher Rechner innerhalb des Clusters die Rolle der aktuellen Master-Komponente hat (CURRENT_NODE).

Voraussetzungen

Sie haben die Serverberechtigungen ParamRead, ParamCheckWrite oder ParamFull.

Syntax

hss_getnodes

Antwort

Sie erhalten die Informationen zum Hot Standby-System.

Beispiel

hss_getnodes

OK

HS_STORAGE_DLL libhsscopy

OFFICIAL_NODE hotel_official

CURRENT_NODE genua

HS_NODE_001 genua

HS_NODE_002 parma

Siehe auch:

Beispiel für das Einrichten eines Hot Standby-Systems

Dokumentation Datenbankverwaltung: Spezielle Datenbankparameter


Ansprechen einer Standby-Komponente (MaxDB: Database Manager CLI)

Ansprechen einer Standby-Komponente

Verwendung

Sie senden ein Database Manager-Kommando über die Master-Komponente an eine Standby-Komponente.

Database Manager-Kommandos sollten in der Regel nicht direkt an Standby-Komponenten, sondern an den Cluster übermittelt werden. Die Cluster-Software gibt die Kommandos an die Master-Komponente weiter. Die Master-Komponente führt die Kommandos aus und synchronisiert gegebenenfalls die Standby-Komponenten.

Voraussetzungen

Sie haben die notwendigen Serverberechtigungen.

Syntax

hss_execute <hs_node_nnn> <dbm_command>

hs_node_nnn | Rechnername / Adresse der Standby-Komponente nnn.
dbm_command | Database Manager-Kommando.

Antwort

Sie erhalten eine OK-Meldung.

Beispiel

Um den Status der Standby-Komponente parma abzufragen, verwenden Sie folgendes Kommando:

hss_execute parma db_state


Definieren einer weiteren Standby-Komponente (MaxDB: Database Manager CLI)

Definieren einer weiteren Standby-Komponente

Verwendung

Sie definieren eine weitere Standby-Komponente für das Hot Standby-System.

Voraussetzungen

· Sie sind im Database Manager CLI über die Master-Komponente mit dem Hot Standby-System verbunden.

· Das Hot Standby-System ist im Betriebszustand ONLINE.

· Alle Datenpfade und Dateien (Arbeitsverzeichnis, Volumes, Tracedateien etc.) der neu hinzuzufügenden Standby-Komponente stimmen mit denen der Master-Komponente überein.

· Sie haben die Serverberechtigung ParamFull.

Syntax

hss_addstandby <hs_node_nnn> login=<user>,<password> [path=<dependent _path>] [delay=<hs_delay_time_nnn>]

hs_node_nnn | Rechnername / Adresse der Standby-Komponente nnn.
user | Betriebssystembenutzer auf dem Standby-Rechner; muss Administrationsrechte auf dem Rechner haben.
dependent_path | Installationspfad der Datenbanksoftware auf dem Standby-Rechner. Wenn Sie keinen Pfad angeben, dann wird auf dem Standby-Rechner automatisch die Datenbanksoftware verwendet, deren Version mit der Version der Datenbanksoftware der Master-Komponente übereinstimmt.
hs_delay_time_nnn | Zeitverzögerung für das Nachfahren der Log-Einträge durch die Standby-Komponente nnn in Sekunden.

Antwort

Sie erhalten eine OK-Meldung.


Entfernen einer Standby-Komponente (MaxDB: Database Manager CLI)

Entfernen einer Standby-Komponente

Verwendung

Sie entfernen eine Standby-Komponente aus dem Hot Standby-System.

Voraussetzungen

· Sie sind im Database Manager CLI über die Master-Komponente mit dem Hot Standby-System verbunden.

· Sie haben die Serverberechtigung ParamFull.

Syntax

hss_removestandby <hs_node_nnn>

hs_node_nnn

Rechnername / Adresse der Standby-Komponente nnn.

Antwort

Sie erhalten eine OK-Meldung.


Konfigurieren einer Master-Komponente (MaxDB: Database Manager CLI)

Konfigurieren einer Master-Komponente

Verwendung

Sie konfigurieren die Master-Komponente eines Hot Standby-Systems.

Voraussetzungen

· Die Datenbankinstanz befindet sich im Betriebszustand OFFLINE.

· Sie haben die Serverberechtigung ParamFull.

Syntax

hss_enable lib=<hs_storage_dll> node=<official_node>

hs_storage_dll | Name der Bibliothek, die zum Ansteuern des Speicherverwaltungssystems benötigt wird.
official_node | Offizieller Name der Datenbank innerhalb des Cluster-Systems. Wird vom Systemadministrator festgelegt.

Antwort

Sie erhalten eine OK-Meldung.


Beispiel für das Einrichten eines Hot Standby-Systems (MaxDB: Database Manager CLI)

Beispiel für das Einrichten eines Hot Standby-Systems

Es soll ein Hot Standby-System mit dem Namen HOTELDB mit einer Master-Komponente GENUA und einer Standby-Komponente PARMA eingerichtet werden. Auf dem Rechner GENUA ist der Betriebssystembenutzer DAVID mit dem Passwort BLUE bekannt. Das Hot Standby-System soll unter dem offziellen Namen HOTEL_OFFICIAL angesprochen werden. Auf dem Rechner PARMA ist ANNA als Betriebssystembenutzer mit dem Passwort MAY bekannt, der Installationspfad der Datenbanksoftware auf diesem Rechner ist C:\Program Files\sdb\7500.

Eröffnen einer Verbindung zum offiziellen Knoten HOTEL_OFFICIAL:

dbmcli -n HOTEL_OFFICIAL

Erzeugen der Datenbankinstanz HOTELDB:

db_create HOTELDB DBM,DBM DAVID,BLUE
...
Einrichten des Hot Standby-Systems:

db_offline
hss_enable node=HOTEL_OFFICIAL lib=LIBHSSCOPY
db_online
hss_addstandby PARMA login=ANNA,MAY path="C:\Program Files\sdb\7500"
db_standby PARMA


Funktionen für den Datenbankbetrieb (MaxDB: Database Manager CLI)

Funktionen für den Datenbankbetrieb

Verwendung

Mit den Kommandos für den Datenbankbetrieb können Sie die wesentlichen Funktionen zum Starten und Stoppen der Datenbankinstanz sowie zum Laden der Systemtabellen ausführen.

Voraussetzungen

Beachten Sie die für die jeweiligen DBM-Kommandos notwendigen Benutzerberechtigungen.

Übersicht der Kommandos für den Datenbankbetrieb


Übersicht der DBM-Kommandos für den Datenbankbetrieb (MaxDB: Database Manager CLI)

Übersicht der DBM-Kommandos für den Datenbankbetrieb

Aktualisieren der Optimiererstatistiken mit dem Programm XPU | exec_xpu
Benutzen der Datenbankkonsole | db_cons
Laden der Systemtabellen | load_systab
Laden SAP-spezifischer Tabellen | load_r3tab
Löschen von Laufzeitinformationen nach einem Datenbankfehler | db_clear
Restart der Datenbankinstanz | db_restart
Starten der Datenbankinstanz | db_start
Starten des Programms PythonLOAD | exec_load
Stoppen der Datenbankinstanz | db_stop
Überführen in den Betriebszustand ADMIN | db_admin
Überführen in den Betriebszustand OFFLINE | db_offline
Überführen in den Betriebszustand ONLINE | db_online
Überführen in den Betriebszustand STANDBY | db_standby


Aktualisieren der Optimiererstatistiken mit dem Programm XPU (MaxDB: Database Manager CLI)

Aktualisieren der Optimiererstatistiken mit dem Programm XPU

Verwendung

Der SQL-Optimierer ist Teil der Datenbankinstanz und gewährleistet die schnellstmögliche Abarbeitung von Datenbankzugriffen. Dabei greift er auch auf die Statistiken über die Inhalte von Datenbanktabellen zu. Siehe auch: SQL-Optimierer

Mit Hilfe des Programms XPU aktualisieren Sie die Statistiken über die Inhalte der Tabellen der Datenbankinstanz.

Als Parameter verwenden Sie Parameter für das Programm XPU.

Voraussetzungen

Sie haben die DBM-Benutzerberechtigung AccessSQL.

Die Datenbankinstanz befindet sich im Betriebszustand ONLINE.

Syntax

exec_xpu <xpu_params>

Antwort

Sie erhalten die Antwort des Programms XPU.

OK<NL>
<xpu_output>

Im Fehlerfall siehe Antwortformat.


Benutzen der Datenbankkonsole (MaxDB: Database Manager CLI)

Benutzen der Datenbankkonsole

Verwendung

Sie benutzen die Datenbankkonsole, um das Laufzeitverhalten der Datenbankinstanz zu analysieren und zu beeinflussen.

Als Parameter verwenden Sie ein Kommando für die Datenbankkonsole <cons_cmd> sowie optionale Parameter für die Datenbankkonsole <cons_param>.

Verwenden Sie die Datenbankkonsole nur, wenn Sie durch den Support dazu aufgefordert werden.

Voraussetzungen

Sie haben die DBM-Benutzerberechtigung DBStop.

Die Datenbankinstanz befindet sich im Betriebszustand ADMIN oder ONLINE.

Syntax

db_cons <cons_cmd> [<cons_param>]

Antwort

Sie erhalten die Antwort der Datenbankkonsole.

OK<NL>
<console_output>

Im Fehlerfall siehe Antwortformat.


Laden der Systemtabellen (MaxDB: Database Manager CLI)

Laden der Systemtabellen

Verwendung

Die Systemtabellen sind systeminterne Tabellen, die nicht vom Benutzer gepflegt werden.

Die Systemtabellen müssen neu geladen werden, nachdem ein Wechsel der Version der Datenbanksoftware vorgenommen wurde.

Beim Wiederherstellen einer Datenbankinstanz ist es nicht erforderlich, die Systemtabellen erneut zu laden.

Zum Laden der Systemtabellen müssen dem Programm DBM-Server der Name und das Kennwort des SYSDBA-Benutzers sowie das Kennwort des DOMAIN-Benutzers bekannt sein. Wenn dies noch nicht der Fall ist, geben Sie unter -u <sysdba>,<password> den Namen und das Kennwort des SYSDBA bzw. unter -ud <domain_password> das Kennwort des DOMAIN-Benutzers an.

Siehe auch: Datenbankverwaltung

Voraussetzungen

Sie haben die DBM-Benutzerberechtigung ExecLoad oder LoadSysTab.

Syntax

load_systab [-u <sysdba>,<password>] [-ud <domain_password>]

Antwort

OK<NL>
<errcode>,<err_description><NL>
<pgmcode>,<command><NL>
<xload_output_lines><NL>
<xload_protocol_lines><NL>

Werte für die einzelnen Felder der Antwort

<errcode> | Fehlernummer des Programms DBM-Server, im Erfolgsfall ist die Fehlernummer 0
<err_description> | Beschreibung des Fehlers
<pgmcode> | Rückgabewert des ausgeführten Programms
<command> | Vom Programm DBM-Server ausgeführte Kommandozeile
<xload_output_lines> | Ausgabetext des Programms
<xload_protocol_lines> | Zeilen des LOAD-Protokolls
<NL> | Zeilenvorschub


Laden SAP-spezifischer Tabellen (MaxDB: Database Manager CLI)

Laden SAP-spezifischer Tabellen

Verwendung

Die SAP-spezifischen Tabellen enthalten Informationen für die SAP-Anwendung über den Zustand der Datenbankinstanz.

Sie pflegen den Inhalt der SAP-spezifischen Tabellen. Im Normalfall wird diese Pflege von der SAP-Anwendung regelmäßig durchgeführt.

Voraussetzungen

Sie haben die DBM-Benutzerberechtigung ExecLoad oder LoadSysTab.

Syntax

load_r3tab

Antwort

OK<NL>
<errcode>,<err_description><NL>
<pgmcode>,<command><NL>
<xload_output_lines><NL>
<xload_protocol_lines><NL>

Werte für die einzelnen Felder der Antwort

<errcode> | Fehlernummer des DBM-Server, im Erfolgsfall ist die Fehlernummer 0
<err_description> | Beschreibung des Fehlers
<pgmcode> | Rückgabewert des ausgeführten Programms
<command> | Vom DBM-Server ausgeführte Kommandozeile
<xload_output_lines> | Ausgabetext des Programms
<xload_protocol_lines> | Zeilen des LOAD-Protokolls
<NL> | Zeilenvorschub


Löschen von Laufzeitinformationen nach einem Datenbankfehler (MaxDB: Database Manager CLI)

Löschen von Laufzeitinformationen nach einem Datenbankfehler

Verwendung

Wenn nach einem Datenbankfehler noch Laufzeitinformationen im Betriebssystem vorhanden sind, ist es nicht möglich, die Datenbankinstanz neu zu starten.

Mit diesem Kommando entfernen Sie diese Laufzeitinformationen aus dem Betriebssystem und ermöglichen damit das erneute Starten der Datenbankinstanz.

Voraussetzungen

Sie haben die DBM-Benutzerberechtigung DBStop.

Syntax

db_clear

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat.


Restart der Datenbankinstanz (MaxDB: Database Manager CLI)

Restart der Datenbankinstanz

Verwendung

Sie überführen die Datenbankinstanz aus dem Betriebszustand ADMIN oder ONLINE zunächst in den Betriebszustand OFFLINE und dann in den Betriebszustand ONLINE.

Voraussetzungen

Sie haben die DBM-Benutzerberechtigung DBStop.

Syntax

db_restart [<option>]

Optionen

Sie können für das Kommando folgende Optionen <option> verwenden:

-f | -fast | Es wird die Kernvariante fast gestartet.
-q | -quick | Es wird die Kernvariante quick gestartet.
-s | -slow | Es wird die Kernvariante slow gestartet.
-d | -dump | Beim Übergang von ADMIN oder ONLINE zu OFFLINE wird ein Dump erzeugt.

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat.


Starten der Datenbankinstanz (MaxDB: Database Manager CLI)

Starten der Datenbankinstanz

Verwendung

Sie überführen die Datenbankinstanz vom Betriebszustand OFFLINE in den Zustand ADMIN (Überführen in den Betriebszustand ADMIN).

Voraussetzungen

Sie haben die DBM-Benutzerberechtigung DBStart.

Unter dem Betriebssystem Microsoft Windows muss diese Datenbankinstanz unter dem Namen SAP DB: <database_name> als Service registriert sein. Dies erfolgt implizit beim Anlegen einer Datenbankinstanz im Database Manager.

Syntax

db_start [<option>]

option

Kernvariante, mit der die Datenbankinstanz gestartet werden soll:
-f | -fast

-q | –quick

-s | –slow

Wenn Sie keine Option angeben, wird die Variante fast des Datenbankkerns gestartet.

Die Optionen -q | -quick und -s | -slow sollten jedoch nur im Fehlerfall und nach Rücksprache mit dem Support verwendet werden.

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat.


Starten des Programms PythonLOAD (MaxDB: Database Manager CLI)

Starten des Programms PythonLOAD

Verwendung

PythonLOAD ist eine in der Skriptsprache Python programmierte Umgebung, die das Ausführen von Ladevorgängen ermöglicht. Als Antwort auf die Ausfürung dieses Skripts werden vom System Informationen über den Ausführungsstatus des Programms ausgegeben.

Das Programm PythonLOAD wird auf der aktuellen Datenbankinstanz mit dem unter <userid> <password> angegebenen Benutzer ausgeführt. Geben Sie unter <file> eine PythonLOAD-Skriptdatei an. Wenn Sie einen relativen Dateinamen angeben, wird dieser relativ zum Verzeichnis <dependent_path>\env benutzt.

Die in doppelten Anführungszeichen eingeschlossenen Optionen für PythonLOAD werden uninterpretiert an das Programm PythonLOAD übergeben.

Voraussetzungen

Sie haben die DBM-Benutzerberechtigung ExecLoad.

Syntax

exec_load <userid> <password> <file> ["<option>"]

Antwort

OK<NL>
<errcode>,<errdescription><NL>
<pgmcode>,<command><NL>
<pythonload output lines><NL>

Werte für die einzelnen Felder der Antwort

<errcode> | Fehlernummer des Programms DBM-Server, im Erfolgsfall ist die Fehlernummer 0
<errdescription> | Beschreibung des Fehlers
<pgmcode> | Rückgabewert des ausgeführten Programms
<command> | Vom Programm DBM-Server ausgeführtes Kommando
<pythonload output lines> | Ausgabetext des Programms
<NL> | Zeilenvorschub


Stoppen der Datenbankinstanz (MaxDB: Database Manager CLI)

Stoppen der Datenbankinstanz

Verwendung

Mit diesem Kommando überführen Sie die Datenbankinstanz aus dem Betriebszustand ADMIN oder ONLINE in den Betriebszustand OFFLINE.

Voraussetzungen

Sie haben die DBM-Benutzerberechtigung DBStop.

Syntax

db_stop [<option>]

Option

Wenn Sie unter <option> den Wert -d | -dump angeben, wird beim Übergang der Datenbankinstanz vom Betriebszustand ADMIN in den Betriebszustand OFFLINE ein Dump erzeugt.

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat.


Überführen in den Betriebszustand ADMIN (MaxDB: Database Manager CLI)

Überführen in den Betriebszustand ADMIN

Verwendung

Die Datenbankinstanz wird in den Betriebszustand ADMIN überführt.

Wenn sich die Datenbankinstanz im Betriebszustand ONLINE befindet, wird sie zunächst in den Betriebszustand OFFLINE überführt und dann erst in den Betriebszustand ADMIN.

Voraussetzungen

Sie haben die Benutzerberechtigung DBStop.

Syntax

db_admin [<option>]

Optionen

Sie können das Kommando mit folgenden Optionen <option> eingeben:

-f | -fast | Beim Übergang vom Betriebszustand OFFLINE zu ADMIN wird die Kernvariante fast gestartet.
-q | -quick | Beim Übergang vom Betriebszustand OFFLINE zu ADMIN wird die Kernvariante quick gestartet.
-s | -slow | Beim Übergang vom Betriebszustand OFFLINE zu ADMIN wird die Kernvariante slow gestartet.

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat.


Überführen in den Betriebszustand OFFLINE (MaxDB: Database Manager CLI)

Überführen in den Betriebszustand OFFLINE

Verwendung

Die Datenbankinstanz wird in den Betriebszustand OFFLINE überführt.

Voraussetzungen

Sie haben die Benutzerberechtigung DBStop.

Syntax

db_offline [<option>]

Optionen

Sie können das Kommando mit der folgenden Option <option> eingeben:

-d | –dump

Beim Übergang vom Betriebszustand ONLINE oder ADMIN zu OFFLINE wird ein Dump erzeugt.

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat.


Überführen in den Betriebszustand ONLINE (MaxDB: Database Manager CLI)

Überführen in den Betriebszustand ONLINE

Verwendung

Sie überführen die Datenbankinstanz im normalen Datenbankbetrieb in den Betriebszustand ONLINE.

Sie verwenden dieses Kommando auch nach einem Datenbankfehler, bei dem die Log-Sicherungen intakt geblieben sind, die Daten aber mit Hilfe einer vollständigen Datensicherung wiederhergestellt werden mussten. Dafür haben Sie zuvor die vollständige Datensicherung eingelesen (siehe: Wiederherstellen der Datenbankinstanz). Durch Angabe der Option –u | -until und eines Zeitpunktes legen Sie fest, bis wann die noch in der Datenbankinstanz vorhandenen Log-Einträge nachgefahren werden sollen.

Voraussetzungen

Sie haben die Serverberechtigung DBStart.

Syntax

db_online [<option>]

Optionen

Sie können das Kommando mit folgenden Optionen <option> eingeben:

-f | -fast

Es wird die Kernvariante fast gestartet.

-q | -quick

Es wird die Kernvariante quick gestartet.

-s | -slow

Es wird die Kernvariante slow gestartet.

[-u | -until] <date> <time>
<date> ::= <yyyymmdd>
<time> ::= <hhmmss>

Zeitpunkt (Jahr, Monat, Tag, Stunde, Minuten, Sekunden), bis zu dem die noch in der Datenbankinstanz vorhandenen Log-Einträge nachgefahren werden sollen.

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat.


Überführen in den Betriebszustand STANDBY (MaxDB: Database Manager CLI)

Überführen in den Betriebszustand STANDBY

Verwendung

Eine Standby-Komponente wird in den Betriebszustand STANDBY überführt und dem Hot Standby-System hinzugefügt. Hierbei erhält die Standby-Komponente eine exakte Kopie der Konfiguration der Master-Komponente.

Voraussetzungen

· Das Hot Standby-System ist im Betriebszustand ONLINE.

· Alle Datenpfade und Dateien (Arbeitsverzeichnis, Volumes, Tracedateien etc.) von Master- und Standby-Komponente stimmen überein.

· Sie haben die Serverberechtigung DBStart.

Syntax

db_standby <hs_node_nnn>

hs_node_nnn

Rechnername / Adresse der Standby-Komponente nnn.

Antwort

Sie erhalten eine OK-Meldung.


Sichern und Wiederherstellen von Datenbankinstanzen (MaxDB: Database Manager CLI)

Sichern und Wiederherstellen von Datenbankinstanzen

Verwendung

Sie können mit Hilfe des Database Manager CLI vollständige und inkrementelle Datensicherungen sowie Log-Sicherungen durchführen und diese Sicherungen im Falle eines Hardwarefehlers wieder einlesen, um einen konsistenten Datenbankzustand wiederherzustellen.

Voraussetzungen

Beachten Sie die für die jeweiligen DBM-Kommandos notwendigen Benutzerberechtigungen.

Kommandos zu Sicherungsmedien

Kommandos zum Sichern und Archivieren

Kommandos zur Sicherungshistorie

Kommandos zu externen Sicherungskennungen

Kommandos zu Sicherungsinformationen

Kommandos zum Wiederherstellen


Kommandos zu Sicherungsmedien (MaxDB: Database Manager CLI)

Kommandos zu Sicherungsmedien

Verwendung

Jeder Sicherungsaktion wird ein Sicherungsmedium zugeordnet. Ein Sicherungsmedium kann eine Datei, ein Band oder eine Pipe sein.

In der Mediendefinition werden die Pfadangaben und Eigenschaften der Bandstation bzw. der Bänder oder Dateien unter einem freigewählten praxisbezogenen Namen zusammengefasst. Unter diesen Namen können die Sicherungsmedien für alle möglichen Sicherungsvorgänge wiederverwendet werden.

Voraussetzungen

Beachten Sie die für die jeweiligen DBM-Kommandos notwendigen Benutzerberechtigungen.

Syntax

Änderungsdatum der Mediendefinitionsdatei | medium_date
Anlegen oder Ändern eines Sicherungsmediums | medium_put
Anzeigen der Mediendaten | medium_get
Liste aller definierten Sicherungsmedien | medium_getall
Löschen eines Sicherungsmediums | medium_delete
Übernehmen einer vorhandenen Mediendefinition | medium_migrate


Anzeigen des Änderungsdatums der Mediendefinitionsdatei (MaxDB: Database Manager CLI)

Anzeigen des Änderungsdatums der Mediendefinitionsdatei

Verwendung

Sie lassen sich das Datum und die Uhrzeit anzeigen, an dem die aktuelle Mediendefinitionsdatei letztmalig geändert wurde (Siehe auch: Dateien des Database Manager).

Voraussetzungen

Sie haben die Serverberechtigung Backup und DBInfoRead.

Syntax

medium_date

Antwort

OK<NL>
<yyyymmdd><HHMMSS><NL>

Im Fehlerfall siehe Antwortformat.


Anlegen oder Ändern eines Sicherungsmediums (MaxDB: Database Manager CLI)

Anlegen oder Ändern eines Sicherungsmediums

Verwendung

Sie legen ein neues Sicherungsmedium an oder ändern die Daten eines bereits vorhandenen Sicherungsmediums.

Voraussetzungen

Sie haben die Serverberechtigung Backup.

Syntax

medium_put <name> <location> <type> <backup_type> <size> <block_size> <overwrite> <autoloader> <os_command> <tool_type>

<name>

Das in <name> angegebene Sicherungsmedium wird angelegt oder aktualisiert. Der Medienname kann aus einem Gruppennamen und einem Member-Namen bestehen. Diese sind dann durch einen Schrägstrich getrennt.

<name> ::= [<group_name>/]<member_name>

Derartige Gruppen paralleler Sicherungsmedien finden bei parallelen Datensicherungen bzw. Wiederherstellungen Verwendung. Für das Anlegen einer Gruppe paralleler Sicherungsmedien führen Sie mehrfach nacheinander das Kommando zum Anlegen eines Sicherungsmediums aus. Indem Sie dabei für <group_name> immer den gleichen Namen und für <member_name> jeweils einen anderen Namen angeben, ordnen Sie die Medien derselben Gruppe zu.

<location>

Name des Gerätes/der Datei, mit dem es über Betriebssystemfunktionen angesprochen werden kann

Beachten Sie beim Ändern eines vorhandenen Sicherungsmediums mit dem <backup_type> LOG und dem <type> FILE, dass das System nach erfolgter Sicherung der ursprünglich definierten <location> eine laufende Nummer hinzufügt, die hier mit angegeben werden muss.

<type>

Typ des Sicherungsmediums, mögliche Werte sind:

AUTO | TAPE | FILE | PIPE

Der Medientyp AUTO ist Vorschlagswert für das Kommando zum Einschalten der automatischen Logsicherung. Es kann nur ein Sicherungsmedium dieses Typs geben. Wenn bereits ein Sicherungsmedium des Typs AUTO vorhanden ist und Sie erneut ein Sicherungsmedium vom Typ AUTO anlegen, ändert das System den Medientyp des bereits vorhandenen Sicherungsmediums auf FILE.

Geben Sie TAPE für das Sichern auf ein nicht rückspulbares Band, FILE für das Sichern in eine Datei und PIPE für das Sichern in eine Pipe an.

Unter Microsoft Windows gilt: Der Name eines Sicherungsmediums vom Typ PIPE muss folgender Konvention entsprechen: \\.\pipe\<pipe_name>. Für ein Sicherungsmedium vom Typ TAPE muss die Pfadangabe folgender Konvention entsprechen: \\.\tape<running_number>. Wenn Sie für ein Sicherungsmedium vom Typ FILE einen relativen Pfad angeben, wird das Sicherungsmedium im Arbeitsverzeichnis der Datenbankinstanz abgelegt.

Unter UNIX ist die Pfadangabe für Sicherungsmedien der Typen FILE und PIPE frei wählbar. Wenn Sie relative Pfade angeben, werden die Sicherungsmedien im Arbeitsverzeichnis der Datenbankinstanz abgelegt. Für Sicherungsmedien vom Typ TAPE müssen Sie absolute Pfade angeben.

<backup_type>

Sicherungsart, für die das Sicherungsmedium benutzt werden soll,

mögliche Werte sind:

DATA | PAGES | LOG

Geben Sie DATA für eine vollständige Datensicherung, PAGES für eine inkrementelle Datensicherung und LOG für eine Log-Sicherung an.

<size>

Anzahl der Seiten, die maximal auf das Sicherungsmedium geschrieben werden können. Diese Angabe ist z. B. für einen korrekten Bandwechsel erforderlich. Bei ausreichend großen Sicherungsmedien können Sie hier eine Null angeben.

<block_size>

Anzahl der Seiten, die bei einem Zugriff auf das Sicherungsmedium übertragen werden (Default: 8).

<overwrite>

Option ist nur für den Medientyp FILE (Datei) relevant und definiert das Verhalten für den Fall, dass die Datei bereits vorhanden ist
mögliche Werte sind:

YES | NO

Wenn Sie YES angeben und die Datei bereits existiert, wird sie mit der neuen Sicherung überschrieben. Wenn Sie NO angeben und die Datei bereits existiert, schlägt die Sicherung fehl.

<autoloader>

Angabe, ob das Gerät das Sicherungsmedium automatisch wechselt,

ist nur unter Microsoft Windows relevant
Mögliche Werte sind:

YES | NO

<os_command>

Betriebssystemkommando, das vor dem Sichern auf ein Folgemedium oder dem Wiederherstellen von einem Folgemedium ausgeführt werden soll.

<tool_type>

zu verwendendes Sicherungswerkzeug,

mögliche Werte sind:

NONE | BACK | NSR | TSM

Wenn Sie den Wert NONE und als <type> PIPE angeben, muss unter UNIX die Pipe vor dem Beginn der Sicherung bereits angelegt sein, auf Microsoft Windows darf sie noch nicht existieren.

Wenn Sie einen anderen Wert als NONE angeben, müssen Sie für <type> PIPE und für <size> 0 angeben. Die Pipe darf weder unter UNIX noch unter Microsoft Windows vor dem Beginn der Sicherung existieren.

Beispiele für das Anlegen von Sicherungsmedien

Antwort

OK

Im Fehlerfall siehe Antwortformat.


Beispiele für das Kommando medium_put (MaxDB: Database Manager CLI)

Beispiele für das Kommando medium_put

Definition einer Datei als Sicherungsmedium für eine interaktive Logsicherung:

dbmcli -d <database_name> -u <dbm_user>,<password> medium_put logsave /usr/maxdb/log FILE LOG

Definition einer Datei als Sicherungsmedium für eine automatische Logsicherung:

dbmcli -d <database_name> -u <dbm_user>,<password> medium_put autosave /usr/maxdb/auto FILE AUTO

Definition einer Datei als überschreibbares Sicherungsmedium für eine vollständige Datensicherung:

dbmcli -d <database_name> -u <dbm_user>,<password> medium_put completeF /usr/maxdb/complete FILE DATA 0 0 YES

Definition eines Bandgerätes als Sicherungsmedium für eine vollständige Datensicherung:

dbmcli -d <database_name> -u <dbm_user>,<password> medium_put completeT /dev/rft0 TAPE DATA 64000 8 NO

Definition einer Datei als Sicherungsmedium für eine inkrementelle Datensicherung:

dbmcli -d <database_name> -u <dbm_user>,<password> medium_put incrF /usr/maxdb/incr FILE PAGES

Definition einer Pipe als externes Sicherungsmedium für eine inkrementelle Datensicherung mit einem externen Sicherungswerkzeug auf Microsoft Windows:

dbmcli -d <database_name> -u <dbm_user>,<password> medium_put ADSM123 \\.\pipe\example PIPE PAGES


Anzeigen der Mediendaten (MaxDB: Database Manager CLI)

Anzeigen der Mediendaten

Verwendung

Sie lassen sich die Mediendaten des in <name> angegebenen Sicherungsmediums anzeigen.

Voraussetzungen

Sie haben die DBM-Benutzerberechtigung Backup oder DBInfoRead.

Syntax

medium_get <name>

Antwort

OK<NL>
<name> <location> <type> <backup_type> <size> <block_size> <overwrite> <autoldr> <oscmd> <date_created> <date_modified> <NL>

Die Felder der einzeiligen Ausgabe sind durch Tabulator voneinander getrennt.

Werte für die einzelnen Felder der Antwort

<name>

Name zur Identifizierung des Sicherungsmediums. Der Name des Sicherungsmediums kann aus einem Gruppennamen und einem Member-Namen bestehen. Diese sind dann durch einen Schrägstrich getrennt.

<name> ::= [<group_name>/]<member_name>

Derartige Gruppen finden bei parallelen Sicherungs- bzw. Wiederherstellungsaktionen Verwendung.

<location>

Name des Gerätes/der Datei, mit dem es über Betriebssystemfunktionen angesprochen werden kann

<type>

Typ des Sicherungsmediums, mögliche Werte sind:
TAPE
FILE
NO-REWIND
PIPE
AUTOLOADER
UNKNOWN

<backup_type>

Sicherungsart, für die das Sicherungsmedium benutzt werden soll. Mögliche Werte sind
DATA für eine vollständige Datensicherung
PAGES für eine inkrementelle Datensicherung
LOG für eine Log-Sicherung

<size>

Anzahl der Seiten, die maximal auf das Sicherungsmedium geschrieben werden können, dies ist z. B. für einen korrekten Bandwechsel erforderlich
Bei ausreichend großen Sicherungsmedien kann hier eine Null angegeben werden.

<block_size>

Anzahl der Seiten, die bei einem Zugriff auf das Sicherungsmedium übertragen werden (Default: 8).

<overwrite>

Option ist nur für den Medientyp FILE relevant und beschreibt das Verhalten für den Fall, dass die Datei bereits vorhanden ist
Zulässige Werte sind:
NO
YES
VERSION

<autoldr>

Angabe, ob das Gerät das Sicherungsmedium automatisch wechselt:
YES
NO

<oscmd>

Betriebssystemkommando, das vor dem Sichern auf ein Folgemedium oder dem Wiederherstellen von einem Folgemedium ausgeführt werden soll.

<date_created>

Datum, an dem das Sicherungsmedium angelegt wurde

<date_modified>

Datum, an dem das Sicherungsmedium geändert wurde

Im Fehlerfall siehe Antwortformat.


Liste aller definierten Sicherungsmedien (MaxDB: Database Manager CLI)

Liste aller definierten Sicherungsmedien

Verwendung

Sie rufen eine Liste aller definierten Sicherungsmedien ab.

Voraussetzungen

Sie haben die DBM-Benutzerberechtigung Backup oder DBInfoRead.

Syntax

medium_getall

Antwort

OK<NL>
 <name> <location> <type> <backup_type> <size> <block_size> <overwrite> <autoldr> <oscmd> <date_created> <date_modified> <NL>

<name> <location> <type> <backup_type> <size> <block_size> <overwrite> <autoldr> <oscmd> <date_created> <date_modified> <NL>

...

Werte für die einzelnen Felder der Antwort

<name>

Name zur Identifizierung des Sicherungsmediums. Der Medienname kann aus einem Gruppennamen und einem Member-Namen bestehen. Diese sind dann durch einen Schrägstrich getrennt.

<name> ::= [<grpname>/]<membername>

Derartige Gruppen finden bei parallelen Datensicherungen bzw. parallelen Wiederherstellungsaktionen Verwendung.

<location>

Name des Gerätes/ der Datei,
Wird bei Betriebssystemfunktionen verwendet

<type>

Typ des Sicherungsmediums. Mögliche Werte sind:
TAPE
FILE
NO-REWIND
PIPE
AUTOLOADER
UNKNOWN

<backup_type>

Sicherungsart, für die das Sicherungsmedium benutzt werden soll:
DATA (vollständige Datensicherung)
PAGES (inkrementelle Datensicherung)
LOG (Log-Sicherung)

<size>

Anzahl der Seiten, die maximal auf das Medium geschrieben werden können. Dies ist z. B. für einen korrekten Bandwechsel erforderlich. Bei ausreichend großen Sicherungsmedien kann hier eine Null angegeben werden.

<block_size>

Anzahl der Seiten, die bei einem Zugriff auf das Sicherungsmedium übertragen werden (Vorschlagswert: 8).

<overwrite>

Diese Option ist nur relevant beim Medientyp FILE und beschreibt das Verhalten für den Fall, dass die Datei bereits vorhanden ist. Zulässige Werte sind:
NO
YES
VERSION

<autoldr>

Angabe, ob das Gerät das Sicherungsmedium automatisch wechselt:
YES
NO

<oscmd>

Betriebssystemkommando, das vor dem Sichern auf ein Folgemedium oder dem Wiederherstellen von einem Folgemedium ausgeführt werden soll.

Im Fehlerfall siehe Antwortformat


Löschen eines Sicherungsmediums (MaxDB: Database Manager CLI)

Löschen eines Sicherungsmediums

Verwendung

Sie löschen das unter <name> angegebene Sicherungsmedium.

Voraussetzungen

Sie haben die DBM-Benutzerberechtigung Backup.

Syntax

medium_delete <name>

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat.


Übernehmen einer vorhandenen Mediendefinition (MaxDB: Database Manager CLI)

Übernehmen einer vorhandenen Mediendefinition

Verwendung

Sie können vorhandene Definitionen für Sicherungsmedien aus der Mediendefinitionsdatei control.med (Datenbankversion 6.2) in die neue Mediendefinitionsdatei dbm.mmm (ab Datenbankversion 7.2.4.2) übernehmen.

Siehe auch: Dateien des Database Manager

Bei einem identischen Mediennamen in der alten und neuen Mediendefinitionsdatei wird die Mediendefinition der alten Datei nicht übernommen.

Da die alten Definitionen für Sicherungsmedien keine Sicherungsart (inkrementelle Datensicherung, vollständige Datensicherung oder Log-Sicherung) enthielten, sollte diese nachträglich mit dem Kommando medium_put (Anlegen oder Ändern eines Sicherungsmediums) definiert werden. Andernfalls muss sie beim Starten des Sicherungsvorganges angegeben werden.

Voraussetzungen

Sie haben die DBM-Benutzerberechtigung Backup oder DBInfoRead.

Syntax

medium_migrate

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat.


Kommandos zum Sichern und Archivieren (MaxDB: Database Manager CLI)

Kommandos zum Sichern und Archivieren

Verwendung

Mit dem Database Manager können Sie vollständige und inkrementelle Datensicherungen sowie Log-Sicherungen durchführen. Für Log-Sicherungen empfehlen wir, die automatische Log-Sicherung einzuschalten. Sie haben jedoch auch die Möglichkeit der interaktiven Log-Sicherung.

Voraussetzungen

Beachten Sie die für die jeweiligen DBM-Kommandos notwendigen Benutzerberechtigungen.

Die Ausführung des Kommandos zum Sichern der Datenbankinstanz ist die Voraussetzung für die Ausführung aller anderen Sicherungskommandos.

Syntax

Abbrechen der automatischen Log-Sicherung | autolog_cancel
Anzeigen der Funktion zur automatischen Log-Sicherung | autolog_show
Anzeigen des aktuellen Standes der Sicherung | backup_state
Ausschalten der automatischen Log-Sicherung | autolog_off
Beenden einer unterbrochenen Sicherung | backup_cancel
Einfaches Archivieren der Versionsdateien | archive_stage
Einschalten der automatischen Log-Sicherung | autolog_on
Fortsetzen der Sicherung ohne das zuletzt als voll gemeldete Medium | backup_ignore
Mehrfaches Archivieren der Versionsdateien | archive_stage_repeat
Sichern auf ein Folgemedium | backup_replace
Sichern der Datenbankinstanz | backup_start
Sichern mit externen Sicherungswerkzeugen | ---


Abbrechen der automatischen Log-Sicherung (MaxDB: Database Manager CLI)

Abbrechen der automatischen Log-Sicherung

Verwendung

Sie brechen eine laufende automatische Log-Sicherung ab. Dabei wird die Funktion automatische Log-Sicherung deaktiviert. Sie können dieses Kommando verwenden, um beispielsweise technischen Problemen des Sicherungsmediums zuvorzukommen.

Wenn Sie zu einem späteren Zeitpunkt das Log wieder automatisch sichern wollen, müssen Sie die automatische Log-Sicherung explizit wieder einschalten (Einschalten der automatischen Log-Sicherung).

Voraussetzungen

Sie haben die DBM-Benutzerberechtigung Backup.

Syntax

autolog_cancel

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat.


Anzeigen der Funktion zur automatischen Logsicherung (MaxDB: Database Manager CLI)

Anzeigen der Funktion zur automatischen Logsicherung

Verwendung

Sie fragen ab, ob die automatische Log-Sicherung ein- oder ausgeschaltet ist.

Voraussetzungen

Sie haben die DBM-Benutzerberechtigung DBFileRead oder DBInfoRead.

Syntax

autolog_show

dbmcli -d <database_name> -u <userid>,<password> autolog_show

OK<NL>
AUTOLOG IS OFF <NL>

Antwort

OK<NL>
AUTOLOG IS (OFF | ON)<NL>

AUTOLOG IS ON | Automatische Logsicherung ist eingeschaltet
AUTOLOG IS OFF | Automatische Logsicherung ist ausgeschaltet

Im Fehlerfall siehe Antwortformat.


Anzeigen des aktuellen Standes der Sicherung (MaxDB: Database Manager CLI)

Anzeigen des aktuellen Standes der Sicherung

Verwendung

Sie lassen sich den aktuellen Stand des Sicherungsvorganges anzeigen.

Diese Anfrage kann parallel zum Sichern der Datenbankinstanz erfolgen.

Voraussetzungen

Sie haben die DBM-Benutzerberechtigung Backup.

Sie haben eine Sicherung gestartet (Sichern der Datenbankinstanz).

Syntax

backup_state

Antwort

OK<NL>
Returncode              <value><NL>
Date                    [<value>]<NL>
Time                    [<value>]<NL>
Server                  [<value>]<NL>
Database                [<value>]<NL>
Kernel Version          [<value>]<NL>
Pages Transferred       [<value>]<NL>
Pages Left              [<value>]<NL>
Volume Count            [<value>]<NL>
Medianame               [<value>]<NL>
Location                [<value>]<NL>
Errortext               [<value>]<NL>
Label                   [<value>]<NL>
Is Consistent           [<value>]<NL>
First LOG Page          [<value>]<NL>
Last LOG Page           [<value>]<NL>
DB Stamp 1 Date         [<value>]<NL>
DB Stamp 1 Time         [<value>]<NL>
DB Stamp 2 Date         [<value>]<NL>
DB Stamp 2 Time         [<value>]<NL>
Page Count              [<value>]<NL>
Devices Used            [<value>]<NL>
Database ID             [<value>]<NL>
Max Used Data Page      [<value>]<NL>

Werte für die einzelnen Felder der Antwort

Date

Datum

Time

Zeit

Server

Name des Datenbankrechners

Database

Name der Datenbankinstanz

Kernel Version

Version der Datenbank-Software

Pages Transferred

Anzahl der übertragenen Seiten

Pages Left

Anzahl noch zu übertragender Seiten

Volumes

Anzahl der verwendeten Sicherungsmedien

Medianame

Name des Sicherungsmediums

Location

Datei- oder Gerätename

Errortext

Text der Fehlermeldung

Label

Sicherungskennung

Is Consistent

nur für Datensicherung: Sicherung ist in sich konsistent

First LOG Page

bei Datensicherung: erste einzulesende Seite der Log-Sicherung

bei Log-Sicherung: erste gesicherte Seite im Log

Last LOG Page

nur für Log-Sicherung: letzte gesicherte Seite im Log

DB Stamp 1 Date
DB Stamp 1 Time

Zeitstempel der ersten Seite der Log-Sicherung

DB Stamp 2 Date
DB Stamp 2 Time

Zeitstempel der letzten Seite der Log-Sicherung

Page Count

Gesamtzahl der gesicherten Seiten

Devices Used

Anzahl der verwendeten Sicherungsgeräte

Database ID

Datenbankkennung (zur Identifikation zueinandergehöriger Daten- und Log-Sicherungen)

Max Used Data Page

höchste vergebene Seitenzahl (Hinweis für minimale Datenbankgröße bei Einlesen der Sicherung)

Im Fehlerfall siehe Antwortformat.


Archivieren der Versionsdateien des Log-Bereichs (MaxDB: Database Manager CLI)

Archivieren der Versionsdateien des Log-Bereichs

Zur Erhöhung der Sicherheit Ihres Datenbanksystems empfehlen wir Ihnen, die bei der Log-Sicherung erstellten und auf der Festplatte Ihres Systems abgelegten Versionsdateien in regelmäßigen Abständen zu archivieren. Kopieren Sie die Versionsdateien dazu auf ein anderes Sicherungsmedium.

Sie können diesen Vorgang manuell durchführen oder externe Sicherungswerkzeuge verwenden. Welche externen Sicherungswerkzeuge vom Datenbanksystem MaxDB unterstützt werden, ist in der Dokumentation Datenbankverwaltung beschrieben.

Für das Archivieren mit Hilfe externer Sicherungswerkzeuge stehen Ihnen DBM-Kommandos zur Verfügung, mit denen Sie die Versionsdateien einfach oder mehrfach auf externe Sicherungsmedien kopieren können.

Die Kommandos zum Archivieren der Versionsdateien auf externen Sicherungsmedien werden erst ab der Datenbankversion 7.04.03 unterstützt.

Einfaches Archivieren der Versionsdateien

Mehrfaches Archivieren der Versionsdateien


Einfaches Archivieren der Versionsdateien (MaxDB: Database Manager CLI)

Einfaches Archivieren der Versionsdateien

Verwendung

Sie archivieren die Originale der Versionsdateien der Log-Sicherungen. Zu diesem Zweck kopieren Sie die Versionsdateien mit Hilfe eines externen Sicherungswerkzeugs auf ein externes Sicherungsmedium.

Das Kommando zum Einfachen Archivieren der Versionsdateien auf externen Sicherungsmedien wird erst ab der Datenbankversion 7.04.03 unterstützt.

Wenn Sie die gleichen Versionsdateien mehrfach auf verschiedenen externen Sicherungsmedien archivieren wollen, verwenden Sie zunächst das hier beschriebene Kommando archive_stage und anschließend das Kommando zum mehrfachen Archivieren der Versionsdateien des Log-Bereichs.

Voraussetzungen

Ihre Datenbankinstanz hat mindestens die Version 7.04.03.

Sie haben die DBM-Benutzerberechtigung Backup .

Sie haben das Log gesichert (Log-Sicherung).

Das externe Sicherungsmedium ist für die Sicherungsart LOG definiert (Anlegen oder Ändern eines Sicherungsmediums).

Syntax

archive_stage <ext_backup_medium> <log_medium> [VERIFY | NOVERIFY] [REMOVE | KEEP] [FNL <list>]

<ext_backup_medium> | Name des externen Sicherungsmediums
<log_medium> | Name des Sicherungsmediums, das für die Log-Sicherung verwendet wurde
VERIFY | Systemvorschlag Die archivierten Dateien werden mit den Originaldateien verglichen.
NOVERIFY | Vom System werden nur die üblichen Prüfungen durchgeführt, um festzustellen, ob die Sicherung erfolgreich war. Sie erhalten gegebenenfalls Fehlermeldungen und Ausgaben der Sicherungswerkzeuge.
REMOVE | Systemvorschlag Die Originaldateien werden gelöscht, nachdem sie erfolgreich auf dem externen Sicherungsmedium archiviert wurden.
KEEP | Die Originaldateien werden archiviert, anschließend aber nicht gelöscht.
FNL | File Number List: Schlüsselwort für die Liste der zu archivierenden Dateien
<list> | Dateiname oder Bereich von Dateinamen, führende Nullen können weggelassen werden, mehrere Angaben sind durch Komma zu trennen Wenn Sie keine Dateiliste angeben, werden alle auf dem Sicherungsmedium vorhandenen Versionsdateien kopiert, die auch in der Sicherungshistorie enthalten sind.

Im Normalfall ist die Angabe einer Dateinummernliste nicht notwendig, da mit dem Kommando archive_stage automatisch alle fertiggestellten Versionsdateien archiviert werden. Die Informationen darüber, welche Dateien fertiggestellt sind, entnimmt das System der Sicherungshistorie.
Geben Sie das Schlüsselwort FNL und die Dateinummernliste nur dann an, wenn Versionsdateien aufgrund eines Fehlers nicht in der Sicherungshistorie stehen, Sie aber sicher sind, dass diese erstellt wurden. Dies wäre beispielsweise der Fall, wenn die Versionsdateien mit den Nummern 10 und 12 in der Sicherungshistorie stehen, aber die Nummer 11 fehlt.

Archivieren der Originale der Versionsdateien 1 und 3-10
Diese befinden sich auf dem Sicherungsmedium LOGMEDIUM und werden auf dem externen Sicherungsmedium EXTMEDIUM archiviert. Es sollen dabei nur die üblichen Systemprüfungen durchgeführt werden. Die Versionsdateien sollen anschließend nicht gelöscht werden.

archive_stage EXTMEDIUM LOGMEDIUM NOVERIFY KEEP FNL 1,3-10

Antwort:

OK
Processed Stage Files  9
Bytes Processed     12845056
Deleted Stage Files    0
Remaining Stage Files  2

Ergebnis

Sie erhalten eine OK-Meldung und Informationen über die archivierten Versionsdateien.

Die archivierten Versionsdateien erhalten eigene externe Sicherungskennungen und werden in die Sicherungshistorie eingetragen.

Processed Stage Files | Bearbeitete Versionsdateien
Bytes Processed | Bearbeitete Bytes
Deleted Stage Files | Gelöschte Versionsdateien
Remaining Stage Files | Verbleibende Versionsdateien


Mehrfaches Archivieren der Versionsdateien (MaxDB: Database Manager CLI)

Mehrfaches Archivieren der Versionsdateien

Verwendung

Sie archivieren die Originale der Versionsdateien der Log-Sicherungen mehrfach auf verschiedenen externen Sicherungsmedien. Dies kann auch für unterschiedliche externe Sicherungswerkzeuge erfolgen.

Es werden genau jene Versionsdateien bearbeitet, die mit dem zuvor auszuführenden Kommando zum einfachen Archivieren der Versionsdateien auf das erste externe Sicherungsmedium kopiert wurden.

Das Kommando zum Mehrfachen Archivieren der Versionsdateien auf externen Sicherungsmedien wird erst ab der Datenbankversion 7.04.03 unterstützt.

Es kann nur innerhalb derselben Sitzung mit dem DBM-Server ausgeführt werden, wie das zuvor auszuführende Kommando zum einfachen Archivieren der Versionsdateien (Eröffnen einer DBM-Server-Sitzung).

Voraussetzungen

Ihre Datenbankinstanz hat mindestens die Version 7.04.03.

Sie haben die DBM-Benutzerberechtigung Backup .

Sie haben zunächst das Kommando zum einfachen Archivieren der Versionsdateien mit Angabe der Option KEEP ausgeführt.

Die externen Sicherungsmedien sind für die Sicherungsart LOG definiert (Anlegen oder Ändern eines Sicherungsmediums).

Syntax

archive_stage_repeat <ext_backup_medium> [VERIFY | NOVERIFY] [REMOVE | KEEP]

<ext_backup_medium> | Name des externen Sicherungsmediums
VERIFY | Systemvorschlag Die archivierten Dateien werden mit den Originaldateien verglichen.
NOVERIFY | Vom System werden nur die üblichen Prüfungen durchgeführt, um festzustellen, ob die Sicherung erfolgreich war. Sie erhalten gegebenenfalls Fehlermeldungen und Ausgaben der Sicherungswerkzeuge.
REMOVE | Systemvorschlag Die Originaldateien werden gelöscht, nachdem sie erfolgreich auf dem externen Sicherungsmedium archiviert wurden.
KEEP | Die Originaldateien werden archiviert, anschließend aber nicht gelöscht.

Mehrfaches Archivieren der originalen Versionsdateien 1 und 3-10
Diese befinden sich auf dem Sicherungsmedium LOGMEDIUM, werden zunächst auf dem externen Sicherungsmedium EXTMEDIUM_1 und danach auf dem Medium EXTMEDIUM_2archiviert. Es sollen dabei nur die üblichen Systemprüfungen durchgeführt werden. Die Versionsdateien sollen anschließend nicht gelöscht werden.

archive_stage EXTMEDIUM_1 LOGMEDIUM NOVERIFY KEEP FNL 1,3-10

Antwort:
OK
Processed Stage Files  9
Bytes Processed     12845056
Deleted Stage Files    0
Remaining Stage Files  2

archive_stage_repeat EXTMEDIUM_2

Antwort:
OK
Processed Stage Files  9
Bytes Processed     12845056
Deleted Stage Files    9
Remaining Stage Files  0

Ergebnis

Sie erhalten eine OK-Meldung und Informationen über die archivierten Versionsdateien.

Die archivierten Versionsdateien erhalten eigene externe Sicherungskennungen und werden in die Sicherungshistorie eingetragen.

Processed Stage Files | Bearbeitete Versionsdateien
Bytes Processed | Bearbeitete Bytes
Deleted Stage Files | Gelöschte Versionsdateien
Remaining Stage Files | Verbleibende Versionsdateien


Ausschalten der automatischen Log-Sicherung (MaxDB: Database Manager CLI)

Ausschalten der automatischen Log-Sicherung

Verwendung

Sie schalten die automatische Log-Sicherung aus.

Voraussetzungen

Sie haben die DBM-Benutzerberechtigung Backup.

Syntax

autolog_off

dbmcli -d <database_name> -u <userid>,<password> autolog_off

OK

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat.


Beenden einer unterbrochenen Sicherung (MaxDB: Database Manager CLI)

Beenden einer unterbrochenen Sicherung

Verwendung

Sie beenden einen unterbrochenen Sicherungsvorgang endgültig.

Voraussetzungen

Sie haben die DBM-Benutzerberechtigung Backup .

Sie haben mit dem Sichern der Datenbankinstanz begonnen. Der Sicherungsvorgang wurde unterbrochen.

Syntax

backup_cancel

Antwort

Bei der Antwort auf dieses Kommando ist nur das Feld Returncode mit einem Wert belegt.

OK<NL>
Returncode <value>

Im Fehlerfall siehe Antwortformat .


Einschalten der automatischen Log-Sicherung (MaxDB: Database Manager CLI)

Einschalten der automatischen Log-Sicherung

Verwendung

Sie schalten die automatische Log-Sicherung ein. Geben Sie für <medium> das Sicherungsmedium an, auf dem das Log automatisch gesichert werden soll.

Voraussetzungen

Sie haben die DBM-Benutzerberechtigung Backup.

Syntax

autolog_on [<medium>]

Für das erstmalige Einschalten der automatischen Log-Sicherung müssen Sie ein geeignetes Medium angeben. Nachfolgend verwendet der Database Manager das für die automatische Log-Sicherung zuletzt verwendete Medium, sofern Sie kein anderes angeben.

dbmcli -d <database_name> -u <dbm_user>,<password> autolog_on [<medium>]

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat.


Fortsetzen der Sicherung ohne das zuletzt als voll gemeldete Med (MaxDB: Database Manager CLI)

Fortsetzen der Sicherung ohne das zuletzt als voll gemeldete Medium

Verwendung

Mit diesem Kommando setzen Sie eine Sicherung ohne das zuletzt als voll gemeldete Medium fort.

Voraussetzungen

Sie haben die DBM-Benutzerberechtigung Backup .

Sie haben das Sichern der Datenbankinstanz gestartet. Die Sicherung wurde unterbrochen, weil das Sicherungsmedium als voll gemeldet wurde.

Syntax

backup_ignore

Antwort

Als Antwort auf dieses Kommando werden die vom Kern gelieferten Informationen über die Sicherung ausgegeben.

Dies erfolgt erst dann, wenn die Sicherung beendet ist oder unterbrochen wurde. Die Ausführung dieses Kommandos kann deshalb sehr lange dauern.

OK<NL>
Returncode              <value><NL>
Date                    [<value>]<NL>
Time                    [<value>]<NL>
Server                  [<value>]<NL>
Database                [<value>]<NL>
Kernel Version          [<value>]<NL>
Pages Transferred       [<value>]<NL>
Pages Left              [<value>]<NL>
Volume Count            [<value>]<NL>
Medianame               [<value>]<NL>
Location                [<value>]<NL>
Errortext               [<value>]<NL>
Label                   [<value>]<NL>
Is Consistent           [<value>]<NL>
First LOG Page          [<value>]<NL>
Last LOG Page           [<value>]<NL>
DB Stamp 1 Date         [<value>]<NL>
DB Stamp 1 Time         [<value>]<NL>
DB Stamp 2 Date         [<value>]<NL>
DB Stamp 2 Time         [<value>]<NL>
Page Count              [<value>]<NL>
Devices Used            [<value>]<NL>

Es ist insbesondere das Antwortfeld Returncode auszuwerten, das einen vom Kern gelieferten numerischen Wert enthält.

Siehe auch: Meldungen

Wenn sich aus der Meldungsnummer ergibt, dass die Sicherung nur unterbrochen wurde, muss die Sitzung mit einem Folgekommando fortgesetzt (backup_replace, backup_ignore) oder beendet werden (backup_cancel).

Im Fehlerfall siehe Antwortformat.


Sichern auf ein Folgemedium (MaxDB: Database Manager CLI)

Sichern auf ein Folgemedium

Verwendung

Sie haben eine Sicherung gestartet. Diese wurde unterbrochen, weil das System gemeldet hat, dass das Sicherungsmedium voll ist.

Sie geben ein neues Sicherungsmedium an. Der Sicherungsvorgang wird auf diesem Medium fortgesetzt.

Voraussetzungen

Sie haben die DBM-Benutzerberechtigung Backup .

Syntax

backup_replace <medium>

Antwort

Als Antwort auf dieses Kommando werden die vom Kern gelieferten Informationen über die Sicherung ausgegeben.

Dies erfolgt erst dann, wenn die Sicherung beendet ist oder unterbrochen wurde. Die Ausführung dieses Kommandos kann deshalb sehr lange dauern.

OK<NL>
Returncode              <value><NL>
Date                    [<value>]<NL>
Time                    [<value>]<NL>
Server                  [<value>]<NL>
Database                [<value>]<NL>
Kernel Version          [<value>]<NL>
Pages Transferred       [<value>]<NL>
Pages Left              [<value>]<NL>
Volumn Count            [<value>]<NL>
Medianame               [<value>]<NL>
Location                [<value>]<NL>
Errortext               [<value>]<NL>
Label                   [<value>]<NL>
Is Consistent           [<value>]<NL>
First LOG Page          [<value>]<NL>
Last LOG Page           [<value>]<NL>
DB Stamp 1 Date         [<value>]<NL>
DB Stamp 1 Time         [<value>]<NL>
DB Stamp 2 Date         [<value>]<NL>
DB Stamp 2 Time         [<value>]<NL>
Page Count              [<value>]<NL>
Devices Used            [<value>]<NL>
Database ID             [<value>]<NL>
Max Used Data Page      [<value>]<NL>

Es ist insbesondere das Antwortfeld Returncode auszuwerten, das einen vom Kern gelieferten numerischen Wert enthält.

Siehe auch: Meldungen

Wenn sich aus der Meldungsnummer ergibt, dass die Sicherung nur unterbrochen wurde, muss die Sitzung mit einem Folgekommando fortgesetzt (backup_replace, backup_ignore) oder beendet werden (backup_cancel).

Werte für die einzelnen Felder der Antwort

Date

Datum

Time

Zeit

Server

Name des Datenbankrechners

Database

Name der Datenbankinstanz

Kernel Version

Version des Datenbankkerns

Pages Transferred

Anzahl der übertragenen Seiten

Pages Left

Anzahl noch zu übertragender Seiten

Volumes

Anzahl der verwendeten Sicherungsmedien

Medianame

Name des Sicherungsmediums

Location

Datei- oder Gerätename

Errortext

Text der Fehlermeldung

Label

Sicherungskennung

Is Consistent

nur für Datensicherung: Sicherung ist in sich konsistent

First LOG Page

bei Datensicherung: erste einzulesende Seite der Log-Sicherung

bei Log-Sicherung: erste gesicherte Seite im Log

Last LOG Page

nur für Log-Sicherung: letzte gesicherte Seite im Log

DB Stamp 1 Date
DB Stamp 1 Time

Zeitstempel der ersten Seite der Log-Sicherung

DB Stamp 2 Date
DB Stamp 2 Time

Zeitstempel der letzten Seite der Log-Sicherung

Page Count

Gesamtzahl der gesicherten Seiten

Devices Used

Anzahl der verwendeten Sicherungsgeräte

Database ID

Datenbankkennung (zur Identifikation zueinandergehöriger Daten- und Log-Sicherungen)

Max Used Data Page

höchste vergebene Seitenzahl (Hinweis für minimale Datenbankgröße bei Einlesen der Sicherung)

Im Fehlerfall siehe Antwortformat.


Sichern der Datenbankinstanz (MaxDB: Database Manager CLI)

Sichern der Datenbankinstanz

Verwendung

Sie sichern die Datenbankinstanz.

Wenn Sie dafür ein externes Sicherungswerkzeug verwenden sollen, verfahren Sie, wie im Abschnitt Sichern mit Externen Sicherungswerkzeugen beschrieben. Andernfalls verwenden Sie das nachfolgend beschriebene Kommando backup_start.

Voraussetzungen

Sie haben die DBM-Benutzerberechtigung Backup .

Sie haben eine Utility-Sitzung gestartet.

Syntax

backup_start <medium> [<type>] [AUTOIGNORE]

<medium> | Name des Sicherungsmediums, Bei einer Sicherung auf eine Gruppe paralleler Sicherungsmedien ist hier der Name der Mediengruppe anzugeben. Dieser ist zuvor zu definieren (Anlegen oder Ändern eines Sicherungsmediums).
<type> | Art der Sicherung: DATA (vollständige Datensicherung), PAGES (inkrementelle Datensicherung) oder LOG (Log-Sicherung)
AUTOIGNORE | Die Sicherung soll automatisch ohne das zuletzt als voll gemeldete Sicherungsmedium fortgesetzt werden (Fortsetzen der Sicherung ohne das zuletzt als voll gemeldete Medium)

Wenn Sie bereits definierte Sicherungsmedien verwenden, beachten Sie unbedingt die aktuellen Regeln für die Namensgebung von Sicherungsmedien, um Fehlermeldungen zu vermeiden (Anlegen oder Ändern eines Sicherungsmediums).

Antwort

Als Antwort auf dieses Kommando werden die vom Kern gelieferten Informationen über die Sicherung ausgegeben.

Dies erfolgt erst dann, wenn die Sicherung beendet ist oder unterbrochen wurde. Die Ausführung dieses Kommandos kann deshalb sehr lange dauern.

OK<NL>
Returncode              <value><NL>
Date                    [<value>]<NL>
Time                    [<value>]<NL>
Server                  [<value>]<NL>
Database                [<value>]<NL>
Kernel Version          [<value>]<NL>
Pages Transferred       [<value>]<NL>
Pages Left              [<value>]<NL>
Volumes                 [<value>]<NL>
Medianame               [<value>]<NL>
Location                [<value>]<NL>
Error text              [<value>]<NL>
Label                   [<value>]<NL>
Is Consistent           [<value>]<NL>
First LOG Page          [<value>]<NL>
Last LOG Page           [<value>]<NL>
DB Stamp 1 Date         [<value>]<NL>
DB Stamp 1 Time         [<value>]<NL>
DB Stamp 2 Date         [<value>]<NL>
DB Stamp 2 Time         [<value>]<NL>
Page Count              [<value>]<NL>
Devices Used            [<value>]<NL>
Database ID             [<value>]<NL>
Max Used Data Page      [<value>]<NL>

Werte für die einzelnen Felder der Antwort

Date

Datum

Time

Zeit

Server

Name des Datenbankrechners

Database

Name der Datenbankinstanz

Kernel Version

Version des Datenbankkerns

Pages Transferred

Anzahl der übertragenen Seiten

Pages Left

Anzahl noch zu übertragender Seiten

Volumes

Anzahl der verwendeten Sicherungsmedien

Medianame

Name des Sicherungsmediums

Location

Datei- oder Gerätename

Errortext

Text der Fehlermeldung

Label

Sicherungskennung

Is Consistent

nur für Datensicherung: Sicherung ist in sich konsistent

First LOG Page

bei Datensicherung: erste einzulesende Seite der Log-Sicherung

bei Log-Sicherung: erste gesicherte Seite im Log

Last LOG Page

nur für Log-Sicherung: letzte gesicherte Seite im Log

DB Stamp 1 Date
DB Stamp 1 Time

Zeitstempel der ersten Seite der Log-Sicherung

DB Stamp 2 Date
DB Stamp 2 Time

Zeitstempel der letzten Seite der Log-Sicherung

Page Count

Gesamtzahl der gesicherten Seiten

Devices Used

Anzahl der verwendeten Sicherungsgeräte

Database ID

Datenbankkennung (zur Identifikation zueinandergehöriger Daten- und Log-Sicherungen)

Max Used Data Page

höchste vergebene Seitenzahl (Hinweis für minimale Datenbankgröße bei Einlesen der Sicherung)

Antwort im Fehlerfall

Wenn bei der Verwendung eines externen Sicherungswerkzeugs ein Fehler auftritt, erhalten Sie eine Antwort in folgender Form:

ERR<NL>
<errcode>, <err_description><NL>
[<extended_description><NL>]

<errcode> | Nummer der Fehlermeldung Siehe auch: Meldungen
<err_description> | Beschreibung des Fehlers
<extended_description> | Fehlerursache

Es können folgende Fehler auftreten:

<errcode> | <err_description> | Erläuterung
-24927 | ERR_TOOLCHK: the external backup tool was not found | Das externe Sicherungswerkzeug wurde nicht gefunden oder ist nicht korrekt installiert.
-24926 | ERR_MEDIUMCHK: the medium cannot be used with an external backup tool | Das angegebene Sicherungsmedium kann nicht mit dem Sicherungswerkzeug verwendet werden, auf das der Medienname hinweist (Anlegen oder Ändern eines Sicherungsmediums).
-24925 | ERR_PREPARE: prepare of the backup operation failed | Die für die Verwendung des Sicherungswerkzeugs notwendigen Vorbereitungen konnten nicht erfolgreich abgeschlossen werden.
-24924 | ERR_DBREQ: cannot start database kernel request | Die Datenbankinstanz konnte den Sicherungsvorgang nicht starten.
-24923 | ERR_TOOLREQ: cannot start external backup tool correctly | Das Sicherungswerkzeug konnte nicht korrekt gestartet werden.
-24922 | ERR_OPCHK: cannot check state of backup operation | Es war nicht möglich, die Zustände der Datenbankinstanz oder des Sicherungswerkzeugs zu überprüfen.
-24921 | ERR_POSTOP: cannot finish backup operation correctly | Obwohl die Sicherung erfolgreich war, konnten die notwendigen Nachbearbeitungsschritte nicht durchgeführt werden.
-24920 | ERR_BACKUPOP: backup operation was unsuccessful | Die Sicherung ist wegen eines Datenbankproblems oder eines Problemes des Sicherungswerkzeuges fehlgeschlagen.
-24919 | ERR_CLEANUP: cannot clean up correctly after backup operation | Obwohl die Sicherung erfolgreich war, konnten die in Anspruch genommenen temporären Systemressourcen nicht wieder freigegeben werden.

Wenn sich aus der Meldungsnummer ergibt, daß die Sicherung nur unterbrochen wurde, muß die Sitzung mit einem Folgekommando fortgesetzt (backup_replace, backup_ignore) oder beendet werden (backup_cancel).


Sichern mit externen Sicherungswerkzeugen (MaxDB: Database Manager CLI)

Sichern mit externen Sicherungswerkzeugen

Der Database Manager unterstützt die Verwendung von externen Sicherungswerkzeugen für vollständige und inkrementelle Datensicherungen sowie beim Archivieren von Log-Sicherungen.

Informationen darüber, welche externen Sicherungswerkzeuge von MaxDB unterstützt werden, finden Sie in der Dokumentation Datenbankverwaltung unter Externes Sicherungswerkzeug.

Das Sichern mit externen Sicherungswerkzeugen ist auch mit Hilfe von Skripten möglich. Jedoch schreibt der Database Manager in diesem Falle keine Sicherungshistorie. Er kann deshalb nicht prüfen, ob der Sicherungsvorgang erfolgreich war.

Verwendung der Sicherungswerkzeuge

Sie starten den Sicherungsvorgang direkt aus dem Database Manager CLI. Aufgrund der Namenskonventionen für Sicherungsmedien erkennt das Programm das externe Sicherungswerkzeug und startet es. Die Pipes zur Übertragung der Sicherungsdaten werden vom Database Manager CLI während des Sicherungsvorganges implizit angelegt. Sie dürfen vorher nicht vorhanden sein.

Voraussetzungen

· Sie haben die DBM-Benutzerberechtigung Backup .

· Die Datenbankinstanz befindet sich im Betriebszustand ADMIN oder ONLINE.

· Sie haben die Sicherungsmedien unter Berücksichtigung der Namenskonventionen für externe Sicherungsmedien angelegt (Anlegen oder Ändern eines Sicherungsmediums).

· Sie haben die MaxDB-Softwareinstallation für das gewünschte Sicherungswerkzeug konfiguriert (Siehe Dokumentation Anschluss Externer Sicherungswerkzeuge).

· Sie haben die erforderlichen Sicherungsmedien in das externe Sicherungswerkzeug eingelegt.

Vorgehensweise

Verfahren Sie wie unter Sichern der Datenbankinstanz bzw. Archivieren der Versionsdateien des Log-Bereichs beschrieben.

Sichern mit TSM:

dbmcli –u dbm,dbm –uUTL –d mydb backup_start ADSMData DATA

ADSMData | Sicherungsmedium für das externe Sicherungswerkzeug TSM
DATA | vollständige Datensicherung


Kommandos zur Sicherungshistorie (MaxDB: Database Manager CLI)

Kommandos zur Sicherungshistorie

Verwendung

In der Sicherungshistorie werden die Informationen zu allen erfolgten Sicherungs- und Wiederherstellungsaktionen chronologisch registriert.

Der Database Manager CLI bietet Ihnen eine Anzahl von DBM-Kommandos, mit deren Hilfe Sie mit der Sicherungshistorie arbeiten können.

Voraussetzungen

Sie haben die DBM-Benutzerberechtigung Backup oder DBInfoRead .

Syntax

Änderungsdatum der Sicherungshistorie | backup_history_date
Anzeigen der Sicherungshistorie | backup_history_list
Blättern in der Sicherungshistorie | backup_history_listnext
Holen der Sicherungshistorie | backup_history_open
Schließen einer Sicherungshistorie | backup_history_close


Anzeigen des Änderungsdatums der Sicherungshistorie (MaxDB: Database Manager CLI)

Anzeigen des Änderungsdatums der Sicherungshistorie

Verwendung

Sie lassen sich das Datum und die Uhrzeit anzeigen, an dem die aktuelle Sicherungshistorie zuletzt geändert wurde.

Voraussetzungen

Sie haben die Serverberechtigung Backup oder DBInfoRead .

Syntax

backup_history_date

Antwort

OK<NL>
<yyyymmdd><HHMMSS><NL>

Im Fehlerfall siehe Antwortformat.


Anzeigen der Sicherungshistorie (MaxDB: Database Manager CLI)

Anzeigen der Sicherungshistorie

Verwendung

Sie lassen sich den Inhalt der Sicherungshistorie anzeigen. Dabei haben Sie die Möglichkeit, die Anzeige durch die Angabe von Optionen einzuschränken oder zu erweitern.

Aus Gründen der Zeitersparnis empfiehlt es sich, zuvor das DBM-Kommando zum Holen der Sicherungshistorie auszuführen. Wenn Sie dies nicht tun, wird es implizit beim DBM-Kommando zum Anzeigen der Sicherungshistorie ausgeführt.

Voraussetzungen

Sie haben die Serverberechtigung Backup oder DBInfoRead .

Syntax

backup_history_list [-c <columns>] [-k <key>] [-l <label>] [-a <action>] [-r <restore_flag>] –u <yyyymmddHHMMSS>] –m] [-e] [-Inverted]

-c <columns>

Sie legen fest, welche Spalten ausgegeben werden sollen. Bei Angabe von mehreren Spalten trennen Sie diese durch Komma. Die Schlüsselwörter für die einzelnen Spalten sind:
KEY Schlüsselwert der Sicherung

LABEL Label der Sicherung

ACTION Sicherungsaktion

STAMP1 Erster Zeitstempel der Sicherung

STAMP2 Zweiter Zeitstempel der Sicherung

START Beginn der Sicherung

STOP Ende der Sicherung

FIRSTLOG Erste Log-IO-Sequenznummer der Sicherung

LASTLOG Letzte Log-IO-Sequenznummer der Sicherung

LOG Angabe ob nach dem Einlesen der Datensicherung noch Logsicherungen eingelesen werden müssen.

MEDIA Name des verwendeten Sicherungsmediums

PAGES Größe der Sicherung in Seiten

VOLUMES Anzahl der Teile aus denen die Sicherung besteht

RC Rückgabewert der Datenbankinstanz für die Sicherung

ERROR Fehlertext der Sicherung

-k <key>

Es wird nur die Zeile der Sicherungshistorie ausgegeben, die den unter <key> angegebenen Schlüsselwert enthält.

Diese Option darf nicht mit der Option -r verwendet werden.

-l <label>

Es werden nur die Zeilen der Sicherungshistorie ausgegeben, die die spezifizierte Sicherungskennung enthalten.

Diese Option darf nicht mit der Option -r verwendet werden.

-a <action>

Es werden nur die Zeilen der Sicherungshistorie ausgegeben, die der angegebenen Sicherungsart entsprechen.

Diese Option darf nicht mit der Option -r verwendet werden.

-r <restore_flag>

Es werden nur Sicherungen ausgegeben, die zum Wiederherstellen der Datenbankinstanz benötigt werden. Folgende Werte für <restore_flag> sind möglich:

* | LAST | <key>

Wenn Sie * angeben, werden alle Datensicherungen ausgegeben, die für das Wiederherstellen der Datenbankinsztanz erforderlich sind. Bei intaktem Log-Volume werden nur jene Datensicherungen ausgegeben, die zu dem vorhandenen Log passen.

Wenn Sie LAST angeben, werden – ausgehend von der letzten vollständigen Datensicherung - alle Sicherungen ausgegeben, die zum Wiederherstellen der Datenbankinstanz benötigt werden.

Wenn Sie den Schlüsselwert <key> der vollständigen Datensicherung angeben, dann werden alle Sicherungen ausgegeben, die zum Wiederherstellen der Datenbankinstanz benötigt werden. Den Schlüsselwert der vollständigen Datensicherung finden Sie in der 1. Spalte des Eintrags dieser Sicherung in der Sicherungshistorie.

-u <yyyymmddHHMMSS>

Es werden nur jene Zeilen der Sicherungshistorie ausgegeben, die Daten enthalten, welche vor dem angegebenen Zeitpunkt in der Datenbankinstanz gespeichert wurden.

Diese Option darf ausschließlich mit der Option -r verwendet werden.

-m

Zu jeder Zeile, die eine Sicherung betrifft, werden Informationen über das genutzte Sicherungsmedium ausgegeben.

-e

Zu jeder Zeile, die eine Sicherung betrifft, werden Informationen über die zugehörige externe Sicherungskennung ausgegeben.

-Inverted

Die Backup Historie wird in umgekehrter Reihenfolge ausgegeben (die jüngste Sicherung zuerst).

Antwort

OK<NL>
(END|CONTINUE)<NL>
<history_line><NL>
[<media_line><NL>]
[<external_backup_id-line><NL>]
<history_line><NL>
[<media_line><NL>]
[<external_backup_id-line><NL>]
....

Werte für die einzelnen Felder der Antwort

END | Der Inhalt der Sicherungshistorie wurde vollständig übertragen. Die Datei wird automatisch geschlossen.
CONTINUE | Die Sicherungshistorie hat noch weitere Einträge, die aufgrund der begrenzten Größe des Antwortspeichers nicht übertragen wurden. Sie können diese durch erneutes Eingeben des o. a. Kommandos abrufen oder die Sicherungshistorie schließen.
<history_line> | Angaben zu den angefertigten Sicherungen, die einzelnen Spalten, sind durch | getrennt. Pro Sicherung wird eine Zeile ausgegeben.
<media_line> | Die Informationen über das bei der Sicherung verwendete Medium Der Zeile ist ein M: vorangestellt, dem die durch | getrennten Spalten folgen.
<external_backup_id_line> | Wenn die Sicherung mit Hilfe eines externen Sicherungswerkzeuges erstellt wurde, sind hier die Informationen zur externen Sicherungskennung zu finden. Diese ist beim Wiederherstellen der Datenbankinstanz aus einem externen Sicherungswerkzeug anzugeben. Der Zeile ist ein E: vorangestellt, dem die durch | getrennten Spalten folgen.

Im Fehlerfall siehe Antwortformat.


Blättern in der Sicherungshistorie (MaxDB: Database Manager CLI)

Blättern in der Sicherungshistorie

Verwendung

Sie lesen die weitere Sicherungshistorie. Die beim Kommando zum Anzeigen der Sicherungshistorie angegebenen Optionen bleiben aktiv.

Voraussetzungen

Sie haben die Serverberechtigung Backup oder DBInfoRead .

Sie haben die Sicherungshistorie geholt (Holen der Sicherungshistorie) und das DBM-Kommando zum Anzeigen der Sicherungshistorie ausgeführt. Das Schlüsselwort CONTINUE in der Antwort zeigt an, dass die Datei noch nicht vollständig gelesen wurde.

Syntax

backup_history_listnext

Antwort

OK<NL>
[END|CONTINUE]<NL>
<history_line><NL>
[<media_line><NL>]
[<external_backup_id-line><NL>]
<history_line><NL>
[<media_line><NL>]
[<external_backup_id-line><NL>]
....

Werte für die einzelnen Felder der Antwort

END | Der Inhalt der Sicherungshistorie wurde vollständig an den Database Manager übertragen.
CONTINUE | Die Sicherungshistorie hat noch weitere Einträge, die aufgrund der begrenzten Größe des Antwortspeichers nicht übertragen wurden. Sie können diese durch erneutes Eingeben des o. a. Kommandos abrufen oder die Sicherungshistorie schließen.
<history_line> | Angaben zu den angefertigten Sicherungen, die einzelnen Spalten, sind durch | getrennt Pro Sicherung wird eine Zeile ausgegeben.
<media_line> | Die Informationen über das bei der Sicherung verwendete Sicherungsmedium Der Zeile ist ein M: vorangestellt, dem die durch | getrennten Spalten folgen.
<external_backup_id_line> | Wenn die Sicherung mit Hilfe eines externen Sicherungswerkzeuges erstellt wurde, finden Sie hier die externe Sicherungskennung. Diese muss beim Wiederherstellen der Datenbankinstanz aus einem externen Sicherungswerkzeug angegeben werden. Der Zeile ist ein E: vorangestellt, dem die durch | getrennten Spalten folgen.

Im Fehlerfall siehe Antwortformat.


Holen der Sicherungshistorie (MaxDB: Database Manager CLI)

Holen der Sicherungshistorie

Verwendung

Mit diesem DBM-Kommando holen Sie die aktuelle Sicherungshistorie in den Hauptspeicher. Wenn Sie zusätzlich die Option –e angeben, wird die Sicherungshistorie mit den aktuellen Informationen über die verwendeten Sicherungswerkzeuge ergänzt.

Um sich den Inhalt anzusehen, führen Sie anschließend das DBM-Kommando zum Anzeigen der Sicherungshistorie aus.

Voraussetzungen

Sie haben die Serverberechtigung Backup oder DBInfoRead .

Syntax

backup_history_open [-e]

-e

Der Verfügbarkeitsstatus der jeweiligen Sicherungen in den externen Sicherungswerkzeugen wird bestimmt.

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat.


Schließen der Sicherungshistorie (MaxDB: Database Manager CLI)

Schließen der Sicherungshistorie

Verwendung

Sie schließen eine Backup-Sitzung. Die im Database Manager zwischengespeicherten Informationen der Sicherungshistorie werden gelöscht.

Voraussetzungen

Sie haben die Serverberechtigung Backup oder DBInfoRead .

Sie haben zuvor entweder explizit mit dem DBM-Kommando zum Holen der Sicherungshistorie oder implizit mit dem DBM-Kommando zum Anzeigen der Sicherungshistorie eine Backup-Sitzung eröffnet.

Syntax

backup_history_close

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat.


Kommandos zu externen Sicherungskennungen (MaxDB: Database Manager CLI)

Kommandos zu externen Sicherungskennungen

Verwendung

Sicherungen, die mit Hilfe externer Sicherungswerkzeuge erstellt wurden, sind durch eine externe Sicherungskennung eindeutig identifizierbar. Diese werden in der Sicherungshistorie protokolliert. Sie können mit Hilfe der Kommandos zur Sicherungshistorie abgefragt werden und sind beim Wiederherstellen mit externen Sicherungswerkzeugen anzugeben.

Um das Wiederherstellen bei fehlender Sicherungshistorie zu ermöglichen, können die externen Sicherungskennungen der aktuell im Sicherungswerkzeug noch vorhandenen Sicherungen jedoch auch mit Hilfe von DBM-Kommandos bestimmt werden.

Voraussetzungen

Sie haben die DBM-Benutzerberechtigung Backup oder DBInfoRead.

Syntax

Anzeigen von externen Sicherungskennungen | backup_ext_ids_list
Blättern in den externen Sicherungskennungen | backup_ext_ids_listnext
Freigeben des von den externen Sicherungskennungen belegten Arbeitsspeichers | backup_ext_ids_forget
Holen von externen Sicherungskennungen | backup_ext_ids_get


Anzeigen von externen Sicherungskennungen (MaxDB: Database Manager CLI)

Anzeigen von externen Sicherungskennungen

Verwendung

Sie lassen sich die von einem Sicherungswerkzeug abgefragten Informationen anzeigen. Diese Informationen bestehen für jede Sicherung aus einem Verfügbarkeitsstatus, der externen Sicherungskennung, der Sicherungsart und dem Erstellungszeitpunkt.

Voraussetzungen

Sie haben die DBM-Benutzerberechtigung Backup oder DBInfoRead.

Sie haben externe Sicherungskennungen eines Sicherungswerkzeuges geholt (Holen von externen Sicherungskennungen).

Syntax

backup_ext_ids_list

Antwort

OK<NL>
(END|CONTINUE)<NL>
[<external_backup_id_line><NL>]
[<external_backup_id_line><NL>]
....

Werte für die einzelnen Felder der Antwort

END | Alle vom Sicherungswerkzeug erfragten Informationen wurden vollständig übertragen.
CONTINUE | Es sind noch Informationen zu weiteren Sicherungen vorhanden, die aufgrund der begrenzten Größe des Antwortspeichers nicht übertragen wurden. Sie können darin blättern oder den durch die vorhandenen Informationen belegten Arbeitsspeicher wieder freigeben.
<external_backup_id_line> | Eine Zeile enthält Angaben zu jeweils einer dem Sicherungswerkzeug bekannten Sicherung. Die einzelnen Spalten sind durch | getrennt.

Im Fehlerfall siehe Antwortformat.


Blättern in den externen Sicherungskennungen (MaxDB: Database Manager CLI)

Blättern in den externen Sicherungskennungen

Verwendung

Sie lassen sich die externen Sicherungskennungen (External-Backup-ID) der einzelnen Sicherungsmedien einer Sicherung anzeigen. Zusätzlich erhalten Sie pro Sicherungsmedium auch den Verfügbarkeitsstatus, die Sicherungsart und den Erstellungszeitpunkt der Sicherung angezeigt..

Voraussetzungen

Sie haben die DBM-Benutzerberechtigung Backup oder DBInfoRead.

Sie haben die externen Sicherungskennungen eines Sicherungswerkzeuges geholt (Holen von externen Sicherungskennungen) und das Kommando zum Anzeigen der externen Sicherungskennungen ausgeführt. Das Schlüsselwort CONTINUE in der Antwort zeigt an, dass die Datei noch nicht vollständig gelesen wurde.

Syntax

backup_ext_ids_listnext

Antwort

OK<NL>
(END|CONTINUE)<NL>
[<external_backup_id_line><NL>]
[<external_backup_id_line><NL>]
....

Werte für die einzelnen Felder der Antwort

END | Alle abgefragten Informationen wurden vollständig übertragen.
CONTINUE | Es sind noch Informationen zu weiteren Sicherungen vorhanden, die aufgrund der begrenzten Größe des Antwortspeichers nicht übertragen wurden. Sie können diese durch erneutes Eingeben des o.a. Kommandos abrufen oder den durch die vorhandenen externen Sicherungskennungen belegten Arbeitsspeicher wieder freigeben.
<external_backup_id_line> | Eine Zeile enthält Angaben zu jeweils einer dem Sicherungswerkzeug noch bekannten Sicherung. Die einzelnen Spalten sind durch einen vertikalen Strich (|) getrennt.

Im Fehlerfall siehe Antwortformat.


Freigeben des von externen Sicherungskennungen belegten Arbeitss (MaxDB: Database Manager CLI)

Freigeben des von externen Sicherungskennungen belegten Arbeitsspeichers

Verwendung

Sie geben den Arbeitsspeicher frei, in dem die von einem Sicherungswerkzeug abgefragten externen Sicherungskennungen abgelegt sind.

Voraussetzungen

Sie haben die DBM-Benutzerberechtigung Backup oder DBInfoRead.

Syntax

backup_ext_ids_forget

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat.


Holen von externen Sicherungskennungen (MaxDB: Database Manager CLI)

Holen von externen Sicherungskennungen

Verwendung

Die externen Sicherungskennungen und Angaben zum Verfügbarkeitsstatus, der Sicherungsart und dem Erstellungszeitpunkt der Sicherungen einer Datenbankinstanz, die dem durch <medium>spezifizierten externen Sicherungswerkzeug aktuell bekannt sind, werden in eine Datei geschrieben. Um sich den Inhalt der Datei anzeigen zu lassen, verwenden Sie anschließend das DBM-Kommando zum Anzeigen von externen Sicherungskennungen.

Voraussetzungen

Sie haben die Serverberechtigung Backup oder DBInfoRead.

Syntax

backup_ext_ids_get <medium> [<database_name>] [<database_server>]

<medium> | Name des Sicherungsmediums
<database_name> | Name der Datenbankinstanz, von der die Sicherungen erstellt wurden
<database_server> | Name des Datenbankrechners

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat.


Kommandos zu Sicherungsinformationen (MaxDB: Database Manager CLI)

Kommandos zu Sicherungsinformationen

Verwendung

Sie haben in jedem Betriebszustand der Datenbankinstanz die Möglichkeit, die auf den Sicherungsmedien hinterlegten Informationen über Sicherungen abzufragen. Dazu stehen Ihnen verschiedene DBM-Kommandos zur Verfügung.

Voraussetzungen

Sie haben die Benutzerberechtigung Backup.

Syntax

Anzeigen der Sicherungsinformationen im Betriebszustand OFFLINE | medium_labeloffline
Anzeigen der Sicherungsinformationen im Betriebszustand ONLINE oder ADMIN | medium_label
Anzeigen des aktuellen Standes der Prüfung einer Sicherung | recover_state_check
Prüfen einer Sicherung | recover_check


Anzeigen der Sicherungsinformationen im Betriebszustand OFFLINE (MaxDB: Database Manager CLI)

Anzeigen der Sicherungsinformationen im Betriebszustand OFFLINE

Verwendung

Sie lassen sich die auf einem Sicherungsmedium <medium> hinterlegten Informationen über die Sicherung anzeigen. Dabei wird direkt auf das Sicherungsmedium zugegriffen, so dass diese Funktion ausgeführt werden kann, wenn sich die Datenbankinstanz im Betriebszustand OFFLINE befindet. Wenn sich die Datenbankinstanz im Betriebszustand ONLINE oder ADMIN befindet, verwenden Sie das Kommando zum Anzeigen der Sicherungsinformationen im Betriebszustand ONLINE oder ADMIN.

Voraussetzungen

Sie haben die DBM-Benutzerberechtigung Backup .

Syntax

medium_labeloffline <medium>

Antwort

OK<NL>
Returncode              <value><NL>
Date                    [<value>]<NL>
Time                    [<value>]<NL>
Server                  [<value>]<NL>
Database                [<value>]<NL>
Kernel Version          [<value>]<NL>
Pages Transferred       [<value>]<NL>
Pages Left              [<value>]<NL>
Volume Count            [<value>]<NL>
Medianame               [<value>]<NL>
Location                [<value>]<NL>
Errortext               [<value>]<NL>
Label                   [<value>]<NL>
Is Consistent           [<value>]<NL>
First LOG Page          [<value>]<NL>
Last LOG Page           [<value>]<NL>
DB Stamp 1 Date         [<value>]<NL>
DB Stamp 1 Time         [<value>]<NL>
DB Stamp 2 Date         [<value>]<NL>
DB Stamp 2 Time         [<value>]<NL>
Page Count              [<value>]<NL>
Devices Used            [<value>]<NL>
Database ID             [<value>]<NL>
Max Used Data Page      [<value>]<NL>

Es ist insbesondere das Antwortfeld Returncode auszuwerten, das einen vom Kern gelieferten numerischen Wert enthält.

Siehe auch: Meldungen

Werte für die einzelnen Felder der Antwort

Date

Datum

Time

Zeit

Server

Name des Datenbankrechners

Database

Name der Datenbankinstanz

Kernel Version

Version des Datenbankkerns

Pages Transferred

Anzahl der übertragenen Seiten

Pages Left

Anzahl noch zu übertragender Seiten

Volumes

Anzahl der verwendeten Sicherungsmedien

Medianame

Name des Sicherungsmediums

Location

Datei- oder Gerätename

Errortext

Text der Fehlermeldung

Label

Sicherungskennung

Is Consistent

nur für Datensicherung: Sicherung ist in sich konsistent

First LOG Page

bei Datensicherung: erste einzulesende Seite der Log-Sicherung

bei Log-Sicherung: erste gesicherte Seite im Log

Last LOG Page

nur für Log-Sicherung: letzte gesicherte Seite im Log

DB Stamp 1 Date
DB Stamp 1 Time

Zeitstempel der ersten Seite der Log-Sicherung

DB Stamp 2 Date
DB Stamp 2 Time

Zeitstempel der letzten Seite der Log-Sicherung

Page Count

Gesamtzahl der gesicherten Seiten

Devices Used

Anzahl der verwendeten Sicherungsgeräte

Database ID

Datenbankkennung (zur Identifikation zueinandergehöriger Daten- und Log-Sicherungen)

Max Used Data Page

höchste vergebene Seitenzahl (Hinweis für minimale Datenbankgröße bei Einlesen der Sicherung)

Im Fehlerfall siehe Antwortformat.


Anzeigen der Sicherungsinformationen im Betriebszustand ONLINE o (MaxDB: Database Manager CLI)

Anzeigen der Sicherungsinformationen im Betriebszustand ONLINE oder ADMIN

Verwendung

Sie lassen sich die auf einem Sicherungsmedium hinterlegten Informationen über die Sicherung anzeigen.

Voraussetzungen

Sie haben die DBM-Benutzerberechtigung Backup .

Sie haben eine Utility-Sitzung gestartet (Eröffnen einer Utility-Sitzung). Die Datenbankinstanz befindet sich im Betriebszustand ONLINE oder ADMIN.

Syntax

medium_label <medium>

Unter <medium> geben Sie an, von welchem Sicherungsmedium die Informationen gelesen werden sollen.

Für parallele Sicherungsmedien ist nur der Name der Gruppe paralleler Sicherungsmedien anzugeben. Diese Gruppe müssen Sie zuvor definieren (Anlegen oder Ändern eines Sicherungsmediums).

Antwort

OK<NL>
Returncode              <value><NL>
Date                    [<value>]<NL>
Time                    [<value>]<NL>
Server                  [<value>]<NL>
Database                [<value>]<NL>
Kernel Version          [<value>]<NL>
Pages Transferred       [<value>]<NL>
Pages Left              [<value>]<NL>
Volumes                 [<value>]<NL>
Medianame               [<value>]<NL>
Location                [<value>]<NL>
Errortext               [<value>]<NL>
Label                   [<value>]<NL>
Is Consistent           [<value>]<NL>
First LOG Page          [<value>]<NL>
Last LOG Page           [<value>]<NL>
DB Stamp 1 Date         [<value>]<NL>
DB Stamp 1 Time         [<value>]<NL>
DB Stamp 2 Date         [<value>]<NL>
DB Stamp 2 Time         [<value>]<NL>
Page Count              [<value>]<NL>
Devices Used            [<value>]<NL>
Database ID             [<value>]<NL>
Max Used Data Page      [<value>]<NL>

Es ist insbesondere das Antwortfeld Returncode auszuwerten, das einen vom Kern gelieferten numerischen Wert enthält.

Siehe auch: Meldungen

Werte für die einzelnen Felder der Antwort

Date

Datum

Time

Zeit

Server

Name des Datenbankrechners

Database

Name der Datenbankinstanz

Kernel Version

Version des Datenbankkerns

Pages Transferred

Anzahl der übertragenen Seiten

Pages Left

Anzahl noch zu übertragender Seiten

Volumes

Anzahl der verwendeten Sicherungsmedien

Medianame

Name des Sicherungsmediums

Location

Datei- oder Gerätename

Errortext

Text der Fehlermeldung

Label

Sicherungskennung

Is Consistent

nur für Datensicherung: Sicherung ist in sich konsistent

First LOG Page

bei Datensicherung: erste einzulesende Seite der Log-Sicherung

bei Log-Sicherung: erste gesicherte Seite im Log

Last LOG Page

nur für Log-Sicherung: letzte gesicherte Seite im Log

DB Stamp 1 Date
DB Stamp 1 Time

Zeitstempel der ersten Seite der Log-Sicherung

DB Stamp 2 Date
DB Stamp 2 Time

Zeitstempel der letzten Seite der Log-Sicherung

Page Count

Gesamtzahl der gesicherten Seiten

Devices Used

Anzahl der verwendeten Sicherungsgeräte

Database ID

Datenbankkennung (zur Identifikation zueinandergehöriger Daten- und Log-Sicherungen)

Max Used Data Page

höchste vergebene Seitenzahl (Hinweis für minimale Datenbankgröße bei Einlesen der Sicherung)

Im Fehlerfall siehe Antwortformat.


Anzeigen des aktuellen Standes des Prüfens einer Sicherung (MaxDB: Database Manager CLI)

Anzeigen des aktuellen Standes des Prüfens einer Sicherung

Verwendung

Sie lassen sich Informationen über den aktuellen Stand des Prüfens einer Sicherung anzeigen. Sie können dieses Kommando auch während der laufenden Prüfung einer Sicherung ausführen.

Voraussetzungen

Sie haben die DBM-Benutzerberechtigung Backup.

Sie haben eine Servicesitzung eröffnet (Eröffnen einer Servicesitzung).

Syntax

recover_state_check

Antwort

OK<NL>
Return code              <value><NL>
Date                    [<value>]<NL>
Time                    [<value>]<NL>
Server                  [<value>]<NL>
Database                [<value>]<NL>
Kernel Version          [<value>]<NL>
Pages Transferred       [<value>]<NL>
Pages Left              [<value>]<NL>
Volumes                 [<value>]<NL>
Medianame               [<value>]<NL>
Location                [<value>]<NL>
Error text              [<value>]<NL>
Label                   [<value>]<NL>
Is Consistent           [<value>]<NL>
First LOG Page          [<value>]<NL>
Last LOG Page           [<value>]<NL>
DB Stamp 1 Date         [<value>]<NL>
DB Stamp 1 Time         [<value>]<NL>
DB Stamp 2 Date         [<value>]<NL>
DB Stamp 2 Time         [<value>]<NL>
Page Count              [<value>]<NL>
Devices Used            [<value>]<NL>
Database ID             [<value>]<NL>
Max Used Data Page      [<value>]<NL>

Werte für die einzelnen Felder der Antwort

Date

Datum

Time

Zeit

Server

Name des Datenbankrechners

Database

Name der Datenbankinstanz

Kernel Version

Version der Datenbank-Software

Pages Transferred

Anzahl der übertragenen Seiten

Pages Left

Anzahl noch zu übertragender Seiten

Volumes

Anzahl der verwendeten Sicherungsmedien

Medianame

Name des Sicherungsmediums

Location

Datei- oder Gerätename

Errortext

Text der Fehlermeldung

Label

Sicherungskennung

Is Consistent

Nur für Datensicherung: Sicherung ist in sich konsistent

First LOG Page

Bei Datensicherung: erste einzulesende Seite der Log-Sicherung

Bei Log-Sicherung: erste gesicherte Seite im Log

Last LOG Page

Nur für Log-Sicherung: letzte gesicherte Seite im Log

DB Stamp 1 Date
DB Stamp 1 Time

Zeitstempel der ersten Seite der Log-Sicherung

DB Stamp 2 Date
DB Stamp 2 Time

Zeitstempel der letzten Seite der Log-Sicherung

Page Count

Gesamtzahl der gesicherten Seiten

Devices Used

Anzahl der verwendeten Sicherungsgeräte

Database ID

Datenbankkennung (zur Identifikation zueinandergehöriger Daten- und Log-Sicherungen)

Max Used Data Page

Höchste vergebene Seitenzahl (Hinweis für minimale Datenbankgröße bei Einlesen der Sicherung)

Im Fehlerfall siehe Antwortformat.


Prüfen einer Sicherung (MaxDB: Database Manager CLI)

Prüfen einer Sicherung

Verwendung

Sie prüfen die Sicherung auf Konsistenz und Vollständigkeit. Die Ausführung dieses Kommandos erfolgt unabhängig von den laufenden Funktionen der Datenbankinstanz, kann jedoch mit zeitweiligen Performance-Einbußen für die Datenbankinstanz verbunden sein.

Voraussetzungen

Sie haben die DBM-Benutzerberechtigung Backup.

Sie haben eine Servicesitzung eröffnet.

Syntax

recover_check <medium> <type> [ExternalBackupID <external_backup_ID>] [<nnn>] [UNTIL <date> <time>]

<medium> | Name des Sicherungsmediums, dieser ist zuvor zu definieren (Anlegen oder Ändern eines Sicherungsmediums)
<type> | Art der Sicherung: DATA (vollständige Datensicherung), PAGES (inkrementelle Datensicherung) oder LOG (Log-Sicherung)

Optionen

ExternalBackupID <external_backup_ID> | Zum Prüfen einer Sicherung, die mit einem externen Sicherungswerkzeug erzeugt wurde, geben Sie hier den Namen an, unter dem die Sicherung dem externen Sicherungswerkzeug bekannt ist.
<nnn> | Konkrete Sicherungsversion auf dem zu prüfenden Sicherungsmedium, nur bei einem Medium vom Typ FILE relevant
UNTIL <date> <time> | Bei Log-Sicherungen kann ein genauer Zeitpunkt festgelegt werden, bis zu dem geprüft werden soll.

Die angegebene Sicherung wird nur geprüft, nicht wiederhergestellt.

Antwort

OK<NL>
Returncode              <value><NL>
Date                    [<value>]<NL>
Time                    [<value>]<NL>
Server                  [<value>]<NL>
Database                [<value>]<NL>
Kernel Version          [<value>]<NL>
Pages Transferred       [<value>]<NL>
Pages Left              [<value>]<NL>
Volume Count            [<value>]<NL>
Mediumname              [<value>]<NL>
Location                [<value>]<NL>
Errortext               [<value>]<NL>
Label                   [<value>]<NL>
Is Consistent           [<value>]<NL>
First LOG Page          [<value>]<NL>
Last LOG Page           [<value>]<NL>
DB Stamp 1 Date         [<value>]<NL>
DB Stamp 1 Time         [<value>]<NL>
DB Stamp 2 Date         [<value>]<NL>
DB Stamp 2 Time         [<value>]<NL>
Page Count              [<value>]<NL>
Devices Used            [<value>]<NL>
Database ID             [<value>]<NL>
Max Used Data Page      [<value>]<NL>

Werte für die einzelnen Felder der Antwort

Date

Datum

Time

Zeit

Server

Name des Datenbankrechners

Database

Name der Datenbankinstanz

Kernel Version

Version des Datenbankkerns

Pages Transferred

Anzahl der übertragenen Seiten

Pages Left

Anzahl noch zu übertragender Seiten

Volumes

Anzahl der verwendeten Sicherungsmedien

Medianame

Name des Sicherungsmediums

Location

Datei- oder Gerätename

Errortext

Text der Fehlermeldung

Label

Sicherungskennung

Is Consistent

nur für Datensicherung: Sicherung ist in sich konsistent

First LOG Page

bei Datensicherung: erste einzulesende Seite der Log-Sicherung

bei Log-Sicherung: erste gesicherte Seite im Log

Last LOG Page

nur für Log-Sicherung: letzte gesicherte Seite im Log

DB Stamp 1 Date
DB Stamp 1 Time

Zeitstempel der ersten Seite der Log-Sicherung

DB Stamp 2 Date
DB Stamp 2 Time

Zeitstempel der letzten Seite der Log-Sicherung

Page Count

Gesamtzahl der gesicherten Seiten

Devices Used

Anzahl der verwendeten Sicherungsgeräte

Database ID

Datenbankkennung (zur Identifikation zueinandergehöriger Daten- und Log-Sicherungen)

Max Used Data Page

höchste vergebene Seitenzahl (Hinweis für minimale Datenbankgröße bei Einlesen der Sicherung)

Antwort im Fehlerfall

Wenn bei dem Vorgang ein Fehler auftritt, erhalten Sie eine Antwort in folgender Form:

ERR<NL>
<errcode>, <err_description><NL>
[<extended_description><NL>]

<errcode> | Nummer der Fehlermeldung Siehe auch: Meldungen
<err_description> | Beschreibung des Fehlers
<extended_description> | Fehlerursache

Es können folgende Fehler auftreten:

<errcode> | <err_description> | Erläuterung
-24927 | ERR_TOOLCHK: the external backup tool was not found | Das externe Sicherungswerkzeug wurde nicht gefunden oder ist nicht korrekt installiert.
-24926 | ERR_MEDIUMCHK: the medium cannot be used with an external backup tool | Das angegebene Sicherungsmedium kann nicht mit dem Sicherungswerkzeug verwendet werden, auf das der Medienname hinweist (Anlegen und Ändern eines Mediums).
-24925 | ERR_PREPARE: prepare of the backup operation failed | Die für die Verwendung des Sicherungswerkzeugs notwendigen Vorbereitungen konnten nicht erfolgreich abgeschlossen werden.
-24924 | ERR_DBREQ: cannot start database kernel request | Die Datenbankinstanz konnte die Prüfung nicht starten.
-24923 | ERR_TOOLREQ: cannot start external backup tool correctly | Das Sicherungswerkzeug konnte nicht korrekt gestartet werden.
-24922 | ERR_OPCHK: cannot check state of backup operation | Es war nicht möglich, die Zustände der Datenbankinstanz oder des Sicherungswerkzeugs zu prüfen.
-24921 | ERR_POSTOP: cannot finish backup operation correctly | Obwohl die Sicherung erfolgreich war, konnten die notwendigen Nachbearbeitungsschritte nicht durchgeführt werden.
-24920 | ERR_BACKUPOP: backup operation was unsuccessful | Die Prüfung ist wegen eines Datenbankproblems oder eines Problems des Sicherungswerkzeuges fehlgeschlagen.
-24919 | ERR_CLEANUP: cannot clean up correctly after backup operation | Obwohl die Prüfung erfolgreich war, konnten die in Anspruch genommenen temporären Systemressourcen nicht wieder freigegeben werden.


Kommandos zum Wiederherstellen (MaxDB: Database Manager CLI)

Kommandos zum Wiederherstellen

Verwendung

Der Database Manager unterstützt das Wiederherstellen der Datenbankinstanz nach Hardware-Fehlern. Dabei wird der letzte Datenbankzustand wiederhergestellt. Voraussetzung dafür ist, dass alle Daten der Sicherungshistorie vorhanden sind.

Um maximalen Datendurchsatz zu gewährleisten, können vollständige und inkrementelle Datensicherungen von mehreren Sicherungsmedien gleichzeitig eingelesen werden. Die Anzahl dieser parallelen Sicherungsmedien ist unabhängig von der beim Anfertigen der Sicherung verwendeten parallelen Sicherungsmedien. Auch eine Sicherung auf ein einzelnes Medium mit Folgemedien kann parallel eingelesen werden.

Die maximale Anzahl der Sicherungsmedien, die gleichzeitig eingelesen werden können, definieren Sie mit Hilfe des Parameters MAX_BACKUP_DEVS. Durch den Einsatz von bis zu 32 Bandgeräten können Sie so die Wiederherstellungszeiten erheblich reduzieren.

Voraussetzungen

Beachten Sie die für die jeweiligen DBM-Kommandos notwendigen Benutzerberechtigungen.

Die Ausführung des Kommandos zum Wiederherstellen der Datenbankinstanz ist die Voraussetzung für die Ausführung aller anderen Wiederherstellungskommandos.

Syntax

Anzeigen aktueller Informationen zur Datenbankinstanz | db_restartinfo
Anzeigen des aktuellen Standes der Wiederherstellung | recover_state
Beenden einer unterbrochenen Wiederherstellung oder Prüfung einer Sicherung | recover_cancel
Fortsetzen der parallelen Wiederherstellung oder der Prüfung einer Sicherung | recover_ignore
Wiederherstellen der Datenbankinstanz | recover_start
Wiederherstellen der Parameterdatei aus einer Datensicherung | recover_config
Wiederherstellen einer Datenbankinstanz mit Initialisierung | db_activate RECOVER
Wiederherstellen eines beschädigten Indexes | sql_recreateindex
Wiederherstellen mit externen Sicherungswerkzeugen | ---
Wiederherstellen oder Prüfen einer Sicherung mit Folgemedium | recover_replace


Anzeigen aktueller Informationen zur Datenbankinstanz (MaxDB: Database Manager CLI)

Anzeigen aktueller Informationen zur Datenbankinstanz

Verwendung

Sie lassen sich den aktuellen Zustand der Datenbankinstanz nach dem Einlesen einer Sicherung anzeigen. Es werden Informationen über den Zustand des Log und die Fähigkeit der Datenbankinstanz zum Restart ausgegeben.

Voraussetzungen

Sie haben die DBM-Benutzerberechtigung Recovery.

Sie haben das Kommandos zum Wiederherstellen der Datenbankinstanz ausgeführt.

Syntax

db_restartinfo

dbmcli -d myDB -u dbm,dbm db_restartinfo

OK
Used LOG Page           10636
First LOG Page          8640
Restartable             1
Id Restart Record       P46643:DB_20010629_115558
Id LOG Info             P46643:DB_20010629_115558
Consistent              1

Antwort

OK<NL>
Used LOG Page           <number><NL>
First LOG Page          <number><NL>
Restartable             (1|0)<NL>
Id Restart Record       <id><NL>
Id LOG Info             <id><NL>
Consistent              (1|0)<NL>

Werte für die einzelnen Felder der Antwort

Used LOG Page | nach dem Restart zu verwendende nächste Log-Seite
First LOG Page | älteste vorhandene Log-Seite
Restartable | restartfähig (1 = ja, 0 = nein)
Id Restart Record | Kennung des Restart-Record der Datenbankinstanz
Id LOG Info | Kennung des Log der Datenbankinstanz
Consistent | Konsistenz der Datenbankinstanz, d.h. restartfähig ohne Log (1 = ja, 0 = nein)

Im Fehlerfall siehe Antwortformat.


Anzeigen des aktuellen Standes der Wiederherstellung (MaxDB: Database Manager CLI)

Anzeigen des aktuellen Standes der Wiederherstellung

Verwendung

Sie lassen sich Informationen über den aktuellen Stand der Wiederherstellung anzeigen. Sie können dieses Kommando auch während der laufenden Wiederherstellung einer Datenbankinstanz ausführen.

Voraussetzungen

Sie haben die DBM-Benutzerberechtigung Recovery.

Sie haben das Kommandos zum Wiederherstellen der Datenbankinstanz ausgeführt. Der Vorgang wurde unterbrochen.

Syntax

recover_state

Antwort

OK<NL>
Return code              <value><NL>
Date                    [<value>]<NL>
Time                    [<value>]<NL>
Server                  [<value>]<NL>
Database                [<value>]<NL>
Kernel Version          [<value>]<NL>
Pages Transferred       [<value>]<NL>
Pages Left              [<value>]<NL>
Volumes                 [<value>]<NL>
Medianame               [<value>]<NL>
Location                [<value>]<NL>
Error text              [<value>]<NL>
Label                   [<value>]<NL>
Is Consistent           [<value>]<NL>
First LOG Page          [<value>]<NL>
Last LOG Page           [<value>]<NL>
DB Stamp 1 Date         [<value>]<NL>
DB Stamp 1 Time         [<value>]<NL>
DB Stamp 2 Date         [<value>]<NL>
DB Stamp 2 Time         [<value>]<NL>
Page Count              [<value>]<NL>
Devices Used            [<value>]<NL>
Database ID             [<value>]<NL>
Max Used Data Page      [<value>]<NL>

Werte für die einzelnen Felder der Antwort

Date

Datum

Time

Zeit

Server

Name des Datenbankrechners

Database

Name der Datenbank

Kernel Version

Version des Datenbankkerns

Pages Transferred

Anzahl der übertragenen Seiten

Pages Left

Anzahl noch zu übertragender Seiten

Volumes

Anzahl der verwendeten Sicherungsmedien

Medianame

Name des Sicherungsmediums

Location

Datei- oder Gerätename

Errortext

Text der Fehlermeldung

Label

Sicherungskennung

Is Consistent

Nur für Datensicherung: Sicherung ist in sich konsistent

First LOG Page

Bei Datensicherung: erste einzulesende Seite der Log-Sicherung

Bei Log-Sicherung: erste gesicherte Seite im Log

Last LOG Page

Nur für Log-Sicherung: letzte gesicherte Seite im Log

DB Stamp 1 Date
DB Stamp 1 Time

Zeitstempel der ersten Seite der Log-Sicherung

DB Stamp 2 Date
DB Stamp 2 Time

Zeitstempel der letzten Seite der Log-Sicherung

Page Count

Gesamtzahl der gesicherten Seiten

Devices Used

Anzahl der verwendeten Sicherungsgeräte

Database ID

Datenbankkennung (zur Identifikation zueinandergehöriger Daten- und Log-Sicherungen)

Max Used Data Page

Höchste vergebene Seitenzahl (Hinweis für minimale Datenbankgröße bei Einlesen der Sicherung)

Im Fehlerfall siehe Antwortformat.


Beenden der unterbrochenen Wiederherstellung oder der Prüfung ei (MaxDB: Database Manager CLI)

Beenden der unterbrochenen Wiederherstellung oder der Prüfung einer Sicherung

Verwendung

Sie brechen eine unterbrochene Wiederherstellung oder die Prüfung einer Sicherung endgültig ab.

Voraussetzungen

Sie haben die DBM-Benutzerberechtigung Backup.

Sie haben das Kommandos zum Wiederherstellen der Datenbankinstanz oder zum Prüfen einer Sicherung ausgeführt. Der Vorgang wurde unterbrochen.

Syntax

recover_cancel

Antwort

Bei der Antwort auf dieses Kommando ist nur das Feld Returncode mit einem Wert belegt.

OK<NL>
Returncode <value>

Siehe auch: Meldungen

Im Fehlerfall siehe Antwortformat.


Fortsetzen der parallelen Wiederherstellung oder der Prüfung ein (MaxDB: Database Manager CLI)

Fortsetzen der parallelen Wiederherstellung oder der Prüfung einer Sicherung

Verwendung

Sie setzen das Einlesen der übrigen Sicherungsmedien fort. Als Antwort auf dieses Kommando erhalten Sie die Informationen über das Einlesen der Sicherung.

Die Ausgabe erfolgt jedoch erst dann, wenn die Sicherung vollständig eingelesen ist oder unterbrochen wurde. Die Ausführung dieses Kommandos kann deshalb sehr lange dauern.

Voraussetzungen

Sie haben die DBM-Benutzerberechtigung Backup.

Sie haben das Wiederherstellen der Datenbankinstanz durch das Einlesen der Daten von mehreren Medien parallel begonnen. Der Vorgang wurde unterbrochen, weil für mindestens ein Sicherungsmedium kein Folgemedium mehr einzulesen ist.

Syntax

recover_ignore

Antwort

OK<NL>
Returncode              <value><NL>
Date                    [<value>]<NL>
Time                    [<value>]<NL>
Server                  [<value>]<NL>
Database                [<value>]<NL>
Kernel Version          [<value>]<NL>
Pages Transferred       [<value>]<NL>
Pages Left              [<value>]<NL>
Volumes                 [<value>]<NL>
Medianame               [<value>]<NL>
Location                [<value>]<NL>
Errortext               [<value>]<NL>
Label                   [<value>]<NL>
Is Consistent           [<value>]<NL>
First LOG Page          [<value>]<NL>
Last LOG Page           [<value>]<NL>
DB Stamp 1 Date         [<value>]<NL>
DB Stamp 1 Time         [<value>]<NL>
DB Stamp 2 Date         [<value>]<NL>
DB Stamp 2 Time         [<value>]<NL>
Page Count              [<value>]<NL>
Devices Used            [<value>]<NL>
Database ID             [<value>]<NL>
Max Used Data Page      [<value>]<NL>

Es ist insbesondere das Antwortfeld Returncode auszuwerten, das einen vom Kern gelieferten numerischen Wert enthält.

Siehe auch: Meldungen

Ergibt sich aus der Meldungsnummer, dass das Wiederherstellen nur unterbrochen wurde, muss die Sitzung mit einem Folgekommando fortgesetzt (recover_ignore) oder beendet werden (recover_cancel).

Werte für die einzelnen Felder der Antwort

Date

Datum

Time

Zeit

Server

Name des Datenbankrechners

Database

Name der Datenbankinstanz

Kernel Version

Version des Datenbankkerns

Pages Transferred

Anzahl der übertragenen Seiten

Pages Left

Anzahl noch zu übertragender Seiten

Volumes

Anzahl der verwendeten Sicherungsmedien

Medianame

Name des Sicherungsmediums

Location

Datei- oder Gerätename

Errortext

Text der Fehlermeldung

Label

Sicherungskennung

Is Consistent

Nur für Datensicherung: Sicherung ist in sich konsistent

First LOG Page

Bei Datensicherung: erste einzulesende Seite der Log-Sicherung

Bei Log-Sicherung: erste gesicherte Seite im Log

Last LOG Page

Nur für Log-Sicherung: letzte gesicherte Seite im Log

DB Stamp 1 Date
DB Stamp 1 Time

Zeitstempel der ersten Seite der Log-Sicherung

DB Stamp 2 Date
DB Stamp 2 Time

Zeitstempel der letzten Seite der Log-Sicherung

Page Count

Gesamtzahl der gesicherten Seiten

Devices Used

Anzahl der verwendeten Sicherungsgeräte

Database ID

Datenbankkennung (zur Identifikation zueinandergehöriger Daten- und Log-Sicherungen)

Max Used Data Page

höchste vergebene Seitenzahl (Hinweis für minimale Datenbankgröße bei Einlesen der Sicherung)

Im Fehlerfall siehe Antwortformat.


Wiederherstellen der Datenbankinstanz (MaxDB: Database Manager CLI)

Wiederherstellen der Datenbankinstanz

Verwendung

Beim Wiederherstellen der Datenbankinstanz lesen Sie Sicherungen ein und stellen den darin enthaltenen Datenbankzustand wieder her. Dazu lesen Sie zunächst eine vollständige Datensicherung und anschließend die dazugehörigen Log-Sicherungen ein. Dabei können Sie mit Hilfe der Option UNTIL angeben, bis zu welchem Zeitpunkt die Log-Sicherungen vom Sicherungsmedium eingelesen werden sollen.

Wenn die Log-Volumes der Datenbankinstanz vorhanden und unbeschädigt sind und noch den Log seit dem Zeitpunkt der vollständigen Datensicherung enthalten, verwenden Sie das Kommando recover_start nur zum Einlesen der vollständigen Datensicherung. Anschließend starten Sie die Datenbankinstanz und stellen die Datenbankinstanz aus den Log-Volumes der Datenbankinstanz her (siehe: Überführen in den Betriebszustand ONLINE) Wenn Sie dabei die Option -u | -until angeben, stellen Sie die Datenbankinstanz bis zum angegebenen Zeitpunkt wieder her.

Wenn die Sicherungen mit Hilfe eines externen Sicherungswerkzeugs erstellt wurden, verwenden Sie dieses Werkzeug auch für das Wiederherstellen der Datenbankinstanz. Folgen Sie dazu zunächst der Beschreibung für das Wiederherstellen mit externen Sicherungswerkzeugen. Andernfalls folgen Sie direkt der nachfolgenden Beschreibung für das Kommando recover_start.

Als Antwort auf dieses Kommando erhalten Sie die Informationen über das Einlesen der Sicherung. Die Ausgabe erfolgt jedoch erst dann, wenn die Sicherung vollständig eingelesen ist oder unterbrochen wurde. Die Ausführung dieses Kommandos kann deshalb sehr lange dauern.

Wenn vor dem Beginn des Wiederherstellens die automatische Log-Sicherung aktiv war, wird diese nach dem Wiederherstellen nicht automatisch wieder eingeschaltet.

Um die Log-Sicherung wieder einzuschalten, führen Sie das Kommando zum Einschalten der automatischen Log-Sicherung aus.

Voraussetzungen

Sie haben die DBM-Benutzerberechtigung Recovery.

Sie haben eine Datenbanksitzung eröffnet (siehe Eröffnen einer Datenbanksitzung).

Syntax

recover_start <medium> <type> [ExternalBackupID <external_backup_ID>] [<nnn>] [UNTIL <date> <time>] [AUTOIGNORE]

<medium> | Sicherungsmedium, von dem die Sicherung eingelesen werden soll. Beim Wiederherstellen einer Sicherung, die auf mehrere parallele Sicherungsmedien erstellt wurde (parallele Sicherung), ist hier der Name der Mediengruppe anzugeben.
<type> | Art der einzulesenden Sicherung: DATA (vollständige Datensicherung), PAGES (inkrementelle Datensicherung) oder LOG (Log-Sicherung)

Optionen

ExternalBackupID <external_backup_ID>

Zum Wiederherstellen einer Sicherung, die mit einem externen Sicherungswerkzeug erzeugt wurde, geben Sie hier den Namen an, unter dem die Sicherung dem externen Sicherungswerkzeug bekannt ist.

<nnn>

Konkrete Sicherungsversion auf dem einzulesenden Sicherungsmedium, nur bei einem Medium vom Typ FILE (Datei) relevant

UNTIL <date> <time>
<date> ::= <yyyymmdd>
<time> ::= <hhmmss>

Beim Einlesen von Log-Sicherungen kann ein genauer Zeitpunkt (Jahr, Monat, Tag, Stunde, Minuten, Sekunden) festgelegt werden, bis zu dem wiederhergestellt werden soll.

AUTOIGNORE

Im Falle des parallelen Wiederherstellens wird der Vorgang vom System automatisch fortgesetzt (Fortsetzen einer parallelen Wiederherstellung).

Beachten Sie unbedingt, welchen Regeln die Mediennamen entsprechen müssen (Anlegen oder Ändern eines Sicherungsmediums), um Fehlermeldungen zu vermeiden.

Anmelden an den Database Manager CLI mit dem Benutzer DBM und Kennwort DBM, Eröffnen einer Datenbanksitzung mit der Datenbankinstanz myDB, Wiederherstellen der Datenbankinstanz aus der mit Networker erstellten Sicherung auf dem Sicherungsmedium NSRPages vom Typ vollständige Datensicherung mit der externen Sicherungskennung 9025:

dbmcli –u dbm,dbm –uDBS –d myDB recover_start NSRPages DATA ExternalBackupID 9025

Antwort

OK<NL>
Return code <value><NL>
Date [<value>]<NL>
Time [<value>]<NL>
Server [<value>]<NL>
Database [<value>]<NL>
Kernel Version [<value>]<NL>
Pages Transferred [<value>]<NL>
Pages Left [<value>]<NL>
Volumes [<value>]<NL>
Medianame [<value>]<NL>
Location [<value>]<NL>
Error text [<value>]<NL>
Label [<value>]<NL>
Is Consistent [<value>]<NL>
First LOG Page [<value>]<NL>
Last LOG Page [<value>]<NL>
DB Stamp 1 Date [<value>]<NL>
DB Stamp 1 Time [<value>]<NL>
DB Stamp 2 Date [<value>]<NL>
DB Stamp 2 Time [<value>]<NL>
Page Count [<value>]<NL>
Devices Used [<value>]<NL>
Database ID [<value>]<NL>
Max Used Data Page [<value>]<NL>

Werte für die einzelnen Felder der Antwort

Date | Datum
Time | Zeit
Server | Name des Datenbankrechners
Database | Name der Datenbankinstanz
Kernel Version | Version des Datenbankkerns
Pages Transferred | Anzahl der übertragenen Seiten
Pages Left | Anzahl noch zu übertragender Seiten
Volumes | Anzahl der verwendeten Sicherungsmedien
Medianame | Name des Sicherungsmediums
Location | Datei- oder Gerätename
Errortext | Text der Fehlermeldung
Label | Sicherungskennung
Is Consistent | Nur für Datensicherung: Sicherung ist in sich konsistent
First LOG Page | Bei Datensicherung: erste einzulesende Seite der Log-Sicherung Bei Log-Sicherung: erste gesicherte Seite im Log
Last LOG Page | Nur für Log-Sicherung: letzte gesicherte Seite im Log
DB Stamp 1 Date DB Stamp 1 Time | Zeitstempel der ersten Seite der Log-Sicherung
DB Stamp 2 Date DB Stamp 2 Time | Zeitstempel der letzten Seite der Log-Sicherung
Page Count | Gesamtzahl der gesicherten Seiten
Devices Used | Anzahl der verwendeten Sicherungsgeräte
Database ID | Datenbankkennung (zur Identifikation zueinandergehöriger Daten- und Log-Sicherungen)
Max Used Data Page | höchste vergebene Seitenzahl (Hinweis für minimale Datenbankgröße bei Einlesen der Sicherung)

Antwort im Fehlerfall

Wenn bei der Verwendung eines externen Sicherungswerkzeugs ein Fehler auftritt, erhalten Sie eine Antwort in folgender Form:

ERR<NL>
<errcode>, <err_description><NL>
[<extended_description><NL>]

<errcode> | Nummer der Fehlermeldung Siehe auch: Meldungen
<err_description> | Beschreibung des Fehlers
<extended_description> | Fehlerursache

Es können folgende Fehler auftreten:

<errcode> | <err_description> | Erläuterung
-24927 | ERR_TOOLCHK: the external backup tool was not found | Das externe Sicherungswerkzeug wurde nicht gefunden oder ist nicht korrekt installiert.
-24926 | ERR_MEDIUMCHK: the medium cannot be used with an external backup tool | Das angegebene Sicherungsmedium kann nicht mit dem Sicherungswerkzeug verwendet werden, auf das der Medienname hinweist (Anlegen oder Ändern eines Sicherungsmediums).
-24925 | ERR_PREPARE: prepare of the backup operation failed | Die für die Verwendung des Sicherungswerkzeugs notwendigen Vorbereitungen konnten nicht erfolgreich abgeschlossen werden.
-24924 | ERR_DBREQ: cannot start database kernel request | Die Datenbankinstanz konnte den Wiederherstellungsvorgang nicht starten.
-24923 | ERR_TOOLREQ: cannot start external backup tool correctly | Das Sicherungswerkzeug konnte nicht korrekt gestartet werden.
-24922 | ERR_OPCHK: cannot check state of backup operation | Es war nicht möglich, die Zustände der Datenbankinstanz oder des Sicherungswerkzeugs zu überprüfen.
-24921 | ERR_POSTOP: cannot finish backup operation correctly | Obwohl die Wiederherstellung erfolgreich war, konnten die notwendigen Nachbearbeitungsschritte nicht durchgeführt werden.
-24920 | ERR_BACKUPOP: backup operation was unsuccessful | Die Wiederherstellung ist wegen eines Datenbankproblems oder eines Problems des Sicherungswerkzeuges fehlgeschlagen.
-24919 | ERR_CLEANUP: cannot clean up correctly after backup operation | Obwohl die Wiederherstellung erfolgreich war, konnten die in Anspruch genommenen temporären Systemressourcen nicht wieder freigegeben werden.


Wiederherstellen der Parameterdatei aus einer Datensicherung (MaxDB: Database Manager CLI)

Wiederherstellen der Parameterdatei aus einer Datensicherung

Verwendung

Sie stellen aus der auf einem Sicherungsmedium hinterlegten Datensicherung die Parameterdatei wieder her.

Es werden alle Parameter bis auf SERVERDB übernommen. Der Parameter SERVERDB wird auf den Wert der aktuellen Datenbankinstanz geändert.

Die Parameterdatei wird unter dem Namen der aktuellen Datenbankinstanz abgelegt.

Voraussetzungen

Sie haben die DBM-Benutzerberechtigung Recovery.

Sie haben eine Service-Sitzung eröffnet.

Sie haben das Kommandos zum Wiederherstellen der Datenbankinstanz ausgeführt.

Syntax

recover_config <medium>

Antwort

OK<NL>
Return code              <value><NL>
Date                    [<value>]<NL>
Time                    [<value>]<NL>
Server                  [<value>]<NL>
Database                [<value>]<NL>
Kernel Version          [<value>]<NL>
Pages Transferred       [<value>]<NL>
Pages Left              [<value>]<NL>
Volumn Count            [<value>]<NL>
Medianame               [<value>]<NL>
Location                [<value>]<NL>
Error text              [<value>]<NL>
Label                   [<value>]<NL>
Is Consistent           [<value>]<NL>
First LOG Page          [<value>]<NL>
Last LOG Page           [<value>]<NL>
DB Stamp 1 Date         [<value>]<NL>
DB Stamp 1 Time         [<value>]<NL>
DB Stamp 2 Date         [<value>]<NL>
DB Stamp 2 Time         [<value>]<NL>
Page Count              [<value>]<NL>
Devices Used            [<value>]<NL>
Database ID             [<value>]<NL>
Max Used Data Page      [<value>]<NL>

Werte für die einzelnen Felder der Antwort

Date

Datum

Time

Zeit

Server

Name des Datenbankrechners

Database

Name der Datenbankinstanz

Kernel Version

Version des Datenbankkerns

Pages Transferred

Anzahl der übertragenen Seiten

Pages Left

Anzahl noch zu übertragender Seiten

Volumes

Anzahl der verwendeten Sicherungsmedien

Medianame

Name des Sicherungsmediums

Location

Datei- oder Gerätename

Errortext

Text der Fehlermeldung

Label

Sicherungskennung

Is Consistent

nur für Datensicherung: Sicherung ist in sich konsistent

First LOG Page

bei Datensicherung: erste einzulesende Seite der Log-Sicherung

bei Log-Sicherung: erste gesicherte Seite im Log

Last LOG Page

nur für Log-Sicherung: letzte gesicherte Seite im Log

DB Stamp 1 Date
DB Stamp 1 Time

Zeitstempel der ersten Seite der Log-Sicherung

DB Stamp 2 Date
DB Stamp 2 Time

Zeitstempel der letzten Seite der Log-Sicherung

Page Count

Gesamtzahl der gesicherten Seiten

Devices Used

Anzahl der verwendeten Sicherungsgeräte

Database ID

Datenbankkennung (zur Identifikation zueinandergehöriger Daten- und Log-Sicherungen)

Max Used Data Page

höchste vergebene Seitenzahl (Hinweis für minimale Datenbankgröße bei Einlesen der Sicherung)

Im Fehlerfall siehe Antwortformat.


Wiederherstellen einer Datenbankinstanz mit Initialisierung (MaxDB: Database Manager CLI)

Wiederherstellen einer Datenbankinstanz mit Initialisierung

Verwendung

Beim Wiederherstellen der Datenbankinstanz lesen Sie Sicherungen ein und stellen den darin enthaltenen Datenbankzustand wieder her. Dazu lesen Sie zunächst eine vollständige Datensicherung und anschließend die dazugehörigen Log-Sicherungen ein. Dabei können Sie mit Hilfe der Option UNTIL angeben, bis zu welchem Zeitpunkt die Log-Sicherungen vom Sicherungsmedium eingelesen werden sollen.

Im Unterschied zum Kommando recover_start (Wiederherstellen der Datenbankinstanz) wird dabei die Datenbankinstanz initialisiert, d. h. die in der Parameterdatei konfigurierten Volumes werden, sofern sie noch nicht vorhanden sind, angelegt und die Daten in bereits existierenden Log-Volumes werden gelöscht. Beachten Sie, dass diese Log-Daten damit unwiderbringlich gelöscht werden, sofern Sie sie nicht zuvor explizit auf ein Sicherungsmedium gesichert haben.

Wenn vor dem Beginn des Wiederherstellens die automatische Log-Sicherung aktiv war, wird diese nach dem Wiederherstellen nicht automatisch wieder eingeschaltet.

Um die Log-Sicherung wieder einzuschalten, führen Sie das Kommando zum Einschalten der automatischen Log-Sicherung aus.

Wenn die Sicherungen mit Hilfe eines externen Sicherungswerkzeugs erstellt wurden, verwenden Sie dieses Werkzeug auch für das Wiederherstellen der Datenbankinstanz. Folgen Sie dazu zunächst der Beschreibung für das Wiederherstellen mit externen Sicherungswerkzeugen. Andernfalls folgen Sie direkt der nachfolgenden Beschreibung für das Kommando recover_start.

Als Antwort auf dieses Kommando erhalten Sie die Informationen über das Einlesen der Sicherung. Die Ausgabe erfolgt jedoch erst dann, wenn die Sicherung vollständig eingelesen ist oder unterbrochen wurde. Die Ausführung dieses Kommandos kann deshalb sehr lange dauern.

Voraussetzungen

Sie haben die Serverberechtigung Recovery.

Sie haben eine Datenbanksitzung eröffnet (siehe Eröffnen einer Datenbanksitzung).

Syntax

db_activate RECOVER <medium> <type> [ExternalBackupID <external_backup_ID>] [<nnn>] [UNTIL <date> <time>] [AUTOIGNORE]

<medium> | Sicherungsmedium, von dem die Sicherung eingelesen werden soll. Beim Wiederherstellen einer Sicherung, die auf mehrere parallele Sicherungsmedien erstellt wurde (parallele Sicherung), ist hier der Name der Mediengruppe anzugeben.
<type> | Art der einzulesenden Sicherung: DATA (vollständige Datensicherung), PAGES (inkrementelle Datensicherung) oder LOG (Log-Sicherung)

Optionen

ExternalBackupID <external_backup_ID>

Zum Wiederherstellen einer Sicherung, die mit einem externen Sicherungswerkzeug erzeugt wurde, geben Sie hier den Namen an, unter dem die Sicherung dem externen Sicherungswerkzeug bekannt ist.

<nnn>

Konkrete Sicherungsversion auf dem einzulesenden Sicherungsmedium, nur bei einem Medium vom Typ FILE (Datei) relevant

UNTIL <date> <time>
<date> ::= <yyyymmdd>
<time> ::= <hhmmss>

Beim Einlesen von Log-Sicherungen kann ein genauer Zeitpunkt (Jahr, Monat, Tag, Stunde, Minuten, Sekunden) festgelegt werden, bis zu dem wiederhergestellt werden soll.

AUTOIGNORE

Im Falle des parallelen Wiederherstellens wird der Vorgang vom System automatisch fortgesetzt (Fortsetzen einer parallelen Wiederherstellung).

Beachten Sie unbedingt, welchen Regeln die Mediennamen entsprechen müssen (siehe: Anlegen oder Ändern eines Sicherungsmediums), um Fehlermeldungen zu vermeiden.

Anmelden an den DBMCLI mit dem Benutzer DBM und Kennwort DBM, Eröffnen einer Datenbanksitzung mit der Datenbankinstanz myDB, Erstellen der Datenbankinstanz aus einer mit NetWorker hergestellten Sicherung auf dem Sicherungsmedium NSRPagesvom Typ vollständige Datensicherung mit der externen Sicherungskennung 9025:

dbmcli –u dbm,dbm –uDBS –d myDB db_activate RECOVER NSRPages DATA ExternalBackupID 9025

Antwort

OK<NL>
Return code <value><NL>
Date [<value>]<NL>
Time [<value>]<NL>
Server [<value>]<NL>
Database [<value>]<NL>
Kernel Version [<value>]<NL>
Pages Transferred [<value>]<NL>
Pages Left [<value>]<NL>
Volumes [<value>]<NL>
Medianame [<value>]<NL>
Location [<value>]<NL>
Error text [<value>]<NL>
Label [<value>]<NL>
Is Consistent [<value>]<NL>
First LOG Page [<value>]<NL>
Last LOG Page [<value>]<NL>
DB Stamp 1 Date [<value>]<NL>
DB Stamp 1 Time [<value>]<NL>
DB Stamp 2 Date [<value>]<NL>
DB Stamp 2 Time [<value>]<NL>
Page Count [<value>]<NL>
Devices Used [<value>]<NL>
Database ID [<value>]<NL>
Max Used Data Page [<value>]<NL>

Werte für die einzelnen Felder der Antwort

Date | Datum
Time | Zeit
Server | Name des Datenbankrechners
Database | Name der Datenbankinstanz
Kernel Version | Version des Datenbankkerns
Pages Transferred | Anzahl der übertragenen Seiten
Pages Left | Anzahl noch zu übertragender Seiten
Volumes | Anzahl der verwendeten Sicherungsmedien
Medianame | Name des Sicherungsmediums
Location | Datei- oder Gerätename
Errortext | Text der Fehlermeldung
Label | Sicherungskennung
Is Consistent | Nur für Datensicherung: Sicherung ist in sich konsistent
First LOG Page | Bei Datensicherung: erste einzulesende Seite der Log-Sicherung Bei Log-Sicherung: erste gesicherte Seite im Log
Last LOG Page | Nur für Log-Sicherung: letzte gesicherte Seite im Log
DB Stamp 1 Date DB Stamp 1 Time | Zeitstempel der ersten Seite der Log-Sicherung
DB Stamp 2 Date DB Stamp 2 Time | Zeitstempel der letzten Seite der Log-Sicherung
Page Count | Gesamtzahl der gesicherten Seiten
Devices Used | Anzahl der verwendeten Sicherungsgeräte
Database ID | Datenbankkennung (zur Identifikation zueinandergehöriger Daten- und Log-Sicherungen)
Max Used Data Page | höchste vergebene Seitenzahl (Hinweis für minimale Datenbankgröße bei Einlesen der Sicherung)

Antwort im Fehlerfall

Wenn bei der Verwendung eines externen Sicherungswerkzeugs ein Fehler auftritt, erhalten Sie eine Antwort in folgender Form:

ERR<NL>
<errcode>, <err_description><NL>
[<extended_description><NL>]

<errcode> | Nummer der Fehlermeldung Siehe auch: Meldungen
<err_description> | Beschreibung des Fehlers
<extended_description> | Fehlerursache

Es können folgende Fehler auftreten:

<errcode> | <err_description> | Erläuterung
-24927 | ERR_TOOLCHK: the external backup tool was not found | Das externe Sicherungswerkzeug wurde nicht gefunden oder ist nicht korrekt installiert.
-24926 | ERR_MEDIUMCHK: the medium cannot be used with an external backup tool | Das angegebene Sicherungsmedium kann nicht mit dem Sicherungswerkzeug verwendet werden, auf das der Medienname hinweist (Anlegen oder Ändern eines Sicherungsmediums).
-24925 | ERR_PREPARE: prepare of the backup operation failed | Die für die Verwendung des Sicherungswerkzeugs notwendigen Vorbereitungen konnten nicht erfolgreich abgeschlossen werden.
-24924 | ERR_DBREQ: cannot start database kernel request | Die Datenbankinstanz konnte den Wiederherstellungsvorgang nicht starten.
-24923 | ERR_TOOLREQ: cannot start external backup tool correctly | Das Sicherungswerkzeug konnte nicht korrekt gestartet werden.
-24922 | ERR_OPCHK: cannot check state of backup operation | Es war nicht möglich, die Zustände der Datenbankinstanz oder des Sicherungswerkzeugs zu überprüfen.
-24921 | ERR_POSTOP: cannot finish backup operation correctly | Obwohl die Wiederherstellung erfolgreich war, konnten die notwendigen Nachbearbeitungsschritte nicht durchgeführt werden.
-24920 | ERR_BACKUPOP: backup operation was unsuccessful | Die Wiederherstellung ist wegen eines Datenbankproblems oder eines Problems des Sicherungswerkzeuges fehlgeschlagen.
-24919 | ERR_CLEANUP: cannot clean up correctly after backup operation | Obwohl die Wiederherstellung erfolgreich war, konnten die in Anspruch genommenen temporären Systemressourcen nicht wieder freigegeben werden.


Wiederherstellen eines beschädigten Indexes (MaxDB: Database Manager CLI)

Wiederherstellen eines beschädigten Indexes

Verwendung

Mit diesem Kommando stellen Sie die spezifizierten Indizes wieder her.

Indizes können aus verschiedenen Gründen unbrauchbar werden. So werden Indizes aus Zeitgründen beim Wiederherstellen der Datenbankinstanz nicht gepflegt und mit dem Attribut bad versehen. Sie müssen explizit wiederhergestellt werden.

Indizes können auch durch Hard- oder Softwarefehler beschädigt werden. Wenn der Datenbankkern einen defekten Index feststellt, wird dieser als bad markiert. Er steht dem Optimierer dann bei der Strategiefindung nicht mehr zur Verfügung.

Beschädigte Indizes werden von der Datenbanksoftware ignoriert. Sie können deshalb kein Fehlverhalten hervorrufen, beeinträchtigen jedoch die Performance der Datenbankinstanz.

Voraussetzungen

Sie haben die DBM-Benutzerberechtigung AccessSQL.

Sie haben eine SQL-Sitzung eröffnet.

Syntax

sql_recreateindex <scheme>.<table>.<index>

<scheme> | Schema
<table> | Tabellenname
<index> | Indexname oder Feldname

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat.


Wiederherstellen eines beschädigten Volume (MaxDB: Database Manager CLI)

Wiederherstellen eines beschädigten Volume

Verwendung

Wenn Sie die Log-Volumes einer Datenbankinstanz gespiegelt betreiben und während des laufenden Datenbankbetriebs ein einzelnes Log-Volume ausfällt, haben Sie die Möglichkeit, die Funktion dieses ausgefallenen Volume wiederherzustellen.

Einträge, die nur auf das intakte Volume geschrieben wurden, während das beschädigte Volume außer Betrieb war, werden dabei nicht kopiert.

Die Sicherheit des gespiegelten Log-Volume ist erst wieder ab der Inbetriebnahme des wiederhergestellten Volume gegeben. Sichern Sie deshalb die nur einmal vorhandenen Log-Einträge mit Hilfe einer Log-Sicherung (Sichern der Datenbankinstanz).

Voraussetzungen

Sie haben die DBM-Benutzerberechtigung Recovery.

Sie betreiben die Datenbankinstanz mit gespiegelten Log-Volumes. ( LOG_MODE: DUAL).

Sie haben eine Utility-Sitzung eröffnet.

Sie haben das Kommandos zum Wiederherstellen der Datenbankinstanz ausgeführt.

Syntax

recover_volume <volno> [<volmode>]

<volno> | Nummer des Volume
<volmode> | Hier ist nur LOG möglich.

Mit diesem Kommando nehmen Sie ein beschädigtes Volume eines Volume-Paares wieder in Betrieb.

Antwort

Sie erhalten Sie eine OK-Meldung.

Im Fehlerfall siehe Antwortformat.


Wiederherstellen mit externen Sicherungswerkzeugen (MaxDB: Database Manager CLI)

Wiederherstellen mit externen Sicherungswerkzeugen

Der Database Manager unterstützt die Verwendung von externen Sicherungswerkzeugen für vollständige und inkrementelle Datensicherungen sowie beim Archivieren von Log-Sicherungen.

Informationen darüber, welche externen Sicherungswerkzeuge von MaxDB unterstützt werden, finden Sie in der Dokumentation Datenbankverwaltung unter Externes Sicherungswerkzeug.

Verwendung der Sicherungswerkzeuge

Sie starten den Vorgang des Wiederherstellens der Datenbankinstanz aus dem Database Manager CLI. Aufgrund der Namenskonventionen für externe Sicherungsmedien erkennt das Programm das externe Sicherungswerkzeug und startet es.

Voraussetzungen

Sie haben Ihre SAP DB-Softwareinstallation für das zu verwendende externe Sicherungswerkzeug konfiguriert (Siehe Dokumentation Anschluss Externer Sicherungswerkzeuge).

NetWorker benötigt bei der Wiederherstellung den exakten Namen der jeweiligen Sicherungspipe. Daher muss die Mediengruppe bei der Wiederherstellung exakt so konfiguriert sein, wie bei der Sicherung. Dies gilt auch für die Reihenfolge der Sicherungsmedien in der Mediengruppe.

Vorgehensweise

Ermitteln Sie zunächst die externe Sicherungskennung der gewünschten Sicherung (Holen von externen Sicherungskennungen, Anzeigen von externen Sicherungskennungen). Anhand dieser Kennung identifiziert der Database Manager die wiederherzustellende Sicherung.

Die Zahl der Medien einer Gruppe paralleler Sicherungsmedien muss der Anzahl der Medien entsprechen, die für das Erstellen der Sicherung verwendet wurde.

Sollte es beim parallelen Wiederherstellen zu einem Deadlock kommen, müssen Sie die Sicherung sequentiell (d.h. über die einzelnen Medien der Mediengruppe) mit Hilfe des Database Manager einlesen.

Verfahren Sie nun weiter wie unter Wiederherstellen der Datenbankinstanz beschrieben.


Wiederherstellen oder Prüfen einer Sicherung mit Folgemedium (MaxDB: Database Manager CLI)

Wiederherstellen oder Prüfen einer Sicherung mit Folgemedium

Verwendung

Sie geben das Folgemedium an, von dem die Sicherung weitergelesen werden soll. Als Antwort auf dieses Kommando erhalten Sie die Informationen über das Einlesen der Sicherung. Die Ausgabe erfolgt jedoch erst dann, wenn die Sicherung vollständig eingelesen ist oder unterbrochen wurde. Die Ausführung dieses Kommandos kann deshalb sehr lange dauern.

Voraussetzungen

Sie haben die DBM-Benutzerberechtigung Backup.

Sie haben das Kommando zum Wiederherstellen der Datenbankinstanz ausgeführt. Der Vorgang wurde unterbrochen, weil die Sicherung von einem Sicherungsmedium vollständig eingelesen worden ist.

Syntax

recover_replace <medium> [ExternalBackupID <ext_backup_ID>] [<loc> [<nnn>]]

<medium>

Sicherungsmedium von dem die Sicherung eingelesen werden soll.
Beim Wiederherstellen einer Sicherung, die auf mehrere parallele Sicherungsmedien erstellt wurde, ist hier der Name der Gruppe paralleler Sicherungsmedien anzugeben.

Optionen

ExternalBackupID <external_backup_ID> | Zum Wiederherstellen einer Sicherung, die mit einem externen Sicherungswerkzeug erzeugt wurde, geben Sie hier den Namen an, unter dem die Sicherung dem externen Sicherungswerkzeug bekannt ist.
<loc> | Name des Gerätes/der Datei in dem sich die wiederherzustellende Sicherung befindet. Das Gerät/die Datei muss über <loc> durch Betriebssystemfunktionen angesprochen werden können.
<nnn> | Konkrete Sicherungsversion auf dem einzulesenden Sicherungsmedium, nur für ein Sicherungsmedium vom Typ FILE relevant

Beachten Sie unbedingt, welchen aktuellen Regeln die Mediennamen entsprechen müssen (Anlegen oder Ändern eines Sicherungsmediums) um Fehlermeldungen zu vermeiden.

Antwort

OK<NL>
Returncode              <value><NL>
Date                    [<value>]<NL>
Time                    [<value>]<NL>
Server                  [<value>]<NL>
Database                [<value>]<NL>
Kernel Version          [<value>]<NL>
Pages Transferred       [<value>]<NL>
Pages Left              [<value>]<NL>
Volumes                 [<value>]<NL>
Medianame               [<value>]<NL>
Location                [<value>]<NL>
Errortext               [<value>]<NL>
Label                   [<value>]<NL>
Is Consistent           [<value>]<NL>
First LOG Page          [<value>]<NL>
Last LOG Page           [<value>]<NL>
DB Stamp 1 Date         [<value>]<NL>
DB Stamp 1 Time         [<value>]<NL>
DB Stamp 2 Date         [<value>]<NL>
DB Stamp 2 Time         [<value>]<NL>
Page Count              [<value>]<NL>
Devices Used            [<value>]<NL>
Database ID             [<value>]<NL>
Max Used Data Page      [<value>]<NL>

Es ist insbesondere das Antwortfeld Returncode auszuwerten, das einen vom Kern gelieferten numerischen Wert enthält.

Siehe auch: Meldungen: SAP

Ergibt sich aus der Meldungsnummer, dass das Wiederherstellen nur unterbrochen wurde, muss die Sitzung mit einem Folgekommando fortgesetzt (recover_replace) oder beendet werden (recover_cancel).

Werte für die einzelnen Felder der Antwort

Date

Datum

Time

Zeit

Server

Name des Datenbankrechners

Database

Name der Datenbank

Kernel Version

Version des Datenbankkerns

Pages Transferred

Anzahl der übertragenen Seiten

Pages Left

Anzahl noch zu übertragender Seiten

Volumes

Anzahl der verwendeten Sicherungsmedien

Medianame

Name des Sicherungsmediums

Location

Datei- oder Gerätename

Errortext

Text der Fehlermeldung

Label

Sicherungskennung

Is Consistent

nur für Datensicherung: Sicherung ist in sich konsistent

First LOG Page

bei Datensicherung: erste einzulesende Seite der Log-Sicherung

bei Log-Sicherung: erste gesicherte Seite im Log

Last LOG Page

nur für Log-Sicherung: letzte gesicherte Seite im Log

DB Stamp 1 Date
DB Stamp 1 Time

Zeitstempel der ersten Seite der Log-Sicherung

DB Stamp 2 Date
DB Stamp 2 Time

Zeitstempel der letzten Seite der Log-Sicherung

Page Count

Gesamtzahl der gesicherten Seiten

Devices Used

Anzahl der verwendeten Sicherungsgeräte

Database ID

Datenbankkennung (zur Identifikation zueinandergehöriger Daten- und Log-Sicherungen)

Max Used Data Page

höchste vergebene Seitenzahl (Hinweis für minimale Datenbankgröße bei Einlesen der Sicherung)

Im Fehlerfall siehe Antwortformat.


Anzeigen von Datenbankinformationen (MaxDB: Database Manager CLI)

Anzeigen von Datenbankinformationen

Verwendung

Für den täglichen Betrieb der Datenbankinstanz stehen Ihnen Kommandos zur Verfügung, mit denen Sie aktuelle Informationen zur Datenbankinstanz abrufen können.

Voraussetzungen

Beachten Sie die für die jeweiligen DBM-Kommandos notwendigen Benutzerberechtigungen.

Übersicht der Kommandos zum Anzeigen von Datenbankinformationen


Übersicht der DBM-Kommandos zum Anzeigen von Datenbankinformatio (MaxDB: Database Manager CLI)

Übersicht der DBM-Kommandos zum Anzeigen von Datenbankinformationen

Anzeigen der Schlüsselwörter für Informationen zur Datenbankinstanz | show_list
Anzeigen des Betriebszustands der Datenbankinstanz | db_state
Anzeigen von Informationen zur Datenbankinstanz | show
Blättern in den Informationen zur Datenbankinstanz | show_next


Anzeigen der Schlüsselwörter für Informationen zur Datenbankinst (MaxDB: Database Manager CLI)

Anzeigen der Schlüsselwörter für Informationen zur Datenbankinstanz

Verwendung

Sie lassen sich die Liste aller Schlüsselwörter <keyword> für Informationen zur Datenbankinstanz anzeigen. Anschließend verwenden Sie das Kommando show <keyword> (Anzeigen von Informationen zur Datenbankinstanz), um die gewünschte Information anzuzeigen.

Voraussetzungen

Sie haben die DBM-Benutzerberechtigung DBInfoRead.

Syntax

show_list


Anzeigen des Betriebszustands der Datenbankinstanz (MaxDB: Database Manager CLI)

Anzeigen des Betriebszustands der Datenbankinstanz

Verwendung

Sie lassen sich den aktuellen Betriebszustand der Datenbankinstanz anzeigen.

Voraussetzungen

Sie haben die DBM-Benutzerberechtigung DBInfoRead.

Syntax

db_state

Antwort

OK<NL>
State<NL>
(ONLINE|ADMIN|OFFLINE|UNKNOWN|STOPPED INCORRECTLY)

Zustand | Beschreibung
ONLINE | Die Datenbankinstanz ist betriebsbereit.
ADMIN | Die Datenbankinstanz ist im Zustand der Betriebsruhe. Nur spezielle administrative Tätigkeiten sind möglich.
OFFLINE | Die Datenbankinstanz ist nicht gestartet.
STOPPED INCORRECTLY | Nur bei Betriebssystem UNIX: Die Datenbankinstanz steht nach einem Fehler.
UNKNOWN | Der Betriebszustand konnte nicht ermittelt werden.


Anzeigen von Informationen zur Datenbankinstanz (MaxDB: Database Manager CLI)

Anzeigen von Informationen zur Datenbankinstanz

Verwendung

Sie lassen sich Informationen über die Datenbankinstanz zu Statistiken, dem Betriebszustand, Tasks usw. anzeigen. Dazu greift das Kommando show auf das Programm x_cons zurück und liefert dessen Ausgaben.

Voraussetzungen

Sie haben die DBM-Benutzerberechtigung DBInfoRead.

Syntax

show <command>

Mögliche Werte für <command>

IO | Ein- und Ausgabeaktivitäten beim regulären Datenbankbetrieb
AIO | Ein- und Ausgabeaktivitäten bei Datensicherungen
STORAGE | Konfiguration und aktuelle Belegung der verschiedenen Speicherbereiche
TASKS | Liste der vorhandenen Tasks
ACTIVE [DW|SV|US] | Aktive Tasks für [Datawriter-Task|Server-Task|User-Task]
RUNNABLE [DW|SV|US] | Lauffähige Tasks (Warten auf CPU)
T_C [DW|SV|US|Tx] | Task-spezifische Informationen zu [Datawriter_Task | Server-Task | User-Task | Task Nr.x}
VERSIONS | Aktuelle Variante des Datenbankkerns und der LZU
REGIONS | Informationen über die im Kern benutzten kritischen Abschnitte
STATE | Betriebszustand der Datenbankinstanz
RTE | Laufzeitumgebung
QUEUES | Queues mit laufbereiten Tasks (Warten auf CPU)
SUSPENDS | Informationen über auftretende Suspend-Zustände im Gesamtsystem
SLEEP | Die vom Datenbankkern ermittelte CPU-Auslastung durch User-Kernel-Threads
THRD_TIMES | Vom System gelieferte Informationen über die CPU-Auslastung durch User-Kernel-Threads (nur Betriebssystem Microsoft Windows)
ALL | Alle von der Datenbankkonsole bereitgestellten Informationen

Antwort

OK<NL>
[CONTINUE]<NL>
<info_record><NL>
<info_record><NL>

Continue | Es liegen noch Ergebnisdaten bereit
<info_record> | Information


Blättern in den Informationen zur Datenbankinstanz (MaxDB: Database Manager CLI)

Blättern in den Informationen zur Datenbankinstanz

Verwendung

Sie lassen sich weitere Informationen zur Datenbankinstanz anzeigen.

Voraussetzungen

Sie haben die DBM-Benutzerberechtigung DBInfoRead.

Sie haben ein Kommando zum Anzeigen von Informationen zur Datenbankinstanz eingegeben. Das Schlüsselwort CONTINUE in der Antwort zeigt, dass noch weitere Informationen abgefragt werden können, die wegen der beschränkten Größe des Antwortspeichers noch nicht ausgegeben wurden.

Syntax

show_next

Antwort

OK<NL>
[CONTINUE | END]<NL>
<info_record><NL>
<info_record><NL>

Werte der einzelnen Felder der Antwort

END | Die angeforderten Informationen zur Datenbankinstanz wurden vollständig übertragen. Die Datei wird automatisch geschlossen.
Continue | Es liegen noch Ergebnisdaten bereit, die aufgrund der begrenzten Größe des Antwortspeichers nicht übertragen wurden. Sie können diese durch erneutes Eingeben des Kommandos show_next abrufen.
<info_record> | Information


Analysieren der Datenbankinstanz (MaxDB: Database Manager CLI)

Analysieren der Datenbankinstanz

Verwendung

Sie haben die Möglichkeit, verschiedene Analysen der Datenbankinstanz durchzuführen.

Der Database Manager bietet dafür folgende Möglichkeiten:

Datenbank-Trace-Funktionen

Zugriff auf das Programm Database Analyzer

Zugriff auf Datenbankdateien

Zugriff auf Events

Voraussetzungen

Beachten Sie die für die jeweiligen DBM-Kommandos notwendigen Serverberechtigungen.

Siehe auch:

Übersicht der DBM-Kommandos zum Analysieren der Datenbankinstanz


Übersicht der DBM-Kommandos zum Analysieren der Datenbankinstanz (MaxDB: Database Manager CLI)

Übersicht der DBM-Kommandos zum Analysieren der Datenbankinstanz

Aktivieren eines Events | event_set
Anzeigen der Diagnosehistorie | diag_histlist
Anzeigen der Optionen für die Textversion des Datenbank-Trace | trace_protopt
Anzeigen der protokollierten Aktivitäten des Datenbank-Trace | trace_show
Aufrufen des Database Analyzer | dban_start
Ausschalten des Datenbank-Trace | trace_off
Bearbeiten von Protokolldateien der Datenbankinstanz | file_operation
Beenden einer Eventsitzung | event_release
Beenden des Database Analyzer | dban_stop
Blättern im Inhalt einer Datenbankdatei | file_getnext
Deaktivieren eines Events | event_delete
Einschalten des Datenbank-Trace | trace_on
Ermitteln des Status des Database Analyzer | dban_state
Erstellen der Textversion des Datenbank-Trace | trace_prot
Liste der Events und ihres Status erstellen | event_list
Liste der Datenbankdateien erstellen | file_getlist
Löschen des Inhalts des Datenbank-Trace | trace_clear
Öffnen einer Datenbankdatei | file_getfirst
Packen von Datenbankdateien | diag_pack
Sichern einer Datenbankdatei | file_backup
Warten auf ein Event | event_wait
Wiederherstellen einer Datenbankdatei | file_restore


Datenbank-Trace-Funktionen (MaxDB: Database Manager CLI)

Datenbank-Trace-Funktionen

Verwendung

Nutzen Sie diese Funktionen nur, wenn Sie durch den Support dazu aufgefordert werden. Für den normalen Datenbankbetrieb ist der Datenbank-Trace nicht erforderlich.

Mit Hilfe des Datenbank-Trace protokollieren Sie detailliert ausgewählte Aktivitäten der Datenbankinstanz. Mit den DBM-Kommandos für die Datenbank-Trace-Funktionen können Sie den Datenbank-Trace einschalten, ausschalten und auswerten.

Folgende Kommandos stehen Ihnen zur Verfügung:

Anzeigen der Optionen für die Textversion des Datenbank-Trace | trace_protopt
Anzeigen der protokollierten Aktivitäten des Datenbank-Trace | trace_show
Ausschalten des Datenbank-Trace | trace_off
Einschalten des Datenbank-Trace | trace_on
Erstellen der Textversion des Datenbank-Trace | trace_prot
Löschen des Inhalts des Datenbank-Trace | trace_clear

Voraussetzungen

Beachten Sie die für die jeweiligen DBM-Kommandos notwendigen Serverberechtigungen.


Anzeigen der Kommandooptionen für die Textversion des Datenbank- (MaxDB: Database Manager CLI)

Anzeigen der Kommandooptionen für die Textversion des Datenbank-Trace

Verwendung

Verwenden Sie dieses DBM-Kommando für die Datenbank-Trace-Funktion nur, wenn Sie durch den Support dazu aufgefordert werden. Für den normalen Datenbankbetrieb ist der Datenbank-Trace nicht erforderlich.

Sie lassen sich anzeigen, welche Kommandooptionen für das Erstellen der Textversion des aktuellen Datenbank-Trace zulässig sind, um die Trace-Ausgaben der datenbankinternen Komponenten einzuschränken. Sie erhalten eine Liste mit Namen und Beschreibung dieser Kommandooptionen.

Voraussetzungen

Sie haben die Serverberechtigung DBInfoRead oder DBFileRead.

Syntax

trace_protopt

dbmcli -d DB -u dbm,dbm trace_protopt

OK
name,option
a Order Interface (AK)
b Record Interface (BD)
k Show Message Block (KB)
m Message Block
e No Entrypos Output
s Strategy
t Time
x Switch Output (Slow Kernel)

a | Die Trace-Ausgaben der datenbankinternen Komponente Auftragsschnittstelle werden in die Textdatei übertragen.
b | Die Trace-Ausgaben der datenbankinternen Komponente Datensatz-Schnittstelle werden in die Textdatei übertragen.
k | Die Trace-Ausgaben der datenbankinternen Komponente Tabellen-Schnittstelle werden in die Textdatei übertragen.
m | Die Nachrichtenpuffer genannte interne Datenstruktur wird in die Textdatei übertragen.
e | Für die Auftragsschnittstelle und den Nachrichtenpuffer werden die Nummer der Trace-Seite und die Position des Puffers innerhalb der Seite in die Textdatei übertragen.
s | Informationen über die Abarbeitungsstrategie werden in die Textdatei übertragen.
t | Die Ergebnisse interner Zeitmessungen werden in die Textdatei übertragen.
x | Zusätzliche Trace-Ausgaben werden in die Textdatei übertragen.

Antwort

OK<NL>
name,option<NL>
<name>,<option><NL>
<name>,<option><NL>
...


Anzeigen der protokollierten Aktivitäten des Datenbank-Trace (MaxDB: Database Manager CLI)

Anzeigen der protokollierten Aktivitäten des Datenbank-Trace

Verwendung

Verwenden Sie dieses DBM-Kommando für die Datenbank-Trace-Funktion nur, wenn Sie durch den Support dazu aufgefordert werden. Für den normalen Datenbankbetrieb ist der Datenbank-Trace nicht erforderlich.

Sie lassen sich anzeigen, welche Aktivitäten der Datenbankinstanz zur Zeit protokolliert werden.

Unter dem Spaltennamen Description werden alle Aktivitäten angezeigt, die protokolliert werden können. Bei jenen, die aktuell tatsächlich protokolliert werden, steht unter Spalte State das Wort ON.

Wenn Sie die Option verbose angeben, erhalten Sie eine erweiterte Beschreibung zum Datenbank-Trace.

Voraussetzungen

Sie haben die Serverberechtigung DBInfoRead oder DBFileRead.

Syntax

trace_show [verbose]

dbmcli -d DB -u dbm,dbm trace_show

OK
Name State Level Description
DEFAULT OFF - Default
INDEX OFF - Index
LOCK ON - Lock
LONG OFF - Long
PAGES OFF - Pages
STANDARD OFF - Standard
TABLE OFF - Table
OBJECT OFF - Objects
OBJECTADD OFF - Objects add
OBJECTGET OFF - Objects get
OBJECTALTER OFF - Objects alter
OBJECTFREE OFF - Objects free
SELECT OFF - Select
INSERT OFF - Insert
UPDATE OFF - Update
DELETE OFF - Delete
ORDER OFF - Order
OPTIMIZER OFF - Optimize
TIME OFF - Time
CHECK OFF - Check
COMMANDS ON - Commands
TOPICCONVERTER OFF 0 Topic Converter
TOPICDATA OFF 0 Topic Data
TOPICFRAMECTRL OFF 0 Topic Framecontrol
TOPICLOG OFF 0 Topic Log
TOPICIOMAN ON 7 Topic I/O manager
TOPICMEMORY OFF 0 Topic Memory
TOPICVOLUME OFF 0 Topic Devspace
TOPICRUNTIME OFF 0 Topic Runtime
TOPICALLOCATOR OFF 0 Topic Allocator
CHECKCONVERTER OFF 0 Check Converter
CHECKDATA OFF 0 Check Data
CHECKFRAMECTRL OFF 0 Check Framecontrol
CHECKLOG OFF 0 Check Log
CHECKIOMAN OFF 0 Check I/O manager
CHECKMEMORY OFF 0 Check Memory
CHECKVOLUME ON 3 Check Devspace
CHECKRUNTIME OFF 0 Check Runtime
CHECKALLOCATOR OFF 0 Check Allocator

...

Antwort

OK<NL>
name State Level Description<NL>
<name> (ON|OFF) (-|<level>) <short description>[,<long description>]<NL>
<name> (ON|OFF) (-|<level>) <short description>[,<long description>]<NL>
...


Ausschalten des Datenbank-Trace (MaxDB: Database Manager CLI)

Ausschalten des Datenbank-Trace

Verwendung

Für den normalen Datenbankbetrieb ist der Datenbank-Trace nicht erforderlich. Sie sollten ihn deshalb nur auf Anforderung durch den Support ein- und anschließend wieder ausschalten, da sich das Schreiben eines Datenbank-Trace nachteilig auf die Performance Ihres Datenbanksystems auswirkt.

Sie legen fest, welche Aktivitäten der Datenbankinstanz nicht mehr protokolliert werden sollen oder schalten den Datenbank-Trace insgesamt aus.

Mit der Kommandooption activity_list geben Sie an, welche Aktivitäten nicht mehr protokolliert werden sollen. Mehrere Aktivitäten trennen Sie durch ein Leerzeichen.

Durch die Angabe von ALL schalten Sie die Protokollierungsfunktion für alle Aktivitäten und damit den Datenbank-Trace insgesamt aus.

Die aktuell aktiven Kommandooptionen und eine Beschreibung können Sie sich mit dem Kommando trace_show verbose (Anzeigen der protokollierten Aktivitäten des Datenbank-Trace) anzeigen lassen.

Voraussetzungen

Sie haben die Serverberechtigung DBInfoRead oder DBFileRead.

Syntax

trace_off <activity_list> | ALL
<activity_list> :: = <activity> | <activity> <activity_list>

Ausschalten des Datenbank-Trace für die Bereiche LOCK und TOPICIOMAN

dbmcli -d a74 -u dbm,dbm trace_off LOCK TOPICIOMAN

OK

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat.


Einschalten des Datenbank-Trace (MaxDB: Database Manager CLI)

Einschalten des Datenbank-Trace

Verwendung

Verwenden Sie dieses Kommando nur, wenn Sie durch den Support dazu aufgefordert werden. Für den normalen Datenbankbetrieb ist der Datenbank-Trace nicht erforderlich.

Folgen Sie den Vorgaben des Supports, welche Aktivitäten protokolliert werden sollen.

Mit diesem Kommando schalten Sie den Datenbank-Trace ein. Damit werden ausgewählte Aktivitäten des Datenbankkerns protokolliert.

Der Datenbank-Trace wird in der binären Datei knltrace im Arbeitsverzeichnis der Datenbankinstanz abgelegt. Zur Auswertung erstellen Sie anschließend die Textversion des Datenbank-Trace (Erstellen der Textversion des Datenbank-Trace).

Die file_id(siehe auch: Öffnen einer Datenbankdatei) zum Öffnen dieser Binärdatei ist KNLTRC.

Mit der Kommandooption activity_list geben Sie an, welche Aktivitäten protokolliert werden sollen. Mehrere Aktivitäten sind durch Leerzeichen zu trennen.
Die spezielle Kommandooption ALL schaltet die Protokollierung aller Aktivitäten ein.

Einige Aktivitäten erlauben die Angabe eines Protokollierungslevels von 1 bis 9. Diese Angabe ist optional. Vorschlagswert des Database Manager CLI ist Level 5.

Voraussetzungen

Sie haben die Serverberechtigung DBInfoRead oder DBFileRead.

Syntax

trace_on <activity_list> | ALL [<level>]

Einschalten des Datenbank-Trace für die Bereiche
LOCK
COMMANDS
TOPICIOMAN Level 7
CHECKVOLUME Level 3

dbmcli -d a74 -u dbm,dbm trace_on LOCK COMMANDS TOPICIOMAN 7 CHECKVOLUME 3

OK

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat.


Erstellen der Textversion des Datenbank-Trace (MaxDB: Database Manager CLI)

Erstellen der Textversion des Datenbank-Trace

Verwendung

Verwenden Sie dieses Kommando nur, wenn Sie durch den Support dazu aufgefordert werden. Für den normalen Datenbankbetrieb ist der Datenbank-Trace nicht erforderlich.

Sie überführen die Binärversion des Datenbank-Trace in die Textversion. Dabei sind als Kommandooptionen option alle Werte sowie Kombinationen der Werte zulässig, die Sie beim Anzeigen der Optionen für die Textversion des Datenbank-Trace erhalten haben.

Die Binärversion des Datenbank-Trace hat den Dateinamen knltrace und ist im Arbeitsverzeichnis der Datenbankinstanz abgelegt (siehe auch: Datenbankdateien).

Voraussetzungen

· Sie haben die Serverberechtigung DBInfoRead oder DBFileRead.

· Sie haben den Datenbank-Trace erzeugt (Einschalten des Datenbank-Trace).

· Sie haben die File-ID der Datenbank-Trace-Datei ermittelt (Liste der Datenbankdateien erstellen).

Syntax

trace_prot <option> | <option>...

Erzeugen der Textversion des Datenbank-Trace für die Bereiche
a - Order Interface und b - Record Interface:

dbmcli -d DB -u dbm,dbm trace_prot ab

OK

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat.


Löschen des Inhalts des Datenbank-Trace (MaxDB: Database Manager CLI)

Löschen des Inhalts des Datenbank-Trace

Verwendung

Sie löschen den aktuellen Inhalt des Datenbank-Trace.

Verwenden Sie dieses DBM-Kommando, um nicht mehr benötigte Daten aus dem Datenbank-Trace zu löschen, bevor Sie durch das Einschalten des Datenbank-Trace gezielt Aktivitäten der Datenbankinstanz protokollieren.

Voraussetzungen

Sie haben die Serverberechtigung DBInfoRead oder DBFileRead.

Syntax

trace_clear

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat.


Zugriff auf das Programm Database Analyzer (MaxDB: Database Manager CLI)

Zugriff auf das Programm Database Analyzer

Verwendung

Das Programm Database Analyzer ist ein Werkzeug zur Analyse der Datenbankinstanz. Es löst die früheren Werkzeuge XWIZARD und XWIZTRC ab und erleichtert die Erforschung der Ursachen von Performanceproblemen.

Die Verwendung des Database Analyzer ist unabhängig vom Datenbankinstanztyp und der Version der Datenbanksoftware.

Es ist möglich, mit diesem Programm von einem entfernten Rechner auf die Datenbankinstanz zuzugreifen.

Folgende DBM-Kommandos stehen für den Zugriff auf den Database Analyzer zur Verfügung:

Aufrufen des Database Analyzer | dban_start
Beenden des Database Analyzer | dban_stop
Ermitteln des Status des Database Analyzer | dban_state


Aufrufen des Database Analyzer (MaxDB: Database Manager CLI)

Aufrufen des Database Analyzer

Verwendung

Sie rufen im Database Manager das Programm Database Analyzer auf. Der Database Manager übergibt daraufhin dem Database Analyzer den Datenbanknamen, die Daten des Benutzers SYSDBA und die mit dem DBM-Kommando zum Aufruf gegebenefalls übermittelten Optionen.

Wenn der Database Analyzer bereits aktiv ist, wird nur sein Status ermittelt.

Syntax

dban_start [<options>]

Beispiel

Aufruf des Database Manager, Anmelden als Benutzer DBM mit dem Kennwort DBM an die Datenbankinstanz HOTELDB, Aufrufen des Database Analyzer

dbmcli -d HOTELDB -u DBM,DBM dban_start

Antwort

Sie erhalten die Ausgabe des Database Analyzer.

Beispiel für einen erfolgreichen Aufruf des Database Analyzer

Beispiel für einen Fehler beim Aufruf des Database Analyzer


Beispiel für einen erfolgreichen Aufruf des Database Analyzer (MaxDB: Database Manager CLI)

Beispiel für einen erfolgreichen Aufruf des Database Analyzer

Name der Datenbankinstanz: a74

Name und Benutzerkennwort des DBM-Benutzers: dbm,dbm

d:\v74>dbmcli -d a74 -u dbm,dbm dban_start

Antwort:

OK
0,OK: everything works fine
0, Database Analyzer -d A74 -u *,* -state

SAP DB Database Analyzer, The Performance Analysis Tool, Version 7.4
Copyright (c) 1998-2002 by SAP AG

Used protocol directory: D:\V74\USR\wrk\A74\analyzer
Used configuration file: D:\V74\USR\env\dbanalyzer74.cfg

INFO 13: Database Analyzer active in directory "D:\V74\USR\wrk\A74\analyzer".

Database = A74
Node =
Rundirectory = D:\V74\USR\wrk\A74
Configfile = D:\V74\USR\env\dbanalyzer74.cfg
Protocoldirectory = D:\V74\USR\wrk\A74\analyzer
Interval = 900
Reconnect = false
ProcessID = 1884
SessionID = 657
Started = 2002-09-11 09:16:29

Der Database Analyzer wurde erfolgreich gestartet bzw. war bereits aktiv.


Beispiel für einen Fehler beim Aufruf des Database Analyzer (MaxDB: Database Manager CLI)

Beispiel für einen Fehler beim Aufruf des Database Analyzer

Name der Datenbankinstanz: a74

Name und Benutzerkennwort des DBM-Benutzers: dbm,dbm

d:\v74>dbmcli -d a74 -u dbm,dbm dban_start

Antwort:

ERR
-24964,ERR_EXECUTE: error in program execution
1,Database Analyzer -d A74 -u *,* -state

SAP DB Database Analyzer, The Performance Analysis Tool, Version 7.4
Copyright (c) 1998-2002 by SAP AG

ERROR 4: Cannot connect to database.

-709 [SAP AG][SQLOD32 DLL][SAP DB]Unable to connect to data source;-709 CONNECT:(database not running).

Der Database Analyzer konnte nicht gestartet werden.
Sie erhalten eine Beschreibung der Fehlerursache.


Beenden des Database Analyzer (MaxDB: Database Manager CLI)

Beenden des Database Analyzer

Verwendung

Sie beenden aus dem Database Manager heraus das Programm Database Analyzer. Wenn er nicht aktiv ist, wird nur sein Status ausgegeben.

Syntax

dban_stop

Beispiel

Aufruf des Database Manager, Anmelden als Benutzer DBM mit dem Kennwort DBM an die Datenbankinstanz HOTELDB, Beenden des Database Analyzer

dbmcli -d HOTELDB -u DBM,DBM dban_stop

Antwort

Sie erhalten die Ausgaben des Database Analyzer.

Beispiel für ein erfolgreiches Beenden des Database Analyzer

Beispiele für Fehler beim Beenden des Database Analyzer


Beispiel für ein erfolgreiches Beenden des Database Analyzer (MaxDB: Database Manager CLI)

Beispiel für ein erfolgreiches Beenden des Database Analyzer

Name der Datenbankinstanz: a74

Name und Benutzerkennwort des DBM-Benutzers: dbm,dbm

d:\v74>dbmcli -d a74 -u dbm,dbm dban_stop

Antwort:

OK
0,OK: everything works fine
0, Database Analyzer -d A74 -u *,* -stop

SAP DB Database Analyzer, The Performance Analysis Tool, Version 7.4
Copyright (c) 1998-2002 by SAP AG

Used protocol directory: D:\V74\USR\wrk\A74\analyzer
Used configuration file: D:\V74\USR\env\dbanalyzer74.cfg

Der Database Analyzer wurde erfolgreich beendet.


Beispiele für Fehler beim Beenden des Database Analyzer (MaxDB: Database Manager CLI)

Beispiele für Fehler beim Beenden des Database Analyzer

Name der Datenbankinstanz: a74

Name und Benutzerkennwort des DBM-Benutzers: dbm,dbm

d:\v74>dbmcli -d a74 -u dbm,dbm dban_stop

Antwort Beispiel 1:

ERR
-24964,ERR_EXECUTE: error in program execution
1, Database Analyzer -d A74 -u *,* -stop

SAP DB Database Analyzer, The Performance Analysis, Version 7.4
Copyright (c) 1998-2002 by SAP AG

Used protocol directory: D:\V74\USR\wrk\A74\analyzer
Used configuration file: D:\V74\USR\env\dbanalyzer74.cfg

ERROR 20: Database Analyzer not active in directory "D:\V74\USR\wrk\A74\analyzer".

Der Database Analyzer konnte nicht beendet werden.
ERROR 20 bedeutet, dass der Database Analyzer nicht aktiv ist.

Antwort Beispiel 2:

ERR
-24964,ERR_EXECUTE: error in program execution
1,dbanalyzer -d A74 -u *,* -stop

SAP DB Database Analyzer, The Performance Analysis Tool, Version 7.4
Copyright (c) 1998-2002 by SAP AG

ERROR 4: Cannot connect to database.

-709 [SAP AG][SQLOD32 DLL][SAP DB]Unable to connect to data source;-709 CONNECT: (database not running).

Der Database Analyzer konnte nicht beendet werden.
Sie erhalten eine Beschreibung der Fehlerursache.


Ermitteln des Status des Database Analyzer (MaxDB: Database Manager CLI)

Ermitteln des Status des Database Analyzer

Verwendung

Sie ermitteln, ob der Database Analyzer aktiv ist.

Syntax

dban_state

Beispiel

Aufruf des Database Manager, Anmelden als Benutzer DBM mit dem Kennwort DBM an die Datenbankinstanz HOTELDB, Abfragen des Status des Database Analyzer

dbmcli -d HOTELDB -u DBM,DBM dban_state

Antwort

Sie erhalten die Ausgabe des Database Analyzer über den aktuellen Status.

Beispiel für eine erfolgreiche Statusermittlung

Beispiel für einen Fehler bei der Statusermittlung


Beispiel für eine erfolgreiche Statusermittlung (MaxDB: Database Manager CLI)

Beispiel für eine erfolgreiche Statusermittlung

Name der Datenbankinstanz: a74

Name und Benutzerkennwort des DBM-Benutzers: dbm,dbm

d:\v74>dbmcli -d a74 -u dbm,dbm dban_state

Antwort Beispiel 1:

OK
0,OK: everything works fine
0, Database Analyzer -d A74 -u *,* -state

SAP DB Database Analyzer, The Performance Analysis Tool, Version 7.4
Copyright (c) 1998-2002 by SAP AG

Used protocol directory: D:\V74\USR\wrk\A74\analyzer
Used configuration file: D:\V74\USR\env\dbanalyzer74.cfg

INFO 20: Database Analyzer not active in directory "D:\V74\USR\wrk\A74\analyzer".

Der Status wurde erfolgreich ermittelt. INFO 20 bedeutet, dass der Database Analyzer nicht aktiv ist.

Antwort Beispiel 2:

OK
0,OK: everything works fine
0,dbanalyzer -d A74 -u *,* -state

SAP DB Database Analyzer, The Performance Analysis Tool, Version 7.4
Copyright (c) 1998-2002 by SAP AG

Used protocol directory: D:\V74\USR\wrk\A74\analyzer
Used configuration file: D:\V74\USR\env\dbanalyzer74.cfg

INFO 13: Database Analyzer active in directory "D:\V74\USR\wrk\A74\analyzer".

Database = A74
Node =
Rundirectory = D:\V74\USR\wrk\A74
Configfile = D:\V74\USR\env\dbanalyzer74.cfg
Protocoldirectory = D:\V74\USR\wrk\A74\analyzer
Interval = 900
Reconnect = false
ProcessID = 1896
SessionID = 639
Started = 2002-09-10 16:51:40

Der Status wurde erfolgreich ermittelt. INFO 13 bedeutet, dass der Database Analyzer aktiv ist. Sie erhalten weitere Informationen.


Beispiel für einen Fehler bei der Statusermittlung (MaxDB: Database Manager CLI)

Beispiel für einen Fehler bei der Statusermittlung

Name der Datenbankinstanz: a74

Name und Benutzerkennwort des DBM-Benutzers: dbm,dbm

d:\v74>dbmcli -d a74 -u dbm,dbm dban_stop

Antwort

ERR
-24964,ERR_EXECUTE: error in program execution
1, Database Analyzer -d A74 -u *,* -state

SAP DB Database Analyzer, The Performance Analysis, Version 7.4
Copyright (c) 1998-2002 by SAP AG

ERROR 4: Cannot connect to database.

-709 [SAP AG][SQLOD32 DLL][SAP DB]Unable to connect to data source;-709 CONNECT:(database not running).

Der Status konnte nicht ermittelt werden.
Sie erhalten eine Beschreibung der Fehlerursache.


Zugriff auf Datenbankdateien (MaxDB: Database Manager CLI)

Zugriff auf Datenbankdateien

Verwendung

Sie haben die Möglichkeit, auf die Datenbankdateien der aktuellen Datenbankinstanz zuzugreifen.

Dazu stehen Ihnen folgende DBM-Kommandos zur Verfügung:

Anzeigen der Diagnosehistorie | diag_histlist
Bearbeiten von Protokolldateien der Datenbankinstanz | file_operation
Blättern im Inhalt einer Datenbankdatei | file_getnext
Liste der Datenbankdateien erstellen | file_getlist
Öffnen einer Datenbankdatei | file_getfirst
Packen von Datenbankdateien | diag_pack
Sichern einer Datenbankdatei | file_backup
Wiederherstellen einer Datenbankdatei | file_restore

Voraussetzungen

Beachten Sie die für die jeweiligen DBM-Kommandos notwendigen Serverberechtigungen.


Anzeigen der Diagnosehistorie (MaxDB: Database Manager CLI)

Anzeigen der Diagnosehistorie

Verwendung

Sie lassen sich die verfügbare Diagnosehistorie anzeigen.

Wenn eine Datenbankinstanz nicht ordnungsgemäß gestoppt wurde, sichert das System beim erneuten Starten der Datenbankinstanz bestimmte Datenbankdateien. Diese Dateien werden für die Diagnose zuvor aufgetretener Probleme benötigt. Sie werden vom System in einer Diagnosesicherung gesichert und im Verzeichnis DIAGHISTORY im Arbeitsverzeichnis der Datenbankinstanz (Vorschlagswert des Database Manager) abgelegt. Sie können diesen Pfad über den Parameter DIAG_HISTORY_PATH definieren.

Wenn Sie das Kommando ohne Angabe der Option <YYYYMMDDHHMMSS> aufrufen, erhalten Sie eine Liste aller verfügbaren Diagnosesicherungen. Diese sind darin mit dem jeweiligen Zeitstempel und Pfad, unter dem die Sicherung abgelegt ist, aufgeführt. Sie können so auch mit Mitteln des Betriebssystems auf die Diagnosesicherung zugreifen.

Wenn Sie das Kommando mit der Option <YYYYMMDDHHMMSS> (Zeitstempel) angeben, erhalten Sie die File-IDs der zur Diagnosesicherung gehörenden Dateien angezeigt. Mit Hilfe der File-ID können Sie sich den Inhalt einer Datenbankdatei anzeigen lassen (Öffnen einer Datenbankdatei).

Voraussetzungen

Sie haben die DBM-Benutzerberechtigung DBFileRead.

Syntax

diag_histlist [<YYYYMMDDHHMMSS>]

Kommando ohne Angabe der Option

dbmcli -d DB -u dbm,dbmp diag_histlist

OK
20010706140709  d:\sapdb\usr\wrk\DB\DIAGHISTORY\A74_20010706_14-07-09
20010706162223  d:\sapdb\usr\wrk\DB\DIAGHISTORY\A74_20010706_16-22-23

Kommando mit Angabe der Option

dbmcli -d DB -u dbm,dbmp diag_histlist 20010706162223

OK
DIAGHIST#20010706_16-22-23\knldiag
DIAGHIST#20010706_16-22-23\knldump
DIAGHIST#20010706_16-22-23\knltrace
DIAGHIST#20010706_16-22-23\rtedump

Antwort

Das Ergebnis der Abfrage hängt davon ab, ob Sie die Option <YYYYMMDDHHMMSS> (Zeitstempel) angeben.

Nach Kommandoeingabe ohne Option

Wenn Sie keinen Zeitstempel angeben, erhalten Sie eine Liste aller verfügbaren Diagnosesicherungen.

OK<NL>
<YYYYMMDDHHMMSS> <directory><NL>

<YYYYMMDDHHMMSS> <directory><NL>

...

Nach Kommandoeingabe mit Option

Wenn sie einen Zeitstempel angeben, erhalten Sie eine Liste der zu der Diagnosesicherung gehörenden Dateien angezeigt.

OK<NL>
<file_id><NL>

<file_id><NL>

...

Im Fehlerfall siehe Antwortformat.


Bearbeiten von Protokolldateien der Datenbankinstanz (MaxDB: Database Manager CLI)

Bearbeiten von Protokolldateien der Datenbankinstanz

Verwendung

Sie löschen Teile des Inhalts oder ganze Protokolldateien der Datenbankinstanz.

Dieses Kommando ist nur für Protokolldateien und nicht für andere Datenbankdateien zulässig. Wenn Sie das Kommando auf eine nicht zulässige Datei anwenden, erhalten Sie den Fehler
-24996 ERR_PARAM - wrong parameters.

Mit dem Parameter OP geben Sie die durchzuführende Operation an.

Voraussetzungen

Sie haben die DBM-Benutzerberechtigung DBFileRead.

Sie haben mit dem Kommando zum Erstellen der Liste der Datenbankdateien die File-ID der zu bearbeitenden Datei oder Gruppe von Dateien ermittelt.

Syntax

file_operation <file_id> OP=DELETE [DATE=<yyyymmddhhmmss>] | OP=SHRINK DATE=<yyyymmddhhmmss>|LINE=<n>

<file_id>

Protokolldatei/en der Datenbankinstanz

OP=DELETE

Die Datei/en wird/werden gelöscht.

Mit dem Parameter DATE=<yyyymmddhhmmss> geben Sie an, dass alle Dateien zu löschen sind, die nach dem angegebenen Zeitpunkt nicht mehr geändert wurden.

OP=SHRINK

Teile des Inhalts der Datei werden gelöscht.

Wenn Sie zusätzlich den Parameter DATE=<yyyymmddhhmmss> angeben, werden alle Zeilen gelöscht, die vor dem angegebenen Zeitpunkt geschrieben wurden.

Wenn Sie stattdessen den Parameter LINE=<n> angeben, wird der Inhalt der Datei auf die Zeilenzahl <n> reduziert. Die zuletzt geschriebenen <n> Zeilen bleiben erhalten.

Antwort

Es wird eine OK-Meldung ausgegeben.

Im Fehlerfall siehe Antwortformat.


Blättern im Inhalt einer Datenbankdatei (MaxDB: Database Manager CLI)

Blättern im Inhalt einer Datenbankdatei

Verwendung

Sie fordern die Ausgabe des weiteren Inhalts einer geöffneten Datenbankdatei an. Verwenden Sie das beim Öffnen der Datenbankdatei ausgegebene <file_handle>.

Voraussetzungen

Sie haben eine Datenbankdatei geöffnet. Das Schlüsselwort CONTINUEin der Antwort zeigt an, dass die Datei noch nicht vollständig gelesen wurde.

Sie haben die DBM-Benutzerberechtigung DBFileRead.

Sie haben die File-ID für die Datei ermittelt (Liste der Datenbankdateien erstellen).

Syntax

file_getnext <file_id> <file_handle>

Antwort

Ausgabe im ASCII-Modus

OK<NL>
[CONTINUE|END]<NL>
<file_length>:20<data_length>:20<NL>
<data><NL>
<data><NL>
...

Ausgabe im Binärmodus

OK<NL>
[CONTINUE|END]<NL>
<file_length><data_length><NL>
 <data> <NL>

Werte für die einzelnen Felder der Antwort

END | Inhalt der Datei wurde vollständig übertragen, Datei wird automatisch geschlossen
CONTINUE | Datei hat noch weitere Einträge, die aufgrund der begrenzten Größe des Antwortspeichers nicht übertragen wurden, rufen Sie diese durch erneutes Eingeben des o. a. Kommandos ab
<file_length> | Dateilänge
<data_length> | Datenlänge
<data> | Datenwert

Die Gesamtlänge der Datei wird nicht noch einmal ermittelt und ist daher mit 0 ausgewiesen.


Liste der Datenbankdateien erstellen (MaxDB: Database Manager CLI)

Liste der Datenbankdateien erstellen

Verwendung

Sie fragen die Liste der Datenbankdateien der aktuellen Datenbankinstanz ab.

Mit dem Parameter <list_level> bestimmen Sie den Umfang der ausgegebenen Dateiliste.

Mögliche Werte für <list_level>:

0 | Vorschlagswert des Database Manager CLI, Anzeige der wichtigsten Dateien
1 | Anzeige aller Dateien

Voraussetzungen

Sie haben die DBM-Benutzerberechtigung DBFileRead.

Syntax

file_getlist <list_level>

Es werden nur die Dateien aufgeführt, die tatsächlich verfügbar sind. Daher kann die Liste in Abhängigkeit vom Zustand der Datenbankinstanz variieren.

Antwort

Sie erhalten eine OK-Meldung. Nachfolgend werden die aktuell vorhandenen Datenbankdateien ausgegeben.

OK
key_name,mode,size,date,time,comment,file_name
<file_id> (ASCII|BINARY) <file_lengthe> <date> <time> <comment> <file_name>
<file_id> (ASCII|BINARY) <file_length> <date> <time> <comment> <file_name>
...

Werte für die einzelnen Felder der Antwort

file_id | Identifikationsname der Datenbankdatei
file_length | Größe der Datenbankdatei
date | Datum der letzten Änderung
time | Zeitpunkt der letzten Änderung
comment | Zusätzliche Informationen
file_name | Dateiname


Öffnen einer Datenbankdatei (MaxDB: Database Manager CLI)

Öffnen einer Datenbankdatei

Verwendung

Sie öffnen die unter <file_id> angegebene Datenbankdatei und übertragen den ersten Block. Anhand der <file_id> ermittelt der Database Manager den tatsächlichen Namen der Datei und ob es sich um eine binäre oder eine Textdatei handelt.

Der Dateizugriff mit Hilfe dieses Kommandos ist auf die Datenbankdateien begrenzt. Aus diesem Grunde ist für dieses Kommando keine Anmeldung an das Betriebssystem erforderlich.

Die aktuell verfügbaren Dateien und deren <file_id> rufen Sie mit dem Kommando file_getlist (Liste der Datenbankdateien erstellen) ab.

Voraussetzungen

Sie haben die DBM-Benutzerberechtigung DBFileRead.

Syntax

file_getfirst <file_id>

Optionen für <file_id>

siehe: Datenbankdateien

Antwort

Ausgabe im ASCII-Modus

OK<NL>
<file_handle><NL>
[CONTINUE|END]<NL>
<file_length>:20<data_length>:20<NL>
<data><NL>
<data><NL>
...

Ausgabe im Binärmodus

OK<NL>
file_handle><NL>
[CONTINUE|END]<NL>
<file_length><data_length><NL>
< data ><NL>

Werte für die einzelnen Felder der Antwort

<file_handle> | Numerischer Wert, der für nachfolgende Zugriffe auf diese Datei verwendet werden kann.
END | Der Inhalt der Datei wurde vollständig übertragen. Die Datei wird automatisch geschlossen.
CONTINUE | Die Datei hat noch weitere Einträge, die aufgrund der begrenzten Größe des Antwortspeichers nicht übertragen wurden. Rufen Sie diese durch erneutes Eingeben des o. a. Kommandos ab oder schließen Sie die Datei.
<file_length> | Dateilänge
<data_length> | Datenlänge
<data> | Daten

Im ASCII-Modus werden die Daten aus der Datei zeilenweise gelesen. Jede Zeile wird im Ausgabebereich wieder um einen Zeilenvorschub (0x0D,0x0A) erweitert.

Bei einem UNIX-Rechner besteht ein Zeilenvorschub nur aus einem Zeichen. Deshalb kann es sein, dass der anfänglich für die Dateilänge ausgegebene Wert kleiner ist als die Datenlänge.

Im Fehlerfall siehe Antwortformat.


Packen von Datenbankdateien (MaxDB: Database Manager CLI)

Packen von Datenbankdateien

Verwendung

Für die umfassende Diagnose eines Datenbankproblems benötigt der Support zahlreiche Dateien der Datenbankinstanz.

Mit diesem Kommando fassen Sie alle notwendigen Datenbankdateien zu einer komprimierten Archivdatei zusammen.

Vorschlagswerte des Database Manager zur Archivdatei:

Dateiname | diagpack.tgz
Verzeichnis | Arbeitsverzeichnis der Datenbankinstanz
<file_id> | DIAGTGZ

Beachten Sie beim Öffnen der Datei, dass diese im Binärformat vorliegt (Öffnen einer Datenbankdatei).

Voraussetzungen

Sie haben die DBM-Benutzerberechtigung DBFileRead.

Syntax

diag_pack [file=<archive>] [class=<class_spec> | <class_spec>,...] [date=<time_stamp>]

<archive> | Name und Pfad der zu erstellenden Archivdatei
<class_spec> | Klasse von Dateien, die in das Paket aufgenommen werden soll Vorschlagswert des Database Manager ist die Klasse protocol Mehrere Klassenangaben sind durch Komma voneinander zu trennen.
<time_stamp> | Zeitstempel der Diagnosesicherung Zusätzlicher Parameter bei Angabe der Klasse hist Zu ermitteln durch das Anzeigen der Diagnosehistorie

Optionen für <class_spec>

Klasse | Beschreibung
protocol | Allgemeine Protokolldateien
backup | Protokolldateien vom Sichern und Wiederherstellen
config | Konfigurationsdateien
lvc | Zusätzliche Protokolldateien einer Datenbank vom Instanztyp liveCache


Sichern einer Datenbankdatei (MaxDB: Database Manager CLI)

Sichern einer Datenbankdatei

Verwendung

Mit diesem Kommando legen Sie eine Sicherheitskopie der angegebenen Datenbankdatei an. Geben Sie unter <file_id> den Namen der Datenbankdatei an.

Im Normalfall ist es nicht erforderlich, Sicherheitskopien von internen Dateien des Database Manager anzulegen, da das Programm bei allen Schreibzugriffen auf Konfigurationsdateien selbst Sicherheitskopien anlegt.

Voraussetzungen

Sie haben die DBM-Benutzerberechtigung DBFileRead.

Sie haben die File-ID der gewünschten Datenbankdatei ermittelt (Liste der Datenbankdateien erstellen).

Syntax

file_backup <file_id>

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat.


Wiederherstellen einer Datenbankdatei (MaxDB: Database Manager CLI)

Wiederherstellen einer Datenbankdatei

Verwendung

Mit diesem Kommando kopieren Sie die Sicherheitskopie der angegebenen Datenbankdatei <file_id> zurück an die Originalposition. Die dort eventuell vorhandene Datei wird überschrieben.

Im Normalfall ist es nicht erforderlich, Sicherheitskopien der internen Dateien des Database Manager manuell an ihre Originalposition zu kopieren, da dieser nach fehlgeschlagenem Zugriff auf eine Datei selbständig deren Sicherheitskopie verwendet.

Voraussetzungen

Sie haben die DBM-Benutzerberechtigung DBFileRead.

Sie haben die File-ID der zu kopierenden Datei ermittelt (Liste der Datenbankdateien erstellen).

Syntax

file_restore <file_id>

Antwort

Nach erfolgreicher Ausführung des Kommandos wird eine OK-Meldung ausgegeben.

Im Fehlerfall siehe Antwortformat


Zugriff auf Events (MaxDB: Database Manager CLI)

Zugriff auf Events

Verwendung

Für jede Datenbankinstanz sind Zustände definiert, bei deren Eintreten ein Event ausgelöst wird.

Es gibt Events, die immer ausgelöst werden und nicht ausgeschaltet werden können. Der Systemvorschlag, wann das Event ausgelöst werden soll, kann nicht abgeändert werden.

Andere Events können deaktiviert oder der Systemvorschlag, wann das Event ausgelöst werden soll, abgeändert werden. Für bestimmte Zustände können auch mehrere Werte definiert werden, zu denen jeweils ein Event ausgegeben werden soll.
Diese Events können Sie nutzen, um beispielsweise bei Erreichen eines bestimmten Füllungsgrades etc. Warnungen vor drohenden Performanceproblemen zu erhalten, oder einen Hinweis, wenn die Optimiererstatistiken aktualisiert werden müssen.

Folgende Events können ausgelöst werden:

Name | Deaktivierbar | Beschreibung
ALIVE | nein | Datenbankinstanz läuft
AUTO_SAVE | nein | automatische Log-Sicherung hat begonnen
BACKUP_PAGES | ja Systemvorschlag: nicht aktiv | Anzahl der in die Sicherung geschriebenen Seiten
DB_ABOVE_LIMIT | ja Systemvorschlag: aktiv (Füllungsgrad 5-95 %: Meldungsausgabe in Stufen von jeweils 5%, ab 96 %: Meldungsausgabe bei jedem weiteren Prozent Steigerung) | definierter Datenbankfüllungsgrad (in Prozent) wird überschritten
DB_BELOW_LIMIT | ja Systemvorschlag: aktiv (Meldungsausgabe in Stufen von jeweils 5%) | definierter Datenbankfüllungsgrad (in Prozent) wird unterschritten
EVENT | nein | die Eventkonfiguration wurde geändert
LOG_ABOVE_LIMIT | ja Systemvorschlag: aktiv (Meldungsausgabe bei Füllungsgrad 50 %, 75 %, 90 %, 95 % und nachfolgend jedem weiteren Prozent Steigerung) | definierter Log-Füllungsgrad (in Prozent) wird überschritten
RESTART_SHUTDOWN | nein | Datenbankinstanz wurde in einen anderen Betriebszustand überführt
UPDATE_STATISTICS | nein | SQL-Optimiererstatistiken müssen aktualisiert werden
WARNING | nein | eine Warnung wurde in die Protokolldatei knldiag eingetragen
ERROR | nein | ein Fehler wurde in die Protokolldatei knldiag eingetragen

Für den Zugriff auf die Events der Datenbankinstanz stehen Ihnen folgende DBM-Kommandos zur Verfügung:

Aktivieren eines Events | event_set
Beenden einer Eventsitzung | event_release
Deaktivieren eines Events | event_delete
Liste der Events und ihres Status erstellen | event_list
Warten auf ein Event | event_wait

Voraussetzungen

Sie haben die Serverberechtigung DBInfoRead.


Aktivieren eines Events (MaxDB: Database Manager CLI)

Aktivieren eines Events

Verwendung

Sie aktivieren ein Event. Entsprechend der gesetzten Parameter können Sie im Database Manager CLI die Meldungen über das Eintreten des aktivierten Events mit Hilfe des Kommandos zum Warten auf ein Event anzeigen.

Voraussetzungen

Sie haben die Serverberechtigung DBInfoRead.

Syntax

event_set <event_name> [<priority>] [[<value1>] <value2>]

event_name | Bezeichnung des Events
priority | Priorität des Events NIL: Keine Priorität definiert MEDIUM: Mittlere Priorität HIGH: Hohe Priorität
value | zusätzlicher Wert, dessen Bedeutung vom Events abhängt

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat.

Beispiel

Aufruf des Database Manager CLI, Anmelden als Benutzer DBM mit dem Kennwort DBM an die Datenbankinstanz HOTELDB, Eröffnen einer Utilitysitzung (ohne Benutzerangabe und deshalb mit dem unter dem Systemvorschlag gespeicherten ersten DBM-Benutzer), Aktivieren des Events BACKUP_PAGES mit dem Wert 1000.

dbmcli -d HOTELDB -u DBM,DBM –uUTL -c event_set BACKUP_PAGES 1000

Ergebnis:

OK

Während des laufenden Sicherungsvorganges wird die Datenbankinstanz von nun an nach jeder tausendsten gesicherten Seite eine Meldung erzeugen.


Beenden einer Eventsitzung (MaxDB: Database Manager CLI)

Beenden einer Eventsitzung

Verwendung

Beim Warten auf ein Event wird implizit eine Sitzung zur Datenbankinstanz aufgebaut. Mit diesem DBM-Kommando beenden Sie die Sitzung.

Voraussetzungen

Sie haben die Serverberechtigung DBInfoRead.

Syntax

event_release

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat.


Deaktivieren eines Events (MaxDB: Database Manager CLI)

Deaktivieren eines Events

Verwendung

Sie deaktivieren ein Event. Das Eintreten dieses Events wird danach vom Database Manager nicht mehr protokolliert.

Voraussetzungen

Sie haben die Serverberechtigung DBInfoRead.

Syntax

event_delete <event_name> [<priority>] [[<value1>] <value2>]

event_name | Bezeichnung des Events
priority | Priorität des Events NIL: Keine Priorität definiert MEDIUM: Mittlere Priorität HIGH: Hohe Priorität
value | zusätzlicher Wert, dessen Bedeutung vom Event abhängt

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat.

Beispiel

Aufruf des Database Manager CLI, Anmelden als Benutzer DBM mit dem Kennwort DBM an die Datenbankinstanz HOTELDB, Eröffnen einer Utilitysitzung (ohne Benutzerangabe und deshalb mit dem unter dem Systemvorschlag gespeicherten ersten DBM-Benutzer), Deaktivieren des Events BACKUP_PAGES, für das der Wert 1000 definiert wurde:

dbmcli -d HOTELDB -u DBM,DBM -uUTL -c event_delete BACKUP_PAGES 1000

OK


Liste der Events und ihres Status erstellen (MaxDB: Database Manager CLI)

Liste der Events und ihres Status erstellen

Verwendung

Sie lassen sich die Liste aller Events anzeigen. Der Status state weisst aus, ob das Event aktiviert (ON) oder deaktiviert (OFF) ist.

Voraussetzungen

Sie haben die Serverberechtigung DBInfoRead.

Syntax

event_list

Antwort

OK<NL>
Name State Prio 1st 2nd Description<NL>

<name> <state> <prio> <value> <value> <description><NL>

<name> <state> <prio> <value> <value> <description><NL>

...

Werte der einzelnen Felder der Antwort

name | Bezeichnung des Events
state | Status des Events ON: Event ist aktiviert OFF: Event ist deaktiviert Während des Wartens auf ein Event wird ein Signal ausgegeben, sobald das Event eintritt.
prio | Priorität des Events NIL: Keine Priorität definiert MEDIUM: Mittlere Priorität HIGH: Hohe Priorität
value | zusätzlicher Wert, dessen Bedeutung vom Event abhängt
description | Beschreibung des Events

Im Fehlerfall siehe Antwortformat.

Beispiel

Aufrufen des Database Manager CLI, Anmelden als Benutzer DBM mit dem Kennwort DBM an die Datenbankinstanz HOTELDB, Anzeigen der Liste aller Events und ihres Status

dbmcli -d HOTELDB -u DBM,DBM event_list

OK
Name State Prio 1st 2nd Description
BACKUP_PAGES OFF NIL 0 Next <n> pages moved
DB_ABOVE_LIMIT ON MEDIUM 90 Database above limit
DB_ABOVE_LIMIT ON HIGH 95 Database above limit
DB_ABOVE_LIMIT ON HIGH 96 Database above limit
DB_ABOVE_LIMIT ON HIGH 97 Database above limit
DB_ABOVE_LIMIT ON HIGH 98 Database above limit
DB_ABOVE_LIMIT ON HIGH 99 Database above limit
DB_BELOW_LIMIT OFF NIL 0 Database below limit


Warten auf ein Event (MaxDB: Database Manager CLI)

Warten auf ein Event

Verwendung

Sie lassen sich die Mitteilung des Database Manager über das Eintreten eines aktivierten Events und dazugehörige Daten anzeigen.

Wenn Sie diese erhalten haben, werten Sie sie aus und warten durch die erneute Eingabe des DBM-Kommandos auf die nächste Mitteilung des Database Manager über das Eintreten des aktivierten Events.

Sie erhalten auf dieses DBM-Kommando erst dann eine Antwort, wenn das aktivierte Event eintritt.

Verwenden Sie dieses DBM-Kommando über eine Programmierschnittstelle des Database Manager.

Wenn Sie das DBM-Kommando mit dem Database Manager CLI verwenden wollen, arbeiten Sie im Sitzungsmodus.

Voraussetzungen

· Sie haben die Serverberechtigung DBInfoRead.

· Sie haben ein Event aktiviert (Aktivieren eines Events).

Syntax

event_wait

Beispiel

1. Erzeugen des Sitzungsmodus:
Aufrufen des Database Manager CLI, Anmelden als Benutzer DBM mit dem Kennwort DBM an die Datenbankinstanz HOTELDB

dbmcli -d HOTELDB -u DBM,DBM

dbmcli on HOTELDB>

2. Eingabe des DBM-Kommandos zum Warten auf ein Event

dbmcli on HOTELDB>event_wait

Ergebnis:

Sie erhalten die Mitteilung über das Eintreten des Events BACKUP_PAGES.

OK
NAME=BACKUP_PAGES
PRIORITY=LOW
DATE=20030712
TIME=00151725
VALUE1=99
COUNT=188
DESCRIPTION=Next <n> pages moved


Zugriff auf die Datenbankinstanz (MaxDB: Database Manager CLI)

Zugriff auf die Datenbankinstanz

Verwendung

Diese Gruppe von DBM-Kommandos bietet die Möglichkeit, mit der Datenbankinstanz zu kommunizieren. Wenn Sie für ein Kommando zum Zugriff auf die Datenbankinstanz keinen Datenbankbenutzer angeben, wird als Systemvorschlag der erste DBM-Benutzer verwendet.

Voraussetzungen

Beachten Sie die für die jeweiligen DBM-Kommandos notwendigen Serverberechtigungen.

Die DBM-Kommandos setzen die Eröffnung und Verwendung einer Utility-Sitzung, SQL-Sitzung, Servicesitzung bzw. Datenbanksitzung voraus. Angaben dazu finden Sie unter den jeweiligen DBM-Kommandos.

Übersicht der Kommandos zum Zugriff auf die Datenbankinstanz:

· Zugriff über Datenbanksitzung

· Zugriff über Utility-Sitzung

· Zugriff über SQL-Sitzung

· Zugriff über Servicesitzung


Übersicht der DBM-Kommandos zum Zugriff auf die Datenbankinstanz (MaxDB: Database Manager CLI)

Übersicht der DBM-Kommandos zum Zugriff auf die Datenbankinstanz

Aktualisieren der Optimiererstatistiken | sql_updatestat
Aktualisieren der Optimiererstatistiken mit dem Programm XPU | exec_xpu
Anzeigen der Struktur einer Ergebnismenge | sql_info
Anzeigen von Zustandsinformationen der Datenbankinstanz | info
Ausführen einer Datenbankanweisung | db_execute
Ausführen einer SQL-Anweisung | sql_execute
Ausführen eines Utility- oder SQL-Kommandos | util_execute
Beenden einer Datenbanksitzung | db_release
Beenden einer Servicesitzung | service_release
Beenden einer SQL-Sitzung | sql_release
Beenden einer Utility-Sitzung | util_release
Blättern in den Ergebnisdaten | sql_fetch
Blättern in den Zustandsinformationen der Datenbankinstanz | info_next
Eröffnen einer Datenbanksitzung | db_connect
Eröffnen einer Servicesitzung | service_connect
Eröffnen einer SQL-Sitzung | sql_connect
Eröffnen einer Utility-Sitzung | util_connect


Zugriff über Datenbanksitzung (MaxDB: Database Manager CLI)

Zugriff über Datenbanksitzung

Verwendung

Während einer Datenbanksitzung sind folgende DBM-Kommandos möglich:

Ausführen einer Datenbankanweisung | db_execute
Beenden einer Datenbanksitzung | db_release
Eröffnen einer Datenbanksitzung | db_connect

Voraussetzungen

Beachten Sie die für die jeweiligen DBM-Kommandos notwendigen Serverberechtigungen.


Ausführen einer Datenbankanweisung (MaxDB: Database Manager CLI)

Ausführen einer Datenbankanweisung

Verwendung

Sie übermitteln das angegebene Administrationskommando oder die SQL-Anweisung an die Datenbankinstanz.

Wenn Sie eine SELECT-Anweisung eingeben, werden vom System die Ergebnisse ausgegeben. Bei anderen Anweisungen erhalten Sie eine OK-Meldung.

Voraussetzungen

Sie haben die Serverberechtigung AccessAdmin oder AccessSQL.

Sie haben eine Datenbanksitzung eröffnet. (Siehe: Eröffnen einer Datenbanksitzung)

Syntax

db_execute <statement>

Antwort

Nach dem Ausführen eines Administrationskommandos erhalten Sie eine OK-Meldung oder die für das Administrationskommando spezifische Antwort.

Im Falle eines Fehlers wird eine Fehlermeldungsnummer ausgegeben.

Siehe auch:: Dokumentation Meldungen

Nach dem Ausführen einer SQL-Anweisung erhalten Sie folgende Ausgabe:

OK<NL>
END|CONTINUE)<NL>
<record><NL>
<record><NL>

Die Felder in einem Datensatz der Antwort sind durch Semikolon voneinander getrennt.

Die Ausgabe von Zeichenketten erfolgt in einfachen Anführungszeichen.

END | Ergebnismenge vollständig ausgegeben
Continue | Es liegen noch Ergebnisdaten bereit

Im Fehlerfall siehe Antwortformat.


Beenden einer Datenbanksitzung (MaxDB: Database Manager CLI)

Beenden einer Datenbanksitzung

Verwendung

Sie beenden die aktive Datenbanksitzung. Alle zugeordneten Ressourcen werden freigegeben.

Voraussetzungen

Sie haben die Serverberechtigungen AccessAdmin, AccessSQL oder DBInfoRead.

Syntax

db_release

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat.


Eröffnen einer Datenbanksitzung (MaxDB: Database Manager CLI)

Eröffnen einer Datenbanksitzung

Verwendung

Sie eröffnen als Datenbankbenutzer eine Sitzung mit der Datenbankinstanz, in der Sie sowohl administrative Kommandos als auch SQL-Anweisungen an die Datenbankinstanz übergeben können.

Die Datenbanksitzung ist mit einer User-Task der Datenbankinstanz verknüpft.

Sie haben die Möglichkeit, den anzumeldenden Benutzer über die Eingabe <user_name>,<password> oder den Benutzertyp <user-type> zu spezifizieren. Wenn Sie keinen Datenbankbenutzer angeben, erfolgt die Anmeldung mit dem auf dem Datenbank-Server hinterlegten ersten DBM-Benutzer.

Voraussetzungen

Sie verfügen über die für die Ausführung der Kommandos und Anweisungen notwendigen Serverberechtigungen.

Sie arbeiten im Skriptmodus oder im Sitzungsmodus.

Syntax

db_connect [<user_name>,<password> | user-type=<value>]

<value> ::= DBM | DBA | DOMAIN | SAP

<user_type> | Erklärung
DBM | erster DBM-Benutzer
DBA | Datenbankadministrator
DOMAIN | DOMAIN-Benutzer
SAP | spezieller Datenbankbenutzer im Zusammenhang mit SAP-Anwendungen

Anmelden als Datenbankbenutzer SAPR3 an die Datenbankinstanz myDB im Sitzungsmodus

dbmcli –d myDB –u DBM,DBM

dbmcli on myDB> db_connect SAPR3,SAP

OK

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat.


Zugriff über Utility-Sitzung (MaxDB: Database Manager CLI)

Zugriff über Utility-Sitzung

Verwendung

Bei einer Utility-Sitzung mit der Datenbankinstanz sind folgende DBM-Kommandos möglich:

Ausführen eines Utility- oder SQL-Kommandos | util_execute
Beenden einer Utility-Sitzung | util_release
Eröffnen einer Utility-Sitzung | util_connect

Voraussetzungen

Sie haben die Serverberechtigung AccessUtility.


Beenden einer Utility-Sitzung (MaxDB: Database Manager CLI)

Beenden einer Utility-Sitzung

Verwendung

Sie beenden die aktive Utility-Sitzung. Alle zugeordneten Ressourcen werden freigegeben.

Voraussetzungen

Sie haben die Serverberechtigung AccessUtility oder Backup.

Sie haben eine Utility-Sitzung gestartet.

Syntax

util_release

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat.


Eröffnen einer Utility-Sitzung (MaxDB: Database Manager CLI)

Eröffnen einer Utility-Sitzung

Verwendung

Sie eröffnen eine Sitzung mit der Datenbankinstanz, bei der die Utility-Task des Datenbankkerns benutzt wird. Diese Task ist ausschließlich für die Datenbankverwaltung reserviert.

Es existiert nur eine Utility-Task pro Datenbankinstanz. Damit können Verwaltungsaktionen nicht parallel durchgeführt werden.

Wenn Sie keinen Benutzer angeben, erfolgt die Anmeldung mit dem Systemvorschlag, d.h. dem ersten DBM-Benutzer.

Voraussetzungen

Sie haben die Serverberechtigung AccessUtility oder Backup.

Sie arbeiten im Skriptmodus oder Sitzungsmodus.

Syntax

util_connect

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat.


Ausführen eines Utility- oder SQL-Kommandos (MaxDB: Database Manager CLI)

Ausführen eines Utility- oder SQL-Kommandos

Verwendung

Sie übergeben das angegebene Utility-Kommando bzw. die SQL-Anweisung an die Datenbankinstanz.

Voraussetzungen

Sie haben die Serverberechtigung AccessUtility.

Sie haben eine Utility-Sitzung eröffnet.

Syntax

util_execute <statement>

Antwort

Sie erhalten eine OK-Meldung.

Im Falle eines Fehlers wird eine Fehlermeldungsnummer ausgegeben.

Siehe auch: Dokumentation Meldungen


Zugriff über SQL-Sitzung (MaxDB: Database Manager CLI)

Zugriff über SQL-Sitzung

Verwendung

Bei einer SQL-Sitzung mit der Datenbankinstanz sind folgende DBM-Kommandos möglich:

Aktualisieren der Optimiererstatistiken | sql_updatestat
Anzeigen der Struktur einer Ergebnismenge | sql_info
Anzeigen von Zustandsinformationen der Datenbankinstanz | info
Ausführen einer SQL-Anweisung | sql_execute
Beenden einer SQL-Sitzung | sql_release
Blättern in den Ergebnisdaten | sql_fetch
Blättern in den Zustandsinformationen der Datenbankinstanz | info_next
Eröffnen einer SQL-Sitzung | sql_connect

Voraussetzungen

Beachten Sie die für die jeweiligen DBM-Kommandos notwendigen Serverberechtigungen.


Aktualisieren der Optimiererstatistiken (MaxDB: Database Manager CLI)

Aktualisieren der Optimiererstatistiken

Verwendung

Sie aktualisieren die Statistiken für den Optimierer.

Diese Statistiken ermöglichen es dem Optimierer, die beste Strategie zum Auffinden von Daten zu wählen. Veraltete Statistiken beeinträchtigen die Performance der Datenbankinstanz.

Sie können alle Statistiken aktualisieren oder die Menge der zu aktualisierenden Statistiken über eine Tabellenspezifikation <tablespec>einschränken.

Siehe auch: Optimierer

Voraussetzungen

Sie haben die DBM-Benutzerberechtigung AccessSQL.

Sie haben eine SQL-Sitzung gestartet.

Syntax

sql_updatestat [<tablespec>]

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat.


Anzeigen der Struktur einer Ergebnismenge (MaxDB: Database Manager CLI)

Anzeigen der Struktur einer Ergebnismenge

Verwendung

Sie lassen sich die Struktur der Ergebnismenge zu einer SQL-Anweisung anzeigen.

Voraussetzungen

Sie haben die DBM-Benutzerberechtigung AccessSQL .

Sie haben eine SQL-Sitzung gestartet.

Syntax

sql_info <statement>

sql_info select username,connectmode,templimit, user_id from users

OK
USERNAME;CONNECTMODE;TEMPLIMIT;USER_ID

Antwort

Die Namen aller Spalten werden durch Semikolon voneinander getrennt ausgegeben.

OK<NL>
<col_1>;<col_2>;...;<col_n><NL>q


Anzeigen von Zustandsinformationen der Datenbankinstanz (MaxDB: Database Manager CLI)

Anzeigen von Zustandsinformationen der Datenbankinstanz

Verwendung

Sie lassen sich die unter <info_id>spezifizierten Informationen anzeigen.

Voraussetzungen

Sie haben die DBM-Benutzerberechtigung DBInfoRead.

Sie haben eine SQL-Sitzung gestartet.

Syntax

info <info_id>

Option <info_id>

BADVOLUMES | Beschädigte Volumes
BADIDX | Beschädigte Indizes
CACHES | Zugriffe auf die Caches
CLSCON | Klassencontainer des SAP liveCache (nur bei Datenbankinstanztyp liveCache)
COLUMNS | Spalten der Tabellen der Datenbankinstanz
DATA | Data-Volumes
VOLUMES | Volumes
DISABLEDIDX | Deaktivierte Indizes
EVENTS | Aktive Ereignisse
INDEXES | Indizes der Datenbankinstanz
INFOS | Verfügbare Informationen
IO | Lese- und Schreibaktivitäten
LOCKS | Sperren
LOG | Zustand des Log (siehe auch Logging)
OMSCACHES | Caches des liveCache (nur bei Instanztyp liveCache)
OMSMON | Monitore des liveCache (nur bei Instanztyp liveCache)
PARAMS | Datenbankparameter
STATE | Kurzinformation über den Zustand der Datenbankinstanz
SYSDDCONFIG | Systeminterne Konfiguration
SYSDDMONITOR | Systeminterne Monitore
SYSDDSRVDB | Systeminterner Datenbankstatus
TABLES | Tabellen der Datenbankinstanz
UNUSEDIDX | Ungenutzte Indizes
UPDSTAT | Aktualisierung der Statistiken für den Optimierer möglich (Siehe auch: Optimierer)
UPDSTATW | Aktualisierung der Statistiken für den Optimierer erforderlich
USERS | Angemeldete Datenbankbenutzer
VERSIONS | Version der Datenbanksoftware

Antwort

OK<NL>
(END|CONTINUE)<NL>
<description_record><NL>
<info_record><NL>
<info_record><NL>

END | Ergebnismenge vollständig ausgegeben
Continue | Es liegen noch Ergebnisdaten bereit

Die Beschreibungszeile <description_record> enthält die Namen der Felder der nachfolgenden Informationszeilen <info_record>.


Beenden einer SQL-Sitzung (MaxDB: Database Manager CLI)

Beenden einer SQL-Sitzung

Verwendung

Sie beenden die aktive SQL-Sitzung. Alle zugeordneten Ressourcen werden freigegeben.

Voraussetzungen

Sie haben die DBM-Benutzerberechtigung AccessSQL oder DBInfoRead .

Sie haben eine SQL-Sitzung gestartet .

Syntax

sql_release

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat .


Blättern in den Ergebnisdaten (MaxDB: Database Manager CLI)

Blättern in den Ergebnisdaten

Verwendung

Sie fordern die Ausgabe weiterer Ergebnisdaten an.

Voraussetzungen

Sie haben die Serverberechtigung AccessSQL.

Sie haben eine SQL-Sitzung eröffnet und eine SQL-Anweisung ausgeführt. Bei der Antwort wurde durch CONTINUE angezeigt, dass noch weitere Ergebnisdaten vorhanden sind.

Syntax

sql_fetch

Antwort

Die Felder in einem Record werden durch Semikolon getrennt.

Die Ausgabe von Zeichenketten erfolgt in einfachen Anführungszeichen.

OK<NL>
(END|CONTINUE)<NL>
<record><NL>
<record><NL>

Werte für die einzelnen Felder der Antwort

END | Der Inhalt der Datei wurde vollständig übertragen. Die Datei wird automatisch geschlossen.
CONTINUE | Die Datei hat noch weitere Einträge, die aufgrund der begrenzten Größe des Antwortspeichers nicht übertragen wurden. Sie können diese durch erneutes Eingeben des o. a. Kommandos abrufen.


Blättern in den Zustandsinformationen der Datenbankinstanz (MaxDB: Database Manager CLI)

Blättern in den Zustandsinformationen der Datenbankinstanz

Verwendung

Sie fordern die Ausgabe weiterer Informationen zum Zustand der Datenbankinstanz an.

Voraussetzungen

Sie haben die DBM-Benutzerberechtigung DBInfoRead.

Beim Anzeigen von Zustandsinformationen der Datenbankinstanz oder Blättern in den Zustandsinformationen der Datenbankinstanz wurde Ihnen mit dem Schlüsselwort CONTINUE angezeigt, dass noch weitere Informationen abgefragt werden können.

Syntax

info_next

Antwort

OK<NL>
(END|CONTINUE)<NL>
<description_record><NL>
<info_record><NL>
<info_record><NL>

Werte für die einzelnen Felder der Antwort

END | Ergebnismenge vollständig ausgegeben
Continue | Es liegen noch Ergebnisdaten bereit
<description_record> | Namen der Felder der nachfolgenden Informationszeilen
<info_record> | Information


Eröffnen einer SQL-Sitzung (MaxDB: Database Manager CLI)

Eröffnen einer SQL-Sitzung

Verwendung

Sie erzeugen für den angegebenen DBM-Benutzer eine SQL-Sitzung mit dem Datenbankkern. Der Benutzer einer SQL-Sitzung teilt sich die Performance der Datenbankinstanz mit bis zu n weiteren Benutzern.

Wenn Sie keinen Benutzer angeben, erfolgt die Anmeldung mit dem auf dem Server hinterlegten DBM-Benutzer.

Voraussetzungen

Sie haben die DBM-Benutzerberechtigung DBInfoRead oder AccessSQL.

Sie arbeiten im Skriptmodus oder Sitzungsmodus.

Syntax

sql_connect [<userid>,<password>]

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat.


Ausführen einer SQL-Anweisung (MaxDB: Database Manager CLI)

Ausführen einer SQL-Anweisung

Verwendung

Sie können über die Eingabe eines DBM-Kommandos einen SQL-Anweisung an die Datenbankinstanz übermitteln.

Wenn Sie für <statement> eine SELECT-Anweisung eingeben, werden vom System die Ergebnisse ausgegeben. Wenn Sie andere SQL-Anweisungen eingeben, wird die Ausführung der Anweisung mit einer OK-Meldung bestätigt.

Voraussetzungen

Sie haben die Serverberechtigung AccessSQL.

Sie haben eine SQL-Sitzung gestartet.

Syntax

sql_execute <statement>

sql_execute SELECT username,connectmode,templimit,user_id from users

OK
END
'PUBLIC';'SINGLE';(null);3
'DBA';'SINGLE';(null);10
'DOMAIN';'SINGLE';(null);11
'SYS';'SINGLE';(null);12
'CONTROL';'MULTIPLE';(null);0

Antwort

OK<NL>
(END|CONTINUE)<NL>
<record><NL>
<record><NL>

Die Felder in einem Datensatz der Antwort sind durch Semikolon voneinander getrennt.

Die Ausgabe von Zeichenketten erfolgt in einfachen Anführungszeichen.

END | Ergebnismenge vollständig ausgegeben
Continue | Es liegen noch Ergebnisdaten bereit

Im Fehlerfall siehe Antwortformat.


Zugriff über Servicesitzung (MaxDB: Database Manager CLI)

Zugriff über Servicesitzung

Verwendung

Die DBM-Server-Kommandos Prüfen einer Sicherung und Wiederherstellen der Parameterdatei aus einer Datensicherung setzen den Aufbau einer Servicesitzung mit der Datenbankinstanz voraus.

Für eine Servicesitzung sind folgende DBM-Kommandos möglich:

Beenden einer Servicesitzung | service_release
Eröffnen einer Servicesitzung | service_connect

Voraussetzungen

Sie haben die Serverberechtigung Backup.


Beenden einer Service-Sitzung (MaxDB: Database Manager CLI)

Beenden einer Service-Sitzung

Verwendung

Mit diesem DBM-Kommando beenden Sie die aktive Servicesitzung. Alle zugeordneten Ressourcen werden freigegeben. Beim Beenden des Database Manager wird dieses Kommando implizit ausgeführt.

Voraussetzungen

Sie haben die Serverberechtigung Backup.

Sie haben eine Service-Sitzung gestartet.

Syntax

service_release

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat.


Eröffnen einer Servicesitzung (MaxDB: Database Manager CLI)

Eröffnen einer Servicesitzung

Verwendung

Sie starten den zur Version der Datenbanksoftware passenden Servicekern und eröffnen eine Sitzung mit der Utility-Task.

Der Servicekern ist eine speziell konfigurierte Datenbankinstanz ohne eigenen Datenbestand. Mit ihm können aber Dienste für andere Datenbankinstanzen durchgeführt werden, wie z.B. das Prüfen einer Sicherung oder das Wiederherstellen der Parameterdatei aus einer Datensicherung.

Voraussetzungen

Sie haben die Serverberechtigung Backup.

Sie arbeiten im Skriptmodus oder Sitzungsmodus.

Syntax

service_connect

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat


Anmelden an das Betriebssystem (MaxDB: Database Manager CLI)

Anmelden an das Betriebssystem

Verwendung

Damit der Database Manager einmalig mit Betriebssystemrechten auf einen entfernten Rechner zugreifen kann, melden Sie sich mit einem DBM-Kommando im Sitzungsmodus oder Skriptmodus an das Betriebssystem an.

Diese Anmeldung ist Voraussetzung für die Ausführung folgender DBM-Kommandos.

Anlegen einer Datenbankinstanz | db_create
Löschen der Registrierung einer Version der Datenbanksoftware | inst_unreg
Registrieren einer Version der Datenbanksoftware | inst_reg

Voraussetzungen

Für dieses Kommando ist keine besondere Benutzerberechtigung erforderlich.

Syntax

user_system <dbm_user>,<password>

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat.


Ausführen des liveCache-Initialisierungsskripts (MaxDB: Database Manager CLI)

Ausführen des liveCache-Initialisierungsskripts

Dieses Kommando ist nur im Zusammenhang mit SAP-Anwendungen relevant.

Verwendung

Sie sind an den Database Manager CLI angemeldet und starten aus diesem Programm heraus das auf dem Datenbankrechner abgelegte liveCache-Initialisierungsskript.

Zusammen mit diesem DBM-Kommando können Sie Parameter angeben, die vom Database Manager an das liveCache-Initialisierungsskript weitergegeben werden. Die Ausgaben des liveCache-Initialisierungsskripts werden vom Database Manager CLI geliefert.

Voraussetzungen

Sie haben die Benutzerberechtigung SystemCmd .

Syntax

exec_lcinit [<lcinitparams>]

Erfolgreiche Antwort

OK<NL>
0,<err_description><NL>
<pgmcode>,<command><NL>
<command_output_lines><NL>

Fehlermeldung

ERR<NL>
<err_code>,<err_description><NL>
<pgm_code>,<command><NL>
<command_output_lines><NL>

Werte für die einzelnen Felder der Antwort

<err_code> | Fehlernummer des Database Manager, im Erfolgsfall ist die Fehlernummer 0
<err_description> | Beschreibung des Fehlers
<pgm_code> | Rückgabewert des ausgeführten Programms
<command> | Vom Database Manager ausgeführte Kommandozeile
<command_output_lines> | Ausgabetext des Programms
<NL> | Zeilenvorschub


Liste der DBM-Kommandos erstellen (MaxDB: Database Manager CLI)

Liste der DBM-Kommandos erstellen

Verwendung

Sie fragen eine Liste von DBM-Kommandos ab. Sie haben die Möglichkeit, sich alle gültigen DBM-Kommandos anzeigen zu lassen oder die Liste durch die Angabe von Optionen zu modifizieren.

Sie erhalten die entsprechenden Kommandos und eine Beschreibung angezeigt. Für die gültigen DBM-Kommandos werden die möglichen und/oder notwendigen Optionen angezeigt und welche Art von Sitzung für den Zugriff auf die Datenbankinstanz vorausgesetzt wird. Für veraltete Kommandos erhalten Sie die entsprechenden neuen Kommandos angezeigt.

Voraussetzungen

Für die Ausführung dieses DBM-Kommandos ist keine Anmeldung an den Database Manager erforderlich.

Syntax

help [-obsolete] [<string>]

-obsolete | Es werden ausschließlich die veralteten Kommandos angezeigt. Zu jedem dieser Kommandos erhalten Sie einen Hinweis auf die aktuelle Bezeichnung
string | Es werden nur die Kommandos angezeigt, die mit der angegebenen Zeichenkette beginnen.

Beispiele

Aufruf des Database Manager CLI, Anzeigen aller gültigen DBM-Kommandos:

dbmcli help

OK
archive_stage <medium> <stage> [verfiy|noverify] [remove|keep]
[FileNumberList <list>]
archive_stage_repeat <medium> <stage> [verfiy|noverify] [remove|keep]
autolog_cancel (need util session)
...

Aufruf des Database Manager CLI, Anzeigen aller DBM-Kommandos, die mit der Zeichenkette autobeginnen:

dbmcli help auto

OK
autolog_cancel (needs util session)
autolog_off (needs util session)
autolog_on [<medium>] (needs util session)
autolog_show [LOG] [UNTIL <date> <time>] [IBID <internal_backup_id>]
(needs util session)
...

Aufruf des Database Manager CLI, Anzeigen aller veralteten DBM-Kommandos:

dbmcli help -obsolete

OK
autosave_cancel (obsolete version of autolog_cancel)
autosave_off (obsolete version of autolog_off)
...

Antwort

OK<NL>
<command_name> <description><NL>
<command_name> <description><NL>
...

Im Fehlerfall siehe Antwortformat.

Antwortzeilen mit mehr als 80 Zeichen werden umgebrochen.


Beenden des Database Manager (MaxDB: Database Manager CLI)

Beenden des Database Manager

Verwendung

Mit diesem Kommando beenden Sie die Sitzung mit dem Database Manager.

Syntax

release | bye | exit | quit

Antwort

Sie erhalten eine OK-Meldung.

Im Fehlerfall siehe Antwortformat .


Übersicht aller DBM-Kommandos (MaxDB: Database Manager CLI)

Übersicht aller DBM-Kommandos

archive_stage | Einfaches Archivieren der Versionsdateien
archive_stage_repeat | Mehrfaches Archivieren der Versionsdateien
autolog_cancel | Abbrechen der automatischen Log-Sicherung
autolog_off | Ausschalten der automatischen Log-Sicherung
autolog_on | Einschalten der automatischen Log-Sicherung
autolog_show | Anzeigen der Funktion zur automatischen Log-Sicherung
backup_cancel | Beenden einer unterbrochenen Sicherung
backup_ext_ids_forget | Freigeben des von externen Sicherungskennungen belegten Arbeitsspeichers
backup_ext_ids_get | Holen von externen Sicherungskennungen
backup_ext_ids_list | Anzeigen von externen Sicherungskennungen
backup_ext_ids_listnext | Blättern in den externen Sicherungskennungen
backup_history_close | Schließen der Sicherungshistorie
backup_history_date | Änderungsdatum der Sicherungshistorie
backup_history_list | Anzeigen der Sicherungshistorie
backup_history_listnext | Blättern in der Sicherungshistorie
backup_history_open | Holen der Sicherungshistorie
backup_ignore | Fortsetzen der Sicherung ohne das zuletzt als voll gemeldete Sicherungsmedium
backup_replace | Sichern auf ein Folgemedium
backup_start | Sichern der Datenbankinstanz
backup_state | Anzeigen des aktuellen Standes der Sicherung
bye | Beenden des Database Manager
db_activate | Aktivieren einer neuen Datenbankinstanz
db_activate RECOVER | Wiederherstellen einer Datenbankinstanz mit Initialisierung
db_addvolume | Hinzufügen eines Volume
db_admin | Überführen in den Betriebszustand ADMIN
db_clear | Löschen von Laufzeitinformationen nach einem Datenbankfehler
db_connect | Eröffnen einer Datenbanksitzung
db_cons | Benutzen der Datenbankkonsole
db_create | Anlegen einer Datenbankinstanz
db_drop | Löschen der aktuellen Datenbankinstanz
db_enum | Liste aller registrierten Datenbankinstanzen
db_execute | Ausführen einer Datenbankanweisung
db_offline | Überführen in den Betriebszustand OFFLINE
db_online | Überführen in den Betriebszustand ONLINE
db_reg | Aktualisieren der Registrierung einer Datenbankinstanz
db_reg -R | Ändern der Softwareversion der aktuellen Datenbankinstanz
db_release | Beenden einer Datenbanksitzung
db_restart | Restart der Datenbankinstanz
db_restartinfo | Anzeigen aktueller Informationen zur Datenbankinstanz
db_speed | Anzeigen der Variante des Datenbankkerns
db_standby | Überführen in den Betriebszustand STANDBY
db_start | Starten der Datenbankinstanz
db_state | Anzeigen des Betriebszustands der Datenbankinstanz
db_stop | Stoppen der Datenbankinstanz
dban_start | Aufrufen des Database Analyzer
dban_state | Ermitteln des Status des Database Analyzer
dban_stop | Beenden des Database Analyzer
dbm_configget | Anzeigen eines Konfigurationsparameters des Database Manager
dbm_configset | Ändern eines Konfigurationsparameters des Database Manager
dbm_getpath | Anzeigen der versionsunabhängigen Verzeichnisse
dbm_version | Anzeigen der Versionsinformationen
diag_histlist | Anzeigen der Diagnosehistorie
diag_pack | Packen von Datenbankdateien
event_delete | Deaktivieren eines Events
event_list | Liste der Events und ihres Status erstellen
event_release | Beenden einer Eventsitzung
event_set | Aktivieren eines Events
event_wait | Warten auf ein Event
exec_lcinit | Ausführen des liveCache-Initialisierungsskripts
exec_load | Starten des Programms PythonLOAD
exec_xpu | Aktualisieren der Optimiererstatistiken mit dem Programm XPU
exit | Beenden des Database Manager
file_backup | Sichern einer Datenbankdatei
file_getfirst | Öffnen einer Datenbankdatei
file_getlist | Liste der Datenbankdateien erstellen
file_getnext | Blättern im Inhalt einer Datenbankdatei
file_operation | Bearbeiten von Protokolldateien der Datenbankinstanz
file_restore | Wiederherstellen einer Datenbankdatei
help | Liste der DBM-Kommandos erstellen
hss_addstandby | Definieren einer weiteren Standby-Komponente
hss_enable | Konfigurieren einer Master-Komponente
hss_execute | Ansprechen einer Standby-Komponente
hss_getnodes | Abfragen von Hot Standby-Parametern
hss_removestandby | Entfernen einer Standby-Komponente
info | Anzeigen von Zustandsinformationen der Datenbankinstanz
info_next | Blättern in den Zustandsinformationen der Datenbankinstanz
inst_enum | Liste aller registrierten Versionen der Datenbanksoftware
inst_reg | Registrieren einer Version der Datenbanksoftware
inst_unreg | Löschen der Registrierung einer Version der Datenbanksoftware
load_r3tab | Laden SAP-spezifischer Tabellen
load_systab | Laden der Systemtabellen
medium_date | Änderungsdatum der Mediendefinitionsdatei
medium_delete | Löschen eines Sicherungsmediums
medium_get | Anzeigen der Mediendaten
medium_getall | Liste aller definierten Sicherungsmedien
medium_label | Anzeigen der Sicherungsinformationen im Betriebszustand ONLINE oder ADMIN
medium_labeloffline | Anzeigen der Sicherungsinformationen im Betriebszustand OFFLINE
medium_migrate | Übernehmen einer vorhandenen Mediendefinition
medium_put | Anlegen oder Ändern eines Sicherungsmediums
param_abortsession | Abbrechen einer Parametersitzung
param_addvolume | Ändern von Volume-Parametern
param_checkall | Prüfen aller Datenbankparameter
param_commitsession | Bestätigen von Änderungen der Datenbank-Parameterdatei
param_copy | Kopieren einer Datenbank-Parameterdatei
param_delvolume | Löschen von Volume-Parametern
param_directdel | Löschen eines Datenbankparameters
param_directget | Anzeigen eines Wertes aus der Datenbank-Parameterdatei
param_directgetall | Anzeigen aller Parameter der aktuellen Datenbank-Parameterdatei
param_directput | Direktes Ändern eines Wertes in der Datenbank-Parameterdatei
param_extget | Anzeigen einzelner Daten eines Datenbankparameters
param_extgetall | Anzeigen der Daten aller Datenbankparameter
param_getdefault | Anzeigen des Systemvorschlags (Defaultwert)
param_getexplain | Anzeigen des hinterlegten Erläuterungstextes
param_getfull | Anzeigen aller Daten eines Datenbankparameters
param_gethelp | Anzeigen des hinterlegten Hilfetextes
param_gethistory | Öffnen der Datenbankparameter-Historie
param_gethistorynext | Blättern in der Datenbankparameter-Historie
param_getproperties | Anzeigen aller Eigenschaften eines Datenbankparameters
param_gettype | Anzeigen des Datentyps eines Datenbankparameters
param_getvalue | Anzeigen des aktuellen Wertes eines Datenbankparameters
param_getvolsall | Anzeigen der Daten aller Volume-Parameter
param_getvolume | Anzeigen der Daten eines einzelnen Volume-Parameters
param_init | Initialisieren der Datenbankparameter für eine neue Datenbankinstanz
param_put | Ändern des Wertes eines Datenbankparameters
param_putconfirm | Korrigieren von Datenbankparametern
param_restore | Zurücksetzen der Parameterdatei auf eine vorherige Version
param_rmfile | Löschen der Datenbank-Parameterdatei
param_startsession | Eröffnen einer Parametersitzung
param_versions | Liste der vorhandenen Parameterdateien
quit | Beenden des Database Manager
recover_cancel | Beenden einer unterbrochenen Wiederherstellung oder Prüfung einer Sicherung
recover_check | Prüfen einer Sicherung
recover_config | Wiederherstellen der Parameterdatei aus einer Datensicherung
recover_ignore | Fortsetzen der parallelen Wiederherstellung oder der Prüfung einer Sicherung
recover_replace | Wiederherstellen oder Prüfen einer Sicherung mit Folgemedium
recover_start | Wiederherstellen der Datenbankinstanz
recover_state | Anzeigen des aktuellen Standes der Wiederherstellung
recover_state_check | Anzeigen des aktuellen Standes der Prüfung einer Sicherung
release | Beenden des Database Manager
service_connect | Eröffnen einer Servicesitzung
service_release | Beenden einer Servicesitzung
show | Anzeigen von Informationen zur Datenbankinstanz
show_list | Anzeigen der Schlüsselwörter für Informationen zur Datenbankinstanz
show_next | Blättern in den Informationen zur Datenbankinstanz
sql_connect | Eröffnen einer SQL-Sitzung
sql_execute | Ausführen einer SQL-Anweisung
sql_fetch | Blättern in den Ergebnisdaten
sql_info | Anzeigen der Struktur einer Ergebnismenge
sql_recreateindex | Wiederherstellen eines beschädigten Indexes
sql_release | Beenden einer SQL-Sitzung
sql_updatestat | Aktualisieren der Optimiererstatistiken
trace_off | Ausschalten des Datenbank-Trace
trace_prot | Erstellen der Textversion des Datenbank-Trace
trace_protopt | Anzeigen der Optionen für die Textversion des Datenbank-Trace
trace_show | Anzeigen der protokollierten Aktivitäten des Datenbank-Trace
user_create | Anlegen von DBM-Benutzern
user_delete | Löschen von DBM-Benutzern
user_get | Anzeigen der Benutzerdaten
user_getall | Liste der DBM-Benutzer
user_getrights | Anzeigen der Serverberechtigungen
user_put | Ändern der DBM-Benutzerdaten
user_set | Hinterlegen von speziellen Benutzern
util_connect | Eröffnen einer Utility-Sitzung
util_execute | Ausführen eines Utility- oder SQL-Kommandos
util_release | Beenden einer Utility-Sitzung


Database Analyzer

Das Programm Database Analyzer ist ein Werkzeug zur Analyse der Performance von Datenbankinstanzen.

Der Database Analyzer lässt sich unabhängig von der Version und dem Datenbankinstanztyp einsetzen. Es ist außerdem möglich, mit diesem Programm von einem entfernten Rechner auf die Datenbankinstanz zuzugreifen.

Funktionsumfang

Der Database Analyzer sammelt performance-relevante Daten, indem er die Performance der Datenbankinstanz periodisch mit variablen Zeitabständen überwacht. Die Ergebnisse dieser Analyse teilt er in fünf Klassen ein – Informationen, drei unterschiedliche Warnstufen sowie Fehlermeldungen.

Damit erleichtert der Database Analyzer bei Problemen mit der Datenbankinstanz die Suche nach folgenden möglichen Ursachen:

  • Datenbankkonfiguration (Caches, Parameter)
  • Synchronisation (Sperren, kritische Abschnitte, Heap-Bereich)
  • Bearbeitung der Datenbankanfragen (z. B. Bearbeitungsstrategie, Indizes, Optimiererstatistiken)
  • Hardwarekonfiguration

Die detaillierte Interpretation der Ausgaben des Database Analyzer setzt ein tiefgreifendes Verständnis der Architektur, der Architektur Ihres Anwendungsprogramms sowie Ihres Betriebssystems voraus.

Allgemeine Informationen zum Datenbanksystem finden Sie in der Dokumentation Datenbankverwaltung .

  • Aufruf des Database Analyzer
  • Protokolldateien
  • Meldungen
  • Konfigurationsdatei


Aufruf des Database Analyzer (MaxDB: Database Analyzer)

Aufruf des Database Analyzer

Sie können den Database Analyzer folgendermaßen aufrufen:

· Aufruf auf Betriebssystemebene
Geben Sie folgendes Kommando ein:
dbanalyzer
[–d <database_name>] [-u <user,password>]
[-t <interval>[,<number>]] [-n <database_server>]
[-f <configfile>] [-o <outputdir>]
[-c <level> ]
[-i] [-nologo] [-noenv] [-stop]
Optionen

· Aufruf im Database Manager CLI
Aufruf im Database Manager CLI

· Aufruf im CCMS (für SAP-Systeme)
Datenbankinstanz liveCache: Engpassanalyse (Database Analyzer)
Datenbankinstanz MaxDB: Datenbankengpässe


Optionen (MaxDB: Database Analyzer)

Optionen

Die folgenden Optionen können Sie beim Aufruf des Database Analyzer angeben.

-d <database_name> | Name der Datenbankinstanz
-u <user,password> | Benutzername und Kennwort
-t <interval>,<number> | Zeitintervall (in Sekunden) zwischen zwei Analysen und Zahl der gewünschten Analysen Wenn Sie für <number> einen Wert angeben, beendet sich das Programm Database Analyzer nach der entsprechenden Anzahl von Analysen.
-n <database_server> | Name des Rechners, auf dem die Datenbankinstanz läuft Wenn Sie den Rechnernamen angeben, müssen Sie mit der Option –o auch das Verzeichnis für die Protokolldateien angeben.
-f <configfile> | Name der Konfigurationsdatei Wenn Sie keine Konfigurationsdatei angeben, verwendet der Database Analyzer die Datei dbanalyzer<version>.cfg im Datenbankverzeichnis <dependent_path>/env.
-o <outputdir> | Verzeichnis für die Protokolldateien Wenn Sie den Database Analyzer auf dem Rechner starten, auf dem die Datenbankinstanz installiert ist, können Sie auf die Angabe von –o verzichten. In diesem Fall verwendet der Database Analyzer das Unterverzeichnis analyzer im Arbeitsverzeichnis der Datenbankinstanz.
-c <outputlevel> | Gibt auf einer Skala von 1 (wenig) bis 4 (viel) an, wie viel zusätzliche Information auf der Konsole erscheinen soll Wenn Sie -c nicht angeben, erfolgt keine Ausgabe auf der Konsole.
-i | Löscht bereits vorhandene Protokolldateien desselben Tages
-nologo | Unterdrückt die Logo-Ausgabe
-noenv | Unterdrückt die Protokollierung und die Ausgabe der Umgebungsvariablen aus der Konfigurationsdatei
-stop | Stoppt einen laufenden Database Analyzer


Protokolldateien (MaxDB: Database Analyzer)

Protokolldateien

Die während eines Tages gesammelten Analysedaten des Database Analyzer werden im Protokolldateiverzeichnis in einer Reihe von Protokolldateien gespeichert.

Das Protokolldateiverzeichnis kann wie folgt festgelegt werden:

· Bei Aufruf des Database Analyzer können Sie mittels der Option –o das Protokolldateiverzeichnis festlegen. Die Protokolldateien werden in den Unterverzeichnissen /YYYYMMDD gespeichert.

· Wenn Sie den Database Analyzer auf dem Rechner starten, auf dem die Datenbankinstanz installiert ist, können Sie auf die Angabe von –o verzichten. Die Protokolldateien werden im Unterverzeichnis analyzer im Arbeitsverzeichnis der Datenbankinstanz gespeichert.

Der Database Analyzer erzeugt folgende Protokolldateien:

DBAN.prt

Diese Datei enthält folgende Informationen:

· einmalige Informationen über die Konfiguration und performance-relevante Daten der Datenbankinstanz

· für jede durchgeführte Messung die vom Database Analyzer erkannten Engpässe

Die Informationen und Engpässe werden vom Database Analyzer gewichtet:

I | Information | allgemeine Informationen, z.B. Anzahl ausgeführter Kommandos
W1 bis W3 | Warnstufe 1 bis 3 | Warnungen zu Engpässen von niedriger, mittlerer und hoher Priorität
E | Emergency | schwerwiegende Probleme, z. B. drohender Datenbankstillstand

DBAN_<Monitorklasse>.csv

Diese Dateien enthalten die gesamten Analysedaten. Sie dienen der nachträglichen Kontrolle des Laufzeitverhaltens.

Pro Monitorklasse, also Analysebereich, existiert eine Datei, die Sie mit Microsoft Excel öffnen und lesen können, sobald sie vom Database Analyzer nicht mehr beschrieben wird.

Liste aller Protokolldateien

Siehe auch:

Meldungen


Liste der Protokolldateien (MaxDB: Database Analyzer)

Liste der Protokolldateien

Die Tabellen zeigen, welche Informationen Sie in den Protokolldateien des Database Analyzer finden.

Protokolldateien für alle Datenbankinstanztypen

DBAN.prt | Protokollierung der Meldungen inklusive der Analyseregeln und aktuellen Werte, die zu der Meldung geführt haben
DBAN_CACHES.csv | erfolgreiche und nicht erfolgreiche Zugriffe auf die Caches sowie Trefferraten
DBAN_FILLING.csv | Füllungsgrad der Datenbankinstanz (z. B. Größe der Data-Volumes, Anzahl der benutzten permanenten und temporären Seiten)
DBAN_IO.csv | Lese- und Schreibzugriffe auf Cache- und Datenseiten
DBAN_LOAD.csv | Zugriffe und Selektivität von SELECT-, FETCH-, INSERT-, UPDATE- und DELETE-Anweisungen
DBAN_LOGGING.csv | Anzahl geschriebener Log-Seiten, Füllungsgrad der Log-Warteschlange
DBAN_REGIONS.csv | Informationen über Zugriffe auf kritische Abschnitte
DBAN_STRATEGY_INDEX.csv | Zugriffe und Selektivität bei Suche über Indizes
DBAN_STRATEGY_PRIMKEY.csv | Zugriffe und Selektivität bei Suche über PRIMARY KEY
DBAN_STRATEGY_SCANS.csv | Zugriffe und Selektivität bei Suche über INDEX SCAN und TABLE SCAN
DBAN_TASK_ACTIVITIES.csv | Informationen über Task-Aktivitäten (z.B. Anzahl von SQL-Anweisungen, Anzahl laufender User-Tasks, Anzahl der Task-Wechsel)
DBAN_TASK_IO.csv | Anzahl und Dauer physischer Schreib- und Leseaktivitäten aus Sicht des Log-Writer, der User-Task und des Pager
DBAN_TASK_STATES.csv | Anzahl und Ausführungsdauer der abgearbeiteten Anweisungen Anzahl und Wartedauer der Task-Zustände Vsuspend, Vwait, Vsleep
DBAN_TRANSACTIONS.csv | Anzahl von SQL-Anweisungen und Prozedur-Aufrufen, PREPARE-, EXECUTE-, COMMIT- und ROLLBACK-Anweisungen, Subtransaktionen, TIMEOUTS durch Sperren sowie Umwandlungen von Zeilen- in Tabellensperren (Lock List Escalations)

liveCache-spezifische Protokolldateien

DBAN_CACHES_OCCUPANCY.csv | Cache-Auslastung und -belegung (Anteil an OMS-, SQL- und History-Seiten im Data-Cache)
DBAN_OMS.csv | Anzahl von Aufrufen durch [image] DB-Prozeduren, Dereferenzierungen, gelöschte Objekte, History-Zugriffe
DBAN_OMS_CONTAINER.csv | Informationen über [image] Klassencontainer (z. B. Anzahl der Klassen, Belegung, Anzahl der freien Seiten)
DBAN_OMS_HEAP.csv | Informationen über den [image] OMS-Heap (z. B. Belegung, aktuelle Größe, Kollisionen)
DBAN_OMS_VERSIONS.csv | Informationen über [image] OMS-Versionen (z. B. Anzahl und Alter verwendeter Versionen)


Meldungen (MaxDB: Database Analyzer)

Meldungen

Der Database Analyzer kann unter anderem die folgenden Meldungen in der Protokolldatei DBAN.prt ausgeben:

Avg user cmd exec time for task

Avg user suspend time for task

Avg user wait time for task

Catalog cache hitrate

Collision rate

Data cache hitrate

Data volume filling level

Deletes

Free user tasks

Index accesses

Index range accesses

Isolated index accesses

Isolated index range accesses

Isolated index scans

Log area filling level

Lock list escalations

Log queue overflows

Log write time

Max log queue filling

Number of cached history pages

Number of physical reads

Number of physical writes

Number of physical writes of temporary pages

OMS cache hitrate

OMS heap collisions

OMS heap utilization

OMS history cache hitrate

OMS terminates

OMS version is old

OMS version is unloaded

Out of memory exceptions

Parse activities

Physical reads for user task

Primary key accesses

Primary key range accesses

Selects and Fetches

Table scans

Updates

User task blocked in state

User task physical writes


Avg user cmd exec time for task (MaxDB: Database Analyzer)

Avg user cmd exec time for task

Avg user cmd exec time for task <task_ID>: <duration> ms,
<number_of> commands, application pid <pid>

Erläuterung

Die von der angegebenen User-Task benötigte Zeit für die Ausführung von Anweisungen ist sehr hoch. Es werden die durchschnittliche Ausführungszeit einer Anweisung, die Zahl aller geprüften Anweisungen und die Prozess-ID des betreffenden Applikationsprozesses angezeigt.

Ob dies wirklich ein Engpass ist, hängt von der Anwendungsstruktur ab.

So führen Massenanweisungen bei Hintergrundverarbeitungen häufig zu hohen Laufzeiten. Daneben führen z. B. Sperrsituationen auf SQL-Objekten, physische Lese- und Schreibaktivitäten oder Dispatching infolge Priorisierung anderer Tasks etc. zu kerninternen Wartesituationen, die ebenfalls die Bearbeitungsdauer verlängern.

Wenn bei liveCache-Instanzen die lange Ausführungszeit bei der Bearbeitung einer [image] DB-Prozedur benötigt wurde, ist die Wahrscheinlichkeit sehr hoch, andere Benutzer im selben liveCache-Thread zu blockieren. Das kann zu unerwartet hohen Laufzeiten von anderen Transaktionen oder DB-Prozeduren führen.


Avg user suspend time for task (MaxDB: Database Analyzer)

Avg user suspend time for task

Avg user suspend time for task <task_ID>: <duration> ms,
<number_of> suspends, application pid <pid>

Erläuterung

Die Ausführung der angezeigten User-Task wurde durch Wartezeiten unterbrochen. Sie erhalten den Durchschnittswert aller festgestellten Wartezeiten angezeigt. Im Normalfall liegt dieser Wert unter 100 Millisekunden.

Sie erhalten außerdem angezeigt, wie oft Wartezeiten auftraten.

Benutzerreaktion

Überprüfen Sie den Zustand der User-Task regelmäßig.


Avg user wait time for task (MaxDB: Database Analyzer)

Avg user wait time for task

Avg user wait time for task <task_ID>: <duration> ms, <number_of> waits, application pid <pid>

Erläuterung

Bei einer Sperrkollision ist die Wartezeit auf die Freigabe einer Sperre sehr groß.

Die Ursache kann eine zu lange Transaktion sein. Lange Wartezeiten (Task-Zustand vwait) treten aber auch dann auf, wenn viele Anwendungen dasselbe Objekt sperren wollen.

Das Datenbanksystem versucht, sperrende Tasks innerhalb des Datenbankkerns mit höherer Priorität auszuführen, wenn deren Sperren von anderen Sitzungen angefordert werden.

Informationen zu den aktuellen Sperren finden Sie in den Systemtabellen TRANSACTIONS und LOCKS der Datenbankinstanz.

Benutzerreaktion

Überprüfen Sie die Anwendung unter folgenden Gesichtspunkten:

  • Eignet sie sich für den Isolation-Level 0 (uncommitted)?
  • Kann der Zeitraum zwischen dem Anfordern der Sperre und der COMMIT-Anweisung verringert werden?
  • Lassen sich durch Teilung von Tabellen gleichzeitige Sperren auf dieselbe Zeile vermeiden?


Catalog cache hitrate (MaxDB: Database Analyzer)

Catalog cache hitrate

Catalog cache hitrate <percentage>%, <number> of <number> accesses failed

Erläuterung

Die Trefferrate beim Zugriff auf den Catalog-Cache, in dem die geparsten SQL-Anweisungen verwaltet werden, ist zu niedrig. Bei einer eingeschwungenen Datenbankanwendung sollte die Catalog-Cache-Trefferrate bei rund 90 Prozent liegen. Werden neue Programmteile oder Programme gestartet, kann die Trefferrate kurzfristig auf sehr kleine Werte sinken. Sie sollte im Viertelstundenmittel jedoch nicht unter 85 Prozent liegen.

Benutzerreaktion

Die Größe des Catalog-Cache sollte rund 100 Seiten pro Datenbanksitzung betragen. Dies können Sie anhand des allgemeinen Datenbankparameters MAXUSERTASKS und des speziellen Datenbankparameters CAT_CACHE_SUPPLY überprüfen.

Der Catalog-Cache wird von den aktiven Datenbanksitzungen dynamisch vergrößert und bei einer RELEASE-Anweisung wieder freigegeben. Die aktuell belegten Cache-Größen können Sie mittels der SQL-Anweisung SELECT * FROM CONNECTEDUSERS ermitteln.

Sollten Sitzungen erheblich mehr als 100 Seiten benötigen, so empfiehlt sich mittelfristig eine entsprechende Vergrößerung des Catalog-Cache, falls der Speicher des Rechners dies zulässt.


Collision rate (MaxDB: Database Analyzer)

Collision rate

<region_name>: collision rate (<percentage>%), <number_of> collisions, <number_of> accesses on region <region_ID>

Erläuterung

Die Rate der Sperrkollisionen ist hoch.

In unterschiedlichen Threads laufende Tasks versuchen parallel auf einen globalen Speicherbereich zuzugreifen. Bei der dafür notwendigen Synchronisation treten gehäuft Kollisionen auf.

Eine Ausnahme hiervon sind bei liveCache-Instanzen hohe Kollisionsraten in den Bereichen (<region_id>) OMSVDIRund CNSTVIEW. Diese sind bei bestimmten Aktionen, z.B. gleichzeitigem CIF-Queue-Transfer, normal.

Benutzerreaktion

Handlungsbedarf besteht bei Kollisionsraten von mehr als 10 Prozent. Generell steigt die Kollisionswahrscheinlichkeit mit wachsender Anzahl genutzter Prozessoren (allgemeiner Datenbankparameter MAXCPU). Sie sollten daher prüfen, ob bei Multiprozessorsystemen das Datenbanksystem die Anwendungsanforderungen auch mit weniger CPUs erfüllen kann.

Treten in Multiprozessor-Zentralsystemen (Datenbanksystem und Anwendung laufen auf dem gleichen Rechner) hohe Kollisionsraten auf, sollten Sie überprüfen, ob der Rechner CPU-seitig überlastet ist und die Datenbank-Threads durch andere Anwendungen blockiert werden. In diesem Fall sollten diejenigen Datenbank-Threads, die User-Tasks enthalten, vom Betriebssystem REAL TIME PRIORITY erhalten. Dabei muss jedoch der Wert von MAXCPU um mindestens eins kleiner sein als die Anzahl realer CPU, um Betriebssystemblockaden zu vermeiden.

Zusätzliche Maßnahmen

· Wenn die hohen Kollisionsraten in den Bereichen DATAn, SPLITn oder TREEn auftreten, dann erhöhen Sie die Werte des allgemeinen Datenbankparameters CACHE_SIZE sowie der speziellen Datenbankparameter _DATA_CACHE_RGNS und _TREE_RGNS.

· Wenn die hohen Kollisionsraten in den Bereichen TRACEoder BUFWRTR auftreten, dann schalten Sie den Datenbank-Trace immer nur vorübergehend zur Problemlokalisierung ein.


Data cache hitrate (MaxDB: Database Analyzer)

Data cache hitrate

Data cache hitrate <percentage>%, <number> of <number> accesses failed

Erläuterung

Die Trefferrate beim Zugriff auf den Data-Cache ist zu niedrig. Bei einer eingeschwungenen liveCache-Anwendung sollte die Trefferrate nicht unter 100 Prozent liegen.

Kurzzeitig kann es zu niedrigeren Trefferraten kommen, z. B. beim erstmaligen Zugriff auf Objekte oder wenn bei wiederholten Tabellendurchsuchungen (TABLE SCAN) die Tabelle größer ist als 10 Prozent des Data-Cache (nur wenn der spezielle Datenbankparameter LRU_FOR_SCAN den Wert yeshat). Im Viertelstundenmittel sind Data-Cache-Trefferraten unter 99 Prozent zu vermeiden.

Benutzerreaktion

Überprüfen Sie folgende Punkte:

· die Auslastung des Data-Cache

· die Konfiguration der Datenbankinstanz und der Hardware

· bei liveCache-Instanzen auch die Größe von Planversionen sowie lang existierende [image] OMS-Versionen

Häufig verursachen einzelne SQL-Anweisungen einen hohen Anteil an der gesamten logischen und physischen Leseaktivität. Eine Vergrößerung des Cache verlagert die Last lediglich von der Festplatte auf die CPU, obwohl z. B. durch einen zusätzlichen Index aus einem leseintensiven Durchsuchen der Tabelle ein schneller Direktzugriff werden könnte. Informationen zur Erstellung optimaler SQL-Anweisungen finden Sie im Abschnitt SQL-Optimierer.


Data volume filling level (MaxDB: Database Analyzer)

Data volume filling level

Data volume filling level <percentage>%, <number_of> pages configured, perm used <perm_used>, temp used <temp_used>

Erläuterung

Der Füllungsgrad der Data-Volumes ist hoch. Erreicht der Füllungsgrad 100 Prozent, wird es zum Stillstand der Datenbankinstanz kommen.

Benutzerreaktion

Wenn sich die in der Datenbankinstanz zu verwaltende Datenmenge erhöht hat, dann müssen Sie gegebenenfalls ein neues Data-Volume hinzufügen.

Ein hoher Anteil von temporären Datenseiten (temp used) deutet auf große (Zwischen-)
Ergebnismengen hin. Versuchen Sie die Anweisung zu finden, die zu dem Aufbau der großen (Zwischen-)Ergebnismengen führt, und überprüfen Sie die Zugriffsstrategien für diese Anweisung.

Informationen zur Erstellung optimaler SQL-Anweisungen finden Sie in der Dokumentation SQL-Optimierer.


Deletes/Updates (MaxDB: Database Analyzer)

Deletes/Updates

Delete selectivity <percentage>%: <number_of> deletes, <number_of> rows read, <number_of> rows qualified

Update selectivity <percentage>%: <number_of> updates, <number_of> rows read, <number_of> rows qualified

Erläuterung

Bei UPDATE- oder DELETE-Anweisungen ist das Verhältnis zwischen gelesenen und geänderten Zeilen schlecht.

Bevor mit UPDATE- und DELETE-Anweisungen Zeilen geändert oder gelöscht werden können, müssen diese zuvor in der entsprechenden Tabelle lokalisiert werden. Dabei werden die gleichen Zugriffsstrategien wie bei einer SELECT-Anweisung verwendet.

Benutzerreaktion

Versuchen Sie die Anweisung zu finden, die zu dem schlechten Verhältnis zwischen gelesenen und gefundenen Zeilen führt, und überprüfen Sie die Zugriffsstrategien für diese Anweisung.

Informationen zur Erstellung optimaler SQL-Anweisungen finden Sie in der Dokumentation SQL-Optimierer.


Free user tasks (MaxDB: Database Analyzer)

Free user tasks

Free user tasks: <count>, connected users: <count>

Erläuterung

Die Anzahl freier User-Tasks ist gering. Wenn ihre Anzahl auf null zurückgeht, können sich keine weiteren Anwendungen mehr mit der Datenbankinstanz verbinden.

Benutzerreaktion

Überprüfen Sie die bestehenden Datenbankverbindungen. Überprüfen Sie, ob sich einige Anwendungen mehrfach an der Datenbankinstanz angemeldet haben. Wenn sich die Anzahl der Anwendungen, die mit der Datenbankinstanz arbeiten sollen, erhöht, dann müssen Sie eventuell den Wert des allgemeinen Datenbankparameters MAXUSERTASKS erhöhen.


Lock list escalations (MaxDB: Database Analyzer)

Lock list escalations

Lock list escalations: <count>

Erläuterung

Die Anzahl von Zeilensperren in einer Tabelle ist zu hoch. Das Datenbanksystem versucht die Zeilensperren deshalb in eine Tabellensperre umzuwandeln.

Benutzerreaktion

Sie können die maximale Anzahl möglicher Zeilensperren in der Sperrliste (Lock-Liste) über den allgemeinen Datenbankparameter MAXLOCKS angeben. Die Umwandlung in eine Tabellensperre wird versucht, wenn eine Task mehr als 0,1*MAXLOCKS Zeilensperren auf einer Tabelle hält. Bei häufigerem Auftreten unerwünschter Eskalationen sollte der Parameterwert erhöht werden.

Ob Eskalationen zum Problem werden, hängt stark von der jeweiligen Anwendung ab. Wenn Eskalationen auftreten, dann untersuchen Sie die Anwendung daraufhin, ob Änderungstransaktionen, die sehr viele Zeilen sperren, in mehrere einzelne Transaktionen aufgeteilt werden können.

Siehe auch Sperren in der Dokumentation Datenbankverwaltung.


Log area filling level (MaxDB: Database Analyzer)

Log area filling level

Log area filling level <percentage>%, <number_of> pages configured, <number> used

Erläuterung

Der Füllungsgrad des Log-Bereichs ist hoch. Wenn der Füllungsgrad 100 Prozent erreicht, wird es zum Stillstand der Datenbankinstanz kommen.

Benutzerreaktion

Sichern Sie den Log-Bereich. Aktivieren Sie gegebenenfalls die automatische Log-Sicherung. Wenn die automatische Log-Sicherung bereits eingeschaltet ist, dann überprüfen Sie, ob die letzte durchgeführte Log-Sicherung erfolgreich war.


Log queue overflows (MaxDB: Database Analyzer)

Log queue overflows

Log queue overflows: <count>

Log queue overflows: <count>, configured log queue pages: <count>

Erläuterung

Die Log-Warteschlange ist voll, bevor die Log-Seiten in den Log-Bereich geschrieben wurden.

Benutzerreaktion

Überprüfen Sie die Größe der Log-Warteschlange anhand des speziellen Datenbankparameters LOG_IO_QUEUE und erhöhen Sie den Wert, wenn möglich.

Überprüfen Sie die Performance der Festplatte, auf der die Log-Volumes liegen.


Log write time (MaxDB: Database Analyzer)

Log write time

Avg log write time (log_writer_task) <duration> ms, <number_of> writes, <number_of> pages

Avg log write time (dev_thread) <duration> ms, <number_of> writes, <number_of> pages

Erläuterung

Das physische Schreiben von Log-Einträgen dauert zu lange. Es besteht die Gefahr, dass das physische Schreiben der Log-Einträge zum Engpass wird.

Benutzerreaktion

Überprüfen Sie die Lese- und Schreibvorgänge auf dem Plattenbereich oder Device, auf dem die Log-Volumes liegen. Neben dem Schreiben der Log-Einträge sollten dort möglichst keine weiteren Lese- oder Schreibvorgänge stattfinden. Unter Umständen ist eine Verlagerung der Log-Volumes auf ein schnelleres Device notwendig.


Max log queue filling (MaxDB: Database Analyzer)

Max log queue filling

Max log queue filling: <percentage>%

Erläuterung

Der Füllungsgrad der Log-Warteschlange ist hoch. Erreicht der Füllungsgrad 100 Prozent, besteht die Gefahr eines Log queue overflows.

Benutzerreaktion

Überprüfen Sie den Wert des speziellen Datenbankparameters LOG_IO_QUEUE und erhöhen Sie ihn, wenn möglich.

Überprüfen Sie die Performance der Festplatte, auf der die Log-Volumes liegen.


Number of cached history pages (MaxDB: Database Analyzer)

Number of cached history pages

Number of cached history pages (<number>) exceeds number of cached OMS pages (<number>)

Erläuterung

Diese Meldung kann nur bei liveCache-Instanzen auftreten.

Im [image] Data-Cache ist die Anzahl der History-Seiten höher als die Anzahl der OMS-Datenseiten.

Benutzerreaktion

Suchen Sie nach alten [image] OMS-Versionen und Transaktionen, die das Löschen der History-Seiten im Data-Cache verhindern.

Überprüfen Sie, ob die Reports /SAPAPO/OM_REORG_DAILY und /SAPAPO/OM_DELETE_OLD_SIMSESS regelmäßig ausgeführt werden (siehe auch: OMS-Versionen überwachen).


Number of physical reads (MaxDB: Database Analyzer)

Number of physical reads

Number of physical reads: <count>

Erläuterung

Es erfolgen sehr viele physische Lesezugriffe auf die Volumes der Datenbankinstanz, da die von den Anwendungen angeforderten Daten nicht im Data-Cache gefunden wurden.

Benutzerreaktion

Wird auf Tabellen zum ersten Mal zugegriffen oder wurden sie längere Zeit nicht verwendet und daher aus dem Data-Cache verdrängt, ist dieses Verhalten unproblematisch.

Lässt sich die Leseaktivität jedoch nicht aus dem erstmaligen Zugriff auf Tabellen erklären, sollten Sie die Trefferrate für den Data-Cache überprüfen und den Data-Cache gegebenenfalls vergrößern.

Schließen Sie außerdem aus, dass die von der Anwendung gegebenen SQL-Anweisungen erheblich mehr Daten lesen als zur Abarbeitung benötigt werden, z. B. durch ungünstige Suchstrategien.

Wenn der Wert des speziellen Datenbankparameters LRU_FOR_SCAN yes ist, dann werden bei Tabellendurchsuchungen (TABLE SCAN) nur 10 Prozent des Data-Cache für die Zwischenspeicherung der Tabelle genutzt, so dass die Tabelle eventuell nicht komplett im Data-Cache gehalten werden kann und beim nächsten Durchsuchen erneut physisch gelesen werden muss.


Number of physical writes (MaxDB: Database Analyzer)

Number of physical writes

Number of physical writes: <count>

Erläuterung

Die von den Anwendungen verwendeten Daten können nicht vollständig im Data-Cache gehalten werden. Deshalb findet eine Verdrängung von Seiten vom Data-Cache in den Datenbereich statt, d.h. es erfolgen sehr viele physische Schreibzugriffe auf die Data-Volumes.

Bei längeren Ladeläufen (Datenimport) kommt es fast zwangsläufig zu solchen Verdrängungserscheinungen, da das importierte Datenvolumen in der Regel die Größe des Data-Cache weit übersteigt.

In regelmäßigen Abständen werden außerdem beim Savepoint alle geänderten Seiten aus dem Data-Cache in den Datenbereich geschrieben. Zu diesem Zeitpunkt steigt die Lese- und Schreibaktivität stark an, ohne dass es sich dabei um einen echten Engpass handelt. Im Normalbetrieb sollten Sie jedoch außerhalb der Savepoints keine nennenswerten Schreibaktivitäten messen können.

Benutzerreaktion

Werden im Normalbetrieb hohe Schreibaktivitäten beobachtet, sollten Sie zunächst ausschließen, dass während des (gegebenenfalls zu kurzen) Messintervalls ein Savepoint aktiv war.

Wenn dies nicht der Fall ist, dann vergrößern Sie den Data-Cache.


Number of physical writes of temporary pages (MaxDB: Database Analyzer)

Number of physical writes of temporary pages

Number of physical writes of temporary pages: <count>

Erläuterung

Beim Erzeugen temporärer Datenseiten zum Aufbau von (Zwischen-) Ergebnismengen, z.B. bei JOINS oder ORDER BY-Anweisungen, reicht der Data-Cache zur Aufnahme der temporären Seiten nicht aus, so dass eine Auslagerung in den Datenbereich erfolgen muss. Diese Seiten müssen im Rahmen der weiteren Verarbeitung der SQL-Anweisung jedoch wieder vom Datenbereich eingelesen werden.

Benutzerreaktion

Versuchen Sie die Anweisung zu finden, die zu dem Aufbau der großen (Zwischen-) Ergebnismengen führt und überprüfen Sie die Zugriffsstrategien für diese Anweisung.

Informationen zur Erstellung optimaler SQL-Anweisungen finden Sie in der Dokumentation SQL-Optimierer.


OMS cache hitrate (MaxDB: Database Analyzer)

OMS cache hitrate

OMS cache hitrate <percentage>%, <number> of <number of> accesses failed

Erläuterung

Diese Meldung kann nur bei liveCache-Instanzen auftreten.

Die Trefferrate beim Zugriff auf die [image] OMS-Daten im [image] Data-Cache ist zu niedrig. Bei einer eingeschwungenen liveCache-Anwendung sollte die Trefferrate nicht unter 100 Prozent liegen, da ansonsten Daten physisch gelesen werden müssen.

Kurzzeitig kann es zu niedrigeren Trefferraten kommen, z. B. beim erstmaligen Zugriff auf Objekte.

Benutzerreaktion

Überprüfen Sie die folgenden Punkte:

· die Auslastung des Data-Cache

· die Größe der Planversion

· lang laufende [image] OMS-Versionen

· die Konfiguration der liveCache-Instanz und der Hardware


OMS heap collisions (MaxDB: Database Analyzer)

OMS heap collisions

OMS heap collision rate <percentage>%, <number of> collisions during <number of> heap allocations/deallocations

Erläuterung

Diese Meldung kann nur bei liveCache-Instanzen auftreten.

In unterschiedlichen Threads laufende Tasks versuchen parallel Speicher vom [image] OMS-Heap anzufordern oder freizugeben. Dabei kommt es gehäuft zu Kollisionen.

Benutzerreaktion

Überprüfen Sie, ob der Parameter [image] OMS_HEAP_COUNT, der die Anzahl der OMS-Heap-Segmente bestimmt, optimal eingestellt ist.

Die Kollisionswahrscheinlichkeit steigt generell mit wachsender Anzahl genutzter Prozessoren (allgemeiner Datenbankparameter MAXCPU). Prüfen Sie, ob die liveCache-Instanz die Anwendungsanforderungen auch mit weniger Prozessoren erfüllen kann. Wenn das nicht der Fall ist, dann prüfen Sie, ob der Rechner CPU-seitig überlastet ist und die liveCache-Threads durch andere auf dem Rechner laufende Anwendungen blockiert werden. In diesem Fall sollten diejenigen liveCache-Threads, die User-Tasks enthalten, vom Betriebssystem REAL TIME PRIORITY erhalten. Dabei muss jedoch der Wert von MAXCPU um mindestens eins kleiner sein als die Anzahl realer CPU, um Betriebssystemblockaden zu vermeiden.


OMS heap utilization (MaxDB: Database Analyzer)

OMS heap utilization

OMS heap utilization <percentage>%, used/max: <used_size>/<heap_limit_size> MB

Erläuterung

Diese Meldung kann nur bei liveCache-Instanzen auftreten.

Für die laufenden [image] DB-Prozeduren ist der Speicherplatzbedarf im [image] OMS-Heap sehr hoch.

Erreicht die Speicherplatzbelegung im OMS-Heap 100 Prozent, besteht die Gefahr, dass Fehler in den DB-Prozeduren auftreten (Out Of Memory Exceptions) oder dass [image] OMS-Versionsdaten vom OMS-Heap in den globalen [image] Data-Cache ausgelagert werden (OMS version is unloaded).

Benutzerreaktion

Vergrößern Sie gegebenenfalls den OMS-Heap.

Überprüfen Sie, ob die Konfiguration Ihrer Datenbankinstanz und der Hardware den Anforderungen der liveCache-Anwendung entspricht.


OMS history cache hitrate (MaxDB: Database Analyzer)

OMS history cache hitrate

OMS history cache hitrate <percentage>%, <number> of <number of> accesses failed

Erläuterung

Diese Meldung kann nur bei liveCache-Instanzen auftreten.

Die Trefferrate beim Zugriff auf die [image] History-Daten im [image] Data-Cache ist zu niedrig. Bei einer eingeschwungenen liveCache-Anwendung sollte die Trefferrate nicht unter 100 Prozent liegen, da ansonsten Daten physisch gelesen werden müssen.

Kurzzeitig kann es zu niedrigeren Trefferraten kommen, z. B. beim erstmaligen Zugriff auf Objekte.

Benutzerreaktion

Überprüfen Sie die folgenden Punkte:

  • die Auslastung des Data-Cache
  • die Größe der Planversion
  • lang laufende [image] OMS-Versionen
  • die Konfiguration der liveCache-Instanz und der Hardware


OMS terminates (MaxDB: Database Analyzer)

OMS terminates

<number of> terminates of DB procedure '<DB_procedure_name>' due to errors

Erläuterung

Diese Meldung kann nur bei liveCache-Instanzen auftreten.

Während der Ausführung der angegeben [image] DB-Prozedur ist ein Fehler aufgetreten.

Benutzerreaktion

Versuchen Sie anhand der Protokolldateien (z. B. knldiag und lcapo_com_trace_<xy>.txt) die Ursache des Fehlers zu ermitteln.


OMS version is old (MaxDB: Database Analyzer)

OMS version is old

OMS version <OMS_version_ID> is <hours> hours old, uses <number> KB

Erläuterung

Diese Meldung kann nur bei liveCache-Instanzen auftreten.

OMS-Versionen sind lange offen und belegen Speicherplatz im [image] OMS-Heap. Die Anzahl der [image] History-Seiten kann so im [image] Data-Cache und auf der Festplatte anwachsen.

Benutzerreaktion

Ermitteln Sie die OMS-Version und den Füllungsgrad des Data-Cache.

Wenn der Füllungsgrad des Data-Cache und der Prozentsatz der History-Seiten hoch ist, versuchen Sie den Verursacher zu identifizieren.

Überprüfen Sie, ob die Reports /SAPAPO/OM_REORG_DAILY und /SAPAPO/OM_DELETE_OLD_SIMSESS regelmäßig ausgeführt werden (siehe auch: OMS-Versionen überwachen).


OMS version is unloaded (MaxDB: Database Analyzer)

OMS version is unloaded

OMS version <OMS_version_ID> is unloaded, uses <number> KB

Erläuterung

Diese Meldung kann nur bei liveCache-Instanzen auftreten.

Daten der [image] OMS-Versionen wurden vom [image] OMS-Heap in den [image] Data-Cache geladen, weil der Wert einer der beiden liveCache-Parameter [image] OMS_HEAP_THRESHOLD oder [image] OMS_VERS_THRESHOLD überschritten wurde.

Die Performance beim Zugriff auf die betreffenden OMS-Versionen verschlechtert sich, weil der Zugriff auf den Data-Cache zeitintensiver ist als der auf den OMS-Heap.

Benutzerreaktion:

Überprüfen Sie die Parameter OMS_HEAP_THRESHOLD und OMS_VERS_THRESHOLD.

Vergrößern Sie gegebenenfalls den OMS-Heap.


Optimizer strategies (MaxDB: Database Analyzer)

Optimizer strategies

<number of> <optimizer_strategy_executes>, selectivity <percentage>%: <number of> rows read, <number of> rows qualified

Erläuterung

Bei der Anwendung einer bestimmten Zugriffsstrategie (<optimizer_strategy_executes>) ist das Verhältnis zwischen gelesenen und gefundenen Tabellenzeilen schlecht.

Bei der Zugriffsstrategie kann es sich um eine der folgenden Strategien handeln:

· Primary key accesses
(EQUAL CONDITION FOR KEY COLUMN,
EQUAL CONDITION FOR KEY COLUMN (SUBQ),
IN CONDITION FOR KEY COLUMN)

· Primary key range accesses
(RANGE CONDITION FOR KEY COLUMN,
RANGE CONDITION FOR KEY COLUMN (SUBQ),
IN CONDITION FOR KEY COLUMN)

· Index accesses
(EQUAL CONDITION FOR INDEX,
EQUAL CONDITION FOR INDEX (SUBQ),
IN CONDITION FOR INDEX)

· Index range accesses
(RANGE CONDITION FOR INDEX,
RANGE CONDITION FOR INDEX (SUBQ),
IN CONDITION FOR INDEX)

· Isolated index accesses
siehe: EXPLAIN-Anweisung: Spalten O,D,T,M, Spalte O (Only Index)
sowie Index accesses

· Isolated index range accesses
siehe: EXPLAIN-Anweisung: Spalten O,D,T,M, Spalte O (Only Index)
sowie Index range accesses

· Isolated index scans
(INDEX SCAN)

Benutzerreaktion

Versuchen Sie die Anweisung zu finden, die zu dem schlechten Verhältnis zwischen gelesenen und gefundenen Zeilen führt, und überprüfen Sie die Zugriffsstrategien für diese Anweisung.

Informationen zur Erstellung optimaler SQL-Anweisungen finden Sie in der Dokumentation SQL-Optimierer.

Siehe auch: Table scans


Out of memory exceptions (MaxDB: Database Analyzer)

Out of memory exceptions

Out of memory exceptions: <count>

Erläuterung

Diese Meldung kann nur bei liveCache-Instanzen auftreten.

DB-Prozeduren scheiterten wegen mangelnden Speicherplatzes im [image] OMS-Heap.

Benutzerreaktion

· Suchen Sie in der Protokolldatei knldiag nach näheren Angaben.

· Überprüfen Sie die [image] OMS-Versionen und überprüfen Sie, wieviel Platz sie im OMS-Heap belegen, z. B. anhand der Protokolldateien DBAN_OMS_VERSIONS.csv und DBAN_OMS_HEAP.csv.

· Überprüfen Sie den OMS-Heap und erhöhen Sie, wenn möglich, die Heap-Größe.


Parse activities (MaxDB: Database Analyzer)

Parse activities

Parse activities <percentage>%, <number of> prepares, <number of> commands

Erläuterung

Die Anzahl von Parse-Vorgängen ist bezogen auf die Gesamtzahl der ausgeführten Anweisungen sehr hoch.

Vor der erstmaligen Ausführung einer SQL-Anweisung muss diese zunächst analysiert (geparst) werden, wobei das Datenbanksystem u. a. die möglichen Zugriffsstrategien ermittelt und die Anweisung in kompakter Form in der Datenbankinstanz ablegt. Bei jeder weiteren Ausführung wird nur noch auf diese internen Informationen zugegriffen und die Anweisung direkt ausgeführt.

Der C/C++-Precompiler sorgt bei statischem SQL dafür, dass der Parse-Vorgang nur ein einziges Mal stattfindet. Bei Anwendungen, die auf ODBC oder dem C/C++-Precompiler basieren und die PREPARE-Anweisung verwenden, ist der Entwickler für die Anzahl der Parse- bzw. EXECUTE-Aufträge verantwortlich.

Bei Verwendung der JDBC-Schnittstelle sorgt bei aktiviertem Parse-Info-Cache die JDBC-Schnittstelle für die Optimierung der Parse-Aufträge. Die Anzahl der PREPARE-Anweisungen sollte allerdings auch hier möglichst klein gehalten werden.

Hohe Parse-Aktivitäten im laufenden Betrieb können auf die fehlende Implementierung eines Statement-Cache in Ihrer Anwendung oder den deaktivierten Parse-Info-Cache der JDBC-Schnittstelle hindeuten.

Beim erstmaligen Start von Programmen oder Programmteilen ist eine hohe Parse-Aktivität normal.


Physical reads for user task (MaxDB: Database Analyzer)

Physical reads for user task

<number of> physical reads for user task <task_ID>, <number of> commands, application pid <pid>

Erläuterung

Es erfolgen durch die User-Task <task_id> sehr viele physische Lesezugriffe auf die Volumes der Datenbankinstanz, da die von den Anwendungen angeforderten Daten nicht im Data-Cache gefunden wurden.

Benutzerreaktion

Wird auf Tabellen zum ersten Mal zugegriffen oder wurden sie längere Zeit nicht verwendet und daher aus dem Data-Cache verdrängt, ist dieses Verhalten unproblematisch.

Lässt sich die Leseaktivität jedoch nicht aus dem erstmaligen Zugriff auf Tabellen erklären, sollten Sie die Trefferrate für den Data-Cache überprüfen und den Data-Cache gegebenenfalls vergrößern.

Schließen Sie außerdem aus, dass die von der Anwendung gegebenen SQL-Anweisungen erheblich mehr Daten lesen als zur Abarbeitung benötigt werden, z. B. durch ungünstige Suchstrategien.

Wenn der Wert des speziellen Datenbankparameters LRU_FOR_SCAN yes ist, dann werden bei Tabellendurchsuchungen (TABLE SCAN) nur 10 Prozent des Data-Cache für die Zwischenspeicherung der Tabelle genutzt, so dass die Tabelle eventuell nicht komplett im Data-Cache gehalten werden kann und beim nächsten Durchsuchen erneut physisch gelesen werden muss.


Selects and Fetches (MaxDB: Database Analyzer)

Selects and Fetches

<number of> selects and fetches, selectivity <percentage>%: <number of> rows read, <number of> rows qualified

Erläuterung

Bei SELECT- oder FETCH-Anweisungen sind die Strategien für den Zugriff auf Tabellendaten schlecht. Es müssen viele Tabellenzeilen gelesen werden, um die wenigen Zeilen zu finden, die eine WHERE-Bedingung erfüllen.

Benutzerreaktion

Versuchen Sie die Anweisung zu finden, die zu dem schlechten Verhältnis zwischen gelesenen und gefundenen Zeilen führt, und überprüfen Sie die Zugriffsstrategien für diese Anweisung.

Informationen zur Erstellung optimaler SQL-Anweisungen finden Sie in der Dokumentation SQL-Optimierer.


Table scans (MaxDB: Database Analyzer)

Table scans

<number of> table scans, selectivity <percentage>%: <number of> rows read, <number of> rows qualified

Erläuterung

Bei Tabellendurchsuchungen (TABLE SCAN) ist das Verhältnis zwischen gelesenen und gefundenen Zeilen schlecht. Dies deutet oft auf eine schlechte Suchstrategie hin, die entweder durch die Anwendung (fehlende oder unzureichende Indizes etc.) oder durch ein Problem bei der SELECT-Optimierung des Datenbankkerns verursacht wird.

Das Durchsuchen von großen Tabellen kann die Performance des Gesamtsystems gravierend vermindern.

Benutzerreaktion

Versuchen Sie die Anweisung zu finden, die zu dem schlechten Verhältnis zwischen gelesenen und gefundenen Zeilen führt, und überprüfen Sie die Zugriffsstrategien für diese Anweisung.

Informationen zur Erstellung optimaler SQL-Anweisungen finden Sie in der Dokumentation SQL-Optimierer.


User task blocked in state (MaxDB: Database Analyzer)

User task blocked in state

User task <task_ID> blocked in state '<state_description>'

User task <task_ID> blocked in state '<state description>', DB procedure: <DB_procedure_name>

Erläuterung

Die angegebene User-Task ist aktiv, ändert jedoch ihren Task-Zustand nicht. Dadurch werden auch alle anderen Tasks, die sich im selben User-Kernel-Thread befinden, blockiert. Im Extremfall befindet sich die blockierende Task in einer Endlosschleife.


User task physical writes (MaxDB: Database Analyzer)

User task physical writes

User task physical writes: <count>

Erläuterung

Es findet eine Verdrängung geänderter Seiten aus dem Data-Cache in den Datenbereich statt, da die von den Anwendungen verwendeten Daten nicht vollständig im Data-Cache gehalten werden können.

Bei ausreichendem Data-Cache würde das physische Schreiben bis zum nächsten Savepoint verzögert werden und dann asynchron erfolgen. Cache-Verdrängungen führen dagegen zu synchronen Schreib- und Lesevorgängen und sollten möglichst vermieden werden.

Bei längeren Ladeläufen (Datenimport) kommt es fast zwangsläufig zu Verdrängungserscheinungen, da das importierte Datenvolumen in der Regel die Größe des Data-Cache weit übersteigt.

Benutzerreaktion

Vergrößern Sie den Data-Cache.


Konfigurationsdatei (MaxDB: Database Analyzer)

Konfigurationsdatei

Die Konfigurationsdatei dbanalyzer<version>.cfg definiert die Regeln und Kommandos für das Ermitteln der performancerelevanten Daten durch den Database Analyzer.

Diese performancerelevanten Daten werden entweder direkt den Systemtabellen der Datenbank entnommen oder aus entnommenen Werten berechnet.

Die Konfigurationsdatei beschreibt auch die fünf Klassen (Information, drei Warnstufen, Fehlermeldung), nach denen der Database Analyzer die Parameter bewertet und in der Protokolldatei DBAN.prt protokolliert. Für diese Klassen lassen sich in der Konfigurationsdatei konkrete Handlungsanweisungen für den Nutzer hinterlegen.

Änderungen der Regeln und Kommandos wirken sich nur auf die Konfigurationsdatei aus, während das Programm Database Analyzer selbst unverändert bleibt.


Loader

In der vorliegenden Dokumentation wird das Werkzeug Loader beschrieben, das zum Entladen und Laden von Daten eingesetzt werden kann.

Allgemeine Informationen zum Datenbanksystem MySQL MaxDB finden Sie in der Dokumentation Datenbankverwaltung.

· Architektur des Loader

· Konzepte

· Überblick

· Kommandos und SQL-Anweisungen

· Aufruf

· Protokollfunktionen

· Kommandos: Übersicht und Syntaxregeln

· Begriffe und Vorgehensweisen


Konzepte (MaxDB: Loader)

Konzepte

Der Loader verwendet die Konzepte der Datenbank und zusätzlich seine eigenen Konzepte.

Konzepte der Datenbank

Die gesamten Konzepte der Datenbank finden Sie im Referenzhandbuch, Abschnitt Begriffe und Konzepte. Insbesondere verwendet der Loader die folgenden Konzepte:

· Datenbankkatalog

· Anwendungsdaten

· Systemtabellen

Konzepte des Loader

· Transformation

· Systemtabellen

Der Loader bietet Funktionalität zum Entladen, Laden und zur Formatierung (Transformationen) von Daten zwischen unterschiedlichen Datenquellen und Datenzielen mittels verschiedener Datenströme an.

Der Sprachumfang des Loader ermöglicht die Transformation von Daten aller Benutzer einer Datenbankinstanz, eines Benutzers, einer Tabelle eines Benutzers oder einer Menge qualifizierter Spalten einer Tabelle oder mehrerer Tabellen (Kommandos zum Entladen und Laden).

Als physische Datenquelle und physisches Datenziel werden Medien und Datenbankinstanzen unterstützt. Das Entladen oder Laden der gesamten Anwendungsdaten oder des gesamten Datenbankkatalogs kann auch über externe Sicherungswerkzeuge erfolgen (Entladen mit externen Sicherungswerkzeugen, Laden mit externen Sicherungwerkzeugen).

Zur logischen Beschreibung der Daten und deren Transformation nutzt der Loader Metadaten, die in unterschiedlichen Formaten vorliegen können.

Wenn die Systemtabellen gefüllt werden, können diese unter anderem für das Wiederaufsetzen einer Transformation verwendet werden.


Transformation (MaxDB: Loader)

Transformation

Der Loader bietet Funktionalität zum Entladen, Laden und zur Formatieren von Daten zwischen unterschiedlichen Datenquellen und Datenzielen über Datenströme an.

Die damit verbundene Aktion wird als Transformation bezeichnet und durch die Syntax des Loader oder durch Einträge in die Loader-spezifischen Systemtabellen beschrieben.

Eine Transformation ist durch Angaben zum Loader und zur Datenbankinstanz, einen Transformationstyp, den gewünschten Teil des Datenbankkatalogs und die Datenströme gekennzeichnet.

· Loader-Verbindung:
Server node, Database name, User name, Password, SQL mode, ASCII code page, Transaction size, MaxErrorCount, Backup tool

· Datenbankverbindung:
Server node, Database name

· Transformationstyp:
EXTRACT: Daten sollen entladen werden.
LOAD: Daten sollen geladen werden.
UPDATE Daten sollen geändert werden.

· Teil des Datenbankkatalogs:
Der Umfang der an einer Transformation beteiligten Datenbankkatalogobjekte einer Datenbankinstanz kann festgelegt werden.
ALL: gesamter Datenbankkatalog
USER: Teil des Datenbankkatalogs, der dem angegebenen Benutzer gehört
TABLE: Teil des Datenbankkatalogs, der zur angegebenen Tabelle gehört
Es kann auch eine Menge qualifizierter Spalten einer Tabelle oder mehrerer Tabellen angegeben werden.
Für die durch ALL und USER festgelegten Teile des Datenbankkatalogs können die Kommandos und deren Laufzeitinformation aus den Systemtabellen ermittelt werden .

· Datenstrom


Systemtabellen (MaxDB: Loader)

Systemtabellen

Eine wesentliche Protokollfunktion des Loader ist das Ablegen Loader-relevanter Informationen in Systemtabellen.

Bei der Installation des Datenbanksystems werden für den Loader folgende Systemtabellen angelegt:

· CODEPAGE

· TRANSFORMATIONMODEL

· TRANSFORMATIONMONITOR

· TRANSFORMATIONPACKAGES

· TRANSFORMATIONRESOURCES

· TRANSFORMATIONSTATISTICS

· TRANSFORMATIONSTEPS

Eigentümer dieser Systemtabellen ist der SYSDBA-Benutzer. Die Angabe des Eigentümers ist beim Zugriff auf diese Tabellen nicht erforderlich.

In den TRANSFORMATION-Systemtabellen protokolliert der Loader Informationen zum Laufzeitverhalten bei Entlade- und Ladevorgängen. Sowie ein Lade- oder Entladevorgang durchgeführt wird, der sich über mehrere Tabellen erstreckt, werden die Systemtabellen mit den entsprechenden Informationen gefüllt.

Über die Systemtabellen kann eine Transformation zusätzlich konfiguriert werden.

Der Loader nutzt die Einträge in den Systemtabellen für die Wiederaufsetzbarkeit von Kommandos. Die Wiederaufsetzbarkeit wird über die RESTART-Option (restart) der Kommandos erreicht.


Überblick (MaxDB: Loader)

Überblick

Sie erhalten Informationen zu Kommandos, Aufrufmöglichkeiten und Protokollfunktionen des Loader.

Kommandos und SQL-Anweisungen

· Kommandos zum Aufbau einer Datenbanksitzung

· Kommandos zum Laden und Entladen

· SQL-Anweisungen

Aufruf

· Aufruf mit Loader CLI (LOADERCLI)

· Aufruf mit Perl-Schnittstelle des Loader

· Aufruf mit Python-Schnittstelle des Loader

· Aufruf mit Java-Schnittstelle des Loader

Protokollfunktionen

· Protokolldatei

· Systemtabellen


Kommandos und SQL-Anweisungen (MaxDB: Loader)

Kommandos und SQL-Anweisungen

Der Loader kann Kommandos und SQL-Anweisungen ausführen.

· Kommandos zum Aufbau einer Datenbanksitzung
Die Kommandos und SQL-Anweisungen zum Laden und Entladen können nur nach einem erfolgreichen Aufbau einer Datenbanksitzung ausgeführt werden. Somit ist sichergestellt, dass nur entsprechend autorisierte Eigentümer Laden und Entladen können.

· Kommandos zum Entladen und Laden
Eine wesentliche Funktionalität des Loader ist das Entladen und Laden des Datenbankkatalogs, von Teilen des Datenbankkatalogs und von Anwendungsdaten.

· SQL-Anweisungen
Der Loader ist in der Lage, die für das Laden und Entladen erforderlichen SQL-Anweisungen durchzuführen.


Kommandos zum Aufbau einer Datenbanksitzung (MaxDB: Loader)

Kommandos zum Aufbau einer Datenbanksitzung

Der Loader kann eine Reihe von Kommandos und SQL-Anweisungen verarbeiten, unter anderem Kommandos, die zum Aufbau einer Datenbanksitzung verwendet werden können:

· AUTOCOMMIT-Kommando

· SET-Kommando

· SQLMODE-Kommando

· USE SERVERDB-Kommando

· USE USER-Kommando


Kommandos zum Entladen und Laden (MaxDB: Loader)

Kommandos zum Entladen und Laden

Der Loader kann eine Reihe von Kommandos und SQL-Anweisungen verarbeiten, unter anderem Kommandos zum Entladen und Laden von Daten.

Der Sprachumfang des Loader ermöglicht es, bei zunehmender Granularität eine vollständige Datenbank, die Objekte eines Benutzers, einzelne Tabellen oder eine Menge von Spalten einer Tabelle zu laden bzw. zu entladen.

Was soll entladen/geladen werden? | Loader-Kommandos
Datenbankkatalog und Anwendungsdaten | DBEXTRACT / DBLOAD Entladen/Laden mit externen Sicherungswerkzeugen ist möglich
Datenbankkatalog | CATALOGEXTRACT ALL/ CATALOGLOAD ALL Entladen/Laden mit externen Sicherungswerkzeugen ist möglich
Datenbankkatalogobjekte und Anwendungsdaten eines Benutzers | CATALOGEXTRACT USER/CATALOGLOAD USER TABLEEXTRACT USER/ TABLELOAD USER
Tabellen | CATALOGEXTRACT TABLE/CATALOGLOAD TABLE TABLEXTRACT TABLE/TABLELOAD TABLE DATAEXTRACT / DATALOAD
Menge qualifizierter Spalten einer Tabelle | DATAEXTRACT/DATALOAD FASTLOAD DATAUPDATE

Siehe auch:


Beispiele DATALOAD-Kommandos (MaxDB: Loader)

Beispiele DATALOAD-Kommandos

DATALOAD TABLE sqltravel20.reservation IF POS 4 >= '11.08.1999"
rno 1
cno 2
hno 3
arrival 4
departure 5
roomtype 6
INSTREAM 'reservation.data'
DATE 'tt.mm.jjjj'

DATALOAD TABLE sqltravel10.room
IF (POS 41-44 REAL < '400.00')
AND
(POS 41-44 REAL >= '50.00')
nno 01-04 INTEGER
roomtype 09-15
price 41-44 REAL
INSTREAM 'room.data' FORMATTED

DATALOAD TABLE edemo.products
productid 01-10
productname 11-51 NULL IF POS 10-12 = ' '
unitinstock 52-55 INTEGER NULL IF POS 52-55 INTEGER < '0'
unitprice 60-67 DECIMAL (2) NULL IF POS 60 <> 'X'
OR POS 60-67 DECIMAL < '0'
INSTREAM 'products.data' FORMATTED

DATALOAD TABLE edemo.suppliers
supplierid 1
phone 2 DEFAULT NULL
address 3 DEFAULT NULL
INSTREAM 'suppliers.data'
NULL '- '

DATALOAD TABLE edemo.orders
oderid 1
orderdate DATE
requireddate 2
INSTREAM 'orders.data'


SQL-Anweisungen (MaxDB: Loader)

SQL-Anweisungen

Der Loader verfügt über die erforderliche Funktionalität (Kommandos und SQL-Anweisungen), um insbesondere die für das Entladen und Laden erforderlichen SQL-Anweisungen verarbeiten zu können. Insbesondere die DDL-Anweisungen sind beim Laden von Daten unentbehrlich (Referenzhandbuch, Abschnitt SQL-Anweisungen: Überblick).

Datenbankabfragen liefern lediglich Statusmeldungen.

COMMIT und ROLLBACK-Anweisungen wirken nur im Modus AUTOCOMMIT OFF (AUTOCOMMIT-Kommando).


Aufruf (MaxDB: Loader)

Aufruf

Der Loader arbeitet Kommandos und SQL-Anweisungen ab. Kommandos und SQL-Anweisungen können im Hintergrund verarbeitet werden oder in Programmiersprachen eingebettet werden.

In Abhängigkeit davon, welchen Client des Loader Sie verwenden, unterscheidet sich der Aufruf des Loader-Server.

· Aufruf mit Loader CLI (LOADERCLI)

· Aufruf mit Perl-Schnittstelle des Loader

· Aufruf mit Python-Schnittstelle des Loader

· Aufruf mit Java-Schnittstelle des Loader

Siehe auch:

Syntaxregeln für Loader-Aufruf

Diese Dokumentation enthält nur einen kurzen Abriss über jene Funktionen der Skriptsprachen, die im Loader Verwendung finden. Für darüber hinausgehende Informationen verwenden Sie bitte die Herstellerdokumentation zu Perl, Python oder Java.


Aufruf mit Loader CLI (LOADERCLI) (MaxDB: Loader)

Aufruf mit Loader CLI (LOADERCLI)

Der Aufruf des Loader kann mittels des Clients Loader CLI (LOADERCLI) erfolgen.

Aufruf

loadercli [<options>]

Sie können beim Aufruf des Loader Optionen angeben. Achten Sie vor allen Dingen auf folgende Möglichkeiten:

· Sie können durch Angabe der Option -r steuern, ob Sie den in den Loader CLI eingebetteten Loader-Server oder den vom Loader CLI getrennten Loader-Server nutzen wollen.

· Sie können durch Angabe der Option -b den Betriebsmodus festlegen, also steuern, ob die Kommandos und SQL-Anweisungen im Hintergrund oder interaktiv verarbeitet werden sollen.

Ablauf

Zum Aufbau der Verbindung zur Datenbankinstanz wertet der Loader CLI zunächst die entsprechenden Optionen aus. Anschließend werden die interaktiv eingegebenen oder in der Kommandodatei vorhandenen Kommandos und SQL-Anweisungen ausgeführt.

Aufruf des eigenständigen Loader (Server und Client in einem Programm), von dem die Kommandos und SQL-Anweisungen im Hintergrund verarbeitet werden sollen

loadercli -d demodb -u sqltravel01,travel01 –b command.dat -E 20

Der Loader stellt eine Verbindung zur Datenbankinstanz demodb für den Benutzer sqltravel01 her. Der Loader arbeitet die in der Kommandodatei command.dat enthaltenen Kommandos und SQL-Anweisungen ab. Wenn dabei Fehler (Returncode <> 0) auftreten, wird die Abarbeitung abgebrochen, sobald 20 Fehlermeldungen aufgetreten sind.

Aufruf des vom Loader CLI getrennten Loader-Server auf dem lokalen Rechner, von dem die Kommandos und SQL-Anweisungen im Hintergrund verarbeitet werden sollen

loadercli –d demodb -u sqltravel01,travel01 –r loaderhost -b command.dat -E 20

Der Loader CLI stellt eine Verbindung zum Loader-Server auf dem lokalen Rechner loaderhost her. Der Loader-Server stellt eine Verbindung zur Datenbankinstanz demodb für den Benutzer sqltravel01 her. Der Loader arbeitet die in der Kommandodatei command.dat enthaltenen Kommandos und SQL-Anweisungen ab. Wenn dabei Fehler (Returncode <> 0) auftreten, wird die Abarbeitung abgebrochen, sobald 20 Fehlermeldungen aufgetreten sind.

Aufruf des eigenständigen Loader (Server und Client in einem Programm), von dem die Kommandos und SQL-Anweisungen interaktiv verarbeitet werden sollen

loadercli –d demodb -u sqltravel01,travel01

Der Loader stellt eine Verbindung zur Datenbankinstanz demodb für den Benutzer sqltravel01 her. Danach erwartet der Loader die Kommandos und SQL-Anweisungen auf der Kommandozeile und arbeitet diese ab.

Ergebnis

Der Loader führt die Kommandos und SQL-Anweisungen aus. Der Loader schreibt eine Protokolldatei

Fehler

Treten bei der Bearbeitung von Kommandos oder SQL-Anweisungen Fehler auf, ist das Verhalten des Loader abhängig davon, ob er interaktiv oder im Hintergrund genutzt wird.

Bei Nutzung im interaktiven Modus meldet der Loader den aufgetretenen Fehler und erwartet danach weitere Eingaben zur Bearbeitung.

Bei Nutzung im Hintergrund bricht der Loader bei Auftreten einer definierten Anzahl von Fehlern die Verarbeitung der Kommandos und SQL-Anweisungen ab und beendet sich. Mit der Option –E legen Sie die Anzahl der Fehler fest, die der Loader ignorieren soll, bevor er die Verarbeitung weiterer Kommandos abbricht. Wird die Option –E nicht angegeben, wird nach dem ersten fehlerhaften Kommando die Bearbeitung abgebrochen. Eine Reaktion auf die Fehler ist bei Verwenden des Loader CLI nicht möglich.

Um auf Fehler reagieren zu können, wird die Funktionalität des Loader als Bibliothek für die Skriptsprachen Perl und Python zur Verfügung gestellt.

siehe auch:
Aufruf mit Perl-Schnittstelle des Loader
Aufruf mit Python-Schnittstelle des Loader


Optionen (MaxDB: Loader)

Optionen

Beim Aufruf des Loaders mit dem Loader CLI (LOADERCLI) können die folgenden Optionen angegeben werden: loadercli [<options]

Optionen

-b <command_file> | Name der Kommandodatei, Festlegung des Betriebsmodus
-d <database_name> | Name der Datenbankinstanz
-u <user_name>,<password> | Benutzername und Kennwort
-n <database_server> | Datenbankrechner
-r <loader_server> | Name des lokalen Loader-Rechners, wenn Loader CLI und Loader-Server getrennt voneinander aufgerufen werden sollen
-E <number> | Anzahl der maximal zulässigen Fehler
-o[w|a] <file_name> | Name der Ausgabedatei
-p <number><substitution_string > | Angabe eines Ersetzungsparameters
-cs <command_separator> | Angabe eines Kommandotrenners
-R <directory_name> | Verzeichnis, das die von der Version der Datenbanksoftware abhängigen Programme enthält
-V | Version des Loader
-v | Version des Loader CLI
-h | Hilfe

Verwendung

Beim Aufruf des Loader geben Sie üblicherweise den Namen des Benutzers (Option -u) und der Datenbankinstanz (Option -d) an. Dadurch wird eine Verbindung zur angegebenen Datenbankinstanz für diesen Benutzer aufgebaut.

Alle erforderlichen Kommandos und SQL-Anweisungen können in einer Kommandodatei (Option -b) übermittelt oder interaktiv eingegeben werden.

loadercli -d demodb -u sqltravel01,travel01 -b command.dat

Sie haben aber auch die Möglichkeit, den Loader ohne Optionen oder nur unter Angabe eines Datenbankinstanznamens (Option -d) aufzurufen. Alle weiteren Kommandos zum Aufbau einer Datenbanksitzung müssen Sie dann in der Kommandodatei übergeben, um die Verbindung zwischen dem Loader und dieser oder einer anderen Datenbankinstanz herzustellen.


Kommandodatei: -b (MaxDB: Loader)

Kommandodatei: -b

Option für den Aufruf des Loader mit dem LOADERCLI zur Übergabe des Namens der Kommandodatei und zur Einstellung des Betriebsmodus.

Syntax

-b <command_file>

<command_file>

Kommandodatei

Verwendung

Bei Angabe der Option liest der Loader CLI die Kommandos und SQL-Anweisungen aus der angegebenen Kommandodatei und übermittelt diese an den Loader-Server. Der Loader CLI befindet sich im Hintergrundmodus.

Wird die Option nicht angegeben, dann eröffnet der Loader CLI eine interaktive Sitzung.


Kommandotrenner: -cs (MaxDB: Loader)

Kommandotrenner: -cs

Option für den Aufruf des Loader mit dem LOADERCLI zur Übergabe des verwendeten Kommandotrenners.

Syntax

-cs <command_separator>

<command_separator>

Kommandotrenner; mindestens 1 Zeichen, maximal 2 Zeichen

Verwendung

Sie definieren mit dieser Angabe, welche Zeichen vom LOADERCLI als Kommandotrenner erkannt werden soll. Diese Festlegung gilt sowohl für den interaktiven Betriebsmodus des LOADERCLI als auch für die Kommandodatei.

Wird die Option -cs nicht angegeben, wird als Kommandotrenner eine Zeile, an deren Zeilenanfang ein doppelter Schrägstrich // steht, als Kommandotrenner erwartet (Syntaxregeln für Kommandodatei).


Datenbankinstanz: -d (MaxDB: Loader)

Datenbankinstanz: -d

Option für den Aufruf des Loader mit dem LOADERCLI zur Übergabe des Namens der Datenbankinstanz

Syntax

-d <database_name>

<database_name>

Name der Datenbankinstanz, an der eine Anmeldung eines Datenbankbenutzers erfolgen soll

Verwendung

Der Loader baut eine Verbindung zur angegebenen Datenbankinstanz auf. Dabei führt der Loader implizit das Loader-Kommando USE SERVERDB oder bei gleichzeitiger Angaben von Datenbankinstanzname und Benutzerdaten das Loader-Kommando USE USER aus.

Der Name der Datenbankinstanz kann auch mit Hilfe der Kommandos USE SERVERDB oder USE USER übermittelt werden und damit während der Loader-Sitzung gewechselt werden.


Benutzerdaten: -u (MaxDB: Loader)

Benutzerdaten: -u

Option für den Aufruf des Loader mit dem LOADERCLI zur Übergabe der Benutzerdaten

Syntax

-u [<user_name>,<password>]

<user_name> | Benutzername (Datenbankbenutzer)
<password> | Benutzerkennwort

Wenn Sie –u ohne die Angabe von <user_name>,<password> verwenden, werden Sie vom Loader nach der Benutzername-/Kennwort-Kombination gefragt. Auf diese Weise vermeiden Sie, dass das Benutzerkennwort in der Kommandozeile, Kommandohistorie sowie in der Prozessliste des Betriebssystems sichtbar wird.

Voraussetzung

Sie verwenden gleichzeitig die Option –d zur Angabe einer Datenbankinstanz.

Verwendung

Für den angegebenen Benutzer wird eine Datenbanksitzung aufgebaut. Dabei führt der Loader implizit das Loader-Kommando USE USER aus. Benutzername und Kennwort werden vom Datenbanksystem automatisch in Großbuchstaben umgewandelt.

Benutzerdaten können auch mit Hilfe des Kommandos USE USER übermittelt werden. Dadurch ist ein Benutzerwechsel während einer Loader-Sitzung möglich.


Datenbankrechner: -n (MaxDB: Loader)

Datenbankrechner: -n

Option für den Aufruf des Loader mit dem LOADERCLI zur Übergabe des Rechnernamens

Syntax

-n <database_server>

<database_server>

Knotenname des Rechners, auf dem sich die Datenbankinstanz befindet
Vorschlagswert: Name des lokalen Rechners

Voraussetzung

Sie verwenden gleichzeitig die Optionen –d oder –d und –u.

Verwendung

Der Loader baut eine Verbindung zur Datenbankinstanz auf dem angegebenen Rechner auf. Dabei führt der Loader implizit das Loader-Kommando USE SERVERDB oder bei gleichzeitiger Angaben von Datenbankinstanzname und Benutzerdaten das Loader-Kommando USE USER aus.

Der Name des Datenbankrechners kann auch mit Hilfe der Kommandos USE SERVERDB oder USE USER übermittelt werden.


Loader-Rechner: -r (MaxDB: Loader)

Loader-Rechner: -r

Option für den Aufruf des Loader mit dem LOADERCLI, mit der gesteuert werden kann, ob der Loader als Client-Server-Anwendung oder als eigenständiges Programm gestartet wird

Syntax

-r <loader_server>

<loader_server>

Name des lokalen Rechners, auf dem sich der Loader CLI und der Loader-Server befinden

Verwendung

Bei Angabe der Option -r <loader_server> baut der Loader CLI eine Netzwerkverbindung zum Loader-Server (beide Programme liegen auf dem lokalen Rechner) auf und übermittelt an den Loader-Server alle auszuführenden Kommandos.

Wird die Option –r nicht angegeben, nutzt der Loader CLI den eingebetteten Loader-Server zur Ausführung der Kommandos. Die Netzwerkkommunikation zwischen dem Loader CLI und dem Loader-Server entfällt in diesem Fall.


Maximal zulässige Fehleranzahl: -E (MaxDB: Loader)

Maximal zulässige Fehleranzahl: -E

Option für den Aufruf des Loader mit dem LOADERCLI zur Übergabe der zulässigen Fehleranzahl

Syntax

-E <number>

<number>

Anzahl zulässiger fehlerhafter Kommandos

Voraussetzung

Sie verwenden gleichzeitig die Option –b zur Angabe einer Kommandodatei. Im interaktiven Betriebsmodus wird diese Option ignoriert.

Verwendung

Sie legen mit dieser Option fest, nach welcher Anzahl fehlerhaft ausgeführter Kommandos der Loader die weitere Abarbeitung der Kommandodatei abbricht.


Ausgabedatei: -o[w|a] (MaxDB: Loader)

Ausgabedatei: -o[w|a]

Option für den Aufruf des Loader mit dem LOADERCLI zur Bestimmung der Ausgabedatei

Syntax

-o[w|a] <file_name>

<file_name>

Name der Datei, in die die Ausgaben des Loader geschrieben werden sollen
Vorschlagswert: Bildschirm

Voraussetzung

Sie verwenden gleichzeitig die Option –b zur Angabe einer Kommandodatei. Im interaktiven Betriebsmodus wird bei Angabe dieser Option ein Fehler generiert.

Verwendung

Die Ausgaben des Loader werden in die angegebene Datei geschrieben.

Option -ow

Die Datei wird zum Schreiben geöffnet und eventuell vorhandene Einträge werden gelöscht.

Option -oa

Die Datei wird zum Schreiben geöffnet und die Ausgaben werden an das Dateiende angehangen, ohne dass vorherige Einträge gelöscht werden.

Die Option bezieht sich ausschließlich auf die Ausgaben des Loader. Unabhängig davon schreibt das Programm noch eine Protokolldatei.


Ersetzungsparameter: -p (MaxDB: Loader)

Ersetzungsparameter: -p

Option für den Aufruf des Loader mit dem LOADERCLI zur Übergabe eines Ersetzungsparameters

Syntax

-p<number> <substitution_value>

<number> | Definiert die Nummer n des zu ersetzenden Platzhalters in der Kommandodatei, 1<=n<=9
<substitution_value> | Wert, der den Platzhalter in der Kommandodatei ersetzen soll

Voraussetzung

Sie verwenden gleichzeitig die Option -b zur Angabe einer Kommandodatei. Im interaktiven Betriebsmodus wird diese Option ignoriert.

Verwendung

Mit dieser Option bestimmen Sie Werte für Platzhalter in der Kommandodatei. Diese Werte können beliebige Zeichenketten sein. Sie können 9 verschiedene Parameter (und damit Platzhalter) pro Kommandodatei festlegen.

In der Kommandodatei geben Sie die Platzhalter in der Form &<number> ein.

Eintrag in der Kommandodatei:

DATAEXTRACT FOR DATALOAD TABLE kunde OUTFILE '&1' OUTFILE 'kunden.daten'
DATAEXTRACT FOR FASTLOAD TABLE artikel OUTFILE '&1' APPEND OUTFILE 'artikel.daten'

Mit der Option –p geben Sie bei Aufruf des Loader CLI den Namen der Kommandodatei an:

loadercli ... –p1 kommando.dat


dependent-Verzeichnis: -R (MaxDB: Loader)

dependent-Verzeichnis: -R

Option für den Aufruf des Loader mit dem LOADERCLI zum Aufbau der Verbindung zum Loader

Syntax

-R <dependent_path>

<dependent_path>

Name des Verzeichnisses auf dem Rechner des Loader, das die von der Version der Datenbanksoftware abhängigen Programme enthält
Vorschlagswert: nicht vorhanden

Verwendung

Wenn mehrere Loader-Versionen auf dem Rechner installiert sind, haben Sie die Möglichkeit, den Loader einer bestimmten Version zu starten. Wenn Sie keinen Verzeichnisnamen angeben, wird immer der Loader der aktuellsten Version der Datenbanksoftware gestartet.


Version des Loader: -V (MaxDB: Loader)

Version des Loader: -V

Option bei Aufruf des Loader mit dem LOADERCLI zur Ermittlung der Version des Loader-Server

Syntax

-V


Version des LOADERCLI: -v (MaxDB: Loader)

Version des LOADERCLI: -v

Option bei Aufruf des Loader mit dem LOADERCLI zur Ermittlung der Version des Clients des Loader: Loader CLI (LOADERCLI)

Syntax

-v


Hilfe: -h (MaxDB: Loader)

Hilfe: -h

Option für den Aufruf von Informationen (Hilfe) zu allen bei Aufruf des Loader mit dem LOADERCLI möglichen Optionen

Syntax

-h


Kommandodatei (MaxDB: Loader)

Kommandodatei

Beim Aufruf des Loader mit dem LOADERCLI können Sie die Kommandos und SQL-Anweisungen, die ausgewertet werden sollen, in einer speziellen Datei, der Kommandodatei, ablegen.

Bei Aufruf des Loader übergeben Sie den Namen der Kommandodatei durch Angabe der Option –b.

loadercli -d demodb -u sqltravel01,travel01 -n DBHost -b command.dat

Die Kommandos und SQL-Anweisungen befinden sich in der Datei command.dat.

Verwendung

Die in der Kommandodatei von Ihnen angegebenen Kommandos und SQL-Anweisungen werden vom Loader einzeln in der angegebenen Reihenfolge abgearbeitet.

Siehe auch:

Syntaxregeln für Kommandodatei


Syntaxregeln für Kommandodatei (MaxDB: Loader)

Syntaxregeln für Kommandodatei

Beachten Sie die folgenden Syntaxregeln für Kommandodateien.

Allgemeine Syntaxregeln bei Aufruf des Loader

Syntaxregeln für Loader-Aufruf

Trennzeile zwischen Kommandos

Einzelne Kommandos in einer Kommandodatei werden durch eine Zeile, an deren Zeilenanfang ein doppelter Schrägstrich // steht, voneinander getrennt.

Ein von den Schrägstrichen abweichender Kommdotrenner kann mit der Option –cs beim Aufruf des LOADERCLI definiert werden.

Kommentare

Nach einem doppelten Schrägstrich // am Zeilenanfang können Kommentare eingegeben werden. Die Kommentare werden bei der Bearbeitung der Kommandodatei vom Loader ignoriert.

CREATE TABLE customer
(cno FIXED(4,0) NOT NULL,
title CHAR(7),
firstname CHAR(10),
name CHAR(10) NOT NULL,
zip CHAR(5),
address CHAR(25) NOT NULL,
PRIMARY KEY (cno),
CONSTRAINT cno_dom CHECK cno BETWEEN 1 AND 9999,
CONSTRAINT title CHECK title IN (′Mr′,′Mrs′,′Company′),
CONSTRAINT zip_dom CHECK
 SUBSTR(ZIP,1,1) BETWEEN '1' AND '9' AND
SUBSTR(ZIP,2,1) BETWEEN '0' AND '9' AND
SUBSTR(ZIP,3,1) BETWEEN '0' AND '9' AND
SUBSTR(ZIP,4,1) BETWEEN '0' AND '9' AND
SUBSTR(ZIP,5,1) BETWEEN '0' AND '9',
FOREIGN KEY city_customer (zip) REFERENCES city (zip) ON DELETE RESTRICT
//
DATALOAD TABLE customer
cno 1 CHAR
title 2 CHAR DEFAULT NULL
firstname 3 CHAR DEFAULT NULL
name 4 CHAR
zip 5 CHAR DEFAULT NULL
address 6 CHAR
INSTREAM 'customer.data'
//create index
CREATE INDEX customer_index ON customer (name)
//
DATAEXTRACT cno, name, zip, address from customer
OUTFIELDS
cno 1
name 2
zip 3
address 4
OUTSTREAM 'newcustomer.data'


Aufruf mit Perl-Schnittstelle des Loader (MaxDB: Loader)

Aufruf mit Perl-Schnittstelle des Loader

Der Aufruf des Loader kann durch die Abarbeitung eines Perl-Skripts erfolgen.

Voraussetzungen

Auf dem Rechner ist eine Perl-Installation vorhanden.

Zusammen mit dem Programm Loader werden folgende Perl-Module ausgeliefert, die es Ihnen ermöglichen, Perl-Skripte zu erstellen, die vom Loader abgearbeitet werden können.

· Windows: loaderaperl.dll, loader.pm, instperl.pl

· UNIX: loadercperl.so, loader.pm, instperl.pl

· HP : loadercperl.sl, loader.pm, instperl.pl

Öffnen Sie die Datei instperl.pl. Durch diesen Schritt werden die mitgelieferten Dateien in die vorgesehenen Verzeichnisse kopiert.

Aufruf

perl <perl_script_file> [<argument> ...]

Die Angabe von Argumenten <argument> ist optional.

Häufig verwendete Argumente:

<user_name>
<password>

Benutzername (Datenbankbenutzer)
Kennwort
Benutzername und Kennwort werden vom Datenbanksystem automatisch in Großbuchstaben umgewandelt.

<database_name>

Name der Datenbankinstanz

<data_path>

Verzeichnis, in dem sich die Datendatei befindet

<server_node>

Rechnername, auf dem sich der Loader befindet

perl muster mustermann geheim TST C:\data\sapdb

Das Perl-Skript muster wird aufgerufen. Die Anmeldung an den Loader erfolgt für den Benutzer mustermann an die Datenbankinstanz TST. Die Datendatei befindet sich im Verzeichnis C:\data\sapdb.

Muster für Hintergrunddateien

Nachfolgend finden Sie eine Reihe von Beispielen für Hintergrunddateien in der Skriptsprache Perl, die zu Vergleichszwecken auch in der Skriptsprache Python erstellt wurden.

Beispiel Nr. 1 Aufbau eines Perl-Moduls mit Verweis auf die Perl-Libraries Parsen der Aufrufargumente | Perl | Python
Beispiel Nr. 2 Aufbau einer Datenbanksitzung mit dem Loader Anmelden an die Datenbankinstanz Abmelden | Perl | Python
Beispiel Nr. 3 Aufbau einer Datenbanksitzung Anmelden an die Datenbankinstanz Abfragen, ob Tabelle existiert, durch Abfrage des Fehlercodes Anlegen einer Tabelle ohne Abfragen des Fehlercodes Abmelden | Perl | Python
Beispiel Nr. 4 Aufbau einer Datenbanksitzung Anmelden an die Datenbankinstanz Anlegen einer Tabelle und Abfragen des Fehlercodes Laden von Daten in die Tabelle mittels Kommando/s und Abfragen des Fehlercodes Abmelden | Perl | Python
Beispiel Nr. 5 Aufbau einer Datenbanksitzung Anmelden an die Datenbankinstanz Laden von Daten in die Tabelle mittels Kommando/s und Abfangen von Ausnahmen (Exceptions) Abmelden | Perl | Python

Perl-Klassen


Perl-Klassen (MaxDB: Loader)

Perl-Klassen

Für den Aufruf des Loader mit Perl-Skripten verwenden Sie folgende Klassen:

· Klasse Loader

· Exception-Klassen


Perl: Klasse Loader (MaxDB: Loader)

Perl: Klasse Loader

Konstruktor: Loader (<server_node>, <database_name>)

<server_node> | Rechnerknotenname
<database_name> | Name der Datenbankinstanz

Verbindungsaufbau zum Loader

Bei Angabe des Rechnerknotennamens und des Namens der Datenbankinstanz geht das System davon aus, dass sich Datenbankinstanz, Daten und Loader auf einem entfernten Rechner (remote) befinden.

Wenn nur der Name der Datenbankinstanz angegeben wird, geht das System davon aus, dass sich Datenbankinstanz, Daten und Loader auf dem lokalen Rechner befinden. Über die Version der angegebenen Datenbankinstanz wird der passende Loader ermittelt.

Wenn weder Rechnerknotenname noch Name der Datenbankinstanz angegeben werden, wird vom System die Verbindung zum neuesten Loader auf dem lokalen Rechner hergestellt.

Durch Löschen des Objekts mittels undef $session wird die Sitzung wieder geschlossen.

$session = loader::Loader ('p12345', 'mydb')

Methode: cmd (<command_string>)

Eine SQL-Anweisung oder ein Loader-Kommando wird ausgeführt.

Bei Scheitern des Kommandos wird das Skript abgebrochen.

$output = $session->cmd ("DATALOAD TABLE kunde".
                        "knr       1-4".
                        "nachname  6-12".
                        "plz       14-18".
                         "ort       20-31".
                        "INFILE '$data_path\kunde.dat' ")

Methode: sql (<command_string>)

Eine SQL-Anweisung oder ein Loader-Kommando wird ausgeführt.

Wenn ein Kommando scheitert, wird die Ausführung des Skripts abgebrochen.

Wenn eine SQL-Anweisung scheitert wird ein Return-Code ausgegeben.

$result = $session->sql ('EXISTS TABLE MYTABLE')


Perl: Exception-Klassen (MaxDB: Loader)

Perl: Exception-Klassen

Eine Exception ist ein String, der entweder mit CommunicationError oder mit LoaderServError beginnt.

LoaderServError: 25011 SQL error -3005 = Invalid SQL Statement

Beispiel für die Verwendung im Skript::

eval {$session->cmd ('complete nonsense;') };
if ($@) { print "command failed: $@\n"; }

Printausgabe:

command failed: LoaderServError: 25011 SQL error -3005 = Invalid SQL Statement


Perl: Beispiel Nr. 1 (MaxDB: Loader)

Perl: Beispiel Nr. 1

Beispiel für Aufruf des Loader mit Perl-Skript

Aufbau eines Perl-Moduls mit Verweis auf die Perl-Libraries
Parsen der Aufrufargumente:

# Verweis auf Perl-Library
# -------------------------------

use SAP::DBTECH::loader;

# Parsen der Aufrufargumente
# --------------------------

$user_name = $ARGV[0];
$password = $ARGV[1];
$database_name = $ARGV[2];
$data_path = $ARGV[3];
$server_node = "localhost";


Perl: Beispiel Nr. 2 (MaxDB: Loader)

Perl: Beispiel Nr. 2

Beispiel für Aufruf des Loader mit Perl-Skript

Aufbau einer Datenbanksitzung mit dem Loader
Anmelden an die Datenbankinstanz
Abmelden

# Verweis auf Perl-Library
# -------------------------------

use SAP::DBTECH::loader;

# Parsen der Aufrufargumente
# --------------------------

$user_name = $ARGV[0];
$password = $ARGV[1];
$database_name = $ARGV[2];
$data_path = $ARGV[3];
$server_node = "localhost";

# Aufbau einer Datenbanksitzung zum Loader
# -------------------------------------------

$session = loader::Loader ($server_node, $database_name);

# Anmelden an die Datenbankinstanz
# --------------------------------

$session->cmd("use user $user_name $password;");

# Abmelden
# --------

undef $session


Perl: Beispiel Nr. 3 (MaxDB: Loader)

Perl: Beispiel Nr. 3

Beispiel für Aufruf des Loader mit Perl-Skript

Aufbau einer Datenbanksitzung
Anmelden an die Datenbankinstanz
Abfragen, ob Tabelle existiert, durch Abfragen des Fehlercodes
Anlegen einer Tabelle ohne Abfragen des Fehlercodes
Abmelden

# Verweis auf Perl-Library
# -------------------------------

use SAP::DBTECH::loader;

# Parsen der Aufrufargumente
# --------------------------

$user_name = $ARGV[0];
$password = $ARGV[1];
$database_name = $ARGV[2];
$data_path = $ARGV[3];
$server_node = "localhost";

# Aufbau einer Datenbanksitzung zum Loader
# -------------------------------------------

$session = loader::Loader ($server_node, $database_name);

# Anmelden an die Datenbankinstanz
# --------------------------------

$session->cmd("use user $user_name $password;");

# Abfrage, ob Tabelle existiert durch Abrage des Fehlercodes
# hierzu wird die Methode sql verwendet
# -------------------------------------

$rc = $session->sql('EXISTS TABLE CUSTOMER')

If $rc!=0

# Anlegen der Tabelle CUSTOMER
# -------------------------

$session->cmd ( 'CREATE TABLE customer ( '.
                    'cno             FIXED(4), '.
                    'name            CHAR(10) ASCII, '.
                    'zip             CHAR(5)  ASCII, '.
                    'city            CHAR(12) ASCII, '.
                    'PRIMARY KEY (cno) ')

# Beenden der Datenbanksitzung
# ----------------------------

undef $session


Perl: Beispiel Nr. 4 (MaxDB: Loader)

Perl: Beispiel Nr. 4

Beispiel für Aufruf des Loader mit Perl-Skript

Aufbau einer Datenbanksitzung
Anmelden an die Datenbankinstanz
Anlegen einer Tabelle und Abfragen des Fehlercodes
Laden von Daten in die Tabelle mittels Loader-Kommando/s und Abfragen des Fehlercodes
Abmelden

# Verweis auf Perl-Library
# -------------------------------

use SAP::DBTECH::loader;

# Parsen der Aufrufargumente
# --------------------------

$user_name = $ARGV[0];
$password = $ARGV[1];
$database_name = $ARGV[2];
$data_path = $ARGV[3];
$server_node = "localhost";

# Aufbau einer Datenbanksitzung zum Loader
# -------------------------------------------

$session = loader::Loader ($server_node, $database_name);

# Anmelden an die Datenbankinstanz
# --------------------------------

$session->cmd("use user $user_name $password;");

$rc = $session->sql('EXISTS TABLE CUSTOMER')

If $rc!=0

# Anlegen der Tabelle CUSTOMER
# -------------------------

$session->cmd ( 'CREATE TABLE customer ( '.
                      'cno            FIXED(4), '.
                      'name           CHAR(10) ASCII, '.
                      'zip            CHAR(5)  ASCII, '.
                      'city           CHAR(12) ASCII, '.
                      'PRIMARY KEY (cno) ')

print $rc

If $rc==0

# Laden der Tabelle CUSTOMER
# ----------------------------------------------------------

$loadrc = $session->cmd ("DATALOAD TABLE customer".
                           "cno       1-4   ".
                           "name      6-12  ".
                           "zip       14-18 ".
                           "city      20-31 ".
                           "INFILE $data_path\customer.dat" )

print $loadrc

# Beenden der Datenbanksitzung
# ----------------------------

undef $session


Perl: Beispiel Nr. 5 (MaxDB: Loader)

Perl: Beispiel Nr. 5

Beispiel für Aufruf des Loader mit Perl-Skript

Wenn ein Kommando zur Laufzeit verändert wird, weil z. B. Benutzereingaben als Teil des Kommandos fungieren, kann es leicht zu Syntaxfehlern kommen.
Die SQL-Methode liefert nur SQL-Fehlercodes. Um Syntaxfehler im DATALOAD-Kommando abzufangen, benötigen Sie Exceptions.

Aufbau einer Datenbanksitzung
Anmelden an die Datenbankinstanz
Laden von Daten in die Tabelle mittels Loader-Kommando/s und Abfangen von Ausnahmen (Exceptions)
Abmelden

Durch einen unkorrekten Datenpfad können im folgenden Beispiel ein Syntaxfehler oder ein Dateizugriffsfehler entstehen.

# Verweis auf Perl-Library
# -------------------------------

use SAP::DBTECH::loader;

# Parsen der Aufrufargumente
# --------------------------

$user_name = $ARGV[0];
$password = $ARGV[1];
$database_name = $ARGV[2];
$data_path = $ARGV[3];
$server_node = "localhost";

# Aufbau einer Datenbanksitzung zum Loader
# -------------------------------------------

$session = loader::Loader ($server_node, $database_name);

# Anmelden an die Datenbankinstanz
# --------------------------------

$session->cmd("use user $user_name $password;");

# Beispiel für die Benutzung des Exception Handlings
# --------------------------------------------------

eval{
    $loadrc=$session->sql ("DATALOAD TABLE customer ".
                            "cno       1-4    ".
                            "name      6-12   ".
                            "zip       14-18  ".
                            "city      20-31  ".
                            "INFILE $data_path\customer.dat" );
    print "$loadrc\n";}
if ($@){
    print "command failed: $@\n";
}

# Beenden der Datenbanksitzung
# ----------------------------

undef $session


Aufruf mit Python-Schnittstelle des Loader (MaxDB: Loader)

Aufruf mit Python-Schnittstelle des Loader

Der Aufruf des Loader kann durch die Abarbeitung eines Python-Skripts erfolgen.

Voraussetzungen

Zusammen mit dem Programm Loader werden folgende Python-Module ausgeliefert, die es Ihnen ermöglichen, Python-Skripte zu erstellen, die vom Loader abgearbeitet werden können.

· Windows: loader.pyd

· UNIX: loadermodule.so

· HP: loadermodule.sl

Dies sind die zur Nutzung der Loader-Funktionalität notwendigen Module. Eine vollständige PYTHON-Installation ist nicht erforderlich.

Sollten Sie bereits über eine PYTHON-Installation verfügen, erweitern Sie die Variable PYTHONPATH um %INSTROOT%\misc.

Der Loader unterstützt das Programm PYTHON ab Version 1.5.2 .

Aufruf

x_python <python_script_file> [<argument>...]

Die Angabe von Argumenten <argument> ist optional.

Häufig verwendete Argumente:

<user_name>
<password>

Benutzername (Datenbankbenutzer)
Kennwort
Benutzername und Kennwort werden vom Datenbanksystem automatisch in Großbuchstaben umgewandelt.

<database_name>

Name der Datenbankinstanz

<data_path>

Verzeichnis, in dem sich die Datendatei befindet

<server_node>

Rechnername, auf dem sich der Loader befindet

X_python muster mustermann geheim TST C:\data\sapdb

Das Python-Skript muster wird aufgerufen. Die Anmeldung an den Loader erfolgt für den Benutzer mustermann an die Datenbankinstanz TST. Die Datendatei befindet sich im Verzeichnis C:\data\sapdb.

Muster für Hintergrunddateien

Nachfolgend finden Sie eine Reihe von Beispielen für Hintergrunddateien in der Skriptsprache Python, die zu Vergleichszwecken auch in der Skriptsprache Perl erstellt wurden.

Beispiel Nr. 1 Aufbau eines Python-Moduls mit Verweis auf die Python-Libraries Parsen der Aufrufargumente | Python | Perl
Beispiel Nr. 2 Aufbau einer Datenbanksitzung mit dem Loader Anmelden an die Datenbankinstanz Abmelden | Python | Perl
Beispiel Nr. 3 Aufbau einer Datenbanksitzung Anmelden an die Datenbankinstanz Abfrage, ob Tabelle existiert, durch Abfragen des Fehlercodes Anlegen einer Tabelle ohne Abfragen des Fehlercodes Abmelden | Python | Perl
Beispiel Nr. 4 Aufbau einer Datenbanksitzung Anmelden an die Datenbankinstanz Anlegen einer Tabelle und Abfragen des Fehlercodes Laden von Daten in die Tabelle mittels Kommando/s und Abfragen des Fehlercodes Abmelden | Python | Perl
Beispiel Nr. 5 Aufbau einer Datenbanksitzung Anmelden an die Datenbankinstanz Laden von Daten in die Tabelle mittels Kommando/s und Abfangen von Ausnahmen (Exceptions) Abmelden | Python | Perl

Python-Klassen


Python-Klassen (MaxDB: Loader)

Python-Klassen

Für den Aufruf des Loader mit Python-Skripten verwenden Sie folgende Klassen:


Python: Klasse Loader (MaxDB: Loader)

Python: Klasse Loader

Konstruktor: Loader (<server_node>, <database_name>)

<server_node> | Rechnerknotenname
<database_name> | Name der Datenbankinstanz

Verbindungsaufbau zum Loader

Bei Angabe des Rechnerknotennamens und des Namens der Datenbankinstanz geht das System davon aus, dass sich Datenbankinstanz, Daten und Loader auf einem entfernten Rechner (remote) befinden.

Wenn nur der Name der Datenbankinstanz angegeben wird, geht das System davon aus, dass sich Datenbankinstanz, Daten und Loader auf dem lokalen Rechner befinden. Über die Version der angegebenen Datenbankinstanz wird der passende Loader ermittelt.

Wenn weder Rechnerknotenname noch Name der Datenbankinstanz angegeben werden, wird vom System die Verbindung zur neuesten Loader-Version auf dem lokalen Rechner hergestellt.

Durch Löschen des Objekts mittels del session wird die Sitzung wieder geschlossen.

session = loader.Loader ('p12345', 'mydb')

Methode: cmd (<command_string>)

Eine SQL-Anweisung oder ein Loader-Kommando wird ausgeführt.

Bei Scheitern des Kommandos wird das Skript abgebrochen.

output = session.cmd (""" DATALOAD TABLE kunde
                     knr       1-4
                     nachname  6-12
                     plz      14-18
                     ort      20-31
                     INFILE '%s\kunde.dat' """ %data_path)

Methode: sql (<command_string>)

Eine SQL-Anweisung oder ein Loader-Kommando wird ausgeführt.

Wenn ein Kommando scheitert, wird die Ausführung des Skripts abgebrochen.

Wenn eine SQL-Anweisung scheitert wird ein Return-Code ausgegeben.

result = session.sql ('EXISTS TABLE MYTABLE')


Python: Exception-Klassen (MaxDB: Loader)

Python: Exception-Klassen

Klasse: CommunicationError

Der Aufbau der Verbindung zum Loader ist gescheitert.

Der Wert der Exception ist eine Instanz mit den folgenden Attributen:

· errorCode

· message

Klasse: LoaderServError

Das Kommando ist gescheitert.

Der Wert der Exception ist eine Instanz mit den folgenden Attributen:

· errorCode (Fehlernummer des Loader)

· message (Fehlertext des Loader)

· sqlCode (SQL-Fehlernummer bei Scheitern einer SQL-Anweisung, sonst 0)

· sqlMessage (SQL-Fehlertext bei Scheitern einer SQL-Anweisung, sonst 0)


Python: Beispiel Nr. 1 (MaxDB: Loader)

Python: Beispiel Nr. 1

Beispiel für Aufruf des Loader mit Python-Skript

Aufbau eine Python-Moduls mit Verweis auf die Python-Libraries
Parsen der Aufrufargumente

# Verweis auf Python-Libraries
# ----------------------------

import sys
import loader

# Parsen der Aufrufargumente
# --------------------------

user_name = sys.argv [1]
password = sys.argv [2]
database_name = sys.argv [3]
data_path = sys.argv[4]
server_node = ''


Python: Beispiel Nr. 2 (MaxDB: Loader)

Python: Beispiel Nr. 2

Beispiel für Aufruf des Loader mit Python-Skript

Aufbau einer Datenbanksitzung mit dem Loader
Anmelden an die Datenbankinstanz
Abmelden

# Verweis auf Python-Libraries
# ----------------------------

import sys
import loader

# Parsen der Aufrufargumente
# --------------------------

user_name = sys.argv [1]
password = sys.argv [2]
database_name = sys.argv [3]
data_path = sys.argv[4]
server_node = ''

# Aufbau einer Datenbanksitzung zum Loader
# ------------------------------------------------------

session = loader.Loader (server_node, database_name)

# Anmelden an die Datenbankinstanz
# -------------------------------------

session.cmd ('use user %s %s;' % (user_name, password))

# Abmelden
# -------------------------------------

del session


Python: Beispiel Nr. 3 (MaxDB: Loader)

Python: Beispiel Nr. 3

Beispiel für Aufruf des Loader mit Python-Skript

Aufbau einer Datenbanksitzung
Anmelden an die Datenbankinstanz
Abfrage, ob Tabelle existiert durch Abfrage des Fehlercodes
Anlegen einer Tabelle ohne Abfragen des Fehlercodes
Abmelden

# Verweis auf Python-Libraries
# ----------------------------

import sys
import loader

# Parsen der Aufrufargumente
# --------------------------

user_name = sys.argv [1]
password = sys.argv [2]
database_name = sys.argv [3]
data_path = sys.argv[4]
server_node = ''

# Aufbau einer Datenbanksitzung zum Loader
# ------------------------------------------------------

session = loader.Loader (server_node, database_name)

# Anmelden an die Datenbankinstanz
# -------------------------------------

session.cmd ('use user %s %s;' % (user_name, password))

# Abfrage, ob Tabelle existiert, durch Abfragen des Fehlercodes
# Hierzu wird die Methode sql verwendet
# ----------------------------------------------------------

rc = session.sql("EXISTS TABLE CUSTOMER")

If rc!=0

   # Then-Zweig der If-Anweisung muss bei Python eingerückt sein
   # Anlegen der Tabelle CUSTOMER
   # ----------------------------------------------------------

   session.cmd ( """CREATE TABLE customer (
                       cno             FIXED(4),
                       name            CHAR(10) ASCII,
                       zip             CHAR(5)  ASCII,
                       city            CHAR(12) ASCII,
                       PRIMARY KEY (cno) """)

session.cmd ("COMMIT")

# Beenden der Datenbanksitzung
# -------------------------------------

del session


Python: Beispiel Nr. 4 (MaxDB: Loader)

Python: Beispiel Nr. 4

Beispiel für Aufruf des Loader mit Python-Skript

Aufbau einer Datenbanksitzung
Anmelden an die Datenbankinstanz
Anlegen einer Tabelle und Abfragen des Fehlercodes
Laden von Daten in die Tabelle mittels Loader-Kommando/s und Abfragen des Fehlercodes
Abmelden

# Verweis auf Python-Libraries
# ----------------------------

import sys
import loader

# Parsen der Aufrufargumente
# --------------------------

user_name = sys.argv [1]
password = sys.argv [2]
database_name = sys.argv [3]
data_path = sys.argv[4]
server_node = ''

# Aufbau einer Datenbanksitzung zum Loader
# ------------------------------------------------------

session = loader.Loader (server_node, database_name)

# Anmelden an die Datenbankinstanz
# -------------------------------------

session.cmd ('use user %s %s;' % (user_name, password))

# Abfrage, ob Tabelle existiert durch Abrage des Fehlercodes
# hierzu wird die Methode sql verwendet
# ----------------------------------------------------------

rc = session.sql("EXISTS TABLE CUSTOMER")

If rc!=0

   # Then-Zweig der If-Anweisung muss bei Python eingerückt sein
   # Anlegen der Tabelle CUSTOMER
   # ----------------------------------------------------------

   rc = session.sql( """CREATE TABLE customer (
                       cno             FIXED(4),
                       name            CHAR(10) ASCII,
                       zip             CHAR(5)  ASCII,
                       city            CHAR(12) ASCII,
                       PRIMARY KEY (cno) """)

print rc

If rc==0

   # Then-Zweig der If-Anweisung muss bei Python eingerückt sein
   # Laden der Tabelle CUSTOMER
   # ----------------------------------------------------------

   loadrc = session.sql ("""DATALOAD TABLE customer
                            cno       1-4
                            name      6-12
                            zip       14-18
                            city      20-31
                            INFILE %s\customer.dat""" %data_path )
   print loadrc

session.cmd ("COMMIT")

# Beenden der Datenbanksitzung
# -------------------------------------

del session


Python: Beispiel Nr. 5 (MaxDB: Loader)

Python: Beispiel Nr. 5

Beispiel für Aufruf des Loader mit Python-Skript

Wenn ein Kommando zur Laufzeit verändert wird, weil z. B. Benutzereingaben als Teil des Kommandos fungieren, kann es leicht zu Syntaxfehlern kommen.
Die SQL-Methode liefert nur SQL-Fehlercodes. Um Syntaxfehler oder sonstige Loader-Fehler in den Kommandos abzufangen, benötigen Sie Exceptions.

Aufbau einer Datenbanksitzung
Anmelden an die Datenbankinstanz
Laden von Daten in die Tabelle mittels Loader-Kommando/s und Abfangen von Ausnahmen (Exceptions)
Abmelden

# Verweis auf Python-Libraries
# ----------------------------

import sys
import loader

# Parsen der Aufrufargumente
# --------------------------

user_name = sys.argv [1]
password = sys.argv [2]
database_name = sys.argv [3]
data_path = sys.argv[4]
server_node = ''

# Aufbau einer Datenbanksitzung zum Loader
# -----------------------------------------

session = loader.Loader (server_node, database_name)

# Anmelden an die Datenbankinstanz
# -------------------------------------

session.cmd ('use user %s %s;' % (user_name, password))

# Beispiel für die Benutzung des Exception Handlings
# --------------------------------------------------

try:

  loadrc = session.sql ("""DATALOAD TABLE customer
                             cno       1-4
                             name      6-12
                             zip      14-18
                             city     20-31
                             INFILE %s\customer.dat""" %data_path )
  print "'%s'" % loadrc

except loader.LoaderServError, err:

    print 'command failed:', err

# Beenden der Datenbanksitzung
# -------------------------------------

del session


Aufruf mit Java-Schnittstelle des Loader (MaxDB: Loader)

Aufruf mit Java-Schnittstelle des Loader

Der Aufruf des Loader kann mittels Java erfolgen.

Voraussetzungen

Auf dem Rechner ist eine Java-Installation vorhanden.

Zusammen mit dem Programm Loader werden folgende Java-Module ausgeliefert:

com.sap.dbtech.powertoys.Loader

com.sap.dbtech.powertoys.LoaderException

Eine Beschreibung der Module finden Sie im Abschnitt Java-Klassen.


Java-Klassen (MaxDB: Loader)

Java-Klassen

Für den Aufruf des Loader mit Java verwenden Sie folgende Klassen:

· Klasse Loader

· Exception-Klassen


Java: Klasse Loader (MaxDB: Loader)

Java: Klasse Loader

Zusammen mit dem Programm Loader wird folgendes Java-Modul ausgeliefert:

com.sap.dbtech.powertoys.Loader

public class Loader extends java.lang.Object

Mit der Klasse Loader können neue Loader-Objektinstanzen erzeugt werden und SQL-Anweisungen oder Loader-Kommandos ausgeführt werden.

Konstruktor: Loader

public Loader(java.util.Properties properties) throws RTEException

Eine neue Loader-Objektinstanz wird erzeugt. Die Klasse Loader verwendet die folgenden Eigenschaften (properties):

· host: Der Loader wird auf diesem Rechner gestartet.

· dbname: Der Loader wird für die angegebene Datenbankinstanz gestartet.

· dbroot: Der Loader wird für diese Version/in diesem Verzeichnis gestartet.

Methode: cmd

public java.lang.String cmd(java.lang.String cmdString) throws RTEException, LoaderException

Eine SQL-Anweisung oder ein Loader-Kommando (cmdString) wird ausgeführt.

Methode: dbLoader

public static Loader dbloader(java.lang.String host, java.lang.String dbname) throws RTEException

Es wird eine neue Loader-Objektinstanz erzeugt, indem der Rechnername (host) und der Name der Datenbankinstanz (dbname) angegeben werden.

Methode: dbrootLoader

public static Loader dbrootloader(java.lang.String host, java.lang.String dbroot) throws RTEException

Es wird eine neue Loader-Objektinstanz erzeugt, indem der Rechnername (host) und das dbroot-Verzeichnis angegeben werden.

Methode: finalize

public void finalize() throws RTEException

Diese Methode überschreibt die Methode finalize() der Klasse java.lang.Object.

Methode: release

public void release() throws RTEException

Die Loader-Sitzung wird beendet.


Java: Exception-Klassen (MaxDB: Loader)

Java: Exception-Klassen

Zusammen mit dem Programm Loader wird folgendes Java-Modul ausgeliefert:

com.sap.dbtech.powertoys.LoaderException

public class LoaderException extends java.lang.

Wenn ein Loader-Kommando scheitert, wird die Exception des Loader ausgegeben.

Methode: getErrorCode

public int getErrorCode()

Der vom Loader gesetzte Fehlercode wird zurückgegeben.

Methode: getErrorID

public java.lang.String getErrorID()

Die vom Loader gesetzte Fehlernummer wird zurückgegeben.

Methode: toString

public java.lang.String toString()

Die Exception wird als String-Objekt ausgegeben


Syntaxregeln für Loader-Aufruf (MaxDB: Loader)

Syntaxregeln für Loader-Aufruf

Beachten Sie die folgenden allgemeinen Syntaxregeln bei Aufruf des Loader.

Groß- und Kleinschreibung

Es erfolgt keine Unterscheidung zwischen Groß- und Kleinschreibung. Der Loader wandelt alle Namen intern in Großbuchstaben um, es sein denn, Sie setzen Zeichenketten in doppelte Anführungszeichen.

Schlüsselwörter

Sowohl die Schlüsselwörter des Loader als auch die SQL-Schlüsselwörter können als Bezeichnungen für Datenbankobjekte verwendet werden, wenn sie in einfache oder doppelte Anführungszeichen gesetzt werden.


Protokollfunktionen (MaxDB: Loader)

Protokollfunktionen

Der Loader protokolliert seine Aktionen in einer Protokolldatei und in Systemtabellen.

· Protokolldatei

· Systemtabellen

Ein Entladen oder Laden einer Datenbank nimmt je nach Datenvolumen einige Zeit in Anspruch. Der Loader ist in der Lage, im Fall einer Unterbrechung die Aktion wiederaufzusetzen. Dazu werden die Informationen der Systemtabellen ausgewertet.


Protokolldatei (MaxDB: Loader)

Protokolldatei

Eine wesentliche Protokollfunktion des Loader ist das Anlegen und Verwalten einer Protokolldatei.

Beim Starten des Loader wird eine Protokolldatei angelegt bzw. fortgeschrieben. Der Name dieser Protokolldatei ist loader.prt. Die Datei ist im Verzeichnis <independent_data_path>\wrk der Datenbankinstanz abgelegt.

In der Protokolldatei wird folgendes protokolliert:

· Datenbankinstanz- und Benutzername

· Zeitpunkte von Start und Ende des Lade- bzw. Entladevorganges

· alle ausgeführten SQL-Anweisungen

· alle ausgeführten Ladekommandos
- pro Ladekommando die Position der abgewiesenen Eingabesätze im Medium mit Angabe der Fehlerursache
- pro Ladekommando die akkumulierten Zählerstände (eingefügte/geänderte Zeilen und abgewiesene Zeilen)

· alle ausgeführten Entladekommandos
für jedes DATAEXTRACT-Kommando die akkumulierten Zählerstände (Anzahl extrahierter Zeilen und Anzahl Zeilen, die mit Fehlern extrahiert werden)

· eine Meldung, falls der Lauf abgebrochen wurde

Die Protokolldatei ist so aufgebaut, dass Teile daraus ohne großen Aufwand zum Erzeugen einer Kommandodatei verwendet werden können.

Alle Kommentare beginnen in einem neuen Satz mit // * oder // <Buchstabe> und werden vom Loader ignoriert.

Besondere Kommentarzeilen:

// M | Zeile mit Meldungen Es handelt sich um informative Systemmeldungen, wie Anzahl eingefügter und abgelehnter Zeilen, letzte abgeschlossene Transaktion usw.
// E | Zeile mit Fehlermeldungen Damit werden z. B. die beiden Zeilen mit Tabellen- und Positionsangabe sowie Fehlernummer oder Fehlertext bei abgelehnten Zeilen eingeleitet.
// R | Zeile mit REMARK-Kommentar Es handelt sich um die Kommentare, die der Benutzer mit Hilfe des REMARK-Kommandos angegeben hat.


CODEPAGE (MaxDB: Loader)

CODEPAGE

Die Systemtabelle CODEPAGE enthält die vom Loader für die Konvertierung genutzten Konvertierungstabellen.

Tabellenstruktur

CREATE TABLE SYSDBA.CODEPAGE
    (CODEPAGEID CHAR (32)  NOT NULL,
     CODEPAGETABLE CHAR (512) BYTE NOT NULL,
     PRIMARY KEY (CODEPAGEID))

Spalte | Erläuterung
CODEPAGEID | Namen der Code-Pages (z.B. ISO-8859-2)
CODEPAGETABLE | Konvertierungstabelle von ASCII nach UCS2 für die jeweilige Code-Page

Inhalt

Die Systemtabelle CODEPAGE wird vorkonfiguriert. Die Spalte CODEPAGE enthält 27 Einträge bei Ihrer Auslieferung:

ISO-8859-2, ISO-8859-3, ISO-8859-4, ISO-8859-5, ISO-8859-6, ISO-8859-7, ISO-8859-8, ISO-8859-9, ISO-8859-10, ISO-8859-11, ISO-8859-13, ISO-8859-14, ISO-8859-15, ISO-8859-16, WINDOWS-874, WINDOWS-932, WINDOWS-936, WINDOWS-949, WINDOWS-950, WINDOWS-1250, WINDOWS-1251, WINDOWS-1252, WINDOWS-1253, WINDOWS-1254, WINDOWS-1255, WINDOWS-1256, WINDOWS-1257.

Der Vorschlagswert des Loader, die Code-Page ISO-8859-1, ist nicht in der Tabelle enthalten.

Verwendung

Siehe code_page_spec


TRANSFORMATIONMODEL (MaxDB: Loader)

TRANSFORMATIONMODEL

Die Systemtabelle des Loader TRANSFORMATIONMODEL enthält alle Einträge über Transformationen, die sich über mehr als eine Tabelle erstrecken. Nach erfolgreicher Transformation werden diese Einträge in einen Datenstrom entladen oder gelöscht.

TRANSFORMATIONMODEL

PACKAGEGUID | CHAR(24) BYTE | Eindeutige Kennung des Transformationspakets
TASKID | FIXED(6,0) | Kennung der Transformationstask
SERVERNODE | CHAR(32) | Rechnerknoten, auf dem sich die zu transformierende Datenbankinstanz befindet
SERVERDB | CHAR(32) | Name der Datenbankinstanz, die transformiert werden soll
CODETYPE | CHAR(32) | Codetyp der Datenbankinstanz (ASCII | UNICODE)
USERNAME | CHAR(32) | Benutzername
CODEPAGEID | CHAR(32) | Bezeichnung der ASCII-Codepage, die verwendet werden soll
STORAGEDEVICE | CHAR(32) | Externes Speichermedium, das verwendet werden soll
TRANSACTIONSIZE | FIXED(6,0) | Mindestanzahl von Zeilen, die transformiert werden sollen, bevor der Status des Transformationsschritts protokolliert wird
TRANSFORMATION | CHAR(32) | Transformationstyp (EXTRACT | LOAD | UPDATE)
PART | CHAR(32) | Teile des Datenbankkatalogs (ALL | USER | TABLE)
STEPID | FIXED(6,0) | Kennung des Transformationsschritts
OWNER | CHAR(32) | Eigentümer der Tabelle
TABLENAME | CHAR(32) | Tabellenname
TABLETYPE | CHAR(8) | Tabellentyp (TABLE | VIEW | SYNONYM)
CATALOGSTREAMNAME | CHAR(254) | Bezeichnung des CATALOG-Datenstroms
CATALOGSTREAMTYPE | CHAR(32) | Medium des CATALOG-Datenstroms (FILE | PIPE | TAPE)
CATALOGSTREAMEBID | CHAR(32) | Externe Sicherungskennung des CATALOG-Datenstroms
CATALOGSTREAMFORMAT | CHAR(32) | Format des CATALOG-Datenstroms (DDL | XML)
DATASTREAMNAME | CHAR(254) | Bezeichnung des DATA-Datenstroms
DATASTREAMTYPE | CHAR(32) | Medium des DATA-Datenstroms (FILE | PIPE | TAPE)
DATASTREAMEBID | CHAR(32) | Externe Sicherungskennung des DATA-Datenstroms
DATASTREAMFORMAT | CHAR(32) | Format des DATA-Datenstroms (PAGES | RECORDS | COMPRESSED | FORMATTED)
DATASTREAMHEADERBLOCK | FIXED(6,0) | Startposition des Header des DATA-Datenstroms (in 2 GB-Blöcken)
DATASTREAMHEADERPOS | FIXED(10,0) | Startposition des Header des DATA-Datenstroms (in Bytes, weniger als 2 GB)
DATASTREAMDATABLOCK | FIXED(6,0) | Startposition der Daten des DATA-Datenstroms (in 2 GB-Blöcken)
DATASTREAMDATAPOS | FIXED(10,0) | Startposition der Daten des DATA-Datenstroms (in Bytes, weniger als 2 GB)
DATASTREAMTRAILEBLOCK | FIXED(6,0) | Startposition des Trailer des DATA-Datenstroms (in 2 GB-Blöcken)
DATASTREAMTRAILERPOS | FIXED(10,0) | Startposition des Trailer des DATA-Datenstroms (in Bytes, weniger als 2 GB)
EXCLUDE | BOOLEAN | Transformationsschritt wurde ausgeschlossen (TRUE) oder nicht (FALSE)
RESTART | BOOLEAN | Transformationsschritt wurde durchgeführt (TRUE) oder nicht (FALSE)
RESTORE | BOOLEAN | Transformationskommando wurde erzeugt (TRUE) oder nicht (FALSE)
PAGECOUNT | FIXED(10,0) | Anzahl der Seiten, die bei einem Transformationsschritt transformiert wurden
ROWCOUNT | FIXED(10,0) | Anzahl der Zeilen, die bei einem Transformationsschritt transformiert wurden
STARTTIME | TIMESTAMP | Beginn des Transformationsschritts
ENDTIME | TIMESTAMP | Ende des Transformationsschritts
REQUESTTIME | FIXED(15,10) | Gesamte Ausführungszeit einer Kern-Anforderung innerhalb eines Transformationsschritts
RECEIVETIME | FIXED(15,10) | Gesamte Ausführungszeit einer Kern-Antwort innerhalb eines Transformationsschritts
IOTIME | FIXED(15,10) | Gesamte I/O-Zeit innerhalb eines Transformationsschritts
LOGTIME | FIXED(15,10) | Gesamte Zeit, die für die Verwaltung der Aktionen innerhalb eines Transformationsschritts erforderlich ist
SEQ_NO | FIXED(6,0) | Sequenznummer, über die gesplittete GRANT-Anweisungen einander zugeordnet werden können
CMD | CHAR(254) | Autorisierungsanweisung


TRANSFORMATIONMONITOR (MaxDB: Loader)

TRANSFORMATIONMONITOR

Die Systemtabelle TRANSFORMATIONMONITOR des Loader beschreibt den Ressourcenverbrauch einer Transformation.

TRANSFORMATIONMONITOR

PACKAGEGUID | CHAR(24) | Eindeutige Kennung des Transformationspaketes
ROWCOUNT | FLOAT(38) | Anzahl der transformierten Zeilen
TRANSACTIONSIZE | FIXED(6,0) | Mindestanzahl von Zeilen, die transformiert werden sollen, bevor der Status des Transformationsschritts protokolliert wird
SYSTEMDURATION | FLOAT(38) | System-Performance
KERNELDURATION | FLOAT(38) | Kern-Performance
LOADERDURATION | FLOAT(38) | Loader-Performance
DATADURATION | FLOAT(38) | Pager-Performance
LOGDURATION | FLOAT(38) | Gesamte Zeit, die für die Verwaltung der Aktionen innerhalb eines Transformationsschritts erforderlich ist
IODURATION | FLOAT(38) | Gesamte I/O-Zeit innerhalb eines Transformationsschritts


TRANSFORMATIONPACKAGES (MaxDB: Loader)

TRANSFORMATIONPACKAGES

Die Systemtabelle des Loader TRANSFORMATIONPACKAGES enthält alle Schritte einer Transformation für ein Transformationspaket.

TRANSFORMATIONPACKAGES

PACKAGEGUID | CHAR(24) BYTE | Eindeutige Kennung des Transformationspakets
TASKID | FIXED(6,0) | Kennung der Transformationstask
STEPID | FIXED(6,0) | Kennung des Transformationsschritts
OWNER | CHAR(32) | Eigentümer der Tabelle
TABLENAME | CHAR(32) | Tabellenname
EXCLUDE | BOOLEAN | Transformationsschritt wurde ausgeschlossen (TRUE) oder nicht (FALSE)
RESTART | BOOLEAN | Transformationsschritt wurde durchgeführt (TRUE) oder nicht (FALSE)


TRANSFORMATIONRESOURCES (MaxDB: Loader)

TRANSFORMATIONRESOURCES

Die Systemtabelle TRANSFORMATIONRESOURCES des Loader beschreibt die an einer Transformation beteiligten Datenquellen und Datenziele.

TRANSFORMATIONRESOURCES

Spaltenname | Datentyp | Erläuterung
PACKAGEGUID | CHAR(24) BYTE | Eindeutige Kennung des Transformationspakets
SERVERNODE | CHAR(32) | Rechnerknoten, auf dem sich die zu transformierende Datenbankinstanz befindet
SERVERDB | CHAR(32) | Name der Datenbankinstanz, die transformiert werden soll
USERNAME | CHAR(32) | Benutzername
CODEPAGEID | CHAR(32) | Bezeichnung der ASCII-Codepage, die verwendet werden soll
STORAGEDEVICE | CHAR(32) | Externes Speichermedium, das verwendet werden soll
CATALOGSTREAMNAME | CHAR(254) | Bezeichnung des CATALOG-Datenstroms
CATALOGSTREAMTYPE | CHAR(32) | Medium des CATALOG-Datenstroms (FILE | PIPE | TAPE)
CATALOGSTREAMEBID | CHAR(32) | Externe Sicherungskennung des CATALOG-Datenstroms
DATASTREAMNAME | CHAR(254) | Bezeichnung des DATA-Datenstroms
DATASTREAMTYPE | CHAR(32) | Medium des DATA-Datenstroms (FILE | PIPE | TAPE)
DATASTREAMEBID | CHAR(32) | Externe Sicherungskennung des DATA-Datenstroms


TRANSFORMATIONSTATISTICS (MaxDB: Loader)

TRANSFORMATIONSTATISTICS

Die Systemtabelle des Loader TRANSFORMATIONSTATISTICS beschreibt den Ressourcenverbrauch eines Schritts einer Transformation.

TRANSFORMATIONSTATISTICS

PACKAGEGUID | CHAR(24) BYTE | Eindeutige Kennung des Transformationspakets
STEPID | FIXED(6,0) | Aufsteigende Nummer für jedes Transformationspaket
OWNER | CHAR(32) | Eigentümer der Tabelle
TABLENAME | CHAR(32) | Tabellenname
BYTECOUNT | FIXED(11,0) | Größe des DATA-Datenstroms in Bytes
ROWCOUNT | FIXED(10,0) | Anzahl der Tabellenzeilen des DATA-Datenstroms
TRANSACTIONSSIZE | FIXED(6,0) | Mindestanzahl von Zeilen, die transformiert werden sollen, bevor der Status des Transformationsschritts protokolliert wird
SYSTEMTIME | FLOAT(38) | Transformationsperformance
KERNELTIME | FIXED(20,10) | Kern-Performance
LOADERTIME | FLOAT(38) | Loader-Performance
DATATIME | FLOAT(38) | Pager-Performance
LOGTIME | FIXED(15,10) | Gesamte Zeit, die für die Verwaltung der Aktionen innerhalb eines Transformationsschritts erforderlich ist
IOTIME | FIXED(15,10) | Gesamte I/O-Zeit innerhalb eines Transformationsschritts


TRANSFORMATIONSTEPS (MaxDB: Loader)

TRANSFORMATIONSTEPS

Die Systemtabelle TRANSFORMATIONSTEPS des Loader beschreibt eine Transformation auf Tabellenebene.

TRANSFORMATIONSTEPS

PACKAGEGUID | CHAR(24) BYTE | Eindeutige Kennung des Transformationspakets
TRANSFORMATION | FIXED(6,0) | Transformationstyp (EXTRACT | LOAD | UPDATE)
OWNER | CHAR(32) | Eigentümer der Tabelle
TABLENAME | CHAR(32) | Tabellenname
CATALOGSTREAMNAME | CHAR(254) | Bezeichnung des CATALOG-Datenstroms
CATALOGSTREAMFORMAT | CHAR(32) | Format des CATALOG-Datenstroms (DDL | XML)
DATASTREAMNAME | CHAR(254) | Bezeichnung des DATA-Datenstroms
DATASTREAMFORMAT | CHAR(32) | Format des DATA-Datenstroms (PAGES | RECORDS | COMPRESSED | FORMATTED)
DATASTREAMHEADERBLOCK | FIXED(6,0) | Startposition des Header des DATA-Datenstroms (in 2 GB-Blöcken)
DATASTREAMHEADERPOS | FIXED(10,0) | Startposition des Header des DATA-Datenstroms (in Bytes, weniger als 2 GB)
DATASTREAMDATABLOCK | FIXED(6,0) | Startposition der Daten des DATA-Datenstroms (in 2 GB-Blöcken)
DATASTREAMDATAPOS | FIXED(10,0) | Startposition der Daten des DATA-Datenstroms (in Bytes, weniger als 2 GB)
DATASTREAMTRAILERBLOCK | FIXED(6,0) | Startposition des Trailer des DATA-Datenstroms (in 2 GB-Blöcken)
DATASTREAMTRAILERPOS | FIXED(10,0) | Startposition des Trailer des DATA-Datenstroms (in Bytes, weniger als 2 GB)
RESTART | BOOLEAN | Transformationsschritt wurde durchgeführt (TRUE) oder nicht (FALSE)
START | FIXED(10,0) | Anzahl der transformierten Zeilen


Kommandos: Übersicht und Syntaxregeln (MaxDB: Loader)

Kommandos: Übersicht und Syntaxregeln

Ein Kommando des Loader setzt sich aus einem oder mehreren Schlüsselwörtern sowie Argumenten und Optionen zusammen. Die Kommandos werden in Kommandos zum Aufbau einer Datenbanksitzung und Kommandos zum Entladen und Laden unterteilt.

Kommandoübersicht

AUTOCOMMIT
CATALOGEXTRACT
CATALOGLOAD
DATAEXTRACT
DATALOAD
DATAUPDATE
DBEXTRACT
DBLOAD
FASTLOAD

REMARK
 SET
SQLMODE
TABLEEXTRACT
TABLELOAD
USE SERVERDB
USE USER

Syntaxregeln

Syntaxregeln für Kommandos

Schlüsselwörter


AUTOCOMMIT-Kommando (MaxDB: Loader)

AUTOCOMMIT-Kommando

Mit diesem Kommando zum Aufbau einer Datenbanksitzung schalten Sie den AUTOCOMMIT-Modus für eine Datenbanksitzung ein und aus.

Syntax

<autocommit_statement> :: = AUTOCOMMIT ON | AUTOCOMMIT OFF

AUTOCOMMIT ON

Der AUTOCOMMIT-Modus ist eingeschaltet (Vorschlagswert des Loader).

Bei Kommandos zum Laden wird das Einfügen einer bestimmten Anzahl von Datensätzen mit einem COMMIT abgeschlossen. Diese Anzahl von Datensätzen kann vom Benutzer durch das Kommando SET TRANSACTION SIZE festgelegt werden. Beim Entladen von Daten hat dieser Modus keine Bedeutung, da die Tabelleninhalte in der Datenbank nicht verändert werden.

Wenn bei eingeschaltetem AUTOCOMMIT-Modus COMMIT- und ROLLBACK-Anweisungen ausgeführt werden, werden diese vom Loader ignoriert.

Jede SQL-Anweisung wird vom Loader implizit mit einem COMMIT abgeschlossen.

AUTOCOMMIT OFF

Der AUTOCOMMIT-Modus ist ausgeschaltet.

Alle Transaktionen, müssen explizit durch ein COMMIT beendet werden.

Sie haben die Möglichkeit, Kommandos zu Einheiten zusammenfassen, um sie insgesamt abzuschließen oder zurückzusetzen.

Dieser Modus gilt nicht für die Kommandos FASTLOAD, TABLEEXTRACT und TABLELOAD, da dieseKommandos außerhalb des Transaktionskonzeptes der Datenbank ablaufen und daher vom Loader stets implizit mit einem commit abgeschlossen werden.

Bei großen Transaktionen (z.B. viele zu ladende Datensätze) muss der Log-Bereich entsprechend groß sein.


CATALOGEXTRACT-Kommando (MaxDB: Loader)

CATALOGEXTRACT-Kommando

Mit diesem Kommando des Loader können Sie das Entladen des gesamten oder von Teilen des Datenbankkatalogs steuern.

Syntax

<catalogextract_statement> ::= CATALOGEXTRACT <part_spec > <outstream_spec >

Anstelle des Schlüsselworts CATALOGEXTRACT können Sie auch die Schlüsselworte EXTRACT CATALOG verwenden.

Voraussetzungen

Das Kommando CATALOGEXTRACT ALL kann nur vom Datenbanksystemadministrator (SYSDBA-Benutzer) ausgeführt werden.

Verwendung

<part_spec>

· CATALOGEXTRACT ALL
Der Datenstrom <outstream_spec> enthält alle Kommandos zum Aufbau einer Datenbanksitzung und SQL-Anweisungen zur Datendefinition, die für die Definition des vollständigen Datenbankkatalogs erforderlich sind.
Ein Entladen mit externen Sicherungswerkzeugen ist möglich.

· CATALOGEXTRACT USER
Der Datenstrom <outstream_spec> enthält alle Kommandos zum Aufbau einer Datenbanksitzung und SQL-Anweisungen zur Datendefinition, die für die Definition der Teile des Datenbankkatalogs erforderlich sind, die dem angegebenen Benutzer gehören.

· CATALOGEXTRACT TABLE
Die angegebene Tabelle ist eine Basistabelle. Der Benutzer ist Eigentümer dieser Tabelle.
Der Datenstrom <outstream_spec> enthält alle SQL-Anweisungen zur Datendefinition, die für die Definition der Tabelle und der damit verbundenen Objekte des Datenbankkatalogs erforderlich sind.

Datenstrom: <outstream_spec>

Beim Entladen wird der Datenstrom <outstream_spec> für die Datenbankkatalogdefinitionen erzeugt.

Die Systemtabelle TRANSFORMATIONMODEL und weitere Systemtabellen werden gefüllt.

Ergebnis

Die gewünschten Teile des Datenbankkatalogs werden in den Datenstrom <outstream_spec>entladen.

Mit dem korrespondierenden CATALOGLOAD-Kommando können diese Datenbankkatalogobjekte wiederaufgebaut werden.

Fehlerfall

Der Entladevorgang kann nicht erfolgreich beendet werden. In diesem Fall protokolliert der Loader die Fehlerursache in der Protokolldatei.

Die Werte PACKAGEGUID und CLIENTNODE werden ebenfalls in die Protokolldatei geschrieben.


CATALOGLOAD-Kommando (MaxDB: Loader)

CATALOGLOAD-Kommando

Mit diesem Kommando des Loader können Sie das Laden des gesamten oder von Teilen des Datenbankkatalogs steuern.

Syntax

<catalogload_statement> ::= CATALOGLOAD <part_spec > <instream_spec >

Anstelle des Schlüsselworts CATALOGLOAD können Sie auch die Schlüsselworte LOAD CATALOG verwenden.

Voraussetzung

Es wurde ein Datenstrom mit dem CATALOGEXTRACT-Kommando erzeugt.

Das Kommando CATALOGLOAD ALL kann nur vom Datenbanksystemadministrator (SYSDBA-Benutzer) ausgeführt werden.

Verwendung

<part_spec>

· CATALOGLOAD ALL
Der vollständige Datenbankkatalog wird anhand der Kommandos zum Aufbau einer Datenbanksitzung und der SQL-Anweisungen zur Datendefinition aus dem Datenstrom <instream_spec> wiederaufgebaut.
Ein Laden mit externen Sicherungswerkzeugen ist möglich.

· CATALOGLOAD USER
Der Benutzer, der das Kommando CATALOGLOAD USER ausführt, muss denselben Benutzernamen besitzen, wie der Eigentümer der Datenbankkatalogobjekte im Datenstrom <instream_spec>. Die Datenbankkatalogobjekte im Datenstrom werden anhand der Kommandos zum Aufbau einer Datenbanksitzung und der SQL-Anweisungen zur Datendefinition wiederaufgebaut.

· CATALOGLOAD TABLE
Der Benutzer, der das Kommando CATALOGLOAD TABLE ausführt, muss denselben Benutzernamen besitzen, wie der Eigentümer der Datenbankkatalogobjekte im Datenstrom <instream_spec>. Die Datenbankkatalogobjekte im Datenstrom werden anhand der Kommandos zum Aufbau einer Datenbanksitzung und der SQL-Anweisungen zur Datendefinition wiederaufgebaut.

Datenstrom: <instream_spec>

Beim Laden wird der Datenstrom <instream_spec> benötigt.

Wenn Sie den mit dem CATALOGEXTRACT-Kommando erzeugten Datenstrom verwenden wollen, geben Sie diesen Namen an.

Die Systemtabelle TRANSFORMATIONMODEL und weitere Systemtabellen werden gefüllt.

Ergebnis

Die gewünschten Teile des Datenbankkatalogs werden aus dem Datenstrom <instream_spec> in den Datenbankkatalog geladen.

Fehlerfall

Der Ladevorgang kann nicht erfolgreich beendet werden. In diesem Fall protokolliert der Loader die Fehlerursache in der Protokolldatei.

Die Werte PACKAGEGUID und CLIENTNODE werden ebenfalls in die Protokolldatei geschrieben.


DATAEXTRACT-Kommando (MaxDB: Loader)

DATAEXTRACT-Kommando

Mit diesem Kommando des Loader können Sie das Entladen von Anwendungsdaten aus Datenbanktabellen steuern.

Syntax

<dataextract_statement> ::=
DATAEXTRACT <select_expression> [OUTFIELDS] [ <output_column_list> ] <extract_files_spec>
| DATAEXTRACT <restore_spec> TABLE <table_name> [<order_clause>] <extract_files_spec>

Anstelle des Schlüsselworts DATAEXTRACT können Sie auch die Schlüsselworte EXTRACT DATA verwenden.

Voraussetzung

Sie müssen die Zugriffsberechtigung für die zu entladende Tabelle haben.

Für die Ausführung der Variante 2 des DATAEXTRACT-Kommandos müssen Sie auch Eigentümer der Tabelle sein.

Verwendung

Der Loader bietet Ihnen die folgenden Varianten des DATAEXTRACT-Kommandos an.

Variante 1: DATAEXTRACT [OUTFIELDS]

Mit dieser Variante des Kommandos können Sie

· die Spalten der Tabelle festlegen, die entladen werden sollen

· mehrere zu entladende Tabellen miteinander verknüpfen

· eine Sortierreihenfolge für die extrahierten Daten festlegen

DATAEXTRACT cno, name, zip, address from customer
OUTSTREAM 'customer.data'

DATAEXTRACT * from article
OUTFIELDS anr 01-08
bez 09-39
bestand 40-43 INTEGER
min_best 44-45 INTEGER
bestellt 46-49 INTEGER
lieferdatum 50-57
preis 58-65 DECIMAL (2)
gewicht 66-69 REAL
OUTSTREAM 'article.data' FORMATTED

Variante 2: DATAEXTRACT … TABLE

Mit dieser Variante des Kommandos können Sie nur einzelne Tabellen vollständig entladen. Sie entladen dabei alle Anwendungsdaten einer Tabelle in einen Datenstrom und die Tabellendefinition im Datenbankkatalog in einen zweiten Datenstrom. Anhand dieser beiden Datenströme können Sie die entladene Tabelle wieder anlegen und alle Anwendungsdaten vollständig laden.

DATAEXTRACT FOR DATALOAD TABLE article
  OUTSTREAM 'article.command'
  OUTSTREAM 'article.data'

Datenstrom für Definition aus Datenbankkatalog: article.command
Datenstrom für Anwendungsdaten: article.data

Ablauf

Der Loader erzeugt aus den Angaben im DATAEXTRACT-Kommando intern eine SELECT-Anweisung und baut eine Ergebnistabelle auf. Die Daten dieser Ergebnistabelle werden dann entsprechend der Angaben im Kommando in den Zieldatenstrom entladen.

Während der Ausführung eines DATAEXTRACT-Kommandos sind alle Tabellen, aus denen Daten entladen werden sollen, für das Schreiben gesperrt. Damit können andere Benutzer während des Entladens der Daten keine Änderungen an den zu entladenden Tabellen vornehmen.

Ergebnis

Die Daten der zu entladenden Tabellen wurden in den bzw. die Datenströme entladen.

Die Tabellendaten können mit Hilfe eines DATALOAD- und/oder FASTLOAD-Kommandos wieder in die Datenbankinstanz zurückgeladen werden.

Fehlerfall

Der Entladevorgang kann nicht erfolgreich beendet werden. In diesem Fall protokolliert der SAP DB Loader die Anzahl erfolgreich entladener Datensätze in der Protokolldatei.


DATALOAD-Kommando (MaxDB: Loader)

DATALOAD-Kommando

Mit diesem Kommando des Loader können Sie das Laden von Anwendungsdaten steuern.

Syntax

<dataload_statement> ::=
DATALOAD TABLE <table_spec> [<duplicates_clause>] <load_column_spec_mlt> <instream_spec> [< longfile_spec_mlt >]

Anstelle des Schlüsselworts DATALOAD können Sie auch die Schlüsselworte LOAD DATA verwenden.

DATALOAD TABLE sqltravel00.customer
  cno         01-04
  name        06-16
  zip         17-22
  address     23-48
INSTREAM 'customer.data' FORMATTED

DATALOAD TABLE edemo.products
  productid     01-10 CHAR
  productname   11-51 CHAR
  unitinstock   52-55 INTEGER
  unitsonorder  56-59 INTEGER
  unitprice     60-67 DECIMAL (2)
INSTREAM 'products.data' FORMATTED

Weitere Beispiele

Verwendung

Beim DATALOAD-Kommando werden wie beim FASTLOAD-Kommando Daten aus einem Datenstrom gelesen und in die Tabellen einer Datenbankinstanz geschrieben.

Die Abarbeitung von DATALOAD-Kommandos erfolgt bei laufendem Datenbankbetrieb.

Ein DATALOAD-Vorgang dauert insgesamt länger als ein FASTLOAD-Vorgang. Insbesondere das Schreiben der Log-Einträge kann zu Performance-Einbußen führen. Im Fehlerfall können DATALOAD-Einträge rückgängig gemacht werden, da die Log-Einträge ausgewertet werden können.

Voraussetzungen

Die Tabelle ist in der Datenbankinstanz vorhanden. Andernfalls müssen Sie diese vor dem DATALOAD-Kommando anlegen.

Ablauf

Der Loader erzeugt aus einem DATALOAD-Kommando intern eine Massen-INSERT-Anweisung und führt diese aus.

Während des Ladevorganges können alle von diesem DATALOAD-Kommando geänderten Tabellen auch von anderen Benutzern gelesen und geändert werden.

Ergebnis

Die Daten des Datenstroms wurden in die Zieltabelle/n geladen. Alle dadurch in der/den Zieltabelle/n verursachten Änderungen wurden auch in den Log-Bereich der Datenbankinstanz geschrieben.

Fehlerfall

Wenn der Ladevorgang nicht erfolgreich beendet werden kann, protokolliert der Loader die letzte erfolgreich in die Tabelle eingefügte Zeile, die Anzahl eingefügter und die Anzahl abgelehnter Zeilen in der Protokolldatei.


DATAUPDATE-Kommando (MaxDB: Loader)

DATAUPDATE-Kommando

Mit diesem Kommando des Loader können Sie das Aktualisieren einzelner Spaltenwerte von Tabellen steuern.

Syntax

<dataupdate_statement> ::=
DATAUPDATE TABLE <table_spec > <acc_column_spec_mlt > <set_column_spec_mlt > <instream_spec > [<longfile_spec_mlt >]

Anstelle des Schlüsselworts DATAUPDATE können Sie auch die Schlüsselworte UPDATE DATA verwenden.

Voraussetzungen

Die Zieltabelle muss in der Datenbankinstanz vorhanden sein.

Ablauf

Der Loader erzeugt aus einem DATAUPDATE-Kommando intern eine UPDATE-Anweisung und führt diese aus.

Ergebnis

Die einzelnen Zeilenwerte der angegebenen Spalten der Tabelle wurden aktualisiert. Alle dadurch in der/den Zieltabelle/n verursachten Änderungen wurden auch in den Log-Bereich der Datenbankinstanz geschrieben.

Fehlerfall

Wenn während der Ausführung des DATAUPDATE-Kommandos ein Fehler auftritt, bricht der Loader den Vorgang ab und gibt eine Fehlermeldung aus. Es wird eine Protokolldatei geschrieben.


DBEXTRACT-Kommando (MaxDB: Loader)

DBEXTRACT-Kommando

Mit diesem Kommando des Loader können Sie das Entladen aller Anwendungsdaten und der dazugehörigen Datenbankkataloginformationen steuern.

Syntax

<dbextract_statement> ::=
DBEXTRACT [<configurationstream_spec >] <catalogoutstream_spec > <dataoutstream_spec > [<packagestream_spec >] [<restart >]

Anstelle des Schlüsselworts DBEXTRACT können Sie auch die Schlüsselworte EXTRACT DB verwenden.

Voraussetzung

Das DBEXTRACT-Kommando kann nur vom Datenbanksystemadministrator (SYSDBA-Benutzer) ausgeführt werden.

Verwendung

Das DBEXTRACT-Kommando umfasst die Kommandos CATALOGEXTRACT ALL und TABLEEXTRACT ALL. Ein Entladen mit externen Sicherungswerkzeugen ist möglich.

Datenströme: <catalogoutstream_spec> und <dataoutstream_spec>

Beim Entladen werden mindestens zwei Datenströme erzeugt:

· Datenstrom für die Datenbankkatalogdefinitionen <catalogoutstream_spec>

· Datenstrom für die Anwendungsdaten <dataoutstream_spec>

Die Systemtabelle TRANSFORMATIONMODEL und weitere Systemtabellen werden gefüllt.

Tabellen vom Entladen ausschließen: <configurationstream_spec>

· Ohne Angabe des Datenstroms <configurationstream_spec> werden die gesamten Anwendungsdaten entladen.

· Durch die Angabe eines Datenstroms <configurationstream_spec> können aus den Anwendungsdaten <dataoutstream_spec> die Anwendungsdaten ausgewählter Tabellen vom Entladevorgang ausgeschlossen werden. Die Tabellen müssen durch die Angabe ihres Eigentümers und des Tabellennamens im Datenstrom spezifiziert sein.
Die Angabe, welche Tabellen nicht entladen werden sollen, wird in den Systemtabellen abgelegt. Eine Möglichkeit der Anzeige dieser Informationen ist die Anzeige der Systemtabelle TRANSFORMATIONPACKAGES. Die vom Entladen der Anwendungsdaten ausgeschlossenen Tabellen besitzen in der Spalte EXCLUDE den Wert TRUE.

Die Datenbankkatalogeinträge <catalogoutstream_spec> aller Tabellen werden unabhängig von den in <configurationstream_spec> gemachten Einschränkungen immer entladen.

Systemtabelle TRANSFORMATIONPACKAGES entladen: <packagestream_spec>

· Durch die Angabe eines Datenstroms <packagestream_spec> werden alle Einträge der Tabelle TRANSFORMATIONPACKAGES in diesen Datenstrom entladen. Sie sollten diese Möglichkeit nutzen, um den Entladevorgang gut zu protokollieren.

· Ohne Angabe des Datenstroms <packagestream_spec> wird die Systemtabelle TRANSFORMATIONPACKAGES nicht entladen.

Ergebnis

Die Anwendungsdaten und der Datenbankkatalog werden in die Datenströme <dataoutstream_spec> und <catalogoutstream_spec> entladen.

Gegebenenfalls werden alle Einträge der Tabelle TRANSFORMATIONPACKAGES in den Datenstrom <packagestream_spec> entladen.

Mit dem korrespondierenden DBLOAD-Kommando können der Datenbankkatalog und die Anwendungsdaten wiederaufgebaut werden.

Fehlerfall

Der Entladevorgang kann nicht erfolgreich beendet werden. In diesem Fall protokolliert der Loader die Fehlerursache in der Protokolldatei.

Die Werte PACKAGEGUID und CLIENTNODE werden ebenfalls in die Protokolldatei geschrieben. Die PACKAGEGUID ist für ein eventuelles Wiederaufsetzen des Entladevorgangs erforderlich.


DBLOAD-Kommando (MaxDB: Loader)

DBLOAD-Kommando

Mit diesem Kommando des Loader können Sie das Laden aller Anwendungsdaten und der dazugehörigen Datenbankkataloginformationen steuern.

Syntax

<dbload_statement> ::=
DBLOAD [<configurationstream_spec>] <cataloginstream_spec> <datainstream_spec> [<packagestream_spec>] [<restart>]

Anstelle des Schlüsselworts DBLOAD können Sie auch die Schlüsselworte LOAD DB verwenden.

Voraussetzung

Das DBLOAD-Kommando kann nur vom Datenbanksystemadministrator (SYSDBA-Benutzer) ausgeführt werden.

Sie haben den Datenbankkatalog und seinen Inhalt mit dem DBEXTRACT-Kommando entladen.

Verwendung

Das DBLOAD-Kommando umfasst die Kommandos CATALOGLOAD ALL und TABLELOAD ALL.

Ein Laden mit externen Sicherungswerkzeugen ist möglich.

Datenströme: <cataloginstream_spec> und <datainstream_spec>

Beim Laden werden mindestens zwei Datenströme benötigt:

· Datenstrom für die Datenbankkatalogdefinitionen <cataloginstream_spec>

· Datenstrom für die Anwendungsdaten <datainstream_spec>

Wenn Sie die mit dem DBEXTRACT-Kommando erzeugten Datenströme verwenden wollen, geben Sie diese Namen an.

Die Systemtabelle TRANSFORMATIONMODEL und weitere Systemtabellen werden gefüllt.

Tabellen vom Laden ausschließen: <configurationstream_spec>

· Ohne Angabe des Datenstroms <configurationstream_spec> werden alle in den Datenströmen <cataloginstream_spec> und <datainstream_spec> enthaltenen Daten geladen.

· Durch die Angabe eines Datenstroms <configurationstream_spec> können aus den Anwendungsdaten <datainstream_spec> die Anwendungsdaten ausgewählter Tabellen vom Ladevorgang ausgeschlossen werden. Die Tabellen müssen durch die Angabe ihres Eigentümers und des Tabellennamens im Datenstrom spezifiziert sein.
Die Angabe, welche Tabellen nicht geladen werden sollen, wird in den Systemtabellen abgelegt. Eine Möglichkeit der Anzeige dieser Informationen ist die Anzeige der Systemtabelle TRANSFORMATIONPACKAGES. Die vom Laden der Anwendungsdaten ausgeschlossenen Tabellen besitzen in der Spalte EXCLUDE den Wert TRUE.

Die Datenbankkatalogeinträge <cataloginstream_spec> aller Tabellen werden unabhängig von den in <configurationstream_spec> gemachten Einschränkungen immer geladen.

Systemtabelle TRANSFORMATIONPACKAGES entladen: <packagestream_spec>

· Durch die Angabe eines Datenstroms <packagestream_spec> werden alle Einträge der Tabelle TRANSFORMATIONPACKAGES in diesen Datenstrom entladen. Sie sollten diese Möglichkeit nutzen, um den Ladevorgang gut zu protokollieren.

· Ohne Angabe des Datenstroms <packagestream_spec> wird die Systemtabelle TRANSFORMATIONPACKAGES nicht entladen.

Ergebnis

Die Anwendungsdaten und die Datenbankkatalogdefinitionen werden anhand der Datenströme <datainstream_spec> und <cataloginstream_spec> geladen.

Gegebenenfalls werden alle Einträge der Tabelle TRANSFORMATIONPACKAGES in den Datenstrom <packagestream_spec> entladen.

Fehlerfall

Der Ladevorgang kann nicht erfolgreich beendet werden. In diesem Fall protokolliert der Loader die Fehlerursache in der Protokolldatei.

Die Werte PACKAGEGUID und CLIENTNODE werden ebenfalls in die Protokolldatei geschrieben. Die PACKAGEGUID ist für ein eventuelles Wiederaufsetzen des Entladevorgangs erforderlich.


FASTLOAD-Kommando (MaxDB: Loader)

FASTLOAD-Kommando

Mit diesem Kommando des Loader können Sie das Laden von Anwendungsdaten in die angegebene Tabelle steuern.

Syntax

<fastload_statement> ::=
FASTLOAD [<usage_spec>] TABLE < table_spec > [<load_column_spec_mlt>] <instream_spec>

FASTLOAD with 100 % USAGE
TABLE sqltravel00.customer
  cno           1
  name          2
  zip           3
  address       4
INSTREAM 'customer.data'

Verwendung

Die Abarbeitung von FASTLOAD-Kommandos erfolgt bei laufendem Datenbankbetrieb.

Beim Laden von Anwendungsdaten mittels FASTLOAD werden die Daten direkt in die Seiten der Datenbankinstanz eingetragen. Der Ladevorgang ist schneller als beim DATALOAD-Kommando. Da dabei jedoch keine Log-Einträge geschrieben werden, müssen Sie die neuen Daten nach Abschluss des Ladevorgangs sichern. Dabei können entweder die entsprechenden Seiten (inkrementelle Datensicherung) oder die gesamten Daten (vollständige Datensicherung) gesichert werden. Solange Sie die neuen Anwendungsdaten nicht gesichert haben, bleibt die entsprechende Tabelle schreibgeschützt.

Voraussetzungen

· Die Zieltabelle ist in der Datenbankinstanz vorhanden. Andernfalls kann die Tabelle durch eine entsprechende SQL-Anweisung vor Ausführen des FASTLOAD-Kommandos angelegt werden.

· Sie haben sich mit dem Benutzer am Loader angemeldet, der Eigentümer der Zieltabelle ist.

· Die Daten im einzulesenden Datenstrom sind in der Reihenfolge des Primärschlüssels aufsteigend sortiert.

· Für die Zieltabelle existiert kein Index.

· Wenn die Zieltabelle bereits Anwendungsdaten enthält, können nur solche Datensätze eingefügt werden, deren Schlüsselwerte größer sind als der größte Schlüsselwert der Zieltabelle.

· Die zu ladenden Daten enthalten keine LONG-Spalten.

Ablauf

Beim Starten eines FASTLOAD-Kommandos wird die Zieltabelle des Ladevorgangs in der Datenbankinstanz für das Schreiben durch andere Benutzer gesperrt. Das Lesen der Zieltabelle ist weiterhin möglich.

In allen anderen Tabellen ist uneingeschränktes Lesen und Schreiben möglich.

Nach der Abarbeitung eines FASTLOAD-Kommandos können vom selben Benutzer weitere mit FASTLOAD ausgelöste Schreiboperationen auf dieser Tabelle ausgeführt werden. Nach dem Abschluß des Ladevorgangs mit FASTLOAD ist diese Tabelle für alle Benutzer nur zum Lesen frei.

Erst nach dem anschließenden Sichern der Datenbankinstanz ist diese Tabelle wieder für Schreibvorgänge von anderen Benutzern freigegeben.

Ergebnis

Die Daten der Quelltabelle wurden aus dem Datenstrom in die Zieltabelle geladen.

Fehlerfall

Wenn der Ladevorgang nicht erfolgreich beendet werden kann, protokolliert der Loader die letzte erfolgreich in die Tabelle eingefügte Zeile, die Anzahl eingefügter und die Anzahl abgelehnter Zeilen in der Protokolldatei.


REMARK-Kommando (MaxDB: Loader)

REMARK-Kommando

Mit diesem Kommando des Loader können Sie Kommentare in die Loader-Protokolldatei schreiben.

Syntax

<remark_statement> ::= REMARK ″<valRemark>″

valRemark

Kommentar

Siehe auch:

Protokolldatei


SET-Kommando (MaxDB: Loader)

SET-Kommando

Mit diesem Kommando des Loader zum Aufbau einer Datenbanksitzung können Sie viele Eigenschaften einer Datenbanksitzung festlegen.

Syntax

<set_statement> ::=
  SET BACKUPTOOL <BACKINT|NETWORKER|TSM>
| SET <bool_spec>
| SET CODETYPE < standard_code_spec >
| SET <code_page_spec>
| SET COMPRESSED ′/<s>/<d>/′
| SET DATE < standard_date_mask >
| SET LANGUAGE ′<ENG|DEU>′
| SET MAXERRORCOUNT <valMAXERRORCOUNT>
| SET < null_spec >
| SET <number_spec>
| SET TIME < s tandard_time_mask >
| SET TIMESTAMP < standard_timestamp_mask >
| SET TRANSACTION SIZE <valTRANSACTION_SIZE>

BACKUPTOOL <BACKINT|NETWORKER|TSM>

Festlegung, welches externe Sicherungswerkzeug verwendet wird (siehe auch: mediumtype_spec)

COMPRESSED ′ /<s>/<d>/′

Zeichen, die im Format COMPRESSED verwendet werden sollen, um Daten voneinander zu trennen bzw. in Markierungen einzuschließen, aktueller Wert kann auch für einzelne Kommandos geändert werden

<s> Zeichen, mit dem Datenfelder voneinander getrennt werden, Vorschlagswert: Komma, Wert muss genau ein Zeichen lang sein und darf nicht leer sein

<d> Zeichen, mit dem Daten in Markierungen eingeschlossen werden, Vorschlagswert: doppelte Anführungszeichen, Wert kann genau ein Zeichen lang oder leer sein,
wenn er leer ist, ist kein Delimiter definiert

LANGUAGE ′< ENG|DEU>′

Sprache, in der Meldungen der Datenbankinstanz und des Loader ausgegeben werden
ENG : Englisch, DEU : Deutsch

MAXERRORCOUNT <valMAXERRORCOUNT>

Festlegung, wie viele Fehler der Loader bei der Ausführung eines einzelnen Kommandos akzeptiert, bevor er die Bearbeitung des Kommandos abbricht
dieser Wert gilt während einer gesamten Datenbanksitzung oder bis er durch ein weiteres SET MAXERRORCOUNT-Kommando überschrieben wird

TRANSACTION SIZE <valTRANSACTION_SIZE>

Festlegung, nach wievielen Datensätzen beim Einfügen von Daten ein COMMIT durchgeführt wird

Verwendung

Sie haben die Möglichkeit, voreingestellte Werte der Steuerparameter des Loader Ihren eigenen Anforderungen anzupassen.

Die neu eingestellten Werte gelten nur für die jeweilige Datenbanksitzung und müssen für die nachfolgenden Sitzungen bei Bedarf wieder neu eingestellt werden.


SQLMODE-Kommando (MaxDB: Loader)

SQLMODE-Kommando

Mit diesem Kommando des Loader können Sie beim Aufbau einer Datenbanksitzung den SQL-Modus der Datenbankinstanz angeben.

Syntax

<sql_mode_statement> ::= SQLMODE <sql_mode >

Verwendung

Die vom Loader auszuführenden Kommandos zum Entladen und Laden und die SQL-Anweisungen werden entsprechend des eingestellten SQL-Modus interpretiert.

Der festgelegte SQL-Modus gilt solange, bis er mit Hilfe dieses Kommandos wieder geändert wird. Wenn Sie einen ungültigen SQL-Modus eingeben, verwendet der Loader den systeminternen SQL-Modus der Datenbankinstanz.


TABLEEXTRACT-Kommando (MaxDB: Loader)

TABLEEXTRACT-Kommando

Mit diesem Kommando des Loader können Sie das Entladen von Datenbanktabellen steuern.

Syntax

<tableextract_statement> ::=
TABLEEXTRACT <part_spec > [<configurationstream_spec >] <dataoutstream_spec > [<packagestream_spec >] [<restart >]

Anstelle des Schlüsselworts TABLEEXTRACT können Sie auch die Schlüsselworte EXTRACT TABLE verwenden.

Voraussetzungen

Im Fall von TABLEEXTRACT TABLE muss die Quelltabelle in der Datenbankinstanz vorhanden sein.
Das Kommando TABLEEXTRACT ALL kann nur vom Datenbanksystemadministrator (SYSDBA-Benutzer) ausgeführt werden.

Verwendung

· Sie können die Anwendungsdaten (einschließlich LONG-Werte) der angegebenen Datenbanktabellen in Datenströme entladen. Das Format des Datenstroms muss jeweils PAGES sein.

· Sie können die Anwendungsdaten (einschließlich LONG-Werte) und die Datenbankkatalogdefinitionen der angegebenen Datenbanktabellen in Datenströme entladen. Das Format der Datenstroms muss jeweils RECORDS sein.

Die Datenströme dürfen nicht verändert werden.

Eine Tabelle ist während des Entladens in den Datenstrom schreibgeschützt.

<part_spec>

· TABLEEXTRACT ALL
Der Datenstrom <dataoutstream_spec>enthält die Anwendungsdaten aller Tabelle.

· TABLEEXTRACT USER
Der Datenstrom <dataoutstream_spec>enthält die Anwendungsdaten der Tabellen, die dem angegebenen Benutzer gehören.

· TABLEEXTRACT TABLE
Die angegebene Tabelle ist eine Basistabelle. Der Benutzer ist Eigentümer dieser Tabelle.
Der Datenstrom <dataoutstream_spec>enthält die Anwendungsdaten der angegebenen Tabelle.

Datenstrom: <dataoutstream_spec>

Beim Entladen werden die Datenströme <dataoutstream_spec> erzeugt.

Bei der Bearbeitung der Kommandos TABLEEXTRACT ALL und TABLEEXTRACT USER erzeugt der Loader je nach Größe der zu entladenden Tabellen einen oder mehrere Datenströme, die jeweils die Anwendungsdaten einer oder mehrerer Tabellen enthalten können. Die vom Loader vorgegebene maximale Größe eines einzelnen Datenstroms beträgt 1 GB.

Die Mediennamen für die Datenströme werden mit Hilfe des im Kommando vorgegebenen Namens erzeugt, indem an den Namen eine vierstellige Erweiterung der Form 0001 angefügt wird. Die maximale Anzahl von Medien pro TABLEEXTRACT ist damit auf 9999 festgelegt.

Die Systemtabelle TRANSFORMATIONMODEL und weitere Systemtabellen werden gefüllt.

Tabellen vom Entladen ausschließen: <configurationstream_spec>

· Ohne Angabe des Datenstroms <configurationstream_spec> werden alle spezifizierten Tabellen entladen.

· Durch die Angabe eines Datenstroms <configurationstream_spec> können aus den Anwendungsdaten <dataoutstream_spec> die Anwendungsdaten ausgewählter Tabellen vom Entladevorgang ausgeschlossen werden. Die Tabellen müssen durch die Angabe ihres Eigentümers und des Tabellennamens im Datenstrom spezifiziert sein.
Die Angabe, welche Tabellen nicht entladen werden sollen, wird in den Systemtabellen abgelegt. Eine Möglichkeit der Anzeige dieser Informationen ist die Anzeige der Systemtabelle TRANSFORMATIONPACKAGES. Die vom Entladen der Anwendungsdaten ausgeschlossenen Tabellen besitzen in der Spalte EXCLUDE den Wert TRUE.

Systemtabelle TRANSFORMATIONPACKAGES entladen: <packagestream_spec>

· Durch die Angabe eines Datenstroms <packagestream_spec> werden alle Einträge der Tabelle TRANSFORMATIONPACKAGES in diesen Datenstrom entladen. Sie sollten diese Möglichkeit nutzen, um den Entladevorgang gut zu protokollieren.

· Ohne Angabe des Datenstroms <packagestream_spec> wird die Systemtabelle TRANSFORMATIONPACKAGES nicht entladen.

Ergebnis

Die spezifizierten Tabellen werden in die Datenströme <dataoutstream_spec> entladen.

Gegebenenfalls werden alle Einträge der Tabelle TRANSFORMATIONPACKAGES in den Datenstrom <packagestream_spec> entladen.

Mit dem korrespondierenden TABLELOAD-Kommando können Sie die Tabellen wieder laden.

Fehlerfall

Der Entladevorgang kann nicht erfolgreich beendet werden. In diesem Fall protokolliert der Loader die Fehlerursache in der Protokolldatei.

Die Werte PACKAGEGUID und CLIENTNODE werden ebenfalls in die Protokolldatei geschrieben. Die PACKAGEGUID ist für ein eventuelles Wiederaufsetzen des Entladevorgangs erforderlich.


TABLELOAD-Kommando (MaxDB: Loader)

TABLELOAD-Kommando

Mit diesem Kommando des Loader können Sie das Laden von Datenbanktabellen steuern.

Syntax

<tableload_statement> ::=
TABLELOAD <part_spec> [<configurationstream_spec>] <datainstream_spec> [<packagestream_spec>] [<restart>]

Anstelle des Schlüsselworts TABLELOAD können auch die Schlüsselworte LOAD TABLE verwendet werden.

Voraussetzungen

Das Kommando TABLELOAD ALL kann nur vom Datenbanksystemadministrator (SYSDBA-Benutzer) ausgeführt werden.

Sie haben die Datenbanktabellen mit dem TABLEEXTRACT-Kommando entladen.

Die Format der dabei erzeugten Datenströme (PAGES oder RECORDS) darf nicht verändert werden. Wenn die Datenströme das Format RECORDS haben, müssen Sie die erforderlichen Datenbanktabellendefinitionen im Datenbankkatalog mit Hilfe der entsprechenden Datendefinitionsanweisungen erzeugen.

Die Zieltabellen müssen leer sein. Sind die Tabellen nicht leer, versucht der Loader den Inhalt der Tabellen zu löschen.

Verwendung

<part_spec>

· TABLELOAD ALL
Die Datenströme <datainstream_spec> enthalten die Anwendungsdaten aller Tabelle.

· TABLELOAD USER
Der Datenströme <datainstream_spec> enthalten die Anwendungsdaten der Tabellen, die dem aktuellen Benutzer gehören.

· TABLELOAD TABLE
Die angegebene Tabelle ist eine Basistabelle. Der Benutzer ist Eigentümer dieser Tabelle.
Der Datenstrom <datainstream_spec> enthält die Anwendungsdaten der angegebenen Tabelle.

Datenströme <datainstream_spec>

Sie können Datenbanktabellen anhand der mit dem TABLEEXTRACT-Kommando erstellten Datenströme wiederherstellen. Wenn Sie die mit dem TABLEEXTRACT-Kommando erzeugten Datenströme verwenden wollen, geben Sie diese Namen als <datainstream_spec> an.

Die Systemtabelle TRANSFORMATIONMODEL und weitere Systemtabellen werden gefüllt.

Ablauf

Der Loader stellt die Tabelle in der folgenden Reihenfolge wieder her:

1. Die Datenbankkataloginformationen werden angepasst (Fall 1) oder neu angelegt (Fall 2).

2. Die Anwendungsdaten (einschließlich LONG-Werte) werden geladen

3. Wenn Indizes auf der Quelltabelle existierten, werden diese angelegt.

Bei einem Ladevorgang mit TABLELOAD werden keine Log-Einträge geschrieben.

Fall 1:
Die wiederherzustellende Tabelle ist in der Datenbankinstanz vorhanden

Der Loader kann folgende Unterschiede bei den Datenbankkataloginformationen zwischen Quell- und Zieltabellen anpassen:

· Tabellenname und Spaltennamen von Quelltabelle und Zieltabelle
Es werden der Tabellenname und die Spaltennamen der Quelltabelle übernommen.

· Unterschiedlich definierte Vorschlagswerte (Defaults)
Es werden die Vorschlagswertdefinitionen der Quelltabelle übernommen und die der Zieltabelle gelöscht.

· Unterschiedlich definierte Indizes
Es werden die Indexdefinitionen der Quelltabelle übernommen und die der Zieltabelle gelöscht.

· Unterschiedlich definierte Integritätsbedingungen (Constraints)
Es werden die Integritätsbedingungen der Quelltabelle übernommen und die der Zieltabelle gelöscht.

Unterscheiden sich Quell- und Zieltabelle bei der Definition des Typs und der Länge der einzelnen Spalten, wird der TABLELOAD-Vorgang abgebrochen.

Fall 2:
Die wiederherzustellende Tabelle ist in der Datenbankinstanz nicht vorhanden

· Wenn die Datenströme das Format PAGES haben, wird die Tabelle anhand der vorhandenen Datenbankkataloginformationen neu angelegt.

· Wenn die Datenströme das Format RECORDS haben, müssen Sie die erforderlichen Datenbanktabellendefinitionen im Datenbankkatalog mit Hilfe der entsprechenden Datendefinitionsanweisungen erzeugen.

Tabellen vom Laden ausschließen: <configurationstream_spec>

· Ohne Angabe des Datenstroms <configurationstream_spec> werden alle in den Datenströmen <datainstream_spec> enthaltenen Daten geladen.

· Durch die Angabe eines Datenstroms <configurationstream_spec> können aus den Anwendungsdaten <datainstream_spec> die Anwendungsdaten ausgewählter Tabellen vom Ladevorgang ausgeschlossen werden. Die Tabellen müssen durch die Angabe ihres Eigentümers und des Tabellennamens im Datenstrom spezifiziert sein.
Die Angabe, welche Tabellen nicht geladen werden sollen, wird in den Systemtabellen abgelegt. Eine Möglichkeit der Anzeige dieser Informationen ist die Anzeige der Systemtabelle TRANSFORMATIONPACKAGES. Die vom Laden der Anwendungsdaten ausgeschlossenen Tabellen besitzen in der Spalte EXCLUDE den Wert TRUE.

Systemtabellen entladen: <packagestream_spec>

· Durch die Angabe eines Datenstroms <packagestream_spec> werden alle Einträge der Tabelle TRANSFORMATIONPACKAGES in diesen Datenstrom entladen. Sie sollten diese Möglichkeit nutzen, um den Ladevorgang gut zu protokollieren.

· Ohne Angabe des Datenstroms <packagestream_spec> wird die Systemtabelle TRANSFORMATIONPACKAGES nicht entladen.

Ergebnis

Die Datenbanktabellen werden anhand der Datenströme <datainstream_spec> geladen.

Gegebenenfalls werden alle Einträge der Tabelle TRANSFORMATIONPACKAGES in den Datenstrom <packagestream_spec> entladen.

Die Tabelle ist während des Wiederherstellens und nach erfolgreichem Wiederherstellen schreibgeschützt. Um den Schreibschutz aufzuheben, sichern Sie die Datenbankinstanz nachdem die Tabelle wiederhergestellt wurde.

Fehlerfall

Der Ladevorgang kann nicht erfolgreich beendet werden. In diesem Fall protokolliert der Loader die Fehlerursache in der Protokolldatei.

Die Werte PACKAGEGUID und CLIENTNODE werden ebenfalls in die Protokolldatei geschrieben. Die PACKAGEGUID ist für ein eventuelles Wiederaufsetzen des Entladevorgangs erforderlich.


USE SERVERDB-Kommando (MaxDB: Loader)

USE SERVERDB-Kommando

Mit diesem Kommando des Loader zum Aufbau einer Datenbanksitzung können Sie die Verbindung zu einer anderen Datenbankinstanz aufbauen.

Syntax

<use_serverdb_statement> ::= USE <database_name_statement >

Voraussetzungen

Auf der neuen Datenbankinstanz muss ein Benutzer mit dem gleichen Namen und Kennwort existieren.

Verwendung

Sie wechseln zu einer anderen Datenbankinstanz, ohne dass der Loader verlassen werden muss. Die Verbindung zur bisherigen Datenbankinstanz wird beendet und die neue Verbindung zu der angegebenen Datenbankinstanz aufgebaut.

Alle nachfolgenden Kommandos werden vom Loader auf diese Datenbankinstanz bezogen.

USE SERVERDB MK1 ON DBHost;


USE USER-Kommando (MaxDB: Loader)

USE USER-Kommando

Mit diesem Kommando des Loader zum Aufbau einer Datenbanksitzung wird eine Verbindung mit den angegebenen Informationen aufgebaut.

Syntax

<use_user_statement> ::= USE <user_statement >

Verwendung

Die bestehende Verbindung des Loader zur Datenbankinstanz wird unterbrochen und eine neue Verbindung mit den angegebenen Parametern aufgebaut.

Wenn Sie unter <user_statement> keine Datenbankinstanznamen angeben, wird die neue Verbindung zu derjenigen Datenbankinstanz hergestellt, mit der vor dem USE USER-Kommando gearbeitet wurde.


Syntaxregeln für Kommandos (MaxDB: Loader)

Syntaxregeln für Kommandos

Die für die Kommandos des Loader verwendete Syntaxform ist die Backus-Naur-Form (BNF) mit folgenden Konventionen:

<Regelname> ::= <Regelteil>

In spitze Klammern gesetzte Begriffe stellen syntaktische Einheiten dar. Jeder Regelname muß durch einen Regelteil aufgelöst werden.

Ein Regelteil ist eine beliebige Kombination von Regeln und Endsymbolen. Endsymbole sind Zahlen, Literale oder Schlüsselwörter und werden nicht weiter aufgelöst.

Wenn Regelteile in eckige Klammern gesetzt sind, weist dies auf eine optionale Benutzereingabe hin.

Die in den Kommandos verwendeten Schlüsselwörter sind zur Verdeutlichung mit Großbuchstaben geschrieben. Sie können vom Benutzer in Groß- oder in Kleinbuchstaben angegeben werden.

Leerzeichen in Kommandos sind erlaubt. Sie werden vom Loader nicht interpretiert.

Mit val eingeleitete Endsysmbole stehen für Werte, die vom Benutzer anzugeben sind. Dabei ist zu beachten, dass Werte für 'valLITERAL' - wie in den Syntaxregeln angegeben - grundsätzlich in einfache Anführungszeichen zu setzen sind.

Wenn Sie Schlüsselwörter als Namen von Spalten, Tabellen oder Benutzern verwenden, müssen diese in doppelte Anführungszeichen eingeschlossen werden.

Sie finden nachfolgend eine alphabetische geordnete Liste aller Syntaxregeln, die für die in der Übersicht genannten Kommandos verwendet werden. Die Syntaxregeln können aber auch in folgende Bereiche eingeteilt werden:

· Syntaxregeln zum Sitzungsaufbau


acc_column_spec (MaxDB: Loader)

acc_column_spec

Syntaxregel zur Spaltenbeschreibung

Syntax

<acc_column_spec> ::= <key_column_spec> | <simple_column_spec>

Verwendung

Sie definieren mit dieser Syntaxregel in einem DATAUPDATE-Kommando, ob die Qualifikationsspalten Schlüsselspalten oder Nicht-Schlüsselspalten der Zieltabelle sind.

Wenn Schlüsselspalten als Qualifikationsspalten verwendet werden (key_column_spec), dann wird für jeden Datensatz des Datenstroms jene Zeile der Zieltabelle aktualisiert, die dem angegebenen Schlüssel entspricht.

DATAUPDATE TABLE customer
KEY cno 01-04
SET city 05-16
INSTREAM 'customer.data' FORMATTED

Wenn Nicht-Schlüsselspalten als Qualifikationsspalten verwendet werden (simple_column_spec), dann wird für jeden Datensatz des Datenstroms jede Zeile der Zieltabelle aktualisiert, die mit dem Wert/ den Werten der Qualifikationsspalte/n dieses Datensatzes identifiziert wird.

DATAUPDATE TABLE customer
 city 1
SET zip 2
INSTREAM 'customer.data'


acc_column_spec_mlt (MaxDB: Loader)

acc_column_spec_mlt

Syntaxregel zur Spaltenbeschreibung

Syntax

<acc_column_spec_mlt> ::= <acc_column_spec> <acc_column_spec_mlt>

Verwendung

Sie definieren mit dieser Syntaxregel in einem DATAUPDATE-Kommando die Qualifikationsspalten.

Als Qualifikationsspalten können sowohl Schlüssel- als auch Nicht-Schlüsselspalten dienen.

Die Qualifikationsspalten müssen im DATAUPDATE-Kommando vor den Zielspalten (set_column_spec) aufgeführt werden.


bool_spec (MaxDB: Loader)

bool_spec

Syntaxregel zur Beschreibung des Datenstroms

Syntax

<bool_spec> ::= BOOLEAN <valVALUE_FOR_TRUE>/<valVALUE_FOR_FALSE>

valVALUE_FOR_TRUE | definiert die Zeichenkette für Werte, die wahr sind
valVALUE_FOR_FALSE | definiert die Zeichenkette für Werte, die falsch sind

Der Vorschlagswert des Loader ist TRUE/FALSE.

Die Zeichenketten dürfen höchstens 10 Zeichen lang sein.

Verwendung

Sie legen mit dieser Syntaxregel die Zeichenkette fest, mit der aus der Datenbankinstanz entladene bzw. in eine Datenbankinstanz zu ladende BOOLEAN-Werte in Datenströmen repräsentiert werden.

Sie haben die Möglichkeit, auch für einzelne Kommandos den aktuellen Wert zu ändern.

Siehe auch:

Datenformat


cataloginstream_spec (MaxDB: Loader)

cataloginstream_spec

Syntaxregel zur Beschreibung des Datenstroms

Syntax

<cataloginstream_spec> ::= CATALOG < instream_spec >


catalogoutstream_spec (MaxDB: Loader)

catalogoutstream_spec

Syntaxregel zur Beschreibung des Datenstroms

Syntax

<catalogoutstream_spec> ::= CATALOG < outstream_spec >


code_page_spec (MaxDB: Loader)

code_page_spec

Syntaxregeln zur Beschreibung des Datenstroms

Syntax

<code_page_spec> ::= CODEPAGE [<valCODEPAGE_NAME>]

valCODEPAGE_NAME

Name der Code-Page
Vorschlagswert: ISO-8859-1

Die Angabe eines leeren Wertes setzt eine einmal gesetzte Code-Page auf den Vorschlagswert zurück.

Verwendung

Sie legen fest, welche Code-Page bei einer Konvertierung von CHAR-Daten von ASCII nach UCS2 genutzt werden soll (siehe auch: standard_code_spec).

Fall 1: Die für die Konvertierung zu verwendende Code-Page ist eine benutzerdefinierte Code-Page und noch nicht in der Systemtabelle CODEPAGE enthalten.

Um benutzerdefinierte Code-Pages dem Loader für Konvertierungen zugänglich zu machen, müssen Sie diese Code-Pages zuerst in die Systemtabelle CODEPAGE laden. Verfahren Sie dazu wie folgt:

1. Legen Sie im Verzeichnis <dependent_path>/env eine Datei <valCODEPAGE_NAME>.txt an. Diese Datei muss wie die Dateien formatiert sein, die vom UNICODE-Konsortium unter ftp://ftp.unicode.org/Public/MAPPINGS/ zur Verfügung gestellt werden.

Datei ISO-8859-8.txt

# Name:             ISO/IEC 8859-8:1999 to Unicode
# Unicode version:  3.0
# Table version:    1.1
# Table format:     Format A
# Date:             2000-Jan-03
# Authors:          Ken Whistler kenw@sybase.com
#
# Copyright (c) 1991-1999 Unicode, Inc.  All Rights reserved.
#
# This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
# No claims are made as to fitness for any particular purpose.  No
# warranties of any kind are expressed or implied.  The recipient
# agrees to determine applicability of information provided.  If this
# file has been provided on optical media by Unicode, Inc., the sole
# remedy for any claim will be exchange of defective media within 90
# days of receipt.
#
# Unicode, Inc. hereby grants the right to freely use the information
# supplied in this file in the creation of products supporting the
# Unicode Standard, and to make copies of this file in any form for
# internal or external distribution as long as this notice remains
# attached.
…
# Format:  Three tab-separated columns
#    Column #1 is the ISO/IEC 8859-8 code (in hex as 0xXX)
#    Column #2 is the Unicode (in hex as 0xXXXX)
#    Column #3 the Unicode name (follows a comment sign, '#')
…

0x00 0x0000   #  NULL
0x01 0x0001   #  START OF HEADING
0x02 0x0002   #  START OF TEXT
0x03 0x0003   #  END OF TEXT
0x04 0x0004   #  END OF TRANSMISSION
0x05 0x0005   #  ENQUIRY
0x06 0x0006   #  ACKNOWLEDGE
0x07 0x0007   #  BELL
0x08 0x0008   #  BACKSPACE
0x09 0x0009   #  HORIZONTAL TABULATION
0x0A 0x000A   #  LINE FEED

2. Laden Sie die Code-Page in die Systemtabelle CODEPAGE.
Verwenden Sie dazu das SET-Kommando. Der Loader versucht bei der Bearbeitung des SET-Kommandos SET CODEPAGE <valCODEPAGE_NAME> zuerst, die angegebene Code-Page in der Systemtabelle CODEPAGE zu finden. Wenn sie dort nicht enthalten ist, versucht er die zugehörige Datei <valCODEPAGE_NAME>.txt zu finden. Wenn diese Datei vorhanden ist, wird die Datei gelesen und die Konvertierungstabelle in die Systemtabelle CODEPAGE eingetragen.

Wenn die Datei nicht gefunden wird und die Code-Page auch nicht in der Systemtabelle enthalten ist, bricht der Loader die Bearbeitung des SET-Kommandos mit einem Fehler ab.

Die benutzerdefinierte Code-Page steht bei erfolgreicher Abarbeitung des SET-Kommandos in der Systemtabelle CODEPAGE zur Verfügung.

Fall 2: Die für die Konvertierung zu verwendende Code-Page ist bereits in der Systemtabelle CODEPAGE enthalten.

Ablauf

Der Loader liest die gewünschte Konvertierungstabelle aus der Systemtabelle CODEPAGE. Alle nachfolgenden Konvertierungen der CHAR-Daten von ASCII nach UCS2 werden mit Hilfe dieser Konvertierungstabelle durchgeführt.

Siehe auch:

Datenformat

Format des Datenstroms


code_spec (MaxDB: Loader)

code_spec

Syntaxregel zur Beschreibung des Datenstroms

Syntax

<code_spec> ::= < standard_code_spec > | CODESET <valCODESET_NAME>

valCODESET_NAME

Codeattribut

Verwendung

Sie können den Standardwert für die Interpretation von Datenströmen , die Klartextwerte beinhalten, festlegen.

Siehe auch:

Datenformat


column_assignment (MaxDB: Loader)

column_assignment

Syntaxregel zur Spaltenbeschreibung

Syntax

<column_assignment> ::= <valCOLUMN_NAME> '<valLITERAL>'
| <valCOLUMN_NAME> <generate_spec>

valCOLUMN_NAME | Spaltenname, ist entsprechend der SQL-Konventionen anzugeben, kann den Tabellennamen als Präfix enthalten (z. B. customer.cno)
valLITERAL | Konstante

Verwendung

Beim Laden von Anwendungsdaten können Sie mit dieser Syntaxregel festlegen, dass für jeden geladenen Datensatz in die spezifizierte Spalte ein konstanter Wert geladen wird, und welchen Wert diese Konstante haben soll.

Geben Sie dazu die Konstante anstelle einer Positionsangabe im Kommando an. Für die entsprechende Spalte werden dann keine Daten aus dem Datenstrom geladen.

Wenn der Datenstrom leer ist, werden die im Kommando angegebenen Konstanten nicht geladen.

Laden von beliebigen Konstanten: <valCOLUMN_NAME> '<valLITERAL>'

Um eine beliebige Konstante zu laden, geben Sie anstelle einer Position die gewünschte Konstante an. Schließen Sie den Wert in einfache Anführungszeichen ein.

Der Loader behandelt die Konstante wie einen Klartextwert und wandelt ihn in den Datentyp der Zielspalte um.

Wenn die Konstante in eine numerische Spalte geladen werden soll, muss sie ein gültiges Zahlenformat haben.

DATALOAD TABLE article
ano 01-08 CHAR
descr 09-39 CHAR
stock 40-43 INTEGER
min_ord '50'
ordered 46-49 INTEGER
delivery_date 50-57 CHAR
price 58-65 DECIMAL (2)
weight 66-69 REAL
INSTREAM 'customer.data' FORMATTED

Laden von speziellen Konstanten: <valCOLUMN_NAME> <generate_spec>

Sie können die speziellen Werte STAMP, USER, USERGROUP, DATE, TIME, TIMESTAMP sowie TRUE und FALSE laden.

DATALOAD TABLE article
changed_by USER
changed_on DATE
changed_at TIME
ano 1
descr 2
stock 3 NULL IF POS 3 < '0'
INSTREAM 'customer.data'


column_descriptor (MaxDB: Loader)

column_descriptor

Syntaxregel zur Spaltenbeschreibung

Syntax

<column_descriptor> ::= <valCOLUMN_NAME> <field_pos> <format_spec>

valCOLUMN_NAME

Spaltenname,
ist entsprechend der SQL-Konventionen anzugeben, kann den Tabellennamen als Präfix enthalten (z. B. customer.cno)

Verwendung

In einem Kommando zum Laden von Anwendungsdaten ordnen Sie mit dieser Syntaxregel ein Datenfeld der Datenstroms einer Spalte der Zieltabelle zu. Sie geben dazu den Spaltennamen, die Position und den externen Datentyp der Daten im Datenstrom an.

DATALOAD TABLE article
 ano 01-08 CHAR
 descr 09-39 CHAR
stock 40-43 INTEGER
min_ord 44-45 INTEGER
ordered 46-49 INTEGER
delivery_date 50-57 CHAR
price 58-65 DECIMAL (2)
weight 66-69 REAL
INSTREAM 'article.data' FORMATTED


column_id (MaxDB: Loader)

column_id

Syntaxregel zur Spaltenbeschreibung

Syntax

<column_id> ::= <valCOLUMN_NAME> | <valCOLUMN_ID>

valCOLUMN_NAME | Spaltenname, ist entsprechend der SQL-Konventionen anzugeben, kann den Tabellennamen als Präfix enthalten (z. B. customer.cno)
valCOLUMN_ID | Spalten-ID

Verwendung

In einem Kommando zum Entladen von Anwendungsdaten ordnen Sie damit eine Spalte der Quelltabelle einem Datenfeld des Datenstroms zu.

DATAEXTRACT cno, name, zip, city FROM customer
OUTFIELDS
cno 01-04
name 06-12
zip 14-18
city 20-31
OUTSTREAM 'customer.data' FORMATTED

Die Spaltennummer valCOLUMN_ID bezeichnet die Position der Spalte in der SELECT-Anweisung.

DATAEXTRACT cno, name, zip, city FROM customer
OUTFIELDS
1 01-04
2 06-12
3 14-18
4 20-31
OUTSTREAM 'customer.data' FORMATTED


column_id_spec (MaxDB: Loader)

column_id_spec

Syntaxregel zur Spaltenbeschreibung

Syntax

<column_id_spec> ::= <column_id > <field_pos > <format_spec > <null_assign >

Verwendung

In Kommandos zum Entladen ordnen Sie damit den Spalten der Quelltabelle die Datenfelder des Datenstroms zu. Sie geben die externen Datentypen und die Bedingungen für das Entladen der Anwendungsdaten an.

Beachten Sie folgende Regeln:

Entscheiden Sie, ob Ihre Spaltenbeschreibungen Positionsbeschreibungen field_pos enthalten sollen.

Geben Sie jedoch entweder für alle oder für keine der beschriebenen Spalten Positionsbeschreibungen an. Andernfalls generiert der Loader einen Fehler und beendet die Ausführung des Komandos.

Format des Datenstroms: COMPRESSED

· Geben Sie Positionsbeschreibungen ausschließlich als relative Positionsangaben ein.

Wenn Sie für einzelne oder alle Spalten Positionsbeschreibungen mit Anfangs- und Endposition eingeben, dann generiert der Loader einen Fehler und beendet die Ausführung des Kommandos.

DATAEXTRACT * from kunde
OUTFIELDS
  knr       1
  nachname  2
  plz       3
  ort       4-31     FEHLER
OUTFILE 'kunden.daten' COMPRESSED

· Ordnen Sie der ersten Spalte Ihrer Liste die Position 1 zu. Die nachfolgenden Spaltenangaben erhalten aufsteigende, jeweils um die Zahl 1 erhöhte Positionsnummern. Das bedeutet auch, dass jede Positionsnummer nur einmal vergeben werden kann.
Wenn Sie diese Regeln nicht einhalten, generiert der Loader einen Fehler und beendet die Ausführung des Kommandos.

DATAEXTRACT * from kunde
OUTFIELDS
  knr       1
  nachname  2
  strasse   3
  plz       3      FEHLER
  ort       5     FEHLER
OUTFILE 'kunden.daten' COMPRESSED

· Sie können eine Spalte mehreren verschiedenen Positionen zuordnen.

DATAEXTRACT * from kunde
OUTFIELDS
  knr       1
  nachname  2
  plz       3
  ort       4
  nachname  5
OUTFILE 'kunden.daten' COMPRESSED

Format des Datenstroms: FORMATTED

· Geben Sie alle Positionsbeschreibungen mit exakten Anfangs- und Endpositionen an.

· Geben Sie grundsätzlich aufsteigende Werte für Positionsbeschreibungen an, die sich nicht überlappen.
Wenn die Positionsangaben nicht aufeinanderfolgen, dann werden die so entstehenden Lücken vom Loader mit Leerzeichen aufgefüllt. Das gilt auch für binäre Daten.

DATAEXTRACT * from kunde
OUTFIELDS
  knr       01-04
  nachname  06-12
  plz       14-18
  ort       16-31
OUTFILE 'kunden.daten' FORMATTED

· Definieren Sie die Positionen für den Datenstrom mindestens so groß wie die Länge der Werte in der Datenbank.
Wenn Sie für den Datenstrom eine Position definieren, die größer ist als die Länge des Wertes in der Datenbank, dann werden
- Zeichenketten linksbündig eingetragen und mit Leerzeichen auf die erforderliche Länge aufgefüllt
- numerische Werte rechtsbündig eingetragen und mit Leerzeichen auf die erforderliche Länge aufgefüllt
Wenn Sie für den Datenstrom eine Position definieren, die kleiner ist als die Länge des Wertes in der Datenbank, dann generiert der Loader einen Fehler und beendet die Ausführung des Kommandos.


column_names (MaxDB: Loader)

column_names

Syntaxregel zur Spaltenbeschreibung

Syntax

<column_names> ::= <valCOLUMN_NAME> | <valCOLUMN_NAME>,<column_names>

valCOLUMN_NAME

Spaltenname

Verwendung

In einem DATAEXTRACT-Kommando mit order_clause (siehe Variante 2 des DATAEXTRACT-Kommandos) spezifizieren Sie mit dieser Syntaxregel die Sortierreihenfolge der zu entladenden Spalten.

DATAEXTRACT FOR DATALOAD TABLE artikel ORDER BY lieferdatum, preis
OUTFILE 'artikel.command'
OUTFILE 'artikel.daten’


compare_operator (MaxDB: Loader)

compare_operator

Syntaxregel zur Tabellenbeschreibung

Syntax

<compare_operator> ::= < | > | = | <= | >= | !=

Verwendung

In der Syntaxregel <simple_condition> legen Sie mit dieser Syntaxregel den Wert fest, mit dem ein Wert im Datensatz verglichen werden soll.


condition (MaxDB: Loader)

condition

Syntaxregel zur Tabellenbeschreibung

Syntax

<condition> ::= <simple_condition > | (<condition>) | <condition> AND <condition>
| <condition> OR <condition> | NOT <condition>

Verwendung

Der Loader unterscheidet einfache Bedingungen und zusammengesetzte Bedingungen. Einfache Bedingungen können mit NOT negiert oder mit AND und OR zu zusammengesetzten Bedingungen kombiniert und beliebig geklammert werden.

Operatoren in Klammern werden vor nicht geklammerten Operatoren ausgewertet.

Wenn keine Operatoren geklammert wurden, wichtet der Loader die Operatoren wie folgt:

· NOT bindet stärker als AND und OR

· AND bindet stärker als OR

· Bei gleicher Wichtung erfolgt die Auswertung von links nach rechts

Es werden nur jene Sätze geladen, für die die einfache oder zusammengesetzte Bedingung zutrifft.

Siehe auch:

Selektieren von Datensätzen

Sie wollen nur jene Datensätze aus dem Datenstrom hotel.daten in die Zieltabelle hotel laden, in denen als Ort BERLIN angegeben ist und deren Preis unter 400,00 liegt.

DATALOAD TABLE hotel
  IF POS 41-44 REAL < '400,00'
  AND
     POS 27-36 = 'BERLIN'
       hnr     01-04 INTEGER
       name    09-18
       plz     20-25 DECIMAL
       ort     27-36
       preis   41-44 REAL
INFILE 'hotel.daten' FORMATTED


configurationstream_spec (MaxDB: Loader)

configurationstream_spec

Syntaxregel zur Beschreibung des Datenstroms

Syntax

<configurationstream_spec> ::= CONFIGURATION < instream_spec >


database_name_statement (MaxDB: Loader)

database_name_statement

Syntaxregel zum Sitzungsaufbau

Syntax

<database_name_statement> ::= SERVERDB <valDBNAME> [ON <valDBNODE>]

valDBNAME | Name der Datenbankinstanz, gilt für die gesamte Datenbanksitzung mit dieser Datenbankinstanz Wenn der Name der Datenbankinstanz mit einem Schlüsselwort identisch oder die Groß-und Kleinschreibung von Bedeutung ist, muss der Name in Anführungszeichen eingeschlossen werden.
valDBNODE | Name des Rechners, auf dem die Datenbankinstanz installiert ist, für die eine Datenbanksitzung eröffnet werden soll

Verwendung

Sie eröffnen damit eine Datenbanksitzung für die unter valDBNAME angegebene Datenbankinstanz.

Wenn Sie zusätzlich den Namen des Rechners valDBNODE, auf dem diese Datenbankinstanz installiert ist, angeben, dann wird die Datenbanksitzung zu dieser Datenbankinstanz auf dem angegebenen Rechner eröffnet. Andernfalls geht der Loader davon aus, dass die angegebene Datenbankinstanz sich auf dem Rechner befindet, auf dem der Benutzer an den Loader angemeldet ist.


datainstream_spec (MaxDB: Loader)

datainstream_spec

Syntaxregel zur Beschreibung des Datenstroms

Syntax

<dataoutstream_spec> ::= DATA < instream_spec >


dataoutstream_spec (MaxDB: Loader)

dataoutstream_spec

Syntaxregel zur Beschreibung des Datenstroms

Syntax

<dataoutstream_spec> ::= DATA < outstream_spec >


date_spec (MaxDB: Loader)

date_spec

Syntaxregel zur Beschreibung des Datenstroms

Syntax

<date_spec> ::= DATE <standard_date_mask > | DATE '<valFREE_MASK>'

valFREE_MASK

Frei definierbares Ausgabeformat

Verwenden Sie Y für das Jahr, M für den Monat, D für den Tag.
Die Jahresbezeichnung muss zwei- oder vierstellig, Tagesbezeichnungen müssen zweistellig, Monatsbezeichnungen müssen zwei- oder dreistellig sein. Wenn Sie für den Monat drei Stellen, also MMM angeben, wird die Bezeichnung des Monatsnamens in der üblichen englischen Abkürzung ausgegeben, z. B. Oct für Oktober.

Verwendung

Sie legen mit dieser Syntaxregel das Datenformat der Klartextwerte fest, in dem DATE-Spalten ein- und ausgegeben werden.

Dieses Format gilt nur für das Kommando zum Laden oder Entladen von Daten, in dem es angegeben wird. Ist in einem Kommando kein Datumsformat angegeben, wird entweder der Vorschlagswert des Loader oder ein mit dem SET DATE-Kommando festgelegter Wert verwendet.

Verwendung einer frei definierten Maske in einem DATAEXTRACT-Kommando

CREATE TABLE d_test (col1 DATE)
//
INSERT INTO d_test VALUES (DATE)
//
DATAEXTRACT * FROM d_test
OUTFILE ′d_test.data′
DATA ′YYYY-MMM-DD′

Beispiel für Inhalt des Zieldatenstroms
″2003-May-15″


delimiter_spec (MaxDB: Loader)

delimiter_spec

Syntaxregel zur Beschreibung des Datenstroms

Syntax

<delimiter_spec> ::= DELIMITER '<valDELIMITER>'

valDELIMITER

DELIMITER-Darstellung,

kein Zeichen oder genau ein Zeichen lang

Darstellung eines leeren DELIMITER durch die Eingabe von leeren einfachen Anführungszeichen ('')

Verwendung

Sie legen damit fest, welches Zeichen in Datenströmen des Formats COMRESSED verwendet werden soll, um Anwendungsdaten in Markierungen einzuschließen. Wenn Sie Daten ohne Markierungen laden möchten, geben Sie einen leeren DELIMITER im Kommando an.

Um sich den Vorschlagswert des Loader anzusehen, verwenden Sie das SET-Komando.

Siehe auch:

Datenformat


duplicates_clause (MaxDB: Loader)

duplicates_clause

Syntaxregel zur Tabellenbeschreibung

Syntax

<duplicates_clause> ::= IGNORE DUPLICATES | REJECT DUPLICATES | UPDATE DUPLICATES

IGNORE DUPLICATES | Die neue Zeile wird nicht eingefügt.
REJECT DUPLICATES | Die einzufügende Zeile wird mit einer Fehlermeldung abgelehnt.
UPDATE DUPLICATES | Die existierende Zeile wird mit der neuen Zeile überschrieben.

Verwendung

Mit dieser Syntaxregel in einem DATALOAD-Kommando legen Sie fest, wie beim Laden von Daten aus einem Datenstrom in dem Falle verfahren werden soll, dass eine Zeile mit dem Schlüssel der einzufügenden Zeile in der Tabelle bereits existiert.

Wenn Sie keine Angabe machen, dann wird als Vorschlagswert immer REJECT DUPLICATES angenommen.

DATALOAD TABLE sqltravel00.customer
  UPDATE DUPLICATES
  customerid    01-04
  name          06-16
  zip           17-22
  address       23-48
INFILE 'customer.data' FORMATTED


ebid_spec (MaxDB: Loader)

ebid_spec

Syntaxregeln zur Beschreibung des Datenstroms

Syntax

<ebid_spec> ::= EBID ′<valEBID>′

valEBID

Externe Sicherungskennung

Verwendung

Die externe Sicherungskennung wird nach Beenden des Entladen mit externen Sicherungswerkzeugen in die Protokolldatei und in die Transformationstabelle des Loader geschrieben (Protokollfunktionen).

Sie muss beim Laden mit externen Sicherungswerkzeugen als mediumtype_spec nach dem Schlüsselwort TAPE angegeben werden.


extract_files_spec (MaxDB: Loader)

extract_files_spec

Syntaxregel zur Beschreibung des Datenstroms

Syntax

<extract_files_spec> ::= <data_outstream_spec> [<longfile_spec_mlt>]
| <command_outstream_spec> <data_outstream_spec> [<longfile_spec_mlt>]

data_outstream_spec | Definition des Datenstroms für Anwendungsdaten
command_outstream_spec | Definition des Datenstroms für zu generierende Ladekommandos (Kommandodatei)
longfile_spec_mlt | Zieldatenstrom für Daten von Tabellenfeldern, die als LONG-Werte definiert sind

Verwendung

Die erste Spezifikation dieser Regel gilt nur für DATAEXTRACT-Kommandos, die keine Kommandodateien erzeugen (Variante 1 des DATAEXTRACT-Kommandos).

DATAEXTRACT * FROM artikel
OUTSTREAM 'artikel.daten'

Die zweite Spezifikation gilt nur für DATAEXTRACT-Kommandos, die eine vollständige Wiederherstellung der Tabelle ermöglichen (Variante 2 des DATAEXTRACT-Kommandos).

DATAEXTRACT FOR DATALOAD TABLE artikel
OUTSTREAM 'artikel.command'
OUTSTREAM 'artikel.daten'


field_format (MaxDB: Loader)

field_format

Syntaxregel zur Tabellenbeschreibung

Syntax

<field_format> ::= /* leer */ | CHAR | DECIMAL [<valFRACTION>]
| ZONED [<valFRACTION>] | INTEGER | REAL

valFRACTION

Anzahl der Stellen nach dem Komma für die externen Datentypen DECIMAL und ZONED

Verwendung

Sie beschreiben mit dieser Syntaxregel den externen Datentyp der Datenfelder in den Datenströmen .

Die Angabe des Datentyps in einem Kommando zum Laden oder Entladen oder in einer Bedingung ( condition ) ist nur dann erforderlich, wenn das betreffende Datenfeld mit einem anderen Datentyp als CHAR gelesen oder ausgegeben werden soll. Das Lesen bzw. die Ausgabe im CHAR-Datentyp ist für jedes datenbankinterne Spaltenformat möglich.

Siehe auch:

Umwandlung der Datentypen


field_pos (MaxDB: Loader)

field_pos

Syntaxregel zur Tabellenbeschreibung

Syntax

<field_pos> ::= <valSTART_POS> | <valSTART_POS> - <valEND_POS>

valSTART_POS | Anfangsposition eines Datenfeldes
valEND_POS | Endposition eines Datenfeldes

Verwendung

Sie beschreiben mit dieser Syntaxregel:

  • die Position eines Eingabefeldes im Datenstrom beim Laden von Anwendungsdaten
  • die Position eines Ausgabefeldes im Datenstrom beim Entladen von Anwendungsdaten
  • die Position eines Vergleichswertes für das selektierte Laden von Anwendungsdaten ( simple_condition ).

Die Positionsangabe ist abhängig vom Format des Datenstroms .

Format FORMATTED

Wenn der Datenstrom das Format FORMATTED hat, geben Sie ausschließlich absolute Anfangs- und Endpositionen für die Datenfelder im Datenstrom an.

Der Datenstrom kunden.daten hat das Format FORMATTED. Die Datenfelder sind einheitlich formatiert und durch einen Zeilenumbruch abgeschlossen:

Pos.-Nr.

1 2 3 4 5 6 7 8 9 .....

0 1 m u e l l e r - 6 9 1 8 5 W a l l d o r f - - -
0 2 s c h m i d t - 1 3 4 0 3 B e r l i n - - - - -
0 3 k l e I n e r t 2 5 0 0 0 G r o s s - K l e i n

FASTLOAD-Kommando:

FASTLOAD TABLE kunde
  knr       01-02
  nachname  03-10
  plz       11-15
  ort       16-27
INFILE 'kunden.daten' FORMATTED

Format COMPRESSED

Wenn der Datenstrom das Format COMPRESSED hat, geben Sie ausschließlich relative Positionen für die Datenfelder im Datenstrom an.

Der Datenstrom kunden.daten hat das Format COMPRESSED. Die Datenfelder sind nicht einheitlich formatiert, sie sind durch Komma voneinander getrennt:

Pos.-Nr

1   2       3    4       ....

001,mueller,69185,Walldorf
002,schmidt,13403,Berlin
003,kleinert,25000,Gross-Klein

FASTLOAD-Kommando:

FASTLOAD TABLE kunde
  knr       1
  nachname  2
  plz       3
  ort       4
INFILE 'kunden.daten'

COMPRESSED ist der Vorschlagswert des SAP DB Loader.

Der Datenstrom kunden.daten hat das Format FORMATTED BINARY:

Pos.-Nr. | 1 2 3 4 5 6 7 8 9 .....
 | 0 1 m u e l l e r x 6 9 1 8 5 W a l l d o r f : : : 0 2 s c h m i d t : 1 3 4 0 3 B e r l i n : : : : : 0 3 k l e i n e r t 2 5 0 0 0 G r o s s - K l e i n

Die Datenfelder sind einheitlich formatiert, werden jedoch nicht durch einen Zeilenumbruch abgeschlossen:

FASTLOAD-Kommando:

FASTLOAD TABLE kunde
  knr       01-02
  nachname  03-10
  plz       11-15
  ort       16-26
INFILE 'kunden.daten' FORMATTED BINARY


format_spec (MaxDB: Loader)

format_spec

Syntaxregel zur Spaltenbeschreibung

Syntax

<format_spec> ::= < field_format > [HEX] [< numerical_functions >]

Verwendung

In einem Kommando zum Laden oder Entladen von Anwendungsdaten spezifizieren Sie mit dieser Syntaxregel die Datenfelder im Datenstrom ( externer Datentyp , Position etc.).

HEX :Sie können HEX-Werte definieren.


generate_spec (MaxDB: Loader)

generate_spec

Syntaxregel zur Spaltenbeschreibung

Syntax

<generate_spec> ::= USER | USERGROUP
| STAMP | DATE | TIME | TIMESTAMP | <sequence_number>

USER | Name des aktuellen Benutzers wird geladen.
USERGROUP | Name der Gruppe des aktuellen Benutzers wird geladen. Wenn dieser Benutzer keiner Benutzergruppe zugeordnet ist, wird der Name des aktuellen Benutzers geladen. Die Spalte, in die einer dieser Werte geladen werden soll, muss vom Typ CHAR(n) mit n >= 32 sein.
DATE | aktuelles Datum Die Spalte, in die einer dieser Werte geladen werden soll, muss vom Typ DATE sein.
TIME | aktuelle Zeit Die Spalte, in die einer dieser Werte geladen werden soll, muss vom Typ TIME sein.
TIMESTAMP | aktueller Zeitstempel Die Spalte, in die einer dieser Werte geladen werden soll, muss vom Typ TIMESTAMP sein.
STAMP | Ein vom Datenbanksystem erzeugter eindeutiger Wert, der nur in Spalten des Typs CHAR(n) BYTE mit n >= 8 geladen werden kann

Verwendung

Es werden damit die angegebenen speziellen Konstanten in die Datenbank geladen.


if_condition (MaxDB: Loader)

if_condition

Syntaxregel zur Tabellenbeschreibung

Syntax

<if_condition> ::= IF < condition > | OTHERWISE

Verwendung

Sie definieren mit dieser Syntaxregel das Selektionskriterium, mit dem festgelegt wird, welche Sätze des Datenstroms in welche Zieltabellen geladen werden.

Datensätze, die das Selektionskriterium nicht erfüllen, können Sie gezielt mit Hilfe der OTHERWISE-Bedingung in eine bestimmte Zieltabelle laden. Damit ist es möglich, all jene Sätze des Datenstroms, für die sich kein einheitliches Selektionskriterium definieren läßt, in eine bestimmte Zieltabelle zu laden.

Diese Syntaxregel ermöglicht Ihnen das Selektieren von Datensätzen beim Laden aus einem Datenstrom in eine Zieltabelle:

OTHERWISE darf in einer Folge von DATALOAD-Kommandos nur für die letzte Tabelle angegeben werden.


instream_spec (MaxDB: Loader)

instream_spec

Syntaxregel zur Beschreibung des Datenstroms

Syntax

<instream_spec> ::= INSTREAM [< mediumtype_spec >] '<valSTREAM_NAME>' [< stream_format_spec >] [< stream_extract >] [ noheader_spec ]

valSTREAM_NAME

Name und Pfad des Mediums

Verwendung

Beim Laden von Daten beschreiben Sie mit dieser Syntaxregel den Datenstrom .

Die Regeln stream_extract und noheader_spec werden nur für FASTLOAD- und DATALOAD-Kommandos ausgewertet. Wenn Sie diese Regeln in anderen Kommandos verwenden, werden sie ignoriert.

  • Mit stream_extract können Sie angeben, dass nur bestimmte Teile eines Datenstroms geladen werden sollen.
  • Mit noheader_spec können Sie bei Datenströmen mit Binärwerten angeben, dass das entsprechende Medium keinen speziellen Header mit den Größen eines Datensatzes enthält.


int_spec (MaxDB: Loader)

int_spec

Syntaxregel zur Beschreibung des Datenstroms

Syntax

<int_spec> ::= INTEGER HILO | INTEGER LOHI

INTEGER HILO | Im aktuellen Datenstrom sind ganze Zahlen so dargestellt, dass das Byte mit der niedrigsten Wertigkeit zuerst gespeichert ist, d.h. in der binären Zahl am weitesten rechts steht (Big Endian).
INTEGER LOHI | Im aktuellen Datenstrom sind ganze Zahlen so dargestellt, dass das Byte mit der höchsten Wertigkeit zuerst gespeichert ist, d.h. in der binären Zahl am weitesten rechts steht (Little Endian, Byte Swap).

Verwendung

Sie legen damit die Darstellung von ganzen Zahlen in den Datenströmen fest. Dies ist jedoch nur für Datenströme mit dem Format FORMATTED BINARY ( Binärwerte ) möglich. Beim Laden aus oder Entladen in Datenströme im Format COMPRESSED wird diese Angabe ignoriert.

Wenn die für einen Datenstrom angegebene Darstellung nicht mit der des aktuellen Rechners übereinstimmt, werden die Werte vor dem Laden in die Datenbank bzw. vor dem Speichern im Datenstrom angepasst.

Siehe auch:

Datenformat


key_column_spec (MaxDB: Loader)

key_column_spec

Syntaxregel zur Spaltenbeschreibung

Syntax

<key_column_spec> ::= KEY < simple_column_spec >

Verwendung

Sie legen damit fest, dass eine angegebene Qualifiaktionsspalte im DATAUPDATE-Kommando eine Schlüsselspalte der Zieltabelle ist.


lit_column_spec (MaxDB: Loader)

lit_column_spec

Syntaxregel zur Spaltenbeschreibung

Syntax

<lit_column_spec> ::= '<valLITERAL>' < field_pos >

valLITERAL

Textkonstante

Verwendung

Sie haben damit die Möglichkeit, zusätzlich zu den Ausgabewerten im DATAEXTRACT-Kommando auszugebende Textkonstanten zu definieren.

DATAEXTRACT * from kunde
OUTFIELDS
  'Kundennummer:'  01-15
  knr              16-19
  'Name:'          20-25
  nachname         26-32
  plz              34-38
  ort              50-61
OUTFILE 'kunden.daten' FORMATTED

Anstelle des Spaltennamens bzw. der Spalten-ID ( column_id ) wird die Textkonstante in einfachen Anführungszeichen angegeben.


load_column_spec (MaxDB: Loader)

load_column_spec

Syntaxregel zur Spaltenbeschreibung

Syntax

<load_column_spec> ::= <column_descriptor> [ <null_condition> ] | <column_assignment>

Verwendung

Sie ordnen mit dieser Syntaxregel in einem Kommando zum Laden von Anwendungsdaten die Datenfelder des Datenstroms den Spalten der Zieltabelle zu und geben die externen Datentypen sowie die Bedingungen für das Laden der Daten an.

DATALOAD TABLE artikel
  anr         01-08 CHAR
  bez         09-39 CHAR
  bestand     40-43 INTEGER
  min_best    44-45 INTEGER
  bestellt    46-49 INTEGER
  lieferdatum 50-57 CHAR
  preis       58-65 DECIMAL (2)
  gewicht     66-69 REAL
INFILE 'artikel.daten' FORMATTED


load_column_spec_mlt (MaxDB: Loader)

load_column_spec_mlt

Syntaxregel zur Spaltenbeschreibung

Syntax

<load_column_spec_mlt> ::= < load_column_spec > <load_column_spec_mlt>

Verwendung

Sie beschreiben mit dieser Syntaxregel in einem Kommando zum Laden von Anwendungsdaten die zu ladenden Datensätze eines Datenstroms und ihre Zuordnung zu den Spalten der Zieltabelle.

Definition der Tabelle:

CREATE TABLE sqltravel00.customer (cno FIXED(4,0), name CHAR(10) NOT NULL, zip CHAR(5), address CHAR(25), PRIMARY KEY (cno))

Ladekommando:

DATALOAD TABLE kunde
  cno       01-04
  name      06-16
  zip       17-22
  address   23-48
INFILE 'customer.data' FORMATTED

Zu beachtende Regeln

Für jede Spalte, die Sie im Lade-Kommando angeben, müssen Daten im Datenstrom vorhanden sein.

Wenn Sie im Kommando Spalten der Zieltabelle nicht angeben, wird beim Ladevorgang die gesamte Spalte mit dem definierten Vorschlagswert für diese Spalte belegt. Wenn kein spezieller Vorschlagswert für die Spalte festgelegt ist, wird der Wert NULL geladen.

DATALOAD TABLE customer
  cno       01-04
  name      06-16
INFILE 'customer.data' FORMATTED

zip und address werden beim Laden mit dem Vorschlagswert belegt

Schlüsselspalten und Pflichtspalten (Spalten, die NOT NULL ohne Vorschlagswert definiert sind) müssen im Lade-Kommando angegeben werden. Ansonsten wird die Verarbeitung mit einem SQL-Fehler abgebrochen.

DATALOAD TABLE customer
  name      06-16
  zip       17-22
  address   23-48
INFILE 'customer.data' FORMATTED

Das Kommando wird mit SQL-Fehler abgebrochen, da die Spalte cno fehlt.

Wenn Sie im Lade-Kommando keine Spalten für die Zieltabelle angeben, dann wird die Tabelle so geladen, als wären alle Spalten der Zieltabelle im Kommando angegeben worden. In diesem Fall müssen für alle Spalten der Zieltabelle Daten im Datenstrom vorhanden sein.

DATALOAD TABLE customer
INFILE 'customer.data' FORMATTED

Für alle Spalten der Zieltabelle müssen Daten im Datenstrom vorhanden sein.


longfile_code_spec (MaxDB: Loader)

longfile_code_spec

Syntaxregeln zur Beschreibung des Datenstroms

Syntax

<longfile_code_spec> ::= <code_spec > | BINARY

Verwendung

Durch diese Angabe legen Sie den Standardwert für die Interpretation von LONG-Datenströmen fest.

Mit dieser Syntaxregel haben Sie auch die Möglichkeit, beim Laden oder Entladen von LONG-Daten diese zwischen verschiedenen Code-Typen zu transformieren.

Beim Laden/Entladen von ASCII-LONG-Daten in eine ASCII-Datenbank oder von UCS2-LONG-Daten in eine UNICODE-Datenbank ist keine Konvertierung notwendig.

Mögliche Kombinationen (datenbankinterner und externer Datentyp) sind:

Datenbankinterner Datentyp | Mögliche Codeattribute des LONG-Datenstroms beim Entladen
LONG ASCII | ASCII, UCS2, UTF8
LONG UNICODE | UCS2, UTF8
LONG BYTE | BINARY, ASCII (HEX), UCS2 (HEX), UTF8 (HEX)

Datenbankinterner Datentyp | Mögliche Codeattribute des LONG-Datenstroms beim Laden
LONG ASCII | ASCII
LONG UNICODE | ASCII, UCS2, UTF8
LONG BYTE | BINARY, ASCII, UCS2 (HEX), UTF8 (HEX)


longfile_spec (MaxDB: Loader)

longfile_spec

Syntaxregel zur Beschreibung des Datenstroms

Syntax

<longfile_spec> ::= LONGFILE <valCOLUMN_ID> < longfile_code_spec >
| LONGFILE <valCOLUMN_NAME> <longfile_code_spec>
| LONGFILE <valCOLUMN_ID> <valFILE_NAME> [<longfile_code_spec>]
| LONGFILE <valCOLUMN_NAME> <valFILE_NAME> [<longfile_code_spec>]

valCOLUMN_ID | Spalten-ID
valCOLUMN_NAME | Spaltenname
valFILE_NAME | Name und Pfad des Datenstroms

Verwendung

Bei Verwendung einer der ersten beiden Syntaxregeln ist die Angabe von longfile_code_spec zwingend erforderlich. In den anderen Fällen ist diese Angabe optional.

  • Die beiden ersten Syntaxregeln beziehen sich auf das Laden/Entladen für den Fall, dass jeder LONG-Wert einer Spalte in einem separaten LONG-Datenstrom steht.
  • Die anderen Regeln beziehen sich auf das Laden/Entladen für den Fall, dass alle LONG-Werte einer Spalte in einem LONG-Datenstrom stehen.

Siehe auch:

Laden von LONG-Werten

Entladen von LONG-Werten


longfile_spec_mlt (MaxDB: Loader)

longfile_spec_mlt

Syntaxregel zur Beschreibung des Datenstroms

Syntax

<longfile_spec_mlt> ::= <longfile_spec > <longfile_spec_mlt>

Verwendung

Mit den Kommandos DATALOAD, DATAEXTRACT und DATAUPDATE können LONG-Werte in eine Zieltabelle geladen, aus einem Datenstrom entladen oder die LONG-Werte einer Tabelle geändert werden. Sie definieren mit Hilfe dieser Syntaxregel, in welche Spalten einer Zieltabelle LONG-Werte geladen werden bzw. aus welchem Datenstrom sie entladen werden sollen.

Die Daten für LONG-Werte werden von den anderen Daten getrennt in LONG-Datenströmen gespeichert. Diese Datenströme werden mit der Syntaxregel longfile_spec spezifiziert.

Wenn Sie beim Entladen von LONG-Werten mehr LONG-Datenströme angeben als es LONG-Spalten in der Spaltenliste gibt (siehe output_column_list), dann werden die überzähligen LONG-Datenströme vom Loader ignoriert.

Siehe auch:

Laden von LONG-Werten

Entladen von LONG-Werten


mediumtype_spec (MaxDB: Loader)

mediumtype_spec

Syntaxregel zur Beschreibung des Datenstroms

Syntax

<mediumtype_spec> ::= FILE | PIPE | TAPE [<ebid_spec>]

Verwendung

Sie können mit dieser Syntaxregel dem Datenstrom ein Medium zuordnen.

· FILE: Medium für den Datenstrom ist das Dateisystem.

· PIPE: Medium für den Datenstrom ist eine Pipe.

· TAPE (nur für Entladevorgänge relevant): Medium für den Datenstrom ist ein Band, das über ein externes Sicherungswerkzeug angesprochen wird.

· TAPE <ebid_spec> (nur für Ladevorgänge relevant): Medium für den Datenstrom ist ein Band, das über ein externes Sicherungswerkzeug angesprochen wird. Zusätzlich muss die externe Sicherungskennung des zu ladenden Datenstroms angegeben werden.

Erläuterung

Der Medientyp TAPE wird für das Entladen/Laden der gesamten Datenbank oder des Datenbankkatalogs unterstützt (d.h. zur Zeit nur für folgende Kommandos: DBEXTRACT/DBLOAD, CATALOGEXTRACT ALL/CATALOGLOAD ALL). Bei Angabe von TAPE wird ein externes Sicherungswerkzeug für das Entladen/Laden verwendet.

Für den Einsatz externer Sicherungswerkzeuge sind folgende Schritte erforderlich:

  1. Konfiguration des externen Sicherungswerkzeugs
    Anschluss an eine Backint for Oracle-Schnittstelle
    Anschluss an eine Backint for SAP DB-Schnittstelle
    Anschluss an NetWorker
    Anschluss an TSM
  2. Festlegen des externen Sicherungswerkzeuges
    Verwenden Sie dazu das Loader-Kommando SET BACKUPTOOL.

Die externe Sicherungskennung wird am Ende des Entladevorgangs in die Protokolldatei und in die Transformationstabelle des Loader geschrieben. Falls erforderlich, müssen Sie die externe Sicherungskennung anhand dieser Protokollinformationen ermitteln.


noheader_spec (MaxDB: Loader)

noheader_spec

Syntaxregeln zur Beschreibung des Datenstroms

Syntax

<noheader_spec> ::= NOHEADER <valRECORD_LENGTH>

valRECORD_LENGTH

Länge eines einzelnen Datensatzes im Datenstrom

Verwendung

Beim Laden von Daten mit einem FASTLOAD- oder DATALOAD-Kommando beschreiben Sie mit dieser Syntaxregel in instream_spec, dass ein Datenstrom im Format FORMATTED BINARY keinen speziellen Header enthält. Gleichzeitig geben Sie die Länge eines einzelnen Datensatzes im Datenstrom an.

Diese Angabe ist optional.

Wenn der Datenstrom mit dem DATAEXTRACT-Kommando erzeugt wurde, enthält er einen speziellen Header mit der Länge eines einzelnen Datensatzes im Datenstrom.

Wenn dieser Header fehlt, kann dem Loader mit noheader_spec die Länge eines einzelnen Datensatzes mitgeteilt werden. Wenn diese Regel fehlt, berechnet der Loader die Länge eines einzelnen Datensatzes aus den Angaben zu den Spaltenpositionen im Ladekommando.


null_assign (MaxDB: Loader)

null_assign

Syntaxregeln zur Spaltenbeschreibung

Syntax

<null_assign> ::= [IF] NULL SET '<valLITERAL>'

valLITERAL

Nullwertdarstellung

Erläuterung

Der Wert für die Nullwertdarstellung ist in einfache Anführungszeichen zu setzen. Er ist ein Klartextwert, den der Loader als Zeichenkette oder binären numerischen Wert darstellt. Dies ist abhängig vom externen Datentyp der Spalte, für die die Nullwertdarstellung erzeugt werden soll.

Wenn die Nullwertdarstellung in einem der externen Datentypen für Binärwerte ausgegeben werden soll, muss sie ein gültiges Zahlenformat haben, d. h. entweder eine Gleitkommazahl in Mantisse-/Exponent-Darstellung oder eine Festkommazahl mit der aktuell vereinbarten oder der Standarddezimaleinstellung sein.

Die erzeugte Nullwertdarstellung wird an die gleiche Stelle im Datenstrom geschrieben, an die der eigentliche Spaltenwert geschrieben würde.

· Wenn die Nullwertdarstellung kürzer ist als die durch die Positionsangabe spezifizierte Länge des Wertes, dann wird der Wert mit Leerzeichen aufgefüllt. Wenn die Nullwertdarstellung länger ist, dann wird sie beim Schreiben auf die angegebene Länge gekürzt. Der Loader gibt dazu eine Warnung aus.

· Wenn Spalten der Zieltabelle NULL-Werte zulassen und Sie dafür keine Nullwertdarstellung definieren, wird für zu entladende NULL-Werte der Vorschlagswert des Loader verwendet (null_spec). Dieser ist vom externen Datentyp CHAR.

· Wenn Sie für das Entladen von NOT-NULL-Spalten eine Nullwertdarstellung definieren, führt dies nicht zu einem Fehler.

Verwendung

Sie geben damit in einem Kommando zum Entladen von Daten an, welcher Wert für das Datenfeld der Quelltabelle in den Datenstrom geschrieben werden soll, wenn der Wert in der Quelltabelle der NULL-Wert ist.

Sie möchten die Quelltabelle article aus der Datenbankinstanz in den Datenstrom article.data entladen, wobei einige Spalten der Tabelle NULL-Werte enthalten.
Sie definieren für jede dieser Spalten eine eigene Bedingung. Wenn diese erfüllt ist, wird die jeweilige Nullwertdarstellung in den Datenstrom eingetragen.

DATAEXTRACT * FROM article
OUTFIELDS
ano 01-08
descr 09-39 IF NULL SET ' '
stock 40-43 INTEGER IF NULL SET '0'
min_ord 44-45 INTEGER
price 46-53 DECIMAL (2) IF NULL SET 'X'
weight 54-57 REAL
OUTSTREAM 'article.data' FORMATTED

Sie möchten die Quelltabelle article aus der Datenbankinstanz in den Datenstrom article.data entladen, wobei einige Spalten der Tabelle NULL-Werte enthalten.
Da für keine im Kommando aufgeführte Spalte eine Nullwertdarstellung definiert ist, aber alle Werte den externen Datentyp CHAR haben, wird die als Vorschlagswert des Loader definierte Nullwertdarstellung '?' verwendet.

DATAEXTRACT * FROM article
OUTFIELDS
ano 01-08
descry 09-39
stock 40-51
min_ord 52-63
price 64-74
weight 75-85
OUTSTREAM 'article.data' FORMATTED

Sie möchten die Quelltabelle article aus der Datenbankinstanz in den Datenstrom article.data entladen, wobei einige Spalten der Tabelle NULL-Werte enthalten.
Da für keine im Kommando aufgeführte Spalte eine Nullwertdarstellung definiert ist, versucht der Loader, die als Voreinstellung definierte Nullwertdarstellung (Datentyp CHAR) zu nutzen. Dies führt in jenen Fällen zum Fehler, in denen für die Spalten ein numerischer externer Datentyp definiert wurde. Die Bearbeitung des Kommandos wird mit einer Fehlermeldung abgebrochen.

DATAEXTRACT * FROM article
OUTFIELDS
ano 01-08
descr 09-39
stock 40-43 INTEGER
min_ord 44-45 INTEGER
price 46-53 DECIMAL (2)
weight 54-57 REAL
OUTSTREAM 'article.data' FORMATTED


null_condition (MaxDB: Loader)

null_condition

Syntaxregel zur Spaltenbeschreibung

Syntax

<null_condition> ::= NULL [IF] <condition> | DEFAULT NULL

Erläuterung

Bei der Auswertung der Bedingung wird der kürzere der jeweiligen Vergleichswerte (Wert im Datenstrom oder Nullwertdarstellung) mit Leerzeichen aufgefüllt.

Vor dem Laden jeder Zeile des Datenstroms wird geprüft, ob die für die Spalten formulierte Bedingung zutrifft. Wenn ja, wird der NULL-Wert in diese Spalte eingefügt, andernfalls der Wert aus dem zugeordneten Feld des Datenstroms.

Verwendung

Sie geben mit dieser Syntaxregel in einem Kommando zum Laden von Daten an, unter welchen Bedingungen der NULL-Wert in eine Spalte der Zieltabelle geladen werden soll.

Die DEFAULT-NULL-Bedingung kann dann verwendet werden, wenn die Darstellung des NULL-Wertes im Datenstrom für alle zu ladenden Spalten der Zieltabelle dieselbe ist. Die sonst nach NULL IF POS anzugebende Zeichenkette, wird bei der DEFAULT-NULL-Bedingung nur einmal als NULL-Spezifikation (null_spec) angegeben.

Spalten, die Sie als Schlüsselspalten (KEY) oder als NOT NULL definiert haben, können nicht mit dem NULL-Wert geladen werden. Das Laden der Tabelle wird mit einer entsprechenden Fehlermeldung abgebrochen.

Wenn Sie beim Anlegen der Tabelle in der Datenbankinstanz für Spalten einen anderen Vorschlagswert (Default) als NULL definiert haben, kann kein NULL-Wert in die Spalten geladen werden. In diesem Fall setzt der Loader anstelle des NULL-Wertes den für die Spalte definierten Vorschlagswert ein.

Sie möchten die Daten des Datenstroms article.data in die Datenbankinstanz laden, wobei in einige Spalten der Zieltabelle der NULL-Wert geladen werden soll. Für jede dieser Spalten definieren Sie eine eigene Bedingung. Wenn diese erfüllt ist, wird der NULL-Wert eingetragen.

DATALOAD TABLE article
ano 01-08
descr 09-39 NULL IF POS 09-11 = ' '
stock 40-43 INTEGER NULL IF POS 40-43 INTEGER < '0'
min_ord 44-45 INTEGER
price 46-53 DECIMAL (2) NULL IF POS 1 <> 'X'
OR POS 46-53 DECIMAL < '0'
weight 54-57 REAL
INSTREAM 'article.data' FORMATTED

Sie möchten die Daten des Datenstroms article.data in die Datenbankinstanz laden, wobei in einige Spalten der Zieltabelle der NULL-Wert geladen werden soll. Für alle im Kommando aufgeführten Spalten, für die DEFAULT NULL angegeben ist, gilt die gleiche Darstellung des NULL-Wertes '?'.

DATALOAD TABLE article
ano 01-08
descr 09-39 DEFAULT NULL
stock 40-43 INTEGER DEFAULT NULL
min_ord 44-45 INTEGER
price 46-53 DECIMAL (2) DEFAULT NULL
weight 54-57 REAL
INSTREAM 'article.data' FORMATTED
NULL '?'


null_spec (MaxDB: Loader)

null_spec

Syntaxregel zur Beschreibung des Datenstroms

Syntax

<null_spec> ::= NULL '<valLITERAL>'

valLITERAL

Nullwertdarstellung, maximale Länge 20 Zeichen

Der Vorschlagswert des Loader ist:
?                    (ein Fragezeichen und 19 Leerzeichen).

Verwendung

Sie legen damit die Zeichenkette fest, mit der aus der Datenbankinstanz geladene Nullwerte in Datenströmen repräsentiert werden.

Sie haben die Möglichkeit, auch für einzelne Kommandos den aktuellen Wert zu ändern.

Siehe auch:

Datenformat


number_spec (MaxDB: Loader)

number_spec

Syntaxregel zur Beschreibung des Datenstroms

Syntax

<number_spec> ::= DECIMAL '/[<t>]/<d>/'

t | Definiert das Zeichen für die Gliederung von Tausendern Der Vorschlagswerte des Loader ist kein Zeichen.
d | Definiert das Zeichen zum Trennen ganzer Zahlen von Dezimalstellen; Der Vorschlagswert des Loader ist ein Punkt.

Wird keine Nummernspezifikation oder kein Zeichen für t oder d angegeben, verwendet der Loader den jeweiligen Vorschlagswert.

Verwendung

Sie legen mit dieser Syntaxregel fest, welche Zeichen bei Dezimalzahlen zu verwenden sind, um Tausender zu gliedern und ganze Zahlen von Dezimalstellen zu trennen.

· Bei Verwenden dieser Datenformatdefinition im SET-Kommando legen Sie das Nummernformat für alle nachfolgenden Kommandos fest. Dieses gilt in einer Loader-Sitzung so lange, bis es durch ein neues SET-Kommando aufgehoben wird.

Nummernformat im SET-Kommando

SET DECIMAL ′/ /,/′
Ergibt folgendes Nummernformat: 1 999 987,98

SET DECIMAL ′///′
Ergibt folgendes Nummernformat (Vorschlagswert des Loader): 1999987.98

· Für einzelne Kommandos können Sie das vorgegebene Nummernformat ändern. Siehe dazu: Datenformat

Nummernformat in einem Kommando

DATAEXTRACT freight FROM edemo.orders
OUTSTREAM FILE ′orders.data′
FORMATTED
DECIMAL ′/./,/′

Ergibt folgendes Nummernformat für einen Wert in der Datei orders.data:
1.007,64


numerical_functions (MaxDB: Loader)

numerical_functions

Syntaxregel zur Spaltenbeschreibung

Syntax

<numerical_functions> ::= <scale_spec>
| <round_or_trunc_spec>
| <scale_spec> <round_or_trunc_spec>

Verwendung

Sie können mit dieser Syntaxregel numerische Datenwerte beim Laden aus dem Datenstrom in die Zieltabelle sowie beim Entladen aus der Quelltabelle in den Datenstrom skalieren, runden und/oder kürzen.

Beachten Sie, dass Sie scale_spec immer vor round_or_trunc_spec angeben müssen.

DATALOAD TABLE distance
...
cm 7 SCALE 2
cm 7 SCALE -3 ROUND 1
...
INSTREAM 'meter.data'

DATAEXTRACT * FROM distance
cm 10-14 INTEGER SCALE 2
m 14-17 INTEGER
km 18-21 INTEGER SCALE -3 TRUNC 2

OUTSTREAM 'dimensions.bin' FORMATTED


order_clause (MaxDB: Loader)

order_clause

Syntaxregeln zur Spaltenbeschreibung

Syntax

<order_clause> ::= ORDER BY <column_names >

Verwendung

Mit dieser Syntaxregel als Zusatz im DATAEXTRACT FOR DATALOAD-Kommando (Variante 2 des DATAEXTRACT-Kommandos) spezifizieren Sie eine Sortierreihenfolge der extrahierten Daten.

Eine Beschreibung dieser SQL-Anweisung finden Sie im Referenzhandbuch, Abschnitt ORDER-Klausel (order_clause).


output_column (MaxDB: Loader)

output_column

Syntaxregel zur Spaltenbeschreibung

Syntax

<output_column> ::= <column_id_spec> | <lit_column_spec>

Verwendung

Sie ordnen mit dieser Syntaxregel in einem Kommando zum Entladen von Anwendungsdaten die Spalten der Quelltabelle den Datenfeldern der Datenstroms zu und geben die externen Datentypen sowie die Bedingungen für das Entladen der Daten an.

DATAEXTRACT * FROM article
OUTFIELDS
ano 01-08 CHAR
desrc 09-39 CHAR
stock 40-43 INTEGER
min_ord 44-45 INTEGER
ordered 46-49 INTEGER
delivery_date 50-57 CHAR
price 58-65 DECIMAL (2)
weight 66-69 REAL
OUTSTREAM 'article.data' FORMATTED


output_column_list (MaxDB: Loader)

output_column_list

Syntaxregel zur Spaltenbeschreibung

Syntax

<output_column_list> ::= <output_column> | <output_column> <output_column_list>

Verwendung

Sie beschreiben damit in einem DATAEXTRACT-Kommando die zu entladenden Spalten einer Quelltabelle und die Darstellung der Datensätze im Datenstrom.

Regeln

· Die Reihenfolge der auszugebenden Spalten in der Spaltenbeschreibung ist beliebig.

· Die Spaltenliste kann nur Spalten der SELECT-Anweisung (select_expression) oder einen Teil dieser enthalten.

· Es werden nur Werte für Spalten ausgegeben, die in der Spaltenliste enthalten sind. Wenn die Spaltenliste mehr Spalten enthält als die SELECT-Anweisung, dann generiert der SAP DB Loader einen Fehler und beendet die Bearbeitung des Kommandos.

· Wenn Sie die Spalten der Quelltabelle nicht im Kommando beschreiben, müssen Sie das Schlüsselwort OUTFIELDS nicht angeben. Die Daten werden als Klartextwerte ausgegeben.

· Wenn Sie für den Datenstrom das Format COMPRESSED definieren, werden die Werte der zu extrahierenden Spalten in der Reihenfolge der Angabe in der SELECT-Anweisung ausgegeben und durch Separatoren voneinander getrennt.

· Wenn Sie für den Datenstrom das Format FORMATTED definieren, werden die Werte der zu extrahierenden Spalten formatiert und in der Reihenfolge der Angabe in der SELECT-Anweisung ausgegeben. Die Länge der einzelnen Ausgabewerte richtet sich nach den Definitionsgrößen der einzelnen Spalten in der Quelltabelle.

· Wenn auch die SELECT-Anweisung keine Spaltennamen (DATAEXTRACT * FROM ...) enthält, werden die Spalten entsprechend dem Format des Datenstroms formatiert und in der Reihenfolge ausgegeben, die von der Datenbank für die Abarbeitung des Kommandos festgelegt wurde.

Definition der Quelltabelle:

create table customer (cno char (4), name char (6) NOT NULL, zip integer, city char (11), PRIMARY KEY (cno))

Entladekommando:

DATAEXTRACT * from customer
OUTFIELDS
cno 01-04
name 06-12
zip 14-18
city 20-31
OUTSTREAM 'customer.data' FORMATTED;


outstream_spec (MaxDB: Loader)

outstream_spec

Syntaxregel zur Beschreibung des Datenstroms

Syntax

<outstream_spec> ::= OUTSTREAM < mediumtype_spec > '<valSTREAM_NAME>' [< stream_format_spec >] [< stream_extract >] [APPEND]

valSTREAM_NAME | Name und Pfad des Mediums , bei einem DATAEXTRACT-Kommando auch Name der zu erzeugenden Kommandodatei
APPEND | Eine bereits vorhandenes Medium wird nicht überschrieben, d.h. Daten oder erzeugte Ladeanweisungen werden am Ende des Mediums eingefügt. Diese Aussage gilt nicht für TABLEEXTRACT-Kommandos . Bei einem TABLEEXTRACT-Kommando wird ein vorhandenes Medium überschrieben.

Verwendung

Beim Entladen beschreiben Sie mit dieser Syntaxregel den Datenstrom .


packagestream_spec (MaxDB: Loader)

packagestream_spec

Syntaxregel zur Beschreibung des Datenstroms

Syntax

<packagestream_spec> ::= PACKAGE < outstream_spec >

Verwendung

DBEXTRACT-Kommando

DBLOAD-Kommando

TABLEEXTRACT-Kommando

TABLELOAD-Kommando


part_spec (MaxDB: Loader)

part_spec

Syntaxregel zur Beschreibung des Datenstroms

Syntax

<part_spec> ::= TABLE <table_name > | USER | ALL

TABLE

Eine einzelne Tabelle wird in einen Datenstrom entladen oder von diesem geladen.
Voraussetzung: Der Benutzer muss Eigentümer dieser Tabelle sein

USER

Es werden die Tabellen des aktuell am Loader angemeldeten Benutzers in einen oder mehrere Datenströme entladen oder die mit dem entsprechenden Kommando entladenen Tabellen aus diesen Datenströmen wiederaufgebaut. Der Benutzer, unter dem wiederaufgebaut wird, muss nicht identisch sein mit dem Benutzer, der die Tabellen entladen hat.

Wenn Sie Tabellen laden, die unter Angabe des Benutzers user1 entladen wurden, dann können die Tabellen unter Angabe des Benutzers user2 wieder geladen werden.

ALL

Alle Tabellen des Datenbankkatalogs werden in einen oder mehrere Datenströme entladen oder aus diesen Datenströmen geladen.
Voraussetzung: Der Benutzer muss der Datenbanksystemadministrator (SYSDBA-Benutzer) sein.

Verwendung

Diese Syntaxregel wird in folgenden Kommandos verwendet: TABLEEXTRACT-, TABLELOAD-, CATALOGEXTRACT- oder CATALOGLOAD-Kommando.

Sie legen fest, ob eine einzelne Tabelle, die Tabellen des angemeldeten Benutzer oder alle Tabellen des Datenbankkatalogs entladen oder geladen werden sollen.


restart (MaxDB: Loader)

restart

Syntaxregel zur Beschreibung des Datenstroms

Syntax

<restart> ::= RESTART <valPACKAGEGUID>

valPACKAGEGUID

ID, die zur Laufzeit vom Loader für die Kommandos erzeugt wird, die sich über mehr als eine Tabelle erstrecken

Verwendung

Die PACKAGEGUID und der Rechnername des Clients des Loader werden in die Tabelle TRANSFORMATIONPACKAGES eingetragen und in der Protokolldatei protokolliert.

Der Benutzer kann die PACKAGEGUID aus der Tabelle TRANSFORMATIONPACKAGES oder der Protokolldatei ermitteln, um das Kommando mit der entsprechenden PACKAGEGUID wiederaufzusetzen.


restore_spec (MaxDB: Loader)

restore_spec

Syntaxregel zur Tabellenbeschreibung

Syntax

<restore_spec> ::= FOR DATALOAD| FOR FASTLOAD| FOR DATAUPDATE

Verwendung

Mit dieser Syntaxregel in einem DATAEXTRACT-Kommando spezifizieren Sie, welches Kommando zum Laden von Daten in der Kommandodatei erzeugt werden soll.

Wenn ein FASTLOAD-Kommando erzeugt wird, enthält dieses Kommando als Wert für den Füllungsgrad der Datenbank (<usage_spec>) den Wert 80%. Dies ist der Vorschlagswert des Loader.

DATAEXTRACT FOR DATALOAD TABLE artikel
OUTFILE 'artikel.control'
OUTFILE 'artikel.daten'


round_or_trunc_spec (MaxDB: Loader)

round_or_trunc_spec

Syntaxregel zur Spaltenbeschreibung

Syntax

<round_or_trunc_spec> ::= ROUND <valFRACTION> | TRUNC <valFRACTION>

valFRACTION

Anzahl der Stellen nach dem Komma

Der Wert muß zwischen 0 und 18 liegen. Wenn die Zahl keine Nachkommastellen hat, hat die Funktion keinen Effekt.

Verwendung

Sie legen damit für eine Zahl die Anzahl der Stellen nach dem Komma fest.

ROUND <valFRACTION>

Der Wert wird ausgehend von der (<valFRACTION>+1). Stelle nach dem Komma gerundet. Wenn diese Ziffer >= 5 ist, wird aufgerundet. Wenn sie < 5 ist, wird abgerundet. Das Ergebnis ist eine Zahl, bei der die (<valFRACTION>+1). und alle folgenden Stellen 0 sind. Die vorderen Ziffern der Zahl können aber durch Aufrunden verändert worden sein.

DATALOAD TABLE entfernung
  ...
  cm 7 SCALE 2
  cm 7 SCALE -3 ROUND 1
...
INFILE 'meter.daten'

TRUNC <valFRACTION>

Die (<valFRACTION>+1). und alle folgenden Nachkommastellen des Wertes werden auf 0 gesetzt. Die ersten <valFRACTION> Stellen nach dem Komma bleiben unverändert.

DATAEXTRACT * FROM entfernung
  cm    10-14 INTEGER SCALE 2
  m     14-17 INTEGER
  km    18-21 INTEGER SCALE -3 TRUNC 2

OUTFILE 'dimensionen.bin' FORMATTED


scale_spec (MaxDB: Loader)

scale_spec

Syntaxregel zur Spaltenbeschreibung

Syntax

<scale_spec> ::= SCALE <valSCALE_FACTOR>

valSCALE_FACTOR

Skalierungsfaktor, kann positiv oder negativ sein

Der Wert, auf den sich die Syntaxregel bezieht, wird mit der entsprechenden Zehnerpotenz multipliziert.

Verwendung

Sie können mit dieser Syntaxregel Werte skalieren.

Diese Syntaxregel können Sie mit round_or_trunc_spec kombinieren.

DATALOAD TABLE entfernung
  ...
  cm 7 SCALE 2
  cm 7 SCALE -3
...
INFILE 'meter.daten'

DATAEXTRACT * FROM
  cm    10-14 INTEGER SCALE 2
  m     14-17 INTEGER
  km    18-21 INTEGER SCALE -3

OUTFILE 'dimensionen.bin' FORMATTED


select_expression (MaxDB: Loader)

select_expression

Syntaxregel zur Spaltenbeschreibung

Syntax

<select_expression>

Diese Datenbankabfrage wird genauso formuliert wie eine SELECT-Anweisung , jedoch steht anstelle von SELECT das Schlüsselwort DATAEXTRACT bzw. die Schlüsselworte EXTRACT DB. Alle Optionen einer SELECT-Anweisung sind dabei zulässig:

  • Auswahl der Ergebnisspalten und Bestimmung ihrer Reihenfolge in der Ergebnistabelle
  • Verknüpfung mehrerer Tabellen (Joins)
  • Auswahl von Ergebniszeilen über Qualifikationen
  • Festlegung einer bestimmten Sortierfolge
  • Festlegen von Sperren (WITH LOCK)

Verwendung

Mit dieser Syntaxregel in einem DATAEXTRACT-Kommando legen Sie fest, welche Spalten einer Tabelle extrahiert werden sollen.

DATAEXTRACT * FROM artikel
OUTFIELDS
  anr       01-08
  bez       09-39
  bestand   40-51
  min_best  52-63
  preis     64-74
  gewicht   75-85
OUTFILE 'artikel.daten' FORMATTED

DATAEXTRACT anr,bez,bestand,min_best FROM artikel order by anr
OUTFIELDS
  anr       1
  bez       2
  bestand   3
  min_best  4
OUTFILE 'artikel.daten'

DATAEXTRACT anr,bez,bestand,min_best FROM artikel WITH LOCK
OUTFIELDS
  anr       1
  bez       2
  bestand   3
  min_best  4
OUTFILE 'artikel.daten'


separator_spec (MaxDB: Loader)

separator_spec

Syntaxregel zur Beschreibung des Datenstroms

Syntax

<separator_spec> ::= SEPARATOR '<valSEPARATOR>'

valSEPARATOR

Trennzeichen für Datenfelder, muss genau ein Zeichen lang sein

Verwendung

Sie legen damit fest, mit welchem Zeichen Datenfelder in Datenströmen getrennt werden, die das Format COMRESSED haben.

Um sich den Vorschlagswert des Loader anzusehen, führen Sie das SET-Kommando aus.

Siehe auch:

Datenformat


set_column_spec (MaxDB: Loader)

set_column_spec

Syntaxregel zur Spaltenbeschreibung

Syntax

<set_column_spec> ::= SET <load_column_spec>

Verwendung

Sie definieren mit dieser Syntaxregel in einem DATAUPDATE-Kommando die Spalten der Zieltabelle, die mit diesem Kommando aktualisiert werden sollen.

DATAUPDATE TABLE customer
KEY cno 01-04
SET city 05-16
INSTREAM 'customer.data' FORMATTED


set_column_spec_mlt (MaxDB: Loader)

set_column_spec_mlt

Syntaxregel zur Spaltenbeschreibung

Syntax

<set_column_spec_mlt> ::= <set_column_spec> <set_column_spec_mlt>

Verwendung

Sie definieren mit dieser Syntaxregel in einem DATAUPDATE-Kommando die Spalten der Zieltabelle, die mit diesem Kommando aktualisiert werden sollen.

DATAUPDATE TABLE customer
KEY  cno  01-04
SET city 05-16
INSTREAM 'customer.data' FORMATTED


sequence_number (MaxDB: Loader)

sequence_number

Syntaxregel zur Spaltenbeschreibung

Syntax

<sequence_number> ::= SEQNO | SEQNO <valSTART>
| SEQNO <valSTART> <valINCREMENT>

valSTART | Startwert und erster zu ladender Wert
valINCREMENT | Abstand zwischen den zu ladenden Werten

Das Schlüsselwort SEQNO gibt an, daß Folgenummern generiert werden sollen. Sowohl der Startwert als auch der Abstand können negativ sein.

Wenn Sie im Kommando nur das Schlüsselwort SEQNO angegeben, dann ist der Startwert 0 und der Abstand zwischen den darauffolgenden Zahlen jeweils 1.

Wenn Sie im Kommando nach SEQNO nur den Startwert angegeben, beträgt der Abstand zwischen den darauffolgenden Zahlen jeweils 1.

Verwendung

Sie können mit dieser Syntaxregel selbst erzeugte Folgenummern mit frei wählbarem Startwert und Abstand laden.

Der berechenbare Zahlenbereich wird als zyklisch betrachtet, d. h. der Nachfolgewert des größten darstellbaren Wertes ist der neue kleinste darstellbare Wert. Auf diese Weise können beliebig viele und gegebenenfalls mehrfach wiederkehrende Folgenummern generiert werden.

Für die Speicherung der Folgenummern ist eine Spalte des Typs FIXED(10) ausreichend.

DATALOAD TABLE artikel
  anr       SEQNO 10000 5
  bez       2
  bestand   3 NULL IF POS 3 < '0'
INFILE 'artikel.daten' FORMATTED


simple_column_spec (MaxDB: Loader)

simple_column_spec

Syntaxregel zur Spaltenbeschreibung

Syntax

<simple_column_spec> ::= <column_descriptor> | <column_assignment>

Verwendung

Sie ordnen mit dieser Syntaxregel in einem DATAUPDATE-Kommando die Datenfelder der Qualifikationspalten im Datenstrom den Spalten der Zieltabelle zu und geben die externen Datentypen an.

DATAUPDATE TABLE artikel
 anr 01-08 CHAR
bez 09-39 CHAR
SET min_best 40-41 INTEGER
SET lieferdatum 42-49 CHAR

INFILE 'artikel.daten' FORMATTED


simple_condition (MaxDB: Loader)

simple_condition

Syntaxregel zur Tabellenbeschreibung

Syntax

<simple_condition> ::= POS <field_pos > <field_format > [HEX] <compare_operator > '<valLiteral>'

valLITERAL

Konstante

Einen zu vergleichenden Wert im Datensatz beschreiben Sie wie die übrigen Felder eines Datensatzes durch seine Position. Den externen Datentyp dieses Wertes müssen Sie nur dann angeben, wenn der Datentyp nicht CHAR ist.

Eine Konstante geben Sie als Klartextwert an und schließen Sie in einfache Anführungszeichen ein. Sie wird in den Datentyp des zu vergleichenden Wertes im Datensatz umgewandelt.

Wenn die als Vergleichswert dienende Konstante eine Zahl ist, muss sie ein gültiges Zahlenformat haben, also entweder eine Gleitkommazahl in Mantisse-/Exponent-Darstellung oder eine Festkommazahl mit der aktuell definierten oder im Loader voreingestellten Dezimaldarstellung sein.

Verwendung

Sie definieren mit dieser Syntaxregel das Selektionskriterium, mit dem festgelegt wird, welche Sätze des Datenstroms in welche Zieltabelle geladen werden. Die Selektion der zu ladenden Datensätze erfolgt durch den Vergleich mit einer Konstanten.

Sie wollen nur jene Datensätze aus dem Quelldatenstrom hotel.daten in die Zieltabelle hotel laden, bei denen der Preis unter 400,00 liegt.

DATALOAD TABLE hotel
  IF POS 41-44 REAL < '400,00'
      hnr     01-04 INTEGER
      name    09-18
      plz     20-25 DECIMAL
      ort     27-36
      preis   41-44 REAL
INFILE 'hotel.daten' FORMATTED


sql_mode (MaxDB: Loader)

sql_mode

Syntaxregel zum Sitzungsaufbau

Syntax

<sql_mode> ::= INTERNAL | ANSI | DB2 | ORACLE

INTERNAL | Datenbanksysteminterner SQL-Modus (Vorschlagswert des Systems))
ANSI | SQL-Dialekt entsprechend des ANSI-Standards (ANSI X3.135-1992, Entry SQL)
DB2 | SQL-Dialekt entsprechend der Definition für DB2 Version 4
ORACLE | SQL-Dialekt entsprechend der Definition für ORACLE7

Verwendung

Der damit eingestellte SQL-Modus bestimmt, welcher SQL-Dialekt vom Datenbanksystem verstanden wird. Er wird beim Verbindungsaufbau zwischen dem Loader und der Datenbankinstanz übergeben. Die SQL-Anweisungen und Lade-Kommandos werden entsprechend des eingestellten SQL-Modus interpretiert, wenn der Datenstrom nicht das Formate PAGES hat.

· Ohne Angabe eines SQL-Modus wird der SQL-Modus INTERNAL verwendet.

· Wenn Sie einen ungültigen SQL-Modus eingeben, wird automatisch der SQL-Modus INTERNAL angenommen.

· Der SQL-Modus kann innerhalb einer Kommandodatei oder eines Skriptes wechseln (SQLMODE-Kommando).


standard_code_spec (MaxDB: Loader)

standard_code_spec

Syntaxregel zur Beschreibung des Datenstroms

Syntax

<standard_code_spec> ::= ASCII | UCS2 | UTF8

Verwendung

In der code_spec legen Sie den Standardwert für die Interpretation von Datenströmen fest, die Klartextwerte enthalten. Der Vorschlagswert des Loader ist ASCII.

Sie haben die Möglichkeit, beim Laden oder Entladen von Daten diese zwischen verschiedenen Code-Typen zu transformieren.

Beim Entladen/Laden von ASCII-Daten in eine ASCII-Datenbank oder von UCS2-Daten in eine UNICODE-Datenbank ist keine Konvertierung notwendig.

Mögliche Kombinationen (datenbankinterner und externer Datentyp) sind:

Datenbankinterner Datentyp | Mögliche Codeattribute für Datenströme mit Klartextwerten beim Entladen
(VAR)CHAR ASCII | ASCII, UCS2, UTF8
(VAR)CHAR UNICODE | UCS2, UTF8
(VAR)CHAR BYTE | BINARY, ASCII (HEX), UCS2 (HEX), UTF8 (HEX)
Numerische Datentypen | ASCII, UCS2, UTF8

Datenbankinterner Datentyp | Mögliche Codeattribute für Datenströme mit Klartextwerten beim Laden
(VAR)CHAR ASCII | ASCII
(VAR)CHAR UNICODE | ASCII, UCS2, UTF8
(VAR)CHAR BYTE | BINARY, ASCII, UCS2 (HEX), UTF8 (HEX)
Numerische Datentypen | ASCII, UCS2, UTF8

Soll bei der Konvertierung von ASCII nach UCS2 eine bestimmte Code-Page verwendet werden, dann kann diese mit dem SET-Kommando SET <code_page_spec> angegeben werden.

Beim Entladen/Laden von LONG-Daten legen Sie die Standardwerte mit Hilfe der Syntaxregel longfile_code_spec fest.


standard_date_mask (MaxDB: Loader)

standard_date_mask

Syntaxregel zur Beschreibung des Datenstroms

Syntax

<standard_date_mask> ::= EUR | INTERNAL | ISO | JIS | USA

'YYYY' | Vierstellige Jahresbezeichnung
'MM' | Zweistellige Monatsbezeichnung (01-12)
'DD' | Zweistellige Tagesbezeichnung (01-31)

Format | Allgemeine Form | Beispiel
EUR | 'DD.MM.YYYY' | '23.01.2003'
INTERNAL | 'YYYYMMDD' | '20030123'
ISO/JIS | 'YYYY-MM-DD' | '2003-01-23'
USA | 'MM/DD/YYYY' | '01/23/2003'

Tages- und Monatsangaben müssen zweistellig sein. Bei allen Formaten außer INTERNAL müssen die Jahresangaben zwei- oder vierstellig sein. Beim Format INTERNAL muss die Jahresangabe vierstellig sein.

Verwendung

Sie legen mit der Standarddatumsmaske das Format der Klartextwerte fest, in dem DATE-Spalten ein- und ausgegeben werden.

Der Vorschlagswert des Loader ist INTERNAL.

· Bei Verwenden Standarddatumsmaske im SET-Kommando legen Sie das Datumsformat für alle nachfolgenden Kommandos fest. Dieses gilt in einer Loader-Sitzung so lange, bis es durch ein neues SET-Kommando aufgehoben wird.

Datumsformat im SET-Kommando

SET DATE ISO

· Für einzelne Kommandos können Sie das vorgegebene Datumsformat ändern. Siehe dazu: Datenformat

Datumsformat in einem Kommando

CREATE TABLE d_test (col1 DATE)
//
INSERT INTO d_test VALUES (DATE)
//
DATAEXTRACT * FROM d_test
OUTSTREAM ′d_test.data′
DATE ISO

Beispiel für Inhalt des Zieldatenstroms:
″2003-05-15″


standard_time_mask (MaxDB: Loader)

standard_time_mask

Syntaxregel zur Beschreibung des Datenstroms

Syntax

<standard_time_mask> ::= EUR | INTERNAL | ISO | JIS | USA

'HHHH' | Vierstellige Stundenbezeichnung
'HH' | Zweistellige Stundenbezeichnung
'MM' | Zweistellige Minutenbezeichnung (00-59)
'SS' | Zweistellige Sekundenbezeichnung (00-59)

Format | Allgemeine Form | Beispiel
EUR | 'HH.MM.SS' | '14.30.08'
INTERNAL | 'HHHHMMSS' | '00143008'
ISO/JIS | 'HH:MM:SS' | '14:30:08'
USA | 'HH:MM AM (PM)' | '2:30 PM'

Minuten- und Sekundenangaben müssen zweistellig sein. Die Stundenangaben müssen außer im Format INTERNAL zweistellig sein. Im Format INTERNAL müssen die Stundenangaben zwei- oder vierstellig sein.

Beim Laden von Daten führen in allen Formaten außer INTERNAL Stundenangaben größer 24 zu einem Fehler. Beim Entladen von Daten werden in allen Formaten außer INTERNAL die Stunden modulo 24 ausgegeben. Im Format INTERNAL können Stundenangaben bis 9999 verwendet werden.

Verwendung

Sie legen mit der Standardzeitmaske das Format der Klartextwerte fest, in dem TIME-Spalten ein- und ausgegeben werden.

Der Vorschlag des Loader ist INTERNAL.

· Bei Verwenden Standardzeitmaske im SET-Kommando legen Sie das Zeitformat für alle nachfolgenden Kommandos fest. Dieses gilt in einer Loader-Sitzung so lange, bis es durch ein neues SET-Kommando aufgehoben wird.

Zeitformat im SET-Kommando

SET TIME ISO

· Für einzelne Kommandos können Sie das vorgegebene Zeitformat ändern. Siehe dazu: Datenformat

Zeitformat in einem Kommando

CREATE TABLE t_test (col1 TIME)
//
INSERT INTO t_test VALUES (TIME)
//
DATAEXTRACT * FROM t_test
OUTSTREAM ′t_test.data′
TIME ISO

Beispiel für Inhalt des Zieldatenstroms:
″2003-05-15″


standard_timestamp_mask (MaxDB: Loader)

standard_timestamp_mask

Syntaxregel zur Beschreibung des Datenstroms

Syntax

<standard_timestamp_mask> ::= EUR | INTERNAL | ISO | JIS | USA

'YYYY' | Vierstellige Jahresbezeichnung
'MM' | Zweistellige Monatsbezeichnung (01-12)
'DD' | Zweistellige Tagesbezeichnung (01-31)
'HH' | Zweistellige Stundenbezeichnung (0-24)
'MM' | Zweistellige Minutenbezeichnung (00-59)
'SS' | Zweistellige Sekundenbezeichnung (00-59)
'NNNNNN' | Sechstellige Mikrosekundenbezeichnung

Format | Allgemeine Form | Beispiel
EUR/JIS/USA | 'YYYY-MM-DD-HH.MM.SS.NNNNNN' | '2003-01-23-14.30.08.456234'
INTERNAL | 'YYYYMMDDHHMMSSNNNNNN' | '20030123143008456234'
ISO | 'YYYY-MM-DD HH:MM:SS.NNNNNN' | '2003-01-23 14:30:08.456234'

Jahresangaben müssen vierstellig sein. Die Monats- und Tagesangaben müssen zweistellig sein.
Die Stunden-, Minuten- und Sekundenangaben müssen zweistellig sein.
Die Stellenanzahl bei der Angabe der Mikrosekunden ist zwischen 0 und 6 frei wählbar

Verwendung

Sie legen mit der Standardzeitstempelmaske das Format der Klartextwerte fest, in dem TIMESTAMP-Spalten ein- und ausgegeben werden.

Der Vorschlag des Loader ist INTERNAL.

· Bei Verwenden Standardzeitstempelmaske im SET-Kommando legen Sie das Zeitstempelformat für alle nachfolgenden Kommandos fest. Dieses gilt in einer Loader-Sitzung so lange, bis es durch ein neues SET-Kommando aufgehoben wird.

Zeitstempelformat im SET-Kommando

SET TIMESTAMP ISO

· Für einzelne Kommandos können Sie das vorgegebene Zeitstempelformat ändern. Siehe dazu: Datenformat

Zeitstempelformat in einem Kommando

CREATE TABLE ts_test (col1 TIMESTAMP)
//
INSERT INTO ts_test VALUES (TIMESTAMP)
//
DATAEXTRACT * FROM ts_test
OUTSTREAM ′ts_test.data′
TIMESTAMP ISO

Beispiel für Inhalt des Zieldatenstroms:
″2003-05-15 11:36:55.123456″


stream_extract (MaxDB: Loader)

stream_extract

Syntaxregel zur Beschreibung des Datenstroms

Syntax

<stream_extract> ::= START <valSTART_POS>
| START <valSTART_POS> <valEND_POS>
| START <valSTART_BLOCK> : <valSTART_POS> <valEND_BLOCK> : <valEND_POS>

valSTART_POS | Nummer des ersten zu ladenden Datensatzes
valEND_POS | Nummer des letzten zu ladenden Datensatzes
valSTART_BLOCK | Blocknummer der ersten zu ladenden Datensatzes
valEND_BLOCK | Blocknummer des letzten zu ladenden Datensatzes


stream_format_spec (MaxDB: Loader)

stream_format_spec

Syntaxregeln zur Beschreibung des Datenstroms

Syntax

<stream_format_spec> ::=
  < code_spec > <stream_format_spec>
| < number_spec > <stream_format_spec>
| < date_spec > <stream_format_spec>
| < time_spec > <stream_format_spec>
| < timestamp_spec > <stream_format_spec>
| < null_spec > <stream_format_spec>
| < bool_spec > <stream_format_spec>
| < int_spec > <stream_format_spec>
| < separator_spec > <stream_format_spec>
| < delimiter_spec > <stream_format_spec>
| COMPRESSED <stream_format_spec>
| FORMATTED <stream_format_spec>
| FORMATTED BINARY <stream_format_spec>
| PAGES <stream_format_spec>
| RECORDS <stream_format_spec>

Verwendung

Mit dieser Syntaxregel innerhalb eines Kommandos zum Laden und Entladen legen Sie die Datenformate und das Format des Datenstroms fest.


table_name (MaxDB: Loader)

table_name

Syntaxregel zur Tabellenbeschreibung

Syntax

<table_name> ::= <valTABLE_NAME> | <valTABLE_OWNER>.<valTABLE_NAME>

valTABLE_NAME | Name der Tabelle Geben Sie den Tabellennamen den SQL-Konventionen entsprechend an. Sie können auch einen Benutzernamen als Präfix definieren.
valTABLE_OWNER | Eigentümer der Tabelle

Verwendung

In einem Kommando zum Laden oder Entladen von Daten spezifizieren Sie mit dieser Syntaxregel einen Tabellennamen.

FASTLOAD TABLE hotel
  IF (POS 41-44 REAL < '400.00')
  AND
     (POS 41-44 REAL >= '400.00')
      hno     01-04 INTEGER
      name    09-18
      zip     20-25 DECIMAL
      city     27-36
      price   41-44 REAL
INFILE 'hotel.data' FORMATTED;

DATALOAD TABLE berolina.hotel
  IF (POS 41-44 REAL < '400.00')
  AND
     (POS 41-44 REAL >= '400.00')
      hno     01-04 INTEGER
      name    09-18
      zip     20-25 DECIMAL
      city     27-36
      price   41-44 REAL
INFILE 'hotel.data' FORMATTED;


table_spec (MaxDB: Loader)

table_spec

Syntaxregel zur Tabellenbeschreibung

Syntax

<table_spec> ::= < table_name > < if_condition >

Verwendung

Sie legen mit dieser Syntaxregel in einem DATALOAD-Kommando den/die Namen und Inhalt/e der Zieltabelle/n fest.

Sie gilt auch für das Laden einer Tabelle im FASTLOAD-Kommando .

Sie wollen aus dem Datenstrom adressen.data jene Datensätze, die mit dem Buchstaben 'k' beginnen, in die Zieltabelle mit dem Namen customer laden.

DATALOAD TABLE sqltravel00.customer     IF POS 1 = 'k'
  customerid  2
  name        3
  zip         5
  address     6


time_spec (MaxDB: Loader)

time_spec

Syntaxregel zur Beschreibung des Datenstroms

Syntax

<time_spec> ::= TIME <standard_time_mask > | TIME '<valFREE_MASK>'

valFREE_MASK

Frei definierbares Ausgabeformat

Verwenden Sie H für Stunden, M für Minuten und S für Sekunden. Die Minuten und Sekunden müssen zweistellig angegeben werden. Die Stunden müssen zwei- oder vierstellig angegeben werden.

Verwendung

Sie legen mit dieser Syntaxregel das Datenformat der Klartextwerte fest, in dem TIME-Spalten ein- und ausgegeben werden.

Dieses Format gilt nur für das Kommando zum Laden oder Entladen von Daten, in dem es angegeben wird. Ist in einem Kommando kein Zeitformat angegeben, wird entweder der Vorschlagswert des Loader oder ein mit dem SET TIME-Kommando festgelegter Wert verwendet.

Frei definierte Maske in einem Kommando

CREATE TABLE t_test (col1 TIME)
//
INSERT INTO t_test VALUES (TIME)
//
DATAEXTRACT * FROM t_test
OUTFILE ′t_test.data′
TIME ′HHHH-MM-SS′

Beispiel für Inhalt des Zieldatenstroms

″0011-46-56″


timestamp_spec (MaxDB: Loader)

timestamp_spec

Syntaxregel zur Beschreibung des Datenstroms

Ein Zeitstempel setzt sich aus einem Datums- und einem Zeitwert und der Angabe von Mikrosekunden zusammen.

Syntax

<timestamp_spec> ::= TIMESTAMP <standard_timestamp_mask >
| TIMESTAMP '<valFREE_MASK>'

valFREE_MASK

Frei definierbares Ausgabeformat

Verwenden Sie Y für das Jahr, M für den Monat, D für den Tag, H für die Stunden, M für die Minuten, S für die Sekunden und N für die Mikrosekunden.
Die Jahresbezeichnung muss zwei- oder vierstellig, Tagesbezeichnungen müssen zweistellig, Monatsbezeichnungen müssen zwei- oder dreistellig sein. Wenn Sie für den Monat drei Stellen, also MMM angeben, wird die Bezeichnung des Monatsnamens in der üblichen englischen Abkürzung ausgegeben, z. B. Oct für Oktober.
Die Minuten und Sekunden müssen zweistellig angegeben werden. Die Stunden müssen zwei- oder vierstellig angegeben werden. Die Stellenanzahl bei der Angabe der Mikrosekunden ist zwischen 0 und 6 frei wählbar.

Verwendung

Sie legen mit dieser Syntaxregel das Datenformat der Klartextwerte fest, in dem TIMESTAMP-Spalten ein- und ausgegeben werden.

Dieses Format gilt nur für das Kommando zum Laden oder Entladen von Daten, in dem es angegeben wird. Ist in einem Kommando kein Zeitstempelformat angegeben, wird entweder der Vorschlagswert des Loader oder ein mit dem SET TIMESTAMP-Kommando festgelegter Wert verwendet.

Frei definierte Maske in einem Kommando

CREATE TABLE ts_test (col1 TIMESTAMP)
//
INSERT INTO ts_test VALUES (TIMESTAMP)
//
DATAEXTRACT * FROM ts_test
OUTFILE ′ts_test.data′
TIMESTAMP ′YYYY-MM-DD-HH-MM-SS-NNNNNN′

Beispiel für Inhalt des Zieldatenstroms
″2003-11-15-13-14-12-987654″


usage_spec (MaxDB: Loader)

usage_spec

Syntaxregel zur Tabellenbeschreibung

Syntax

<usage_spec> ::= WITH <valUSAGE> % USAGE | WITH <valUSAGE> ROWS USAGE

valUSAGE

Positive ganze Zahl

Bei eines Prozentsatzes muss diese Zahl zwischen 50 und 100 liegen.

Bei Angabe der Anzahl der Zeilen spielt die Länge eines einzelnen Tabellensatzes eine Rolle.

Verwendung

Mit dieser Syntaxregel in einem FASTLOAD-Kommando können Sie festlegen, wie weit eine Tabellenseite (Page) mit Datensätzen gefüllt werden soll.

Sie können dazu einen Prozentsatz zwischen 50 und 100 festlegen oder definieren, wie viele Zeilen (Datensätze) in jede Tabellenseite geladen werden sollen. Wenn Sie eine Zeilenanzahl angeben, die über die tatsächlich mögliche hinausgeht, liefert der Loader beim Ladevorgang eine Fehlermeldung und weist die pro Tabellenseite maximal mögliche Zeilenzahl aus.

Die Voreinstellung des Loader ist 80 %.

· Wenn es sich um eine Tabelle handelt, die wenig oder gar nicht mehr verändert wird, ist es sinnvoll, den belegten Speicher zu mehr als 80% auszunutzen.

· Wenn es sich um eine Tabelle handelt, für die ein starkes dynamisches Wachstum erwartet wird, ist es sinnvoll, den belegten Speicher zu weniger als 80% auszunutzen.

Die Angabe der gewünschten Speicherauslastung garantiert nicht, dass diese tatsächlich erreicht wird. Verwenden Sie das Programm Database Manager, um die aktuelle Speicherausnutzung für die entsprechende Tabelle zu überprüfen.

Sie wollen eine Speicherausnutzung von 100 % beim FASTLOAD von Daten aus dem Datenstrom kunden.daten in die Tabelle kunde festlegen.

FASTLOAD with 100 % USAGE
TABLE kunde
  knr           1
  nachname      2
  plz           3
  ort           4
INFILE 'kunden.daten'

Sie wollen in jede Tabellenseite (Page) der Datenbankinstanz 25 Datensätze eintragen.

FASTLOAD with 25 ROWS USAGE
TABLE kunde
  knr           1
  nachname      2
  plz           3
  ort           4
INFILE 'kunden.daten'


user_statement (MaxDB: Loader)

user_statement

Syntaxregel zum Sitzungsaufbau

Syntax

<user_statement> ::= USER <valUSERNAME> <valPASSWORD> [<database_name_statement> ]

valUSERNAME | Benutzername (Datenbankbenutzer)
valPASSWORD | Benutzerkennwort

Benutzername und -kennwort werden vom Datenbanksystem automatisch in Großbuchstaben umgewandelt. Wenn die Umwandlung nicht gewünscht ist, müssen die Namen in Anführungszeichen eingeschlossen werden.

Verwendung

Anhand der damit übermittelten Benutzerdaten wird eine Datenbanksitzung mit der Datenbankinstanz aufgebaut.

Benutzerdaten können bei Aufruf mit dem Loader CLI mit Hilfe der Option -u oder auch bei Aufruf mit der Perl- oder Pythonschnittstelle des Loader übermittelt werden.


Syntaxregeln zur Beschreibung des Datenstroms (MaxDB: Loader)

Syntaxregeln zur Beschreibung des Datenstroms

Die hier aufgeführten Syntaxregeln sind Bestandteile der Beschreibung der Datenstroms in den Kommandos zum Entladen oder Laden. Die Verwendung dieser Syntaxregeln wird näher erläutert.

Sie gelangen auch direkt aus den Kommandos zum Aufbau einer Datenbanksitzung in die Beschreibung der jeweils verwendeten Syntaxregeln.

bool_spec | cataloginstream_spec catalogoutstream_spec code_page_spec code_spec configurationstream_spec | datainstream_spec dataoutstream_spec date_spec delimiter_spec
ebid_spec extract_files_spec | instream_spec int_spec | longfile_code_spec longfile_spec longfile_spec_mlt
mediumtype_spec | noheader_spec null_spec number_spec | outstream_spec
packagestream_spec part_spec | restart |


Syntaxregeln zur Spaltenbeschreibung (MaxDB: Loader)

Syntaxregeln zur Spaltenbeschreibung

Die hier aufgeführten Syntaxregeln sind Bestandteile der Spaltenbeschreibung in den Kommandos zum Entladen und Laden von Anwendungsdaten . Die Verwendung dieser Syntaxregeln wird näher erläutert.

Sie gelangen auch direkt aus der Beschreibung der Kommandos zum Laden und Entladen in die Beschreibung der jeweils verwendeten Syntaxregeln.

Wenn Sie Schlüsselwörter als Spaltennamen verwenden wollen, müssen diese in doppelte Anführungszeichen eingeschlossen werden.

acc_column_spec acc_column_spec_mlt | column_assignment column_descriptor column_id column_id_spec column_names | format_spec
generate_spec | key_column_spec | lit_column_spec load_column_spec load_column_spec_mlt
null_assign null_condition numerical_functions | order_clause output_column output_column_list | round_or_trunc_spec


Syntaxregeln zur Tabellenbeschreibung (MaxDB: Loader)

Syntaxregeln zur Tabellenbeschreibung

Die hier aufgeführten Syntaxregeln sind Bestandteile der Tabellenbeschreibung in den Kommandos zum Entladen und Laden von Anwendungsdaten . Die Verwendung dieser Syntaxregeln wird näher erläutert.

Sie gelangen auch direkt aus der Beschreibung der Kommandos zum Laden und Entladen von Daten in die Beschreibung der jeweils verwendeten Syntaxregeln.

Wenn Sie Schlüsselwörter als Tabellen- oder Benutzernamen verwenden wollen, müssen diese in doppelte Anführungszeichen eingeschlossen werden.

compare_operator condition | duplicates_clause | field_format field_pos
if_condition | restore_spec | simple_condition
table_name table_spec | usage_spec |


Syntaxregeln zum Sitzungsaufbau (MaxDB: Loader)

Syntaxregeln zum Sitzungsaufbau

Die hier aufgeführten Syntaxregeln sind Bestandteile von Kommandos zum Aufbau einer Datenbanksitzung . Die Verwendung dieser Regeln wird näher erläutert.

Sie gelangen auch direkt aus den Kommandos zum Aufbau einer Datenbanksitzung in die Beschreibung der jeweils verwendeten Syntaxregeln.

database_name_statement

sql_mode

user_statement


Schlüsselwörter (MaxDB: Loader)

Schlüsselwörter

Schlüsselwörter sind Bestandteile von Kommandos. Sie legen die Funktionalität des Kommandos fest, die durch Argumente und Optionen modifiziert wird.

DATALOAD TABLE artikel
  anr         01-08 CHAR
  bez         09-39 CHAR
  bestand     40-43 INTEGER
  min_best    44-45 INTEGER
  bestellt    46-49 INTEGER
  lieferdatum 50-57 CHAR
  preis       58-65 DECIMAL (2)
  gewicht     66-69 REAL
INFILE 'kunden.daten' FORMATTED

Der Loader kennt die nachfolgend aufgeführten Schlüsselwörter. Sie haben in einigen Fällen die Möglichkeit, auch die angegebenen alternativen Schlüsselwörter zu verwenden.

Schlüsselwörter A - C

Schlüsselwörter D - E

Schlüsselwörter F - K

Schlüsselwörter L - P

Schlüsselwörter R - S

Schlüsselwörter T - Z


Schlüsselwörter A - C (MaxDB: Loader)

Schlüsselwörter A - C

Schlüsselwörter des Loader

Schlüsselwort | Alternative Schlüsselwörter
ALL AND ANSI APPEND ASCII AUTOCOMMIT BINARY BOOLEAN BY CATALOG CATALOGEXTRACT CATALOGLOAD CHAR CODESET CODETYPE COMPRESS CONFIGURATION COUNT CURRENT | EXTRACT CATALOG LOAD CATALOG


Schlüsselwörter D - E (MaxDB: Loader)

Schlüsselwörter D - E

Schlüsselwörter des Loader

Schlüsselwort | Alternative Schlüsselwörter
DATA DATAEXTRACT DATALOAD DATAUPDATE DATE DB2 DBEXTRACT DBLOAD DEC DECIMAL DEFAULT DELIMITER DUPLICATES EBCDIC EUR EXTRACT CATALOG EXTRACT DATA EXTRACT DB EXTRACT TABLE | EXTRACT DATA LOAD DATA UPDATE DATA EXTRACT DB LOAD DB CATALOGEXTRACT DATAEXTRACT DBEXTRACT TABLEEXTRACT


Schlüsselwörter F - K (MaxDB: Loader)

Schlüsselwörter F - K

Schlüsselwörter des Loader

FASTLOAD
FILE
FOR
FORMATTED
HEX
HILO
IF
IGNORE
INFILE
INSTALLATION
INSTREAM
INTERNAL
INTEGER
ISO
JIS
KEY


Schlüsselwörter L - P (MaxDB: Loader)

Schlüsselwörter L - P

Schlüsselwörter des Loader

Schlüsselwörter | Alternatives Schlüsselwort
LANGUAGE LOAD CATALOG LOAD DATA LOAD DB LOAD TABLE LOHI LONGFILE MESSAGE NOT NULL NUMBER OFF ON OR ORACLE ORDER OTHERWISE OUTFILE OUTFIELDS OUTSTREAM PACKAGE PAGES PIPE POS | CATALOGLOAD DATALOAD DBLOAD TABLELOAD


Schlüsselwörter R - S (MaxDB: Loader)

Schlüsselwörter R - S

Schlüsselwörter des Loader

REAL
RECORDS
REJECT
RELEASE
RESTART
ROUND
ROWS
SCALE
SEPARATOR
SEQNO
SERVERDB
SET
SQLMODE
STAMP
START
SQLID
SYSDATE


Schlüsselwörter T - Z (MaxDB: Loader)

Schlüsselwörter T - Z

Schlüsselwörter des Loader

Schlüsselwörter | Alternative Schlüsselwörter
TABLE TABLEEXTRACT TABLELOAD TABLEUNLOAD TABLEUPDATE TAPE TERMCHARSET TIME TIMESTAMP TRUNC UID UPDATE UPDATE DATA UPDATE TABLE USA USAGE USE USER USERKEY USERGROUP VERSION WITH ZONED | EXTRACT TABLE LOAD TABLE UPDATE TABLE DATAUPDATE TABLEUPDATE


Begriffe und Vorgehensweisen (MaxDB: Loader)

Begriffe und Vorgehensweisen

Aufruf | AUTOCOMMIT |
Betriebsmodus | Binärwerte |
CATALOGEXTRACT | CATALOGLOAD | COMPRESSED
DATAEXTRACT | DATALOAD | DATAUPDATE
Daten | Datenbankinterne Datentypen | Datenstrom
Datentypen | DBEXTRACT | DBLOAD
Entladen von Daten | Entladen mit externen Sicherungswerkzeugen | Entladen von LONG-Werten
Externe Datentypen |  |
FASTLOAD | FORMATTED | FORMATTED BINARY
HEX-Werte | Hintergrund-Betriebsmodus |
INSTREAM | Interaktiver Betriebsmodus |
Java |  |
Klartextwerte | Kommandodatei | Kommandos
Kommandotrenner |  |
Laden von Daten | Laden mit externen Sicherungswerkzeugen | Laden von Binärwerten
Laden von LONG-Werten | Loader | Loader CLI
Loader-Server |  |
Medium | Metadaten |
Optionen | OUTSTREAM |
PAGES | Perl | Protokolldateien
Python |  |
RECORDS | REMARK |
Selektieren von Datensätzen | SET | SQL-Anweisungen
SQLMODE | Systemtabellen |
TABLEEXTRACT | TABLELOAD | Transformation
USE SERVERDB | USE USER |


Betriebsmodus (MaxDB: Loader)

Betriebsmodus

Beim Aufruf des Loader mit dem Loader CLI werden zwei Betriebsmodi angeboten. Die Modi werden implizit durch die Art des Aufrufs des Loader CLI aktiviert.

· Hintergrund- oder Skriptmodus (Angabe der Option -b)
Die gewünschten Kommandos und SQL-Anweisungen müssen in einer Kommandodatei abgelegt sein. Beim Aufruf des Loader müssen Sie diese Kommandodatei mit Hilfe der Option –b <command_file>angeben.

· Interaktiver oder Sitzungs-Modus (keine Angabe der Option -b)
Der Loader CLI arbeitet im interaktiven Modus, wenn die Kommandodateioption -b beim Aufruf des Loader CLI nicht angegeben wird.
In diesem Fall können Sie nach dem Start des Loader CLI auf der Kommandozeile mehrere Kommandos und SQL-Anweisungen eingeben.
Wenn Sie eine Zeile innerhalb eines mehrere Zeilen umfassenden Loader-Kommandos mit einem Schrägstrich („/“) abschließen, erkennt der Loader CLI, dass das Kommando noch nicht vollständig ist. Es wird deshalb bei Eingabe eines Zeilenvorschubs noch nicht ausgeführt.
Erst die Eingabe eines Zeilenvorschubs ohne vorhergehenden Schrägstrich zeigt dem Loader CLI an, dass das Kommando vollständig eingegeben wurde. Es wird daraufhin an den Loader-Server übermittelt und von diesem ausgeführt. Nach der Bearbeitung der einzelnen Kommandos und SQL-Anweisungen gibt der Loader CLI eine Meldung aus.
Um den interaktiven Modus zu beenden, geben Sie release oder exit ein.


Binärwerte (MaxDB: Loader)

Binärwerte

Für den Loader gilt:

Alle numerischen externen Datentypen (INTEGER, REAL, DECIMAL, ZONED) werden als Binärwerte interpretiert. Sie sind in die datenbankinternen Datentypen (FIXED, SMALLINT, INTEGER, FLOAT) beliebig konvertierbar.

· Daten des Datentyps INTEGER werden vom Loader grundsätzlich als vorzeichenbehaftete Werte interpretiert. Ihre Darstellung in einem Datenstrom kann mit Hilfe von int_spec angepasst werden (Angabe in Kommandos zum Laden und Entladen als Verarbeitungsspezifikation für den Datenstrom als Syntaxregel stream_format_spec).

· Daten des Datentyps REAL sind in der rechnerspezifischen Form codiert und können nicht ohne zusätzliche Konvertierung zwischen verschiedenen Betriebssystemen und Rechnerplattformen transportiert werden.

Siehe auch:

Umwandlung der Datentypen


Daten (MaxDB: Loader)

Daten

Der Loader bietet Funktionalität zum Entladen, Laden und Formatieren von Daten zwischen unterschiedlichen Datenquellen und Datenzielen in verschiedener Granularität an (Kommandos zum Entladen und Laden).

Der Loader unterscheidet folgende Daten:

· Anwendungsdaten

· Metadaten


Anwendungsdaten (MaxDB: Loader)

Anwendungsdaten

Anwendungsdaten sind die Daten, die in den Datenbanktabellen abgelegt sind.

Der Loader schreibt die Anwendungsdaten beim Entladen aus dem Datenbanksystem in einen Datenstrom und beim Laden vom Datenstrom in das Datenbanksystem.


Metadaten (MaxDB: Loader)

Metadaten

Das Datenbanksystem verwaltet seine Metadaten im Datenbankkatalog.

Metadaten sind für den Loader Daten, die Datenbankkataloginformationen wiederspiegeln und zusätzlich die Daten, die Anwendungsdaten, Datenbankkataloginformationen und Lade- und Entladevorgänge (Transformationen) den Anforderungen des Loader entsprechend beschreiben.

· Metadaten der Anwendungsdaten

· Metadaten des Datenbankkatalogs

· Metadaten der Transformationen


Datenstrom (MaxDB: Loader)

Datenstrom

Der Loader transformiert Metadaten des Datenbankkatalogs, Anwendungsdaten und Seiten einer Datenbankinstanz in Meta- und Anwendungsdaten (Datendefinitionen, Datensätze, Datenfelder) und Seiten und umgekehrt in einer für den Loader lesbaren Form. Die Daten werden dabei in Datenströme entladen bzw. von diesen geladen.

Jeder Datenstrom ist durch folgende Angaben gekennzeichnet:

· Metadaten und/oder Anwendungsdaten

· Datenformate und Format des Datenstroms

· Richtung

· Medium


Datenformat (MaxDB: Loader)

Datenformat

Bei der Mehrzahl der Loader-Kommandos zum Entladen und Laden können Sie angeben, welchen externen Datentyp und welches Datenformat die jeweiligen Feldwerte im Datenstrom haben bzw. haben sollen.

Außerdem können Sie z. B. festlegen, welche Separatoren und Delimiter verwendet werden sollen.

Vorgehensweise

Das Datenformat kann in Kommandos zum Laden und Entladen als Verarbeitungsspezifikation für den Datenstrom angegeben werden (Syntaxregel stream_format_spec).

code_spec
number_spec
date_spec|time_spec|timestamp_spec
null_spec
bool_spec
int_spec
separator_spec|delimiter_spec

Das angegebene Datenformat bezieht sich auf die Spalten, die den entsprechenden datenbankinternen Datentyp haben.


Format des Datenstroms (MaxDB: Loader)

Format des Datenstroms

Datenströme können folgende Formate haben:

· COMPRESSED

· FORMATTED

· FORMATTED BINARY

· PAGES

· RECORDS

Das Format kann in Kommandos zum Entladen und Laden als Verarbeitungsspezifikation für den Datenstrom angegeben werden (Syntaxregel stream_format_spec).

Der Loader setzt voraus, dass Datenströme mit Klartextwerten das Format COMPRESSED haben. Wenn dies nicht der Fall ist, müssen Sie in einem Kommando zum Entladen oder Laden das Format FORMATTED bzw. bei binär codierten Datenströmen das Format FORMATTED BINARY explizit angeben.


COMPRESSED (MaxDB: Loader)

COMPRESSED

COMPRESSED (CSV, Comma Separated Values) bezeichnet ein mögliches Format eines Datenstroms.

Wenn in einem Kommando zum Entladen oder Laden nicht explizit das Format FORMATTED oder FORMATTED BINARY angegeben wird, setzt das System voraus, dass die Daten des Quelldatenstroms im Format COMPRESSED vorliegen (Vorschlagswert des Loader). Es muss deshalb in einem Kommando zum Entladen oder Laden nicht explizit angegeben werden.

Das Format COMPRESSED ist nur für Quelldatenströme mit Klartextwerten möglich. Datenströme mit Binärwerten müssen mit dem Format FORMATTED BINARY geladen werden.

Wenn Sie also in einem Kommando zum Entladen oder Laden kein Format angeben und die Daten dennoch nicht in Klarschrift sind, erzeugt der Loader eine Fehlermeldung.

kunden.daten

Positionsnummer

1   2       3    4       ....

001,mueller,69185,Walldorf
002,schmidt,13403,Berlin
003,kleinert,25000,Gross-Klein

Die Datenfelder sind nicht einheitlich formatiert, sie sind durch Komma voneinander getrennt.

FASTLOAD-Kommando:

FASTLOAD TABLE kunde
  knr       1
  nachname  2
  plz       3
  ort       4
INFILE 'kunden.daten'

Datenzeilen

Im Format COMPRESSED ist eine Datenzeile genau so lang, wie für die Abbildung der Daten minimal erforderlich ist. Die Länge der einzelnen Datenfelder und die Gesamtlänge der Datenzeilen können variieren. Jede Datenzeile ist durch einen Zeilenumbruch abgeschlossen.

Beim Entladen von Daten entspricht eine Datenzeile in einer Quelltabelle dieses Formats genau einem Datensatz im Zieldatenstrom.

Beim Laden von Daten entspricht eine Datenzeile in einem Quelldatenstrom dieses Formats genau einem Datensatz in der Zieltabelle.

Datenfelder

Datenfelder in den Datenströmen müssen grundsätzlich vom externen Datentyp CHAR sein.

Die einzelnen Datenfelder sind durch ein frei wählbares Zeichen voneinander getrennt (Vorschlagswert des Loader: Komma). Sie können zusätzlich in frei wählbare Zeichen eingeschlossen sein (Vorschlagswert des Loader: doppelte Anführungszeichen).

Wenn in einer Datenzeile Trennzeichen unmittelbar aufeinanderfolgen, dann ist der Wert die leere Zeichenkette. Wenn die relative Position größer ist, als die Anzahl von Werten in der Zeile, dann ist der Wert ebenfalls die leere Zeichenkette.

Positionsangabe

Die Zuordnung eines Datenfeldes des Datenstroms zu einer Spalte in der Tabelle erfolgt gemäß der Positionsangabe <field_pos> in einem Kommando zum Entladen oder Laden von Daten. Diese beschreibt eine relative Position innerhalb des Datensatzes. Sie gibt also an, der wievielte Wert eines Datensatzes in eine/aus einer bestimmte/n Spalte geladen werden soll.

Beim Entladen von Daten aus der Datenbank in einen Datenstrom ordnen Sie der ersten Spalte Ihrer Liste die Position 1 zu. Die nachfolgenden Spalten erhalten aufsteigende, jeweils um die Zahl 1 erhöhte Positionsnummern. Das bedeutet auch, dass jede Positionsnummer nur einmal vergeben werden kann.

Beim Laden von Daten aus einer Quelltabelle müssen die Datenfelder der Zieltabelle in der Datenbank in aufsteigender Reihenfolge sortiert sein. Es ist möglich, verschiedene Spalten mit den gleichen Eingabewerten zu belegen oder auch Positionen auszulassen. Wenn Trennzeichen unmittelbar aufeinanderfolgen oder die relative Position größer ist als die Anzahl von Werten in der Zeile, dann ist die leere Zeichenkette der Wert.


FORMATTED (MaxDB: Loader)

FORMATTED

FORMATTED (FWV, Fixed Width, Columnar Values) bezeichnet ein mögliches Format eines Datenstroms. Da dieses Format nicht der Vorschlagswert des Loader ist, muss es in einem Kommando zum Entladen oder Laden explizit angegeben werden.

Das Format FORMATTED ist nur für Quelldatenströme möglich, die Klartextwerte enthalten. Datenströme mit Binärwerten müssen mit dem Format FORMATTED BINARY geladen werden.

kunden.daten

Pos.-Nr.

1 2 3 4 5 6 7 8 9 .....

0 1 m u e l l e r - 6 9 1 8 5 W a l l d o r f - - -
0 2 s c h m i d t - 1 3 4 0 3 B e r l i n - - - - -
0 3 k l e i n e r t 2 5 0 0 0 G r o s s - K l e i n

Die Datenfelder sind einheitlich formatiert.

FASTLOAD-Kommando:

FASTLOAD TABLE kunde
  knr       01-02
  nachname  03-10
  plz       11-15
  ort       16-27
INFILE 'kunden.daten' FORMATTED

Datenzeilen

Eine Datenzeile im Datenstrom entspricht einem Datensatz, der entladen oder geladen werden soll.

Alle Datenzeilen haben die gleiche feste Länge. In jeder Zeile im Datenstrom sind die einzelnen Datenfelder an gleicher Position mit gleicher Länge zu finden. Jede Datenzeile ist mit einem Zeilenumbruch abgeschlossen.

Datenfelder

Die Zuordnung zwischen Datenfeldern des Datenstroms und Tabellenspalten erfolgt anhand der Positionsangabe in einem Kommando zum Entladen oder Laden von Daten.

Positionsangabe

Die Datenfelder des Datenstroms werden durch ihre Byte-Anfangs- und -Endposition beschrieben. Die erste mögliche Byte-Anfangsposition ist 1. Die Angabe einer Endposition ist optional. Wenn für ein Datenfeld keine Endposition angegeben wird, hat dieses Datenfeld die Länge 1.

Die Zuordnung zwischen Datenfeldern des Datenstroms und Tabellenspalten kann in beliebiger Reihenfolge erfolgen. Die Reihenfolge hat auch keine Auswirkungen auf die Verarbeitungsgeschwindigkeit.

Sowohl beim Entladen als auch Laden von Daten müssen die Positionsangaben nicht lückenlos aufeinanderfolgen. Beim Entladen füllt der Loader die Lücken mit Leerzeichen auf.


FORMATTED BINARY (MaxDB: Loader)

FORMATTED BINARY

FORMATTED BINARY (FWV, Fixed Width, Columnar Values) bezeichnet ein mögliches Format eines Datenstroms. Da dieses Format nicht der Vorschlagswert des Loader ist, muss es in einem Kommando zum Entladen und Laden explizit angegeben werden.

Mit diesem Format ist es möglich, Binärwerte zu entladen und zu laden.

Das Format FORMATTED BINARY entspricht im wesentlichen dem Format FORMATTED. Es unterscheidet sich jedoch dadurch, dass die Länge eines Datensatzes nur durch die Summe der Längen der einzelnen Datenfelder bestimmt ist.

kunden.daten

Pos.-Nr. | 1 2 3 4 5 6 7 8 9 .....
 | 0 1 m u e l l e r x 6 9 1 8 5 W a l l d o r f 0 2 s c h m i d t 1 3 4 0 3 B e r l i n 0 3 k l e i n e r t 2 5 0 0 0 G r o s s - K l e i n

Die Datenfelder sind einheitlich formatiert.

FASTLOAD-Kommando:

FASTLOAD TABLE kunde
  knr       01-02
  nachname  03-10
  plz       11-15
  ort       16-26
INFILE 'kunden.daten' FORMATTED BINARY

Datenfelder

Die Datenfelder können Sonderzeichen enthalten und haben alle die gleiche feste Länge. Dies trifft damit auch auf die einzelnen Datensätze zu.

Die Zuordnung zwischen Datenfeldern des Datenstroms und Tabellenspalten erfolgt gemäß der Positionsangabe <field_pos> im Kommando zum Entladen oder Laden.

Im Unterschied zu FORMATTED wird ein Datensatz nicht zusätzlich durch einen Zeilenumbruch abgeschlossen.

Positionsangaben

Datenfelder werden durch ihre Byte-Anfangs- und -Endposition beschrieben. Die erste mögliche Byte-Anfangsposition eines Datensatzes ist 1. Die Angabe einer Endposition ist optional. Wenn sie fehlt, hat das entsprechende Datenfeld die Länge 1.

Die Datenfelder des Datenstroms können den Tabellenspalten in beliebiger Reihenfolge zugeordnet werden. Die Reihenfolge hat auch keine Auswirkungen auf die Verarbeitungsgeschwindigkeit.

Sowohl beim Entladen als auch Laden von Daten müssen die Positionsangaben nicht lückenlos aufeinanderfolgen. Beim Entladen füllt der Loader die Lücken mit Leerzeichen auf.


PAGES (MaxDB: Loader)

PAGES

PAGES bezeichnet ein mögliches Format eines Datenstroms. Die Anwendungsdaten werden in Seiten abgelegt.


RECORDS (MaxDB: Loader)

RECORDS

RECORDS bezeichnet ein mögliches Format des Datenstroms.

Es handelt sich bei diesem Format um ein proprietäres SAP DB-Format.


Richtung (MaxDB: Loader)

Richtung

Richtung des Datenstroms

INSTREAM: von einem Loader-Datenstrom in eine SAP DB-Datenbankinstanz

OUTSTREAM: von einer SAP DB-Datenbankinstanz in einen Loader-Datenstrom


Datentypen (MaxDB: Loader)

Datentypen

Bei der Mehrzahl der Loader-Kommandos zum Entladen und Laden können Sie angeben, welchen Datentyp die jeweiligen Feldwerte im Datenstrom haben bzw. haben sollen. Diese Spezifikation gibt dem Loader an, wie die Daten des Datenstroms zu interpretieren sind.

· Beim Laden von Anwendungsdaten in eine Tabelle werden die angegebenen externen Datentypen in datenbankinterne Datentypen konvertiert und die entsprechenden Spaltenwerte einer Tabelle geladen.

· Beim Entladen von Anwendungsdaten aus einer Tabelle werden die datenbankinternen Datentypen in die angegebenen externen Datentypen konvertiert und die entsprechenden Spaltenwerte entladen.

Siehe auch:

Umwandlung der Datentypen

Bei den Kommandos TABLELOAD und TABLEEXTRACT ist es nicht möglich, einen externen Datentyp anzugeben.

Der externe Datentyp und der entsprechende datenbankinterne Datentyp des Spaltenwerts in der Zieltabelle müssen nicht notwendigerweise übereinstimmen.

Die Datenbanktabelle artikel fordert für den Wert in der Spalte bestellt den datenbankinternen Datentyp FIXED.

Das FASTLOAD-Kommando definiert für die Spalte bestellt den externen Datentyp INTEGER.

FASTLOAD TABLE artikel
anr            01-08
bez            09-39 CHAR
bestand        40-43 INTEGER
min_best       44-45 INTEGER
bestellt       46-49 INTEGER
lieferdatum    50-57 CHAR
preis          58-65 DECIMAL(2)
gewicht        66-69 REAL
INFILE 'artikel.daten' FORMATTED

Die Daten der Spalte bestellt werden beim Laden in den datenbankinternen Datentyp FIXED konvertiert.


Datenbankinterne Datentypen (MaxDB: Loader)

Datenbankinterne Datentypen

Datenbankinterne Datentypen sind die für die Spalten der Datenbanktabelle definierten Datentypen.

Eine Erläuterung aller datenbankinternen Datentypen finden Sie im Referenzhandbuch, Abschnitt Datentyp (data_type).


Externe Datentypen (MaxDB: Loader)

Externe Datentypen

Externe Datentypen sind die Datentypen, in die der Loader die datenbankinternen Datentypen beim Entladen von Anwendungsdaten umwandeln kann bzw. die der Loader beim Laden in datenbankinterne Datentypen umwandeln kann.

Für jeden zu entladenden oder ladenden Feldwert kann in den Kommandos zum Entladen oder Laden ein externer Datentyp als Feldspezifikation angegeben werden (format_spec).

In den Kommandos TABLEEXTRACT und TABLELOAD kann kein externer Datentyp angegeben werden.

Wenn für einen Feldwert kein externer Datentyp angegeben ist, wählt der Loader als Vorschlagswert den Datentyp CHAR für diesen Feldwert aus. Für den Fall, dass der Feldwert nicht den Datentyp CHAR hat bzw. der Datentyp CHAR nicht gewünscht ist, ist die Angabe des Datentyps daher zwingend erforderlich.

Der Loader kann folgende externe Datentypen verarbeiten:

CHAR (Klartextwert) | Je nach Rechner ASCII-, UCS2- oder UTF8-codiert, max. 254 Bytes lang
INTEGER (Binärwert) | Binär codiert (rechnerspezifisch), 1, 2 oder 4 Bytes lang, Vorzeichen in Bit 0, negative Werte in Zweierkomplementform
REAL (Binärwert) | Gleitkommadarstellung mit Mantisse und Exponent, 4 oder 8 Bytes lang, in der rechnerspezifischen Darstellung
DECIMAL (Binärwert) | Gepackt dezimal: eine Ziffer pro Halbbyte, Vorzeichen im am weitesten rechts stehenden Halbbyte, 1 bis 10 Bytes lang, max. 18 Ziffern, die Stellung des gedachten Dezimalpunktes wird vom Typ der Tabellenspalte abgeleitet
DECIMAL(n) (Binärwert) | n gibt die Anzahl der Stellen rechts vom gedachten Dezimalpunkt an
ZONED (Binärwert) | Gezont dezimal: zulässig ist das /370 Zoned Data Format, die Stellung des gedachten Dezimalpunktes wird vom Typ der Tabellenspalte abgeleitet
ZONED(n) (Binärwert) | n gibt die Anzahl der Stellen rechts vom gedachten Dezimalpunkt an


Umwandlung der Datentypen (MaxDB: Loader)

Umwandlung der Datentypen

Der Loader kann numerische Datentypen ineinander umwandeln, falls erforderlich.

Das Lesen bzw. die Ausgabe im externen Datentypen CHAR ist für jeden datenbankinternen Datentyp möglich.

· Beim Laden von Daten in eine Tabelle werden die angegebenen externen Datentyp in datenbankinterne Datentypen konvertiert und die entsprechenden Spaltenwerte einer Tabelle geladen.

· Beim Entladen von Daten aus einer Tabelle werden die datenbankinternen Datentypen in die angegebenen externen Datentypen konvertiert und die entsprechenden Spaltenwerte entladen.

 | Externer Datentyp | Datenbankinterner Datentyp
Laden von Daten in eine Datenbankinstanz | INTEGER, DECIMAL, ZONED, REAL | FIXED, FLOAT, SMALLINT, INT[EGER]
Entladen von Daten aus einer Datenbankinstanz | FIXED, SMALLINT, INTEGER | INTEGER, DECIMAL, ZONED, REAL
 | FLOAT | REAL oder CHAR[ACTER]

DATALOAD TABLE artikel
   anr         01-08
   bez         09-39
   bestand     40-43 INTEGER
   min_best    44-45 INTEGER
   bestellt    46-49 INTEGER
   lieferdatum 50-57
   preis       58-65 DECIMAL (2)
   gewicht     66-69 REAL
INFILE 'kunden.daten' FORMATTED


Entladen mit externen Sicherungswerkzeugen (MaxDB: Loader)

Entladen mit externen Sicherungswerkzeugen

Wenn das Entladen von Daten mit den Loader-Kommandos DBEXTRACT oder CATALOGEXTRACT ALL erfolgt, ist der Einsatz eines externen Sicherungswerkzeugs möglich.

Voraussetzung

Anschluss Externer Sicherungswerkzeuge

Über das Loader-Kommando SET BACKUPTOOL wird das externe Sicherungswerkzeug der Loader-Sitzung festgelegt.

Vorgehensweise

Sie starten den Entladevorgang direkt aus dem Loader. Die Pipes zur Übertragung der Sicherungsdaten werden vom Loader im Zuge eines Entladevorgangs implizit angelegt. Sie dürfen vorher nicht vorhanden sein.

Bei der Angabe des Medientyps (mediumtype_spec) müssen Sie TAPE angeben.


Entladen von LONG-Werten (MaxDB: Loader)

Entladen von LONG-Werten

Beim Entladen von Anwendungsdaten gibt es Besonderheiten, wenn Werte mit dem datenbankinternen Datentyp LONG entladen werden.

In der Syntaxregel longfile_spec in longfile_spec_mlt geben Sie für jede einzelne zu entladende LONG-Spalte den Namen und Pfad des LONG- Datenstroms an, in den die LONG-Werte einzufügen sind.

Für das Entladen können beide Varianten der Syntaxregel verwendet werden.

  • Verwenden Sie für eine zu entladende LONG-Spalte immer dann eine Spalten-ID, wenn auch in der Spaltenliste für diese Spalte eine Spalten-ID angegeben ist (siehe output_column_list ).
  • Verwenden Sie den Spaltennamen, wenn in der Spaltenliste für diese Spalte der Spaltenname angegeben ist.

DATAEXTRACT * FROM hotel
OUTFILE ′hotel.daten′
LONGFILE info ′info.daten′

DATAEXTRACT knr, name plz, adresse, info FROM hotel
OUTFIELDS
   knr    1
   name     2
   plz      3
   adresse  4
   info     5
   OUTFILE 'hotel.daten'
LONGFILE info 'info.daten'

Beim Entladen von LONG-Werten müssen folgende Fälle unterschieden werden:

  • Jeder zu entladende LONG-Wert in separaten LONG-Datenstrom
  • Alle zu entladenden LONG-Werte in einen LONG-Datenstrom


Jeder zu entladende LONG-Wert in separaten LONG-Datenstrom (MaxDB: Loader)

Jeder zu entladende LONG-Wert in separaten LONG-Datenstrom

Jeder zu entladende LONG-Wert einer Spalte wird in einen separaten Datenstrom geschrieben.

Sie geben im Kommando zum Entladen von Daten für jede zu entladende LONG-Spalte den Namen des LONG-Datenstroms mit einer Anzahl von Platzhaltern für eine fortlaufende Numerierung der erzeugten LONG-Datenströme an.

Wenn die zu entladende LONG-Spalte in einem Datensatz keinen Wert enthält (Wert ist die leere Zeichenkette), dann wird für diesen LONG-Wert ein leerer LONG-Datenstrom erzeugt.

Mit Hilfe des so erzeugten eindeutigen Mediennamens werden die einzelnen LONG-Datenströme dem entsprechenden Datensatz in der Zieltabelle zugeordnet.

Verwenden Sie als Platzhalter eine ausreichenden Anzahl von Nummernzeichen am Ende des Mediennamens. Wenn während des Entladens die Obergrenze der Nummerierung erreicht wird aber noch weitere Werte zu entladen sind, dann erzeugt der Loader eine Fehlermeldung und bricht die Bearbeitung des Kommandos ab.

DATAEXTRACT * FROM hotel
   knr      1
   name     2
   info     3
OUTFILE 'hotel.daten' FORMATTED
LONGFILE info 'info.daten.###'

Der Loader erzeugt für den ersten zu entladenden LONG-Wert den Datenstrom mit dem Namen info.daten.001, für den zweiten den Datenstrom info.daten.002 usw.
Inhalt des Zieldatenstroms:

10,Excelsior,'info.daten.001'
30,Flora, 'info.daten.002'
60,Bellevue,'info.daten.003'

Siehe auch:

Entladen von LONG-Werten

Alle zu entladenden LONG-Werte in einen LONG-Datenstrom


Alle zu entladenden LONG-Werte in einen LONG-Datenstrom (MaxDB: Loader)

Alle zu entladenden LONG-Werte in einen LONG-Datenstrom

Alle zu entladenden LONG-Werte einer Spalte werden in einen Datenstrom geschrieben

Sie geben im Kommando zum Entladen von Daten pro LONG-Spalte den Namen eines Datenstroms an, in die jeweils die LONG-Werte dieser zu entladenden LONG-Spalte eingetragen werden.

Wenn die zu entladende LONG-Spalte in einem Datensatz keinen Wert enthält (Wert ist die leere Zeichenkette), dann wird die Positionsangabe für diesen LONG-Wert wie folgt erzeugt: Anfangsposition ist die Endposition des vorhergehenden LONG-Wertes der Spalte plus 1; Endposition ist die Endposition des vorhergehenden LONG-Wertes der Spalte. Daraus ergibt sich, dass die Anfangsposition immer genau einen Werte größer ist als die Endposition.

Die Zuordnung von LONG-Werten zu den Datensätzen erfolgt mit Hilfe der Anfangs- und Endposition des erzeugten LONG-Wertes im Datenstrom:

DATAEXTRACT * FROM hotel
OUTFIELDS
   hno      1
   name     2
   info     3
OUTFILE 'hotel.data'
LONGFILE info 'info.data'

Inhalt des Zieldatenstroms:

10,Excelsior,1-880
30,Flora,881-1046
60,Bellevue,1047-1360

Siehe auch:

Entladen von LONG-Werten

Jeder zu entladende LONG-Wert in separaten LONG-Datenstrom


HEX-Werte (MaxDB: Loader)

HEX-Werte

Sie können einen externen Datentyp mit der zusätzlichen Spezifikation HEX als hexadezimalen Wert beschreiben.

Damit haben Sie die Möglichkeit, alle Datentypen auch hexadezimal codiert zu laden oder zu entladen. Im Ergebnis wird jedes Byte der Daten durch zwei Hexadezimalziffern repräsentiert. Jeder Wert im Datenstrom belegt dann doppelt soviel Platz wie der Wert des gleichen Datentyps ohne die Spezifikation als HEX-Wert.

FASTLOAD TABLE kunde
  knr       01-03 CHAR HEX
  nachname  04-12 CHAR HEX
  plz       13-17 INTEGER HEX
  ort       18-29 CHAR HEX
INFILE 'kunden.daten' FORMATTED

DATALOAD TABLE artikel IF POS 40-47 INTEGER HEX > '0'
  anr       01-08
  bez       09-39 NULL IF POS 09-11 = ' '
  bestand   40-47 INTEGER HEX
  min_best  47-48 INTEGER
  preis     48-55 DECIMAL (2)
  gewicht   56-59 REAL
INFILE 'artikel.daten' FORMATTED


Klartextwerte (MaxDB: Loader)

Klartextwerte

Feldwerte mit dem externen Datentyp CHAR sind Klartextwerte, d.h. diese Werte bestehen aus lesbaren Zeichen.

  • Klartextwerte können in unterschiedlichen Ausprägungen vorliegen: ASCII, UCS2 oder UTF8 (Datenformat code_spec ).
  • Für Klartextwerte, die Datum, Zeit oder einen Zeitstempel darstellen, können deren Datenformate ( date_spec , time_spec , timestamp_spec ) angegeben werden.

Diese Datenformate können in Kommandos zum Laden und Entladen als Verarbeitungsspezifikation für den Datenstrom angegeben werden (Syntaxregel stream_format_spec ).

Klartextwerte können für Spalten jedes beliebigen datenbankinternen Datentyps als Eingabe verwendet und in diesen konvertiert werden. Wenn Klartextwerte in numerische Spalten geladen werden sollen, müssen die Werte auch als Zahl interpretierbar sein.


Laden mit externen Sicherungswerkzeugen (MaxDB: Loader)

Laden mit externen Sicherungswerkzeugen

Wenn das Laden von Daten mit den Loader-Kommandos DBLOAD oder CATALOGLOAD ALL erfolgt, ist der Einsatz eines externen Sicherungswerkzeugs möglich.

Voraussetzung

Anschluss Externer Sicherungswerkzeuge

Über das Loader-Kommando SET BACKUPTOOL wird das externe Sicherungswerkzeug der Loader-Sitzung festgelegt.

Vorgehensweise

Sie starten den Ladevorgang direkt aus dem Loader.

Bei der Angabe des Medientyps (mediumtype_spec) müssen Sie die externe Sicherungskennung angeben (TAPE <ebid_spec>).


Laden von Binärwerten (MaxDB: Loader)

Laden von Binärwerten

Alle numerischen externen Datentypen (INTEGER, REAL, DECIMAL, ZONED) werden als Binärwerte interpretiert.
Sie sind in die datenbankinternenen Datentypen (FIXED, SMALLINT, INTEGER, FLOAT) beliebig konvertierbar (Umwandlung der Datentypen).

· Daten des Datentyps INTEGER werden vom Loader grundsätzlich als vorzeichenbehaftete Werte interpretiert. Mit Hilfe der Syntaxregel <int_spec> spezifizieren Sie, wie diese Werte im Quelldatenstrom dargestellt sind.

· Daten des Datentyps REAL sind in der rechnerspezifischen Form codiert und können nicht ohne zusätzliche Konvertierung zwischen verschiedenen Betriebssystemen und Rechnerplattformen transportiert werden.

Mit den FASTLOAD-Kommando und dem DATALOAD-Kommando können externe binäre Werte in Datenbanktabellen geladen werden.

DATALOAD TABLE hotel
      hnr     01-04 INTEGER
      name    09-18
      plz     20-25 DECIMAL
      ort     27-36
      preis   41-44 REAL
INFILE 'hotel.daten' FORMATTED

Voraussetzungen

Der Quelldatenstrom muss im Ladekommando mit dem Format FORMATTED oder FORMATTED BINARY angegeben werden. Der Datenstrom muss binär kodiert sein.


Laden von LONG-Werten (MaxDB: Loader)

Laden von LONG-Werten

In einem Kommando zum Laden von Anwendungsdaten definieren Sie mit Hilfe der Syntaxregel longfile_spec in longfile_spec_mlt für jede einzelne zu ladende Spalte des datenbankinternen Datentyps LONG den Namen und Pfad des Datenstroms , aus dem die LONG-Werte einzufügen sind.

Beim Laden von LONG-Werten können Sie nur die Variante LONGFILE <valCOLUMN_NAME> '<valFILE_NAME>' der Syntaxregel verwenden, da im Ladekommando nur Spaltennamen aber keine Spalten-IDs verwendet werden können (siehe: column_descriptor ).

Beim Laden von LONG-Werten müssen folgende Fälle unterschieden werden:

  • Jeder einzufügende LONG-Wert in separatem LONG-Datenstrom
  • Alle einzufügenden LONG-Werte in einem LONG-Datenstrom


Jeder einzufügende LONG-Wert in separatem LONG-Datenstrom (MaxDB: Loader)

Jeder einzufügende LONG-Wert in separatem LONG-Datenstrom

Jeder einzufügende LONG-Wert einer Spalte steht in einem separaten Datenstrom .

Sie geben im Datenstrom anstelle der Spaltenwerte die Namen der Datenströme (gegebenenfalls ergänzt um Positionsangaben) an, die die LONG-Werte enthalten. Die kompletten oder Teile der Datenströme werden als LONG-Werte geladen.

Kompletter Datenstrom wird als LONG-Werte geladen

DATALOAD TABLE sqltravel10.hotel
   hno      1
   name     2
   info     3
INFILE 'hotel.data'

Inhalt des Datenstroms:

10,Excelsior,'EXCELSIOR.LNG'
30,Flora,'FLORA.LNG'
60,Bellevue,'BELLEVUE.LNG'

Teile des Datenstroms werden als LONG-Werte geladen

DATALOAD TABLE sqltravel10.hotel
   hno      1
   name     2
   info     3
INFILE 'hotel.data'

Inhalt des Datenstroms:

10,Excelsior,'EXCELSIOR.LNG' 1-880
30,Flora,'FLORA.LNG' 8-1046
60,Bellevue,'BELLEVUE.LNG' 100-260

Angabe eines Codeattributs

Die Angabe des Codeattributs für alle Datenströme, die LONG-Werte enthalten, die in eine Spalte geladen werden sollen, ist optional im Ladekommando möglich. Es kann nur ein einzelnes Codeattibut für alle Datenströme angegeben werden. Eine Spezifizierung der Codeattribute für jeden einzelnen angegebenen Datenstrom ist nicht möglich.

Codeattribut für Datenstrom mit LONG-Werten

Angabe des Codeattributs ASCII

DATALOAD TABLE sqltravel10.hotel
   hno      1
   name     2
   info     3
INFILE 'hotel.data'
LONGFILE info ASCII

Inhalt des Datenstroms:

10,Excelsior,'EXCELSIOR.LNG'
30,Flora,'FLORA.LNG'
60,Bellevue,'BELLEVUE.LNG'

Nach dem Schlüsselwort LONGFILE darf kein Medienname verwendet werden.

Siehe auch:

Laden von LONG-Werten

Alle einzufügenden LONG-Werte in einem LONG-Datenstrom


Alle einzufügenden LONG-Werte in einem LONG-Datenstrom (MaxDB: Loader)

Alle einzufügenden LONG-Werte in einem LONG-Datenstrom

Alle einzufügenden LONG-Werte einer Spalte stehen in einem Datenstrom .

Variante 1

Sie geben im Datenstrom anstelle eines Spaltenwertes den Namen des Datenstroms an, der die LONG-Werte enthält, und die Anfangs- und Endposition des zu ladenden LONG-Wertes.

DATALOAD TABLE sqltravel10.hotel
   hno      1
   name     2
   info     3
INFILE 'hotel.data'

Inhalt des Datenstroms:

10,Excelsior,'HOTEL.LNG' 1-880
30,Flora,'HOTEL.LNG' 881-1046
60,Bellevue,'HOTEL.LNG' 1047-1360

Variante 2

Sie geben nach dem Schlüsselwort LONGFILE den Namen des Datenstroms an, der die LONG-Werte enthält. Im Datenstrom selbst geben Sie nur die Positionsangaben ohne vorangestellten Datenstromnamen an.

DATALOAD TABLE sqltravel10.hotel
   hno     1
   name    2
   info    3
INFILE 'hotel.data'
LONGFILE info 'HOTEL.LNG'

Inhalt des Datenstroms:

10,Excelsior,1-880
30,Flora,881-1046
60,Bellevue,1047-1360

Angabe eines Codeattributs für die mit LONGFILE spezifizierten Medien

Die Angabe eines Codeattributs für die mit LONGFILE spezifizierten Datenströme ist optional im Ladekommando möglich.

Codeattribut für Datenstrom mit LONG-Werten

Angabe des Codeattributs ASCII

DATALOAD TABLE sqltravel10.hotel
   hno      1
   name     2
   info     3
INFILE 'hotel.data'
LONGFILE info 'HOTEL.LNG' ASCII

Inhalt des Datenstroms:

10,Excelsior,1-880
30,Flora,881-1046
60,Bellevue,1047-1360

Siehe auch:

Laden von LONG-Werten

Jeder einzufügende LONG-Wert in separatem LONG-Datenstrom


Codeattribut für Datenstrom mit LONG-Werten (MaxDB: Loader)

Codeattribut für Datenstrom mit LONG-Werten

Wenn die Angabe des Codeattributs im Kommando fehlt, setzt der Loader einen Vorschlagswert für das Codeattribut des Datenstroms ein. Dieses wird aus dem datenbankinternen Datentyp der zu ladenden Spalte abgeleitet, d.h. es wird folgende Umsetzungstabelle verwendet:

Datenbankinterner Datentyp | Externes Codeattribut
LONG ASCII | ASCII
LONG BYTE | BINARY
LONG UNICODE | UCS2

Wenn das externe Codeattribut und der datenbankinterne Datentyp unterschiedlich sind, konvertiert der Loader die Daten. Bei Inkompatibilität der Typen erzeugt der Loader eine Fehlermeldung und beendet die Bearbeitung des Kommandos.

Kompatibilitätstabelle

Externes Codeattribut | Datenbankinterner Datentyp | Kompatibel ja/nein
ASCII | LONG ASCII LONG BYTE LONG UNICODE | ja ja ja
UCS2 | LONG ASCII LONG BYTE LONG UNICODE | nein ja ja
BINARY | LONG ASCII LONG BYTE LONG UNICODE | nein nein ja

Verwendung

Jeder einzufügende LONG-Wert in separatem LONG-Datenstrom

Alle einzufügenden LONG-Werte in einem LONG-Datenstrom


Medium (MaxDB: Loader)

Medium

Der Loader verwendet für die physische Ablage des Datenstroms außerhalb der Datenbankinstanz ein Medium. Wenn Sie mit dem Loader Daten entladen oder laden, sind Datenquelle und Datenziel Datenbankinstanzen und Medien.

Der Loader unterscheidet die in mediumtype_spec angegebenen Medientypen.


Metadaten der Anwendungsdaten (MaxDB: Loader)

Metadaten der Anwendungsdaten

Die Metadaten der Anwendungsdaten (Metadaten vom Typ DATA) werden in den Datenströmen durch Kommandos und SQL-Anweisungen festgelegt.

Der Loader speichert diese Informationen in den Systemtabellen ab, falls sich die Transformation über mehrere Tabellen erstreckt.

Die entsprechenden Daten liegen in der Datenbankinstanz in Form von Seiten bzw. Zeilen und in einem Datenstrom in den nicht lesbaren Formaten PAGES und RECORDS oder in den lesbaren Formaten FORMATTED, COMPRESSED und LONG vor.

Werden die Daten in Form von Zeilen transformiert, so können Spalten des externen Datentyps CHAR mit dem Codeattribut ASCII in Werte von Datenfeldern mit dem Codeattribut ASCII, UCS-2 oder UTF-8 transformiert werden.


Metadaten des Datenbankkatalogs (MaxDB: Loader)

Metadaten des Datenbankkatalogs

Metadaten des Datenbankkatalogs (Metadaten vom Typ CATALOG) beschreiben die Struktur der Daten im Datenbankkatalog.

Der Loader speichert diese Informationen in seinen Systemtabellen ab, falls sich die Transformation über mehrere Tabellen erstreckt.

Die entsprechenden Daten liegen in der Datenbankinstanz in Form von Zeilen in den Systemtabellen und in einem Datenstrom in Form von SQL-Anweisungen zur Datendefinition vor.


Metadaten der Transformationen (MaxDB: Loader)

Metadaten der Transformationen

Die Metadaten der Transformationen (Metadaten vom Typ CONFIGURATION und PACKAGE) werden in Form von Kommandos oder in Form von Loader-spezifischen Systemtabellen deklariert.

Diese Metadaten beschreiben die Konfiguration und das Laufzeitverhalten der Transformationen, die sich über mehrere Tabellen erstrecken.

Die entsprechenden Daten, wie Benutzer- und Tabellennamen, werden nach referentiellen Contraint-Bedingungen sortiert abgelegt.

In der Datenbankinstanz werden die Daten in Form von Zeilen in den Systemtabellen in einem Datenstrom im lesbaren Format COMPRESSED gespeichert.


Selektieren von Datensätzen (MaxDB: Loader)

Selektieren von Datensätzen

Beim Laden von Anwendungsdaten ist es möglich, die zu ladenden Datensätze inhaltlich zu selektieren.

Die dabei definierten Bedingungen können durch die Angabe von NOTnegiert, mit AND und OR verbunden und beliebig geklammert werden. Der Loader wichtet die Operatoren dementsprechend.

Siehe auch:

condition

if_condition

Sie wollen nur jene Datensätze aus dem Quelldatenstrom hotel.daten in die Zieltabelle hotel laden, die folgenden Bedingungen entsprechen:

Der im Datensatz ausgewiesene Preis liegt unter 400,00 (IF).
Der Name des Hotels ist nicht City (NOT).
Das Hotel befindet sich in BERLIN (AND).
Die Postleitzahl ist 13125 oder 13126 (OR):

DATALOAD TABLE hotel
  IF POS 41-44 REAL < '400,00'
  AND
     POS 27-36 = 'BERLIN'
  AND
    (POS 20-25 = '13125' OR POS 20-25 = '13126')
  AND NOT
     POS 09-18 = 'City'
      hnr     01-04 INTEGER
      name    09-18
      plz     20-25 DECIMAL
      ort     27-36
      preis   41-44 REAL
INFILE 'hotel.daten' FORMATTED

Sie wollen nur jene Datensätze aus dem Quelldatenstrom hotel.daten in die Zieltabelle hotel laden, bei denen der Preis nicht über 400,00 liegt.

DATALOAD TABLE hotel
  IF NOT POS 41-44 REAL > '400,00'
      hnr     01-04 INTEGER
      name    09-18
      plz     20-25 DECIMAL
      ort     27-36
      preis   41-44 REAL
INFILE 'hotel.daten' FORMATTED


SQL Studio

MySQL MaxDB ist ein relationales Datenbanksystem mit einer SQL-kompatiblen Benutzeroberfläche.

Relational bedeutet, dass das Datenbanksystem den Benutzern gegenüber alle Informationen in Form von Tabellen darstellt. Die normierte Sprache SQL (Structured Query Language) liefert einen Satz von Anweisungen, mit denen Sie diese Tabellen verwalten, pflegen und auswerten können.

SQL Studio ermöglicht den bequemen Zugriff auf Daten einer MaxDB-Datenbankinstanz. Neben der Verwendung als Abfragewerkzeug ist SQL Studio ein komfortables Werkzeug sowohl für Anwendungsprogrammierer, um SQL-Anweisungen zu testen, als auch für Datenbankdesigner, die grafische Unterstützung bei der Erstellung und Änderung von Datenbankobjekten erhalten.

Sie können SQL Studio für die folgenden Aufgaben nutzen:

· Anlegen und Verwalten von Datenbanktabellen, Indizes und Zahlenreihen sowie Verwalten von gespeicherten SQL-Anweisungen, Datenbankbenutzern und Datenbankprozeduren mit dem Catalog Manager

· Erstellen und Ausführen von SQL-Anweisungen im SQL-Dialog

· Auswählen und Bearbeiten von Datensätzen in einer Maskendarstellung mit dem Form-Dialog

· Formulieren von Datenbankanfragen mit Hilfe visueller Unterstützung im Visual-Query-Dialog

Das SQL Studio in der hier beschriebenen Form kann nur auf Microsoft Windows-Betriebssystemen eingesetzt werden. Für andere Betriebssystemplattformen steht das Web SQL Studio zur Verfügung.

Allgemeine Informationen zum Datenbanksystem MaxDB finden Sie in der Dokumentation Datenbankverwaltung.


Starten von SQL Studio (MaxDB: SQL Studio)

Starten von SQL Studio

Vorgehensweise

Um SQL Studio zu starten, wählen Sie Start ® Programs ®MaxDB ® SQL Studio.

Starten von der Kommandozeile

Sie können SQL Studio auch von der Kommandozeile aus starten. In diesem Fall können Sie Optionen angeben.

...

...

1. Wechseln Sie in das Verzeichnis, in dem sich das Programm sqlsto.exe befindet.

2. Geben Sie folgenden Befehl ein: sqlsto [<options>]

Folgende Optionen stehen zur Verfügung:

-? | Anzeige aller Kommandozeilenoptionen
-version | Anzeige von Informationen zur Softwareversion
-n <server_name> | Name des Datenbankrechners
-d <database_name> | Name der Datenbankinstanz
-u <user_name[,password]> | Benutzername und Kennwort
-c oracle | SQL-Modus ORACLE. Nach dem Starten des SQL Studio können Sie den SQL-Modus auch in den Benutzereinstellungen ändern.
-t <trace_file> | Erzeugen einer Protokolldatei für das Protokollieren von SQL-Anweisungen (siehe auch ODBC-Handbuch)


Öffnen einer Datenbanksitzung (MaxDB: SQL Studio)

Öffnen einer Datenbanksitzung

Verwendung

Bevor Sie mit SQL Studio auf die Daten einer Datenbankinstanz zugreifen können, müssen Sie eine Verbindung zum Datenbankrechner herstellen und sich an der Datenbank anmelden.

Sie können dabei, wenn gewünscht, das Timeout-Verhalten der Datenbank unterdrücken. Über einen längeren Zeitraum inaktive Datenbankverbindungen werden dann nicht mehr automatisch beendet.

Vorgehensweise

...

1. Wenn Sie das Timeout-Verhalten der Datenbank unterdrücken wollen, dann aktivieren Sie zunächst die Checkbox No Timeout in der Symbolleiste.

2. Wählen Sie Session ® Connect.

3. Geben Sie den Namen des Datenbankrechners und der Datenbankinstanz ein.

4. Geben Sie Ihren Benutzernamen und Ihr Kennwort ein, und wählen Sie OK.

Bei der Eingabe des Benutzernamens und des Kennwortes übernimmt das System alle Buchstaben automatisch als Großbuchstaben. Wenn das System Groß- und Kleinschreibung unterscheiden soll, müssen Sie den Benutzernamen und das Kennwort in Anführungszeichen einschließen. Die Anführungszeichen sind auch dann notwendig, wenn Benutzername oder Kennwort Sonderzeichen enthalten. Ein Anführungszeichen darf im Benutzernamen oder Kennwort selbst nicht vorkommen.

Ergebnis

Das System stellt die Verbindung zur Datenbank her. Die aktuelle Sitzung wird in die Liste der zuletzt geöffneten Sitzungen eingetragen.

Über die Liste der zuletzt geöffneten SQL-Studio-Sitzungen können Sie auch direkt im selben Fenster eine andere Datenbanksitzung öffnen. Die aktuelle Sitzung wird dann geschlossen.

Wenn Sie eine weitere Datenbanksitzung in einem neuen Fenster eröffnen wollen, dann wählen Sie Session ® New SQL Studio.


Liste der zuletzt geöffneten Sitzungen (MaxDB: SQL Studio)

Liste der zuletzt geöffneten Sitzungen

Verwendung

Über die Liste der zuletzt geöffneten SQL-Studio-Sitzungen können Sie direkt eine neue Datenbanksitzung eröffnen.

Die Liste zeigt bis zu zehn Sitzungen an. Je nach Benutzereinstellung wurde das Kennwort für diese Sitzungen gespeichert.

Vorgehensweise

Wählen Sie Session und dann die gewünschte Sitzung.

· Wenn das Kennwort für die gewählte Sitzung gespeichert wurde, verbindet das System sich direkt mit der Datenbank.

· Wenn das Kennwort für die gewählte Sitzung nicht gespeichert wurde, müssen Sie das Kennwort eingeben. Danach verbindet das System sich mit der Datenbank.

Sie können die Liste der zuletzt geöffneten SQL-Studio-Sitzungen löschen, solange Sie keine aktuelle Sitzung geöffnet haben. Wählen Sie dazu Session ® Clear Recent Sessions.


Abmelden von der Datenbank (MaxDB: SQL Studio)

Abmelden von der Datenbank

Um eine aktuelle Datenbankverbindung zu schließen, wählen Sie Session ® Disconnect.

Das Abmelden kann notwendig werden, wenn Sie nur eine Verbindung zur Datenbank besitzen dürfen und sich von einer anderen Datenbankkomponente aus an der Datenbank anmelden wollen, ohne SQL Studio zu beenden.

Wenn Sie sich ummelden oder erneut anmelden wollen, brauchen Sie sich vorher nicht abzumelden. Das System beendet automatisch die bestehende Verbindung zur Datenbank, sobald Sie mit Session ® Connect oder über die Liste der zuletzt geöffneten Sitzungen eine neue Anmeldung vornehmen.


Benutzereinstellungen (MaxDB: SQL Studio)

Benutzereinstellungen

Verwendung

Sie können in SQL Studio während des laufenden Betriebs Ihre persönlichen Einstellungen vornehmen. Beim Beenden des SQL Studio werden diese Einstellungen gesichert.

Vorgehensweise

Um Ihre Einstellungen zu ändern, wählen Sie Session ® Settings.

Sie können folgende Einstellungen vornehmen:

General

Store Password | Das System speichert das Kennwort, das Sie beim Anmelden benutzt haben, für die nächste Anmeldung.
Confirmation for saving SQL Studio Objects | Das System fragt beim Schließen des Dialogfensters, ob das neu erstellte SQL-Studio-Objekt gesichert werden soll.
Open Form Dialog read only | Form-Dialoge werden zunächst im Nur-Lese-Modus geöffnet.
Remove failed connection attempts from Recent Sessions list | Das System löscht fehlgeschlagene Anmeldungsversuche aus der Liste der zuletzt geöffneten Sitzungen.
Identifiers in Create Dialogs uppercase | Beim Erstellen neuer SQL-Studio-Objekte wandelt das System die Eingaben automatisch in Großbuchstaben um.

Result Window

Limit for long columns (Bytes) | Maximale Anzahl der Bytes, die für eine LONG-Spalte aus der Datenbank geladen werden sollen.
Limit for binary zoom (Bytes) | Maximale Anzahl der Bytes, die beim Zoomen in der LONG-Spalte einer Ergebnistabelle angezeigt werden sollen.
Representation of null value | Darstellung des NULL-Werts
Clipped result view (Internal Mode) | Abschnittsweise Anzeige der Ergebnisse
Replace non chars in long columns | ASCII-Codes < 32 werden bei der Anzeige von LONG-Spalten durch ein Leerzeichen ersetzt.
Copy columns tab separated to Clipboard | Beim Zwischenspeichern von Ergebnissen trennt das System die Spalten durch Tabulatoren.
Copy Result with Column Header | Beim Kopieren von Ergebnissen kopiert das System auch die Spaltennamen.
Append Exported Data to File | Beim Exportieren einer Ergebnistabelle in eine Datei werden die Inhalte dieser Ergebnistabelle an den bestehenden Dateiinhalt angehängt.
Display Char Byte Column as Hex Values | Daten vom Datentyp CHAR BYTE werden als Hexadezimalzahlen dargestellt. Wenn Sie diese Option nicht wählen, dann werden diese Daten binär dargestellt.

Catalog Manager

Selected table types | Angabe, welche Tabellentypen im Catalog Manager angezeigt werden
Path for local folder | Pfadangabe für das Speichern der SQL-Studio-Objekte im Local Folder
Restore catalog state | Bei Neuanmeldung an der Datenbank wird die letzte Ansicht des Catalog Managers wiederhergestellt.
Convert input for catalog filter to uppercase | Eingaben im Filter des Catalog Managers wandelt das System automatisch in Großbuchstaben um

Query Dialog

Isolation Level | Isolation-Level für die Erstellung von SQL-Anweisungen
SQL Mode | SQL-Modus für die Erstellung von SQL-Anweisungen im SQL-Dialog. Für den Form-Dialog und den Visual-Query-Dialog gilt immer der SQL-Modus INTERNAL.
Execute Statements Asynchronously | SQL-Anweisungen werden asynchron ausgeführt. Sie können einen Zeitraum (in Millisekunden) angeben, über den SQL Studio während der Ausführung der SQL-Anweisungen inaktiv sein soll.

Wenn Sie die Benutzereigenschaft EXCLUSIVE haben, können Sie die Standardeinstellungen für den Isolation-Level und den SQL-Modus nicht ändern. SQL Studio arbeitet in diesem Fall automatisch mit dem Isolation-Level COMMITTED und im SQL-Modus INTERNAL.

Eine Erläuterung zu Benutzereigenschaften finden Sie im Referenzhandbuch unter Autorisierung .


Catalog Manager (MaxDB: SQL Studio)

Catalog Manager

Der Catalog Manager befindet sich im linken Bereich des SQL-Studio-Fensters. Er zeigt Ihnen alle Verzeichnisse und Datenbankobjekte an, auf die Sie mindestens lesend Zugriff haben:

SQL-Studio-Objekte | Gespeicherte SQL-Anweisungen und Entwürfe von Datenbanktabellen
Tabellen | Datenbank- und Systemtabellen, Viewtabellen und Synonyme nach Besitzern geordnet
Indizes | Indizes, die für Tabellen angelegt wurden, nach Tabellen und deren Besitzern geordnet
Zahlenreihen | generierte Zahlenreihen, nach Besitzern geordnet
Favoriten | vom Benutzer ausgewählte Datenbanktabellen
Benutzer | alle Benutzer, für die der an der Datenbank angemeldete Benutzer die Eigentümerrechte besitzt
Datenbankprozeduren | Datenbankprozeduren, die der Benutzer in der Datenbank angelegt hat
Trigger | Trigger, die der Benutzer in der Datenbank angelegt hat

Wenn der Catalog Manager Ihnen nur bestimmte Objekte anzeigen soll, dann geben Sie einen Filter für die Objektnamen an. Geben Sie die Anfangsbuchstaben ein, nach denen Sie filtern wollen, und wählen Sie Catalog Manager ® Refresh. Der Filter bezieht sich jedoch nicht auf Ihre gespeicherten SQL-Anweisungen und Entwürfe.

Mit View ® Catalog Manager können Sie den Catalog Manager anzeigen oder ausblenden.


SQL-Studio-Objekte (MaxDB: SQL Studio)

SQL-Studio-Objekte

Sie können SQL-Anweisungen und Entwürfe von Datenbanktabellen als SQL-Studio-Objekte in der Datenbank oder lokal im Unterverzeichnis Local Folder speichern. Dadurch können Sie die Objekte später wieder verwenden.

Anlegen von SQL-Studio-Objekten

· Um mit dem Catalog Manager einen neuen Ordner für SQL-Studio-Objekte in der Datenbank anzulegen, wählen Sie Catalog Manager ® New ® Folder.

· Um SQL-Anweisungen zu erstellen und als SQL-Studio-Objekte zu speichern, verwenden Sie den SQL-Dialog, den Form-Dialog oder den Visual-Query-Dialog.

· Um Entwürfe von Datenbanktabellen als SQL-Studio-Objekte zu speichern, erstellen Sie die Tabellendefinition mit dem Catalog Manager.

Den Pfad für den Local Folder können Sie in den Benutzereinstellungen angeben.

Bearbeiten und Ausführen von SQL-Studio-Objekten

· Um ein gespeichertes SQL-Studio-Objekt zu bearbeiten, markieren Sie das Objekt und wählen Sie Catalog Manager ® Open Object Definition.

· Um ein gespeichertes SQL-Studio-Objekt in Dialogen oder einer Tabellendefinition zu verwenden, markieren Sie das Objekt. Wählen Sie Catalog Manager ® Send Object To und dann die gewünschte Dialogart.

· Um die SQL-Anweisungen eines gespeicherten SQL-Studio-Objekts direkt auszuführen, markieren Sie das Objekt und wählen Sie Catalog Manager ® Execute. Die Ergebnistabelle erscheint in einem weiteren Fenster. Falls ein Fehler aufgetreten ist, sehen Sie eine Fehlermeldung im Statusfenster des SQL Studio. Dort werden Ihnen je nach Ihren Einstellungen auch weitere Informationen wie z.B. die Ausführungsdauer Ihrer SQL-Anweisungen angezeigt.

Umbenennen und Löschen von SQL-Studio-Objekten

· Um ein gespeichertes SQL-Studio-Objekt umzubenennen, markieren Sie das Objekt und wählen Sie Catalog Manager ® Rename Object.

· Um ein gespeichertes SQL-Studio-Objekt zu löschen, markieren Sie das Objekt und wählen Sie Catalog Manager ® Drop Object.


Tabellen (MaxDB: SQL Studio)

Tabellen

Der Catalog Manager zeigt Ihnen unter Tables entsprechend Ihren Benutzereinstellungen die Datenbanktabellen, Viewtabellen und Synonyme an, auf die Sie Zugriff haben. Die Einträge sind nach Besitzern geordnet.

Datenbanktabellen können Sie neu anlegen und bearbeiten. Viewtabellen und Synonyme können Sie anlegen, umbenennen oder löschen.

· Anlegen einer Datenbanktabelle

· Anlegen einer Viewtabelle

· Anlegen eines Synonyms

· Anzeigen der Definition einer Tabelle

· Ändern der Definition einer Datenbanktabelle

· Anzeigen des Inhalts einer Tabelle

· Verwenden einer Tabellen in Dialogen oder Definitionen

· Umbenennen einer Tabelle

· Löschen aller Zeilen einer Tabelle

· Löschen einer Tabelle


Anlegen einer Datenbanktabelle (MaxDB: SQL Studio)

Anlegen einer Datenbanktabelle

Verwendung

Mit SQL Studio können Sie neue Datenbanktabellen in der Datenbank anlegen, an der Sie angemeldet sind. Sie können dabei bestehende Datenbanktabellen oder gespeicherte SQL-Studio-Objekte als Vorlage für die neue Datenbanktabelle nutzen.

Voraussetzung

Sie besitzen die erforderlichen Benutzerberechtigungen und haben die Benutzereigenschaft NOT EXCLUSIVE.

Eine Erläuterung zu Benutzerberechtigungen und Benutzereigenschaften finden Sie in der Dokumentation Datenbankverwaltung unter Benutzerkonzept und im Referenzhandbuch unter Autorisierung .

Vorgehensweise

...

1. Wählen Sie Catalog Manager ® New ® Table Definition.
Ein Fenster für die Tabellendefinition öffnet sich.

2. Um eine bestehende Datenbanktabelle oder ein gespeichertes SQL-Studio-Objekt als Vorlage für Ihre neue Datenbanktabelle zu nutzen, wählen Sie Table Definition ® Get Table. Wählen Sie die gewünschte Tabelle oder das SQL-Studio-Objekt, und bestätigen Sie mit OK.

3. Geben Sie einen Tabellennamen ein.

4. Führen Sie folgende Schritte durch:

· Definieren von Spalten (Columns)

· Definieren von Einschränkungen für Spalten (Constraints)

· Definieren von Fremdschlüsselbeziehungen (Foreign Keys)

· Definieren von zusätzlichen Angaben (Misc)

5. Um Ihren Tabellenentwurf später wieder zu verwenden oder weiter zu bearbeiten, sichern Sie ihn mit Table Definition ® Save As als SQL-Studio-Objekt.

6. Wählen Sie Table Definition ® Create Table. Das System legt die neue Tabelle in der Datenbank an.

7. Mit Table Definition ® Export to SQL Dialog können Sie die entsprechende SQL-Anweisung zum Anlegen der Datenbanktabelle in den SQL-Dialog exportieren.

Informationen zur Syntax von CREATE TABLE-Anweisungen finden Sie im Referenzhandbuch unter CREATE TABLE-Anweisung.


Definieren von Spalten (MaxDB: SQL Studio)

Definieren von Spalten

Verwendung

Sie wollen beim Anlegen einer Datenbanktabelle oder beim Ändern einer Tabellendefinition eine Tabellenspalte (Column) definieren.

Vorgehensweise

1. Geben Sie unter Name einen Namen für die Spalte ein, und bestätigen Sie mit Enter.

2. Wählen Sie unter Datatype den gewünschten Datentyp.

3. In Abhängigkeit vom Datentyp können Sie folgende weiteren Eigenschaften angeben:

· Dimension (Dim)

· Code-Typ (Code)

· Spalte ist Schlüsselspalte

· Spaltenwerte dürfen keine NULL-Werte sein (Not NULL)

· Vorschlagswert für Spaltenwerte (Default)

· Eindeutigkeit der Spaltenwerte (Unique)

· Kommentar (Comment)

1. Um eine neue Spalte hinzuzufügen, wählen Sie New Column. Die neue Spalte wird am Ende der Tabelle eingefügt.

2. Um neue Spalten hinzuzufügen und dabei die Definitionen bestehender Spalten aus derselben Tabelle zu übernehmen, markieren Sie die gewünschten Spalten, und wählen Sie Clone Column. Die neuen Spalten werden am Ende der Tabelle eingefügt.

3. Um neue Spalten hinzuzufügen und dabei die Definitionen bestehender Spalten aus bestehenden Tabellen zu übernehmen, wählen Sie Import Column. Ein Fenster mit allen vom aktuellen Benutzer definierten Spalten öffnet sich. Markieren Sie eine oder mehrere Spalten, und wählen Sie OK. Die neuen Spalten werden am Ende der Tabelle eingefügt.

4. Um eine Spalte aus der Tabelle zu löschen, markieren Sie die Spalte, und wählen Sie Remove Column.

Sie können die Reihenfolge der Spalten ändern, indem Sie eine oder mehrere Spalten markieren und Sie mit den Pfeilen Ý ß nach unten oder oben verschieben.


Definieren von Einschränkungen für Spalten (MaxDB: SQL Studio)

Definieren von Einschränkungen für Spalten

Verwendung

Sie möchten beim Anlegen einer Datenbanktabelle oder beim Ändern einer Tabellendefinition Einschränkungen (Constraints) für Tabellenspalten angeben. Eine Einschränkung für die Werte einer Spalte setzt sich aus einer oder mehreren Bedingungen zusammen, die Sie zeilenweise formulieren und miteinander verknüpfen können.

Voraussetzung

Sie haben zuvor die Tabellenspalten definiert.

Die Formulierung von Einschränkungen ist nur für Spalten mit gültigen Spaltendefinitionen möglich.

Vorgehensweise

1. Geben Sie unter Name, falls gewünscht, einen Namen für die Einschränkung an.

2. Wählen Sie unter Column die Spalte, für die Sie eine Bedingung formulieren möchten.

3. Wählen Sie unter Predicate ein Prädikat für die Bedingung. Um die Bedingung zu negieren, benutzen Sie den NOT-Operator !. Bei Vergleichsoperatoren ist das Negieren nicht möglich.

4. Geben Sie unter Expression den Vergleichsausdruck für die Bedingung an, und bestätigen Sie mit Enter.
Sie können beim Angeben des Vergleichsausdrucks aus folgenden Optionen wählen:

Option | Bedeutung
Single Value | Der Ausdruck besteht aus einem einzelnen Wert.
ALL | Die Bedingung muss mit allen Ausdrücken der Liste (Expression List) erfüllt sein.
ANY | Die Bedingung muss mit mindestens einem Ausdruck der Liste (Expression List) erfüllt sein.
DEFAULT | Der Ausdruck besteht aus dem Vorschlagswert der Spalte.

5. Geben Sie an, wie die formulierte Bedingung mit der nächsten Bedingung verknüpft werden soll (AND/OR).

Wenn Sie die Art der Verknüpfung nachträglich auf <none> zurücksetzen, dann werden alle nachfolgend formulierten Bedingungen sofort gelöscht.

6. Um eine neue Einschränkung hinzuzufügen, wählen Sie New Constraint.

7. Um neue Einschränkungen hinzuzufügen und dabei die Definitionen bestehender Einschränkungen aus derselben Tabelle zu übernehmen, markieren Sie die gewünschten Einschränkungen, und wählen Sie Copy Constraint.

8. Um neue Einschränkungen hinzuzufügen und dabei die Definitionen bestehender Einschränkungen aus bestehenden Tabellen zu übernehmen, wählen Sie Import Constraint. Ein Fenster mit allen vom aktuellen Benutzer definierten Einschränkungen öffnet sich. Markieren Sie eine oder mehrere Einschränkungen, und bestätigen Sie mit OK.

9. Um eine Einschränkung zu löschen, markieren Sie die Einschränkung, und wählen Sie Remove Constraint.


Definieren von Fremdschlüsselbeziehungen (MaxDB: SQL Studio)

Definieren von Fremdschlüsselbeziehungen

Verwendung

Sie wollen beim Anlegen einer Datenbanktabelle oder beim Ändern der Tabellendefinition Fremschlüsselbeziehungen (Foreign Keys) zu Spalten anderer Datenbanktabellen definieren. Fremdschlüsselbeziehungen beschreiben Existenzabhängigkeiten zwischen zwei Tabellen.

Voraussetzung

Sie haben zuvor die Tabellenspalten definiert.

Vorgehensweise

1. Geben Sie, falls gewünscht, unter Foreign Key Name einen Namen für den Fremdschlüssel an.

2. Wählen Sie in Referencing Columns die referenzierende Spalte, und bestätigen Sie mit Enter.

3. Übernehmen Sie in Reference mit Drag&Drop die referenzierte Datenbanktabelle aus dem Catalog Manager. Wählen Sie die Spalte, auf die verwiesen wird, und bestätigen Sie mit Enter.

4. Wählen Sie unter On Delete das gewünschte Verhalten der referenzierten Tabelle beim Löschen eines Datensatzes in der referenzierenden Tabelle (DELETE-Regel).

5. Geben Sie unter Comment, falls gewünscht, einen Kommentar an.

6. Um einen neuen Verweis hinzuzufügen, wählen Sie New Foreign Key.

7. Um neue Verweise hinzuzufügen und dabei die Definitionen bestehender Verweise derselben Tabelle zu übernehmen, markieren Sie die gewünschten Verweise, und wählen Sie Copy Foreign Key.

8. Um neue Verweise hinzuzufügen und dabei die Definitionen bestehender Verweise aus bestehenden Tabellen zu übernehmen, wählen Sie Import Foreign Key. Ein Fenster mit allen vom aktuellen Benutzer definierten Verweisen öffnet sich. Markieren Sie einen oder mehrere Verweise, und wählen Sie OK.

9. Um einen Verweis zu löschen, markieren Sie den Verweis, und wählen Sie Remove Foreign Key.

Informationen zur Syntax von referentiellen CONSTRAINT-Definitionen finden Sie im Referenzhandbuch unter referentielle CONSTRAINT-Definition.


Definieren von zusätzlichen Angaben (MaxDB: SQL Studio)

Definieren von zusätzlichen Angaben

Unter Misc können Sie beim Anlegen von Datenbanktabellen oder beim Ändern von Tabellendefinitionen folgende zusätzlichen Angaben zu Ihrer Tabelle machen:

Angabe | Bedeutung
Comment | Kommentar
Duplicates | Durch die DUPLICATES-Klausel kann das Verhalten beim Auftreten von Schlüsselkollisionen gesteuert werden.
Statistics | Der Sample Value gibt an, wie groß der Anteil der Daten ist, der für die Optimierung der Datenbankstrategie einbezogen wird.
Temporary Table Ignore Rollback | Die Tabelle ist eine temporäre Tabelle und wird unter Temp lokal abgelegt. Für temporäre Tabellen können Sie die Option Ignore Rollback angeben.
Identifiers Uppercase | Automatische Umwandlung der Tabellen-, Spalten- und weiteren Namen in Großbuchstaben. Eine Änderung der Einstellung wirkt sich sofort auf die gesamte Tabellendefinition aus. Beim Anlegen einer Datenbanktabelle mit einer anderen Datenbanktabelle als Vorlage wird die Benutzereinstellung der Vorlage übernommen.

Informationen zur Syntax von CREATE TABLE-Anweisungen finden Sie im Referenzhandbuch unter CREATE TABLE-Anweisung.


Anlegen einer Viewtabelle (MaxDB: SQL Studio)

Anlegen einer Viewtabelle

Verwendung

Mit SQL Studio können Sie Viewtabellen anlegen.

Voraussetzungen

· Wenn die Viewtabelle auf einer Datenbankanfrage basieren soll, dann haben Sie diese Anfrage zuvor als SQL-Studio-Objekt gespeichert.

· Sie besitzen die erforderlichen Benutzerberechtigungen und haben die Benutzereigenschaft NOT EXCLUSIVE.

Eine Erläuterung zu Benutzerberechtigungen und Benutzereigenschaften finden Sie in der Dokumentation Datenbankverwaltung unter Benutzerkonzept und im Referenzhandbuch unter Autorisierung .

Vorgehensweise

...

1. Wählen Sie Catalog Manager ® New ® View Definition.
Ein Fenster für die Definition der Viewtabelle öffnet sich.

2. Um eine Datenbanktabelle als Grundlage für die Viewtabelle zu verwenden, wählen Sie View Definition ® Get Table. Wählen Sie die gewünschte Datenbanktabelle, und bestätigen Sie mit OK.

3. Um die Struktur der Ergebnismenge einer gespeicherten Datenbankanfrage als Grundlage für die Viewtabelle zu verwenden, wählen Sie View Definition ® Get Stored Query. Wählen Sie die gewünschte Datenbankanfrage, und bestätigen Sie mit OK.

4. Geben Sie einen Namen für die Viewtabelle ein.

5. Wenn Sie die Spalten Ihrer Viewtabelle umbenennen möchten, geben Sie unter Alias in View neue Spaltennamen ein.

6. Wählen Sie die gewünschten Optionen aus:

Replace Existing View | Ersetzen der vorhandenen Viewtabelle
Check on Insert or Update | Überprüfen der Viewbedingungen beim Ändern von Werten
Identifiers Uppercase | Automatische Umwandlung der Tabellen- und Spaltennamen in Großbuchstaben

7. Wählen Sie View Definition ® Create View.

Mit View Definition ® Export to SQL Dialog können Sie die entsprechende SQL-Anweisung zum Anlegen der Viewtabelle in den SQL-Dialog exportieren.

Informationen zur Syntax von CREATE VIEW-Anweisungen finden Sie im Referenzhandbuch unter CREATE VIEW-Anweisung.


Anlegen eines Synonyms (MaxDB: SQL Studio)

Anlegen eines Synonyms

Verwendung

Mit SQL Studio können Sie Synonyme für Datenbanktabellen anlegen.

Voraussetzung

Sie besitzen die erforderlichen Benutzerberechtigungen und haben die Benutzereigenschaft NOT EXCLUSIVE.

Eine Erläuterung zu Benutzerberechtigungen und Benutzereigenschaften finden Sie in der Dokumentation Datenbankverwaltung unter Benutzerkonzept und im Referenzhandbuch unter Autorisierung .

Vorgehensweise

1. Markieren Sie im Catalog Manager die Datenbanktabelle, für die Sie ein Synonym anlegen möchten, und wählen Sie Catalog Manager ® New ® Synonym Definition.
Ein Fenster für die Definition des Synonyms öffnet sich.

2. Geben Sie einen Synonymnamen ein, und wählen Sie, ob das Synonym privat oder Public sein soll.

3. Wählen Sie Synonym Definition ® Create Synonym.

Mit Synonym Definition ® Export to SQL Dialog können Sie die entsprechende SQL-Anweisung zum Anlegen des Synonyms in den SQL-Dialog exportieren.

Informationen zur Syntax von CREATE SYNONYM-Anweisungen finden Sie im Referenzhandbuch unter CREATE SYNONYM-Anweisung.


Anzeigen der Definition einer Tabelle (MaxDB: SQL Studio)

Anzeigen der Definition einer Tabelle

Verwendung

Mit SQL Studio können Sie sich die Definition einer Datenbanktabelle, einer Viewtabelle oder eines Synonyms anzeigen lassen.

Voraussetzung

Sie besitzen die erforderlichen Benutzerberechtigungen.

Eine Erläuterung zu Benutzerberechtigungen finden Sie in der Dokumentation Datenbankverwaltung unter Benutzerkonzept .

Vorgehensweise

1. Markieren Sie im Catalog Manager die Tabelle, deren Definition Sie sehen möchten.

2. Wählen Sie Catalog Manager ® Open Object Definition.


Ändern der Definition einer Datenbanktabelle (MaxDB: SQL Studio)

Ändern der Definition einer Datenbanktabelle

Verwendung

Mit SQL Studio können Sie die Definition einer Datenbanktabelle ändern.

Voraussetzungen

Sie besitzen die erforderlichen Benutzerberechtigungen und haben die Benutzereigenschaft NOT EXCLUSIVE.

Eine Erläuterung zu Benutzerberechtigungen und Benutzereigenschaften finden Sie in der Dokumentation Datenbankverwaltung unter Benutzerkonzept und im Referenzhandbuch unter Autorisierung.

Vorgehensweise

...

1. Markieren Sie die Tabelle, und wählen Sie Catalog Manager ® Alter Table.
Ein Fenster mit der Tabellendefinition öffnet sich.

2. Nehmen Sie die gewünschten Änderungen vor:

· Definieren von Spalten (Columns)

· Definieren von Einschränkungen für Spalten (Constraints)

· Definieren von Fremdschlüsselbeziehungen (Foreign Keys)

· Definieren von zusätzlichen Angaben (Misc)

3. Wählen Sie Table Definition ® Alter Table.

Mit Table Definition ® Export to SQL Dialog können Sie die entsprechende SQL-Anweisung zum Ändern der Datenbanktabelle in den SQL-Dialog exportieren.

Informationen zur Syntax von ALTER TABLE-Anweisungen finden Sie im Referenzhandbuch unter ALTER TABLE-Anweisung .


Anzeigen des Inhalts einer Tabelle (MaxDB: SQL Studio)

Anzeigen des Inhalts einer Tabelle

Verwendung

Mit SQL Studio können Sie sich den Inhalt einer Tabelle anzeigen lassen.

Voraussetzung

Sie besitzen die erforderlichen Benutzerberechtigungen.

Eine Erläuterung zu Benutzerberechtigungen finden Sie in der Dokumentation Datenbankverwaltung unter Benutzerkonzept .

Vorgehensweise

1. Markieren Sie im Catalog Manager die Tabelle, deren Inhalt Sie sehen möchten.

2. Wählen Sie Catalog Manager ® Show Content.


Verwenden einer Tabelle in Dialogen oder Definitionen (MaxDB: SQL Studio)

Verwenden einer Tabelle in Dialogen oder Definitionen

Verwendung

Sie können Tabellen direkt aus dem Catalog Manager in einen SQL-Dialog, Form-Dialog oder Visual-Query-Dialog übernehmen oder sie als Grundlage für eine Tabellen- oder Viewdefinition verwenden.

Vorgehensweise

Markieren Sie die Tabelle im Catalog Manager. Wählen Sie Catalog Manager ® Send Object To und dann die gewünschte Dialogart.


Umbenennen einer Tabelle (MaxDB: SQL Studio)

Umbenennen einer Tabelle

Verwendung

Mit SQL Studio können Sie Tabellen umbenennen.

Voraussetzung

Sie besitzen die erforderlichen Benutzerberechtigungen.

Eine Erläuterung zu Benutzerberechtigungen finden Sie in der Dokumentation Datenbankverwaltung unter Benutzerkonzept .

Vorgehensweise

1. Markieren Sie im Catalog Manager die Tabelle, die Sie umbenennen möchten.

2. Wählen Sie Catalog Manager ® Rename Object und geben Sie den neuen Namen ein.


Löschen aller Zeilen einer Tabelle (MaxDB: SQL Studio)

Löschen aller Zeilen einer Tabelle

Verwendung

Mit SQL Studio können Sie alle Zeilen einer Tabelle löschen.

Voraussetzung

Sie besitzen die erforderlichen Benutzerberechtigungen.

Eine Erläuterung zu Benutzerberechtigungen finden Sie in der Dokumentation Datenbankverwaltung unter Benutzerkonzept .

Vorgehensweise

1. Markieren Sie im Catalog Manager die Tabelle, deren Zeilen Sie löschen möchten.

2. Wählen Sie Catalog Manager ® Delete All Rows.

Wenn Sie die Zeilen eines Synonyms löschen, löschen Sie damit die Zeilen der zugrundeliegenden Datenbanktabelle.


Löschen einer Tabelle (MaxDB: SQL Studio)

Löschen einer Tabelle

Verwendung

Mit SQL Studio können Sie eine Tabelle aus der Datenbank löschen.

Voraussetzung

Sie besitzen die erforderlichen Benutzerberechtigungen.

Eine Erläuterung zu Benutzerberechtigungen finden Sie in der Dokumentation Datenbankverwaltung unter Benutzerkonzept .

Vorgehensweise

1. Markieren Sie im Catalog Manager die Tabelle, die Sie aus der Datenbank löschen möchten.

2. Wählen Sie Catalog Manager ® Drop Object.


Indizes (MaxDB: SQL Studio)

Indizes

Der Catalog Manager zeigt Ihnen unter Indexes die Tabellen an, für die Indizes angelegt wurden. Sie haben folgende Möglichkeiten:

  • Anlegen eines Index
  • Anzeigen der Definition eines Index
  • Löschen eines Index


Anlegen eines Index (MaxDB: SQL Studio)

Anlegen eines Index

Verwendung

Mit SQL Studio können Sie neue Indizes für Datenbanktabellen anlegen.

Voraussetzung

Sie besitzen die erforderlichen Benutzerberechtigungen und haben die Benutzereigenschaft NOT EXCLUSIVE.

Eine Erläuterung zu Benutzerberechtigungen und Benutzereigenschaften finden Sie in der Dokumentation Datenbankverwaltung unter Benutzerkonzept und im Referenzhandbuch unter Autorisierung .

Vorgehensweise

...

1. Markieren Sie im Catalog Manager die Datenbanktabelle, für die Sie einen Index anlegen möchten, und wählen Sie Catalog Manager ® New ® Index Definition.

2. Geben Sie unter Index Name einen Namen für den Index ein.

3. Wählen Sie im Feld In Index für die Spalten, deren Werte indiziert werden sollen, Yes.

4. Um die Indexwerte aufsteigend oder absteigend zu sortieren, wählen Sie im Feld Sort die Option ASC oder DESC.

5. Um die Reihenfolge der Tabellenspalten zu ändern, markieren Sie eine Tabellenspalte und verwenden Sie die Pfeile Ý ß, um sie nach oben oder unten zu verschieben.

6. Wählen Sie die gewünschten Optionen:

Unique | Stellt die Eindeutigkeit der indizierten Spalten sicher
Index Name Upper Case | Automatische Umwandlung der Tabellen- und Spaltennamen in Großbuchstaben

7. Wählen Sie Index Definition ® Create Index.

8. Mit Index Definition ® Export to SQL Dialog können Sie die ensprechende SQL-Anweisung zum Anlegen des Index in den SQL-Dialog exportieren.

Informationen zur Syntax von CREATE INDEX-Anweisungen finden Sie im Referenzhandbuch unter CREATE INDEX-Anweisung.


Anzeigen der Definition eines Index (MaxDB: SQL Studio)

Anzeigen der Definition eines Index

Verwendung

Mit SQL Studio können Sie sich die Definition eines Index anzeigen lassen.

Voraussetzung

Sie besitzen die erforderlichen Benutzerberechtigungen.

Eine Erläuterung zu Benutzerberechtigungen finden Sie in der Dokumentation Datenbankverwaltung unter Benutzerkonzept .

Vorgehensweise

1. Markieren Sie im Catalog Manager den Index, dessen Definition Sie sehen möchten.

2. Wählen Sie Catalog Manager ® Open Object Definition.


Löschen eines Index (MaxDB: SQL Studio)

Löschen eines Index

Verwendung

Mit SQL Studio können Sie den Index einer Datenbanktabelle löschen.

Voraussetzung

Sie besitzen die erforderlichen Benutzerberechtigungen.

Eine Erläuterung zu Benutzerberechtigungen finden Sie in der Dokumentation Datenbankverwaltung unter Benutzerkonzept .

Vorgehensweise

1. Markieren Sie im Catalog Manager den Index, den Sie löschen möchten.

2. Wählen Sie Catalog Manager ® Drop Object.


Zahlenreihen (MaxDB: SQL Studio)

Zahlenreihen

Der Catalog Manager zeigt Ihnen unter Sequences die Zahlenreihen an, die in der Datenbank angelegt wurden. Sie haben folgende Möglichkeiten:

  • Anlegen einer Zahlenreihe
  • Anzeigen der Definition einer Zahlenreihe
  • Löschen einer Zahlenreihe


Anlegen einer Zahlenreihe (MaxDB: SQL Studio)

Anlegen einer Zahlenreihe

Verwendung

Mit SQL Studio können Sie neue Zahlenreihen (Sequences) in der Datenbank anlegen.

Voraussetzung

Sie besitzen die erforderlichen Benutzerberechtigungen und haben die Benutzereigenschaft NOT EXCLUSIVE.

Eine Erläuterung zu Benutzerberechtigungen und Benutzereigenschaften finden Sie in der Dokumentation Datenbankverwaltung unter Benutzerkonzept und im Referenzhandbuch unter Autorisierung .

Vorgehensweise

...

1. Wählen Sie Catalog Manager ® New ® Sequence Definition.

2. Geben Sie einen Namen für die Zahlenreihe ein und definieren Sie die gewünschten Werte.

3. Wählen Sie Sequence Definition ® Create Sequence.

4. Mit Sequence Definition ®Export to SQL Dialog können Sie die entsprechende SQL-Anweisung zum Anlegen der Zahlenreihe in den SQL-Dialog exportieren.

Informationen zur Syntax von CREATE SEQUENCE-Anweisungen finden Sie im Referenzhandbuch unter CREATE SEQUENCE-Anweisung .


Anzeigen der Definition einer Zahlenreihe (MaxDB: SQL Studio)

Anzeigen der Definition einer Zahlenreihe

Verwendung

Mit SQL Studio können Sie sich die Definition einer Zahlenreihe (Sequence) sowie den zuletzt erzeugten Wert dieser Zahlenreihe anzeigen lassen.

Voraussetzung

Sie besitzen die erforderlichen Benutzerberechtigungen.

Eine Erläuterung zu Benutzerberechtigungen finden Sie in der Dokumentation Datenbankverwaltung unter Benutzerkonzept .

Vorgehensweise

1. Markieren Sie im Catalog Manager die Zahlenreihe, deren Definition Sie sehen möchten.

2. Wählen Sie Catalog Manager ® Open Object Definition.


Löschen einer Zahlenreihe (MaxDB: SQL Studio)

Löschen einer Zahlenreihe

Verwendung

Mit SQL Studio können Sie Zahlenreihen (Sequences) aus der Datenbank löschen.

Voraussetzung

Sie besitzen die erforderlichen Benutzerberechtigungen.

Eine Erläuterung zu Benutzerberechtigungen finden Sie in der Dokumentation Datenbankverwaltung unter Benutzerkonzept .

Vorgehensweise

1. Markieren Sie im Catalog Manager die Zahlenreihe, die Sie löschen möchten.

2. Wählen Sie Catalog Manager ® Drop Object.


Favoriten (MaxDB: SQL Studio)

Favoriten

Um schnell und bequem auf Datenbankobjekte zugreifen zu können, können Sie sie im Catalog Manager im Ordner Favorites ablegen.

· Um ein Datenbankobjekt im Ordner Favorites abzulegen, markieren Sie das gewünschte Datenbankobjekt und wählen Sie Catalog Manager ® Add to Favorites.

· Um ein Datenbankobjekt aus dem Ordner Favorites zu entfernen, markieren Sie im Ordner Favorites das gewünschte Datenbankobjekt und wählen Sie Catalog Manager ® Remove from Favorites.

· Um alle Datenbankobjekte aus dem Ordner Favorites zu entfernen, markieren Sie den Ordner Favorites und wählen Sie Catalog Manager ® Clear Favorites.


Benutzer (MaxDB: SQL Studio)

Benutzer

Der Catalog Manager zeigt Ihnen unter Owned Users die Benutzer an, für die Sie die Eigentümerrechte besitzt. Mit SQL Studio können Sie Informationen zu diesen Benutzern ansehen, Benutzer umbenennen und löschen.

Voraussetzung

Sie besitzen die erforderlichen Benutzerberechtigungen.

Eine Erläuterung zu Benutzerberechtigungen finden Sie in der Dokumentation Datenbankverwaltung unter Benutzerkonzept .

Vorgehensweise

· Um die Informationen zu einem Benutzer anzuzeigen, markieren Sie den Benutzernamen, und wählen Sie Catalog Manager ® Open Object Definition.

· Um einen Benutzernamen zu ändern, markieren Sie ihn und wählen Sie Catalog Manager ® Rename Object.

· Um einen Benutzer zu löschen, markieren Sie den Benutzernamen und wählen Sie Catalog Manager ® Drop Object.


Datenbankprozeduren (MaxDB: SQL Studio)

Datenbankprozeduren

Der Catalog Manager zeigt Ihnen unter Procedures die Datenbankprozeduren an, die in der Datenbank angelegt sind. Mit SQL Studio können Sie die Definitionen dieser Datenbankprozeduren ansehen und die Datenbankprozeduren löschen.

Voraussetzung

Sie besitzen die erforderlichen Benutzerberechtigungen.

Eine Erläuterung zu Benutzerberechtigungen und Benutzereigenschaften finden Sie in der Dokumentation Datenbankverwaltung unter Benutzerkonzept .

Vorgehensweise

· Um sich eine Datenbankprozedur anzeigen zu lassen, markieren Sie sie und wählen Sie Catalog Manager ® Open Object Definition.

· Um eine Datenbankprozedur zu löschen, markieren Sie sie und wählen Sie Catalog Manager ® Drop Object.

Informationen zur Syntax von CREATE DBPROC-Anweisungen finden Sie im Referenzhandbuch unter CREATE DBPROC-Anweisung.


Trigger (MaxDB: SQL Studio)

Trigger

Der Catalog Manager zeigt Ihnen unter Triggers die Trigger an, die in der Datenbank angelegt sind. Mit SQL Studio können Sie die Definitionen dieser Trigger ansehen und die Trigger löschen.

Voraussetzung

Sie besitzen die erforderlichen Benutzerberechtigungen.

Eine Erläuterung zu Benutzerberechtigungen und Benutzereigenschaften finden Sie in der Dokumentation Datenbankverwaltung unter Benutzerkonzept.

Vorgehensweise

· Um sich die Definition eines Triggers anzeigen zu lassen, markieren Sie ihn und wählen Sie Catalog Manager ® Open Object Definition.

· Um einen Trigger zu löschen, markieren Sie ihn und wählen Sie Catalog Manager ® Drop Object.

Informationen zur Syntax von CREATE TRIGGER-Anweisungen finden Sie im Referenzhandbuch unter CREATE TRIGGER-Anweisung.


SQL-Dialog (MaxDB: SQL Studio)

SQL-Dialog

Wenn Sie SQL-Anweisungen unmittelbar in SQL erstellen möchten, dann verwenden Sie den SQL-Dialog.

Der SQL-Dialog bietet Ihnen folgende Möglichkeiten:

· Erstellen und Ausführen von SQL-Anweisungen

· Parametrisieren von SQL-Anweisungen

· Importieren und Exportieren von SQL-Anweisungen

Informationen zur Syntax und Semantik der SQL-Anweisungen des Datenbanksystems finden Sie im Referenzhandbuch.


Erstellen und Ausführen von SQL-Anweisungen (MaxDB: SQL Studio)

Erstellen und Ausführen von SQL-Anweisungen

Verwendung

Im SQL-Dialog können Sie SQL-Anweisungen in unterschiedlichen Modi erstellen und speichern.

Vorgehensweise

1. Wählen Sie View ® SQL Dialog. Ein Fenster für den SQL-Dialog öffnet sich.

2. Für SQL-Modus und Isolation-Level sind die Vorschlagswerte eingestellt, die Sie in den Benutzereinstellungen festgelegt haben. Wenn Sie mit anderen Werten arbeiten möchten, dann wählen Sie den gewünschten SQL-Modus und Isolation-Level im unteren Bereich des Dialogfensters.

3. Sie können den Commit-Modus ebenfalls im unteren Bereich des Dialogfensters ändern.

Wenn Sie die Benutzereigenschaft EXCLUSIVE haben, können Sie nur den Modus Auto Commit: ON wählen. Eine Erläuterung zu Benutzereigenschaften finden Sie im Referenzhandbuch unter Autorisierung .

4. Geben Sie Ihre SQL-Anweisungen ein.

Sie können SQL-Anweisungen einfügen, die während der aktuellen Datenbanksitzung bereits ausgeführt wurden. Wählen Sie SQL Dialog ® Recent Statements. Markieren Sie die gewünschte Anweisung, und wählen Sie Get.

Die Liste der Schlüsselbegriffe bietet Ihnen ebenfalls Unterstützung bei der Erstellung von SQL-Anweisungen.

5. Um eine Zeile auszukommentieren, verwenden Sie // oder -- am Anfang der Zeile.

6. Um zwei SQL-Anweisungen voneinander zu trennen, geben Sie eine auskommentierte Trennzeile ein.

7. Um durch die Anweisungshistorie der Datenbanksitzung zu blättern, wählen Sie SQL Dialog ® Previous Statement bzw. SQL Dialog ® Next Statement

8. Sie können SQL-Anweisungen parametrisieren.

9. Um Ihre Anweisungen später wieder zu verwenden oder weiter zu bearbeiten, speichern Sie sie mit SQL Dialog ® Save As als SQL-Studio-Objekt.

10. Um die SQL-Anweisungen auszuführen, wählen Sie SQL Dialog ® Execute. Wenn Sie nur einen Teil der angezeigten SQL-Anweisungen ausführen möchten, markieren Sie diesen Teil, und wählen Sie dann SQL Dialog® Execute.

Ergebnis

Die Statuszeile des Anweisungsfensters zeigt Ihnen an, ob die Ausführung Ihrer SQL-Anweisungen erfolgreich war. Falls ein Fehler aufgetreten ist, dann sehen Sie eine Fehlermeldung im Statusfenster des SQL Studio. Dort werden Ihnen je nach Ihren Einstellungen auch weitere Informationen wie z.B. die Ausführungsdauer Ihrer SQL-Anweisungen angezeigt.

Wenn Ihre SQL-Anweisung eine Ergebnistabelle liefert, erscheint diese Ergebnistabelle in einem weiteren Fenster.


Liste der Schlüsselbegriffe (MaxDB: SQL Studio)

Liste der Schlüsselbegriffe

Verwendung

Im SQL-Dialog bietet Ihnen die Liste der Schlüsselbegriffe (Keyword List) Unterstützung beim Erstellen von SQL-Anweisungen.

Vorgehensweise

1. Um die Liste der Schlüsselbegriffe aufzurufen, wählen Sie SQL Dialog ® Show Keyword List.

2. Um der Liste einen selbst definierten Schlüsselbegriff hinzuzufügen, markieren Sie den gewünschten Begriff in Ihrer SQL-Anweisung, und wählen Sie SQL Dialog ® Add to Keyword List.

3. Um einen selbst definierten Schlüsselbegriff aus der Liste zu löschen, markieren Sie den Begriff in Ihrer SQL-Anweisung, und wählen Sie SQL Dialog ® Remove from Keyword List.


Parametrisieren von SQL-Anweisungen (MaxDB: SQL Studio)

Parametrisieren von SQL-Anweisungen

Verwendung

Im SQL-Dialog können Sie SQL-Anweisungen parametrisieren. Beim Ausführen der parametrisierten SQL-Anweisung erscheint dann ein Dialogfenster, in das Sie einen Wert für den Parameter eingeben müssen.

Vorgehensweise

1. Fügen Sie beim Erstellen der SQL-Anweisung überall dort, wo eine variable Eingabe möglich sein soll, eckige Klammern ein.

2. Wenn Sie eine Eingabeaufforderung für das Dialogfenster formulieren möchten, geben Sie diese Eingabeaufforderung innerhalb der eckigen Klammern ein.

Wenn Sie die die Abfrage für die Spalten Artikel-Nr und Einzelpreis in der Tabelle Artikel parametrisieren wollen, können Sie bei den Auswahlkriterien folgende Parameter setzen:

SELECT  "Artikel-Nr", "Einzelpreis" FROM "Artikel"
WHERE  "Artikel-Nr" > [Artikelnummer (von)]
AND  "Artikel-Nr" < [Artikelnummer (bis)]
AND  "Einzelpreis" <= [Preisobergrenze]

Mit der Parametrisierung können Sie auch ganze Teile einer SQL-Anweisung ersetzen.

Sie können eine SELECT-Anweisung formulieren und über einen Parameter eine WHERE-Bedingung hinzufügen:

SELECT * FROM USERS [Ihre WHERE-Bedingung]

Wenn Sie einen Vergleichswert für den Datentyp CHAR, VARCHAR, DATE oder TIME angeben, müssen Sie den Vergleichswert in einfache Anführungszeichen einschließen.


Importieren und Exportieren von SQL-Anweisungen (MaxDB: SQL Studio)

Importieren und Exportieren von SQL-Anweisungen

Verwendung

Im SQL-Dialog können Sie SQL-Anweisungen als Textdatei im ASCII-Format importieren und exportieren.

Vorgehensweise

Wählen Sie im Kontextmenü des SQL-Dialogs Import File bzw. Export File.


Form-Dialog (MaxDB: SQL Studio)

Form-Dialog

Wenn Sie Datensätze von Tabellen in einer Maskendarstellung ansehen, auswählen und bearbeiten möchten, dann verwenden Sie den Form Dialog.

Der Form Dialog bietet Ihnen folgende Möglichkeiten:

· Ausführen eines Form-Dialogs

· Auswählen von Datensätzen mit Hilfe von Suchbedingungen

· Ändern von Datensätzen

· Einfügen von Datensätzen

· Löschen eines Datensatzes

· Importieren und Exportieren von Longspalten

Wenn Sie Anweisungen unmittelbar in SQL erstellen oder außer dem Bearbeiten von Datensätzen weitere Möglichkeiten der Datenbank nutzen möchten, dann verwenden Sie den SQL-Dialog.


Ausführen eines Form-Dialogs (MaxDB: SQL Studio)

Ausführen eines Form-Dialogs

Verwendung

Mit dem Form-Dialog können Sie Anweisungen zum Bearbeiten von Datensätzen in unterschiedlichen Isolation-Levels ausführen.

Vorgehensweise

...

1. Wählen Sie View ®Form Dialog. Ein Fenster für den Form-Dialog öffnet sich.

2. Je nach Ihren Benutzereinstellungen befinden Sie sich zunächst im Nur-Lese-Modus (Read Only) oder im Änderungsmodus. Wenn Sie den Dialogmodus ändern möchten, dann setzen oder entfernen Sie die Markierung Read Only im unteren Bereich des Dialogfensters.

3. Für den Isolation-Level gilt zunächst der Vorschlagswert, den Sie in den Benutzereinstellungen festgelegt haben. Wenn Sie mit einem anderen Isolation-Level arbeiten möchten, dann wählen Sie den gewünschten Isolation-Level im unteren Bereich des Dialogfensters.

4. Wählen Sie Form Dialog ® Get Table. Wählen Sie die Tabelle, die Sie bearbeiten möchten, und bestätigen Sie mit OK.
In der linken Hälfte des Fensters erscheint der erste Datensatz. Sie können mit den Pfeilen < > durch die Datensätze blättern. Im Änderungsmodus können Sie Datensätze ändern, einfügen oder löschen. In der rechten Hälfte des Fensters können Sie Suchbedingungen zur Auswahl bestimmter Datensätze eingeben.

Um den Fensterbereich für die Eingabe der Suchbedingungen auszublenden, entfernen Sie die Markierung Filter.

5. Um die Datensätze als Liste zu sehen, wählen Sie Report. Um zurück zur Maskendarstellung zu wechseln, wählen Sie Record.

6. Um den Dialog später wieder zu verwenden oder weiter zu bearbeiten, sichern Sie ihn mit Form Dialog ® Save As als SQL-Studio-Objekt.

7. Mit Form Dialog ® Export to SQL Dialog können Sie die entsprechende SQL-Anweisung Ihres Form-Dialogs in den SQL-Dialog exportieren.


Auswählen von Datensätzen mit Hilfe von Suchbedingungen (MaxDB: SQL Studio)

Auswählen von Datensätzen mit Hilfe von Suchbedingungen

Verwendung

Um sich nur bestimmte Datensätze einer Tabelle anzeigen zu lassen, können Sie im Form-Dialog Suchbedingungen angeben.

Vorgehensweise

1. Um den Fensterbereich für die Eingabe der Suchbedingungen einzublenden, markieren Sie Filter.

2. Formulieren Sie Ihre Suchbedingungen für die entsprechenden Tabellenspalten. Wählen Sie das gewünschte Prädikat, und geben Sie die Vergleichswerte bzw. Vergleichsausdrücke an.

3. Geben Sie an, wie die formulierte Suchbedingung mit der nächsten Suchbedingung verknüpft werden soll.

4. Wählen Sie Refresh. SQL Studio lädt die Datensätze aus der Datenbank.

Informationen zur Syntax von Prädikaten finden Sie im Referenzhandbuch unter Prädikat.


Ändern von Datensätzen (MaxDB: SQL Studio)

Ändern von Datensätzen

Verwendung

Mit dem Form-Dialog können Sie Datensätze in einer Maskendarstellung bearbeiten und ändern.

Voraussetzungen

· Sie haben zum Ausführen des Form-Dialogs den Änderungsmodus gewählt.

· Sie besitzen die erforderlichen Benutzerberechtigungen.

Eine Erläuterung zu Benutzerberechtigungen finden Sie in der Dokumentation Datenbankverwaltung unter Benutzerkonzept .

Vorgehensweise

1. Blättern Sie in der Maskendarstellung zu dem Datensatz, den Sie ändern möchten.

2. Geben Sie Ihre Änderungen ein.

Die Namen von Schlüsselspalten sind fett dargestellt.

Inhalte von LONG-Spalten können Sie importieren und exportieren.

3. Bestätigen Sie mit Update. SQL Studio übernimmt die Änderungen in die Datenbank.


Einfügen von Datensätzen (MaxDB: SQL Studio)

Einfügen von Datensätzen

Verwendung

Mit dem Form-Dialog können Sie in einer Maskendarstellung neue Datensätze in Tabellen einfügen.

Voraussetzungen

· Sie haben zum Ausführen des Form-Dialogs den Änderungsmodus gewählt.

· Sie besitzen die erforderlichen Benutzerberechtigungen.

Eine Erläuterung zu Benutzerberechtigungen finden Sie in der Dokumentation Datenbankverwaltung unter Benutzerkonzept .

Vorgehensweise

...

1. Wählen Sie in der Maskendarstellung Form Dialog ® New. Eine leere Eingabemaske öffnet sich.

2. Geben Sie die Daten ein. Beachten Sie dabei folgende Punkte:

¡ Die Namen von Schlüsselspalten sind fett dargestellt.

¡ Für einen NULL-Wert geben Sie die Darstellung des NULL-Werts entsprechend Ihren Benutzereinstellungen ein, z.B. ?.

¡ Wenn Sie beim Einfügen eines Datensatzes ein Feld leer lassen, interpretiert das System dies folgendermaßen:

§ Wenn für die entsprechende Spalte ein DEFAULT-Wert definiert ist, dann wird dieser Wert in die Datenbanktabelle übernommen.

§ Wenn für die entsprechende Spalte kein DEFAULT-Wert definiert ist, dann wird der NULL-Wert in die Datenbanktabelle übernommen

¡ Inhalte von LONG-Spalten können Sie importieren und exportieren.

3. Wählen Sie Insert. SQL Studio speichert den neuen Datensatz in der Tabelle.
Eine weitere Eingabemaske öffnet sich. Sie können direkt weitere Daten eingeben und als Datensätze einfügen.

4. Wenn Sie keine weiteren Datensätze einfügen möchten, entmarkieren Sie Form Dialog ® New.

5. Um die neuen Datensätze in der Listendarstellung zu sehen, wählen Sie Refresh und anschließend Report.

Sie können beim Einfügen von Datensätzen auch einen bestehenden Datensatz derselben Tabelle als Vorlage nutzen. Blättern Sie zu diesem Datensatz, geben Sie Ihre Änderungen ein, und wählen Sie Insert. Der Datensatz wird als neuer Datensatz in die Tabelle eingefügt.


Löschen eines Datensatzes (MaxDB: SQL Studio)

Löschen eines Datensatzes

Verwendung

Mit dem Form-Dialog können Sie Datensätze löschen.

Voraussetzungen

· Sie haben zum Ausführen des Form-Dialogs den Änderungsmodus gewählt.

· Sie besitzen die erforderlichen Benutzerberechtigungen.

Eine Erläuterung zu Benutzerberechtigungen finden Sie in der Dokumentation Datenbankverwaltung unter Benutzerkonzept .

Vorgehensweise

1. Blättern Sie in der Maskendarstellung zu dem Datensatz, den Sie löschen möchten.

2. Wählen Sie Delete.

SQL Studio löscht den Datensatz sofort aus der Datenbank.


Importieren und Exportieren von LONG-Spalten (MaxDB: SQL Studio)

Importieren und Exportieren von LONG-Spalten

Verwendung

Mit dem Form-Dialog können Sie Inhalte von LONG-Spalten aus einer Datei oder aus der Zwischenablage importieren und in eine Datei oder in die Zwischenablage exportieren.

Vorgehensweise

1. Um den Inhalt einer LONG-Spalte aus einer Datei zu importieren, klicken Sie in der Maskendarstellung in das Eingabefeld dieser Spalte, und wählen Sie
Form Dialog ® Import Long ®Import from File.

2. Um den Inhalt einer LONG-Spalte aus der Zwischenablage zu importieren, klicken Sie in der Maskendarstellung in das Eingabefeld dieser Spalte, und wählen Sie
Form Dialog ® Import Long ® Import Text from Clipboard.

3. Um den Inhalt einer LONG-Spalte in eine Datei zu exportieren, klicken Sie in der Maskendarstellung in das Eingabefeld dieser Spalte, und wählen Sie
Form Dialog ® Export Long ®Export to File.

4. Um den Inhalt einer LONG-Spalte aus der Zwischenablage zu importieren, klicken Sie in der Maskendarstellung in das Eingabefeld dieser Spalte, und wählen Sie
Form Dialog ® Export Long ®Export to Clipboard as Text.


Visual-Query-Dialog (MaxDB: SQL Studio)

Visual-Query-Dialog

Wenn Sie beim Formulieren von Datenbankanfragen visuelle Unterstützung haben möchten, dann verwenden Sie den Visual-Query-Dialog.

Der Visual-Query-Dialog bietet Ihnen folgende Möglichkeiten:

· Erstellen und Ausführen einer Visual Query

· Verknüpfen von Tabellenspalten mit JOINS

· Angeben von Suchbedingungen

· Parametrisieren von Suchbedingungen

· Definieren der Ergebnisansicht

Wenn Sie Anweisungen unmittelbar in SQL erstellen möchten oder außer Datenbankanfragen auch weitere Möglichkeiten der Datenbank nutzen wollen, dann verwenden Sie den SQL-Dialog.


Erstellen und Ausführen einer Visual Query (MaxDB: SQL Studio)

Erstellen und Ausführen einer Visual Query

Verwendung

Mit dem Visual-Query-Dialog können Sie SQL-Anweisungen in unterschiedlichen Isolation-Levels erstellen und speichern.

Vorgehensweise

...

1. Wählen Sie View ®Visual Query. Ein Fenster für den Visual-Query-Dialog öffnet sich. Das Fenster besteht aus folgenden Bereichen:

¡ Die obere Fensterhälfte ist der Bereich für die Tabellenauswahl.

¡ Die untere Fensterhälfte ist der Bereich für die Ergebnisdefinition.

2. Für den Isolation-Level gilt zunächst der Vorschlagswert, den Sie in den Benutzereinstellungen festgelegt haben. Wenn Sie mit einem anderen Isolation-Level arbeiten möchten, dann wählen Sie den gewünschten Isolation-Level im unteren Bereich des Dialogfensters.

3. Wählen Sie Visual Query ® Get Table. Wählen Sie die Tabelle, die Sie in Ihrer Datenbankanfrage verwenden möchten, und bestätigen Sie mit OK. Sie können auf diese Weise bis zu 16 Tabellen in die Tabellenauswahl übernehmen. Zu jeder übernommenen Tabelle öffnet sich ein Fenster, in dem die Namen der Tabellenspalten angezeigt werden.

¡ Um die Tabellen neu anzuordnen, wählen Sie Visual Query ® Arrange Tables bzw. Visual Query ® Cascade Tables.

¡ Um eine Tabelle wieder aus der Tabellenauswahl zu entfernen, schließen Sie das dazugehörige Fenster.

¡ Um alle Tabellen aus der Tabellenauswahl zu entfernen, wählen Sie Visual Query ® Clear Window.

4. Markieren Sie die Namen der Tabellenspalten, auf die sich Ihre Datenbankanfrage bezieht, und übernehmen Sie sie mit Drag&Drop in den Bereich für die Ergebnisdefinition.

Mit * übernehmen Sie alle Tabellenspalten einer Tabelle in die Ergebnisdefinition. Um eine Tabellenspalte wieder aus der Ergebnisdefinition zu entfernen, markieren Sie die Spalte und wählen Sie Visual Query ® Delete Column.

5. Sie können Tabellenspalten mit JOINS verknüpfen, für die Datensätze Suchbedingungen angeben und die Ergebnisansicht definieren.

6. Um Ihre Visual Query später wieder zu verwenden oder weiter zu bearbeiten, sichern Sie sie mit Visual Query ® Save As als SQL-Studio-Objekt.

7. Um die mit Visual Query erstellte Datenbankanfrage auszuführen, wählen Sie Visual Query ® Execute.

8. Mit Visual Query ® Export to SQL Dialog können Sie die Ihrer Visual Query entsprechenden SQL-Anweisungen in den SQL-Dialog exportieren.

Ergebnis beim Ausführen einer Visual Query

Die Statuszeile des Anweisungsfensters zeigt Ihnen an, ob die Ausführung Ihrer SQL-Anweisungen erfolgreich war. Falls ein Fehler aufgetreten ist, dann sehen Sie eine Fehlermeldung im Statusfenster des SQL Studio. Dort werden Ihnen je nach Ihren Einstellungen auch weitere Informationen wie z.B. die Ausführungsdauer Ihrer SQL-Anweisungen angezeigt.

Wenn Ihre Datenbankanfrage eine Ergebnistabelle liefert, erscheint diese Ergebnistabelle in einem weiteren Fenster.


Verknüpfen von Tabellenspalten mit JOINS (MaxDB: SQL Studio)

Verknüpfen von Tabellenspalten mit JOINS

Verwendung

Mit dem Visual-Query-Dialog können Sie in Datenbankanfragen Tabellenspalten durch JOINS verknüpfen.

Informationen zur Syntax von JOINS finden Sie im Referenzhandbuch unter JOIN-Prädikat.

Voraussetzung

Sie haben die Tabellen, deren Spalten Sie verknüpfen möchten, beim Erstellen der Visual Query in die Tabellenauswahl übernommen.

Vorgehensweise

1. Markieren Sie in der Tabellenauswahl die Tabellenspalte, die Sie verknüpfen möchten, und verbinden Sie sie durch Drag&Drop mit der gewünschten Tabellenspalte der anderen Tabelle. Eine Verbindungslinie erscheint zwischen den beiden Tabellenspalten.

2. Um den JOIN genauer zu spezifizieren, markieren Sie ihn und wählen Sie Show Join Definition im Kontextmenü. Ein Fenster für die JOIN-Definition öffnet sich. Wählen Sie den JOIN-Typ und den Vergleichsoperator, und wählen Sie OK.

3. Um einen JOIN zu löschen, markieren Sie ihn und wählen Sie Delete Join im Kontextmenü.

Wenn Sie dieselbe Tabelle zweimal in die Tabellenauswahl übernehmen, vergibt SQL Studio einen Aliasnamen. Auf diese Weise können Sie SELF JOINS erstellen.


Angeben von Suchbedingungen (MaxDB: SQL Studio)

Angeben von Suchbedingungen

Verwendung

Im Visual-Query-Dialog können Sie bei der Formulierung Ihrer Datenbankanfrage Suchbedingungen angeben.

Voraussetzung

Sie haben beim Erstellen der Visual Query die Tabellenspalten, auf die sich Ihre Datenbankanfrage bezieht, in den Fensterbereich für die Ergebnisdefinition übernommen.

Vorgehensweise

1. Geben Sie Ihre Suchbedingung in das Feld Predicate der entsprechenden Tabellenspalte ein.
Sie können die Suchbedingung parametrisieren.

Wenn Sie eine Suchbedingung für eine Spalte des Datentyps CHAR, VARCHAR, DATE oder TIME angeben, dann setzen Sie den Vergleichsausdruck in einfache Anführungszeichen.

2. Sie können mehrere Suchbedingungen mit UND-Verknüpfungen bzw. ODER-Verknüpfungen formulieren. Wenn Sie eine Spalte zur Formulierung von Suchbedingungen mehrfach verwenden, aber nicht mehrfach anzeigen wollen, dann blenden Sie sie in der Ergebnisansicht aus.

· Um mehrere Suchbedingungen mit UND-Verknüpfungen zu formulieren, geben Sie diese Bedingungen in derselben Zeile ein.

· Um mehrere Suchbedingungen mit ODER-Verknüpfungen zu formulieren, geben Sie jede dieser Bedingungen in einer neuen Zeile ein.

Informationen zur Syntax von Suchbedingungen und Prädikaten finden Sie im Referenzhandbuch unter Suchbedingung bzw. Prädikat


Parametrisieren von Suchbedingungen (MaxDB: SQL Studio)

Parametrisieren von Suchbedingungen

Verwendung

Im Visual-Query-Dialog können Sie Suchbedingungen für Datenbankanfragen parametrisieren. Beim Ausführen der Datenbankanfrage erscheint dann ein Dialogfenster, in das Sie einen Wert für den Parameter eingeben müssen.

Vorgehensweise

1. Fügen Sie beim Angeben der Suchbedingungen überall dort, wo eine variable Eingabe möglich sein soll, eckige Klammern ein.

2. Wenn Sie eine Eingabeaufforderung für das Dialogfenster formulieren möchten, geben Sie diese Eingabeaufforderung innerhalb der eckigen Klammern ein.

Für die Spalte Bestell_Nr der Tabelle Bestellungen können Sie die Suchbedingung folgendermaßen parametrisieren:
=[Bestellnummer:]


Definieren der Ergebnisansicht (MaxDB: SQL Studio)

Definieren der Ergebnisansicht

Verwendung

Im Visual-Query-Dialog können Sie angeben, wie SQL Studio das Ergebnis Ihrer Datenbankanfrage anzeigen soll.

Voraussetzung

Sie haben beim Erstellen der Visual Query die Tabellenspalten, auf die sich Ihre Datenbankanfrage bezieht, in den Fensterbereich für die Ergebnisdefinition übernommen.

Vorgehensweise

1. Um ein Synonym für einen Spaltennamen zu vergeben, tragen Sie den gewünschten Synonymnamen in die Zeile Synonym ein.

2. Um eine Spalte in der Ergebnisansicht auszublenden, wählen Sie in der Zeile Visible der entsprechenden Spalte No.

Dies ist vor allem dann nützlich, wenn Sie die Spalte nur zur Formulierung von Suchbedingungen benötigen.

3. Um das Ergebnis nach den Spaltenwerten einer Spalte zu gruppieren, wählen Sie in der Zeile Group der entsprechenden Spalte Yes.

Mit Hilfe einer Gruppierung können Sie in der Ergebnisansicht Durchschnittswerte, Maximalwerte, Minimalwerte, Summen und die Anzahl der gefundenen Datensätze bestimmen.

4. Um die Datensätze aufsteigend oder absteigend zu sortieren, wählen Sie im Feld Order der Spalte, die Sie zur Sortierung heranziehen möchten, Ascending bzw. Descending.


Ergebnistabellen (MaxDB: SQL Studio)

Ergebnistabellen

SQL Studio zeigt Ergebnisse von Datenbankanfragen jeweils in separaten Fensterbereichen an. Mit den Navigationsfunktionen im Kontextmenü eines Ergebnisses können Sie durch die Ergebnistabelle blättern.

Außerdem haben Sie folgende Möglichkeiten:

  • Anpassen der Ergebnisansicht
  • Speichern eines Ergebnisses

Wenn Sie im SQL-Dialog mehrere SQL-Anweisungen auf einmal ausführen, werden mehrere einzelne Ergebnistabellen erzeugt. Sie können anhand der Auswahlliste in der Statuszeile des Ergebnisfensters zwischen diesen Ergebnistabellen hin und her wechseln.


Anpassen der Ergebnisansicht (MaxDB: SQL Studio)

Anpassen der Ergebnisansicht

Verwendung

Sie können sich Ergebnistabellen abschnittsweise oder fortlaufend anzeigen lassen. Sie können Spalten umbennen, ausblenden oder zum besseren Blättern in der Ergebnistabelle fixieren, und Sie können die Schriftart der Ergebnistabelle ändern.

Vorgehensweise

1. Um sich die Ergebnistabelle grundsätzlich abschnittsweise anzeigen zu lassen, wählen Sie Clipped Result View in den Benutzereinstellungen.
Im SQL-Dialog und im Visual-Query-Dialog können Sie diese Einstellung für das aktuelle Dialogfenster ändern. Wählen Sie dazu SQL Dialog ® Clipped Result View bzw. Visual Query ® Clipped Result View.

2. Um Spalten umzubenennen, auszublenden oder zu fixieren, wählen Sie Customize im Kontextmenü des Ergebnisses. Nehmen Sie folgende Einstellungen vor:

¡ Ändern Sie, falls gewünscht, die Spaltennamen.

¡ Ändern Sie, falls gewünscht, die Angabe Visible für die einzelnen Spalten.

¡ Geben Sie in Fixed Columns die Anzahl der Spalten ein, die Sie von links beginnend fixieren möchten.

Bestätigen Sie Ihre Einstellungen mit OK.

3. Um die Schriftart der Ergebnistabelle zu ändern, wählen Sie Font im Kontextmenü des Ergebnisses. Wählen Sie die gewünschte Schriftart, und bestätigen Sie mit OK.


Speichern eines Ergebnisses (MaxDB: SQL Studio)

Speichern eines Ergebnisses

Verwendung

Im SQL-Modus INTERNAL können Sie das gesamte Ergebnis einer Datenbankanfrage als Textdatei speichern oder nach Microsoft Excel exportieren. Sie können einzelne Zellen als Textdatei speichern oder in einem separaten Zoom-Fenster anzeigen lassen.

Vorgehensweise

· Um die gesamte Ergebnistabelle als Textdatei zu speichern, wählen Sie
Export Result to ® File im Kontextmenü des Ergebnisses.
Je nach Ihren Benutzereinstellungen werden die Inhalte der Ergebnistabelle an den bestehenden Dateiinhalt angehängt oder der Dateiinhalt neu erzeugt.
SQL Studio trennt die Spalten beim Speichern durch Tabulatoren und die Zeilen durch einen Zeilenumbruch. Spalteninhalte vom Datentyp CHARACTER oder LONG werden nach 16 Zeichen abgeschnitten. Nicht darstellbare Zeichen werden durch Leerzeichen ersetzt.

· Um die gesamte Ergebnistabelle nach Microsoft Excel zu exportieren, wählen Sie
Export Result to ® Excel im Kontextmenü des Ergebnisses.
Microsoft Excel öffnet sich automatisch und überträgt pro Zelle maximal 1024 Byte. Daten vom Typ CHARACTER werden nach 1021 Bytes abgeschnitten.

· Um eine Zelle als Textdatei zu speichern, wählen Sie Export Cell to ® File.
Je nach Ihren Benutzereinstellungen werden die Inhalte der Ergebnistabelle an den bestehenden Dateiinhalt angehängt oder der Dateiinhalt neu erzeugt.

· Um eine Zelle in einem separaten Zoom-Fenster anzeigen zu lassen, wählen Sie
Export Cell to ® Zoom Window. In den Benutzereinstellungen können Sie wählen, wie viele Bytes im Zoom-Fenster angezeigt werden.

Das Exportieren bzw. Anzeigen von Zelleninhalten ist vor allem bei Spalteninhalten vom Datentyp LONG hilfreich.


Statusfenster (MaxDB: SQL Studio)

Statusfenster

Im Statusfenster im unteren Bildschirmbereich des SQL Studio sehen Sie Informationen wie Fehlermeldungen oder die Ausführungsdauer von SQL-Anweisungen.

Sie können nach Wörtern und Begriffen suchen, den Text im Statusfenster kopieren oder als Textdatei exportieren.

Sie haben außerdem folgende Optionen:

· Wenn Sie außer Fehlermeldungen auch weitere Informationen zu Ihren Aktionen im SQL Studio anzeigen lassen wollen, dann wählen Sie
Status Window ® Trace All.

· Wenn Sie den gesamten Inhalt des Statusfensters markieren wollen, dann wählen Sie
Status Window ® Select All.

· Wenn Sie den Inhalt des Statusfensters löschen wollen, dann wählen Sie
Status Window ® Clear.

· Wenn Sie das Statusfenster anzeigen oder ausblenden wollen, dann wählen Sie
View ® Status Window.


Web SQL Studio

MySQL MaxDB ist ein relationales Datenbanksystem mit einer SQL-kompatiblen Benutzeroberfläche.

Relational bedeutet, dass das Datenbanksystem den Benutzern gegenüber alle Informationen in Form von Tabellen darstellt. Die normierte Sprache SQL (Structured Query Language) liefert einen Satz von Anweisungen, mit denen Sie diese Tabellen pflegen und auswerten können.

Das web-basierte Query Tool Web SQL Studio ermöglicht den bequemen Zugriff auf die Daten einer Datenbankinstanz. Wenn Sie Web SQL Studio einmal im Netz installiert haben, können Sie es von allen Browsern aus aufrufen und eine Datenbanksitzung eröffnen. Sie können SQL-Anweisungen erstellen oder gespeicherte SQL-Anweisungen bearbeiten, die Anweisungen ausführen und verwalten.

Für Microsoft Windows-Benutzer steht außerdem das Query Tool SQL Studio mit erweiterter Funktionalität zur Verfügung.

Informationen zur Installation des Web SQL Studio finden Sie im Installationsleitfaden Web Tools.

Allgemeine Informationen zum Datenbanksystem finden Sie in der Dokumentation Datenbankverwaltung .


Aufrufen des Web SQL Studio (MaxDB: Web SQL Studio)

Aufrufen des Web SQL Studio

Voraussetzung

Die Web Tools wurden einmal im Netz installiert und der Web Server ist gestartet (siehe Installationsleitfaden Web Tools).

Vorgehensweise

Um Web SQL Studio aufzurufen, öffnen Sie Ihren Web Browser und geben Sie folgende URL ein:

http://<web_server>:<port>/websql

· Geben Sie für <web_server> den Namen des Rechners an, auf dem der Web Server installiert ist.

· Geben Sie für <port> die Port-Adresse des Web Server an.

Das Web SQL Studio ist nun gestartet und Sie können eine Datenbanksitzung eröffnen.


Eröffnen einer Datenbanksitzung (MaxDB: Web SQL Studio)

Eröffnen einer Datenbanksitzung

Verwendung

Bevor Sie mit Web SQL Studio auf die Daten einer Datenbankinstanz zugreifen können, müssen Sie eine Verbindung zum Datenbankrechner herstellen und sich an der Datenbank anmelden.

Voraussetzungen

· Sie haben Web SQL Studio aufgerufen.

· Die Datenbankinstanz, auf die Sie zugreifen wollen, befindet sich im Betriebszustand ONLINE.

Falls die Datenbankinstanz nicht im Betriebszustand ONLINE ist, starten Sie sie mit dem Database Manager.

Vorgehensweise

...

1. Geben Sie den Namen des Datenbankrechners und den Namen der Datenbankinstanz ein.

2. Geben Sie Ihren Benutzernamen und Ihr Kennwort ein, und wählen Sie Logon.

Bei der Eingabe des Benutzernamens und des Kennworts übernimmt das System alle Buchstaben automatisch als Großbuchstaben. Wenn das System Groß- und Kleinschreibung unterscheiden soll, müssen Sie den Benutzernamen und das Kennwort in Anführungszeichen einschließen. Die Anführungszeichen sind auch dann notwendig, wenn Benutzername oder Kennwort Sonderzeichen enthalten. Ein Anführungszeichen darf im Benutzernamen oder Kennwort selbst nicht vorkommen.

Ergebnis

Das Web SQL Studio stellt eine Verbindung zur gewählten Datenbankinstanz her. Sie können nun neue SQL-Anweisungen erstellen oder gespeicherte SQL-Anweisungen bearbeiten sowie SQL-Anweisungen ausführen.

Um die Datenbanksitzung wieder zu beenden, wählen Sie Logoff in der Kopfzeile des Web SQL Studio.


Erstellen einer SQL-Anweisung (MaxDB: Web SQL Studio)

Erstellen einer SQL-Anweisung

Verwendung

Mit Web SQL Studio können Sie neue SQL-Anweisungen erstellen, speichern und ausführen.

Voraussetzungen

· Sie haben eine Datenbanksitzung eröffnet.

· Sie haben die erforderlichen Benutzerberechtigungen.

Eine Erläuterung zu Benutzerberechtigungen und Benutzereigenschaften finden Sie im Referenzhandbuch unter Autorisierung.

Vorgehensweise

...

1. Geben Sie Ihre SQL-Anweisungen im SQL-Dialog-Fenster ein.

2. Um eine Zeile auszukommentieren, verwenden Sie // oder -- am Anfang der Zeile.

3. Um zwei SQL-Anweisungen voneinander zu trennen, geben Sie eine auskommentierte Trennzeile ein.

4. Um bereits ausgeführte Anweisungen der aktuellen Datenbanksitzung anzuzeigen, wählen Sie Prev Statement oderNext Statement.

5. Um den gesamten Inhalt des SQL-Dialog-Fensters zu löschen, wählen Sie Clear.

6. Sie können SQL-Anweisungen parametrisieren.

7. Um Ihre SQL-Anweisung später wieder zu verwenden oder weiter zu bearbeiten, können Sie sie speichern. Markieren Sie den gewünschten Ordner, und wählen Sie Save in Selected Folder. Geben Sie einen Namen für die SQL-Anweisung ein, und wählen Sie OK.


Parametrisieren einer SQL-Anweisung (MaxDB: Web SQL Studio)

Parametrisieren einer SQL-Anweisung

Verwendung

Sie können SQL-Anweisungen parametrisieren. Beim Ausführen der parametrisierten SQL-Anweisung erscheint dann ein Dialogfenster, in das Sie einen Wert für den Parameter eingeben müssen.

Vorgehensweise

  1. Fügen Sie beim Erstellen der SQL-Anweisung überall dort, wo eine variable Eingabe möglich sein soll, eckige Klammern ein.
  2. Wenn Sie eine Eingabeaufforderung für das Dialogfenster formulieren möchten, geben Sie diese Eingabeaufforderung innerhalb der eckigen Klammern ein.
  3. Mit der Parametrisierung können Sie auch ganze Teile einer SQL-Anweisung ersetzen.


Bearbeiten einer gespeicherten SQL-Anweisung (MaxDB: Web SQL Studio)

Bearbeiten einer gespeicherten SQL-Anweisung

Verwendung

Sie können mit Web SQL Studio gespeicherte SQL-Anweisungen öffnen, bearbeiten und ausführen.

Voraussetzungen

· Sie haben eine Datenbanksitzung eröffnet.

· Sie haben die erforderlichen Benutzerberechtigungen, um die gewünschte SQL-Anweisung zu bearbeiten.

Eine Erläuterung zu Benutzerberechtigungen und Benutzereigenschaften finden Sie im Referenzhandbuch unter Autorisierung.

Vorgehensweise

...

1. Um eine gespeicherte SQL-Anweisung zu öffnen, expandieren Sie im linken Fensterbereich den entsprechenden Ordner und wählen Sie die gewünschte SQL-Anweisung. Sie wird im SQL-Dialog-Fenster angezeigt.

2. Bearbeiten Sie die Anweisung im SQL-Dialog-Fenster.

3. Um Ihre Änderungen zu speichern, wählen Sie Save.

Web SQL Studio greift auf denselben Datenbestand zu wie SQL Studio. Alle mit SQL Studio angelegten Ordner und gespeicherten SQL Studio-Objekte sind auch im Web SQL Studio sichtbar. Eine Ausnahme ist der Local Folder.

Wenn Sie Objekte öffnen, die im SQL Studio mit Form Dialog oder Visual Query erstellt wurden oder Tabellendefinitionen sind, dann wird die zugrunde liegende SQL-Anweisung angezeigt. Diese können Sie nur unter einem neuen Namen speichern. Markieren Sie dazu einen Ordner, und wählen Sie Save in Selected Folder. Geben Sie einen Namen für die SQL-Anweisung ein, und wählen Sie OK.

Unter Type rechts neben dem SQL-Dialog-Fenster sehen Sie, um welchen Objekttyp es sich bei der aktuell geöffneten Anweisung handelt.


Ausführen einer SQL-Anweisung (MaxDB: Web SQL Studio)

Ausführen einer SQL-Anweisung

Verwendung

Mit Web SQL Studio können Sie neu erstellte SQL-Anweisungen und gespeicherte SQL-Anweisungen ausführen. Vor dem Ausführen jeder SQL-Anweisung können Sie den gewünschten Commit-Modus, SQL-Modus und Isolation-Level wählen.

Voraussetzung

Sie haben eine neue SQL-Anweisung erstellt oder eine gespeicherte SQL-Anweisung bearbeitet. Die Anweisung, die Sie ausführen möchten, wird im SQL-Dialog-Fenster angezeigt.

Vorgehensweise

...

1. Wählen Sie rechts neben dem SQL-Dialog-Fenster die gewünschten Modi und den Isolation-Level für die Ausführung der Anweisung.

2. Wählen Sie Execute.

Ergebnis

· Wenn Ihre SQL-Anweisung eine Ergebnistabelle liefert, erscheint diese im Ergebnisfenster im unteren Bildschirmbereich.

· Wenn Sie mehrere SQL-Anweisungen gleichzeitig ausgeführt haben, können Sie mit einem Drop-Down-Menü durch die zugehörigen Ergebnistabellen blättern.

· Wenn Ihre SQL-Anweisung keine Ergebnistabelle liefert, erhalten Sie im Ergebnisfenster Informationen über die erfolgreiche Ausführung Ihrer Anweisung.


WebDAV GUI

Der MaxDB WebDAV GUI erlaubt als HTML-basierte Anwendung eine einfache Administration und Metadatenpflege für die Indizierung von XML-Dokumenten, die in der Dokumentenablage (WebDAV-Ablage) des WebDAV-Service abgelegt sind.

· Überblick: XML-Indizierung und der WebDAV-Service

· Funktionsweise des WebDAV GUI

· Begriffe

· Unterstützte Teilmenge des XPATH-Standards

Die WebDAV-XML-Indizierung ist Teil der WebDAV-Services. Diese werden mit den WebTools installiert und eingerichtet (siehe auch Installationsleitfaden WebTools).

Allgemeine Informationen zum Datenbanksystem finden Sie in der Dokumentation Datenbankverwaltung.


Überblick: XML-Indizierung und der WebDAV-Service (MaxDB: WebDAV GUI)

Überblick: XML-Indizierung und der WebDAV-Service

Eine MaxDB-Datenbankinstanz dient als Ablage für die WebDAV-Dokumente und ihre Eigenschaften (WebDAV Properties). Die für die Indizierung von XML-Dokumenten benötigten Metadaten – z. B. XML-Indexdefinitionen – sind ebenfalls in der Datenbank abgelegt.

Der Indizierungs-Service greift auf diese Metadaten zurück und ermittelt entsprechend die Indexwerte für die zu indizierenden XML-Dokumente. Diese Indexwerte werden als WebDAV-Properties zusammen mit den Dokumenten in der Datenbankinstanz gespeichert.

Für die synchrone Indizierung ist ein interner Indizierungs-Service bereits als Teil des WebDAV-Service angelegt. Diesen internen Service können Sie Ihren Anforderungen anpassen.

Wenn Sie XML-Dokumente asynchron indizieren wollen, müssen Sie dafür mindestens einen separaten Indizierungs-Service definieren.


Synchrone Indizierung (MaxDB: WebDAV GUI)

Synchrone Indizierung

Bei der synchronen Indizierung wird ein XML-Dokument jedes Mal indiziert, wenn Sie es mittels eines modifizierten PUT-Requests in die Dokumentenablage bringen. Die Indexwerte sind dann als WebDAV-Properties abgelegt.

Schlägt die Indizierung fehl, wird das Dokument auch nicht in der Dokumentenablage abgelegt.

Vorgehensweise

...

1. Ordnen Sie das XML-Dokument über den folgenden HTTP-Header einer Dokumentenklasse zu:

SAPDB_DocumentClass: <document_class>

2. Wenn Sie verhindern wollen, dass das Dokument synchron indiziert wird, obwohl eine Dokumentenklasse zugeordnet ist, dann verwenden Sie einen weiteren Header der folgenden Form:

SAPDB_AsyncIndexing: {F|T}

¡ Wenn Sie den Wert F (False) angeben oder wenn Sie diesen Header nicht angeben, dann findet eine synchrone Indizierung statt.

¡ Wenn Sie den Wert T (True) angeben, dann wird das XML-Dokument lediglich mit der Information zu seiner Dokumentenklasse abgelegt. Die Indizierung erfolgt dann asynchron über eine Indizierungs-Engine.

PUT /webdav/test.xml HTTP/1.1
Host: <web_server>
Content-Type: text/xml
Content-Length: 1000
SAPDB_DocumentClass: BOOK
SAPDB_AnsyncIndexing: F

<mediadescription>
   <header mediatype="BOOK">
      <subtype>PAPERBACK</subtype>
      <isbn>3-446-12345-8</isbn>
      <pages>244</pages>
   </header>
   <data>
      <authors>
         <author>
            <name>Shepard, Francis</name>
         </author>
      </authors>
      <title>XML Indexing. Basics.</title>
      <shortdesc>
         All you need to know about XML Indexing to
         get a good start.
      </shortdesc>
      <price>$49.90</price>
      <longdesc>...</longdesc>
   </data>
</mediadescription>

Siehe auch Überblick: XML-Indizierung und der WebDAV-Service


Asynchrone Indizierung (MaxDB: WebDAV GUI)

Asynchrone Indizierung

Die asynchrone Indizierung wird durch eine Indizierungs-Engine vorgenommen. XML-Dokumente müssen deshalb nicht schon beim Ablegen in die Dokumentenablage indiziert werden. Die Indizierung erfolgt unabhängig vom PUT-Request.

Damit ist auch eine Reindizierung von bereits abgelegten und indizierten Dokumenten möglich, d.h. eine Aktualisierung der XML-Indizes. Sie können die Reindizierung mit dem WebDAV Explorer anfordern.

Die asynchrone Indizierung bietet außerdem die Möglichkeit der Skalierung. Es können mehrere Indizierungs-Engines parallel auf mehreren Rechnern betrieben werden.

Siehe auch Überblick: XML-Indizierung und der WebDAV-Service


XML-Indizes (MaxDB: WebDAV GUI)

XML-Indizes

XML-Indizes sind immer einer bestimmten Dokumentenklasse zugeordnet. Die Definition eines XML-Indizes beschreibt, wie XML-Dokumente dieser Dokumentenklasse zu indizieren sind. Der Ermittlung der benötigten Indexwerte dient dabei die XPATH-Angabe.

· Anlegen/Ändern einer XML-Indexdefinition

· Löschen einer XML-Indexdefinition


XPATH-Angabe (MaxDB: WebDAV GUI)

XPATH-Angabe

XPATH ist ein Web-Standard für die Navigation in XML-Dokumenten. XPATH-Angaben dienen dazu, aus der Struktur eines XML-Dokuments Informationen wie z.B. den Autor oder die Seitenzahl zu ermitteln, die dann für die XML-Indizierung verwendet werden.

Eine XPATH-Angabe (Location Path) setzt sich zusammen aus dem Base Path und dem Value Path.

· Der Base Path beschreibt ein Node-Set im XML-Dokument.

· Der Value Path beschreibt, welche Werte aus diesem Node-Set ermittelt werden sollen.

Die XPATH-Angabe /mediadescription/header/@mediatype bewirkt, dass der Wert des Attributs mediatype des XML-Tag <header> als Indexwert ermittelt wird.

Die XPATH-Angabe //author/name/text() bewirkt, dass der Name des Autors aus dem XML-Dokument ermittelt wird.

Die XML-Indizierung der MaxDB WebDAV-Services unterstützt zur Zeit eine Teilmenge des bekannten XPATH-Standards.


Dokumentenklassen (MaxDB: WebDAV GUI)

Dokumentenklassen

Ein XML-Dokument kann zu genau einer Dokumentenklasse gehören. Die Dokumentenklasse dient dazu, unterschiedliche Arten von XML-Dokumenten, z.B. Bücher oder Artikel, nach unterschiedlichen Kriterien zu indizieren. Der Dokumentenklasse werden zu diesem Zweck Definitionen der gewünschten XML-Indizes zugeordnet. Anhand dieser Definitionen ermittelt der Indizierungs-Service in allen Dokumenten dieser Dokumentenklasse die Indexwerte.

· Anlegen/Ändern/Löschen einer Dokumentenklasse

· WebDAV Explorer: Anzeigen/Ändern der Eigenschaften von Ordnern oder Dateien


Indizierungs-Service (MaxDB: WebDAV GUI)

Indizierungs-Service

Eine Indizierungs-Engine, die mit Angaben wie der zu bearbeitenden Dokumentenklassen, Definitionen der XML-Indizes sowie der zu verwendenden Dokumentenablage konfiguriert wurde, ist ein Indizierungs-Service.

Die Konfigurationsangaben, d.h. die Definition des Indizierungs-Service, können von mehreren Indizierungs-Engines gleichzeitig verwendet werden.

Siehe auch: Definieren/Ändern eines Indizierungs-Service


Indizierungs-Engine (MaxDB: WebDAV GUI)

Indizierungs-Engine

Eine Indizierungs-Engine ist ein Programm, das entsprechend der Definition des Indizierungs-Service in der Dokumentenablage gespeicherte XML-Dokumente asynchron indiziert.

Die Indizierungs-Engine kann auf einem separaten Rechner installiert sein. Um eine bessere Skalierung zu erreichen, können Sie auch mehrere Indizierungs-Engines auf mehreren separaten Rechnern betreiben.

Mit dem Index Engine Monitoring können Sie alle registrierten Indizierungs-Engines überwachen.


Dokumentenablage (MaxDB: WebDAV GUI)

Dokumentenablage

Eine MaxDB-Datenbankinstanz dient als Dokumentenablage (WebDAV-Ablage) für die XML-Dokumente, die Sie mit dem WebDAV GUI indizieren.

Diese Datenbankinstanz haben Sie beim Einrichten des WebDAV-Service angegeben.

Um sich mit der Datenbankinstanz verbinden zu können, benötigt der Indizierungs-Service Angaben wie den Namen der Datenbankinstanz und den Rechner, auf dem sie installiert ist, sowie einen gültigen Benutzernamen mit Kennwort.

· Angaben zur Dokumentenablage machen/ändern

· Löschen der Angaben zu einer Dokumentenablage


Funktionsweise des WebDAV GUI (MaxDB: WebDAV GUI)

Funktionsweise des WebDAV GUI

Aufruf des WebDAV GUI

Um den WebDAV GUI aufzurufen, geben Sie folgende URL ein:
http://<web_server>:<port>/webdav?gui

Siehe auch: Verwendete Variablen im Installationsleitfaden Web Tools

Sie gelangen auf die Einstiegsseite des WebDAV GUI.

Bedienung des WebDAV GUI

Sie können einen der folgenden Funktionsbereiche nutzen:

· Wählen Sie WebDAV Explorer, wenn Sie durch die Dokumentenablage navigieren möchten.

· Wählen Sie Document Retrieval, wenn Sie nach indizierten XML-Dokumenten suchen wollen.

· Wählen Sie Index Engine Monitoring, wenn Sie die registrierten Indizierungs-Engines überwachen wollen.

· Wählen Sie Indexing Service Settings, wenn Sie einen Indizierungs-Service einrichten, also Metadaten für die XML-Indizierung anlegen, ändern oder löschen wollen.


WebDAV Explorer (MaxDB: WebDAV GUI)

WebDAV Explorer

Mit dem WebDAV Explorer können Sie durch die Dokumentenablage navigieren. Sie können sich Eigenschaften und Inhalte der abgelegten Dateien und Ordner ansehen, die Dokumentenklasse von Dateien ändern, ihre Indizierung aktualisieren sowie Dateien und Ordner löschen.

· Navigieren durch die Dokumentenablage

· Eigenschaften von Ordnern oder Dateien anzeigen

· Dokumentenklasse einer Datei ändern

· Indizierung einer Datei aktualisieren

· Löschen von Ordnern oder Dateien

· Nutzen des Deleted Items-Ordners über WebDAV HTTP


Navigieren durch die Dokumentenablage (MaxDB: WebDAV GUI)

Navigieren durch die Dokumentenablage

Verwendung

Mit dem WebDAV Explorer können Sie durch die Dokumentenablage navigieren.

Vorgehensweise

· Um den Inhalt eines Ordners oder einer Datei anzuzeigen, klicken Sie auf den Namen des entsprechenden Ordners oder der Datei.

· Um die nächsthöhere Ebene der Dokumentenablage anzuzeigen, klicken Sie auf .

· Um die Anzeige aufzufrischen, klicken Sie auf [image].


Eigenschaften von Ordnern oder Dateien anzeigen (MaxDB: WebDAV GUI)

Eigenschaften von Ordnern oder Dateien anzeigen

Verwendung

Der WebDAV Explorer zeigt Ihnen neben den verschiedenen Ordnern und Dateien in Ihrer Dokumentenablage an, wann diese zuletzt geändert wurden. Er zeigt Ihnen die Größe der abgelegten Dateien an. Sie können daneben weitere Informationen zu den Dateien, Ordnern, ihren Sperren und ihrer XML-Indizierung erhalten.

Vorgehensweise

· Um Informationen zu den WebDAV-Eigenschaften und Sperren (Lock Properties) eines Ordners oder einer Datei zu erhalten, klicken Sie auf [image] (Show Properties).

Zu einem Ordner werden folgende Informationen angezeigt:

Contained Files | Anzahl der Dateien in diesem Verzeichnisbaum
Contained Folders | Anzahl der Verzeichnisse in diesem Verzeichnisbaum
Size | Gesamtgröße aller Dateien in diesem Verzeichnisbaum

Zu einer Datei werden folgende Informationen angezeigt:

Content Type | Inhaltsformat der Datei
Size | Dateigröße
Last Modified | Datum der letzten Änderung

Zur Sperre werden bei Dateien und Ordnern folgende Informationen angezeigt:

Lock Type | Art der Sperre
Scope | Sperrumfang (EXCLUSIVE oder SHARED)
Owner | Eigentümer der Sperre
Depth | Sperrtiefe
Timeout | Gültigkeitsdauer der Sperre
Lock Token | Sperr-ID

· Um Informationen zur XML-Indizierung einer Datei zu erhalten, klicken Sie auf [image] (Show XML Indexing Properties). Sie sehen die Dokumentenklasse und den aktuellen Status der Indizierung. Sie können eine andere Dokumentenklasse zuordnen oder die Indizierung aktualisieren.


Dokumentenklasse einer Datei ändern (MaxDB: WebDAV GUI)

Dokumentenklasse einer Datei ändern

Um einer Datei eine neue oder andere Dokumentenklasse zuzuordnen, lassen Sie sich mit dem WebDAV Explorer die Informationen zur XML-Indizierung dieser Datei anzeigen. Wählen Sie die gewünschte Dokumentenklasse, und bestätigen Sie mit Update.

Wenn Sie die Dokumentenklasse einer Datei ändern oder die Zuordnung zu einer Dokumentenklasse ganz aufheben (No Document Class assigned), dann werden die bereits vorhanden Indexwerte zu dieser Datei gelöscht und der Indizierungs-Status entsprechend geändert. Wenn Sie eine andere Dokumentenklasse zugeordnet haben, dann erfolgt automatisch eine Reindizierung, falls die entsprechende Indizierungs-Engine läuft.


Indizierung einer Datei aktualisieren (MaxDB: WebDAV GUI)

Indizierung einer Datei aktualisieren

Um die XML-Indizierung einer Datei zu aktualisieren, lassen Sie sich mit dem WebDAV Explorer die Informationen zur XML-Indizierung anzeigen. Wählen Sie Trigger Reindexing, und bestätigen Sie mit Update.


Löschen von Ordnern oder Dateien (MaxDB: WebDAV GUI)

Löschen von Ordnern oder Dateien

Verwendung

Im WebDAV Explorer können Sie Ordner und Dateien löschen, gelöschte Ordner und Dateien wiederherstellen oder endgültig aus der Dokumentenablage entfernen.

Vorgehensweise

· Um einen Ordner oder eine Datei zu löschen, klicken Sie auf [image] (Delete). Der Ordner oder die Datei wird in den Ordner [image] (Deleted Items) verschoben.

Wenn der Ordner Deleted Items bereits einen Ordner oder eine Datei desselben Namens enthält, dann wird dieser Ordner oder diese Datei von dem soeben gelöschten Objekt überschrieben und damit unwiderruflich aus der Dokumentenablage entfernt.

· Um einen gelöschten Ordner oder eine gelöschte Datei wiederherzustellen, gehen Sie folgendermaßen vor:

a. Öffnen Sie den Ordner Deleted Items und klicken Sie dann auf [image] (Restore) des entsprechenden Ordners/der entsprechenden Datei.

b. Geben Sie in Restore to ein Verzeichnis an, in das wiederhergestellt werden soll.

c. Wenn ein eventuell bereits existierender Ordner oder eine bereits existierende Datei desselben Namens in diesem Verzeichnis beim Wiederherstellen überschrieben werden soll, dann wählen Sie Overwrite.

Ein überschriebener Ordner oder eine überschriebene Datei wird unwiderruflich aus der Dokumentenablage entfernt.

d. Bestätigen Sie mit Restore.

· Um einen gelöschten Ordner oder eine gelöschte Datei endgültig aus der Dokumentenablage zu entfernen, öffnen Sie den Ordner Deleted Items und klicken Sie dann auf [image] (Discard) des entsprechenden Ordners/der entsprechenden Datei.

· Um den Ordner Deleted Items zu leeren, d.h. seinen gesamten Inhalt endgültig aus der Dokumentenablage zu entfernen, klicken Sie auf [image] (Empty Deleted Items Folder).

Sie können den Deleted Items-Ordner auch über WebDAV HTTP nutzen.


Nutzen des Deleted Items-Ordners über WebDAV HTTP (MaxDB: WebDAV GUI)

Nutzen des Deleted Items-Ordners über WebDAV HTTP

Verwendung

Sie können auf den Ordner Deleted Items nicht nur beim Löschen von Ordnern oder Dateien im WebDAV Explorer, sondern auch über WebDAV-Requests zugreifen.

Vorgehensweise

· Verwenden Sie beim DELETE-Request zusätzlich den HTTP-Header
SAPDB_DeletedItems: {F|T}.

¡ Wenn Sie den Wert F (False) angeben oder wenn Sie den Header nicht angeben, dann verhält sich der DELETE-Request standardgemäß, d.h. der Ordner oder die Datei wird endgültig aus der Dokumentenablage entfernt.

¡ Wenn Sie den Wert T (True) angeben, dann wird der Ordner oder die Datei beim Löschen aus der Dokumentenablage zunächst im Ordner Deleted Items abgelegt.

DELETE /folder/ HTTP/1.1
Host: <web_server>
SAPDB_DeletedItems: T

· Sie können auf den Inhalt des Ordners Deleted Items mit den folgenden WebDAV-Requests zugreifen:

¡ GET

¡ PROPFIND

¡ DELETE

¡ COPY

Mit dem WebDAV-Request
DELETE /Deleted Items HTTP/1.1
entfernen Sie den gesamten Inhalt des Ordners Deleted Items endgültig aus der Dokumentenablage.


Document Retrieval (MaxDB: WebDAV GUI)

Document Retrieval

Verwendung

Mit dem Document Retrieval können Sie schnell und bequem nach indizierten XML-Dokumenten suchen. Sie können nach Dokumenten einer bestimmten Dokumentenklasse und/oder bestimmten Indexwerten suchen. Sie können dabei sowohl einfache als auch sehr komplexe Anfragen stellen.

Vorgehensweise

...

Geben Sie Ihre Suchbedingungen an, und klicken Sie auf Search.

· Um nach allen Dokumenten einer bestimmten Dokumentenklasse zu suchen, wählen Sie die entsprechende Dokumentenklasse.

· Um nach allen Dokumenten mit einem bestimmten Indexwert zu suchen, wählen Sie den Namen des XML-Index, einen Vergleichsoperatur und Indexwert.

· Um mehrere Suchbedingungen miteinander zu verknüpfen, verwenden Sie OR und/oder AND.

¡ Mit OR können Sie dabei nur einen weiteren alternativen Vergleichswert für denselben XML-Index angeben.

¡ Mit AND können Sie einen weiteren notwendigen Vergleichswert für denselben oder einen anderen XML-Index angeben.

· Um die Angaben in der Eingabemaske zu löschen, wählen Sie Clear.

Ergebnis

Sie erhalten eine Liste aller Dokumente angezeigt, die Ihren Suchbedingungen genügen. Sie können die Dokumente direkt öffnen, indem Sie auf den angezeigten Dokumentennamen klicken.


Index Engine Monitoring (MaxDB: WebDAV GUI)

Index Engine Monitoring

Verwendung

Das Index Engine Monitoring bietet Ihnen einen schnellen Überblick über die registrierten Indizierungs-Engines. Es liefert Informationen darüber, auf welchem Rechner die Indizierungs-Engines registriert sind, als welche Indizierungs-Services sie arbeiten und welche Dokumentenablagen sie dabei verwenden.

Sie können diese Informationen in einer Übersichtsdarstellung oder detailliert für jede einzelne Indizierungs-Engine erhalten.

Übersichtsdarstellung

Um die Übersichtsdarstellung aufzurufen, wählen Sie Overview im Navigationsbereich des Index Engine Monitoring. Es erscheint eine Übersicht aller Indizierungs-Engines sortiert nach den Rechnern, auf denen sie registriert sind. Sie erhalten folgende Informationen angezeigt:

· den Namen und eine Kurzbeschreibung jeder Indizierungs-Engine

· den zugehörigen Indizierungs-Service

· die verwendete Dokumentenablage (Document Store)

· die Angabe, wann die letzte Kommunikation mit der Indizierungs-Engine stattgefunden hat. Anhand dieser Angabe können Sie feststellen, ob die Indizierungs-Engine vorschriftsgemäß arbeitet. Eine Kommunikation sollte etwa alle 10 Minuten erfolgen.

Um die Anzeige aufzufrischen, klicken Sie auf Refresh.

Einzelansicht

Um die detaillierte Einzelansicht aufzurufen, wählen Sie den Namen der gewünschten Indizierungs-Engine im Navigationsbereich des Index Engine Monitoring. Sie erhalten folgende Informationen angezeigt:

· den Rechner, auf dem diese Indizierungs-Engine registriert ist

· den Namen und eine Kurzbeschreibung der Indizierungs-Engine

· das Installationsverzeichnis (Installation Root) der Indizierungs-Engine

· den Verzeichnispfad und Namen der zugehörigen Protokolldatei (Log File)

· den zugehörigen Indizierungs-Service

· die verwendete Dokumentenablage (Document Store)

· die verwendete Indizierungs-Bibliothek (Indexing Library)

· die Angabe, wann die letzte Kommunikation mit der Indizierungs-Engine stattgefunden hat. Anhand dieser Angabe können Sie feststellen, ob die Indizierungs-Engine vorschriftsgemäß arbeitet. Eine Kommunikation sollte etwa alle 10 Minuten erfolgen.

Um die Anzeige aufzufrischen, klicken Sie auf Refresh.


Indexing Service Settings (MaxDB: WebDAV GUI)

Indexing Service Settings

Verwendung

Unter Indexing Service Settings verwalten Sie die Indizierungs-Services. Sie können alle für den Indizierungsbetrieb benötigten Informationen angeben, die Angaben für bereits vorhandene Indizierungs-Services ändern oder löschen.

Vorgehensweise

...

1. Wählen Sie, welchen Indizierungs-Service Sie ansehen oder bearbeiten möchten.

¡ Wenn Sie einen vorhandenen Indizierungs-Service anpassen wollen, dann wählen Sie den Namen des entsprechenden Services in der Liste der vorhandenen Indizierungs-Services.

§ Wenn Sie den Indizierungs-Service für die synchrone Indizierung anpassen wollen, dann wählen Sie S ynchronous Indexing.

§ Wenn Sie den vordefinierten Indizierungs-Service für die asynchrone Indizierung konfigurieren wollen, dann wählen Sie As ynchronous Indexing.

¡ Wenn Sie einen neuen Indizierungs-Service für die asynchrone Indizierung anlegen wollen, dann wählen Sie New.

2. Jetzt können Sie den Indizierungs-Service definieren oder ändern.

Änderungen an Angaben für die Dokumentenablage, an Dokumentenklassen und XML-Indizes wirken sich auf alle Indizierungs-Services aus, die die jeweils geänderten Angaben verwenden.

3. Um einen vorhandenen Indizierungs-Service zu löschen, wählen Sie den Namen des entsprechenden Services in der Liste der vorhandenen Indizierungs-Services. Sie erhalten die Informationen zu diesem Service angezeigt. Klicken Sie auf Delete.


Indizierungs-Service definieren/ändern (MaxDB: WebDAV GUI)

Indizierungs-Service definieren/ändern

Voraussetzung

Sie haben den Dialog zum Definieren oder Ändern eines Indizierungs-Service geöffnet, indem Sie unter Indexing Service Settings entweder New oder den Namen des gewünschten Service gewählt haben.

Vorgehensweise

Um einen Indizierungs-Service zu definieren oder zu ändern, gehen Sie folgendermaßen vor:

...

1. Wenn der Indizierungs-Service noch keinen Namen hat, geben Sie unter Service Name einen Namen an. Dieser Name muss eindeutig sein.

2. Sie können unter Description eine Kurzbeschreibung für den Indizierungs-Service angeben. Diese Angabe ist jedoch nicht notwendig.

3. Unter Assigned Document Classes sehen Sie, welche Dokumentenklassen dem Indizierungs-Service zugeordnet sind, d.h. welche Klassen von XML-Dokumenten er bearbeiten und indizieren wird. Sie können Dokumentenklassen neu anlegen, ändern oder löschen.

Jedem Indizierungs-Service sind immer alle verfügbaren Dokumentenklassen zugeordnet. Es ist nicht möglich, einzelne Dokumentenklassen nur von bestimmten Indizierungs-Services bearbeiten zu lassen.

Beachten Sie, dass sich Änderungen an einer Dokumentenklasse deshalb auf alle Indizierungs-Services auswirken.

4. Wählen Sie unter Document Store die gewünschte Dokumentenablage. Sie können die Dokumentenablage neu angeben oder anpassen.

Wenn Sie die Zuordnung einer Dokumentenablage zu einem Indizierungs-Service aufheben, dann werden alle Angaben zu dieser Dokumentenablage gelöscht, sofern sie keinem weiteren Indizierungs-Service zugeordnet ist (siehe auch: Löschen der Angaben zu einer Dokumentenablage).

5. Bestätigen Sie Ihre Angaben.

¡ Wenn Sie den Indizierungs-Service neu definieren, dann wählen Sie Create.

¡ Wenn Sie einen bestehenden Indizierungs-Service ändern, dann wählen Sie Update.

6. Starten Sie die Indizierungs-Engines neu.


Dokumentenklasse anlegen/ändern/löschen (MaxDB: WebDAV GUI)

Dokumentenklasse anlegen/ändern/löschen

Voraussetzung

Sie befinden sich im Dialog zum Definieren oder Ändern eines Indizierungs-Service, dem die entsprechende Dokumentenklasse zugeordnet ist.

Änderungen an einer Dokumentenklasse wirken sich auf alle Indizierungs-Services aus.

Anlegen oder Ändern einer Dokumentenklasse

Öf...

1. Öffnen Sie den Dialog zum Anlegen oder Ändern einer Dokumentenklasse folgendermaßen:

¡ Um eine Dokumentenklasse zu ändern, markieren Sie in der angezeigten Liste der Assigned Document Classes den Namen der gewünschten Dokumentenklasse, und klicken Sie auf Change.

¡ Um eine neue Dokumentenklasse anzulegen, wählen Sie New.

2. Wenn die Dokumentenklasse noch keinen Namen hat, dann geben Sie unter Document Class Name einen Namen an. Dieser Name muss eindeutig sein.

3. Sie können unter Description eine Kurzbeschreibung für die Dokumentenklasse angeben. Diese Angabe ist jedoch nicht notwendig.

4. Unter Assigned XML Indices sehen Sie, welche XML-Indizes der Dokumentenklasse zugeordnet sind, d.h. nach welchen Indexwerten der Indizierungs-Service in Dokumenten dieser Dokumentenklasse suchen wird. Sie können weitere Indizes zuordnen, bestehende Zuordnungen aufheben, XML-Indexdefinitionen neu anlegen oder ändern.

¡ Um der Dokumentenklasse einen bereits definierten XML-Index zuzuordnen, wählen Sie den Pfeil ▼ und dann aus der Liste der bereits definierten XML-Indizes den Namen des gewünschten XML-Index.

¡ Um die Zuordnung eines XML-Index aufzuheben, kennzeichnen Sie diesen XML-Index in der Liste der zugeordneten Indizes, und klicken Sie auf Remove.

¡ Um die Zuordnung aller XML-Indizes aufzuheben, klicken Sie auf Remove all.

Sie können einer Dokumentenklasse bis zu 100 XML-Indizes zuordnen.

Wenn Sie die Zuordnung eines XML-Index zu einer Dokumentenklasse aufheben, dann werden alle Angaben zu diesem XML-Index gelöscht, sofern er keiner weiteren Dokumentenklasse zugeordnet ist (siehe auch: Löschen einer XML-Indexdefinition).

5. Bestätigen Sie Ihre Angaben.

¡ Wenn Sie die Dokumentenklasse neu anlegen, dann wählen Sie Create.

¡ Wenn Sie eine bestehende Dokumentenklasse ändern, dann wählen Sie Update.

6. Starten Sie die Indizierungs-Engines neu.

Löschen einer Dokumentenklasse

Um eine Dokumentenklasse zu löschen, markieren Sie in der angezeigten Liste der Assigned Document Classes den Namen der gewünschten Dokumentenklasse, und klicken Sie auf Delete.

Um einem Dokument eine Dokumentenklasse zuzuordnen oder die Zuordnung zu ändern, verwenden Sie den WebDAV Explorer.


XML-Indexdefinition anlegen/ändern (MaxDB: WebDAV GUI)

XML-Indexdefinition anlegen/ändern

Voraussetzung

Sie befinden sich im Dialog zum Anlegen/Ändern einer Dokumentenklasse.

Vorgehensweise

...

1. Öffnen Sie den Dialog zum Anlegen/Ändern der Definition eines XML-Index:

¡ Um eine bestehende XML-Indexdefinition zu ändern, klicken Sie auf den Namen dieses XML-Index in der Liste der zugeordneten Indizes (Assigned XML Indexes).

¡ Um eine neue XML-Indexdefinition anzulegen, wählen Sie New.

2. Wenn der XML-Index noch keinen Namen hat, dann geben Sie unter XML Index Name einen Namen an. Dieser Name muss eindeutig sein.

3. Sie können unter Description eine Kurzbeschreibung für den XML-Index angeben. Diese Angabe ist jedoch nicht notwendig.

4. Spezifizieren Sie den XPATH, indem Sie die gewünschten Werte für den Base Path und den Value Path angeben.

5. Bestätigen Sie Ihre Angaben.

¡ Wenn Sie den XML-Index neu definieren, dann wählen Sie Create.

¡ Wenn Sie eine bestehende XML-Indexdefinition ändern, dann wählen Sie Update.

6. Starten Sie die Indizierungs-Engines neu.


Löschen einer XML-Indexdefinition (MaxDB: WebDAV GUI)

Löschen einer XML-Indexdefinition

Definitionen von XML-Indizes können nicht explizit gelöscht werden. Stattdessen wird ein impliziter Löschmechanismus verwendet.

Unter folgenden Umständen wird eine XML-Indexdefinition automatisch gelöscht:

· Der XML-Index wurde beim Anlegen oder Ändern einer Dokumentenklasse definiert, aber dann doch nicht dieser Dokumentenklasse zugeordnet.

· Der XML-Index wurde beim Anlegen oder Ändern einer Dokumentenklasse definiert, aber das Anlegen bzw. Ändern der Dokumentenklasse wurde abgebrochen.

· Die Zuordnung des XML-Index zu einer Dokumentenklasse wurde beim Ändern der Dokumentenklasse aufgehoben, und der XML-Index ist keiner anderen Dokumentenklasse mehr zugeordnet.

· Die Dokumentenklasse, der dieser XML-Index zugeordnet ist, wurde gelöscht, und der XML-Index ist keiner anderen Dokumentenklasse mehr zugeordnet.


Dokumentenablage angeben/ändern (MaxDB: WebDAV GUI)

Dokumentenablage angeben/ändern

Voraussetzung

Sie befinden sich im Dialog zum Definieren oder Ändern eines Indizierungs-Service, dem die entsprechende Dokumentenablage zugeordnet ist oder zugeordnet werden soll.

Vorgehensweise

...

1. Öffnen Sie den Dialog zum Angeben oder Ändern der Dokumentenablage folgendermaßen:

¡ Um die Angaben zu einer bestehenden Dokumentenablage zu ändern, wählen Sie unter Document Store den Namen der entsprechenden Dokumentenablage, und klicken Sie dann auf Change.

¡ Um Angaben zu einer neuen Dokumentenablage zu machen, wählen Sie New.

2. Wenn die Dokumentenablage noch keinen Namen hat, dann geben Sie unter Document Store Name einen Namen an. Dieser Name muss eindeutig sein.

3. Sie können unter Description eine Kurzbeschreibung für diese Dokumentenablage angeben. Diese Angabe ist jedoch nicht notwendig.

4. Geben Sie die folgenden Parameter für die Verbindung zur Dokumentenablage an:

Database Server | Name des Rechners, auf dem die entsprechende Datenbankinstanz installiert ist
Database Name | Name der Datenbankinstanz
Database User | Name des Datenbankbenutzers, der Eigentümer der WebDAV-Tabellen ist. In der Regel ist dies der Datenbankadministrator (DBA-Benutzer).
Password | Kennwort des Benutzers

5. Wenn Sie einen ODBC-Trace wünschen, dann geben Sie unter Trace File einen Dateinamen einschließlich dem absoluten Pfad an, unter dem die Trace-Datei erzeugt werden soll. Der ODBC-Trace wird ab dem Zeitpunkt des Verbindungsaufbaus zur Datenbank geschrieben.

Um das Schreiben des ODBC-Trace wieder zu deaktivieren, löschen Sie den Dateinamen unter Trace File, und starten Sie alle Indizierungs-Engines, die diese Dokumentenablage verwenden, neu.

6. Bestätigen Sie Ihre Angaben.

¡ Wenn Sie eine neue Dokumentenablage angeben, dann wählen Sie Create.

¡ Wenn Sie die Angaben zu einer bestehenden Dokumentenablage ändern, dann wählen Sie Update.

7. Starten Sie die Indizierungs-Engines neu.


Löschen der Angaben zu einer Dokumentenablage (MaxDB: WebDAV GUI)

Löschen der Angaben zu einer Dokumentenablage

Die Angaben zu einer Dokumentenablage können nicht explizit gelöscht werden. Stattdessen wird ein impliziter Löschmechanismus verwendet.

Unter folgenden Umständen werden die Angaben zu einer Dokumentenablage automatisch gelöscht:

· Die Angaben wurden beim Definieren oder Ändern eines Indizierungs-Service gemacht, aber dann doch nicht diesem Indizierungs-Service zugeordnet.

· Die Angaben wurden beim Anlegen oder Ändern eines Indizierungs-Service gemacht, aber das Anlegen bzw. Ändern des Indizierungs-Service wurde abgebrochen.

· Die Zuordnung der Dokumentenablage zu einem Indizierungs-Service wurde beim Ändern des Indizierungs-Service aufgehoben, und die Dokumentenablage ist keinem anderen Indizierungs-Service mehr zugeordnet.


Unterstützte Teilmenge des XPATH-Standards (MaxDB: WebDAV GUI)

Unterstützte Teilmenge des XPATH-Standards

Die MaxDB WebDAV-XML-Indizierung unterstützt eine Teilmenge des XPATH-Standard, wie er im W3C-Dokument www.w3.org/TR/xpath definiert ist.

Die unterstützte Syntax beinhaltet die folgenden Zugriffsarten:

Zugriffsart

Bedeutung

Beispiel

Child-Achse + Node-Test text()

Die Child-Achse bezeichnet ein Node-Set im XML-Dokument.

child::text() ermittelt alle Text-Nodes der Nodes in diesem Node-Set.

/child::a/child::b/child::text()

oder kurz

/a/b/text()

Child-Achse + Attributachse

Die Child-Achse bezeichnet ein Node-Set im XML-Dokument.

Die Attributachse ermittelt alle Werte von Attributen attr der Nodes in diesem Node-Set.

/child::a/child::b/attribute::attr

oder kurz

/a/b/@attr

Name-Test ‘*’

Ermittelt die Text-Nodes aller Child-Nodes der Nodes in einem Node-Set.

/child::a/child::*/child::text()

oder kurz

/a/*/text()

Prädikatfilter

Ermittelt die Text-Nodes aller Nodes eines Node-Sets, die ein Attribut attr mit dem angegebenen Wert besitzen.

Innerhalb Prädikatfiltern sind nur die Attributachse sowie die Vergleichsoperatoren = und != erlaubt. Der Attributwert muss ein Zeichenkettenliteral sein.

Es ist nur ein Attribut erlaubt.

/a/b[attribute::attr=‘aaa’]/text()

Descendant-Achse + Node-Test text()

Die Descendant-Achse bezeichnet alle Node-Sets, deren Pfad einen bestimmten Node beinhaltet.

child::text() ermittelt alle Text-Nodes der Nodes in diesem Node-Set.

/descendant::a/child::text()

oder kurz

//a/text()

Descendant-Achse + Attributachse

Die Descendant-Achse bezeichnet alle Node-Sets, deren Pfad einen bestimmten Node beinhaltet.

Die Attributachse ermittelt alle Werte von Attributen attr der Nodes in diesem Node-Set.

/descendant::a/attribute::*

oder kurz

//a/@*


Begriffe (MaxDB: WebDAV GUI)

Begriffe

· XML-Indizes

· Synchrone Indizierung

· Asynchrone Indizierung

· XPATH-Angabe

· Dokumentenklassen (Document Class)

· Indizierungs-Service (Indexing Service)

· Indizierungs-Engine (Index Engine)

· Dokumentenablage (Document Store)


Schnittstellen

Titel der Dokumentation | Inhalt
C-/C++-Precompiler-Handbuch | Möglichkeiten des C/C++-Precompilers, Embedded SQL
ODBC-Handbuch | Grundlagen und Besonderheiten des MaxDB-ODBC-Treibers
JDBC-Handbuch | Grundlagen und Besonderheiten des MaxDB-JDBC-Treibers
Perl-Handbuch | Beschreibung der Programmierschnittstellen SQL, Database Manager und Loader für die Programmierung von Datenbankanwendungen mit Hilfe der Skriptsprachen Perl
Python-Handbuch | Beschreibung der Programmierschnittstellen SQL, Database Manager und Loader für die Programmierung von Datenbankanwendungen mit Hilfe der Skriptsprachen Python
Backint for MaxDB | Beschreibung der Backint for MaxDB-Schnittstelle für externe Sicherungswerkzeuge


C/C++-Precompiler-Handbuch

Die Schnittstelle zwischen dem Datenbanksystem MaxDB und seinen Anwendungsprogrammen ist die Datenbanksprache SQL (Structured Query Language). In das Anwendungsprogramm eingebettete SQL-Anweisungen (Embedded SQL) dienen der Kommunikation mit der Datenbankinstanz. Der Austausch von Parameterwerten erfolgt dabei über spezielle Programmvariablen, sogenannte Host-Variablen.

Der C/C++-Precompiler bereitet C/C++-Quellcode mit eingebetteten SQL-Anweisungen für die Übersetzung in ein ausführbares Anwendungsprogramm vor. Er überprüft die eingebetteten Anweisungen syntaktisch und semantisch, setzt sie in Aufrufe von Prozeduren der Precompiler-Laufzeitumgebung um und erzeugt eine C/C++-Datei, die anschließend kompiliert werden kann.

Dieses Benutzerhandbuch beschreibt, wie Sie SQL-Anweisungen für das Datenbanksystem MaxDB in die Programmiersprache C/C++ einbetten und wie Sie mit dem Precompiler arbeiten.

Dieses Handbuch setzt Grundkenntnisse über die Bedeutung der elementaren SQL-Anweisungen voraus. Eine Beschreibung der Syntax und Semantik von Datenbankanweisungen sowie die Konventionen der verwendeten Syntaxnotation finden Sie im Referenzhandbuch.

Allgemeine Informationen zum Datenbanksystem MaxDB finden Sie in der Dokumentation Datenbankverwaltung .


Einbetten von SQL-Anweisungen in C/C++ (MaxDB: C/C++-Precompiler-Handbuch)

Einbetten von SQL-Anweisungen in C/C++

Um Datenbankanweisungen in den Quellcode eines Anwendungsprogramms einzubetten, beachten Sie neben den allgemeinen Regeln auch folgende Punkte:

· Konventionen für die Reihenfolge von eingebetteten SQL-Anweisungen

· Regeln für den Deklarationsabschnitt

· Konventionen für Host-Variablen

· Verwenden von Indikatorvariablen

· Zulässige Datentypen

· Anmelden an einer Datenbankinstanz

· Übersicht der Precompiler-Anweisungen

· Rückmeldungen des Datenbanksystems

· Programmierhinweise


Allgemeine Regeln (MaxDB: C/C++-Precompiler-Handbuch)

Allgemeine Regeln

Beachten Sie beim Einbetten von SQL-Anweisungen die folgenden allgemeinen Regeln:

· Leiten Sie jede eingebettete SQL-Anweisung durch die Schlüsselwörter EXEC SQL ein, um sie von den Anweisungen der Programmiersprache zu unterscheiden. Diese Schlüsselwörter müssen auf der selben Zeile stehen und dürfen nur durch Leerzeichen voneinander getrennt sein.

· Schließen Sie jede eingebettete SQL-Anweisung durch ein Semikolon ab.

· Sie können eingebettete SQL-Anweisungen schreiben, die sich über mehrere Zeilen erstrecken.

· Sie können eingebettete SQL-Anweisungen durch Kommentare unterbrechen. Schließen Sie die Kommentare in die Zeichenkombinationen aus Schrägstrich und Stern /* und */ ein.

· Sie können eingebettete SQL-Anweisungen mit Kommentaren am Ende der Zeile versehen. Kennzeichnen Sie einen Kommentar am Ende der Zeile, indem Sie ihn mit zwei Bindestrichen -- einleiten.

· Stellen Sie Namen von Host-Variablen und Indikatorvariablen innerhalb von eingebetteten SQL-Anweisungen einen Doppelpunkt : voran.

· Alle anderen im Anwendungsprogramm verwendeten Namen dürfen nicht mit einem Doppelpunkt : beginnen.

· Im Anwendungsprogramm verwendete Namen dürfen nicht mit der Zeichenkombination sq beginnen. Diese Zeichenkombination ist ebenfalls vom Precompiler reserviert.

· Die vom Precompiler zu analysierenden Programmteile dürfen nicht Bestandteil von Preprocessor-Include-Anweisungen (#define, #include) sein.

Siehe auch: Übersicht der Precompiler-Anweisungen

EXEC SQL BEGIN DECLARE

SECTION;
char anr [6];
char vorn [8], nachn [8];
EXEC SQL END DECLARE SECTION;

/* Erzeugen der Tabelle „kunde“ */

EXEC SQL CREATE TABLE kunde
(knr FIXED (4) KEY, anrede CHAR (5),
vorname CHAR (7), nachname CHAR (7));

/* Einlesen der Werte */

/* Einfuegen der Werte in die Datenbank */

EXEC SQL INSERT INTO kunde
(knr, anrede, vorname, nachname)
VALUES (100, :anr, :vorn, :nachn);

/* Ausgabe der Rueckmeldung im Fehlerfall */

if (sqlca.sqlcode != 0)
printf ("%d       ",sqlca.sqlcode);


Konventionen für die Reihenfolge von SQL-Anweisungen (MaxDB: C/C++-Precompiler-Handbuch)

Konventionen für die Reihenfolge von SQL-Anweisungen

Beim Durchführen des Precompiler-Laufs mit der Precompiler-Option check prüft der Precompiler in einem einmaligen, sequentiellen Durchgang durch das Anwendungsprogramm alle statischen SQL-Anweisungen, indem er sie an den Datenbankkern sendet. Um eine korrekte Überprüfung zu gewährleisten, müssen die eingebetteten SQL-Anweisungen in einer ausführbaren Reihenfolge im Quellcode auftreten.

Beachten Sie beim Einbetten der SQL-Anweisungen die folgenden Konventionen:

· CREATE TABLE steht vor INSERT, UPDATE, DELETE und SELECT.

· INSERT, UPDATE, DELETE und SELECT stehen vor DROP TABLE.

· SELECT steht vor FETCH. Es muss eine eindeutige Zuordnung zwischen SELECT-Anweisung und FETCH-Anweisung möglich sein.

· DECLARE CURSOR steht vor OPEN.

· OPEN steht vor FETCH.

· FETCH steht vor CLOSE.

Die Reihenfolge, in der die SQL-Anweisungen zur Laufzeit des Programms tatsächlich ausgeführt werden, bestimmt ausschließlich der Programmablauf.

Dynamische SQL-Anweisungen werden vom Precompiler nicht an die Datenbank gesandt, da ihr Inhalt erst zur Laufzeit bekannt ist.


Regeln für den Deklarationsabschnitt (MaxDB: C/C++-Precompiler-Handbuch)

Regeln für den Deklarationsabschnitt

Im Deklarationsabschnitt deklarieren Sie alle Host-Variablen und Indikatorvariablen, die in eingebetteten SQL-Anweisungen zwischen der Datenbankinstanz und dem Anwendungsprogramm ausgetauscht werden sollen. Innerhalb eines Anwendungsprogramms können Sie mehrere Deklarationsabschnitte verwenden.

Beachten Sie dabei die folgenden Regeln:

· Beginnen Sie den Deklarationsabschnitt mit EXEC SQL BEGIN DECLARE SECTION;.

· Beenden Sie den Deklarationsabschnitt mit EXEC SQL END DECLARE SECTION;.

· Beachten Sie die zulässige Syntax des Deklarationsabschnitts.

· Beachten Sie die Konventionen für Host-Variablen und die Regeln für Indikatorvariablen.

· Verwenden Sie die für den Precompiler zulässigen Datentypen.

· Sie können als Speicherklassen typedef, static, extern oder auto verwenden.

· Sie können Deklarationen sowohl außerhalb als auch innerhalb von Funktionen angeben.

· Neben Variablen-Deklarationen können Sie im Deklarationsabschnitt Typdefinitionen und parameterlose Konstantendefinitionen (#define) für positive ganze Zahlen angeben.

#define n(a) (a+10) ist nicht erlaubt.
 #define n 7 ist erlaubt.
Sie können n zum Beispiel als Länge einer Array-Variablen verwenden:
 int array [n]

· Geben Sie Array-Längen auch für die Speicherklasse extern an. Sie müssen innerhalb des Bereichs der entsprechenden externen Definitionen liegen.

Aus Gründen der Effizienz sollten Sie innerhalb von EXEC  SQL- Deklarationsabschnitten nur solche Variablen deklarieren, die Sie tatsächlich als Host-Variablen in eingebetteten SQL-Anweisungen verwenden.

EXEC SQL BEGIN DECLARE SECTION;

char nr [6];

char vorn [8], nachn [8];

EXEC SQL END DECLARE SECTION;


Syntax des Deklarationsabschnitts (MaxDB: C/C++-Precompiler-Handbuch)

Syntax des Deklarationsabschnitts

In dieser Syntaxliste finden Sie die Syntax des Deklarationsabschnitts. Die verwendete Syntaxnotation ist die BNF.

<arrdim> ::=
<identifier>
| <unsigned_integer>

<chardecspec> ::=
<storclspec>
| <chartype>
| <chardecspec> [<storclspec>]
| <chardecspec> <typespec>

<chartype> ::=
char
| VARCHAR
| varchar

<constant> ::=
<identifier>
| <unsigned_integer>

<decimaldef> ::=
DECIMAL [<decimaltag>] [(<decimalscale>)]

<decimaldigits> ::=
<identifier>
| <unsigned_integer>

<decimalfract> ::=
<identifier>
| <unsigned_integer>

<decimalref> ::=
DECIMAL <identifier>

<decimalscale> ::=
decimaldigits
| decimaldigits,decimalfract

<decimaltag> ::=
<identifier>

<decimaltype> ::=
<decimaldef>
| <decimalref>

<declaration> ::=
<decspec> <declist>;

<declarator> ::=
<identifier>
| * <identifier>
| <declarator> [<arrdim>]

<declist> ::=
<possinitdec>
| <declist>,<possinitdec>

<decspec> ::=
<typespec>
| <chardecspec>
| <intdecspec>
| <filedecspec>
| <floatdecspec>
| decimaltype
| <decspec> [<storclspec>]
| <decspec> <typespec>
| <longdescdecspec>

<expression> ::=
<basexpr>
| <basexpr> (<expression>) <basexpr>

<fieldlist> ::=
<typespec> <declist>;
| <fieldlist> <typespec> <declist>;

<filedecspec> ::=
<storclspec>
| <filetype>
| <chardecspec> [<storclspec>]
| <filedecspec> <typespec>

<filetype> ::=
SQLFILE
| sqlfile

<floatdecspec> ::=
<storclspec>
| <floattype>
| <chardecspec> [<storclspec>]
| <floatdecspec> <typespec>

<floattype> ::=
float
| long
| double

<initializer> ::=
<expression>
| {<initlist>}

<initlist> ::=
<initializer>
| <initlist>,<initializer>

<intdecspec> ::=
<storclspec>
| <inttype>
| <chardecspec> [<storclspec>]
| <intdecspec> <typespec>

<inttype> ::=
short
| long
| int
| unsigned

<longdescdecspec> ::=
<storclspec>
| <longdesctype>
| <longdescdecspec> [<storclspec>]
| <longdescdecspec> <typespec>

<longdesctype> ::=
SQLLongDesc
| sqllongdesc

<possinitdec> ::=
<declarator>
| <declarator> = <initializer>

<prepcomline> ::=
#define <identifier_constant>

<statement> ::=
<prepcomline>
| <declaration>

<storclspec> ::=
external
| static
| auto
| typedef

<structdef> ::=
struct [<structag>] {<fieldlist>}

<structref> ::=
struct <identifier>

<structag> ::=
<identifier>

<structype> ::=
<structdef>
| <structref>

<typespec> ::=
<inttype>
| <floatptye>
| <chartype>
| <floattype>
| <decimaltype>
| <longdesctype>
| <structype>
| <identifier>
| const
| volatile

<unichardecspec> ::=
<storclspec>
| <unichartype>
| <unichardecspec> [<storclspec>]
| <unichardecspec> <typespec>

<unichartype> ::=
SQLUCS2
| SQLUTF16
| TCHAR (nur in Verbindung mit Unicode-Anwendungen verfügbar)


Host-Variablen (MaxDB: C/C++-Precompiler-Handbuch)

Host-Variablen

Variablen, die in eingebetteten SQL-Anweisungen dem Austausch von Werten zwischen Anwendungsprogramm und Datenbankinstanz dienen, heißen Host-Variablen.

Wenn Sie Host-Variablen verwenden, beachten Sie die folgenden Punkte:

· Deklarieren Sie die Host-Variablen im Deklarationsabschnitt. Sie können dabei neben den C/C++-Grunddatentypen auch vom Precompiler vordefinierte Datentypen verwenden.

Siehe auch: zulässige Datentypen

· Beachten Sie die Konventionen für Host-Variablen. Sie können in Host-Variablen auch Strukturen und Arrays verwenden. Sie können aus Datenbanktabellen und Datenbankprozeduren Strukturdefinitionen generieren.


Konventionen für Host-Variablen (MaxDB: C/C++-Precompiler-Handbuch)

Konventionen für Host-Variablen

Beachten Sie die folgenden Konventionen für Host-Variablen:

· Der Name einer Host-Variablen darf maximal 32 Zeichen lang sein.

· Der Name einer Host-Variablen darf nicht mit der Zeichenkombination sq beginnen.

· Eine Host-Variable kann eine Struktur oder ein Array sein. Eine Struktur kann dabei Arrays enthalten. Arrays von Strukturen sind ebenfalls möglich.

· Eine Host-Variable kann eine Pointer-Variable von zulässigen Datentypen sein. Nicht erlaubt sind „Pointer to Pointer“ oder „Pointer to Array“.

· In jeder Deklaration dürfen Sie maximal einen Pointer und bis zu vierdimensionale Arrays angeben. Hierbei sind Arrays von Pointer-Variablen zulässig, nicht jedoch „Pointer to Array“.

· Für Host-Variablen vom Datentyp char * kann der Precompiler keine Längenüberprüfung durchführen. Er gibt deshalb eine Warnung im Precompiler-Protokoll aus. Zur Laufzeit muss der Character-Pointer auf eine NULL-begrenzte Zeichenkette zeigen.

· Host-Variablen vom Datentyp char [n] sollten zur Aufnahme des abschließenden NULL-Bytes um ein Feld länger als die entsprechende Spalte in der Datenbanktabelle deklariert sein.
Bei der Übertragung von char-Variablen in eine Datenbanktabelle wird der Variableninhalt bis zum abschließenden NULL-Byte übernommen. Längere Tabellenspalten werden mit Leerzeichen aufgefüllt.
Beim Lesen von char-Variablen aus einer Datenbanktabelle werden alle nachfolgenden Leerzeichen des Tabelleninhalts abgeschnitten und das abschließende NULL-Byte in der Variable hinter das letzten Zeichen, das kein Leerzeichen ist, gesetzt. Wenn die Host-Variable kürzer ist als die Tabellenspalte, wird das letzte Zeichen dabei überschrieben.


Strukturen als Host-Variablen (MaxDB: C/C++-Precompiler-Handbuch)

Strukturen als Host-Variablen

Host-Variablen können Strukturen sein. Der Precompiler löst beim Durchführen des Precompiler-Laufs die Struktur in der Reihenfolge der Komponentendeklarationen in ihre einzelnen Komponenten auf.

Mit Strukturen als Host-Variablen können Sie zum Beispiel mehrere Werte zugleich in der INTO-Klausel einer SELECT-Anweisung angeben.

EXEC SQL BEGIN DECLARE SECTION;

typedef char string8 [8];

  struct {
char anr [6];
struct {
string8

nachn, vorn [3];
} name;
} person;

EXEC SQL END DECLARE SECTION;

EXEC SQL SELECT !person INTO :person
         FROM kunde WHERE knr = 100;

Sie können für Strukturen in SQL-Anweisungen eine vereinfachte Schreibweise verwenden.

Sie können die zugehörige Indikatorvariable ebenfalls als Struktur mit der gleichen Anzahl von Komponenten angeben.

Sie können die Strukturdefinition aus einer Datenbanktabelle oder einer Datenbankprozedur generieren.


Arrays als Host-Variablen (MaxDB: C/C++-Precompiler-Handbuch)

Arrays als Host-Variablen

Host-Variablen können Arrays sein. In einer Array-Anweisung bewirken sie das mehrfache Ausführen einer SQL-Anweisung.

Bei mehrdimensionalen Arrays wird die letzte Dimension zuerst durchlaufen.

EXEC SQL BEGIN DECLARE SECTION;

float p[3][2];

EXEC SQL END DECLARE SECTION;

EXEC SQL CREATE TABLE KOORD (x float, y float);

p[0][0] = 0.0;

p[0][1] = 0.1;

p[1][0] = 1.0;

p[1][1] = 1.1;

p[2][0] = 2.0;

p[2][1] = 2.1;

EXEC SQL INSERT INTO KOORD VALUES (:p);

/* das insert wird den folgenden Inhalt erzeugen */

/*      x  |  y                                  */
/*     ---------                                 */
/*     0.0 | 0.1                                 */
/*     1.0 | 1.1                                 */
/*     2.0 | 2.2                                 */

Geben Sie die zugehörige Indikatorvariable ebenfalls als Array mit der gleichen Länge und Dimension an.

Für Array-Variablen können Sie in SQL-Anweisungen eine vereinfachte Schreibweise verwenden.


Vereinfachte Schreibweise für Struktur- und Array-Variablen (MaxDB: C/C++-Precompiler-Handbuch)

Vereinfachte Schreibweise für Struktur- und Array-Variablen

Verwendung

In SQL-Anweisungen können Sie für Strukturvariablen und Array-Variablen eine vereinfachte Schreibweise verwenden, um nicht alle angesprochenen Spalten der Datenbanktabelle explizit aufzählen zu müssen.

Vorgehensweise

· Geben Sie den Namen einer Struktur- oder Array-Variablen als !<var> an, zum Beispiel in der <select_list> der SELECT-Anweisung.

· Anstelle des Ausrufezeichens können Sie auch das Sonderzeichen Tilde (~<var>) verwenden.

· Der Precompiler leitet die Spaltennamen aus den Namen der Strukturkomponenten oder Array-Elemente ab. Die Spaltennamen dürfen höchstens 18 Zeichen lang sein.

· Sie können die Angaben <[owner.]tablename.>vor !<var> setzen. Diese Angaben werden dann vor jeden Spaltennamen eingefügt.

· Statt der kompletten Variablen !<var> können Sie auch eine beliebige, strukturierte Komponente von var angeben, zum Beispiel !var.x.y. In diesem Fall wird eine entsprechende Teilmenge von Spaltennamen erzeugt.

EXEC SQL BEGIN DECLARE SECTION;

  typedef char string8 [8];
  struct {char anr [6];
  struct {string8 nachn, vorn [3];} name;} person;

EXEC SQL END DECLARE SECTION;

EXEC SQL CREATE TABLE

kunde
(knr FIXED(4) key, anr

CHAR(5),
name_nachn CHAR(7), name_vorn1

CHAR(7),
name_vorn2 CHAR(7), name_vorn3

CHAR(7));

/* Einlesen der Werte */

EXEC SQL INSERT INTO kunde
  (knr, !person )
  VALUES (100, :person);

/* Hat die gleiche Wirkung wie: */

EXEC SQL INSERT INTO kunde
  (knr, anr, name_nachn,
  name_vorn1, name_vorn2, name_vorn3)
  VALUES (100, :person.anr,
  :person.name.nachn, :person.name.vorn[0],
  :person.name.vorn[1],
  :person.name.vorn[2]);


Indikatorvariablen (MaxDB: C/C++-Precompiler-Handbuch)

Indikatorvariablen

Wenn Ihr Anwendungsprogramm NULL-Werte oder DEFAULT-Werte verarbeiten soll oder wenn beim Austausch von Werten zwischen Host-Variablen und der Datenbank Wertverkürzungen auftreten können, dann sollten Sie in der eingebetteten SQL-Anweisung zusätzlich zur Host-Variablen eine Indikatorvariable angeben.

Beachten Sie dabei die Regeln für Indikatorvariablen.

Der Wert der Indikatorvariablen heißt Indikatorwert und erfüllt die folgenden Aufgaben:

· Er gibt Aufschluss über die korrekte Verarbeitung der zugehörigen Host-Variablen. Fragen Sie ihn deshalb nach der Bearbeitung der SQL-Anweisung ab.

· Er dient der Übertragung von NULL-Werten in die Datenbankinstanz.

· Er dient der Übertragung von DEFAULT-Werten in die Datenbankinstanz.

· Er dient in GETVAL-Anweisungen und PUTVAL-Anweisungen dem Ignorieren einzelner LONG-Spalten.

Wenn durch eine SELECT-Anweisung oder FETCH-Anweisung Werte aus Spalten, in denen NULL-Werte auftreten können, in Host-Variablen übertragen werden, dann müssen Sie in jedem Fall eine Indikatorvariable angeben. Anderenfalls erzeugt der C/C++-Precompiler beim Durchführen des Precompiler-Laufs mit der Precompiler-Option check eine Warnung, und Sie erhalten zur Laufzeit bei der Selektion eines NULL-Wertes eine Fehlermeldung (sqlcode = -809).

In dynamischen SQL-Anweisungen mit Deskriptor erfüllt die Komponente hostindicator eines sqlvar-Eintrags die gleiche Aufgabe wie eine Indikatorvariable.


Regeln für Indikatorvariablen (MaxDB: C/C++-Precompiler-Handbuch)

Regeln für Indikatorvariablen

Beachten Sie bei der Verwendung von Indikatorvariablen die folgenden Punkte:

...

· Deklarieren Sie jede Indikatorvariable im Deklarationsabschnitt als Datentyp long int, int oder short int.

· Geben Sie die Indikatorvariable in der eingebetteten SQL-Anweisung mit einem Leerzeichen getrennt hinter der zugehörigen Host-Variablen an.

· Beachten Sie im übrigen die gleichen Konventionen wie für Host-Variablen.

EXEC SQL BEGIN DECLARE SECTION;

char vorn [8], nachn [8];

int vornind, nachnind;

EXEC SQL END DECLARE SECTION;

/* Einfuegen eines NULL-Werts */

vornind = -1;

strcpy (nachn, "FIRMA X");

nachnind = 0;

EXEC SQL INSERT INTO kunde (vorname,nachname)
VALUES (:vorn :vornind, :nachn :nachnind);

/* Test auf Verkuerzung */

EXEC SQL SELECT nachname
INTO :nachn :nachnind
FROM kunde
WHERE nachn = "FIRMA X";

if (nachnind > 0)
printf ("%d      ", nachnind);


Indikatorwerte (MaxDB: C/C++-Precompiler-Handbuch)

Indikatorwerte

Die Tabelle zeigt die möglichen Indikatorwerte, die eine Indikatorvariable oder die Komponente hostindicator eines sqlvar-Eintrags im Deskriptor annehmen kann, und ihre Bedeutung.

Indikatorwert | Bedeutung
0 | Die Übertragung eines Wertes zwischen Datenbank und Anwendungsprogramm verlief fehlerfrei. Der in die Tabellenspalte oder Host-Variable übertragene Wert ist ein definierter Wert.
-1 | Der Wert der Host-Variablen oder des korrespondierenden Tabelleneintrags ist der NULL-Wert.
-2 | Es trat ein Fehler auf (Overflow oder Division durch Null). Der Wert der Host-Variablen oder des korrespondierenden Tabelleneintrags ist nicht definiert.
> 0 | In die Host-Variable oder die korrespondierende Tabellenspalte wurde ein verkürzter Wert übergeben. Der Indikatorwert gibt die wirkliche Länge des Wertes an.
SQL_DEFAULT_PARAM | Dient dem Übertragen von DEFAULT-Werten in die Datenbankinstanz
SQL_IGNORE | Dient dem Ignorieren von LONG-Spalten in GETVAL-Anweisungen und PUTVAL-Anweisungen

Siehe auch: Rückmeldungen über die Struktur sqlca


Zulässige Datentypen (MaxDB: C/C++-Precompiler-Handbuch)

Zulässige Datentypen

Für Host-Variablen können Sie im Deklarationsabschnitt die folgenden Datentypen verwenden:

· alle Grunddatentypen

· den Datentyp struct

· die vom Precompiler vordefinierten Datentypen VARCHAR, SQLFILE und SQLLongDesc sowie UNICODE-Datentypen

· alle zuvor innerhalb eines Deklarationsabschnitts selbst definierten Datentypen


Grunddatentypen (MaxDB: C/C++-Precompiler-Handbuch)

Grunddatentypen

Sie können im Deklarationsabschnitt zur Deklaration von Host-Variablen die C/C++-Grunddatentypen verwenden. Zu jedem Grunddatentyp existiert ein entsprechender MaxDB-Datentyp.

Der Precompiler übernimmt die folgenden Aufgaben:

· Er prüft während der Durchführung des Precompiler-Laufs, ob der Speicherplatz der Host-Variablen und der korrespondierenden Tabellenspalte ausreicht, um bei der Übertragung von Werten zwischen Datenbankinstanz und Anwendungsprogramm jeweils den maximal möglichen Wert aufzunehmen. Wenn das nicht der Fall ist, gibt der Precompiler im Precompiler-Protokoll eine Warnung aus.

· Er übernimmt zur Laufzeit, falls nötig, die Konvertierung von Datentypen.

Die folgende Tabelle zeigt, mit welchen MaxDB-Datentypen die Grunddatentypen korrespondieren.

Beschreibung | C/C++-Datentyp | MaxDB-Datentyp
alphanumerisches Zeichen | char | CHAR (1)
Zeichenkette mit abschließendem NULL-Byte | char* char [n+1], n £ 8000 char [n+1], n > 8000 | CHAR (n) VARCHAR (n) LONG
Ganze Zahl | [unsigned] int, short int, long int | SMALLINT, INTEGER (2 oder 4 Bytes), FIXED (5), FIXED (10)
Festkommazahl | float, double | FIXED (n,m)
Gleitkommazahl | float double | FLOAT (6) FLOAT (15)
Datumswert | char [9] | DATE
Zeitwert | char [9] | TIME
Zeitstempelwert mit abschließendem NULL-Byte | char [21] | TIMESTAMP
Boolesch | alle numerischen Datentypen (gleich null oder ungleich null) | BOOLEAN
Byte | char [n], n £ 8000 char [n], n > 8000 | [VAR]CHAR (n) BYTE LONG BYTE

Achten Sie bei der Angabe von Datums-, Zeit- und Zeitstempelwerten auf das korrekte Datums- und Zeitformat.


Vordefinierte Datentypen (MaxDB: C/C++-Precompiler-Handbuch)

Vordefinierte Datentypen

Die folgenden zulässigen Datentypen sind vom C/C++-Precompiler vordefiniert, um die Handhabung von Datenbanktabellen zu erleichtern. Sie können sie im Deklarationsabschnitt zur Deklaration von Host-Variablen verwenden.

· VARCHAR

· SQLFILE

· UNICODE-Datentypen


VARCHAR (MaxDB: C/C++-Precompiler-Handbuch)

VARCHAR

Verwendung

Mit dem vordefinierten Datentyp VARCHAR können Sie Host-Variablen deklarieren, denen Zeichenketten variabler Länge zugewiesen werden sollen.

Der C/C++-Precompiler setzt die VARCHAR-Deklaration um in eine Struktur-Deklaration aus einer 2-Byte-Längenangabe und einem Array oder Pointer. Die aktuelle Länge einer VARCHAR-Variablen wird durch das Längenfeld bestimmt. NULL-Bytes sind für die Berechnung der Länge irrelevant. Bei einer VARCHAR-Deklaration mit Pointer-Deklarator ist das Anwendungsprogramm für die Speicherplatzzuweisung zur Laufzeit verantwortlich.

VARCHAR v [n];

wird ersetzt durch

struct {unsigned short len; unsigned char arr [n];} v;

wobei an len die aktuelle Länge der Zeichenkette und an arr die Zeichen selbst zugewiesen werden.

VARCHAR *v;

wird ersetzt durch

struct {unsigned short len; unsigned char arr [1];} *v;

Siehe auch: Beispiele für zulässige VARCHAR-Deklarationen


Beispiele für zulässige VARCHAR-Deklarationen (MaxDB: C/C++-Precompiler-Handbuch)

Beispiele für zulässige VARCHAR-Deklarationen

Beispiele für zulässige VARCHAR-Deklarationen:

VARCHAR a [21], b [100] [133];

typedef VARCHAR longstring [ 65534 ];
longstring c, d;

typedef VARCHAR

*PVC;
PVC p;

An p kann Speicherplatz zugewiesen werden:

n = 100; /* Maximallänge der VARCHAR-Variablen */
p = (PVC) malloc (sizeof (p->len) + n * sizeof

(p->arr));

VARCHAR-Pointer fester Maximallänge können wie folgt deklariert werden:

typedef VARCHAR VC30 [30];
VC30 *q;

q ist ein Pointer auf ein VARCHAR der Maximallänge 30.

Die Speicherplatzzuweisung an q geschieht durch folgende Anweisung:

q = (VC30* ) malloc (sizeof (VC30));


SQLFILE (MaxDB: C/C++-Precompiler-Handbuch)

SQLFILE

Verwendung

Mit dem vordefinierten Datentyp SQLFILE können Sie Host-Variablen deklarieren, die das direkte Übertragen von Dateiinhalten in und aus LONG-Spalten erlauben.

Vorgehensweise

Weisen Sie der Host-Variablen als Wert den Namen einer Datei zu. Beachten Sie dabei folgende Punkte:

· Existiert diese Datei bereits, muss ihr Inhalt eine Zeichenkette beliebiger Länge sein. Die SQL-Anweisungen INSERT und UPDATE schreiben den Inhalt der Datei in die LONG-Spalte.

· Existiert diese Datei noch nicht, wird sie bei SELECT-Anweisungen einer LONG-Spalte mit dem angegebenen Dateinamen erzeugt. Der Spalteninhalt wird als Inhalt der Datei ausgegeben.

· Existiert diese Datei bereits bei der Ausführung einer SELECT-Anweisung, dann wird der Inhalt der LONG-Spalte an ihren existierenden Inhalt angehängt. Wenn Sie dies vermeiden wollen, müssen Sie die existierende Datei vor Ausführen der SELECT-Anweisung löschen, zum Beispiel mit einer EXEC COMMAND-Anweisung.

· Fehler in der Verarbeitung der Datei führen zum Abbruch der SQL-Anweisung, und Sie erhalten als Rückmeldung des Datenbanksystems eine Fehlermeldung sqlcode < 0.

EXEC SQL BEGIN DECLARE SECTION;

SQLFILE f1[30] = "document.doc";

char title[41] = "Handbuch";

SQLFILE f2[30];

EXEC SQL END DECLARE SECTION;

EXEC SQL CREATE TABLE documents(title CHAR (40) KEY,
document LONG BYTE);

EXEC SQL INSERT INTO documents VALUES (:title, :f1);

strcpy (f2, "tempdocument.doc");

EXEC SQL SELECT document INTO :f2 FROM documents
WHERE title = :title;


SQLLongDesc (MaxDB: C/C++-Precompiler-Handbuch)

SQLLongDesc

Mit dem vordefinierten Datentyp SQLLongDesc können Sie Host-Variablen deklarieren, die das Arbeiten mit LONG-Spalten erleichtern. Bei einer FETCH-Anweisung erhalten Sie damit zum Beispiel auch Informationen über die Gesamtlänge der LONG-Spalte.

Der Datentyp SQLLongDesc ist in der Header-Datei cpc.h als Struktur deklariert:

typedef struct

sqllongdesc {
char *szBuf;
int cbColLen;
int cbBufLen;
int cbBufMax;
} sqllongdesc;

typedef sqllongdesc SQLLongDesc;

Die Komponenten dieser Struktur-Deklaration haben folgende Bedeutung:

  • szBuf: Zeiger auf einen Speicherbereich, der die LONG-Daten aufnimmt
  • cbColLen: Gesamtlänge der entsprechenden LONG-Spalte in der Tabelle
  • cbBufLen: Länge der aktuell in szBuf gespeicherten Daten
  • cbBufMax: Größe des Speicherbereichs, auf den szBuf zeigt, in Bytes

Der Wert cbColLen wird vom Precompiler bei einer FETCH- oder GETVAL-Anweisung belegt.

Den anderen Komponenten müssen Sie vor SQL-Anweisungen Werte zuweisen. Siehe auch: Besonderheiten beim Verwenden des Datentyps SQLLongDesc


Besonderheiten beim Verwenden des Datentyps SQLLongDesc (MaxDB: C/C++-Precompiler-Handbuch)

Besonderheiten beim Verwenden des Datentyps SQLLongDesc

Beachten Sie bei der Verwendung des Datentyps SQLLongDesc die folgenden Punkte:

· Wenn Sie INSERT-Anweisungen oder PUTVAL-Anweisungen mit Host-Variablen vom Datentyp SQLLongDesc ausführen wollen, müssen Sie den Strukturkomponenten szBuf, cbBufMax und cbBufLendieses Datentyps zunächst Werte zuweisen.

· Wenn Sie FETCH-Anweisungen oder GETVAL-Anweisungen mit Host-Variablen vom Datentyp SQLLongDesc ausführen wollen, müssen Sie den Strukturkomponenten szBuf und cbBufMax dieses Datentyps zunächst Werte zuweisen.

SQLLongDesc ldesc;

#define LONGLEN 100000

#define FILLLEN 80000

/* Zuweisen von Speicherplatz zur Aufnahme der Daten */

ldesc.szBuf = (char *) malloc (LONGLEN);

/* Fuellen des Speicherbereiches mit Werten */

memset(ldesc.szBuf, ‘X’, FILLLEN);

/* Angeben der Groesse des Speicherbereichs */

ldesc.cbBufMax = LONGLEN;

/* Angeben der Laenge der Daten im Zwischenspeicher */

Ldesc.cbBufLen = FILLLEN;

EXEC SQL INSERT INTO LONGTEST VALUES (:i1, :ldata :il1, :l2 :il2);


UNICODE-Datentypen (MaxDB: C/C++-Precompiler-Handbuch)

UNICODE-Datentypen

Für das Arbeiten mit UNICODE-Daten stehen vom C/C++-Precompiler vordefinierte Datentypen zur Verfügung.

Die Tabelle enthält eine Übersicht dieser UNICODE-Datentypen.

Beschreibung

C/C++-Datentyp

MaxDB-Datentyp

Unicode-Zeichenkette mit abschließendem NULL-Byte

Als C/C++ Datentyp liegt ein unsigned short zugrunde.

Die Zeichen sind in UCS 2 in plattformspezifischer Byteanordnung kodiert.

SQLUCS2*
SQLUCS2 [n+2], n < 4000
SQLUSC2 [n+2], n ³ 4000

CHAR (n) UNICODE, VARCHAR (n) UNICODE
LONG UNICODE

Unicode-Zeichenkette mit abschließendem NULL-Byte

Als C/C++ Datentyp liegt ein unsigned short zugrunde.

Die Zeichen sind in UTF 16 ohne Surrogate in plattformspezifischer Byteanordnung kodiert.

SQLUTF16*
SQLUTF16 [n+2], n < 4000
SQLUTF16 [n+2], n ³ 4000

CHAR (n) UNICODE, VARCHAR (n) UNICODE
LONG UNICODE

Generischer Datentyp

abhängig von der Precompiler-Option
–G unicode ein CHAR- oder ein SQLUCS2-Datentyp

TCHAR*
TCHAR [n+1], n < 4000
TCHAR [n+1], n ³ 4000

CHAR (n) UNICODE, VARCHAR (n) UNICODE
LONG UNICODE

Siehe auch: Konvertierung von Datentypen


Konvertierung von Datentypen (MaxDB: C/C++-Precompiler-Handbuch)

Konvertierung von Datentypen

Wenn in einer eingebetteten SQL-Anweisung der C/C++-Grunddatentyp oder der UNICODE-Datentyp eines Parameters nicht mit dem MaxDB-Datentyp der entsprechenden Tabellenspalte korrespondiert, aber konvertierbar ist, dann führt die Precompiler-Laufzeitumgebung zur Laufzeit des Anwendungsprogramms eine Konvertierung durch.

Die folgenden Tabellen zeigen, welche Konvertierungen möglich sind und welche Fehler dabei auftreten können.

C/C++-Grunddatentypen | MaxDB-Datentypen
 | FIXED | FLOAT | BOOLEAN | LONG | CHAR | VARCHAR | DATE/TIME
short int, int, long int | 1,2 | 1b,2 | 6 | nicht erlaubt | 4,5 | nicht erlaubt | nicht erlaubt
float, double, long float | 1a,2 | 2 | 6 | nicht erlaubt | 4,5 | nicht erlaubt | nicht erlaubt
char [n] | 4,5 | 4,5 | nicht erlaubt | 3 | 3 | 3 | 3
char | 4,5 | 4,5 | nicht erlaubt | nicht erlaubt | 3 | 3 | 3

UNICODE-Datentypen | MaxDB-Datentypen
 | FIXED | FLOAT | BOOLEAN | LONG | CHAR | VARCHAR | DATE/TIME
SQLUCS2 [n], SQLUTF16 [n], TCHAR [n] | 4,5,7 | 4,5,7 | nicht erlaubt | 3,7 | 3,7 | 3,7 | 3,7
SQLUCS2, SQLUTF16, TCHAR | 4,5,7 | 4,5,7 | nicht erlaubt | 3,7 | 3,7 | 3,7 | 3,7

1 Es kann ein Overflow auftreten (sqlcode < 0).

1a Bei der Übertragung eines Wertes in die Datenbanktabelle kann ein Overflow auftreten.

1b Bei der Übertragung eines Wertes in die Host-Variable kann ein Overflow auftreten.

2 Es werden möglicherweise Nachkommastellen abgeschnitten (Indikatorwert > 0).

3 Es werden möglicherweise Zeichen abgeschnitten. Die Warnmeldung sqlwarn1 wird gesetzt. Der Indikatorwert gibt die wirkliche Länge der Zeichenkette an.

4 Bei der Konvertierung von numerischen Werten in Zeichenketten kann ein Overflow auftreten (sqlcode < 0).

5 Bei der Konvertierung von Zeichenketten in numerische Werte kann ein Overflow oder eine unzulässige Zahl auftreten (sqlcode < 0).

6 Der Wert 0 wird auf false abgebildet. Alle Werte ungleich 0 werden auf trueabgebildet.

7 Bei der Konvertierung von UNICODE-Zeichen, die sich nicht in 8-Bit-ASCII übersetzen lassen, wird eine Fehlermeldung ausgegeben (sqlcode < 0).

Siehe auch: Rückmeldungen des Datenbanksystems


Generierung von Strukturdefinitionen (MaxDB: C/C++-Precompiler-Handbuch)

Generierung von Strukturdefinitionen

Verwendung

Mit Hilfe der INCLUDE DECLARE-Anweisung können Sie aus einer Datenbanktabelle oder einer Datenbankprozedur eine Datei <file_name> generieren, die aus dem Aufbau der Datenbanktabelle eine entsprechende Strukturdefinition ableitet. Diese Strukturdefinition können Sie zur Deklaration von Host-Variablen und der zugehörigen Indikatorvariablen verwenden.

Eine Tabelle wurde definiert durch:

CREATE TABLE example (
  A FIXED (5),
  B FIXED (8),
  C FIXED (5, 2),
  D FLOAT (5),
  E CHAR (80))

Das Anwendungsprogramm kann dann folgende Anweisungen enthalten:

EXEC SQL BEGIN DECLARE SECTION;

EXEC SQL INCLUDE "example.h" TABLE example AS STRUCT IND;

struct example s, sa[10], *sp;

struct iexample indi;

EXEC SQL END DECLARE SECTION;

EXEC SQL SELECT * FROM example;

EXEC SQL FETCH INTO :s :indi;

EXEC SQL FETCH INTO :sa[4] :indi;

sp = &sa[9];

EXEC SQL FETCH INTO :sp :indi;

Die Include-Anweisung erzeugt die folgenden Deklarationen:

struct example {short A;long B;float C,D;char E [81];};

und

struct iexample {short IA, IB, IC, ID, IE;};


Arbeiten mit UNICODE-Daten (MaxDB: C/C++-Precompiler-Handbuch)

Arbeiten mit UNICODE-Daten

Verwendung

Der C/C++-Precompiler unterstützt die Verwendung von UNICODE-Daten in MaxDB-Anwendungsprogrammen. Als Kodierungsformat ist dabei ausschließlich UCS2 oder UTF-16 ohne Surrogate – jeweils in der plattformspezifischen Byteanordnung – zulässig. Sämtliche Ausgaben in der Trace-Datei erfolgen in UTF 8.

UNICODE-Zeichenketten können Sie nur in Host-Variablen an folgenden Stellen verwenden:

  • als Benutzername und Kennwort in der CONNECT-Anweisung
  • als Statement-Name in dynamischen SQL-Anweisungen
  • als Ergebnistabellenname in OPEN CURSOR-Anweisungen
  • als SQL-Anweisung
  • als Parameter von SQL-Anweisungen

Sie können UNICODE-Anwendungsprogramme nicht mit ASCII-Datenbankinstanzen verwenden.

Voraussetzung

Sie haben eine UNICODE-fähige Datenbankinstanz installiert.

Nach dem Ausführen der CONNECT-Anweisung erkennt der Precompiler automatisch, ob er mit einer UNICODE-fähigen Datenbankinstanz verbunden ist.

Vorgehensweise

· Verwenden Sie für Ihre UNICODE-Zeichenketten geeignete Host-Variablen mit den entsprechenden vordefinierten UNICODE-Datentypen.

· Wenn der Benutzername oder das Kennwort UNICODE-Zeichen enthält, dann verwenden Sie hierfür ebenfalls UNICODE-Host-Variablen.

· Wenn Host-Variablen komplette SQL-Anweisungen enthalten, dann werden diese Anweisungen abhängig vom Typ der Host-Variablen als ASCII- oder UNICODE-Zeichenkette zur Datenbankinstanz gesendet. Aus Performance-Gründen sollten Sie daher für eine SQL-Anweisung nur dann UNICODE-Host-Variablen verwenden, wenn die Anweisung tatsächlich UNICODE-Zeichen enthält.

· Führen Sie den Precompiler-Lauf mit der Precompiler-Option –G unicode durch.

EXEC SQL BEGIN DECLARE SECTION;

/* "SELECT TABLENAME FROM DOMAIN.TABLES " encoded in UCS2 */

SQLUCS2 sqlstmt[36] = {0x0053, 0x0045, 0x004C, 0x0045, 0x0043,

0x0054, 0x0020, 0x0054, 0x0041, 0x0042,

0x004C, 0x0045, 0x004E, 0x0041, 0x004D,

0x0045, 0x0020, 0x0046, 0x0052, 0x004F,

0x004D, 0x0020, 0x0044, 0x004F, 0x004D,

0x0041, 0x0049, 0x004E, 0x002E, 0x0054,

0x0041, 0x0042, 0x004C, 0x0045, 0x0053,

0x0000};

SQLUCS2 resultstring[64];

EXEC SQL END DECLARE SECTION;

/* connect ... */

/* parse a unicode sql command and give it a statement name */

EXEC SQL PREPARE stmt1 FROM :sqlstmt;

EXEC SQL DECLARE curs1 CURSOR FOR stmt1;

EXEC SQL OPEN curs1;

/* loop over resultset */

while (sqlca.sqlcode != 100)

{

EXEC SQL FETCH curs1 INTO :resultstring;

/* ... */

}

EXEC SQL CLOSE curs1;


Arbeiten mit LONG-Spalten (MaxDB: C/C++-Precompiler-Handbuch)

Arbeiten mit LONG-Spalten

Um das Lesen und Schreiben von LONG-Spalten zu vereinfachen, stellt der C/C++-Precompiler die eigens vordefinierten Datentypen SQLFILE und SQLLongDesc sowie die GETVAL-Anweisung und die PUTVAL-Anweisung zum stückweisen Bearbeiten der LONG-Spalten zur Verfügung.

Sie können Host-Variablen für LONG-Spalten jedoch auch als char-Arrays oder VARCHAR-Datentyp deklarieren.

EXEC SQL CREATE TABLE LONGTEST
(I1 INTEGER, L1 LONG BYTE, L2 LONG BYTE);

EXEC SQL BEGIN DECLARE SECTION;

VARCHAR l1[1000], l2[50];

int i1, il1, il2;

EXEC SQL END DECLARE SECTION;

EXEC SQL INSERT INTO LONGTEST VALUES
(:i1, :l1 :il1, :l2 :il2);

Beispiel für die Verwendung eines Deskriptors:

sqlvartype *actvar;

EXEC SQL BEGIN DECLARE SECTION;

char *insert = "INSERT INTO LONGTEST VALUES (:I1, :L1, :L2)";

EXEC SQL END DECLARE SECTION;

EXEC SQL PREPARE ins from :insert;

EXEC SQL DECLARE :C1 CURSOR FOR ins;

EXEC SQL DESCRIBE ins;

/* ... */

actvar = &sqlda.sqlvar[1];

(*actvar).hostvartype = sqlvchar;

/* ... */

EXEC SQL OPEN :C1 USING DESCRIPTOR;


Übertragung von NULL-Werten in die Datenbankinstanz (MaxDB: C/C++-Precompiler-Handbuch)

Übertragung von NULL-Werten in die Datenbankinstanz

Verwendung

Mit Hilfe von Indikatorwerten können Sie im Anwendungsprogramm einen NULL-Wert in eine Datenbanktabelle übertragen, zum Beispiel in einer INSERT- oder UPDATE-Anweisung.

Vorgehensweise

Setzen Sie vor dem Aufruf der eingebetteten SQL-Anweisung den Indikatorwert auf -1. Die Datenbankinstanz ignoriert den Wert der korrespondierenden Host-Variablen und übernimmt in die angesprochenen Tabelle den NULL-Wert.

Sie können Indikatorwerte auch zur Übertragung von DEFAULT-Werten in die Datenbankinstanz verwenden.


Übertragung von DEFAULT-Werten in die Datenbankinstanz (MaxDB: C/C++-Precompiler-Handbuch)

Übertragung von DEFAULT-Werten in die Datenbankinstanz

Verwendung

Mit Hilfe von Indikatorwerten können Sie im Anwendungsprogramm einen DEFAULT-Wert in eine Datenbanktabelle übertragen, zum Beispiel in einer INSERT- oder UPDATE-Anweisung.

Vorgehensweise

Setzen Sie den Indikatorwert vor dem Aufruf der eingebetteten SQL-Anweisung auf die vordefinierte Konstante SQL_DEFAULT_PARAM. Die Datenbankinstanz ignoriert den Wert der korrespondierenden Host-Variablen und übernimmt in die angesprochenen Tabelle den DEFAULT-Wert.

Für LONG-Spalten ist diese Vorgehensweise nicht erlaubt.

Sie können Indikatorwerte auch zur Übertragung von NULL-Werten in die Datenbankinstanz verwenden.


Anmelden an einer Datenbankinstanz (MaxDB: C/C++-Precompiler-Handbuch)

Anmelden an einer Datenbankinstanz

Bevor Ihr Anwendungsprogramm SQL-Anweisungen ausführen kann, muss es eine Verbindung zur Datenbankinstanz herstellen und eine Datenbanksitzung eröffnen.

Verwenden Sie die Anweisungen für die Verbindung zur Datenbankinstanz. Beachten Sie dabei die folgenden Punkte:

· Die Anweisungen für die Verbindung zur Datenbankinstanz müssen die ersten SQL-Anweisungen sein, die vom Anwendungsprogramm ausgeführt werden. Sie müssen jedoch nicht die ersten SQL-Anweisungen im Quellcode sein.

Zur korrekten Reihenfolge der SQL-Anweisungen im Quellcode beachten Sie die Konventionen für die Reihenfolge von SQL-Anweisungen.

· Ein Anwendungsprogramm kann mehrere Sitzungen mit einer oder mehreren Datenbankinstanzen unterhalten. Jede Sitzung wird von der Datenbankinstanz dabei als unabhängige Transaktion behandelt. Im SQL-Modus INTERNAL können maximal acht parallele Sitzungen mit unterschiedlichen MaxDB-Datenbankinstanzen existieren.


Übersicht der Precompiler-Anweisungen (MaxDB: C/C++-Precompiler-Handbuch)

Übersicht der Precompiler-Anweisungen

Um in den Quellcode eines Anwendungsprogramms SQL-Anweisungen einzubetten, haben Sie die folgenden Möglichkeiten:

· statische SQL-Anweisungen

· dynamische SQL-Anweisungen

· ARRAY-Anweisungen

Die eingebetteten Anweisungen bestehen dabei aus Anweisungen an den Precompiler und der eigentlichen Anweisung, die an die Datenbank geschickt wird.

Die einfachste Precompiler-Anweisung bilden die Schlüsselwörter EXEC SQL. Die statische SQL-Anweisung EXEC SQL <statement> bewirkt die Ausführung der Datenbankanweisung <statement> durch den Datenbankkern.

Die Tabelle gibt einen Überblick über die Precompiler-Anweisungen und ihre Verwendung.

CANCEL-Anweisung | Abbrechen einer laufenden SQL-Anweisung
CONNECT-Anweisung | Anweisung für die Verbindung zur Datenbankinstanz
DECLARE-Anweisungen | Kennzeichnen von Deklarationsabschnitten
DESCRIBE-Anweisung | Initialisieren einer Deskriptor-Struktur für eine dynamische SQL-Anweisung
EXEC COMMAND-Anweisung | Ausführen eines Betriebssystem-Kommandos
EXECUTE-Anweisung | Ausführen einer dynamischen SQL-Anweisung
EXECUTE IMMEDIATE-Anweisung | Aufrufen einer dynamischen SQL-Anweisung ohne Parameter
GETVAL-Anweisung | Stückweises Lesen von LONG-Spalten
INCLUDE DECLARE-Anweisung | Generieren von Strukturdefinitionen
INCLUDE FILE-Anweisung | Einfügen von Dateiinhalten in den Quelltext
OPEN CURSOR-Anweisung | Ausführen einer dynamischen SQL-Anweisung mit benannter Ergebnistabelle
PREPARE-Anweisung | Vorbereiten einer dynamischen SQL-Anweisung
PUTVAL-Anweisung | Stückweises Einfügen von Werten in LONG-Spalten
SET SERVERDB-Anweisung | Anweisung für die Verbindung zur Datenbankinstanz
TRACE-Anweisungen | Einschalten der Protokollierung in einer Trace-Datei
USING-Klausel | Zuweisen von Parameterwerten bei einer dynamischen SQL-Anweisung
VERSION-Anweisung | Anzeigen der Softwareversion
WHENEVER-Anweisungen | Aufrufen von Aktionen mit Bedingungen

Siehe auch: Syntaxverzeichnis, Arbeiten mit mehreren Datenbanksitzungen, Kompatibilität zu anderen Datenbanksystemen

Die Syntax der Datenbankanweisungen im SQL-Modus INTERNAL finden Sie im Referenzhandbuch


Arbeiten mit mehreren Datenbanksitzungen (MaxDB: C/C++-Precompiler-Handbuch)

Arbeiten mit mehreren Datenbanksitzungen

Wenn Sie mit mehreren parallelen Datenbankverbindungen arbeiten, müssen Sie in Ihren eingebetteten SQL-Anweisungen spezifizieren, für welche Datenbanksitzung die Anweisung jeweils gelten soll. Geben Sie dazu in <session_spec>folgendes an:

· Im SQL-Modus INTERNAL geben Sie die Sitzungsnummer <session_number>an.

· Im SQL-Modus ORACLE geben Sie das Schlüsselwort AT und den Sitzungsnamen <session_name>an.

Siehe auch: CONNECT-Anweisung sowie Übersicht der Precompiler-Anweisungen


DECLARE-Anweisungen (MaxDB: C/C++-Precompiler-Handbuch)

DECLARE-Anweisungen

Verwendung

DECLARE-Anweisungen kennzeichnen den Anfang und das Ende eines Deklarationsabschnitts.

Syntax

EXEC SQL BEGIN DECLARE SECTION;

EXEC SQL END DECLARE SECTION;


INCLUDE DECLARE-Anweisung (MaxDB: C/C++-Precompiler-Handbuch)

INCLUDE DECLARE-Anweisung

Verwendung

Mit der INCLUDE DECLARE-Anweisung können Sie Strukturdefinitionen generieren.

Voraussetzungen

· Die Durchführung des Precompiler-Laufs muss mit der Precompiler-Option check erfolgen, damit das Anwendungsprogramm die nötigen Informationen aus der Datenbankinstanz erhält.

· Die Datei <filename> darf nicht existieren. Falls sie existiert, wird statt der INCLUDE DECLARE-Anweisung eine INCLUDE FILE-Anweisung durchgeführt.

Syntax

EXEC SQL INCLUDE <file_name> <declare_clause>
[<as_clause>] [<ind_clause>];

<declare_clause> ::= <table_clause> | <dbproc_clause>

<table_clause> ::= TABLE <table_name>

<dbproc_clause> ::= DBPROC <dbproc_name>

<as_clause> ::= AS VAR [<variable_declarator>]
| AS TYPE [<type_declarator>]
| AS STRUCT [<structure_tag>]

<ind_clause> ::= IND [<ind_variable_declarator>] [<structure_tag>]

· AS VAR erzeugt eine Variablendeklaration. AS TYPE erzeugt eine Typdeklaration. AS STRUCT erzeugt eine Strukturdeklaration.

· Geben Sie keine AS-Klausel an, erzeugt die INCLUDE DECLARE-Anweisung standardmäßig eine Variablendeklaration.

· Die generierte Strukturdefinition erhält per Default den Namen der Datenbanktabelle oder Prozedur. Sie können in der AS-Klausel aber auch einen frei gewählten Namen angeben.

· Die Namen der Strukturkomponenten werden aus den Spaltennamen der Tabelle abgeleitet. Die Datentypen der Strukturkomponen sind kompatibel zu den Datentypen der korrespondierenden Tabellenspalten.

· Mit der IND-Klausel generieren Sie gleichzeitig eine weitere Strukturdefinition, die Sie als Typdefinition bei der Deklaration von Indikatorvariablen angeben können.

· Der Name der Strukturdefinition für die Indikatorvariable wird standardmäßig aus dem Tabellennamen mit einem vorangestellten I erzeugt, wenn Sie keinen Namen in <structure_tag> angeben.

· Die Namen der Strukturkomponenten für die Indikatorvariable werden standardmäßig aus dem Tabellennamen und den Spaltennamen mit einem vorangestellten i abgeleitet.

· Die Datentypen der Strukturkomponenten sind short int.

· Wenn die Tabelle Spalten des Datentyps long enthält, dann generiert der Precompiler beim Precompiler-Lauf als Strukturkomponente für jede dieser Spalten eine Zeichenkette mit 32767 Zeichen und gibt am Bildschirm eine Warnung aus. Sie können diese Strukturkomponenten im Quellcode anschließend anders definieren oder anpassen.


Anweisungen für die Verbindung zur Datenbankinstanz (MaxDB: C/C++-Precompiler-Handbuch)

Anweisungen für die Verbindung zur Datenbankinstanz

Verwendung

Mit diesen eingebetteten SQL-Anweisungen können Sie sich an einer Datenbankinstanz anmelden und eine Datenbanksitzung eröffnen.

Vorgehensweise

...

1. Im SQL-Modus INTERNAL geben Sie mit der SET SERVERDB-Anweisung den Namen der Datenbankinstanz an, mit der Sie sich verbinden möchten, sowie den Namen des Rechners, auf dem diese Datenbankinstanz läuft.

Im SQL-Modus ORACLE geben Sie den Namen und Rechner der Datenbankinstanz in der USING-Klausel der CONNECT-Anweisung an.

2. Mit der CONNECT-Anweisung geben Sie den Benutzernamen und das Kennwort an und eröffnen die Datenbanksitzung. Dabei können Sie Optionen für die Verbindung zur Datenbank wählen.


SET SERVERDB-Anweisung (MaxDB: C/C++-Precompiler-Handbuch)

SET SERVERDB-Anweisung

Verwendung

Mit der SET SERVERDB-Anweisung machen Sie im SQL-Modus INTERNAL Angaben für den Verbindungsaufbau zur Datenbankinstanz. Sie legen dabei fest, mit welcher Datenbankinstanz auf welchem Rechner sich das Anwendungsprogramm verbinden soll.

Syntax

EXEC SQL [<session_number>] SET SERVERDB <database_name> [ON <database_server>];

· Den Namen der Datenbankinstanz <database_name> und den Rechner <database_server>, auf dem diese Instanz läuft, können Sie auch in einer Host-Variablen vom Datentyp charübergeben.

· Geben Sie <session_number> als Sitzungsnummer an, wenn Ihr Anwendungsprogramm mehrere parallele Datenbanksitzungen eröffnen soll. Im SQL-Modus INTERNAL können maximal acht parallele Sitzungen mit unterschiedlichen MaxDB-Datenbankinstanzen existieren.

Sie können die Angaben aus der SET SERVERDB-Anweisung mit der KEY-Angabe in der CONNECT-Anweisung übersteuern.

Beim Durchführen des Precompiler-Laufs können Sie die Angaben aus der SET SERVERDB-Anweisung für alle Datenbanksitzungen außerdem mit den Precompiler-Optionen –d und -n übersteuern.


CONNECT-Anweisung (MaxDB: C/C++-Precompiler-Handbuch)

CONNECT-Anweisung

Verwendung

Mit der CONNECT-Anweisung stellen Sie eine Verbindung zur Datenbankinstanz her und übergeben den Benutzernamen und das Kennwort für die Datenbanksitzung.

Voraussetzung

Sie haben im SQL-Modus INTERNAL in der SET SERVERDB-Anweisung den Namen der gewünschten Datenbankinstanz und den Rechner, auf dem die Datenbankinstanz läuft, angegeben.

Sie können auf die SET SERVERDB-Anweisung verzichten, wenn Sie Datenbankinstanz und Datenbankrechner durch die Verwendung einer KEY-Angabe in der CONNECT-Anweisung benennen.

Syntax

CONNECT-Anweisung im SQL-Modus INTERNAL

CONNECT-Anweisung im SQL-Modus ORACLE

· Sie können die Angaben des Benutzernamens und Kennworts in der CONNECT-Anweisung der ersten Datenbanksitzung beim Durchführen des Precompiler-Laufs mit der Precompiler-Option –u übersteuern. Die Werte für alle weiteren Datenbanksitzungen des Anwendungsprogramms werden beim Precompiler-Lauf, wenn möglich, dem Quellcode entnommen. Fehlen diese Werte, erhalten Sie eine Warnung, und die eingebetteten SQL-Anweisungen der weiteren Datenbanksitzungen werden nicht geprüft.

· Sie können die KEY-Angabe in der CONNECT-Anweisung der ersten Datenbanksitzung beim Durchführen des Precompiler-Laufs mit der Precompiler-Option –U übersteuern.


CONNECT-Anweisung im SQL-Modus INTERNAL (MaxDB: C/C++-Precompiler-Handbuch)

CONNECT-Anweisung im SQL-Modus INTERNAL

Verwendung

Mit der CONNECT-Anweisung stellen Sie eine Verbindung zur Datenbankinstanz her und übergeben den Benutzernamen, das Kennwort sowie Optionen für die Datenbanksitzung.

Syntax

EXEC SQL [<session_number>] CONNECT
[<user_name> IDENTIFIED BY <password> | <uidpwd>]
[<connect_option>...] [KEY <key>];

<uidpwd> ::= <user_name>/<password>

<connect_option> ::= [ISOLATION LEVEL <unsigned_integer>]
[TIMEOUT <unsigned_integer>]

· Geben Sie <session_number> als Sitzungsnummer an, wenn Ihr Anwendungsprogramm mehrere parallele Datenbanksitzungen eröffnen soll. Im SQL-Modus INTERNAL können maximal acht parallele Sitzungen mit unterschiedlichen MaxDB-Datenbankinstanzen existieren.

· Den Benutzernamen <user_name> und das Kennwort <password> können Sie auch als Zeichenkette in einer Host-Variablen (Character- oder UNICODE-Datentypen) übergeben.

· Für <connect_option> können Sie den gewünschten Isolation-Level und Timeout-Wert angeben.

· Den Schlüssel <key> können Sie auch in einer Host-Variablen vom Datentyp char übergeben. Sie können einen XUSER-Benutzerschlüssel, DEFAULT oder die Umgebungsvariable SQLOPT angeben. Informationen dazu, wie Sie die Verbindungsoptionen zur Laufzeit in dieser Umgebungsvariablen setzen, finden Sie in Ihrer Betriebssystem-Dokumentation.

· Die Werte des <key> ergänzen oder übersteuern die Angaben aus der SET SERVERDB-Anweisung sowie die explizite Angabe des Benutzernamens, des Kennworts und der CONNECT-Optionen.


CONNECT-Anweisung im SQL-Modus ORACLE (MaxDB: C/C++-Precompiler-Handbuch)

CONNECT-Anweisung im SQL-Modus ORACLE

Verwendung

Mit der CONNECT-Anweisung stellen Sie eine Verbindung zur Datenbankinstanz her und übergeben den Benutzernamen, das Kennwort sowie Optionen für die Datenbanksitzung.

Syntax

EXEC SQL CONNECT
[<user_name> IDENTIFIED BY <password> | <uidpwd>]
AT <session_name>
USING <database_server-database_name>
[<connect_option>...] [KEY <key>];

<uidpwd> ::= <user_name>/<password>

<connect_option> ::= [ISOLATION LEVEL <unsigned_integer>]
[TIMEOUT <unsigned_integer>]

· In <session_name> geben Sie einen frei wählbaren Namen für die Datenbanksitzung an. Die Anzahl der möglichen parallelen Datenbanksitzungen ist im SQL-Modus ORACLE nur durch die maximal möglichen Datenbanksitzungen der Datenbankinstanzen begrenzt.

· Den Benutzernamen <user_name> und das Kennwort <password> können Sie auch als Zeichenkette in einer Host-Variablen (Character- oder UNICODE-Datentypen) übergeben.

· Für <connect_option> können Sie den gewünschten Isolation-Level und Timeout-Wert angeben.

· Den Schlüssel <key> können Sie auch in einer Host-Variablen vom Datentyp char übergeben. Sie können einen XUSER-Benutzerschlüssel, DEFAULT oder die Umgebungsvariable SQLOPT angeben. Informationen dazu, wie Sie die Verbindungsoptionen zur Laufzeit in dieser Umgebungsvariablen setzen, finden Sie in Ihrer Betriebssystem-Dokumentation.

· Die Werte des <key> ergänzen oder übersteuern die explizite Angabe des Benutzernamens, des Kennworts und der CONNECT-Optionen.


Statische SQL-Anweisungen (MaxDB: C/C++-Precompiler-Handbuch)

Statische SQL-Anweisungen

Statische SQL-Anweisungen verwenden Sie vor allem dann, wenn Sie zum Programmierzeitpunkt die Strukturen der angesprochenen Datenbanktabellen bereits kennen und sich die eingebetteten SQL-Anweisungen auch zur Laufzeit des Anwendungsprogramms nicht ändern werden. Der C/C++-Precompiler überprüft statische SQL-Anweisungen auf korrekte Syntax, indem er sie beim Durchführen des Precompiler-Laufs mit der Precompiler-Option check an den Datenbankkern schickt.

Falls sich die SQL-Anweisungen oder die Strukturen der Datenbanktabellen zur Laufzeit des Programms ändern werden, verwenden Sie dynamische SQL-Anweisungen.

Sie können folgende Arten von statischen SQL-Anweisungen formulieren:

· statische SQL-Anweisung ohne Parameter

· statische SQL-Anweisung mit Parametern


Statische SQL-Anweisung ohne Parameter (MaxDB: C/C++-Precompiler-Handbuch)

Statische SQL-Anweisung ohne Parameter

Verwendung

Ein Beispiel für statische SQL-Anweisungen ohne Parameter sind DDL-Anweisungen wie die CREATE TABLE-Anweisung. Sie können aber auch INSERT-, UPDATE-, DELETE- und andere Anweisungen ohne Parameter formulieren.

Syntax

EXEC SQL [<session_spec>] <statement>;

Geben Sie <session_spec> an, wenn Sie mit mehreren Datenbanksitzungen arbeiten.

EXEC SQL CREATE TABLE hotel
(hnr FIXED (4,0) KEY CONSTRAINT hnr BETWEEN 1 AND 9999,
name CHAR(15) NOT NULL, plz FIXED (5,0) NOT NULL, ort CHAR(20), preis FIXED(6,2));

EXEC SQL INSERT INTO hotel VALUES (10,'Excelsior', 79000,'Ulm', 135.00);

EXEC SQL INSERT INTO hotel VALUES (20,'Flora', 44000,'Münster', 45.00);

EXEC SQL COMMIT WORK;


Statische SQL-Anweisung mit Parametern (MaxDB: C/C++-Precompiler-Handbuch)

Statische SQL-Anweisung mit Parametern

Verwendung

Der häufigste Einsatz von Parametern in einer statischen SQL-Anweisung ist die Verwendung von Host-Variablen als Parameter einer WHERE-Bedingung.

Die Host-Variablen müssen im Deklarationsabschnitt deklariert sein.

Sie können Host-Variablen in statischen SQL-Anweisungen nur an solchen Stellen verwenden, an denen nach der SQL-Syntax ein Parameter erlaubt ist. Sie können zum Beispiel keine Tabellennamen über Host-Variablen angeben.

Syntax

EXEC SQL [<session_spec>] <statement>;

Geben Sie <session_spec> an, wenn Sie mit mehreren Datenbanksitzungen arbeiten.

EXEC SQL BEGIN DECLARE SECTION;

char name[16];

EXEC SQL END DECLARE SECTION;

sprintf (name, "Excelsior");

EXEC SQL SELECT name FROM hotel WHERE name = :name;

EXEC SQL FETCH INTO :name;


Dynamische SQL-Anweisungen (MaxDB: C/C++-Precompiler-Handbuch)

Dynamische SQL-Anweisungen

Dynamische SQL-Anweisungen sollten Sie verwenden, wenn zum Programmierzeitpunkt die Strukturen der Datenbanktabellen nicht bekannt sind und sich die eingebetteten SQL-Anweisungen zur Laufzeit des Anwendungsprogramms ändern können.

Falls sich die SQL-Anweisungen und Tabellenstrukturen zur Laufzeit nicht ändern werden, verwenden Sie statische SQL-Anweisungen.

Sie können folgende Arten von dynamischen SQL-Anweisungen formulieren:

· dynamische SQL-Anweisungen ohne Parameter

· dynamische SQL-Anweisungen mit Parametern


Dynamische SQL-Anweisungen ohne Parameter (MaxDB: C/C++-Precompiler-Handbuch)

Dynamische SQL-Anweisungen ohne Parameter

Verwendung

Dynamische SQL-Anweisungen ohne Parameter geben Sie im Anwendungsprogramm in einer Host-Variablen als Zeichenkette <statement_source> an. Die Zeichenkette selbst darf keine weiteren Host-Variablen enthalten.

Rufen Sie die dynamische SQL-Anweisung mit der EXECUTE IMMEDIATE-Anweisung auf.

Syntax

EXEC SQL [<session_spec>] EXECUTE IMMEDIATE <statement_source>;

Geben Sie <session_spec> an, wenn Sie mit mehreren Datenbanksitzungen arbeiten.

EXEC SQL BEGIN DECLARE SECTION;

char statement [40];

EXEC SQL END DECLARE SECTION;

strcpy (statement, "INSERT HOTEL VALUES (80, 'Alpenblick', 2000, \'Hamburg', 90.00)");

EXEC SQL EXECUTE IMMEDIATE :statement;

EXEC SQL EXECUTE IMMEDIATE 'COMMIT WORK';


Dynamische SQL-Anweisungen mit Parametern (MaxDB: C/C++-Precompiler-Handbuch)

Dynamische SQL-Anweisungen mit Parametern

Verwendung

Sie können dynamische SQL-Anweisungen parametrisieren, um zum Zeitpunkt des Programmierens noch nicht bekannte Werte zwischen Anwendungsprogramm und Datenbankinstanz auszutauschen.

Vorgehensweise

...

1. An Stelle der auzutauschenden Werte verwenden Sie in der Anweisung jeweils ein Fragezeichen ? als Platzhalter.

2. Mit der PREPARE-Anweisung bereiten Sie die dynamische SQL-Anweisung zur Ausführung vor und ordnen ihr einen Statement-Namen zu.

3. Mit der EXECUTE-Anweisung oder der OPEN CURSOR-Anweisung führen Sie die dynamische SQL-Anweisung aus.
Mit Hilfe der USING-Klausel weisen Sie dabei den vorher unbekannten Parametern zur Laufzeit Werte zu, zum Beispiel aus einer beliebigen Programmvariablen. Dies muss keine Host-Variable sein.
Eine einmal vorbereitete SQL-Anweisung können Sie beliebig oft ausführen. Dabei können Sie jeweils neue Werte als Parameter angeben.

Wenn zum Programmierzeitpunkt die von einer dynamischen SQL-Anweisung angesprochenen Tabellenspalten und damit auch die benötigten Parameter noch nicht bekannt sind, dann verwenden Sie zusätzlich einen Deskriptor.

EXEC SQL BEGIN DECLARE SECTION;

int hnr;

char name[16];

float preis;

char cmd[100];

char *stmt;

EXEC SQL END DECLARE SECTION;

strcpy (cmd, "INSERT (INTO???) hotel VALUES(10, 'Excelsior', \
79000, 'Ulm', 135.00)");

EXEC SQL PREPARE STMT1 FROM :cmd;

EXEC SQL EXECUTE STMT1;

hnr = 10;

strcpy (cmd, "SELECT name, preis INTO ?, ? \
FROM hotel WHERE hnr=?");

stmt = "STMT2";

EXEC SQL PREPARE :stmt FROM :cmd;

EXEC SQL EXECUTE :stmt USING :name, :preis, :hnr;


Verwendung des Deskriptors (MaxDB: C/C++-Precompiler-Handbuch)

Verwendung des Deskriptors

Verwendung

Wenn bei einer dynamischen SQL-Anweisung mit Parametern zum Programmierzeitpunkt die angesprochenen Tabellenspalten und damit auch die benötigten Parameter noch nicht bekannt sind, dann verwenden Sie einen Deskriptor.

Das Anwendungsprogramm ermittelt zur Laufzeit die Anzahl, Datentypen und Längen der mit einer SQL-Anweisung angesprochenen Tabellenspalten und legt diese Informationen in der Struktur sqlda (SQL Descriptor Area, kurz Deskriptor) ab.

Anschließend können Sie anhand dieser Informationen den Parametern in der SQL-Anweisung die passenden Programmvariablen zuordnen.

siehe auch: Beispiel für die Verwendung des Deskriptors

Voraussetzung

Sie haben die dynamische SQL-Anweisung mit der PREPARE-Anweisung vorbereitet.

Vorgehensweise

1. Initialisieren Sie den Deskriptor mit der DESCRIBE-Anweisung.

2. Ordnen Sie anhand der Informationen im Deskriptor den Parametern der dynamischen SQL-Anweisung passende Programmvariablen zu. Tragen Sie dazu die Adressen dieser Programmvariablen ebenfalls in die Deskriptor-Struktur ein.

Achten Sie darauf, dass die Programmvariablen zur Laufzeit gültige Werte enthalten.

3. Verwenden Sie die EXECUTE-Anweisung oder die OPEN CURSOR-Anweisung mit der USING-Klausel.

Ein erster Deskriptor mit dem Namen sqlda wird vom C/C++-Precompiler automatisch definiert, falls Sie den SQL-Modus INTERNAL verwenden. In anderen Modi und falls Sie weitere Deskriptoren verwenden möchten, deklarieren Sie diese als Variablen des Datentyps sqlda. Dieser Datentyp ist in der Header-Datei cpc.hdefiniert.


Struktur des Deskriptors (MaxDB: C/C++-Precompiler-Handbuch)

Struktur des Deskriptors

Die Tabelle beschreibt den Aufbau des Deskriptors, also der Datenstruktur sqlda, den Sie im SQL-Modus INTERNAL in dynamischen SQL-Anweisungen mit Parametern verwenden können.

Der C/C++-Precompiler unterstützt zusätzlich die sqlda-Datenstrukturen von ORACLE (siehe Kompatibilität zu anderen Datenbanksystemen).

sqldaid | enthält die Zeichenkette sqlda zum Auffinden der Struktur in einem Speicherauszug
sqlmax | maximale Anzahl der sqlvar-Einträge Dieser Wert ist vom C/C++-Precompiler mit der Konstanten sqlmax = 300 belegt. Sie können den Wert jedoch ändern.
sqln | Anzahl der aktuell belegten sqlvar-Einträge
sqld | Anzahl der in der SQL-Anweisung verwendeten Ausgabeparameter Parameter, die sowohl Eingabe- als auch Ausgabeparameter sein können, werden als Ausgabeparameter mitgezählt.
sqlvar | array [sqlmax] von sqlvar-Einträgen Für jeden Parameter wird entsprechend der Reihenfolge seines Auftretens in der SQL-Anweisung ein Eintrag sqlvar [i] erzeugt, der Informationen zum Datentyp und der Länge der angesprochenen Tabellenspalte enthält.

Alle Konstanten, die im Deskriptor verwendet werden, sind in der Header-Datei cpc.h deklariert.

Wenn Sie nicht den Standarddeskriptor verwenden möchten, können Sie den Deskriptor <descriptor_name>auch als eine beliebige Variable vom Typ sqldatype oder struct sqlda (im SQL-Modus ORACLE nur SQLDA) deklarieren. Innerhalb eines Programms muss der Deskriptor jedoch immer vom gleichen Typ sein.


Einträge sqlvar [i] im Deskriptor (MaxDB: C/C++-Precompiler-Handbuch)

Einträge sqlvar [i] im Deskriptor

Jeder Eintrag sqlvar [i] in der Deskriptor-Struktur beschreibt die Eigenschaften eines Parameters in der dynamischen SQL-Anweisung sowie die der benötigten oder bereits zugeordneten Programmvariablen.

Jeder Eintrag sqlvar [i] besteht dabei aus folgenden Komponenten:

colname | enthält bei einer FETCH-Anweisung den Namen der entsprechenden Tabellenspalte Bei allen übrigen SQL-Anweisungen enthält colname den Eintrag columnx , wobei x für eine fortlaufende Nummer steht.
colio | gibt an, ob es sich bei dem Parameter um einen Eingabe- oder Ausgabeparameter handelt sqlinppar: Eingabeparameter sqloutpar: Ausgabeparameter sqlinoutpar: Ein- und Ausgabeparameter
colmode | gibt an, ob für den Parameter NULL-Werte zulässig sind colmode ist ein Byte, dessen niederwertige vier Bits als Bitmaske zu interpretieren sind. Bit 0: Mandatory Bit 1: Optional (NULL erlaubt) Bit 2: Default Bit 3: Escape Character
coltype | gibt den MaxDB-Datentyp des Parameters an siehe: MaxDB-Datentypen in sqlvar-Einträgen
collength | gibt die Länge des Parameters oder der Tabellenspalte an Bei numerischen Datentypen gibt collength die Zahl der Stellen insgesamt an. Bei allen anderen Datentypen gibt collength die Anzahl der Zeichen an. Den Wert von collength können Sie anpassen, zum Beispiel wenn sich aufgrund des abschließenden NULL-Bytes in einer Zeichenkette die Anzahl der Zeichen um 1 erhöht.
colfrac | gibt bei numerischen Parametern oder Tabellenspalten die Anzahl der Nachkommastellen an Für den Datentyp FLOAT/REAL ist colfrac = -1.
hostindicator | enthält den Indikatorwert und erfüllt damit die gleiche Aufgabe wie eine Indikatorvariable. Für Eingabeparameter kann hostindicator vom Benutzer belegt werden. Bei Ausgabeparametern fragen Sie hostindicator ab. Falls die Tabellenspalte einen NULL-Wert enthält, wird der Wert der Programmvariablen nicht überschrieben.
hostvartype | In hostvartype geben Sie den C/C++-Datentyp der dem Parameter zugeordneten Programmvariablen an (siehe C/C++-Datentypen in sqlvar-Einträgen) Passen Sie gegebenenfalls die Werte von collength und colfrac an. Die DESCRIBE-Anweisung initialisiert hostvartype mit dem Wert –1 (undefined).
hostcolsize | In hostcolsize geben Sie bei Array-Anweisungen die Größe eines Array-Elements in Bytes an.
hostvaraddr | In hostvaraddr geben Sie die Adresse der dem Parameter zugeordneten Programmvariablen an. Bei Array-Anweisungen geben Sie die Adresse des ersten Array-Elements an. hostvaraddr wird durch die DESCRIBE-Anweisung mit dem NULL-Wert initialisiert.
hostindaddr | enthält die Adresse von hostindicator Sie können stattdessen auch die Adresse einer Indikatorvariablen angeben. Dann wird der Indikatorwert in diese Variable geschrieben und der Inhalt von hostindicator ist undefiniert. Bei Array-Anweisungen geben Sie die Adresse des ersten Array-Elements der Indikatorvariablen an. Wenn Sie keinen Indikatorwert verwenden wollen, geben Sie NULL an.
colinfo | wird für interne Informationen zur Konvertierung der Programmvariablen benötigt Dieser Wert darf nicht verändert werden.


MaxDB-Datentypen in sqlvar-Einträgen (MaxDB: C/C++-Precompiler-Handbuch)

MaxDB-Datentypen in sqlvar-Einträgen

Die Tabelle zeigt die möglichen sqlvar-Einträge coltype und die korrespondierenden MaxDB-Datentypen.

coltype | MaxDB-Datentyp
sqlfixed | FIXED
sqlfloat | FLOAT
sqlchar | CHAR
sqlbyte | CHAR (n) BYTE
sqldate | DATE
sqltime | TIME
sqlexpr | FLOAT
sqltimestamp | TIMESTAMP
sqllong | LONG
sqllongbyte | LONG BYTE
sqlboolean | BOOLEAN
sqlunicode | CHAR UNICODE
sqlsmallint | SMALLINT
sqlinteger | INTEGER
sqlvarchar | VARCHAR
sqlvarbyte | VARCHAR BYTE
sqllongunicode | LONG UNICODE
sqlvarunicode | VARCHAR UNICODE


C/C++-Datentypen in sqlvar-Einträgen (MaxDB: C/C++-Precompiler-Handbuch)

C/C++-Datentypen in sqlvar-Einträgen

Die Tabelle zeigt die möglichen sqlvar-Einträge hostvartype und die korrespondierenden C/C++-Datentypen.

hostvartype | C/C++-Datentyp
sqlvint1 | integer (1 Byte)
sqlvint2 | integer (2 Bytes)
sqlvint4 | integer (4 Bytes)
sqlvint8 | integer (8 Bytes)
sqlvuns1 | unsigned integer (1 Byte)
sqlvuns2 | unsigned integer (2 Bytes)
sqlvuns4 | unsigned integer (4 Bytes)
sqlvuns8 | unsigned integer (8 Bytes)
sqlvreal4 | float (4 Bytes)
sqlvreal8 | float (8 Bytes)
sqlvchar | char array (mit Null-Byte abgeschlossen)
sqlvcharp | char array (mit Leerzeichen aufgefüllt)
sqlvbyte | char array (Null-Bytes erlaubt und mit Null-Bytes aufgefüllt)
sqlvstring1 | String mit variabler Länge struct {len char; char array}
sqlvstring2 | String mit variabler Länge struct {len short; char array}
sqlvstring4 | String mit variabler Länge struct {len int; char array}
sqlvfile | char array (mit Leerzeichen aufgefüllt) Der Wert dieses Parameters muss ein Dateiname sein. Siehe auch SQLFILE
sqlvfilec | char array (mit Null-Byte abgeschlossen) Der Wert dieses Parameters muss ein Dateiname sein. Siehe auch SQLFILE
sqlvlongdesc | SQLLongDesc
sqlvucs2 | UCS2-Array (mit Leerzeichen aufgefüllt)
sqlvutf16 | UTF16-Array ohne Surrogate (mit Leerzeichen aufgefüllt)
sqlvunicode | UTF8-Array (mit Leerzeichen aufgefüllt)
sqlvunicodec | UTF8-Array (mit Null-Byte abgeschlossen)
sqlvstringunicode | UTF8-Array mit variabler Länge struct {len short; char array}
sqlvstringunicode4 | UTF8-Array mit variabler Länge struct {len int; char array}


Beispiel für die Verwendung des Deskriptors (MaxDB: C/C++-Precompiler-Handbuch)

Beispiel für die Verwendung des Deskriptors

EXEC SQL BEGIN DECLARE SECTION;

char stmnt [255];

EXEC SQL END DECLARE SECTION;

strcpy (stmnt, "select hnr, name, preis from hotel");

EXEC SQL PREPARE SEL FROM :stmnt;

EXEC SQL EXECUTE SEL;

EXEC SQL PREPARE FET FROM 'FETCH USING DESCRIPTOR';

EXEC SQL DESCRIBE FET;

/* Bind each column to a piece of memory */

for (i=0;i<sqlda.sqln;i++) {
  sqlvartype *sqlvar = &sqlda.sqlvar[i];

  switch(sqlvar->coltype){
    case (sqlfixed) : {
      if (sqlvar->colfrac == 0) {
        sqlvar->hostvartype = sqlvint4;

        sqlvar->hostcolsize = sizeof(int);

        sqlvar->hostvaraddr = malloc(sizeof(int));
      }
      else {
        sqlvar->hostvartype = sqlvreal4;

        sqlvar->hostcolsize = sizeof(float);

        sqlvar->hostvaraddr = malloc(sizeof(float));
      }
      break;

    }
    case (sqlchar) : {
      sqlvar->hostvartype = sqlvchar;

      sqlvar->hostcolsize = sqlda.sqlvar[0].collength;

      sqlvar->hostvaraddr = malloc(sizeof(int));

      break;

}
default : {
/* TODO:

support more datatypes */

    }
    }
    }

    /* Verarbeiten der Ergebnistabelle */

    EXEC SQL EXECUTE FET USING DESCRIPTOR;

    while (sqlca.sqlcode

== 0) {
EXEC SQL EXECUTE FET USING DESCRIPTOR;
}


PREPARE-Anweisung (MaxDB: C/C++-Precompiler-Handbuch)

PREPARE-Anweisung

Verwendung

Mit der PREPARE-Anweisung bereiten Sie eine dynamische SQL-Anweisung mit Parametern zur Ausführung vor und ordnen ihr einen Statement-Namen zu.

Syntax

EXEC SQL [<session_spec>] PREPARE <statement_name>
         [INTO <descriptor_name> [USING <using_clause>]]
         FROM <statement_source>;

· Geben Sie <session_spec> an, wenn Sie mit mehreren Datenbanksitzungen arbeiten.

· In <statement_name> geben Sie den Statement-Namen entweder in einer Host-Variablen oder als konstante Zeichenkette an.

· In <statement_source> geben Sie die dynamisch auszuführende SQL-Anweisung entweder in einer Host-Variablen oder als konstante Zeichenkette an.

<descriptor_name>und <using_clause>haben im SQL-Modus INTERNAL in der PREPARE-Anweisung keine Bedeutung. Sie dienen hier der DB2-Kompatibilität.


DESCRIBE-Anweisung (MaxDB: C/C++-Precompiler-Handbuch)

DESCRIBE-Anweisung

Verwendung

Mit der DESCRIBE-Anweisung initialisieren Sie die Deskriptor-Struktur und ermitteln die für eine dynamische SQL-Anweisung mit Deskriptor notwendigen Informationen über die verwendeten Parameter und angesprochenen Tabellenspalten.

Voraussetzung

Sie haben die SQL-Anweisung mit der PREPARE-Anweisung zur Ausführung vorbereitet.

Syntax

EXEC SQL [<session_spec>] DESCRIBE <statement_name>
[INTO <descriptor_name> [<using_clause>]];

· Geben Sie <session_spec> an, wenn Sie mit mehreren Datenbanksitzungen arbeiten.

· Ist die INTO-Klausel nicht angegeben, verwendet der Precompiler den Standarddeskriptor sqlda.

· Wenn Sie nicht den Standarddeskriptor verwenden möchten, können Sie den Deskriptor <descriptor_name> auch als eine beliebige Variable vom Typ sqldatype oder struct sqlda (im SQL-Modus ORACLE nur SQLDA) deklarieren. Innerhalb eines Programms muss der Deskriptor jedoch immer vom gleichen Typ sein.

Die <using_clause> hat im SQL-Modus INTERNAL in der DESCRIBE-Anweisung keine Bedeutung. Sie dient der DB2-Kompatibilität.


EXECUTE-Anweisung (MaxDB: C/C++-Precompiler-Handbuch)

EXECUTE-Anweisung

Verwendung

Mit der EXECUTE-Anweisung führen Sie eine dynamische SQL-Anweisung mit Parametern aus.

Voraussetzungen

· Sie haben die SQL-Anweisung mit der PREPARE-Anweisung zur Ausführung vorbereitet.

· Falls Sie einen Deskriptor verwenden, haben Sie ihn mit der DESCRIBE-Anweisung initialisiert.

Syntax

EXEC SQL [<session_spec>] [<for_clause>] EXECUTE <statement_name> [<using_clause>];

· Geben Sie <session_spec> an, wenn Sie mit mehreren Datenbanksitzungen arbeiten.

· Mit der USING-Klausel weisen Sie den Parametern dabei Werte zu.

· Die FOR-Klausel verwenden Sie für Array-Anweisungen.


OPEN CURSOR-Anweisung (MaxDB: C/C++-Precompiler-Handbuch)

OPEN CURSOR-Anweisung

Verwendung

Mit der OPEN CURSOR-Anweisung können Sie eine dynamische SQL-Anweisung mit Parametern ausführen und dabei eine benannte Ergebnistabelle (Cursor) erzeugen.

Voraussetzungen

· Sie haben die SQL-Anweisung mit der PREPARE-Anweisung zur Ausführung vorbereitet.

· Falls Sie einen Deskriptor verwenden, haben Sie ihn mit der DESCRIBE-Anweisung initialisiert.

· Sie haben den Cursor, also die benannte Ergebnistabelle, zuvor mit einer DECLARE CURSOR-Anweisung definiert.

Syntax

EXEC SQL [<session_spec>] [<for_clause>] OPEN <cursor_name>
[ USING <parameter_list>
| USING DESCRIPTOR [<descriptor name>] [KEEP]
| INTO <parameter_list>
| INTO DESCRIPTOR [<descriptor name>] [KEEP]]

· Den Ergebnistabellennamen <cursor_name> in der OPEN CURSOR-Anweisung können Sie in einer Host-Variablen übergeben, wenn sie zum Programmierzeitpunkt nicht wissen, wie viele unterschiedliche Ergebnistabellen ihr Anwendungsprogramm verarbeiten wird.

· Geben Sie KEEP an, wenn auf die OPEN CURSOR-Anweisung PUTVAL-Anweisungen folgen sollen.

· Die INTO-Angabe hat hier dieselbe Bedeutung wie die Angabe von USING <parameter_list> und dient der Kompatibilität zu anderen Datenbanksystemen.

EXEC SQL BEGIN DECLARE SECTION;

int hnr;

char name[16];

float preis;

char cmd [100];

char *stmt;

char *cursor;

EXEC SQL END DECLARE SECTION;

strcpy (cmd, "INSERT (INTO???) hotel VALUES(10, 'Excelsior', \
79000, 'Ulm', 135.00)");

EXEC SQL PREPARE STMT1 FROM :cmd;

EXEC SQL DECLARE cur1 CURSOR FOR STMT1;

EXEC SQL OPEN cur1;

hnr = 10;

strcpy (cmd, "SELECT name, preis FROM hotel WHERE hnr=?");

stmt = "STMT2";

EXEC SQL PREPARE :stmt FROM :cmd;

cursor = "cur2";

EXEC SQL DECLARE :cursor CURSOR FOR :stmt;

EXEC SQL OPEN :cursor USING :hnr;

EXEC SQL FETCH :cursor INTO :name, :preis;


USING-Klausel (MaxDB: C/C++-Precompiler-Handbuch)

USING-Klausel

Die USING-Klausel verwenden Sie für dynamische SQL-Anweisungen mit Parametern, um in EXECUTE-Anweisungen oder OPEN CURSOR-Anweisungen den Parametern Werte zuzuweisen.

Voraussetzungen

· Sie haben die SQL-Anweisung mit der PREPARE-Anweisung zur Ausführung vorbereitet.

· Falls Sie einen Deskriptor verwenden, haben Sie ihn mit der DESCRIBE-Anweisung initialisiert.

Syntax

<using_clause> ::=
USING <parameter_list>
| USING DESCRIPTOR [<descriptor_name>]
| INTO <parameter_list>
| INTO DESCRIPTOR [<descriptor_name>]

· Wenn Sie <descriptor_name> nicht angeben, wird die Standard-Struktur sqlda verwendet.

· Die INTO-Angabe hat hier dieselbe Bedeutung wie die Angabe von USING und dient der Kompatibilität zu anderen Datenbanksystemen.


Array-Anweisung (MaxDB: C/C++-Precompiler-Handbuch)

Array-Anweisung

Verwendung

Um mit einer einzigen eingebetteten SQL-Anweisung mehr als einen Datensatz einer Datenbanktabelle zu lesen oder zu verändern, verwenden Sie eine Array-Anweisung. Eine Array-Anweisung führt eine SQL-Anweisung in einer Schleife mehrfach aus und wendet dabei jedes Array-Element als Parameter auf eine Zeile der Datenbanktabelle an.

Um eine Array-Anweisung zu formulieren, haben Sie folgende Möglichkeiten:

· Sie übergeben alle Parameter in einer statischen SQL-Anweisung mit Arrays als Host-Variablen.

· Sie verwenden in einer dynamische SQL-Anweisung die FOR-Klausel in Verbindung mit einem Deskriptor und Array-Programmvariablen

Syntax

EXEC SQL [<session_spec>] [FOR <loop_parameter>] <sql_statement>;

· Geben Sie <session_spec> an, wenn Sie mit mehreren Datenbanksitzungen arbeiten.

· Der Wert von <loop_parameter> bestimmt den Wiederholungsfaktor für die Ausführung der Schleife. Falls die Array-Variable mehr oder weniger Komponenten hat als im <loop_parameter> angegeben, erhalten Sie beim Precompiler-Lauf eine Warnung im Precompiler-Protokoll und die Anweisung wird mit der kleinsten Dimension ausgeführt. Dies gilt auch, wenn Sie mehrere Array-Variablen verwenden, die nicht die gleiche Anzahl von Elementen haben.

Treten bei der Verarbeitung einer Array-Anweisung im Datenbankkern Fehler auf, so wird die Verarbeitung abgebrochen und die Anzahl der erfolgreich verarbeiteten Sätze in der Struktur sqlca unter sqlerrd[2] eingetragen.

Die SQL-Anweisung SELECT INTO ist für Array-Anweisungen im SQL-Modus INTERNAL nicht zulässig.

Beispiel

Beispiel für eine statische Array-Anweisung:

/* Array Insert */

EXEC SQL BEGIN DECLARE SECTION;

int hnr[3];

int plz[3];

float preis[3];

char *name[3], *ort[3];

EXEC SQL END DECLARE SECTION;

hnr[0]   = 10;

name[0]  = "Excelsior";

plz[0]   = 89073;

ort[0]   = "Ulm";

preis[0] = 135.00;

hnr[1]   = 30;

name[1]  = "Flora";

plz[1]   = 48159;

ort[1]   = "Münster";

preis[1] = 45.00;

hnr[2]   = 20;

name[2]  = "Berlin";

plz[2]   = 86165;

ort[2]   = "Augsburg";

preis[2] = 70.00;

EXEC SQL INSERT INTO HOTEL VALUES (:hnr, :name, :plz, :ort, :preis);


INCLUDE FILE-Anweisung (MaxDB: C/C++-Precompiler-Handbuch)

INCLUDE FILE-Anweisung

Verwendung

Mit der INCLUDE FILE-Anweisung können Sie Quelltext aus einer Datei <file_name> in Ihr Anwendungsprogramm einfügen. Dieser eingefügte Text wird von Precompiler im Quellcode an die Stelle der INCLUDE FILE-Anweisung gesetzt. Er darf selbst keine INCLUDE FILE- oder INCLUDE DECLARE-Anweisung enthalten.

Syntax

EXEC SQL INCLUDE <file_name>;

Mit EXEC SQL INCLUDE sqlca können Sie, wenn gewünscht, die Position im Quellcode markieren, an der der Precompiler die Struktur sqlca deklarieren soll. Diese Anweisung dient der Kompatibilität zu anderen Embedded SQL-Kompilierern. Markieren Sie keine Position, stellt der Precompiler die Deklaration an den Programmanfang.


PUTVAL-Anweisung (MaxDB: C/C++-Precompiler-Handbuch)

PUTVAL-Anweisung

Verwendung

Mit PUTVAL-Anweisungen können Sie stückweise Daten in eine LONG-Spalte einfügen.

Die PUTVAL-Anweisungen müssen sich an eine INSERT-Anweisung anschließen. Durch jede auf diese INSERT-Anweisung folgende PUTVAL-Anweisung wird der jeweils aktuelle Inhalt der zugehörigen Host-Variablen an die LONG-Spalte der Datenbanktabelle angehängt.

Voraussetzung

Sie haben das Einfügen der Daten in die LONG-Spalte mit einer INSERT-Anweisung begonnen.

Syntax

EXEC SQL [<session_spec>] PUTVAL INTO <table_name>
         [(<column_name>,...)] VALUES (<parameter_list>)

· Die PUTVAL-Anweisung muss bis auf das Schlüsselwort PUTVAL der vorausgehenden INSERT-Anweisung entsprechen. So muss zum Beispiel die Reihenfolge und Anzahl der Parameter in der Parameterliste <parameter_list> mit der Parameterliste der INSERT-Anweisung übereinstimmen.

· Weisen Sie der Host-Variablen für die LONG-Spalte vor jeder PUTVAL-Anweisung die neu anzufügenden Daten zu.

· Werte in der Parameterliste, die sich auf andere Tabellenspalten als die LONG-Spalte beziehen, werden von der PUTVAL-Anweisung ignoriert.

· Zwischen der INSERT-Anweisung und der nachfolgenden PUTVAL-Anweisung sowie zwischen den PUTVAL-Anweisungen selbst dürfen Sie keine anderen SQL-Anweisungen ausführen.

Jede andere SQL-Anweisung schließt die LONG-Spalte in der Datenbanktabelle, so dass keine weiteren Daten mehr angefügt werden können.

· Beachten Sie die Besonderheiten beim Verwenden des Datentyps SQLLongDesc.

· Wenn Sie mehr als eine Zeile in eine Tabelle einfügen wollen, verwenden Sie eine Array-Anweisung.

EXEC SQL CREATE TABLE LONGTEST
(I1 INTEGER, L1 LONG BYTE, L2 LONG BYTE);

EXEC SQL BEGIN DECLARE SECTION;

  int array_size;

  VARCHAR l1[100][500], l2[100][50];

  int i1[100];

EXEC SQL END DECLARE SECTION;

array_size = 100;

EXEC SQL FOR :array_size INSERT INTO LONGTEST VALUES
(:i1, :l1 :il1, :l2 :il2);

· Wenn in einer PUTVAL-Anweisung in eine bestimmte LONG-Spalte keine Daten eingefügt werden sollen, dann belegen Sie in dieser Anweisung den entsprechenden Indikatorwert mit der vordefinierten Konstanten SQL_IGNORE.

Das Einfügen von LONG-Daten der Länge null ist nicht zulässig.


GETVAL-Anweisung (MaxDB: C/C++-Precompiler-Handbuch)

GETVAL-Anweisung

Verwendung

Mit der GETVAL-Anweisung können Sie stückweise Werte aus einer LONG-Spalte lesen.

Die GETVAL-Anweisungen müssen sich an eine FETCH-Anweisung anschließen. Durch jede auf diese FETCH-Anweisung folgende GETVAL-Anweisung wird der nächste Teil des Inhalts ab der aktuellen Position aus der LONG-Spalte der Datenbanktabelle gelesen.

Voraussetzung

Sie haben das Lesen der Daten aus der LONG-Spalte mit einer FETCH-Anweisung begonnen.

Syntax

EXEC SQL [<session_spec>] GETVAL INTO (<parameter_list>)

· Die GETVAL-Anweisung muss bis auf das Schlüsselwort GETVAL der vorausgehenden FETCH-Anweisung entsprechen. So muss zum Beispiel die Reihenfolge und Anzahl der Parameter in der Parameterliste <parameter_list> mit der Parameterliste der FETCH-Anweisung übereinstimmen.

· Zwischen der FETCH-Anweisung und der nachfolgenden GETVAL-Anweisung sowie zwischen den GETVAL-Anweisungen selbst dürfen Sie keine anderen SQL-Anweisungen ausführen.

· Wenn die der LONG-Spalte entsprechende Host-Variable vom Datentyp SQLLongDesc ist, dann können Sie nach Ausführen der GETVAL-Anweisung die Gesamtlänge der LONG-Spalte in der zugehörigen Strukturkomponente cbColLen ablesen.

· Wie oft Sie eine GETVAL-Anweisung ausführen müssen, können Sie durch Abfragen der Warnmeldung sqlwarn1 bestimmen. Solange sqlwarn1 den Wert W hat, wurde noch nicht der gesamte Inhalt der LONG-Spalte gelesen.

Nach Ausführen der FETCH-Anweisung wird der restliche Inhalt der LONG-Spalte gelesen durch die Anweisung

while (sqlca.sqlwarn[1] == 'W')
EXEC SQL GETVAL INTO :i1, :l1, :l2;

· Wenn in einer GETVAL-Anweisung von einer bestimmten LONG-Spalte keine Daten gelesen werden sollen, dann belegen Sie in dieser Anweisung den entsprechenden Indikatorwert mit der vordefinierten Konstanten SQL_IGNORE.


WHENEVER-Anweisungen (MaxDB: C/C++-Precompiler-Handbuch)

WHENEVER-Anweisungen

Verwendung

Mit Hilfe von WHENEVER-Anweisungen können Sie Aktionen programmieren, die im Zusammenhang mit jeder nachfolgenden eingebetteten SQL-Anweisung ausgeführt werden sollen.

Sie haben die folgenden Möglichkeiten:

· Sie programmieren Aktionen, die vor oder nach jeder SQL-Anweisung ausgeführt werden.

· Sie programmieren Fehlerbehandlungen.

Die WHENEVER-Anweisung muss im Quellcode des Anwendungsprogramms vor den SQL-Anweisungen stehen, auf die sie wirken soll, damit der C/C++-Precompiler bei der Durchführung des Precompiler-Laufs die entsprechenden Einzelanweisungen generieren kann. Die WHENEVER-Anweisung gilt so lange für alle im Quellcode nachfolgenden SQL-Anweisungen, bis sie durch eine andere WHENEVER-Anweisung für die gleiche Bedingung abgelöst wird, ansonsten bis zum Programmende.

Syntax

EXEC SQL WHENEVER <condition> <action>;

Für <condition> geben Sie einen Fehlerfall (siehe Fehlerbehandlung) oder eine der folgenden Bedingungen an:

SQLBEGIN | Vor jeder SQL-Anweisung wird die angegebene <action> ausgeführt.
SQLEND | Nach jeder SQL-Anweisung wird die angegebene <action> ausgeführt.

Für <action> geben Sie eine der möglichen Aktionen für die WHENEVER-Anweisung an.

Beispiel

Beispiel für die Verwendung von WHENEVER-Anweisungen


Fehlerbehandlung mit WHENEVER-Anweisungen (MaxDB: C/C++-Precompiler-Handbuch)

Fehlerbehandlung mit WHENEVER-Anweisungen

Verwendung

Mit Hilfe von WHENEVER-Anweisungen programmieren Sie Standardbehandlungen von Fehlern und Ausnahmesituationen, die bei der Ausführung von eingebetteten SQL-Anweisungen auftreten können. Sie können vier verschiedene Arten von Rückmeldungen des Datenbanksystems prüfen lassen und aus vier Standardreaktionen auf diese Meldungen auswählen.

Eine WHENEVER-Anweisung sollten Sie zum Beispiel dann verwenden, wenn das Anwendungsprogramm die Werte der Rückmeldungen sqlcodeoder sqlwarn0 im Anschluss an eine SQL-Anweisung nicht abfragt.

Syntax

EXEC SQL WHENEVER <condition> <action>;

Für <condition> geben Sie einen der folgenden Fälle an:

SQLWARNING | sqlwarn0 hat den Wert W. Es existiert mindestens eine Warnung.
SQLERROR | sqlcode hat einen negativen Wert. Es ist ein Fehler aufgetreten.
NOT FOUND | sqlcode hat den Wert 100 (ROW NOT FOUND). Es wurde keine oder keine weitere Tabellenzeile gefunden.
SQLEXCEPTION | sqlcode hat einen positiven Wert größer als 100. Es ist eine Ausnahmesituation aufgetreten.

Für <action> geben Sie eine der möglichen Aktionen für WHENEVER-Anweisungen an.

Wenn die Bedingung SQLERROR auftritt, sollte das Anwendungsprogramm immer abgebrochen und der Fehler analysiert werden.

Wenn Sie als Fehlerbehandlung <action> eine Funktion aufrufen, die ebenfalls SQL-Anweisungen enthält, die Fehlermeldungen liefern können, dann beginnen Sie die Funktion mit einer WHENEVER CONTINUE-Anweisung, um Endlosschleifen zu vermeiden.

EXEC SQL WHENEVER SQLEND CALL CheckSQLCode(&sqlca);

EXEC SQL SELECT DIRECT NAME, ORT
         INTO :name, :ort FROM HOTEL KEY HNR = :hnr;

void

CheckSQLCode(sqlcatype *sqlca)
{
if (sqlca->sqlcode != 0)

{
code =

sqlca->sqlcode;
EXEC SQL WHENEVER

SQLERROR CONTINUE;
EXEC SQL INSERT INTO

FEHLER VALUES (:code);
}
}


Aktionen für die WHENEVER-Anweisung (MaxDB: C/C++-Precompiler-Handbuch)

Aktionen für die WHENEVER-Anweisung

Mit WHENEVER-Anweisungen können Sie folgende Aktionen <action> aufrufen:

STOP | Die laufende Transaktion wird ordnungsgemäß zurückgesetzt, die Verbindung zur Datenbank mit dem RELEASE-Statement COMMIT WORK RELEASE beendet und das Programm abgebrochen.
CONTINUE | Das Anwendungsprogramm wird weiter ausgeführt. Mit CONTINUE können Sie eine vorhergehende andere WHENEVER-Aktion für diese Bedingung außer Kraft setzen.
GOTO <label> | Das Anwendungsprogramm springt zu der Sprungmarke <label>. <label>darf maximal 45 Zeichen lang sein.
CALL <function> | Das Anwendungsprogramm ruft die Funktion <function> auf. Der Funktionsaufruf darf einschließlich der verwendeten Parameter maximal 50 Zeichen lang sein.


Beispiel für die Verwendung von WHENEVER-Anweisungen (MaxDB: C/C++-Precompiler-Handbuch)

Beispiel für die Verwendung von WHENEVER-Anweisungen

Die folgenden Beispiele zeigen die Verwendung unterschiedlicher WHENEVER-Anweisungen.

EXEC SQL WHENEVER SQLWARNING CALL warnproc();

EXEC SQL SELECT * FROM dual;

/* receives a warning and calls warnproc */

EXEC SQL WHENEVER SQLERROR CALL errproc();

EXEC SQL DELETE FROM unknowntable;

/* receives an error and calls errorproc */

EXEC SQL WHENEVER SQLERROR STOP;

/* receives also an error but stops execution */

EXEC SQL DELETE FROM unknowntable;


CANCEL-Anweisung (MaxDB: C/C++-Precompiler-Handbuch)

CANCEL-Anweisung

Verwendung

Mit der CANCEL-Anweisung brechen Sie die Abarbeitung einer SQL-Anweisung durch den Datenbankkern ab. Die SQL-Anweisung hat dann keine Wirkung. Die CANCEL-Anweisung kehrt bei Erfolg mit der Rückmeldung sqlcode 0 zurück. Die abgebrochene Anweisung kehrt mit dem sqlcode –102 zurück.

Syntax

EXEC SQL CANCEL [<cancel_session>];

<cancel_session> ::= <session_number> | <session_name> | CURRENT


EXEC COMMAND-Anweisung (MaxDB: C/C++-Precompiler-Handbuch)

EXEC COMMAND-Anweisung

Verwendung

Mit der EXEC COMMAND-Anweisung können Sie Betriebssystem-Kommandos ausführen, zum Beispiel um Dateien zu löschen oder den Database Manager CLI aufzurufen.

Für EXEC COMMAND-Anweisungen gelten dieselben allgemeinen Regeln wie für SQL-Anweisungen. Leiten Sie jeden Systemaufruf mit den Schlüsselwörtern EXEC COMMAND ein.

Syntax

EXEC COMMAND SYNC <command> RESULT <result_parameter>
| EXEC COMMAND ASYNC <command>;

<command> ::= <string_constant> | <host_variable>

<result_parameter> ::=  <host_variable>

· Deklarieren Sie <result_parameter> als Host-Variable vom Typ int (2 Bytes).

· Im Modus SYNC stoppt das Anwendungsprogramm, bis die Ausführung des Betriebssystemkommandos beendet ist.

· Im Modus ASYNC wird das Betriebssystemkommando im Hintergrund ausgeführt.

· Informationen zur korrekten Syntax des Betriebssystemkommandos finden Sie in Ihrer Betriebssystem-Dokumentation.


VERSION-Anweisung (MaxDB: C/C++-Precompiler-Handbuch)

VERSION-Anweisung

Verwendung

Mit der VERSION-Anweisung können Sie die Versionen der allgemeinen MaxDB-Laufzeitumgebung und der Precompiler-Laufzeitumgebung anzeigen.

Syntax

EXEC SQL VERSION <runtime_version>, <precompiler_version>;

Sie können <runtime_version> und <precompiler_version> als Host-Variablen vom Datentyp char mit 40 Bytes Länge angeben.


TRACE-Anweisungen (MaxDB: C/C++-Precompiler-Handbuch)

TRACE-Anweisungen

Verwendung

Mit Hilfe der TRACE-Anweisungen können Sie bewirken, dass die Precompiler-Laufzeitumgebung die Ausführung einzelner eingebetteter SQL-Anweisungen zur Laufzeit des Anwendungsprogramms in der Trace-Datei <filename>.pct protokolliert.

Vorgehensweise

Schließen Sie die SQL-Anweisungen, die protokolliert werden sollen, in die Anweisungen SET TRACE ON oder SET TRACE LONG sowie SET TRACE OFF ein.

Die Protokollierung erfolgt auch für alle SQL-Anweisungen, die in den von den eingeschlossenen SQL-Anweisungen aufgerufenen externen Unterprogrammen oder Modulen enthalten sind.

Um die Protokollierung für das gesamte Anwendungsprogramm einzuschalten, geben Sie beim Durchführen des Precompiler-Laufs oder beim Aufruf des Programms die gewünschte Trace-Option an. Die Trace-Option übersteuert dann die einzelnen TRACE-Anweisungen.

Syntax

EXEC SQL SET TRACE ON; | schaltet die Protokollierung mit der Trace-Option TRACE SHORT ein Jede ausgeführte SQL-Anweisung wird einschließlich der Rückmeldungen sqlcode und sqlerrd[2] protokolliert.
EXEC SQL SET TRACE LONG; | schaltet die Protokollierung mit der Trace-Option TRACE LONG ein Jede ausgeführte SQL-Anweisung wird einschließlich der Rückmeldungen sqlcode und sqlerrd[2] sowie aller Parameterwerte protokolliert.
EXEC SQL SET TRACE OFF; | schaltet die Protokollierung aus
EXEC SQL SET TRACE LINE <trace_line>; | Der Inhalt von <trace line> wird als Kommentar in die Trace-Datei geschrieben. Sie können <trace line> als Zeichenkette oder in einer Host-Variablen angeben.


Rückmeldungen des Datenbanksystems (MaxDB: C/C++-Precompiler-Handbuch)

Rückmeldungen des Datenbanksystems

Rückmeldungen und Warnungen des Datenbanksystems erfolgen über die globale Struktur sqlca (SQL Communication Area). Sie wird automatisch vom Precompiler in jedes MaxDB-Anwendungsprogramm eingebunden. In den Strukturkomponenten hinterlegt die Datenbank zur Laufzeit des Anwendungsprogramms Informationen über die Ausführung der jeweils letzten eingebetteten SQL-Anweisung, die zum Beispiel Auskunft über aufgetretene Fehler geben.

Fragen Sie die Strukturkomponente sqlcode nach jeder SQL-Anweisung ab.

Die Komponenten der sqlca haben folgende Bedeutung:

sqlcaid

char [8]

enthält die Zeichenkette „sqlca“ und dient dem Benutzer beim Auswerten eines Speicherauszugs zum Auffinden der sqlca

sqlcabc

integer (4 Byte)

gibt die Länge der sqlca in Bytes an

sqlcode

integer (4 Byte)

enthält den Meldungscode der Rück- oder Fehlermeldung des Datenbanksystems

sqlcode = 0 zeigt die erfolgreiche Ausführung einer Anweisung an.

sqlcode > 0 zeigt Probleme an, die im Programm behandelt werden sollten.

sqlcode < 0 zeigt Fehler an, die zu einem Programmabbruch führen sollten.

Eine Beschreibung aller Meldungen finden Sie in der Dokumentation Meldungen.

sqlerrml

integer (2 Byte)

gibt die aktuelle Länge von sqlerrmc an

sqlerrmc

char [70]

enthält eine Erläuterung zur Rück- oder Fehlermeldung, wenn sqlcode ≠ 0

sqlerrd

Array von sechs 4-Byte integer-Zahlen

sqlerrd [2] gibt an, wie viele Tabellenzeilen durch die SQL-Anweisung bearbeitet wurden. Der Wert -1 bedeutet, dass die Anzahl der bearbeiteten Zeilen unbekannt ist.
Bei Fehlern in Array-Anweisungen enthält sqlerrd [2] die Nummer der letzten Zeile, die noch fehlerfrei bearbeitet werden konnte.

sqlerrd [5] gibt die Laufzeit der Anweisung im Datenbankkern in Sekunden an.

sqlerrd [6] gibt die Position in der SQL-Anweisung an, an der ein Syntax-Fehler gefunden wurde. Bei Array-Anweisungen ist der Wert undefiniert. War die SQL-Anweisung fehlerfrei, ist sqlerrd [6] = 0.

sqlwarn0

char [1]

sqlwarn0 = W gibt an, dass die SQL-Anweisung mindestens eine der Warnungen sqlwarn1..sqlwarnc erzeugt hat.

Wenn keine Warnung existiert, enthält sqlwarn0 ein Leerzeichen.

sqlwarn1..sqlwarnc

sind Warnmeldungen in der Struktur sqlca

sqlresn

char [18]

enthält nach dem Aufruf einer SELECT-Anweisung den Namen der Ergebnistabelle

Nach allen anderen Aufrufen enthält sqlresn ein Leerzeichen.

sqldatetime

integer (2 Byte)

gibt an, welches Datums- und Zeitformat die Datentypen DATE, TIME und TIMESTAMP haben.

1 INTERNAL
2 ISO
3 USA
4 EUR
5 JIS

Alle anderen Komponenten der sqlca dienen internen Zwecken.


Warnmeldungen in der Struktur sqlca (MaxDB: C/C++-Precompiler-Handbuch)

Warnmeldungen in der Struktur sqlca

Die Tabelle zeigt, welche Warnmeldungen in den Rückmeldungen des Datenbanksystems auftreten können.

Jede der sqlca-Komponenten sqlwarn1..sqlwarnc hat dabei den Wert W, wenn die Ausführung einer eingebetteten SQL-Anweisung die zugehörige Warnung erzeugt hat.
Wenn die zugehörige Warnung nicht existiert, enthalten diese Komponenten ein Leerzeichen.

sqlwarn1

char [1]

gibt an, ob eine Zeichenkette des Typs char beim Austausch von Werten zwischen Host-Variablen und Datenbank abgeschnitten wurde.

Wenn Sie eine Indikatorvariable verwenden, gibt diese bei einer Warnung an, wie lang die Originalzeichenkette war.

sqlwarn2

char [1]

gibt an, ob beim Ausführen der SET-Funktionen COUNT, MAX, MIN, SUM, AVG, STDDEV oder VARIANCE NULL-Werte in der Datenbanktabelle gefunden und vom Datenbankkern ignoriert wurden

sqlwarn3

char [1]

gibt an, ob die Anzahl der Ergebnisspalten einer SELECT- oder FETCH-Anweisung ungleich der Anzahl der Host-Variablen in der INTO-Klausel war

sqlwarn4

char [1]

gibt an, ob eine UPDATE- oder DELETE-Anweisung ohne WHERE-Klausel, d. h. in der gesamten Datenbanktabelle, durchgeführt wurde

sqlwarn6

char [1]

gibt an, ob die Werte einer Datumsangabe (DATE oder TIMESTAMP) korrigiert werden mussten

Diese Warnung erhalten Sie bei falschen Datumsangaben wie 31.2. oder 37.7.

sqlwarn8

char [1]

gibt an, ob zum Erzeugen einer Ergebnistabelle alle Tabellenzeilen durchsucht werden mussten

sqlwarnb

char [1]

Wird gesetzt, wenn ein TIME-Wert > 99 (oder > 23 in USA-Format) ist. Der Wert wird korrigiert auf Modulo 100 (oder 24).

sqlwarnc

char [1]

gibt an, ob bei einer SELECT-Anweisung mehr Zeilen gefunden wurden, als durch das ROWNO-Prädikat in der WHERE-Klausel zugelassen sind.


Programmierhinweise (MaxDB: C/C++-Precompiler-Handbuch)

Programmierhinweise

Um Ihr Anwendungsprogramm zu optimieren, beachten Sie folgende Programmierhinweise:

· Identifizieren Sie bei SELECT-Anweisungen die zu selektierenden Spalten.

· Identifizieren Sie möglichst die zu bearbeitenden Tabellenzeilen durch die Angabe von Schlüsselspezifikationen. Schlüsselspalten können Sie aus den Systemtabellen ermitteln.

· Bei SELECT-Anweisungen mit mehreren Ergebniszeilen ohne ORDER-Klausel ist die Reihenfolge, mit der die Tabellenzeilen aus der Datenbanktabelle gelesen werden, nicht festgelegt. Die Logik Ihres Anwendungsprogramms darf die Ausgabereihenfolge in diesem Fall nicht als gegeben annehmen.

· Sie können für die Verarbeitung einzelner Zeilen im SQL-Modus INTERNAL die SINGLE SELECT-Anweisung verwenden.

· Beachten Sie die unterschiedliche Handhabung benannter Ergebnistabellen (CURSOR) in den unterschiedlichen SQL-Modi.

Informationen zu den Besonderheiten des SQL-Modus ORACLE des Datenbanksystems MaxDB finden Sie in der Dokumentation SQL-Modus ORACLE.

· Beachten Sie das Benutzer- und Rollenkonzept des Datenbanksystems.

· Führen Sie als letzte SQL-Anweisung in Ihrem Anwendungsprogramm eine RELEASE-Anweisung aus. Dabei werden die von der Precompiler-Laufzeitumgebung benötigten Ressourcen wieder freigegeben.

· Beachten Sie, dass im Datenbanksystem MaxDB auch DDL-Anweisungen wie CREATE TABLE dem Transaktionskonzept unterliegen und daher rückgängig gemacht werden können oder mit einer COMMIT-Anweisung abgeschlossen werden müssen.

· Beachten Sie die Informationen zum Sperrverhalten der Datenbank und definieren Sie einen geeigneten Isolation-Level für Ihre Anweisungen.

· Programmieren Sie Reaktionen auf mögliche TIMEOUT-Meldungen, indem Sie zum Beispiel die Strukturkomponente sqlcode nach jeder SQL-Anweisung abfragen (siehe Rückmeldungen des Datenbanksystems).

Weitere Informationen über die Bedeutung und Möglichkeiten zur Erstellung optimaler SQL-Anweisungen finden Sie in der Dokumentation SQL-Optimierer.


Kompatibilität zu anderen Datenbanksystemen (MaxDB: C/C++-Precompiler-Handbuch)

Kompatibilität zu anderen Datenbanksystemen

Das Datenbanksystem MaxDB ist in der Lage, Datenbankanweisungen auszuführen, die in unterschiedlichen SQL-Modi geschrieben sind.

Den SQL-Modus Ihres Anwendungsprogramms geben Sie beim Durchführen des Precompiler-Laufs mit den Precompiler-Optionen an.

Beachten Sie die Besonderheiten im SQL-Modus ORACLE und die Besonderheiten im SQL-Modus ANSI.

Wenn Sie nur einzelne eingebettete SQL-Anweisungen in einem anderen SQL-Modus verfassen möchten, dann leiten Sie sie mit folgenden Schlüsselworten ein:

· EXEC SAPDB oder EXEC INTERNAL für einzelne Anweisungen im Modus INTERNAL

· EXEC ORACLE für einzelne Anweisungen im Modus ORACLE

· EXEC ANSI für einzelne Anweisungen im Modus ANSI


Besonderheiten im SQL-Modus ORACLE (MaxDB: C/C++-Precompiler-Handbuch)

Besonderheiten im SQL-Modus ORACLE

· Im SQL-Modus ORACLE sind die Isolation-Level 0, 1, 2, 3 zulässig. Der Isolation-Level 1 ist der Vorschlagswert.

· Für dynamische SQL-Anweisungen müssen Sie die entsprechenden sqlda-Strukturen definieren. Sie sind kompatibel mit den ORACLE-sqlda-Strukturen, enthalten aber zusätzlich interne MaxDB-Informationen. Benutzen Sie die entsprechenden INCLUDE-Dateien, die beim Durchführen des Precompiler-Laufs automatisch mit eingebunden werden.

/*Deklaration*/

SQLDA orada;

/*Initialisierung*/

orada = sqlald (max_vars, max_name, max_ind_name);

wobei max_vars die Anzahl der Parameter bezeichnet, max_name die maximale Anzahl der Zeichen der Parameternamen und max_ind_name die maximale Anzahl der Zeichen der Indikatornamen ist

· Der Rückmeldungscode sqlcode des Datenbanksystems wird bis auf einige Ausnahmen von MaxDB übernommen (siehe Meldungen).

Die Tabelle zeigt die Ausnahmen und die entsprechenden MaxDB-Meldungscodes.

ORACLE-Meldungscode | MaxDB-Meldungscode
-1008 | Warnung3
-1007 | -804
-1034 | -813
0 | -4000
Warnung1 | -743
100 | 1403 ROW NOT FOUND


Besonderheiten im SQL-Modus ANSI (MaxDB: C/C++-Precompiler-Handbuch)

Besonderheiten im SQL-Modus ANSI

· Im SQL-Modus ANSI sind die Isolation-Level 0, 1, 2, 3 zulässig. Der Isolation-Level 3 ist der Vorschlagswert.

· Dynamische SQL-Anweisungen im ANSI-Modus nutzen die MaxDB-sqlda-Struktur, die automatisch beim Durchführen des Precompiler-Laufs eingebunden wird.

· Der Rückmeldungscode sqlcode des Datenbanksystems wird bis auf einige Ausnahmen von MaxDB übernommen (siehe Meldungen).

Die Tabelle zeigt die Ausnahmen und die entsprechenden MaxDB-Meldungscodes.

ANSI-Meldungscode | MaxDB-Meldungscode
-250 | +250
-300 | +300
-320 | +320
ANSISTATE 01004 | sqlwarn1
ANSISTATE 01003 | sqlwarn2

Die Warnmeldungen sqlwarn1 und sqlwarn2 werden in der Struktur sqlca ausgegeben.


Funktionsweise des C/C++-Precompiler (MaxDB: C/C++-Precompiler-Handbuch)

Funktionsweise des C/C++-Precompiler

Der C/C++-Precompiler übersetzt beim Durchführen des Precompiler-Laufs die im Anwendungsprogramm eingebetteten SQL-Anweisungen in Aufrufe von Prozeduren der Precompiler-Laufzeitumgebung und bereitet den Quellcode für den C/C++-Kompilierer vor.

Dabei führt der Precompiler die folgenden Aufgaben durch:

· Erzeugen der Deskriptor-Struktur sqlda

· Erzeugen der Struktur sqlca für die Rückmeldungen des Datenbanksystems

· Einbinden der Standard-Headerdatei cpc.h

· Syntaktisches Überprüfen der eingebetteten SQL-Anweisungen

· Erzeugen des Precompiler-Protokolls mit eventuellen Fehlermeldungen und Warnungen

Precompiler-Option check

Wenn Sie die Precompiler-Option check wählen, dann überprüft der Precompiler auch die Existenz der aufgerufenen Datenbanktabellen und Spalten sowie die Verträglichkeit der Datentypen und die Zugriffsprivilegien des Benutzers, indem er die eingebetteten SQL-Anweisungen an den Parser oder den Datenbankkern schickt. Die Wirkung aller so ausgeführten SQL-Anweisungen wird nach dem Abschluss des Precompiler-Laufs automatisch durch ein ROLLBACK wieder zurückgesetzt.

Anweisungen mit beim Precompiler-Lauf unbekannten Komponenten, zum Beispiel dynamische SQL-Anweisungen oder CONNECT-Anweisungen mit Host-Variablen, können grundsätzlich nur syntaktisch überprüft werden.

Die SQL-Anweisungen werden in der Reihenfolge ausgeführt, in der sie im Quellcode auftreten, nicht in der logischen Reihenfolge der Programmanweisungen.

Aufbau einer Datenbankverbindung

Um die eingebetteten SQL-Anweisungen mit der Option check zu prüfen, muss der Precompiler eine Verbindung zur Datenbankinstanz herstellen. Dabei gelten die folgenden Regeln:

· Ist die statisch erste SQL-Anweisung einer Datenbanksitzung keine CONNECT-Anweisung, dann gelten alle Benutzerangaben des XUSER-Benutzerschlüssels DEFAULT.

· Ist die statisch erste SQL-Anweisung einer Datenbanksitzung eine CONNECT-Anweisung, werden alle Angaben dieser Anweisung und die fehlenden Angaben dem XUSER-Benutzerschlüssel DEFAULT entnommen.

· Für die erste Datenbanksitzung können Sie alle Benutzerangaben durch entsprechende Precompiler-Optionen übersteuern.


Durchführen des Precompiler-Laufs (MaxDB: C/C++-Precompiler-Handbuch)

Durchführen des Precompiler-Laufs

Um die Quellcode-Datei <filename>.cpc Ihres Anwendungsprogramms vom C/C++-Precompiler prüfen zu lassen und lauffähig zu machen, führen Sie die folgenden Schritte durch:

...

1. Starten Sie den Precompiler und den Kompilierer von der Kommandozeile aus mit folgendem Aufruf:
cpc <precompiler_options> <filename> <compiler_options>
Geben Sie dabei die gewünschten Precompiler-Optionen und Kompilierer-Optionen an. Der Precompiler generiert abhängig von den gewählten Precompiler-Optionen eine C-Datei <filename>.c oder eine C++-Datei <filename>.cpp.

2. Übersetzen Sie diese Datei mit Ihrem C/C++-Kompilierer. Der Kompilierer generiert eine Objektdatei. Abhängig von den gewählten Precompiler-Optionen kann der Kompilierer gleichzeitig mit dem Precompiler aufgerufen werden, so dass die Erzeugung der Objektdatei aus Ihrem Quellcode in nur einem Schritt erfolgen kann.

3. Binden Sie diese Objektdatei mit weiteren Objektdateien und Bibliotheken zum lauffähigen Programm. Rufen Sie dazu den Precompiler-Linker cpclnk mit den gewünschten Optionen auf, oder binden Sie manuell die Precompiler-Laufzeitumgebung libpcrl mit ein.

Siehe auch Beispiel: Kompilieren eines MaxDB-Anwendungsprogramms


Aufrufoptionen für den Precompiler-Linker (MaxDB: C/C++-Precompiler-Handbuch)

Aufrufoptionen für den Precompiler-Linker

Rufen Sie den Precompiler-Linker nach der Durchführung des Precompiler-Laufs und der Kompilierung Ihres Anwendungsprogramms mit folgenden Optionen auf:

Optionen für Microsoft Windows-Betriebssysteme

cpclnk [-<sdkver>] [-BIT32|-BIT64] [-MT|-MD|-SMT] [<link_options>] <file_name> [<object_archive>]

· Wenn Sie mehrere Versionen der Precompiler-Software installiert haben, dann geben Sie mit <sdkver> die gewünschte Version an.

Geben Sie zum Beispiel –7402 an, wenn Sie Version 7.4.02 installiert haben.

· Wählen Sie mit den Optionen -BIT32|-BIT64 sowie -MT|-MD|-SMT, welche Laufzeitbibliotheken der Linker verwenden soll.

· Geben Sie in den <link_options> die gewünschten Linker-Optionen an. Informationen zu Ihrem Linker finden Sie in Ihrer Betriebssystemdokumentation.

· Geben Sie in <file_name> den Namen an, den das ausführbare Programm erhalten soll.

· Geben Sie in <object_archive> die Objektdateien an. Sie können den entsprechenden Pfad mit angeben.

Optionen für UNIX-Betriebssysteme

cpclnk [-P] [-s] [<link_options>] <file_name> [<object_archive>]

· Verwenden Sie die Option –P, um den C++-Linker aufzurufen.

· Geben Sie die Option –s an, wenn Sie die Objektdateien statisch linken wollen.


Precompiler-Optionen (MaxDB: C/C++-Precompiler-Handbuch)

Precompiler-Optionen

Die Tabelle zeigt alle Optionen, die Sie beim Aufruf des Precompilers angeben können.

-E cansi

erzeugt ANSI C-kompatiblen Code

-E cplus

erzeugt C++-kompatiblen Code

-BIT32

erzeugt 32-Bit-kompatiblen Code

Ist diese Option nicht angegeben, generiert der Precompiler falls möglich 64-Bit-kompatiblen Code.

-m <m_begin,m_end>

legt den gültigen Spaltenbereich fest, in dem der Precompiler Quellcode interpretiert

Wenn Sie keine Angabe machen, gelten folgende Standardwerte:
m_begin = 1
m_end = 132

-e

erzeugt ein Programm-Modul, das sich mit weiteren Modulen binden lässt

Übersetzen Sie nur das Hauptmodul ohne diese Option.

-H <check_option>

<check_option> = nocheck|syntax|check

setzt die gewünschte Check-Option für den Precompiler-Lauf

nocheck: der Precompiler überprüft nur die Syntax der exec sql-Kommandos für die eingebetteten SQL-Anweisungen

syntax: der Precompiler überprüft auch die Syntax der Datenbank-Anweisungen selbst

check: der Precompiler überprüft zusätzlich die Existenz der aufgerufenen Datenbanktabellen und Spalten, ihre Verträglichkeit mit den Datentypen der korrespondierenden Host-Variablen sowie die Zugriffsprivilegien des angebenen Datenbankbenutzers.

Wenn Sie keine Check-Option angeben, verwendet der Precompiler automatisch die Option check.

-b <maxpacketsize>

begrenzt die Größe des Auftragspuffers für SQL-Anweisungen beim Precompiler-Lauf

Der Default-Wert für den Precompiler-Lauf ist <maxpacketsize> = 16000

Zur Laufzeit des Anwendungsprogramms erfolgt die Begrenzung des Auftragspuffers durch den Support-Datenbankparameter _PACKET_SIZE der angesprochenen Datenbankinstanz.

-G unicode

bewirkt, dass der Precompiler Generic-Datentypen wie TCHAR und LPSTR in UNICODE-Datentypen wie WCHAR und LPWSTR umsetzt

Gleichzeitig integriert der Precompiler das Makro SAPDB_WITH_UNICODE in den Quellcode.

Wenn Sie diese Option nicht angeben, dann werden die Generic-Datentypen in ANSI-Datentypen (CHAR, CHAR*) umgesetzt.

-s

unterdrückt die Ausgabe von Precompiler-Meldungen auf dem Bildschirm

-w

unterdrückt die Ausgabe aller Warnungen des Precompilers

-o

bewirkt, dass die eingebetteten SQL-Anweisungen als Kommentare in den vom Precompiler erzeugten Quellcode übernommen werden

-l

bewirkt, dass der Precompiler im Precompiler-Protokoll die eingebetteten SQL-Anweisungen samt Fehlermeldungen ausgibt

-c

unterbindet den automatischen Aufruf des Kompilierers nach dem erfolgreichen Precompiler-Lauf

Die Quelldatei für den Kompilierer bleibt jedoch erhalten.

-T

setzt für die Trace-Option die Default-Angabe TRACE SHORT

-X

setzt für die Trace-Option die Default-Angabe TRACE LONG

-F <trace_file_name>

setzt den Default für den Namen der Trace-Datei (siehe Trace-Optionen)

-n <server_name>

übersteuert die Angabe des Datenbankrechners in der SET SERVERDB-Anweisung oder CONNECT-Anweisung der ersten Datenbanksitzung

-d <database_name>

übersteuert die Angabe der Datenbankinstanz in der SET SERVERDB-Anweisung oder CONNECT-Anweisung der ersten Datenbanksitzung

-u <user_name>,<password>

übersteuert die Angabe des Benutzernamens und Kennworts in der CONNECT-Anweisung der ersten Datenbanksitzung

-U <user_key>

übersteuert die KEY-Angabe in der CONNECT-Anweisung der ersten Datenbanksitzung

-S <sql_mode>

<sql_mode> = internal|ansi|oracle

legt den SQL-Modus für Ihr Anwendungsprogramm fest

Wenn Sie keinen SQL-Modus angeben, verwendet der Precompiler automatisch den Modus INTERNAL.

-D <datetimeformat>

<datetimeformat> = eur|iso|jis|usa|internal

legt das im Anwendungsprogramm verwendete Datums- und Zeitformat fest

Wenn Sie kein Format angeben, verwendet der Precompiler automatisch das Format INTERNAL.

-V

zeigt die Precompiler-Version an

-<sdkver>

gibt die Version der Precompiler-Software an

Geben Sie zum Beispiel –7402 an, wenn Sie Version 7.4.02 installiert haben.

-h

zeigt alle Aufrufoptionen des Precompilers und der Precompiler-Laufzeitumgebung an


Precompiler-Protokoll (MaxDB: C/C++-Precompiler-Handbuch)

Precompiler-Protokoll

Beim Durchführen des Precompiler-Laufs schreibt der C/C++-Precompiler eine Protokolldatei <filename>.pcl. Abhängig von den angegebenen Precompiler-Optionen enthält diese Datei den Quellcode, Warnungen und Fehlermeldungen des Precompilers.

Wenn Fehler auftreten, bevor der Precompiler die Protokolldatei erzeugen kann, dann werden diese stattdessen in der Datei sqlerror.pcl protokolliert.


Beispiel: Kompilieren eines MaxDB-Anwendungsprogramms (MaxDB: C/C++-Precompiler-Handbuch)

Beispiel: Kompilieren eines MaxDB-Anwendungsprogramms

Sie haben eine Quellcode-Datei test.cpc geschrieben.

Mit dem Befehl cpc –d DB –u Mustermann,Geheim test

erzeugen Sie die Datei test.o. Dabei wird die Datenbankinstanz DB mit dem Benutzer Mustermann, Benutzerkennwort Geheim verwendet.

Mit dem Befehl cpclnk test

linken Sie die Datei mit der Laufzeitbibliothek und erzeugen ein ausführbares Programm.

Wenn beim Ausführen des Programms test eine Trace-Datei geschrieben werden soll, steuern Sie dies durch das Setzen der Umgebungsvariablen SQLOPT auf den Wert -X. In einer Bash-Shell sähe der entsprechende Befehl wie folgt aus:

export SQLOPT=-X

Beim Ausführen des Programms test wird die zugehörige Trace-Datei test.pctgeschrieben. Diese Datei befindet sich im gleichen Verzeichnis wie das Programm test.


Funktionsweise der Precompiler-Laufzeitumgebung (MaxDB: C/C++-Precompiler-Handbuch)

Funktionsweise der Precompiler-Laufzeitumgebung

Zur Laufzeit des Anwendungsprogramms übernimmt die Precompiler-Laufzeitumgebung folgende Funktionen:

· Herstellen der Datenbankverbindungen und Eröffnen der Datenbanksitzungen entsprechend der angegebenen Verbindungsoptionen

· Zuweisung von Parameterwerten

· Konvertierung von Datentypen

· Ausführen der Precompiler-Anweisungen

· Signalisierung von NULL-Werten (undefinierten Werten) durch Indikatorvariablen

· Ausgabe von Rückmeldungen des Datenbanksystems in der Struktur sqlca

· Schreiben der Trace-Datei entsprechend der angegebenen Trace-Optionen

Siehe auch Beispiel: Ausführen eines Anwendungsprogramms

Die installierten Versionen der Laufzeitbibliothek der Interface-Programme einschließlich des Precompilers können Sie mit dem Werkzeug IRCONF verwalten.


Verbindungsoptionen zur Laufzeit (MaxDB: C/C++-Precompiler-Handbuch)

Verbindungsoptionen zur Laufzeit

Die Tabelle zeigt alle Optionen, die Sie für die Precompiler-Laufzeitumgebung bei der Verbindung zur Datenbankinstanz in der Umgebungsvariablen SQLOPT setzen können.

Die Optionen –u, -U, -t und –I gelten dann für alle Datenbankverbindungen des Anwendungsprogramms, für die Sie in der CONNECT-Anweisung den Schlüssel <key> DEFAULToder SQLOPT angegeben haben.

Die Optionen –n und –d gelten für sämtliche Datenbankverbindung und übersteuern die expliziten Angaben in der CONNECT- oder SET SERVERDB-Anweisung.

Informationen dazu, wie Sie die Umgebungsvariable setzen, finden Sie in Ihrer Betriebssystem-Dokumentation

-n <server_name> | Name des Datenbankrechners
-d <database_name> | Name der Datenbankinstanz
-u <user_name,password> | Benutzername und Kennwort
-U <user_key> | XUSER-Benutzerschlüssel
-t <timeout> | Timeout-Wert in Sekunden Wenn der Default-Wert –1 angegeben ist, dann verwendet die Precompiler-Laufzeitumgebung den im speziellen Datenbankparameter SESSION_TIMEOUT definierten Timeout-Wert.
-I <isolation_level> | Isolation-Level Wenn kein Isolation-Level angegeben ist, dann verwendet die Precompiler-Laufzeitumgebung automatisch den Isolation-Level 10.


Trace-Optionen (MaxDB: C/C++-Precompiler-Handbuch)

Trace-Optionen

Verwendung

Mit Hilfe der Trace-Optionen können Sie bewirken, dass die Precompiler-Laufzeitumgebung die Ausführung des gesamten Anwendungsprogramms zur Laufzeit in der Trace-Datei <filename>.pctprotokolliert.

Wenn Sie nur einzelne eingebettete SQL-Anweisungen protokollieren möchten, dann verwenden Sie die TRACE-Anweisungen.

Der Trace lässt sich zusätzlich zur Laufzeit mittels des Werkzeugs IRTRACE aktivieren und deaktivieren.

Vorgehensweise

· Geben Sie die gewünschte Default-Angabe für die Trace-Option beim Durchführen des Precompiler-Laufs in den Precompiler-Optionen an.

· Setzen Sie die gewünschte Trace-Option für die Laufzeit in der Umgebungsvariablen SQLOPT.

Die folgende Tabelle zeigt die möglichen Trace-Optionen, die Sie beim Durchführen des Precompiler-Laufs und beim Aufrufen des Anwendungsprogramms angeben können:

-T

bewirkt die Protokollierung mit der Option TRACE SHORT

Jede ausgeführte SQL-Anweisung wird einschließlich der Rückmeldungen sqlcode und sqlerrd[2] protokolliert.

-X

bewirkt die Protokollierung mit der Option TRACE LONG

Jede ausgeführte SQL-Anweisung wird einschließlich der Rückmeldungen sqlcode und sqlerrd[2] sowie aller Parameterwerte protokolliert.

-F <trace_file_name>

ermöglicht die Angabe eines Namens für die Trace-Datei bei der Trace-Ausgabe, wenn diese nicht den Standardnamen <filename>.pct erhalten soll

Wenn Sie keine weitere Trace-Option angeben, dann wird gleichzeitig die Option TRACE SHORT aktiviert.

Wenn Sie für <trace_file_name> die Zeichenfolge pid oder PID angeben, dann wird der Name der Trace-Datei automatisch folgendermaßen gebildet: pid<prozess_id>.pct. Auf diese Weise können Sie mehrere Trace-Dateien parallel erzeugen. Standardmäßig wird gleichzeitig die Protokollierung ausgeschaltet, wenn Sie keine andere Trace-Option angeben.

Die folgende Tabelle zeigt die möglichen Trace-Optionen, die Sie nur beim Aufrufen des Anwendungsprogramms angeben können:

-N

unterdrückt die Protokollierung von Datums- und Zeitangaben für den Beginn und das Ende der Ausführung jeder SQL-Anweisung

-L <execution_time>

bewirkt die Protokollierung von SQL-Anweisungen, deren Ausführung länger als die angegebene <execution_time> dauert

Geben Sie <execution_time> in Sekunden an.

Die Protokollierung erfolgt automatisch mit der Option TRACE LONG. Datums- und Zeitangaben können nicht mit –N unterdrückt werden.

-Y <statement_count>

bewirkt die wechselseitige Protokollierung in zwei Trace-Dateien <filename>.pct und <filename>.prot im Arbeitsverzeichnis des Anwendungsprogramms.

Mit <statement_count> geben Sie an, wie viele SQL-Anweisungen dabei in jeder Datei protokolliert werden. Wenn die Anzahl der SQL-Anweisungen <statement_count> übersteigt, dann werden die Trace-Dateien zyklisch überschrieben.

Wenn Sie diese Option angeben, dann erfolgt die Protokollierung automatisch mit der Option TRACE LONG. Datums- und Zeitangaben können nicht mit –N unterdrückt werden.

Siehe auch Beispiel einer Trace-Datei


Verwendung von IRTRACE (MaxDB: C/C++-Precompiler-Handbuch)

Verwendung von IRTRACE

IRTRACE ist ein Werkzeug zum Ändern der Trace-Einstellung sowie zum Anzeigen der aktuellen Trace-Einstellung der Precompiler-Laufzeitumgebung für ein MaxDB-Anwendungsprogramm, das mit dem C/C++-Precompiler übersetzt wurde.

Sie geben dazu Kommandos auf Betriebssystemebene ein. Die Kommunikation zwischen IRTRACE und dem Anwendungsprogramm erfolgt über ein Shared-Memory-Segment.

Wenn Sie mit Hilfe von IRTRACE Trace-Einstellungen ändern, dann setzt das System im Shared-Memory-Segment einen Eintrag. Das Anwendungsprogramm überprüft regelmäßig die Eintragungen im Shared-Memory und ändert seine Trace-Einstellung entsprechend. Die Zuordnung eines Anwendungsprogramms zum entsprechenden Eintrag im Shared Memory erfolgt über die Prozess-ID des Anwendungsprogramms. Solange der entsprechende Prozess aktiv ist, bleibt der Eintrag im Shared-Memory erhalten und kann abgefragt werden.

Bei der Verwendung eines Shared-Memory-Segments wird vom System die Synchronisationsdatei irtrace.shm angelegt, über die die Prozesse des Anwendungsprogramms und des IRTRACE auf das Shared-Memory zugreifen. Das System legt diese Datei releaseunabhängig im Verzeichnis /opt/sdb/programs/wrk ab. Hierfür werden vom System bei der Installation der Pfad /opt/sdb/programs registriert und das Unterverzeichnis wrk angelegt. Außerdem weist das System sowohl dem Werkzeug IRTRACE als auch dem Anwendungsprogramm Lese-und Schreibrechte zu.


Anzeigen der aktuellen Trace-Einstellung (MaxDB: C/C++-Precompiler-Handbuch)

Anzeigen der aktuellen Trace-Einstellung

Mit dem Werkzeug IRTRACE können Sie die aktuelle Trace-Einstellung anzeigen.

Geben Sie dazu folgende Kommandos ein:

· Aktuelle Trace-Einstellung für das Anwendungsprogramm anzeigen:

irtrace -p <process_id>

· Übersicht der Trace-Einstellungen für alle Anwendungsprogramme anzeigen, für die mit IRTRACE Änderungen vorgenommen wurden:

irtrace -p all


Ändern der Trace-Einstellung (MaxDB: C/C++-Precompiler-Handbuch)

Ändern der Trace-Einstellung

Mit dem Werkzeug IRTRACE können Sie die aktuelle Trace-Einstellung ändern.

· Ein-/Aus-/Umschalten des Trace für einen bestimmten Prozess:
irtrace -p <process_id> -t <trace_setting>

· Ein-/Ausschalten des Trace für alle Anwendungsprogramme auf dem lokalen Rechner, die mit dem Precompiler übersetzt wurden:
irtrace -p all -t <trace_setting>

Die Tabelle zeigt die möglichen Werte für <trace_setting>:

<long> | Protokollierung mit der Option TRACE LONG einschalten
<short> | Protokollierung mit der Option TRACE SHORT einschalten
<off> | Trace ausschalten

Siehe auch: Trace-Optionen.


Beispiel einer Trace-Datei (MaxDB: C/C++-Precompiler-Handbuch)

Beispiel einer Trace-Datei

PREPARE        :

select name, preis into ?, ? from hotel where hnr=?

SQL STATEMENT  :  FROM MODULE : docu07             AT LINE : 80

Statement Name : STMT2

PARSEID: OUTPUT:  00000347 00000901 3D001400

START  :  DATE :  2001-11-02    TIME :  0015:40:00

END    :  DATE :  2001-11-02    TIME :  0015:40:00

SQL STATEMENT  :  FROM MODULE : docu07             AT LINE : 80

Statement Name : STMT2

PARSEID: INPUT :  00000347 00000901 3D001400

INPUT  :    3: hnr                             :                  10

OUTPUT :    1: name                            : Excelsior

OUTPUT :    2: preis                           :               135.00

SQLERRD(INDEX_3) : 1

START  :  DATE :  2001-11-02    TIME :  0015:40:00

END    :  DATE :  2001-11-02    TIME :  0015:40:00


Beispiel: Ausführen eines Anwendungsprogramms (MaxDB: C/C++-Precompiler-Handbuch)

Beispiel: Ausführen eines Anwendungsprogramms

Sie möchten ein Anwendungsprogramm mit dem Namen test ausführen, das Sie mit dem C/C++-Precompiler übersetzt haben.

Wenn beim Ausführen des Programms test eine Trace-Datei geschrieben werden soll, steuern Sie dies durch das Setzen der Umgebungsvariablen SQLOPT auf den Wert -X. In einer Bash-Shell sähe der entsprechende Befehl wie folgt aus:

export SQLOPT=-X

Beim Ausführen des Programms test wird die zugehörige Trace-Datei test.pctgeschrieben. Diese Datei befindet sich im gleichen Verzeichnis wie das Programm test.

In einer Bash-Shell führen Sie beispielsweise folgendes Kommando aus:

export SQLOPT="-d TST -u TEST,TEST"

Im Ergebnis dessen verwendet Ihr Anwendungsprogramm zur Laufzeit die Datenbankinstanz TST und den Benutzer TEST mit dem Benutzerkennwort TEST.


Returncodes (MaxDB: C/C++-Precompiler-Handbuch)

Returncodes

Die folgenden Returncodes werden vom Precompiler zurückgegeben:

0 | Precompiler-Lauf und Kompilierlauf fehlerfrei
1 | Fehler im Precompiler-Lauf
2 | Precompiler-Lauf fehlerfrei, Fehler im Kompilierlauf
3-120 | Anzahl der vom Precompiler gemeldeten Fehler
126 | Fehler in der Precompiler-Dateiverwaltung
127 | Precompiler aufgerufen, Kompilierer wurde nicht aufgerufen

Die folgenden Returncodes werden von einem Anwendungsprogramm zurückgegeben:

1 | kein Fehler
2 | Fehler beim Lesen der XUSER-Datei
3 | Datenbankinstanz ist nicht im Betriebszustand ONLINE
4 | zu viele Datenbanksitzungen
5 | unbekannte Kombination von Benutzername und Kennwort
6 | Anwendungsprogramm mit WHENEVER STOP-Anweisung beendet
7 | SQLOPT enthält falsche Optionen
8 | Fehler beim Öffnen oder Schreiben der Trace-Datei
9 | interne Datenstrukturen sind inkonsistent (Systemfehler)


Verwendung des Werkzeugs IRCONF (MaxDB: C/C++-Precompiler-Handbuch)

Verwendung des Werkzeugs IRCONF

Für die Verbindung und die Kommmunikation zwischen Datenbankrechner (Datenbank-Server) und Client muss auf dem Client unter anderem die Laufzeitbibliothek der Interface-Programme, z.B. Precompiler und ODBC, installiert sein.

Dieser Teil der Client-Software kann aktualisiert werden. Damit Sie auch alle älteren Anwendungen weiterhin verwenden und verwalten können, werden die verschiedenen Versionen der Laufzeitbibliothek der Interface-Programme in verschiedenen Verzeichnissen installiert. Die Installation nimmt die Registrierungen im System automatisch vor.

IRCONF ist ein Werkzeug, mit dem sich die installierten Versionen der Laufzeitbibliothek der Interface-Programme auch nachträglich registrieren und anzeigen lassen. Zu diesem Zweck geben Sie Kommandos auf Betriebssystemebene mit den gewünschten Optionen ein.


Optionen für IRCONF (MaxDB: C/C++-Precompiler-Handbuch)

Optionen für IRCONF

Bei der Verwendung des Werkzeuges IRCONF stehen Ihnen folgende Optionen zur Verfügung:

Installationspfad angeben | -p <path>
Registrierte Versionen der Laufzeitbibliothek anzeigen | -s
Registrierung der Laufzeitbibliothek löschen | -r
Treibernamen übersteuern | -d <CPC_driver>
Version der Laufzeitbibliothek registrieren | -i
Versionsermittlung übersteuern | -v <version>
Zusätzlichen Schlüssel angeben | -k <key>
Mögliche Optionen und Hilfe anzeigen | -h


Installationspfad angeben: -p (MaxDB: C/C++-Precompiler-Handbuch)

Installationspfad angeben: -p

Verwendung

Mit der Option –p definieren Sie den Installationspfad. Sie müssen hier nur das Stammverzeichnis angeben.

Die Laufzeitbibliothek der Interface-Programme befindet sich nach der Installation in einem Unterverzeichnis des Stammverzeichnisses

· für Windows NT: .\pgm

· für UNIX (32 Bit) ./lib

Die Laufzeitbibliothek der Interface-Programme für 64-Bit-UNIX-Betriebssysteme wird bei der Installation im Unterverzeichnis ./lib/lib64abgelegt.

Sie können die Option -p mit den Optionen -i (Version der Laufzeitbibliothek registrieren) und/oder -v (Versionsermittlung übersteuern) verbinden.


Registrierte Versionen der Laufzeitbibliothek anzeigen: -s (MaxDB: C/C++-Precompiler-Handbuch)

Registrierte Versionen der Laufzeitbibliothek anzeigen: -s

Verwendung

Mit der Option -s lassen Sie sich die registrierten Versionen der Laufzeitbibliothek der Interface-Programme auf dem Client anzeigen.

Syntax

irconf -s

Ergebnis

Sie erhalten die Pfade und Versionen der installierten Laufzeitbibliothek der Interface-Programme angezeigt.

/opt/sdb/interfaces/precompiler/runtime/7400 -> 7.4.00.00
/opt/sdb/interfaces/precompiler/runtime/7501 -> 7.5.01.00


Registrierung der Laufzeitbibliothek löschen: -r (MaxDB: C/C++-Precompiler-Handbuch)

Registrierung der Laufzeitbibliothek löschen: -r

Verwendung

Mit Hilfe der Option –r löschen Sie die Registrierung einer Laufzeitbibliothek der Interface-Programme auf dem Client. Geben Sie den Pfad an, in dem sich die Client-Installation befindet.

Syntax

irconf -r -p <path>

irconf -r -p /opt/sdb/interfaces/precompiler/runtime/7.4

Ergebnis

Sie erhalten eine Meldung über das Löschen der Registrierung mit Angabe des Pfades und der Version der Laufzeitbibliothek der Interface-Programme.

/opt/sdb/interfaces/precompiler/runtime/7501 -> 7.5.01.00 registration removed


Treibernamen übersteuern: -d (MaxDB: C/C++-Precompiler-Handbuch)

Treibernamen übersteuern: -d

Verwendung

Der Treibername dient zur Ermittlung der Versionsinformationen der Laufzeitbibliothek der Interface-Programme. Der Vorschlagswert ist libpcr.

Die Option –d <CPC_driver> wird nur für Support-Zwecke benötigt.

Syntax

irconf -i -d <CPC_driver>

irconf -i -d <libpcr.old>


Version der Laufzeitbibliothek registrieren: -i (MaxDB: C/C++-Precompiler-Handbuch)

Version der Laufzeitbibliothek registrieren: -i

Verwendung

Mit der Option -i registrieren Sie eine Version der Laufzeitbibliothek der Interface-Programme auf dem Client. Geben Sie mit Hilfe der Option -p <path> den Pfad an, unter dem die zu registrierende Version der Laufzeitbibliothek installiert wurde.

Während der Registrierung wird die in dem Verzeichnis liegende Version der Laufzeitbibliothek der Interface-Programme (Windows NT: libpcr.dll, UNIX: libpcr.so oder libpcr.sl) überprüft und die Registrierung unter der vom System ermittelten Version vorgenommen. In Sonderfällen kann es notwendig sein, diese Versionsüberprüfung zu umgehen (Versionsermittlung übersteuern: -v).

Syntax

irconf -i -p <path>

irconf -i -p /opt/sdb/interfaces/precompiler /runtime/7501

Ergebnis

Sie erhalten eine Meldung über die erfolgreiche Registrierung mit Angabe des Pfades und der Version der installierten Laufzeitbibliothek der Interface-Programme.

/opt/sdb/interfaces/precompiler /runtime/7501 -> 7.5.01.00 registered


Versionsermittlung übersteuern: -v (MaxDB: C/C++-Precompiler-Handbuch)

Versionsermittlung übersteuern: -v

Verwendung

Das Werkzeug IRCONF versucht, die Version der installierten Laufzeitbibliothek der Interface-Programme zu ermitteln. In Sonderfällen kann diese Versionsermittlung mit Hilfe der Option -v übersteuert werden. Sie können diese Option bei der Registrierung der Version einer Laufzeitbibliothek angeben und damit die entsprechende Version unter einem selbst gewählten Versionsstring speichern.

Sie wollen mit einer 32-Bit-Version von IRCONF eine 64-Bit-Version der Laufzeitbibliothek der Interface-Programme registrieren. Die 32-Bit-Version von IRCONF kann die Version der 64-Bit-Software nicht ermitteln. Die Versionsermittlung muss also übersteuert werden.

In einem speziellen Support-Fall ist es erforderlich, die Version der Laufzeitbibliothek unter einer anderen Bezeichnung zu registrieren. Die Versionsermittlung muss also übersteuert werden.

Syntax

irconf -i -v <version> -p <path>

Ergebnis

Sie erhalten angezeigt, welche Version unter dem angegebenen Pfad installiert ist.

/usr/sapdb-if/runtime/7501 -> 7.5.01.00


Zusätzlichen Schlüssel angeben: -k (MaxDB: C/C++-Precompiler-Handbuch)

Zusätzlichen Schlüssel angeben: -k

Verwendung

Das Verfahren zur Registrierung lässt es nicht zu, zwei gleiche Versionen der Laufzeitbibliothek der Interface-Programme auf einem Rechner (in unterschiedlichen Verzeichnissen) eindeutig zu ermitteln. Dieser Fall kann eintreten, wenn Test- und Produktivsystem auf dem gleichen Rechner installiert sind, aber die Binaries aus unterschiedlichen Verzeichnissen kommen sollen.

Verwenden Sie in diesem Fall die Option –k, um die Versionen zu benennen und wiederzufinden. Setzen Sie die Umgebungsvariable SAPDBINSTKEY auf den in <key> angegebenen Wert, damit die Anwendungen die unter diesem key registrierte Version verwenden.

Syntax

irconf -i -p <path> -k <key>

irconf -i –p /opt/sdb/interfaces/precompiler/runtime/7401 -k db_instance_name

Ergebnis

Sie erhalten angezeigt, unter welchem Pfad die unter <key>angegebene Version registriert wurde.

/opt/sdb/interfaces/precompiler/runtime/7401 -> 7.4.01.00 db_instance_name


Mögliche Optionen und Hilfe anzeigen: -h (MaxDB: C/C++-Precompiler-Handbuch)

Mögliche Optionen und Hilfe anzeigen: -h

Verwendung

Mit Hilfe dieser Option lassen Sie sich eine Zusammenfassung aller mit IRCONF möglichen Optionen anzeigen.

Syntax

irconf -h

Ergebnis

Sie erhalten folgende Ausgabe:

Usage : irconf -i[-v | -d | -p | -k] | -r -p | -s | -h

Options:

-i Registers a version

-r Unregisters a version

-s Displays all installed versions

-v <version> Overrides version number identified by the system

-d <CPC_driver> Default is 'libpcr'

-p <path> Installation path

-k <key> Installation name

-h Displays help


Fehlermeldungen von IRCONF (MaxDB: C/C++-Precompiler-Handbuch)

Fehlermeldungen von IRCONF

IRCONF kann folgende Fehlermeldungen ausgeben:

· Invalid option
Beim Aufruf von IRCONF wurde eine ungültige Option angegeben.

· Invalid combination of options
Die Kombination der Optionen ist unzulässig.

· Missing CPC Driver name
Die Option -d wurde ohne Argumente angegeben.

· Missing path name
Die Option -p wurde ohne Argumente angegeben.

· Missing installation name
Die Option -k wurde ohne Argumente angegeben.

· Missing version number
Die Option -v wurde ohne Argumente angegeben.

· Cannot get version info of CPC Driver
Die Version der Laufzeitbibliothek der Interface-Programme auf dem Client konnte nicht ermittelt werden.

· The specified driver does not exist
Der angegebene Treiber existiert nicht oder konnte nicht geladen werden.

· Cannot find any installed version of CPC Driver
Es sind keine Installationen der Laufzeitbibliothek der Interface-Programme registriert.

· The specified installation does not exist
Die angegebene Installation existiert nicht.


Syntaxverzeichnis (MaxDB: C/C++-Precompiler-Handbuch)

Syntaxverzeichnis

In diesem Syntaxverzeichnis finden Sie die Syntax aller Precompiler-Anweisungen. Die verwendete Syntaxnotation ist die BNF.

Die Syntax der Datenbankanweisungen im SQL-Modus INTERNAL finden Sie auch im Referenzhandbuch.

as_clause

array_statement

cancel_session

cancel_statement

c_function

char_host_var

close_statement

command

connect_option

connect_statement

connect_statement_internal

connect_statement_oracle

cursor_name

database_name

database_server

dbproc_clause

dbproc_name

ddl_statement

declare_clause

declare_cursor_statement

declare_statement

describe_statement

descriptor_name

dml_statement

dyna_parameter

dyna_parameter_list

embedded_sql_statement

exec_command_statement

execute_immediate_statement

execute_statement

fetch_spec

fetch_statement

file_host_var

file_name

float_host_var

for_clause

getval_statement

host_variable

hostvarprefix

include_declare_statement

include_file_statement

include_sqlca_statement

include_statement

ind_clause

indicator_marker

indicator_variable

ind_variable_declarator

int_host_var

key

label

loop_parameter

open_cursor_statement

os_command

os_command_async

os_command_sync

parameter

parameter_list

parameter_marker

precom_version

prepare_statement

putval_statement

result_param

rte_version

session_name

session_number

session_spec

set_serverdb_statement

sqlda_variable

statement_name

statement_source

string_constant

structure_tag

table_clause

trace_line

trace_state

trace_statement

type_declarator

uidpwd

unichar_host_var

using_clause

using_expr

variable_declarator

variable_name

version_statement

whenever_action

whenever_condition

whenever_statement


as_clause (MaxDB: C/C++-Precompiler-Handbuch)

as_clause

<as_clause> ::=
  AS VAR [<variable_declarator>]
| AS TYPE [<type_declarator>]
| AS STRUCT [<structure_tag>]


array_statement (MaxDB: C/C++-Precompiler-Handbuch)

array_statement

<array_statement> ::=
  [<for_clause>] <dml_statement>


cancel_session (MaxDB: C/C++-Precompiler-Handbuch)

cancel_session

<cancel_session> ::=
  <session_number>
| <session_name>
| CURRENT


cancel_statement (MaxDB: C/C++-Precompiler-Handbuch)

cancel_statement

<cancel_statement> ::=
  EXEC SQL CANCEL [<cancel_session>];


c_function (MaxDB: C/C++-Precompiler-Handbuch)

c_function

<c_function> ::=
  <simple_identifier>


char_host_var (MaxDB: C/C++-Precompiler-Handbuch)

char_host_var

<char_host_var> ::=
  <hostvarprefix> <identifier >

(nur für Variablen vom Typ chardecspec erlaubt)


close_statement (MaxDB: C/C++-Precompiler-Handbuch)

close_statement

<close_statement> ::=
  CLOSE [<cursor_name>]


command (MaxDB: C/C++-Precompiler-Handbuch)

command

<command> ::=
  <string_constant>
| <char_host_var>
| <unichar_host_var>


connect_option (MaxDB: C/C++-Precompiler-Handbuch)

connect_option

<connect_option> ::=
[ISOLATION LEVEL <unsigned_integer>]

[TIMEOUT <unsigned_integer>]


connect_statement (MaxDB: C/C++-Precompiler-Handbuch)

connect_statement

<connect_statement> ::=
  <connect_statement_internal>
| <connect_statement_oracle>


connect_statement_internal (MaxDB: C/C++-Precompiler-Handbuch)

connect_statement_internal

<connect_statement_internal> ::=
  EXEC SQL [<session_number>]
  CONNECT [<user_name> IDENTIFIED BY <password> | <uidpwd>]
  [<connect_option>...] [KEY <key>];


connect_statement_oracle (MaxDB: C/C++-Precompiler-Handbuch)

connect_statement_oracle

<connect_statement_oracle> ::=
  EXEC SQL
  CONNECT [<user_name> IDENTIFIED BY <password> | <uidpwd>]
  AT <session_name> USING <database_server-database_name>
  [<connect_option>...] [KEY <key>];


cursor_name (MaxDB: C/C++-Precompiler-Handbuch)

cursor_name

<cursor_name> ::=
  <result_table_name>
| <char_host_var>
| <unichar_host_var>


database_name (MaxDB: C/C++-Precompiler-Handbuch)

database_name

<database_name> ::=
  <string_constant>
| <char_host_var>


database_server (MaxDB: C/C++-Precompiler-Handbuch)

database_server

<database_server> ::=
  <string_constant>
| <char_host_var>


dbproc_clause (MaxDB: C/C++-Precompiler-Handbuch)

dbproc_clause

<dbproc_clause> ::=
  DBPROC <dbproc_name>


dbproc_name (MaxDB: C/C++-Precompiler-Handbuch)

dbproc_name

<dbproc_name> ::=
  [<owner>.]<procedure_name> [(<parameter_list>)]


ddl_statement (MaxDB: C/C++-Precompiler-Handbuch)

ddl_statement

<ddl_statement> ::=
  <create_table_statement>
| <drop_table_statement>
| <alter_table_statement>
| <rename_table_statement>
| <rename_column_statement>
| <exists_table_statement>
| <create_domain_statement>
| <drop_domain_statement>
| <create_sequence_statement>
| <drop_sequence_statement>
| <create_synonym_statement>
| <drop_synonym_statement>
| <rename_synonym_statement>
| <create_view_statement>
| <drop_view_statement>
| <rename_view_statement>
| <create_index_statement>
| <drop_index_statement>
| <alter_index_statement>
| <rename_index_statement>
| <comment_on_statement>
| <create_trigger_statement>
| <drop_trigger_statement>
| <create_dbproc_statement>
| <drop_dbproc_statement>


declare_clause (MaxDB: C/C++-Precompiler-Handbuch)

declare_clause

<declare_clause> ::=
  <table_clause>
| <dbproc_clause>


declare_cursor_statement (MaxDB: C/C++-Precompiler-Handbuch)

declare_cursor_statement

<declare_cursor_statement> ::=
  EXEC SQL [<session_spec>]
  DECLARE <cursor_name> CURSOR FOR <statement_source>;


declare_statement (MaxDB: C/C++-Precompiler-Handbuch)

declare_statement

<declare_statement> ::=
  EXEC SQL BEGIN DECLARE SECTION;
| EXEC SQL END DECLARE SECTION;


describe_statement (MaxDB: C/C++-Precompiler-Handbuch)

describe_statement

<describe_statement> ::=
  EXEC SQL [<session_spec>] DESCRIBE <statement_name>
  [INTO <descriptor_name> [<using_clause>]];


descriptor_name (MaxDB: C/C++-Precompiler-Handbuch)

descriptor_name

<descriptor_name> ::=
  <sqlda_variable>


dml_statement (MaxDB: C/C++-Precompiler-Handbuch)

dml_statement

<dml_statement> ::=
  <select_statement>
| <select_into_statement> (nur SQL-Modus ORACLE)
| <insert_statement>
| <update_statement>
| <delete_statement>
| <close_statement>
| <putval_statement>
| <getval_statement>
| <call_statement>
| <explain_statement>


dyna_parameter (MaxDB: C/C++-Precompiler-Handbuch)

dyna_parameter

<dyna_parameter> ::=
  <parameter_marker> [<indicator_marker>]


dyna_parameter_list (MaxDB: C/C++-Precompiler-Handbuch)

dyna_parameter_list

<dyna_parameter_list> ::=
  <dyna_parameter,...>


embedded_sql_statement (MaxDB: C/C++-Precompiler-Handbuch)

embedded_sql_statement

<embedded_sql_statement>

::=
EXEC SQL [<session_spec>]
| <ddl_statement>;
| <dml_statement>;
| <array_statement>;


exec_command_statement (MaxDB: C/C++-Precompiler-Handbuch)

exec_command_statement

<exec_command_statement> ::=
  EXEC COMMAND <os_command>;


execute_immediate_statement (MaxDB: C/C++-Precompiler-Handbuch)

execute_immediate_statement

<execute_immediate_statement> ::=
  EXEC SQL [<session_spec>] EXECUTE IMMEDIATE <statement_source>;


execute_statement (MaxDB: C/C++-Precompiler-Handbuch)

execute_statement

<execute_statement> ::=
  EXEC SQL [<session_spec>] [<for_clause>]
  EXECUTE <statement_name> [<using_clause>];


fetch_spec (MaxDB: C/C++-Precompiler-Handbuch)

fetch_spec

<fetch_spec> ::=
  FIRST
| LAST
| NEXT
| PREV
| SAME
| POS (<unsigned_integer>)
| POS (<int_host_var>)


fetch_statement (MaxDB: C/C++-Precompiler-Handbuch)

fetch_statement

<fetch_statement> ::=
  EXEC SQL [<session_spec>] [<for_clause>]
  FETCH [<fetch_spec>] [<cursor_name>] <using_clause>;


file_host_var (MaxDB: C/C++-Precompiler-Handbuch)

file_host_var

<file_host_var> ::=
  <hostvarprefix ><identifier >

(nur für Variablen vom Typ vfldecspec erlaubt)


file_name (MaxDB: C/C++-Precompiler-Handbuch)

file_name

<file_name> ::=
  <string_constant>


float_host_var (MaxDB: C/C++-Precompiler-Handbuch)

float_host_var

<float_host_var> ::=
 <hostvarprefix ><identifier >

(nur für Variablen vom Typ flpdecspec erlaubt)


for_clause (MaxDB: C/C++-Precompiler-Handbuch)

for_clause

<for_clause> ::=
  FOR <loop_parameter>


getval_statement (MaxDB: C/C++-Precompiler-Handbuch)

getval_statement

<getval_statement> ::=
  GETVAL INTO (<parameter_list>)

(nur für LONG-Spalten)


host_variable (MaxDB: C/C++-Precompiler-Handbuch)

host_variable

<host_variable> ::=
  <char_host_var>
| <unichar_host_var>
| <int_host_var>
| <float_host_var>


hostvarprefix (MaxDB: C/C++-Precompiler-Handbuch)

hostvarprefix

<hostvarprefix> ::=
  :


include_declare_statement (MaxDB: C/C++-Precompiler-Handbuch)

include_declare_statement

<include_declare_statement> ::=
  EXEC SQL INCLUDE <file_name> <declare_clause>
  [<as_clause>] [<ind_clause>];


include_file_statement (MaxDB: C/C++-Precompiler-Handbuch)

include_file_statement

<include_file_statement> ::=
  EXEC SQL INCLUDE <file_name>;


include_sqlca_statement (MaxDB: C/C++-Precompiler-Handbuch)

include_sqlca_statement

<include_sqlca_statement> ::=
  EXEC SQL INCLUDE SQLCA;


include_statement (MaxDB: C/C++-Precompiler-Handbuch)

include_statement

<include_statement> ::=
  <include_sqlca_statement>
| <include_file_statement>
| <include_declare_statement>


ind_clause (MaxDB: C/C++-Precompiler-Handbuch)

ind_clause

<ind_clause> ::=
  IND [<ind_variable_declarator>] [<structure_tag>]


indicator_marker (MaxDB: C/C++-Precompiler-Handbuch)

indicator_marker

<indicator_marker> ::=
  ?


indicator_variable (MaxDB: C/C++-Precompiler-Handbuch)

indicator_variable

<indicator_variable> ::=
  <int_host_var>


ind_variable_declarator (MaxDB: C/C++-Precompiler-Handbuch)

ind_variable_declarator

<ind_variable_declarator> ::=
  <simple_identifier>


int_host_var (MaxDB: C/C++-Precompiler-Handbuch)

int_host_var

<int_host_var> ::=
  <hostvarprefix ><identifier >

(nur für Variablen vom Typ intdecspec erlaubt)


key (MaxDB: C/C++-Precompiler-Handbuch)

key

<key> :: =
  <simple_identifier>


label (MaxDB: C/C++-Precompiler-Handbuch)

label

<label> :: =
  <identifier >


loop_parameter (MaxDB: C/C++-Precompiler-Handbuch)

loop_parameter

<loop_parameter> ::=
  <unsigned_integer>
| <int_host_var>


open_cursor_statement (MaxDB: C/C++-Precompiler-Handbuch)

open_cursor_statement

<open_cursor_statement> ::=
  EXEC SQL [<session_spec>] [<for_clause>] OPEN <cursor_name>
  [  USING <parameter_list>
   | USING DESCRIPTOR [<descriptor_name>] [KEEP]
   | INTO <parameter_list>]
   | INTO DESCRIPTOR [<descriptor_name>] [KEEP]];


os_command (MaxDB: C/C++-Precompiler-Handbuch)

os_command

<os_command> ::=
  <os_command_async>
| <os_command_sync>


os_command_async (MaxDB: C/C++-Precompiler-Handbuch)

os_command_async

<os_command_async> ::=
  ASYNC <os_command>


os_command_sync (MaxDB: C/C++-Precompiler-Handbuch)

os_command_sync

<os_command_sync> ::=
  SYNC <os_command> RESULT <result_param>


parameter (MaxDB: C/C++-Precompiler-Handbuch)

parameter

<parameter> ::=
  <host_variable> [<indicator_variable>]


parameter_list (MaxDB: C/C++-Precompiler-Handbuch)

parameter_list

<parameter_list> ::=
  <parameter,...>


parameter_marker (MaxDB: C/C++-Precompiler-Handbuch)

parameter_marker

<parameter_marker> ::=
  ?


precom_version (MaxDB: C/C++-Precompiler-Handbuch)

precom_version

<precom_version> ::=
  <char_host_var>


prepare_statement (MaxDB: C/C++-Precompiler-Handbuch)

prepare_statement

<prepare_statement> ::=
  EXEC SQL [<session_spec>] PREPARE <statement_name>
  [INTO <descriptor_name> [USING <using_clause>]]
  FROM <statement_source>;


putval_statement (MaxDB: C/C++-Precompiler-Handbuch)

putval_statement

<putval_statement> ::=
  PUTVAL INTO <table_name> [(<column_name>,...)]
  VALUES (<parameter_list>)

(nur für LONG-Spalten)


result_param (MaxDB: C/C++-Precompiler-Handbuch)

result_param

<result_param> ::=
  <int_host_var>


rte_version (MaxDB: C/C++-Precompiler-Handbuch)

rte_version

<rte_version> ::=
  < char_host_var>


session_name (MaxDB: C/C++-Precompiler-Handbuch)

session_name

<session_name> ::=
  <string_constant>
| <char_host_var>


session_number (MaxDB: C/C++-Precompiler-Handbuch)

session_number

<session_number> ::=
  1|2|3|4|5|6|7|8|9


session_spec (MaxDB: C/C++-Precompiler-Handbuch)

session_spec

<session_spec> ::=
  <session_number> (SQL-Modus Internal)
| AT <session_name> (SQL-Modus ORACLE)


set_serverdb_statement (MaxDB: C/C++-Precompiler-Handbuch)

set_serverdb_statement

<set_serverdb_statement> ::=
  EXEC SQL [<session number>]
  SET SERVERDB <database_name> [ON <database_server>];


sqlda_variable (MaxDB: C/C++-Precompiler-Handbuch)

sqlda_variable

<sqlda_variable> ::=
  <simple_identifier>


statement_name (MaxDB: C/C++-Precompiler-Handbuch)

statement_name

<statement_name> ::=
  <string_constant>
| <char_host_var>
| <unichar_host_var>


statement_source (MaxDB: C/C++-Precompiler-Handbuch)

statement_source

<statement_source> ::=
  ‘<dml_statement> ’
| ‘<ddl_statement> ’
| <statement_name>


string_constant (MaxDB: C/C++-Precompiler-Handbuch)

string_constant

<string_constant> ::=
  “<simple_identifier> ”
| ‘<simple_identifier> ’


structure_tag (MaxDB: C/C++-Precompiler-Handbuch)

structure_tag

<structure_tag> ::=
  < simple_identifier >


table_clause (MaxDB: C/C++-Precompiler-Handbuch)

table_clause

<table_clause> ::=
  TABLE <table_name>


trace_line (MaxDB: C/C++-Precompiler-Handbuch)

trace_line

<trace_line> ::=
  <string_constant>
| <char_host_var>


trace_state (MaxDB: C/C++-Precompiler-Handbuch)

trace_state

<trace_state> ::=
  TRACE ON
| TRACE LONG
| TRACE OFF
| TRACE LINE <trace_line>


trace_statement (MaxDB: C/C++-Precompiler-Handbuch)

trace_statement

<trace_statement> ::=
  EXEC SQL SET TRACE <trace_state>;


type_declarator (MaxDB: C/C++-Precompiler-Handbuch)

type_declarator

<type_declarator> ::=
  <simple_identifier>


uidpwd (MaxDB: C/C++-Precompiler-Handbuch)

uidpwd

<uidpwd> ::=
  <user_name>/<password >


unichar_host_var (MaxDB: C/C++-Precompiler-Handbuch)

unichar_host_var

<unichar_host_var> ::=
  <hostvarprefix ><identifier >

(nur für Variablen vom Typ unichardecspec erlaubt)


using_clause (MaxDB: C/C++-Precompiler-Handbuch)

using_clause

<using_clause> ::=
  USING <using_expr>
| INTO <using_expr>


using_expr (MaxDB: C/C++-Precompiler-Handbuch)

using_expr

<using_expr> ::=
  <parameter_list>
| DESCRIPTOR [<descriptor_name>]


variable_declarator (MaxDB: C/C++-Precompiler-Handbuch)

variable_declarator

<variable_declarator> ::=
  <simple_identifier>


variable_name (MaxDB: C/C++-Precompiler-Handbuch)

variable_name

<variable_name> ::=
  < simple_identifier >


version_statement (MaxDB: C/C++-Precompiler-Handbuch)

version_statement

<version_statement> ::=
  EXEC SQL VERSION <rte_version>, <precom_version>;


whenever_action (MaxDB: C/C++-Precompiler-Handbuch)

whenever_action

<whenever_action> ::=
  CALL <c_function>
| CONTINUE
| GOTO <label>
| STOP


whenever_condition (MaxDB: C/C++-Precompiler-Handbuch)

whenever_condition

<whenever_condition> ::=
  SQLWARNING
| SQLERROR
| SQLEXCEPTION
| NOT FOUND
| SQLBEGIN
| SQLEND


whenever_statement (MaxDB: C/C++-Precompiler-Handbuch)

whenever_statement

<whenever_statement> ::=
  EXEC SQL WHENEVER <whenever_condition> <whenever_action>;


ODBC-Handbuch

In diesem Handbuch sind die Grundlagen und Besonderheiten des MaxDB-ODBC-Treibers beschrieben. Die Erläuterungen gelten für Datenbanksysteme ab Version 7.3.01.

Für das Verständnis dieser Dokumentation werden Grundkenntnisse der Programmiersprache C sowie SQL-Kenntnisse und ein allgemeines Wissen über Datenbanksysteme vorausgesetzt.

Verwendung

Der MaxDB -ODBC-Treiber ermöglicht den Zugriff auf das Datenbanksystem MaxDB. Der Zugriff auf die Daten erfolgt über die Structured Query Language (SQL).

In Abhängigkeit vom Betriebssystem ist der MaxDB-ODBC-Treiber sowohl 32- als auch 64-Bit-fähig. Er läuft auf Linux, Microsoft Windows ab Windows 95 sowie allen UNIX-Systemen, die vom Datenbanksystem unterstützt werden.

Wenn die ODBC-Anwendung auf dem gleichen Rechner wie die Datenbankinstanz betrieben wird, erfolgt die Kommunikation über Shared Memory. Ein entfernter (remote) Zugriff der ODBC-Anwendung auf die Datenbankinstanz erfolgt über TCP/IP.

Sie können den MaxDB-ODBC-Treiber unter der Adresse http://www.mysql.com/products/maxdb/interfaces.html kostenlos herunterladen.

Eine vollständige Beschreibung der ODBC-Funktionen und eine ODBC-Syntaxreferenz finden Sie auf der Website von Microsoft ( http://www.microsoft.com/data/ODBC) im ODBC-SDK (Software Development Kit) unter ODBC Programmer‘s Reference.

Allgemeine Informationen zum Datenbanksystem finden Sie im Handbuch Datenbankverwaltung .


Unterstützte ODBC-Versionen (MaxDB: ODBC-Handbuch)

Unterstützte ODBC-Versionen

Der MaxDB-ODBC-Treiber erfüllt die Schnittstellenspezifikation von ODBC 3.51.

Beachten Sie bei der Entwicklung eigener Anwendungen, dass diese zwischen den Versionen ODBC 2.x und ODBC 3.x unterscheiden. Definieren Sie deshalb mit Hilfe der Funktion SQLSetEnvAttr das Attribut SQL_ATTR_ODBC_VERSION bevor Sie mit SQLAllocHandle ein Connection-Handle anfordern.


Eigenschaften des MaxDB-ODBC-Treibers (MaxDB: ODBC-Handbuch)

Eigenschaften des MaxDB-ODBC-Treibers

Zu ausgewählten Bereichen wird die Funktionalität des MaxDB-ODBC-Treibers näher erläutert:

Unterstützte Datentypen

Konvertierung von SQL- und C-Datentypen

Verarbeitung von SQL-Anweisungen

ODBC-API-Kompatibilität

Unicode-Unterstützung


Unterstützte Datentypen (MaxDB: ODBC-Handbuch)

Unterstützte Datentypen

Die ODBC-Schnittstelle unterscheidet zwischen den vom Datenbanksystem zur Verfügung gestellten Datentypen (SQL-Datentypen) und den in der ODBC-Anwendung benutzten Datentypen (C-Datentypen).

SQL-Datentypen

C-Datentypen


SQL-Datentypen (MaxDB: ODBC-Handbuch)

SQL-Datentypen

Jedes Datenbanksystem definiert seine eigenen SQL-Datentypen. Ein ODBC-Treiber verarbeitet nur jene Datentypen, die vom zugehörigen Datenbanksystem definiert sind.

Wie ein ODBC-Treiber die SQL-Datentypen des Datenbanksystems auf die ODBC-unterstützten Datentypen und auf die eigenen treiberspezifischen Datentypen abbildet, sowie die Angaben für Länge (Length), Dezimalstelle (Scale) und Anzahl der gültigen Ziffern (Precision) können Sie mit Hilfe der Funktion SQLGetTypeInfo ermitteln.

Die für das Datenbanksystem MaxDB definierten Datentypen finden Sie im Referenzhandbuch im Abschnitt Datentyp.

MaxDB-Datentypen, die vom MaxDB-ODBC-Treiber unterstützt werden

Character | CHAR, VARCHAR, LONG, CHAR BYTE, VARCHAR BYTE, LONG BYTE
Numerisch | DECIMAL, FIXED, INTEGER, SMALLINT, FLOAT, REAL, DOUBLE PRECISION
Datum | DATE, TIME, TIMESTAMP
Sonstige | BOOLEAN, CHAR EBCDIC, VARCHAR EBCDIC


C-Datentypen (MaxDB: ODBC-Handbuch)

C-Datentypen

ODBC-C-Datentypen repräsentieren jene Datentypen von C-Variablen, in denen die zur Kommunikation mit der Datenbank vorgesehenen Daten der Anwendung verarbeitet werden.

Zusammenhang zwischen SQL- und C-Datentypen

fCType | ODBC C Typedef | C Type
SQL_C_CHAR | SQLCHAR * | unsigned char *
SQL_C_SSHORT | SQLSMALLINT | short int
SQL_C_SLONG | SQLINTEGER | long int (32 bit)
SQL_C_USHORT | SQLUSMALLINT | unsigned short int
SQL_C_ULONG | SQLUINTEGER | unsigned long int (32 bit)
SQL_C_FLOAT | SQLREAL | float
SQL_C_DOUBLE | SQLDOUBLE | double
SQL_C_BIGINT | SQLBIGINT | _int64, long (64 bit)
SQL_C_UBIGINT | SQLUBIGINT | unsigned _int64, unsigned long (64 bit)
SQL_C_BINARY | SQLCHAR* | unsigned char*
SQL_C_DATE | SQL_DATE_STRUCT | struct tagDATE_STRUCT { SQLSMALLINT year; SQLSMALLINT month; SQLSMALLINT day;}
SQL_C_TIME | SQL_TIME_STRUCT | struct tagTIME_STRUCT { SQLSMALLINT hour; SQLSMALLINT minute; SQLSMALLINT second;}
SQL_C_TIMESTAMP | SQL_TIMESTAMP_STRUCT | struct tagTIMESTAMP_STRUCT { SQLSMALLINT year; SQLSMALLINT month; SQLSMALLINT day; SQLSMALLINT hour; SQLSMALLINT minute; SQLSMALLINT second; SQLUINTEGER fraction;}
SQL_C_BIT | SQLCHAR | unsigned char


Konvertierung von SQL- und C-Datentypen (MaxDB: ODBC-Handbuch)

Konvertierung von SQL- und C-Datentypen

Der MaxDB-ODBC-Treiber ermöglicht die Konvertierungen für alle unterstützten Datentypen.

Siehe auch:

Website von Microsoft (http://www.microsoft.com/data/ODBC) im ODBC-SDK (Software Development Kit) unter ODBC Programmer‘s Reference, Abschnitte Converting Data from SQL to C Data Types und Converting Data from C to SQL Data Types.


Verarbeitung von SQL-Anweisungen (MaxDB: ODBC-Handbuch)

Verarbeitung von SQL-Anweisungen

Der MaxDB-ODBC-Treiber unterstützt die vollständige ODBC-SQL-Syntax.

Detaillierte Informationen zu den ODBC-Funktionsaufrufen finden Sie auf der Website von Microsoft ( http://www.microsoft.com/data/ODBC) im ODBC-SDK (Software Development Kit) unter ODBC Programmer‘s Reference., Chapter 8: SQL Statements, Escape Sequences in ODBC, Abschnitt Scalar Functions

Numerische Funktionen | ABS, ACOS, ASIN, ATAN, ATAN2, CEILING, COS, COT, DEGREES, EXP, FLOOR, LOG, MOD, SIGN, SIN, SQRT, TAN, TRUNCATE, PI, RADIANS, ROUND
String-Funktionen | CONCAT, LCASE, LEFT, LENGTH, LOCATE, LTRIM, REPLACE, RIGHT, RTRIM, SOUNDEX, SUBSTRING, UCASE,
System-Funktionen | DBNAME, IFNULL, USERNAME
Time-Date-Funktionen | CURDATE, CURTIME, DAYNAME, DAYOFMONTH, DAYOFWEEK, DAYOFYEAR, HOUR, MINUTE, MONTH, MONTHNAME, NOW, SECOND, WEEK, YEAR

SELECT {fn MONTH(NOW())} FROM dual

In folgenden Bereichen finden Sie im MaxDB-ODBC-Treiber Erweiterungen zur üblichen SQL-Syntax:

Datenbankprozeduren

Cursor-Funktionen


Datenbankprozeduren (MaxDB: ODBC-Handbuch)

Datenbankprozeduren

Datenbankprozeduren können als SQL-Anweisungen abgearbeitet werden.

Siehe auch: Referenzhandbuch, Abschnitt Datenbankprozedur .

Die ODBC-Syntax für Prozeduren unterstützt keine Rückgabewerte von Funktionen. Die Angabe in der Form
{ ? = call ...}
ist somit unzulässig.


Cursor-Funktionen (MaxDB: ODBC-Handbuch)

Cursor-Funktionen

Der MaxDB-ODBC-Treiber unterstützt drei Arten der positionierbaren Cursors: statische, dynamische und Keyset-gesteuerte. Diese unterscheiden sich darin, inwieweit Änderungen an den Datenbankdaten durch die aktuelle Sitzung oder die Sitzungen anderer Benutzer sichtbar sind.

Da MaxDB Tabellen zeilenweise sperren kann, kann ein Benutzer Daten einer Tabelle ändern, wenn ein anderer Benutzer Teile dieser Tabelle ebenfalls geöffnet hat. Voraussetzung dafür ist, dass die zu ändernde Zeile außerhalb jenes Teils liegt, der vom anderen Benutzer geöffnet wurde.
Sperren für einzelne Seiten oder ganze Tabellen führen im Betrieb mit mehreren gleichzeitigen Benutzern zu erheblich längeren Wartezeiten als Zeilensperren.

Mit Hilfe der Funktion SQLSetPos kann eine Anwendung positionierende INSERT-, UPDATE- und DELETE-Anweisungen ausführen.


ODBC-API-Kompatibilität (MaxDB: ODBC-Handbuch)

ODBC-API-Kompatibilität

Im MaxDB-ODBC-Treiber sind alle Funktionen sowohl unter Microsoft Windows als auch unter UNIX/Linux ausführbar.

Das ODBC-API gliedert sich in die Bereiche Kern, Level 1 und Level 2.

Nachfolgend eine Übersicht der Funktionen, die für die einzelnen API-Kompatibilitätsstufen definiert sind.

Kern-API

Level-1-API

Level-2-API


Kern-API (MaxDB: ODBC-Handbuch)

Kern-API

Übersicht der Funktionen, die im MaxDB-ODBC-Treiber für das Kern-API definiert sind

Funktion

Anmerkungen

SQLAllocConnect

-

SQLAllocEnv

-

SQLAllocStmt

-

SQLBindCol

Wenn die Längenangabe pcbValueMax kleiner als die Länge einer gebundenen LONG-Spalte ist, liefert der MaxDB-ODBC-Treiber für pcbValue den Wert SQL_NO_TOTAL. In allen anderen Fällen zeigt pcbValue die Länge der kopierten Bytes an.

Weitere Teile dieser LONG-Spalte können Sie dann mit der Funktion SQLGetData holen.

SQLCancel

-

SQLColAttributes

-

SQLConnect

-

SQLDescribeCol

-

SQLDisconnect

-

SQLError

-

SQLExecDirect

-

SQLExecute

-

SQLFetch

-

SQLFreeConnect

-

SQLFreeEnv

-

SQLFreeStmt

-

SQLGetCursorName

Unterscheidung nach Groß- und Kleinbuchstaben, maximale Länge 18 Zeichen
Beachten Sie dies z. B. bei der Anweisung SELECT FOR UPDATE, da Bezeichner, die nicht in Hochkommas eingeschlossen sind, automatisch in Großbuchstaben umgewandelt werden.

Der MaxDB-ODBC-Treiber bildet für Cursor-Namen Vorschlagswerte nach folgendem Schema:
SQL_CURSOR_nnnn, wobei nnnn einem internen Zähler entspricht.
SQL_CUR_nnnnnnn, wenn n >= 10000

SQLNumResultCols

-

SQLPrepare

-

SQLRowCount

Zeigt Anzahl der betroffenen Zeilen für alle SELECT-, INSERT-, DELETE-, usw. -Anweisungen an

Falls keine Ergebnismenge aufgebaut wurde, wird für die nicht bestimmbare Anzahl von betroffenen Zeilen der Wert -1 angezeigt.

SQLSetCursorName

-

SQLTransact

-


Level-1-API (MaxDB: ODBC-Handbuch)

Level-1-API

Übersicht der Funktionen, die im MaxDB-ODBC-Treiber für das Level-1-API definiert sind

Funktion

Anmerkung

SQLBindParameter

Wenn Sie mit einer INSERT-, UPDATE- oder DELETE-Anweisung mehr als eine LONG-Spalte verarbeiten wollen und die Parameter mit dem Attribut SQL_DATA_AT_EXECUTE binden, beachten Sie, dass bei der Funktion SQLPutData der NULL-Wert höchstens für eine LONG-Spalte möglich ist.
Wenn Sie mit nur einer Anweisung mehrere LONG-Spalten auf den NULL-Wert setzen wollen, müssen Sie die Spalten in der Längenangabe (pcbValue) mit Hilfe des Attributs SQL_NULL_DATA binden. Andernfalls erhalten Sie die Meldung
szSqlState = S1000 SQLCODE =-22002.

SQLColumns

-

SQLDriverConnect

Schlüsselwort für den Namen des Datenbankrechners: SERVERNODE
Schlüsselwort für den Namen der Datenbankinstanz: SERVERDB

SQLGetConnectAttr

Anmerkung

SQLGetData

-

SQLGetFunctions

Anmerkung

SQLGetInfo

Anmerkung

SQLGetStmtAttr

-

SQLGetTypeInfo

Die vom Datenbanksystem MaxDB unterstützten Datentypen können Sie mit Hilfe der Funktion SQLGetTypeInfo ermitteln.

Folgende Datentypen werden unterstützt:
CHAR, VARCHAR, DECIMAL, FIXED, INTEGER, SMALLINT, FLOAT, REAL, DOUBLE PRECISION, DATE, TIME, TIMESTAMP, LONG, CHAR() BYTE, VARCHAR() BYTE, LONG BYTE, BOOLEAN

Wenn die Datenbank so konfiguriert ist, dass UNICODE-Zeichen verarbeitet werden können, unterstützt MaxDB auch folgende Datentypen:
CHAR() UNICODE, VARCHAR() UNICODE, LONG UNICODE

SQLParamData

Für LONG-Spalten, die NULL-Werte enthalten, siehe Anmerkung zu SQLBindParameter

SQLPutData

Für LONG-Spalten, die NULL-Werte enthalten, siehe Anmerkung zu SQLBindParameter

SQLSetConnectAttr

Siehe SQLGetConnectAttr

SQLSetParam

-

SQLSetStmtAttr

-

SQLSpecialColumns

-

SQLStatistics

-

SQLTables

Der MaxDB-ODBC-Treiber unterstützt folgende Tabellentypen ( szTableType):
 ALIAS, RESULT, SNAPSHOT, SYSTEM, SYSTEM TABLE, TABLE, UNLOADED, VIEW


Anmerkung zu SQLGetConnectAttr (MaxDB: ODBC-Handbuch)

Anmerkung zu SQLGetConnectAttr

Liste aller unterstützten Attribute und Rückgabewerte des MaxDB-ODBC-Treibers

Attribute | Rückgabewerte
SQL_ ATTR_ACCESS_MODE | pvParam = SQL_MODE_READ_WRITE
SQL_ ATTR_AUTOCOMMIT | pvParam = SQL_AUTOCOMMIT_ON
SQL_ATTR_CONNECTION_DEAD |
SQL_ATTR_CURRENT_CATALOG |
SQL_ ATTR_LOGIN_TIMEOUT | pvParam = 15
SQL_ATTR_ODBC_CURSORS |
SQL_ATTR_QUIET_MODE |
SQL_ ATTR_OPT_TRACE | pvParam = SQL_OPT_TRACE_OFF =0
SQL_ ATTR_OPT_TRACEFILE | (Der mit SQLSetConnectAttr gesetzte Dateiname, Vorschlagswert: \SQL.LOG)
SQL_ ATTR_TRANSLATE_LIB |
SQL_ ATTR_TRANSLATE_OPTION | pvParam = 0
SQL_ ATTR_TXN_ISOLATION | pvParam = SQL_TXN_REPEATABLE_READ
SQL_ MODE = SQL_CONNECT_OPT_START + 2 | pvParam = (1 = INTERNAL, 2 = DB2, 3 = ANSI, 4 = ORACLE)


Anmerkung zu SQLGetFunctions (MaxDB: ODBC-Handbuch)

Anmerkung zu SQLGetFunctions

Bei Angabe der Function-ID SQL_API_ODBC3_ALL_FUNCTION gibt das Makro SQL_FUNC_EXISTS für folgende Werte das Ergebnis TRUE aus:

SQL_API_SQLALLOCCONNECT

SQL_API_SQLALLOCENV

SQL_API_SQLALLOCHANDLE

SQL_API_SQLALLOCHANDLESTD

SQL_API_SQLALLOCSTMT

SQL_API_SQLBINDCOL

SQL_API_SQLBINDPARAM

SQL_API_SQLBINDPARAMETER

SQL_API_SQLBROWSECONNECT

SQL_API_SQLBULKOPERATIONS

SQL_API_SQLCANCEL

SQL_API_SQLCLOSECURSOR

SQL_API_SQLCOLATTRIBUTES

SQL_API_SQLCOLUMNPRIVILEGES

SQL_API_SQLCOLUMNS

SQL_API_SQLCONNECT

SQL_API_SQLCOPYDESC

SQL_API_SQLDATASOURCES

SQL_API_SQLDESCRIBECOL

SQL_API_SQLDESCRIBEPARAM

SQL_API_SQLDISCONNECT

SQL_API_SQLDRIVERCONNECT

SQL_API_SQLDRIVERS

SQL_API_SQLENDTRAN

SQL_API_SQLERROR

SQL_API_SQLEXECDIRECT

SQL_API_SQLEXECUTE

SQL_API_SQLEXTENDEDFETCH

SQL_API_SQLFETCH

SQL_API_SQLFETCHSCROLL

SQL_API_SQLFOREIGNKEYS

SQL_API_SQLFREECONNECT

SQL_API_SQLFREEENV

SQL_API_SQLFREEHANDLE

SQL_API_SQLFREESTMT

SQL_API_SQLGETCONNECTATTR

SQL_API_SQLGETCONNECTOPTION

SQL_API_SQLGETCURSORNAME

SQL_API_SQLGETDATA

SQL_API_SQLGETDESCFIELD

SQL_API_SQLGETDESCREC

SQL_API_SQLGETDIAGFIELD

SQL_API_SQLGETDIAGREC

SQL_API_SQLGETENVATTR

SQL_API_SQLGETFUNCTIONS

SQL_API_SQLGETINFO

SQL_API_SQLGETSTMTATTR

SQL_API_SQLGETSTMTOPTION

SQL_API_SQLGETTYPEINFO

SQL_API_SQLMORERESULTS

SQL_API_SQLNATIVESQL

SQL_API_SQLNUMPARAMS

SQL_API_SQLNUMRESULTCOLS

SQL_API_SQLPARAMDATA

SQL_API_SQLPARAMOPTIONS

SQL_API_SQLPREPARE

SQL_API_SQLPRIMARYKEYS

SQL_API_SQLPROCEDURECOLUMNS

SQL_API_SQLPROCEDURES

SQL_API_SQLPUTDATA

SQL_API_SQLROWCOUNT

SQL_API_SQLSETCONNECTATTR

SQL_API_SQLSETCONNECTOPTION

SQL_API_SQLSETCURSORNAME

SQL_API_SQLSETDESCFIELD

SQL_API_SQLSETDESCREC

SQL_API_SQLSETENVATTR

SQL_API_SQLSETPARAM

SQL_API_SQLSETPOS

SQL_API_SQLSETSCROLLOPTIONS

SQL_API_SQLSETSTMTATTR

SQL_API_SQLSETSTMTOPTION

SQL_API_SQLSPECIALCOLUMNS

SQL_API_SQLSTATISTICS

SQL_API_SQLTABLEPRIVILEGES

SQL_API_SQLTABLES

SQL_API_SQLTRANSACT


Anmerkung zu SQLGetInfo (MaxDB: ODBC-Handbuch)

Anmerkung zu SQLGetInfo

Liste aller vom MaxDB-ODBC-Treiber unterstützen Attribute und Rückgabewerte

Attribute

Rückgabewerte

SQL_ACCESSIBLE_PROCEDURES

rgbInfoValue = "N"

SQL_ACCESSIBLE_TABLES

rgbInfoValue = "N"

SQL_ACTIVE_CONNECTIONS

rgbInfoValue = 0

SQL_ACTIVE_STATEMENTS

rgbInfoValue = 32767

SQL_ALTER_TABLE

rgbInfoValue =
  SQL_AT_ADD_COLUMN
| SQL_AT_DROP_COLUMN
| SQL_AT_ADD_COLUMN_DEFAULT
| SQL_AT_ADD_CONSTRAINT
| SQL_AT_ADD_TABLE_CONSTRAINT
| SQL_AT_DROP_COLUMN_CASCADE
| SQL_AT_DROP_COLUMN_DEAFAULT
| SQL_AT_SET_COLUMN_DEFAULT

SQL_BOOKMARK_PERSISTENCE

rgbInfoValue =
  SQL_BP_SCROLL
| SQL_BP_UPDATE

SQL_CATALOG_LOCATION

rgbInfoValue = 1 (SQL_CL_START)

SQL_CATALOG_NAME_SEPARATOR

rgbInfoValue = "."

SQL_CATALOG_TERM

rgbInfoValue = "Qualifier"

SQL_CATALOG_USAGE

rgbInfoValue = 0x00000000

SQL_COLUMN_ALIAS

rgbInfoValue = "Y"

SQL_CONCAT_NULL_BEHAVIOR

rgbInfoValue = 0 (SQL_CB_NULL)

SQL_CONVERT_BIGINT

SQL_CONVERT_BINARY

SQL_CONVERT_BIT

SQL_CONVERT_CHAR

SQL_CONVERT_DATE

SQL_CONVERT_DECIMAL

SQL_CONVERT_DOUBLE

SQL_CONVERT_FLOAT

SQL_CONVERT_FUNCTIONS

rgbInfoValue = 0x00000000L

SQL_CONVERT_INTEGER

SQL_CONVERT_LONGVARBINARY

rgbInfoValue = 0x00000000L

SQL_CONVERT_LONGVARCHAR

SQL_CONVERT_NUMERIC

SQL_CONVERT_REAL

SQL_CONVERT_SMALLINT

SQL_CONVERT_TIME

SQL_CONVERT_TIMESTAMP

SQL_CONVERT_TINYINT

SQL_CONVERT_VARBINARY

SQL_CONVERT_VARCHAR

SQL_CORRELATION_NAME

rgbInfoValue = 2 (SQL_CN_ANY)

SQL_CURSOR_COMMIT_BEHAVIOR

rgbInfoValue =
SQL_CB_PRESERVE
| SQL_CB_DELETED (SQLMode = ANSI)

SQL_CURSOR_ROLLBACK_BEHAVIOR

rgbInfoValue =
SQL_CB_PRESERVE
| SQL_CB_DELETED (SQLMode = ANSI)

SQL_DATA_SOURCE_NAME

rgbInfoValue = (Name der geöffneten Datenquelle)

SQL_DATA_SOURCE_READ_ONLY

rgbInfoValue = "N"

SQL_DBMS_NAME

rgbInfoValue = "SAP DB"

SQL_DBMS_VER

rgbInfoValue = "/07.03.nnn"

SQL_DEFAULT_TXN_ISOLATION

rgbInfoValue = SQL_TXN_READ_COMMITTED

SQL_DRIVER_HDBC

rgbInfoValue = (Handle der Treiberanmeldung)

SQL_DRIVER_HENV

rgbInfoValue = (Handle der Treiberumgebung)

SQL_DRIVER_HLIB

rgbInfoValue = (Handle der Library)

SQL_DRIVER_HSTMT

rgbInfoValue = (Handle der Treiberanweisung)

SQL_DRIVER_NAME

rgbInfoValue = "sqlod32.dll", "libsqlod.so" (UNIX)

SQL_DRIVER_ODBC_VER

rgbInfoValue = "03.51"

SQL_DRIVER_ODBC_VER

rgbInfoValue = (Version des Driver Manager > 3.51)

SQL_DRIVER_VER

rgbInfoValue = "7.<minor_version>.<correction_level>"

SQL_EXPRESSIONS_IN_ORDERBY

rgbInfoValue = "N"

SQL_FETCH_DIRECTION

rgbInfoValue =
  SQL_FD_FETCH_NEXT
| SQL_FD_FETCH_FIRST
| SQL_FD_FETCH_LAST
| SQL_FD_FETCH_PRIOR
| SQL_FD_FETCH_ABSOLUTE
| SQL_FD_FETCH_RELATIVE
| SQL_FD_FETCH_BOOKMARK

SQL_FILE_USAGE

rgbInfoValue = 0 (SQL_FILE_NOT_SUPPORTED)

SQL_GETDATA_EXTENSIONS

rgbInfoValue =
  SQL_GD_ANY_COLUMN
| SQL_GD_ANY_ORDER
| SQL_GD_ANY_BOUND
| SQL_GD_ANY_BLOCK

SQL_GROUP_BY

rgbInfoValue = SQL_GB_GROUP_BY_CONTAINS_SELECT

SQL_IDENTIFIER_CASE

rgbInfoValue = 1 (SQL_IC_UPPER)

SQL_IDENTIFIER_QUOTE_CHAR

rgbInfoValue = "\ ""

SQL_INTEGRITY

rgbInfoValue = "N"

SQL_KEYWORDS

rgbInfoValue = (Liste von Schlüsselwörtern, abhängig vom SQLMode)

SQL_LIKE_ESCAPE_CLAUSE

rgbInfoValue = "Y"

SQL_LOCK_TYPES

rgbInfoValue = 1 SQL_LCK_NO_CHANGE

SQL_MAX_BINARY_LITERAL_LEN

rgbInfoValue = 0

SQL_MAX_CATALOG_NAME_LEN

rgbInfoValue = 0

SQL_MAX_CHAR_LITERAL_LEN

rgbInfoValue = 0

SQL_MAX_COLUMN_NAME_LEN

rgbInfoValue = 32

SQL_MAX_COLUMNS_IN_GROUP_BY

rgbInfoValue = 128

SQL_MAX_COLUMNS_IN_INDEX

rgbInfoValue = 16

SQL_MAX_COLUMNS_IN_ORDER_BY

rgbInfoValue = 128

SQL_MAX_COLUMNS_IN_SELECT

rgbInfoValue = 1023

SQL_MAX_COLUMNS_IN_TABLE

rgbInfoValue = 1023

SQL_MAX_CONCURRENT_ACTIVITIES

rgbInfoValue = 32767

SQL_MAX_CURSOR_NAME_LEN

rgbInfoValue = 32

SQL_MAX_DRIVER_CONNECTIONS

rgbInfoValue = 0

SQL_MAX_INDEX_SIZE

rgbInfoValue = 1024

SQL_MAX_OWNER_NAME_LEN

rgbInfoValue = 32

SQL_MAX_PROCEDURE_NAME_LEN

rgbInfoValue = 32

SQL_MAX_QUALIFIER_NAME_LEN

rgbInfoValue = 0

SQL_MAX_ROW_SIZE

rgbInfoValue = 0

SQL_MAX_ROW_SIZE_INCLUDES_LONG

rgbInfoValue = "N"

SQL_MAX_SCHEMA_NAME_LEN

rgbInfoValue = 32

SQL_MAX_STATEMENT_LEN

rgbInfoValue = 0

SQL_MAX_TABLE_NAME_LEN

rgbInfoValue = 32

SQL_MAX_TABLES_IN_SELECT

rgbInfoValue = 64

SQL_MAX_USER_NAME_LEN

rgbInfoValue = 32

SQL_MULT_RESULT_SETS

rgbInfoValue = "Y"

SQL_MULTIPLE_ACTIVE_TXN

rgbInfoValue = "Y"

SQL_NEED_LONG_DATA_LEN

rgbInfoValue = "N"

SQL_NON_NULLABLE_COLUMN

rgbInfoValue = 1 (SQL_NNC_NON_NULL)

SQL_NULL_COLLATION

rgbInfoValue = 1 (SQL_NC_LOW)

SQL_NUMERIC_FUNCTIONS

rgbInfoValue =
  SQL_FN_NUM_ABS
| SQL_FN_NUM_ACOS
| SQL_FN_NUM_ASIN
| SQL_FN_NUM_ATAN
| SQL_FN_NUM_ATAN2
| SQL_FN_NUM_CEILING
| SQL_FN_NUM_COS
| SQL_FN_NUM_COT
| SQL_FN_NUM_EXP
| SQL_FN_NUM_FLOOR
| SQL_FN_NUM_LOG
| SQL_FN_NUM_MOD
| SQL_FN_NUM_SIGN
| SQL_FN_NUM_SIN
| SQL_FN_NUM_SQRT
| SQL_FN_NUM_TAN
| SQL_FN_NUM_PI
| SQL_FN_NUM_DEGREES
| SQL_FN_NUM_RADIANS
| SQL_FN_NUM_ROUND

SQL_ODBC_API_CONFORMANCE

rgbInfoValue = 2 (SQL_OAC_LEVEL2)

SQL_ODBC_SAG_CLI_CONFORMANCE

rgbInfoValue = 1 (SQL_OSCC_COMPLIANT)

SQL_ODBC_SQL_CONFORMANCE

rgbInfoValue = 2 (SQL_OSC_EXTENDED)

SQL_ODBC_SQL_OPT_IEF

rgbInfoValue = "N"

SQL_ODBC_VER

rgbInfoValue = "03.520000"

SQL_ORDER_BY_COLUMNS_IN_SELECT

rgbInfoValue = "N"

SQL_OUTER_JOINS

rgbInfoValue = "Y"

SQL_OWNER_TERM

rgbInfoValue = "Owner"

SQL_OWNER_USAGE

rgbInfoValue =
  SQL_OU_DML_STATEMENTS
| SQL_OU_PROCEDURE_INVOCATION
| SQL_OU_TABLE_DEFINITION
| SQL_OU_INDEX_DEFINITION
| SQL_OU_PRIVILEGE_DEFINITION

SQL_POS_OPERATIONS

rgbInfoValue =
  SQL_POS_UPDATE
| SQL_POS_DELETE
| SQL_POS_ADD (nur mit dynamischen Cursors erlaubt)
| SQL_POS_POSITION
| SQL_POS_REFRESH

SQL_POSITIONED_STATEMENTS

rgbInfoValue =
  SQL_PS_POSITIONED_DELETE
| SQL_PS_POSITIONED_UPDATE
| SQL_PS_SELECT_FOR_UPDATE

SQL_PROCEDURE_TERM

rgbInfoValue = "stored procedure"

SQL_PROCEDURES

rgbInfoValue = "Y"

SQL_QUALIFIER_LOCATION

rgbInfoValue = 1 (SQL_CL_START)

SQL_QUALIFIER_NAME_SEPARATOR

rgbInfoValue = "."

SQL_QUALIFIER_TERM

rgbInfoValue = "Qualifier"

SQL_QUALIFIER_USAGE

rgbInfoValue = 0x00000000

SQL_QUOTED_IDENTIFIER_CASE

rgbInfoValue = 3 (SQL_IC_SENSITIVE)

SQL_ROW_UPDATES

rgbInfoValue = "Y"

SQL_SCHEMA_TERM

rgbInfoValue = "Owner"

SQL_SCHEMA_USAGE

rgbInfoValue =
   SQL_OU_DML_STATEMENTS
| SQL_OU_PROCEDURE_INVOCATION
| SQL_OU_TABLE_DEFINITION
| SQL_OU_INDEX_DEFINITION
| SQL_OU_PRIVILEGE_DEFINITION

SQL_SCROLL_CONCURRENCY

rgbInfoValue =
  SQL_SCCO_READ_ONLY
| SQL_SCCO_LOCK
| SQL_SCCO_OPT_ROWVER
| SQL_SCCO_OPT_VALUES

SQL_SCROLL_OPTIONS

rgbInfoValue =
   SQL_SO_FORWARD_ONLY
| SQL_SO_KEYSET_DRIVEN
| SQL_SO_DYNAMIC
| SQL_SO_STATIC

SQL_SEARCH_PATTERN_ESCAPE

rgbInfoValue = "\"

SQL_SERVER_NAME

rgbInfoValue = (Name des Datenbankrechners)

SQL_SPECIAL_CHARACTERS

rgbInfoValue = "#@$"

SQL_STATIC_SENSITIVITY

rgbInfoValue = 0x00000000

SQL_STRING_FUNCTIONS

rgbInfoValue =
  SQL_FN_STR_LEFT
| SQL_FN_STR_LTRIM
| SQL_FN_STR_LENGTH
| SQL_FN_STR_LCASE
| SQL_FN_STR_REPLACE
| SQL_FN_STR_RIGHT
| SQL_FN_STR_RTRIM
| SQL_FN_STR_SUBSTRING
| SQL_FN_STR_UCASE
| SQL_FN_STR_SOUNDEX

SQL_SUBQUERIES

rgbInfoValue =
  SQL_SQ_COMPARISON
| SQL_SQ_EXISTS
| SQL_SQ_IN
| SQL_SQ_CORRELATED_SUBQUERIES

SQL_SYSTEM_FUNCTIONS

rgbInfoValue =
   SQL_FN_SYS_USERNAME
| SQL_FN_SYS_DBNAME
| SQL_FN_SYS_IFNULL

SQL_TABLE_TERM

rgbInfoValue = "Table"

SQL_TIMEDATE_ADD_INTERVALS

rgbInfoValue = 0x00000000

SQL_TIMEDATE_DIFF_INTERVALS

rgbInfoValue = 0x00000000

SQL_TIMEDATE_FUNCTIONS

rgbInfoValue =
  SQL_FN_TD_NOW
| SQL_FN_TD_CURDATE
| SQL_FN_TD_DAYOFMONTH
| SQL_FN_TD_DAYOFWEEK
| SQL_FN_TD_DAYOFYEAR
| SQL_FN_TD_MONTH
| SQL_FN_TD_WEEK
| SQL_FN_TD_YEAR
| SQL_FN_TD_CURTIME
| SQL_FN_TD_HOUR
| SQL_FN_TD_MINUTE
| SQL_FN_TD_SECOND
| SQL_FN_TD_DAYNAME
| SQL_FN_TD_MONTHNAME

SQL_TXN_CAPABLE

rgbInfoValue = 2 (SQL_TC_ALL)

SQL_TXN_ISOLATION_OPTION

rgbInfoValue =
  SQL_TXN_READ_UNCOMMITTED
| SQL_TXN_READ_COMMITTED
| SQL_TXN_REPEATABLE_READ
| SQL_TXN_SERIALIZABLE

SQL_UNION

rgbInfoValue =
  SQL_U_UNION
| SQL_U_UNION_ALL

SQL_USER_NAME

rgbInfoValue = (Name des aktiven Benutzers)


Level-2-API (MaxDB: ODBC-Handbuch)

Level-2-API

Übersicht der Funktionen, die im MaxDB-ODBC-Treiber für das Level-2-API definiert sind

Funktion

Anmerkung

SQLBrowseConnect

SQLColumnPrivileges

SQLDataSources (*)

SQLDescribeParam

SQLExtendedFetch

Nur beim dynamischen Corsor-Modell (SQL_CURSOR_DYNAMIC) können Sie mit Hilfe der Funktion SQLSetPos Zeilen einfügen. Bei allen anderen Cursor-Modellen ist dies nicht möglich.

UPDATE- und DELETE-Anweisungen sind sowohl beim statischen (SQL_CURSOR_STATIC) als auch beim Keyset-gesteuerten Cursor-Modell (SQL_CURSOR_KEYSETDRIVEN) möglich.

SQLFetchScroll

SQLForeignKeys

SQLMoreResults

Die Funktion ruft SQLFreeStmt mit dem Attribut SQL_CLOSE auf, um die vorhergehende Ergebnismenge zu schließen und liefert dann SQL_NO_DATA_FOUND.

SQLNativeSql

SQLNumParams

SQLParamOptions

SQLPrimaryKeys

SQLProcedureColumns

SQLProcedures

SQLSetPos

Alle Attribute sind zulässig.
Das Attribut SQL_ADD ist nur im dynamischen Cursor-Modell (SQL_CURSOR_DYNAMIC) möglich.
Für das fLock-Argument ist nur das Attribut SQL_LOCK_NO_CHANGE zulässig.

SQLSetScrollOptions

SQLTablePrivileges


UNICODE-Unterstützung (MaxDB: ODBC-Handbuch)

UNICODE-Unterstützung

Der MaxDB ODBC-Treiber unterstützt UNICODE. Damit stehen die nachfolgend aufgeführten Funktionen zusätzlich zur Verfügung, unabhängig davon, ob die Datenquelle UNICODE unterstützt oder nicht.

Unter Microsoft Windows benutzt der Driver Manager grundsätzlich die UNICODE-Varianten des ODBC-API. Wenn beispielsweise innerhalb der Anwendung die Funktion SQLConnect aufgerufen wird, dann wird im ODBC-Treiber SQLConnectW aufgerufen. Die Konvertierungen zwischen ASCII und UNICODE erfolgen dabei durch den Driver Manager.

Übersicht der Funktionen, die im MaxDB-ODBC-Treiber für den Zugriff auf UNICODE-Daten definiert sind

SQLBrowseConnectW

SQLColAttributesW

SQLColAttributeW

SQLColumnPrivilegesW

SQLColumnsW

SQLConnectW

SQLDataSourcesW

SQLDescribeColW

SQLDriverConnectW

SQLDriversW

SQLErrorW

SQLExecDirectW

SQLForeignKeysW

SQLGetConnectAttrW

SQLGetConnectOptionW

SQLGetCursorNameW

SQLGetDescFieldW

SQLGetDescRecW

SQLGetDiagFieldW

SQLGetDiagRecW

SQLGetInfoW

SQLGetStmtAttrW

SQLGetTypeInfoW

SQLNativeSqlW

SQLPrepareW

SQLPrimaryKeysW

SQLProcedureColumnsW

SQLProceduresW

SQLSetConnectAttrW

SQLSetConnectOptionW

SQLSetCursorNameW

SQLSetDescFieldW

SQLSetStmtAttrW

SQLSpecialColumnsW

SQLStatisticsW

SQLTablePrivilegesW

SQLTablesW


Der MaxDB-ODBC-Treiber unter Microsoft Windows (MaxDB: ODBC-Handbuch)

Der MaxDB-ODBC-Treiber unter Microsoft Windows

Installation unter Microsoft Windows

Anlegen von Datenquellen unter Microsoft Windows


Installation unter Microsoft Windows (MaxDB: ODBC-Handbuch)

Installation unter Microsoft Windows

Verwendung

Sie haben verschiedene Möglichkeiten, den MaxDB-ODBC-Treiber unter Microsoft Windows zu installieren:

· als Teil des Installationsprofils Server

· als einzelne Softwarekomponente ODBC, z. B. für reine Client-Installationen

Diese Möglichkeiten unterscheiden sich nur im Vorschlagswert des Systems für die Ablage der installierten Software.

Wenn Sie den MaxDB-ODBC-Treiber als Teil des Installationsprofils Server installieren, ist der Systemvorschlag für den Installationspfad bis Datenbankversion 7.3 der <dependent_data_path>, ab Datenbankversion 7.4 der <independent_data_path>.

Wenn Sie den MaxDB-ODBC-Treiber als separate Softwarekomponente ODBC installieren, ist der Vorschlagswert des Systems für den Installationspfad C:\Program Files\SAP DB\ODBC7x, wobei x für die jeweilige Version des MaxDB-ODBC-Treibers steht.

Seit Version 7.4 ist die ODBC-Software außer im Installationsprofil Server auch in den Installationsprofilen Web Tools und DB Analyzer enthalten. Sie können das Installationsprofil insgesamt, also einschließlich ODBC-Software, installieren oder während des Installationsvorganges nur die darin enthaltene Softwarekomponente ODBC auswählen.

Vorgehensweise

Prüfen Sie, ob das Installationsprofil Server bereits auf Ihrem Rechner installiert ist. In diesem Fall ist auch der MaxDB-ODBC-Treiber bereits installiert und es sind keine weiteren Schritte notwendig. Andernfalls gehen sie wie folgt vor:

Mittels Doppelklick auf die Datei odbc7x-setup.exe öffnen Sie den InstallShield Wizard für den MaxDB-ODBC-Treiber.

Vorschlagswert für den Installationspfad ist C:\Program Files\SAPDB\ODBC7x. Sie haben die Möglichkeit, diesen Installationspfad zu ändern.

Folgen Sie den Anweisungen des Wizard.

Ergebnis

Die Informationen über alle installierten ODBC-Treiber werden vom System in der Datei HKEY_LOCAL_MACHINE/SOFTWARE/ODBC/ODBCINST.INI gespeichert. Außerdem wird für jeden ODBC-Treiber ein treiberspezifischer Schlüssel angelegt und ebenfalls in dieser Datei gespeichert.

Für den MaxDB-ODBC-Treiber werden bei der Installation folgende Einträge in der Registry gespeichert:

HKEY_LOCAL_MACHINE
     SOFTWARE\ODBC\ODBCINST.INI
          SAP DB
          SAP DB (Unicode)
          MaxDB
          MaxDB (Unicode)

Unter jedem treiberspezifischen Schlüssel werden die Namen der ODBC-Treiber-DLLs und der Name der Setup-DLL gespeichert. Mit Hilfe dieser Informationen lädt das Werkzeug ODBC-Administrator beim Anlegen neuer Datenquellen die entsprechende DLL.

Unter dem Schlüssel MaxDB gibt es folgenden Eintrag:

HKEY_CURRENT_USER
     SOFTWARE\ODBC\ODBCINST.INI\MaxDB
        Driver=C:\SAP DB\pgm\sqlod32.dll
        Setup=C:\SAP DB\pgm\sqlsp32.dll


Anlegen von Datenquellen unter Microsoft Windows (MaxDB: ODBC-Handbuch)

Anlegen von Datenquellen unter Microsoft Windows

Verwendung

Datenquellen können Sie mit Hilfe des Werkzeugs ODBC-Administrator anlegen.

Die Angaben zu den Datenquellen werden dabei vom System in der Datei HKEY_CURRENT_USER/Software/ODBC/ODBC.INI gespeichert.

Vorgehensweise

...

1. Wählen Sie Start ® Settings ® Control Panel ® Administrative Tools ® Data Sources (ODBC). Sie öffnen damit den ODBC Data Source Administrator.

2. Wählen Sie Add.

3. Wählen Sie aus der nun angezeigten Liste der installierten ODBC-Treiber den Eintrag MaxDB aus und bestätigen Sie mit Finish.

4. Machen Sie folgende Eingaben:

Data Source Name | Name der Datenquelle, Über diesen Namen wird die Datenquelle identifiziert. Verwenden Sie ihn zur Vereinfachung der Anmeldung am Datenbankrechner. Der Name der Datenquelle darf keine Sonderzeichen enthalten.
Description | Beschreibung der Datenquelle
Database Name | Name der Datenbankinstanz
Database Server | Name des Datenbankrechners, Wenn sich die Datenbankinstanz und die Anwendung auf dem gleichen Rechner befinden, braucht dieses Feld nicht ausgefüllt werden.

5. Wenn Sie für die neue Datenquelle Optionen angeben wollen, wählen Sie Settings.
Fahren Sie fort mit der Eingabe von Optionen für Datenquellen.
Wenn Sie keine Optionen angeben wollen, wählen Sie OK.
Ihre Eingaben werden beim Aufbau der nächsten ODBC-Verbindung wirksam.


Optionen für Datenquellen (Microsoft Windows) (MaxDB: ODBC-Handbuch)

Optionen für Datenquellen (Microsoft Windows)

Sie können verschiedene Optionen angeben, um die Funktion des MaxDB-ODBC-Treibers zu beeinflussen. Diese Optionen werden aktiv, wenn Sie sich das nächste Mal an den Datenbankrechner anmelden.

Folgende Optionen sind möglich:

Option

Anmerkungen

SQL Mode

Auswahl des datenbankspezifischen SQL-Modus

Isolation Level

Übersteuert den Vorschlagswert des MaxDB-ODBC-Treibers für die Sperrbetriebsart (Vorschlagswert ist Committed).

Trace On

Schaltet das Treiber-Protokoll ein oder aus
Wenn Sie diese Option gesetzt haben, legt der MaxDB-ODBC-Treiber ein Protokoll der Datenbanksitzung an. Darin werden alle SQL-Anweisungen gespeichert, die die Anwendung an das Datenbanksystem übermittelt.

 Bei eingeschaltetem Protokoll werden viele Dateioperationen ausgeführt. Darunter leidet die Ausführungsgeschwindigkeit der Anwendung. Sie sollten deshalb die Protokollierung nach der Analyse wieder ausschalten.

Dieses Treiber-Protokoll ist nicht identisch mit dem Treiber-Manager-Protokoll, welches Sie im ODBC Data Source Administrator unter der Registerkarte Tracing ein- und ausschalten können.


SQL-Modus (Microsoft Windows) (MaxDB: ODBC-Handbuch)

SQL-Modus (Microsoft Windows)

Verwendung

Wenn Sie die Option SQL Mode angeben, können Sie den MaxDB-ODBC-Treiber in einem anderen SQL-Modus verwenden. Er ist damit in der Lage, nicht nur die ODBC- und MaxDB-spezifische SQL-Syntax, sondern beispielsweise auch die von ORACLE oder DB2 zu verarbeiten.

Bei der Migration von ODBC-Anwendungen von anderen Datenbanksystemen kann Ihnen die Angabe dieser Option das Anpassen der SQL-Anweisungen erleichtern.

Die Beschreibung des MaxDB-spezifischen SQL-Modus INTERNAL finden Sie im Referenzhandbuch im Abschnitt SQL-Modus.

Vorgehensweise

...

1. Wählen Sie den ODBC Data Source Administrator mittels Start ® Settings ® Control Panel ® Administrative Tools ® Data Sources.

2. Wählen Sie Add.

3. Wählen Sie den MaxDB-ODBC-Treiber und anschließend Finish.

4. Geben Sie den Namen der Datenquelle, den Namen der Datenbankinstanz sowie den Namen des Datenbankrechners an. Wählen Sie Options.

5. Wählen Sie im Feld SQL Mode den gewünschten SQL-Modus.

6. Bestätigen Sie die Fenster bis zum Schließen des ODBC Data Source Administrator.

r.

Ergebnis

Wenn Sie sich das nächste Mal über diese Datenquelle an den Datenbankrechner anmelden, arbeitet der MaxDB-ODBC-Treiber im gewählten SQL-Modus.


Isolation-Level (Microsoft Windows) (MaxDB: ODBC-Handbuch)

Isolation-Level (Microsoft Windows)

Verwendung

MaxDB lässt konkurrierende Transaktionen auf Datenbankobjekten zu. Dazu wird ein Sperrkonzept benutzt, das zur Kapselung einzelner Transaktionen Sperren auf Zeilen und Tabellen anlegt. Eine wichtige Rolle dabei spielt die Sperrbetriebsart. Diese wird durch Festlegen eines Isolation-Level bestimmt.

Verwenden Sie die Option Isolation-Level, wenn Sie den Systemvorschlag für die Sperrbetriebsart (Committed) ändern wollen. Der so definierte Wert gilt dann für alle Verbindungen der Datenquelle.

Die eingestellte Sperrbetriebsart kann von der Anwendung mit Hilfe der Funktion SQLSetConnectAttr übersteuert und mit SQLGetConnectAttr abgefragt werden.

Übersicht über die möglichen Sperrbetriebsarten

 | Dirty Read | Non-repeatable Read | Phantom Read
Uncommitted | x | x | x
Committed |  | x | x
Repeatable |  |  | x
Serializable |  |  |

Die Sperrbetriebsart Uncommitted entspricht dem schwächsten Isolation-Level (0), Serializable entspricht dem stärksten Isolation-Level (4).

Vorgehensweise

...

1. Wählen Sie den ODBC Data Source Administrator mittels Start ® Settings ® Control Panel® Administrative Tools ® Data Sources.

2. Wählen Sie Add.

3. Wählen Sie den MaxDB-ODBC-Treiber und anschließend Finish.

4. Geben Sie den Namen der Datenquelle, den Namen der Datenbankinstanz sowie den Namen des Datenbankrechners an. Wählen Sie Options.

5. Wählen Sie im Feld Isolation Level die gewünschte Sperrbetriebsart.

6. Bestätigen Sie die Fenster bis zum Schließen des ODBC Data Source Administrator.

...

Wählen Sie den ODBC Data Source Administrator mittels Start ® Settings ® Control Panel ® Administrative Tools ® Data Sources.

Wählen Sie Add.

Wählen Sie den SAP DB-ODBC-Treiber und anschließend Finish.

Geben Sie den Namen der Datenquelle, den Namen der Datenbankinstanz sowie den Namen des Datenbankrechners an. Wählen Sie Options.

Wählen Sie im Feld Isolation Level die gewünschte Sperrbetriebsart.

Bestätigen Sie die Fenster bis zum Schließen des ODBC Data Source Administrator.

Ergebnis

Wenn Sie sich das nächste Mal über diese Datenquelle an den Datenbankrechner anmelden, arbeitet der MaxDB-ODBC-Treiber mit der gewählten Sperrbetriebsart.


Protokollieren der SQL-Anweisungen (Microsoft Windows) (MaxDB: ODBC-Handbuch)

Protokollieren der SQL-Anweisungen (Microsoft Windows)

Verwendung

Markieren Sie die Option Trace On für eine Datenquelle, wenn Sie die SQL-Anweisungen protokollieren wollen, die von der Anwendung an das Datenbanksystem übermittelt werden. Sie können diese Option für eine bereits vorhandene Datenquelle oder beim Anlegen einer neuen Datenquelle setzen.

Folgende Daten werden vermerkt:

· SQL-Anweisung

· Ausführungszeit

· Anfang und Ende einer Sitzung

· CONNECT-Parameter

· Ein- und Ausgabeparameter

Vorgehensweise

...

1. Wählen Sie den ODBC Data Source Administrator mittels Start ® Settings ®Control Panel ®Administrative Tools ®Data Sources.

2. Wählen Sie Add.

3. Wählen Sie den MaxDB-ODBC-Treiber und anschließend Finish.

4. Geben Sie den Namen der Datenquelle, den Namen der Datenbankinstanz sowie den Namen des Datenbankrechners an und wählen Sie Options.

5. Markieren Sie das Feld Trace On oder wählen Sie mittels Browse eine Datei aus, in die das Protokoll geschrieben werden soll.

6. Bestätigen Sie die Fenster bis zum Schließen des ODBC Data Source Administrator.

Ergebnis

Wenn Sie sich das nächste Mal über diese Datenquelle an den Datenbankrechner anmelden, protokolliert das System alle SQL-Anweisungen, die von der Anwendung an das Datenbanksystem übermittelt werden.


Installierte Dateien (Microsoft Windows) (MaxDB: ODBC-Handbuch)

Installierte Dateien (Microsoft Windows)

Überblick über die während der Installation angelegten Dateien und ihre Funktionen

Die Dateien sind relativ zum jeweiligen Installationsverzeichnis angegeben.
(Siehe auch: Installation unter Microsoft Windows)

Dateiname | Beschreibung
sql*.dll | Bibliotheken des MaxDB-ODBC-Treibers
odbcreg.exe | Programm für das Eintragen der Treiberinformationen in die Registry


Der MaxDB-ODBC-Treiber unter UNIX/Linux (MaxDB: ODBC-Handbuch)

Der MaxDB-ODBC-Treiber unter UNIX/Linux

Installation unter UNIX/Linux

Anlegen von Datenquellen unter UNIX/Linux


Installation unter UNIX/Linux (MaxDB: ODBC-Handbuch)

Installation unter UNIX/Linux

Sie haben verschiedene Möglichkeiten, den MaxDB-ODBC-Treiber zu installieren:

· als Teil des Installationsprofils Server

Die Software für den ODBC-Treiber wird bis Datenbankversion 7.3 unter dem <dependent_data_path> und ab Datenbankversion 7.4 unter dem <independent_data_path> abgelegt.

· als Teil des rpm-Pakets für die Call Interfaces (nur für Linux)

Das Installationsprogramm legt das Verzeichnis /opt/sdb/interfaces/odbc an und legt darin die Dateien des MaxDB-ODBC-Treibers ab.

· als einzelne Softwarekomponente ODBC (tgz-Pakets)

Sie können selbst wählen, unter welchem Pfad das tgz-Paket entpackt und die Software installiert werden soll.

Seit Version 7.4 ist die ODBC-Software außer im Installationsprofil Server auch in den Installationsprofilen Web Tools und DB Analyzer enthalten. Sie können das Installationsprofil insgesamt, also einschließlich ODBC-Software, installieren oder während des Installationsvorganges nur die darin enthaltene Softwarekomponente ODBC auswählen.

Sie können den MaxDB-ODBC-Treiber unter UNIX/Linux sowohl mit als auch ohne Treiber-Manager verwenden (Integration des MaxDB-ODBC-Treibers).


Integration des MaxDB-ODBC-Treibers (MaxDB: ODBC-Handbuch)

Integration des MaxDB-ODBC-Treibers

Verwendung

Sie können den MaxDB-ODBC-Treiber unter UNIX/Linux sowohl mit als auch ohne Treiber-Manager verwenden.

Durch die Eingabe von Linkbefehlen verbinden Sie die statische Bibliothek libsqlod.a oder die dynamische Bibliothek libsqlod.so mit der Anwendung. Stellen Sie beim dynamischen Linken sicher, dass die dynamische Bibliothek libsqlod.so zum Ausführungszeitpunkt vom System gefunden wird (siehe z. B. Idconfig, LD_LIBRARY_PATH)

Vorgehensweise

Verwendung mit Treiber-Manager

Die Verwendung eines Treiber-Manager, wie iODBC oder unixODBC, erleichtert den Austausch von ODBC-Treibern und ermöglicht die gleichzeitige Verwendung verschiedener ODBC-Treiber. In der jeweiligen Dokumentation ist beschrieben, wie Sie einen ODBC-Treiber in den Treiber-Manager integrieren.

Verwendung ohne Treiber-Manager

Wenn Sie keinen Treiber-Manager verwenden, müssen Sie die Daten des MaxDB-ODBC-Treibers mit Hilfe eines Editors manuell entweder in die Datei ~/.odbc.ini oder die Datei /etc/odbc.ini eintragen.

Ergebnis

Bei der Zuordnung von Datenquellen wird zuerst die für den jeweiligen Benutzer gültige Datei .odbc.ini in dessen Home-Verzeichnis herangezogen. Wenn dort keine passende Datenquelle gefunden wird, wertet das System die Datei /etc/odbc.ini aus.

Verwendung des ODBC-Treibers ohne Driver Manager

Kompilierbefehl:

Kompilieren der ODBC-Anwendung myapp.c mit passenden ODBC-Header-Dateien

cc –c myapp.c –I<ODBC_include>

Linkbefehl für statische Bibliothek:

Statisches Linken der Anwendung myapp

cc –o myapp myapp.o <ODBC_lib>/libsqlod.a

Linkbefehl für dynamische Bibliothek:

Dynamisches Linken der Anwendung myapp

cc –o myapp myapp.o –L<ODBC_lib> -lsqlod


Anlegen und Ändern von Datenquellen unter UNIX/Linux (MaxDB: ODBC-Handbuch)

Anlegen und Ändern von Datenquellen unter UNIX/Linux

Verwendung

Datenquellen werden unter den Betriebssystemen UNIX und Linux systemspezifisch im Verzeichnis /etc/ in der Datei odbc.ini oder benutzerspezifisch in der Datei ~/.odbc.ini gespeichert. Zum Anlegen von Datenquellen editieren Sie die gewünschte Datei entsprechend.

Vorgehensweise

...

1. Öffnen Sie einen Editor.

2. Öffnen Sie die gewünschte Datei.
Geben Sie gemäß folgender Struktur den Namen der Datenquelle, des Datenbankrechners und der Datenbankinstanz an.
Sie können außerdem Optionen für die Datenquellen angeben, wenn Sie die Vorschlagswerte des Systems ändern wollen.

[<data_source_name>]
ServerDB=<database_name>
ServerNode=<name_of_database_server>
SQLMode=<INTERNAL|DB2|ANSI|ORACLE>
IsolationLevel=<Uncommitted|Committed|Repeatable|Serializable>
TraceFileName=<trace_file_path_and_name>

Wenn Sie mehrere Datenquellen angeben wollen, wiederholen Sie die oben angegebene Gruppe von Angaben entsprechend der Anzahl der Datenquellen.

3. Sichern Sie Ihre Eingaben.
Sie werden beim Aufbau der nächsten ODBC-Verbindung wirksam.


Optionen für Datenquellen (UNIX/Linux) (MaxDB: ODBC-Handbuch)

Optionen für Datenquellen (UNIX/Linux)

Sie können verschiedene Optionen angeben, um die Funktion des MaxDB-ODBC-Treibers zu beeinflussen. Diese Optionen werden aktiv, wenn Sie sich das nächste Mal an den Datenbankrechner anmelden.

Folgende Optionen sind möglich:

Option

Anmerkung

SQLMode

Auswahl des datenbankspezifischen SQL-Modus (Vorschlagswert ist INTERNAL)

IsolationLevel

Übersteuert den Vorschlagswert des MaxDB-ODBC-Treibers für das Isolation-Level (Vorschlagswert ist Committed).

TraceFileName

Schaltet das Treiber-Protokoll zur Protokollierung der SQL-Anweisungen ein oder aus (Vorschlagswert: Es wird kein Protokoll geschrieben)

Wenn Sie diese Option gesetzt haben, legt der MaxDB-ODBC-Treiber, ein Protokoll der Datenbanksitzung an. Darin werden alle SQL-Anweisungen gespeichert, die die Anwendung an das Datenbanksystem schickt.

Bei eingeschaltetem Protokoll werden viele Dateioperationen ausgeführt. Darunter leidet die Ausführungsgeschwindigkeit der Anwendung. Sie sollten deshalb die Protokollierung nach der Analyse wieder ausschalten.


SQL-Modus (UNIX/Linux) (MaxDB: ODBC-Handbuch)

SQL-Modus (UNIX/Linux)

Verwendung

Durch das Ändern der Option SQLMode können Sie den MaxDB-ODBC-Treiber in einem anderen SQL-Modus verwenden. Er ist damit in der Lage, nicht nur die ODBC- und MaxDB-spezifische SQL-Syntax, sondern beispielsweise auch die von ORACLE oder DB2 zu verarbeiten.

Vorschlagswert des Systems ist INTERNAL (siehe auch: Referenzhandbuch, Abschnitt SQL-Modus).

Wenn Sie ODBC-Anwendungen von anderen Datenbanksystemen migrieren, kann Ihnen die Angabe dieser Option das Anpassen der SQL-Anweisungen erleichtern.

Syntax

SQLMode =
  INTERNAL
| DB2
| ANSI
| ORACLE

Die Beschreibung des MaxDB-spezifischen SQL-Modus INTERNAL finden Sie im Referenzhandbuch im Abschnitt SQL-Modus.

Vorgehensweise

Für die Änderung der Option SQLMode verfahren Sie, wie unter Anlegen und Ändern von Datenquellen unter UNIX/Linux beschrieben.

Der so definierte Wert gilt dann für alle Verbindungen der Datenquelle.


Isolation-Level (UNIX/Linux) (MaxDB: ODBC-Handbuch)

Isolation-Level (UNIX/Linux)

Verwendung

MaxDB lässt konkurrierende Transaktionen auf Datenbankobjekten zu. Dazu wird ein Sperrkonzept benutzt, das zur Kapselung einzelner Transaktionen Sperren auf Zeilen und Tabellen anlegt. Eine wichtige Rolle dabei spielt die Sperrebetriebsart. Diese wird durch Festlegen eines Isolation Level bestimmt.

Vorschlagswert des Systems für die Sperrbetriebsart ist Committed.

Die eingestellte Sperrebetriebsart kann von der Anwendung mit Hilfe der Funktion SQLSetConnectAttr übersteuert und mit SQLGetConnectAttr abgefragt werden.

Syntax

IsolationLevel =
  Uncommitted
| Committed
| Repeatable
| Serializable

Übersicht über die möglichen Sperrbetriebsarten

 | Dirty Read | Non-repeatable Read | Phantom Read
Uncommitted | x | x | x
Committed |  | x | x
Repeatable |  |  | x
Serializable |  |  |

Die Sperrbetriebsart Uncommitted entspricht dem schwächsten Isolation-Level (0), Serializable entspricht dem stärksten Isolation-Level (4).

Vorgehensweise

Für die Änderung der Option IsolationLevel verfahren Sie, wie unter Anlegen und Ändern von Datenquellen unter UNIX/Linux beschrieben.

Der so definierte Wert gilt dann für alle Verbindungen der Datenquelle.


Protokollieren der SQL-Anweisungen (UNIX/Linux) (MaxDB: ODBC-Handbuch)

Protokollieren der SQL-Anweisungen (UNIX/Linux)

Verwendung

Die von der Anwendung an die Datenbankinstanz übermittelten SQL-Anweisungen können in einer Datei protokolliert werden. Folgende Daten werden vermerkt:

· SQL-Anweisung

· Ausführungszeit

· Anfang und Ende einer Sitzung

· CONNECT-Parameter

· Ein- und Ausgabeparameter

Es kann jeweils nur eine Anwendung in eine bestimmte Protokolldatei schreiben.

Wenn diese Option nicht gesetzt ist, wird kein Protokoll geschrieben (Vorschlagswert des Systems).

Syntax

TraceFileName = <file_name>

<file_name> ::= [<path_name>/]file_identifier

Vorgehensweise

Für die Änderung der Option TraceFileName verfahren Sie, wie unter Anlegen und Ändern von Datenquellen unter UNIX/Linux beschrieben.


Installierte Dateien (UNIX/Linux) (MaxDB: ODBC-Handbuch)

Installierte Dateien (UNIX/Linux)

Überblick über die während der Installation angelegten Dateien und ihre Funktionen

Die Dateien sind relativ zum jeweiligen Installationsverzeichnis angegeben.
(Siehe auch: Installation unter UNIX/Linux)

Dateiname | Beschreibung
libsqlod.a, libsqlod.so | Bibliothek des MaxDB-ODBC-Treibers
incl/sql.h | ODBC-Treiber-Kopfdatei (Kern-API)
incl/sqlext.h | ODBC-Treiber-Kopfdatei (Level-1-API und Level-2-API)
incl/sqltypes.h | ODBC-Treiber-Kopfdatei (Datentypen)
incl/sqlucode.h | ODBC-Treiber-Kopfdatei (UNICODE)
incl/WINDOWS.H | Kopfdatei für die Unix/Linux -Plattformen
demo/eng/ODBC/sqlexamp.c | C-Beispielprogramm für eine ODBC-Anwendung
demo/eng/ODBC/sqladhoc.c | C-Beispielprogramm für eine ODBC-Anwendung
demo/eng/ODBC/Makefile | Make-Datei zum Generieren eines Demo-Programmes


JDBC-Handbuch

Einsatzmöglichkeiten

In dieser Dokumentation sind die Grundlagen und Besonderheiten des MaxDB-JDBC-Treibers beschrieben.

Der MaxDB-JDBC-Treiber ermöglicht den Zugriff auf das Datenbanksystem MaxDB. Datenabfragen werden mit der Structured Query Language (SQL) formuliert.

Die Erläuterungen gelten für Datenbanksysteme ab Version 7.4. Der MaxDB-JDBC-Treiber benötigt Java 1.2 oder höher.

Für das Verständnis dieser Dokumentation werden Grundkenntnisse der Programmiersprache Java sowie der JDBC-Spezifikation vorausgesetzt.

Sie können den MaxDB-JDBC-Treiber kostenlos unter der Adresse http://www.mysql.com/downloads herunterladen.

Allgemeine Informationen zum Datenbanksystem MaxDB finden Sie in der Dokumentation Datenbankverwaltung.

Einschränkungen

Diese Dokumentation beschreibt nicht die JDBC-Schnittstelle selbst. Informationen zur JDBC-Schnittstelle finden Sie unter http://java.sun.com/products/jdbc.


Eigenschaften des JDBC-Treibers (MaxDB: JDBC-Handbuch)

Eigenschaften des JDBC-Treibers

Der JDBC-Treiber des Datenbanksystems MaxDB erfüllt folgende Bedingungen:

· 100 Percent pure Java

· Unterstützt JDK 1.2 und höher

· Unterstützt JDBC 2.0 (mit JDK 1.2)

· Unterstützt JDBC 3.0 (mit JDK 1.4)

· Unterstützt die JDBC 2.0 Standard Extension API (DataSource, XADataSource and ConnectionPoolDataSource)

· Treiber des Typs 4, d.h. die Verbindung zum Datenbanksystem wird mit Hilfe des MaxDB-spezifischen Netzwerkprotokolls hergestellt


Installation des JDBC-Treibers (MaxDB: JDBC-Handbuch)

Installation des JDBC-Treibers

Verwendung

Sie installieren des MaxDB-JDBC-Treiber für den Zugriff auf das Datenbanksystem MaxDB. Zu diesem Zweck muss die Datei sapdbc.jar so abgelegt werden, dass sie von der Java VM gefunden werden kann.

Vorgehensweise

Sie haben drei verschiedene Möglichkeiten, dies zu gewährleisten:

· Erweitern Sie die Umgebungsvariable CLASSPATH um den vollständigen Pfad für die Datei sapdbc.jar. Machen Sie entsprechend Ihres Betriebssystems folgende Eingabe:

Unter Microsoft Windows:

set CLASSPATH=%CLASSPATH%;<independent_program_path>\runtime\jar\sapdbc.jar

Unter UNIX (sh):

CLASSPATH=$CLASSPATH:<independent_program_path>/runtime/jar/sapdbc.jar; export CLASSPATH

· Übergeben Sie den vollständige Pfad zu sapdbc.jar beim Aufruf der Java VM mit Hilfe der Option -cp:

Unter Microsoft Windows:

java -cp <independent_program_path>\runtime\jar\sapdbc.jar

Unter UNIX (sh):

java -cp <independent_program_path>/runtime/jar/sapdbc.jar

· Kopieren Sie die Datei sapdbc.jar in das Verzeichnis für Java-Bibliotheken. Für die Java VM von Sun geben Sie ein:
<java_runtime_dir>/lib/ext


Registrieren des JDBC-Treibers (MaxDB: JDBC-Handbuch)

Registrieren des JDBC-Treibers

Verwendung

Sie registrieren den MaxDB-JDBC-Treiber im JDBC-Treiber-Manager.

Vorgehensweise

Laden Sie die Klasse com.sap.dbtech.jdbc.DriverSapDB.

Syntax

Class.forName ("com.sap.dbtech.jdbc.DriverSapDB");

Wenn eine Ausnahme der Klasse java.lang.ClassNotFoundException ausgelöst wird, dann ist dies ein Indiz dafür, dass der JDBC-Treiber nicht korrekt installiert wurde.

Installieren Sie ihn erneut und verfahren Sie dabei wie unter Installation des JDBC-Treibers beschrieben.


Aufbau der Verbindung zur Datenbank (MaxDB: JDBC-Handbuch)

Aufbau der Verbindung zur Datenbank

Verwendung

Eine Verbindung zur Datenbankinstanz mittels JDBC erzeugen Sie mit Hilfe der Methode java.sql.DriverManager.getConnection.

Folgende Informationen sind dabei unbedingt erforderlich:

· Datenbankname

· Name des Datenbankbenutzers und sein Kennwort

· Name des Datenbankrechners, wenn es sich um einen Zugriff auf einen entfernten Rechner handelt.

Des weiteren können Sie Eigenschaften der Verbindung über zusätzliche Verbindungsoptionen definieren.

Vorgehensweise

Führen Sie die folgenden Schritte aus:

...

1. Definition der Verbindungs-URL, die die Namen der Datenbankinstanz und im Falle des Zugriffs auf einen entfernten Rechner, den des Datenbankrechners enthält

2. Angabe weiterer Verbindungsoptionen

3. Aufruf der Methode java.sql.DriverManager.getConnection


Definition der Verbindungs-URL (MaxDB: JDBC-Handbuch)

Definition der Verbindungs-URL

Verwendung

Sie verwenden die Methode java.sql.DriverManager.getConnection für den Aufbau der Verbindung zur Datenbankinstanz. Mit Hilfe des Parameters url in dieser Methode übergeben Sie den Namen des Datenbankrechners und der Datenbankinstanz.

Vorgehensweise

Definieren Sie die Verbindungs-URL unter Einhaltung des folgenden Formats:

jdbc:sapdb://<database_server>[:<port>]/<database_name>[<options>]

Parameter | Beschreibung
database_server | Name des Datenbankrechners
port | Socket-Port, zum dem eine Verbindung aufgebaut werden soll Der Port muss nur dann angegeben werden, wenn der X-Server mit einem Port konfiguriert wurde, der nicht Vorschlagswert des Systems ist.
database_name | Name der Datenbankinstanz
options | Verbindungsoptionen

Aufbau des Parameters url für eine Verbindung zur Datenbank mit dem Namen TST auf dem Rechner REMOTESERVER

jdbc:sapdb:// REMOTESERVER/TST

Aufbau des Parameters url für eine Verbindung zur Datenbank mit dem Namen TST auf dem entfernten Rechner REMOTESERVER über die Anschlussstelle 9876. (Dies setzt voraus, dass der X-Server für die Verwendung derselben Anschlussstelle konfiguriert wurde.)

jdbc:sapdb://servermachine:9876/TST

Aufbau des Parameters url für eine Verbindung zur Datenbank mit dem Namen TST auf dem lokalen Rechner:

jdbc:sapdb:///TST

Aufbau des Parameters url für eine Verbindung zur Datenbank mit dem Namen TST auf dem lokalen Rechner, wobei der SQL-Modus ORACLE und ein Kommando-Time-Out von 120 sec. definiert werden:

jdbc:sapdb:///TST?sqlmode=ORACLE&timeout=120:

Siehe auch:

Beispiele für den Aufbau der Verbindung zur Datenbank


Angabe weiterer Verbindungsoptionen (MaxDB: JDBC-Handbuch)

Angabe weiterer Verbindungsoptionen

Verwendung

Sie können die Eigenschaften einer Verbindung zur Datenbankinstanz über Verbindungsoptionen definieren.

Vorgehensweise

Die Verbindungs-Optionen werden üblicherweise über eine Instanz der Klasse java.util.Properties an die Methode java.sql.DriverManager.getConnection

übergeben.

Sie können Sie aber auch als Teil der Verbindungs-URL angeben. In diesem Fall müssen Sie sie im folgendem Format angeben:

<name>=<value>[&<name>=<value>...]

Sie können folgende Optionen definieren:

Option

Beschreibung

user

Name des Datenbankbenutzers

password

Benutzerkennwort

sqlmode

SQL-Modus
mögliche Werte sind ORACLE | INTERNAL
Der Systemvorschlag ist INTERNAL.

cachelimit

Cache-Limit der Verbindung

timeout

Kommando-Time-out der Verbindung in Sekunden

isolation

Isolation Level der Verbindung
Das Isolation-Level kann in der Java-Methode entweder als Zeichenkette oder als ganzzahliger Wert angegeben werden, wie er in der Klasse java.sql.Connection deklariert wird. Folgende Zeichenketten sind möglich: TRANSACTION_READ_UNCOMMITTED, TRANSACTION_READ_COMMITTED, TRANSACTION_REPEATABLE_READ, TRANSACTION_SERIALIZABLE

autocommit

AUTOCOMMIT-Modus

Mögliche Werte:
on: Nach jedem Kommando erfolgt ein COMMIT.
off: Transaktionen müssen über die Methoden commit () und rollback () gesteuert werden.

Der Systemvorschlagswert ist on.

reconnect

RECONNECT-Modus
Mögliche Werte:
on: Nach einem Kommando-Time-out wird vom System selbsttätig eine neue Verbindung aufgebaut.
off: Die Verbindung wird nicht selbsttätig wieder aufgebaut.

Der Systemvorschlagswert ist on.

trace

Name der Datei für den Debug-Output

tracesize

maximale Anzahl der Zeilen in der Datei für den Debug-Output Bei Überschreiten der maximalen Zeilenanzahl wird der Inhalt der Datei zyklisch überschrieben.

cache

Die von Objekten der Klasse java.sql.PreparedStatement genutzten internen Informationen werden innerhalb des Verbindungsobjekts gespeichert. Wenn weitere Objekte derselben Klasse mit der gleichen SQL-Anweisung erzeugt werden, dann stehen diese internen Informationen zur Verfügung, ohne dass ein Auftrag an die Datenbank gesendet werden muss.

Mögliche Werte:
all: alle SQL-Anweisungen werden gespeichert
oder eine Kombination aus s (für SELECT), i (für INSERT), u (für UPDATE), d (für DELETE): es werden nur SQL-Anweisungen dieser Art gespeichert

cache=iud

Es werden nur INSERT-, UPDATE- und DELETE-Anweisungen gespeichert.

unicode

Benutzername, Kennwort und SQL-Anweisungen werden in UNICODE an die Datenbank übermittelt.

Siehe auch:

Beispiele für den Aufbau der Verbindung zur Datenbank


Aufruf der Methode java.sql.DriverManager.getConnection (MaxDB: JDBC-Handbuch)

Aufruf der Methode java.sql.DriverManager.getConnection

Verwendung

Sie können die Methode java.sql.DriverManager.getConnection mit unterschiedlichen Parametern aufrufen. Daraus ergeben sich drei verschiedene Deklarationen für diese Methode.

Vorgehensweisen

· Die Verbindungsoptionen werden als Teil der Verbindungs-URL übergeben:
getConnection (String url, String user, String password)

· Die Verbindungsoptionen sowie der Name des Datenbankbenutzers und sein Kennwort werden als Teil der Verbindungs-URL übergeben:
getConnection (String url)

· Die Verbindungsoptionen sowie der Name des Datenbankbenutzers und sein Kennwort werden in einem Objekt der Klasse java.util.Properties übergeben:
getConnection (String url, java.util.Properties info)

Siehe auch:

Beispiele für den Aufbau der Verbindung zur Datenbank


Beispiele für den Aufbau der Verbindung zur Datenbank (MaxDB: JDBC-Handbuch)

Beispiele für den Aufbau der Verbindung zur Datenbank

Für die nachfolgend aufgeführten Beispiele werden folgende Verbindungsdaten verwendet:

String username = "TESTUSER";

String password = "TEST";

String database_name = "TST";

String server_name = "REMOTESERVER";

String sqlmode = "ORACLE";

Beispiel 1:

Verwendung von getConnection (String url, String user, String password)

Die Verbindungsoptionen werden als Teil der Verbindungs-URL übergeben.

...

1. Aufbau der Verbindungs-URL:
String url = "jdbc:sapdb://" + server_name + "/" + database_name + "?sqlmode=" + sqlmode;

Inhalt der Variablen url:
"jdbc:sapdb://REMOTESERVER/TST?sqlmode=ORACLE"

2. Aufruf der Methode:
java.sql.Connection conn = java.sql.DriverManager.getConnection (url, username, password);

Beispiel 2:

Verwendung von getConnection (String url)

Die Verbindungsoptionen sowie der Name des Datenbankbenutzers und sein Kennwort werden als Teil der Verbindungs-URL übergeben.

...

1. Aufbau der Verbindungs-URL:

String url = "jdbc:sapdb://" + server_name + "/" + database_name + "?sqlmode=" + sqlmode

+ "&user=" + username + "&password=" + password;

Inhalt der Variablen url:
 "dbc:sapdb://REMOTESERVER"/TST?sqlmode=ORACLE&user=TESTUSER&password=TEST"

2. Aufruf der Methode:

java.sql.Connection conn = java.sql.DriverManager.getConnection (url);

Beispiel 3:

Verwendung von getConnection(String url, Properties info)

Die Verbindungsoptionen sowie der Name des Datenbankbenutzers und sein Kennwort werden in einem Objekt der Klasse java.util.Properties übergeben.

...

1. Aufbau der Verbindungs-URL:

String url = "jdbc:sapdb://" + server_name + "/" + database_name;

Inhalt der Verbindungs-URL:

" jdbc:sapdb:// REMOTESERVER /TST "

       2.      Erzeugen eines Objekts der Klasse java.util.Properties :

java.util.Properties properties = new java.util.Properties ();

3. Definieren der Verbindungsoptionen:

properties.setProperty ("user", username);

properties.setProperty ("password", password);

properties.setProperty ("sqlmode", sqlmode);

4. Aufruf der Methode:

java.sql.Connection conn = java.sql.DriverManager.getConnection (url, properties);


Ausnahmen (MaxDB: JDBC-Handbuch)

Ausnahmen

In Fehlersituationen können Ausnahmen folgender Klassen ausgelöst werden:

· com.sap.dbtech.jdbc.exceptions.DatabaseException

Fehler bei der Ausführung einer SQL-Anweisung

· com.sap.dbtech.jdbc.exceptions.PrepareException

Fehler bei der Vorbereitung einer SQL-Anweisung

· com.sap.dbtech.jdbc.translators.ConversionExceptionSapDB

Konvertierung zwischen Java- und SQL-Datentypen ist fehlgeschlagen

· com.sap.dbtech.jdbc.exceptions.JDBCDriverException

Der JDBC-Treiber hat einen Fehler festgestellt

· com.sap.dbtech.jdbc.exceptions.InvalidArgumentValue

Übergabe eines ungültigen Parameterwertes an eine Methode

· com.sap.dbtech.jdbc.exceptions.InvalidColumnException

Zugriff auf eine ungültige Spalte eines Objekts der Klasse ResultSet

· com.sap.dbtech.jdbc.exceptions.NotSupportedException

Feature wird vom aktuellen Treiber nicht unterstützt

· com.sap.dbtech.jdbc.exceptions.ObjectIsClosedException

Zugriff auf ein Objekt der Klassen Connection, Statement oder ResultSetnach dem Aufruf der Methode close für dieses Objekt

· com.sap.dbtech.jdbc.exceptions.InternalJDBCError

Fehler in den internen Daten des JDBC-Treibers

Alle diese Klassen sind Unterklassen von java.sql.SQLException.

Sie müssen also in einer catch-Anweisung nicht explizit die oben genannten Ausnahmen sondern nur Ausnahmen der Klasse java.sql.SQLException abfragen, wenn Sie JDBC-Code schreiben wollen, der vom Datenbankprodukt unabhängig ist.


Beispiel für eine Datenbankabfrage (MaxDB: JDBC-Handbuch)

Beispiel für eine Datenbankabfrage

Dem folgenden Beispiel können Sie entnehmen, wie Sie eine Verbindung zur Datenbankinstanz aufbauen und anschließend einfache Datenbankabfragen ausführen. Die im Einzelnen durchgeführten Schritte sind in den Kommentaren des Beispiels aufgeführt.

import java.sql.*;

public class HelloSapDB {

    public static void main (String [] args)

            throws ClassNotFoundException, SQLException

    {

        String dbm_user = "TESTUSER";

        String password = "TEST";

        String database_server = "LOCALSERVER";

        String database_name = "TST";

        /*

         * Registrieren des JDBC-Treibers

         */

        Class.forName ("com.sap.dbtech.jdbc.DriverSapDB");

        /*

         * Definition der Verbindungs-URL

         */

        String url = "jdbc:sapdb://" + database_server + "/" + database_ name;

        /*

         * Aufruf der Methode java.sql.DriverManager.getConnection

         */

        Connection connection = DriverManager.getConnection (url, dbm_user, password);

        /*

         * Ausführen einer Datenbankabfrage

         */

        Statement stmt = connection.createStatement ();

        ResultSet resultSet = stmt.executeQuery ("SELECT 'hello world' FROM dual");

        resultSet.next ();

        String hello = resultSet.getString (1);

        System.out.println (hello);

        /*

         * Schließen aller Objekte

         */

        resultSet.close ();

        stmt.close ();

        connection.close ()

    }

}


Datenbankverwaltung mit Java (MaxDB: JDBC-Handbuch)

Datenbankverwaltung mit Java

Verwendung

Sie können Datenbanken mit Hilfe von Java-Programmen verwalten.

Zu diesem Zweck steht Ihnen im Java-Package com.sap.dbtech.powertoys die Java-Klasse com.sap.dbtech.powertoys.DBM zur Verfügung. Das Java-Package ist Teil der Software des JDBC-Treibers.

Mit Hilfe der Java-Klasse com.sap.dbtech.powertoys.DBM stellen Sie eine Verbindung zum Programm Database Manager her und übermitteln innerhalb dieser Sitzung ein oder mehrere DBM-Kommandos an den Database Manager. Im Ergebnis erhalten Sie die Rückgabewerte der Kommandos. Anschließend beenden Sie die Verbindung zum Database Manager.

Die Rückgabewerte der Kommandos stehen Ihnen in Form von Java-Variablen zu Verfügung, so dass sie leicht aufbereitet und formatiert werden können. In Fehlersituationen werden Ausnahmen erzeugt, die Sie abfangen und behandeln können.

Siehe auch:

Aufbau der Verbindung zum Database Manager mit Java

Ausführen von DBM-Kommandos mit Java

Beenden der Verbindung zum Database Manager

Fehlerbehandlung

Beispiel für das Abfragen des Betriebszustandes einer Datenbank


Aufbau der Verbindung zum Database Manager mit Java (MaxDB: JDBC-Handbuch)

Aufbau der Verbindung zum Database Manager mit Java

Verwendung

Für die Datenbankverwaltung mit Java müssen Sie sich zunächst an die richtige Version des Programms DBM-Server des Database Manager anmelden. Dazu stehen Ihnen zwei verschiedene Java-Methoden zur Verfügung. Welche Methode Sie verwenden müssen, ist davon abhängig, ob Sie eine vorhandene Datenbankinstanz verwalten oder eine neue Datenbankinstanz anlegen wollen.

Wenn Sie eine vorhandene Datenbankinstanz verwalten wollen, verfahren Sie, wie im Abschnitt Verbindung zum DBM-Server einer vorhandenen Datenbankinstanz beschrieben.

Wenn Sie eine neue Datenbankinstanz anlegen wollen, verfahren Sie, wie im Abschnitt Verbindung zum DBM-Server einer bestimmten Softwareversion beschrieben.


Verbindung zum DBM-Server einer vorhandenen Datenbankinstanz (MaxDB: JDBC-Handbuch)

Verbindung zum DBM-Server einer vorhandenen Datenbankinstanz

Verwendung

Um eine vorhandene Datenbankinstanz mit Java verwalten zu können, müssen Sie mit jenem DBM-Server eine Verbindung aufbauen, der der Softwareversion der betreffenden Datenbankinstanz entspricht. Sie verwenden dazu die Java-Methode DBM.dbDBM.

Diese Methode entspricht dem Eröffnen einer DBM-Server-Sitzung
(dbmcli -n <database_server> -d <database_name>).

Siehe auch: Aufbau der Verbindung zum Database Manager

Für die anschließende Ausführung von DBM-Kommandos verfahren Sie, wie im Abschnitt Ausführen von DBM-Kommandos mit Java beschrieben.

Syntax

import com.sap.dbtech.powertoys.*;

…

<lvalue> = DBM.dbDBM (<database_server>, <database_name>);

Parameter | Beschreibung
lvalue | Ausdruck der Klasse DBM (z. B. eine Variable), dem ein Wert zugewiesen werden kann
database_server | Name des Datenbankrechners
database_name | Name der Datenbankinstanz

Siehe auch:

Beispiel für das Anzeigen des Betriebszustandes einer Datenbank


Verbindung zum DBM-Server einer bestimmten Softwareversion (MaxDB: JDBC-Handbuch)

Verbindung zum DBM-Server einer bestimmten Softwareversion

Verwendung

Um eine neue Datenbankinstanz anzulegen, müssen Sie eine Verbindung zwischen dem Database Manager und dem DBM-Server jener Softwareversion aufbauen, für die sie eine neue Datenbankinstanz anlegen wollen. Sie verwenden dazu die Java-Methode DBM.dbrootDBM.

Dieses Vorgehen entspricht der Anmeldung an den Database Manager mit der Option –R.
( dbmcli -n <database_server> -R <dependent_path>).

Mit der Eingabe dbmcli inst_enum auf der Kommandozeile können Sie sich die Pfade und Versionsnummern der auf Ihrem Rechner installierten Softwareversionen anzeigen lassen.

Siehe auch: Aufbau der Verbindung zum Database Manager

Voraussetzungen

Für die anschließende Ausführung des DBM-Kommandos zum Anlegen einer Datenbankinstanz müssen Sie die Rechte eines Betriebssystembenutzers für den Rechner haben, auf dem die Datenbankinstanz angelegt werden soll.

Für das Anlegen einer Datenbankinstanz auf einem entfernten Rechner unter Microsoft Windows müssen Sie zusätzlich Administrationsrechte für den Datenbankrechner haben sowie das Recht log on as batch job. Hinweise zur Verwaltung von Betriebssystembenutzern finden Sie in Ihrer Betriebssystemdokumentation.

Syntax

import com.sap.dbtech.powertoys.*;

…

<lvalue> = DBM.dbrootDBM (<database_server>, <dependent_path>);

Parameter | Beschreibung
lvalue | Ausdruck der Klasse DBM (z. B. eine Variable), dem ein Wert zugewiesen werden kann
database_server | Name des Datenbankrechners Wenn Sie die Verbindung zu einem DBM-Server auf dem lokalen Rechner aufbauen wollen, dann können Sie dafür auch den Wert null angeben.
dependent_path | Installationspfad der versionsabhängigen Datenbanksoftware Wenn Sie dafür den Wert null angeben, dann wird die Verbindung zum DBM-Server mit der höchsten Versionsnummer aufgebaut.


Ausführen von DBM-Kommandos mit Java (MaxDB: JDBC-Handbuch)

Ausführen von DBM-Kommandos mit Java

Verwendung

Mit Hilfe der Java-Methode cmd können Sie DBM-Kommandos ausführen. Der Parameter cmdString muss ein gültiges DBM-Kommando enthalten.

Der Rückgabewert der Methode enthält den Rückgabewert des DBM-Kommandos.

Siehe auch:

Aufbau der Verbindung zum Database Manager mit Java

Voraussetzungen

Den überwiegenden Teil der DBM-Kommandos können Sie nur dann ausführen, wenn Sie als DBM-Benutzer der Datenbankinstanz angemeldet sind, die Sie verwalten wollen (Anmelden an den Database Manager).

Hinweise dazu, ob die Anmeldung für die Ausführung eines DBM-Kommandos erforderlich ist, finden Sie in den jeweiligen Kommandobeschreibungen in der Dokumentation Database Manager CLI.

Definition der Methode cmd

public String cmd (String cmdString)

throws

com.sap.dbtech.rte.comm .RTEException,

com.sap.dbtech.powertoys.DBMException;

Beispiel

Ausführen des DBM-Kommandos user_logon (Anmelden an den Database Manager) für den Benutzer DBMUSER mit dem Kennwort DBM mit Hilfe der Methode cmd:

String result = session.cmd ("user_logon DBMUSER,DBM");

Siehe auch:

Beispiel für das Anzeigen des Betriebszustandes einer Datenbank


Beenden der Verbindung zum Database Manager (MaxDB: JDBC-Handbuch)

Beenden der Verbindung zum Database Manager

Verwendung

Sie beenden die Verbindung zum Database Manager durch den Aufruf der Methode release. Diese Methode wird implizit aufgerufen, wenn ein Objekt der Klasse DBM durch den Garbage-Collector gelöscht wird.

Syntax

<object_of_class_DBM>.release ();

Beispiel

session.release ();

Siehe auch:

Beispiel für das Anzeigen des Betriebszustandes einer Datenbank


Fehlerbehandlung (MaxDB: JDBC-Handbuch)

Fehlerbehandlung

Verwendung

Wenn das Programm Database Manager einen Fehler meldet, dann wird eine Ausnahme der Klasse com.sap.dbtech.powertoys.DBMExceptionausgelöst.

Wenn der Aufbau der Verbindung zum Database Manager scheitert oder eine bestehende Verbindung abgebrochen wird, dann wird eine Ausnahme der Klasse com.sap.dbtech.rte.comm.RTEException ausgelöst.

Beispiel

Ausführen des DBM-Kommandos zum Anzeigen des Betriebszustandes der Datenbankinstanz mit Hilfe der Methode cmd. Bei Auftreten einer Ausnahme der Klasse RTEException oder DBMException wird eine Fehlermeldung ausgegeben.

try {

String result = session.cmd ("db_state");

}

catch (RTEException RTEExc) {

System.out.println ("connection broken: " + rteExc.toString ());

}

catch (DBMException DBMExc) {

System.out.println ("command failed: " + dbmExc.toString ());

}


Beispiel für das Anzeigen des Betriebszustandes einer Datenbank (MaxDB: JDBC-Handbuch)

Beispiel für das Anzeigen des Betriebszustandes einer Datenbank

Dem folgenden Beispiel können Sie entnehmen, wie Sie über die Java-Schnittstelle eine Verbindung zur Datenbankinstanz aufbauen, dann das DBM-Kommando zum Anzeigen des Betriebszustandes der Datenbankinstanz ausführen und anschließend die Verbindung zum Database Manager wieder beenden. Die im Einzelnen durchgeführten Schritte sind in den Kommentaren des Beispiels aufgeführt.

import com.sap.dbtech.powertoys.*;

import com.sap.dbtech.rte.comm.RTEException;

public class DBMDemo

{

    public

    DBMDemo ()

    {

    }

    public static void main (String [] args)

    {

        DBM session;

        try {

            // Aufbau der Verbindung zum Database Manager:

// Verbindung zum DBM-Server einer vorhandenen Datenbankinstanz

            session = DBM.dbDBM (null, "TST");

        }

        catch (RTEException rteExc) {

            System.out.println ("connect failed: " + rteExc.toString ());

            return;

        }

        try {

            // Ausführen von DBM-Kommandos:

// Anmelden als DBM-Benutzer

            session.cmd ("user_logon DBMUSER,DBM");

            // Anzeigen des Betriebszustandes der Datenbankinstanz

            String result = session.cmd ("db_state");

            System.out.println (result);

        }

        catch (RTEException rteExc) {

            System.out.println ("connection broken: " + rteExc.toString ());

        }

        catch (DBMException dbmExc) {

            System.out.println ("command failed: " + dbmExc.toString ());

        }

        finally {

            try {

                // Beenden der Verbindung zum Database Manager

                session.release ();

            }

            catch (RTEException rteExc) {

                // ignore

            }

        }

    }

}


Laden und Entladen von Daten mit Java (MaxDB: JDBC-Handbuch)

Laden und Entladen von Daten mit Java

Verwendung

Sie können das Laden und Entladen von Daten mit Hilfe des Programms Loader über Java-Programme steuern.

Zu diesem Zweck steht Ihnen im Java-Package com.sap.dbtech.powertoys die Java-Klasse com.sap.dbtech.powertoys.Loader zur Verfügung. Das Java-Package ist Teil der Software des JDBC-Treibers.

Mit Hilfe der Java-Klasse com.sap.dbtech.powertoys.Loader übermitteln Sie Loader-Kommandos und SQL-Anweisungen an das Programm Loader. Im Ergebnis erhalten Sie die Rückgabewerte der Loader-Kommandos und SQL-Anweisungen. Anschließend beenden Sie die Verbindung zum Loader.

Die Rückgabewerte der Kommandos und Anweisungen stehen Ihnen in Java-Variablen zu Verfügung, so dass sie leicht aufbereitet und formatiert werden können. In Fehlersituationen werden Ausnahmen erzeugt, die Sie abfangen und behandeln können.

Siehe auch:

Aufbau der Verbindung zum Loader mit Java

Ausführen von Loader-Kommandos mit Java

Beenden der Verbindung zum Loader

Fehlerbehandlung

Beispiel für das Anlegen einer Tabelle mit Java


Aufbau der Verbindung zum Loader mit Java (MaxDB: JDBC-Handbuch)

Aufbau der Verbindung zum Loader mit Java

Verwendung

Für das Laden und Entladen von Daten mit Java rufen Sie zunächst das Programm Loader-Server auf. Um eine Verbindung zur Datenbank herzustellen, müssen Sie anschließend noch die Loader-Kommandos USE SERVERDB und USE USER ausführen.

Sie können das Programm Loader-Server auch auf einem entfernten Rechner aufrufen. Wenn Sie den Konstruktor Loader (<loader_server_name>) aufrufen, dann wird das Programm Loader-Server auf dem entfernten Rechner gestartet.
Wenn Sie in dieser Verbindung innerhalb von Loader-Kommandos Dateinamen angeben, dann beziehen sich diese auf das Dateisystem des entfernten Server.

Anschließend können Sie beliebige Loader-Kommandos und SQL-Anweisungen an den Loader übermitteln.

Syntax

import com.sap.dbtech.powertoys.*;

…

<lvalue> = new Loader ();

<lvalue> = new Loader (<loader_server_name>);

Parameter | Beschreibung
lvalue | Ausdruck der Klasse Loader (z. B. eine Variable), dem ein Wert zugewiesen werden kann
loader_server_name | Name des Rechners, auf dem das Programm Loader-Server aufgerufen werden soll

Siehe auch:

Beispiel für das Anlegen einer Tabelle mit Java


Ausführen von Loader-Kommandos und SQL-Anweisungen mit Java (MaxDB: JDBC-Handbuch)

Ausführen von Loader-Kommandos und SQL-Anweisungen mit Java

Verwendung

Mit Hilfe der Java-Methode cmd können Sie Loader-Kommandos und vom Loader unterstützte SQL-Anweisungen ausführen. Der Parameter cmdString muss ein gültiges Loader-Kommando oder eine gültige SQL-Anweisung enthalten.

Der Rückgabewert der Methode enthält den Rückgabewert des Loader-Kommandos oder der SQL-Anweisung.

Siehe auch:

Aufbau der Verbindung zum Loader mit Java

Voraussetzungen

Die Kommandos und SQL-Anweisungen zum Laden und Entladen können nur nach einem erfolgreichen Aufbau einer Datenbanksitzung ausgeführt werden. Eventuell notwendige Voraussetzungen, die für die Ausführung von Loader-Kommandos oder SQL-Anweisungen erfüllt sein müssen, finden Sie in den entsprechenden Beschreibungen der Kommandos und Anweisungen in der Dokumentation Loader.

Definition der Methode cmd

public String cmd (String cmdString)

throws

com.sap.dbtech.rte.comm .RTEException,

com.sap.dbtech.powertoys.LoaderException;

Beispiel

Ausführen der CREATE TABLE-Anweisung zum Anlegen der Tabelle LOADERTEST mit Hilfe der Methode cmd:

String result = session.cmd ("CREATE TABLE LOADERTEST ("+ "TESTCOL VARCHAR(20) )");

System.out.println (result);

Siehe auch:

Beispiel für das Anlegen einer Tabelle mit Java (vollständige Vorgehensweise)


Beenden der Verbindung zum Loader (MaxDB: JDBC-Handbuch)

Beenden der Verbindung zum Loader

Verwendung

Sie beenden die Verbindung zum Programm Loader-Server durch den Aufruf der Methode release. Diese Methode wird implizit aufgerufen, wenn ein Objekt der Klasse Loader durch den Garbage-Collector gelöscht wird.

Syntax

<object_of_class_Loader>.release ();

Beispiel

session.release ();

Siehe auch:

Beispiel für das Anlegen einer Tabelle mit Java


Fehlerbehandlung (MaxDB: JDBC-Handbuch)

Fehlerbehandlung

Verwendung

Wenn das Programm Loader einen Fehler meldet, dann wird eine Ausnahme der Klasse com.sap.dbtech.powertoys.LoaderException ausgelöst.

Wenn der Aufbau der Verbindung zum Loader scheitert oder eine bestehende Verbindung abgebrochen wird, dann wird eine Ausnahme der Klasse com.sap.dbtech.rte.comm.RTEException ausgelöst.

Beispiel

Ausführen des SET-Kommandos mit Hilfe von Java
Bei Auftreten einer Ausnahme der KlasseRTEException oder LoaderException wird eine Fehlermeldung ausgegeben.

try {

String result = session.cmd ("SET MAXERRORCOUNT 0");

}

catch (RTEException rteExc) {

System.out.println ("connection broken: " + rteExc.toString ());

}

catch (LoaderException loaderExc) {

System.out.println ("command failed: " + loaderExc.toString ());

}


Beispiel für das Anlegen einer Tabelle mit Java (MaxDB: JDBC-Handbuch)

Beispiel für das Anlegen einer Tabelle mit Java

Dem folgenden Beispiel können Sie entnehmen, wie Sie über die Java-Schnittstelle des Datenbanksystems eine Verbindung zur Datenbankinstanz aufbauen, dann mit Hilfe einer vom Loader unterstützten SQL-Anweisung eine Tabelle anlegen und anschließend die Verbindung zum Loader wieder beenden. Die im Einzelnen durchgeführten Schritte sind in den Kommentaren des Beispiels aufgeführt.

import com.sap.dbtech.powertoys.*;

import com.sap.dbtech.rte.comm.RTEException;

public class LoaderDemo

{

    public

    LoaderDemo ()

    {

    }

    public static void main (String [] args)

    {

        Loader session;

        try {

            // Aufbau einer Verbindung zum Loader

            session = Loader.dbLoader (null, null);

        }

        catch (RTEException rteExc) {

            System.out.println ("connect failed: " + rteExc.toString ());

            return;

        }

        try {

              // Ausführen von Loader-Kommandos:

// Anmelden an die Datenbankinstanz

            session.cmd ("use serverdb TST");

            session.cmd ("use user TESTUSER TEST");

              // Anlegen einer Tabelle mittels Java

            String result = session.cmd ("CREATE TABLE LOADERTEST ("

                + "TESTCOL VARCHAR (20) )");

            System.out.println (result);

        }

        catch (RTEException rteExc) {

            System.out.println ("connection broken: " + rteExc.toString ());

        }

        catch (LoaderException LoaderExc) {

            System.out.println ("command failed: " + LoaderExc.toString ());

        }

        finally {

try {

              // Beenden der Verbindung zum Loader

                session.release ();

            }

            catch (RTEException rteExc) {

                // ignore

            }

        }

    }

}


Perl-Handbuch

Dieses Dokument beschreibt die Programmierschnittstellen des Datenbanksystems MaxDB für die Programmierung von Datenbankanwendungen mit Hilfe von Perl-Skripten:

Programmierschnittstelle | Verfügbares Modul | Verwendung
SQL | DBD::ODBC | frei verfügbares Modul, ermöglicht SQL-Anfragen an die Datenbank aus einem Programm heraus und das Verarbeiten der Ergebnisse, verwendbar mit dem MaxDB-ODBC-Treiber unter UNIX und Microsoft Windows, Siehe auch: http://search.cpan.org/dist/DBD-ODBC/
Database Manager | SAP::DBTech::dbm | Automatisieren der Aktionen zum Anlegen neuer und Verwalten bestehender Datenbankinstanzen durch Programme
Loader | SAP::DBTech::loader | Automatisieren des Ladens und Entladens von Datenbank-Schemata und Daten durch Programme

Die Erläuterungen gelten für Datenbanksysteme ab Version 7.4.

Für das Verständnis dieser Dokumentation werden Grundkenntnisse der Programmiersprache Perl vorausgesetzt.

Sie können die Perl-Module SAP::DBTech::dbm und SAP::DBTech::loaderunter der Adresse http://www.mysql.com/downloads/maxdb.html kostenlos herunterladen.

Für andere Programmiersprachen existieren zumeist Bibliotheken, die den Zugriff auf die Datenbank über den ODBC-Treiber von MaxDB erlauben.

Allgemeine Informationen zum Datenbanksystem MaxDB sowie den Datenbankwerkzeugen Database Manager und Loader finden Sie in der Dokumentation Datenbankverwaltung.


Modul SAP::DBTech::dbm (MaxDB: Perl-Handbuch)

Modul SAP::DBTech::dbm

Syntax

use SAP::DBTech::dbm;

Verwendung

SAP::DBTech::dbm ist ein für das MaxDB-Datenbanksystem entwickeltes Modul in der Programmiersprache Perl. Sie können es in Perl-Skripten verwenden, um neue Datenbankinstanzen anzulegen und bestehende Datenbankinstanzen zu verwalten.

Das Modul SAP::DBTech::dbm ermöglicht die Ausführung aller DBM-Kommandos. Anders als bei der Ausführung dieser Kommandos mit Hilfe des Datenbankverwaltungswerkzeugs Database Manager CLI können Sie auftretende Fehler behandeln und die DBM-Kommandos dynamisch zur Laufzeit erzeugen.

Inhalt des Moduls

Klasse DBM

Siehe auch:

Beispiele für das Modul SAP::DBTech::dbm

Fehlerbehandlung für das Modul SAP::DBTech::dbm


Klasse DBM (MaxDB: Perl-Handbuch)

Klasse DBM

Verwendung

DBM ist eine Klasse des Moduls SAP::DBTech::dbm. Eine Instanz dieser Klasse entspricht einer Verbindung zu einem DBM-Server.

Inhalt der Klasse

Die Klasse DBM enthält folgende Methoden:

cmd (cmd_string)

rawCmd (cmd_string)

release ()

Verwendung des Constructors

$session = new DBM ($database_server, $database_name, $dependent_path, $user_info);

Parameter | Beschreibung
$database_server | Netzwerkname des Rechners, mit dem die Verbindung aufgebaut werden soll, Vorschlagswert des Systems ist der lokale Rechner
$database_name | Name der Datenbankinstanz, zu der eine Verbindung hergestellt werden soll, Die Angabe ist optional.
$dependent_path | Installationspfad der Datenbanksoftware (Siehe auch: Variablen) Die Angabe ist optional.
$user_info | ein String der Form <username>,<password> Der angegebene Benutzer meldet sich an das Programm DBM-Server an. Die Angabe ist optional.

Wenn es auf Ihrem Rechner mehrere Installationen der Datenbanksoftware gibt, können Sie über die Angaben $database_name und $dependent_path steuern, welche Version des Programms DBM-Server gestartet wird:

Fall 1 – Sie wollen eine neue Datenbankinstanz mit der neuesten Softwareinstallation anlegen oder sich Informationen über die bestehenden Datenbankinstanzen und Softwareversionen anzeigen lassen:

Geben Sie weder $database_name und $dependent_path an.

Das System startet so den DBM-Server der Softwareinstallation mit der höchsten Versionsnummer.

Fall 2 – Sie wollen eine bestimmte Datenbankinstanz verwalten.

Geben Sie den $database_name an, jedoch nicht den $dependent_path.

Das System startet so den zur angegebenen Datenbankinstanz gehörigen DBM-Server.

Fall 3 – Sie wollen eine neue Datenbankinstanz einer bestimmten Softwareversion anlegen

Geben Sie den $dependent_path an, jedoch keinen $database_name.

Das System startet so den DBM-Server der angegebenen Softwareinstallation.

Erzeugen eines Verbindungsobjekts $session zur Datenbank TST auf dem aktuellen Rechner:

$session = new DBM ('', 'TST', '', 'DBM,DBM');


Methode cmd (MaxDB: Perl-Handbuch)

Methode cmd

Verwendung

$result = $session->cmd ($cmd_string);

cmd ist eine Methode der Klasse DBM. Sie senden damit das unter $cmd_string angegebene DBM-Kommando an das Programm DBM-Server.

Ergebnis

Es wird das Ergebnis des DBM-Kommandos zurückgegeben.

Wenn das Programm DBM-Server einen Fehler zurückgibt, dann wird eine Ausnahme der Klasse DBMServError ausgelöst.

Angabe eines gültigen DBM-Kommandos

$result = session->cmd ('db_state');
print "$result\n";

Ausgabe:

State

OFFLINE

Angabe eines ungültigen DBM-Kommandos

$result = $session->cmd ('invalid command');
print "$result\n";

Ausgabe:

Error DBM Server: -24977 ERR_COMMAND: unknown command "invalid" at /opt/sapdb/misc/SAP/DBTech/dbm.pm line 89.

(Siehe auch: Methode rawCmd)


Methode rawCmd (MaxDB: Perl-Handbuch)

Methode rawCmd

Verwendung

$result = $session->rawCmd ($cmd_string);

rawCmd ist eine Methode der Klasse DBM. Sie senden damit das unter $cmd_string angegebene DBM-Kommando an das Programm DBM-Server.

Fehler des DBM-Server lösen keine Ausnahme aus. Der Rückgabewert beginnt mit OK, wenn die Ausführung des Kommandos erfolgreich war, und mit ERR, wenn das Kommando fehlgeschlagen ist.

(Siehe auch: Methode cmd)

Ergebnis

Es wird das Ergebnis des DBM-Kommandos zurückgegeben.

Angabe eines gültigen DBM-Kommandos

$result = session->rawCmd ('db_state');
print "$result\n";

Ausgabe:

OK

State

OFFLINE

Angabe eines ungültigen DBM-Kommandos

$result = $session->rawCmd ('invalid command');
print "result\n";)

Ausgabe:

ERR

-24977,ERR_COMMAND: unknown command "invalid"


Methode release (MaxDB: Perl-Handbuch)

Methode release

Verwendung

$session->release ();

release ist eine Methode der Klasse DBM. Sie beendet die Verbindung zum Programm DBM-Server.


Beispiele für das Modul SAP::DBTech::dbm (MaxDB: Perl-Handbuch)

Beispiele für das Modul SAP::DBTech::dbm

Erzeugen einer Verbindung:

#

# testdbm.pl - Testen der Verbindung zum DBM-Server

#

importSAP::DBTech::dbm;
$session = new DBM ('', '');
$version = $session->cmd ("dbm_version")
print "$version\n";

Starten der Datenbankinstanz:

#

# dbup.pl - Starten der Datenbankinstanz

#

importSAP::DBTech::dbm;

$database_name = $ARGV [0];
$session = new DBM ('', database_name, '', 'DBMUSER,DBM');
$session->cmd ('db_online');


Fehlerbehandlung für das Modul SAP::DBTech::dbm (MaxDB: Perl-Handbuch)

Fehlerbehandlung für das Modul SAP::DBTech::dbm

In Fehlersituationen lösen die Methoden des Moduls SAP::DBTech::dbm eine der folgenden Ausnahmen aus:

Ausnahme CommunicationError

Ausnahme DBMServError


Ausnahme CommunicationError (MaxDB: Perl-Handbuch)

Ausnahme CommunicationError

Ausnahmen vom Typ CommunicationError werden ausgelöst, wenn keine Verbindung zum DBM-Server hergestellt werden kann oder eine bestehende Verbindung abgebrochen wird.

Sie haben das folgende Format:

Communication Error: $message

$message

Text der Fehlermeldung

Der Typ CommunicationError einer Ausnahme kann durch den Vergleich mit dem regulären Ausdruck Communication Error: (.*) ermittelt werden.

Der DBM-Server, zu dem die Verbindung aufgebaut werden soll, existiert nicht:

eval { $session = new DBM ('unknownhost', '');}
if ($@) {
    print "$@\n";
}

Ausgabe:

Communication Error: unknown host name


Ausnahme DBMServError (MaxDB: Perl-Handbuch)

Ausnahme DBMServError

Ausnahmen vom Typ DBMServError werden ausgelöst, wenn der DBM-Server einen Fehler meldet.

Sie haben das folgende Format:

Error DBM Server: $errorCode $errorSymbol: $message

$errorCode | Nummer der Fehlermeldung (Siehe auch: Dokumentation Meldungen)
$errorSymbol | Kurztext der Fehlermeldung
$message | Langtext der Fehlermeldung

Der Typ DBMServError einer Ausnahme kann durch den Vergleich mit dem regulären Ausdruck Error DBM Server: (-?[0-9]+) ([A-Z_]+): (.*)ermittelt werden.


Modul SAP::DBTech::loader (MaxDB: Perl-Handbuch)

Modul SAP::DBTech::loader

Syntax

use SAP::DBTech::dbm;

Verwendung

SAP::DBTech::loader ist ein für das MaxDB-Datenbanksystem entwickeltes Modul in der Programmiersprache Perl. Sie können es in Perl-Skripten verwenden, um Daten über den Loader zu laden.

Das Modul SAP::DBTech::loader ermöglicht die Ausführung aller Loader-Kommandos, die Sie auch mit Hilfe des Werkzeugs Loader ausführen können. Zusätzlich können Sie aber auch flexibel auf Fehlersituationen reagieren und die Befehle dynamisch zur Laufzeit erzeugen.

Inhalt des Moduls

Klasse Loader

Siehe auch:

Beispiele für das Modul SAP::DBTech::loader

Fehlerbehandlung für das Modul SAP::DBTech::loader


Klasse Loader (MaxDB: Perl-Handbuch)

Klasse Loader

Verwendung

Loaderist eine Klasse des Moduls SAP::DBTech::loader. Alle Dateinamen in den Loader-Kommandos müssen für den Rechner angegeben werden, auf dem der Loader-Server gestartet wurde.

Eine Instanz der Klasse Loader entspricht einer Verbindung zu einem Loader-Server.

Damit wird jedoch noch keine Verbindung zwischen Loader-Server und Datenbank aufgebaut.

Um eine Verbindung zwischen Loader-Server und Datenbank aufzubauen, führen Sie die Loader-Kommandos USE SERVERDB und USE USER aus.

Inhalt der Klasse

Die Klasse Loader enthält folgende Methoden:

cmd (cmd_string)

rawCmd (cmd_string)

sql (cmd_string)

release ()

Verwendung des Constructors

$session = new Loader ($database_server);

Parameter | Beschreibung
database_server | Netzwerkname des Rechners, mit dem die Verbindung aufgebaut werden soll Wenn Sie für database_server keine Angabe machen, wird eine Verbindung zum lokalen Rechner hergestellt.

Erzeugen einer Verbindung session zum Programm Loader-Server [Ext.] auf dem aktuellen Rechner:

$session = new Loader ();

Erzeugen einer Verbindung session zum Programm Loader-Server auf dem Rechner remoteserver:

$session =new Loader ('remoteserver');


Methode cmd (MaxDB: Perl-Handbuch)

Methode cmd

Verwendung

$result = $session->cmd ($cmd_string);

cmd ist eine Methode der Klasse Loader. Sie senden damit das unter $cmd_string angegebene Loader-Kommando an das Programm Loader-Server.

Ergebnis

Es wird das Ergebnis des Loader-Kommandos zurückgegeben.

Wenn das Programm Loader-Server einen Fehler zurückgibt, dann wird eine Ausnahme vom Typ LoaderError ausgelöst.

Angabe eines gültigen Loader-Kommandos

$result = $session->cmd ('CREATE TABLE testtable1 (colname INTEGER)')
print "result: '$result'\n";

Ausgabe:

result: ''

Angabe eines ungültigen Loader-Kommandos

$result = $session->cmd ('invalid command')
 print "result: '$result'\n";

Ausgabe:

Error Loader Server: SQL error -3005 = Invalid SQL statement error position: 1) at /opt/sdb/misc/SAP/DBTech/loader.pm line 89.

(Siehe auch: Methode rawCmd)


Methode rawCmd (MaxDB: Perl-Handbuch)

Methode rawCmd

Verwendung

$result = $session->rawCmd ($cmd_string);

rawCmdist eine Methode der Klasse Loader. Sie senden damit das unter $cmd_string angegebene Loader-Kommando an das Programm Loader-Server.

Fehler des Loader-Server lösen keine Ausnahme aus. Der Rückgabewert beginnt mit OK, wenn die Ausführung des Kommandos erfolgreich war, und mit ERR, wenn das Kommando fehlgeschlagen ist.

(Siehe auch: Methode cmd)

Ergebnis

Es wird das Ergebnis des Loader-Kommandos zurückgegeben.

Angabe eines gültigen Loader-Kommandos

$result = $session->cmd ('CREATE TABLE testtable2 (colname INTEGER)')
print "result: '$result'\n";

Ausgabe:

result: 'OK

'

Angabe eines ungültigen Loader-Kommandos

$result = $session->cmd ('invalid command')
print "result: '$result'\n";

Ausgabe:

result: 'ERR
-25010
SQL error -3005 = Invalid SQL statement (error position: 1)'


Methode sql (MaxDB: Perl-Handbuch)

Methode sql

Verwendung

$sqlrc = $session->sql ($cmd_string);

sql ist eine Methode der Klasse Loader. Sie senden damit die unter $cmd_string angegebene SQL-Anweisung an den Loader-Server.

Sie können SQL-Anweisungen auch mit Hilfe der Methoden cmd oder rawCmd ausführen. Wenn dabei Ausnahmen auftreten, müssen Sie diese jedoch selbst erkennen und den Fehlercode aus dem Text der Ausnahme ermitteln.

Ergebnis

Wenn die Anweisung erfolgreich ausgeführt wurde, ist der Ergebniswert 0

Wenn die Ausführung der Anweisung zu einem SQL-Fehler führt, dann wird die Nummer der Fehlermeldung der SQL-Anweisung zurückgegeben.

Wenn die Ausführung der Anweisung zu einem Loader-Fehler führt, dann wird eine Ausnahme des Typs LoaderError ausgelöst.

Ausführen einer gültigen SQL-Anweisung

print $session->cmd ('CREATE TABLE testtable3 (a integer)');

Ausgabe:

0

Ausführen einer ungültigen SQL-Anweisung

print $session->cmd ('invalid command');

Ausgabe ist der Fehlercode der SQL-Anweisung:

3005

Ausführen eines ungültigen Loader-Kommandos

print $session->cmd ('dataload invalid spec')

Ausgabe ist die Ausnahme des Loader-Server:

Error Loader Server: Syntax error at position 10 (Unexpected token: invalid). at /opt/sdb/programs/misc/SAP/DBTech/loader.pm line 89.


Methode release (MaxDB: Perl-Handbuch)

Methode release

Verwendung

$session->release ();

release ist eine Methode der Klasse Loader. Sie beendet die aktuelle Verbindung zum Programm Loader-Server.


Beispiele für das Modul SAP::DBTech::loader (MaxDB: Perl-Handbuch)

Beispiele für das Modul SAP::DBTech::loader

Erzeugen einer Verbindung

#
# testloader.pl - Testen der Verbindung zum Loader-Server.
 #
 use SAP::DBTech::loader;
$session = new Loader ('', '');
$session->cmd ('use serverdb TST');
$session->cmd ('use user TEST TEST');


Fehlerbehandlung für das Modul SAP::DBTech::loader (MaxDB: Perl-Handbuch)

Fehlerbehandlung für das Modul SAP::DBTech::loader

In Fehlersituationen lösen die Methoden des Moduls SAP::DBTech::loader eine der folgenden Ausnahmen aus:

Ausnahme CommunicationError

Ausnahme LoaderError


Ausnahme CommunicationError (MaxDB: Perl-Handbuch)

Ausnahme CommunicationError

Ausnahmen vom Typ CommunicationError werden ausgelöst, wenn keine Verbindung zum Loader-Server hergestellt werden kann oder eine bestehende Verbindung abgebrochen wird.

Sie haben das folgende Format:

Communication Error: $message

message

Text der Fehlermeldung

Der Typ CommunicationError einer Ausnahme kann durch den Vergleich mit dem regulären Ausdruck Communication Error: (.*) ermittelt werden.

Der Loader-Server, zu dem die Verbindung aufgebaut werden soll, existiert nicht:

eval

{ $session = new Loader ('unknownhost', '');}
if ($@) {
print "$@\n";
}

Ausgabe:

Communication Error: unknown host name


Ausnahme LoaderError (MaxDB: Perl-Handbuch)

Ausnahme LoaderError

Ausnahmen vom Typ LoaderError werden ausgelöst, wenn das Programm Loader-Server einen Fehler meldet.

Sie haben das folgende Format:

Error Loader Server: $message

message

Langtext der Fehlermeldung

Der Typ LoaderError einer Ausnahme kann durch den Vergleich mit dem regulären Ausdruck Error Loader Server: (.*) ermittelt werden.


Python-Handbuch

Dieses Dokument beschreibt die Programmierschnittstellen des Datenbanksystems MaxDB für die Programmierung von Datenbankanwendungen mit Hilfe von Python-Skripten:

Programmierschnittstelle | Verfügbares Modul | Verwendung
SQL | sapdb.sql | SQL-Anfragen an die Datenbank aus einem Programm heraus und das Verarbeiten der Ergebnisse
Database Manager | sapdb.dbm | Automatisieren der Aktionen zum Anlegen neuer und Verwalten bestehender Datenbankinstanzen durch Programme
Loader | sapdb.loader | Automatisieren des Ladens und Entladens von Datenbank-Schemata und Daten durch Programme

Die Erläuterungen gelten für Datenbanksysteme ab Version 7.4.

Für das Verständnis dieser Dokumentation werden Grundkenntnisse der Programmiersprache Python vorausgesetzt.

Sie können die Python-Module sapdb.sql, sapdb.dbm und sapdb.loader unter der Adresse http://www.mysql.com/downloads/maxdb.html kostenlos herunterladen.

Allgemeine Informationen zum Datenbanksystem MaxDB sowie den Datenbankwerkzeugen Database Manager und Loader finden Sie in der Dokumentation Datenbankverwaltung.

Sie finden dort auch Informationen zu weiteren Programmierschnittstellen.


Modul sapdb.sql (MaxDB: Python-Handbuch)

Modul sapdb.sql

Syntax

import sapdb.sql

Verwendung

Mit Hilfe des Python-Moduls sapdb.sql können Sie auf das Datenbanksystem zugreifen. Der Zugriff auf die Daten erfolgt über die Structured Query Language (SQL).

Inhalt des Moduls

Methode connect

Klasse SapDB_Session

Klasse SapDB_ResultSet

Klasse SapDB_Prepared

Klasse SapDB_Result

Fehlerbehandlung für das Modul sql


Methode connect (MaxDB: Python-Handbuch)

Methode connect

Verwendung

connect ist eine Methode des Moduls sapdb.sql. Sie erzeugen damit eine Datenbankverbindung.

Definition

connect(database_user, password, database_name [, host [, config]])

Parameter | Beschreibung
database_user | Name des Datenbankbenutzers (Groß- und Kleinschreibung beachten)
password | Benutzerkennwort
database_name | Name der Datenbankinstanz
host | Name des Datenbankrechners
config | String mit zusätzlichen Verbindungsoptionen im Format keyword=value[&keyword=value]... Folgende Verbindungsoptionen sind möglich:
 | Schlüsselwort (keyword) | Wert (value)
 | sqlmode | SQL-Modus INTERNAL | ORACLE Vorschlagswert ist INTERNAL
 | isolation | Isolation-Level
 | timeout | Maximale Inaktivitätsdauer einer Datenbanksitzung in Sekunden (Siehe auch: Timeout-Wert)
 | cachelimit | Das Cache-Limit der Datenbanksitzung in KB
 | autocommit | Autocommit-Modus ON | OFF Vorschlagswert ist OFF ON: Nach jeder SQL-Anweisung wird die Transaktion mit einem COMMIT beendet. OFF: Der Anwender muss die Transaktion mit den Methoden rollback und commit selbst steuern.
 | genericResults | ON | OFF Vorschlagswert ist OFF ON: Die Methoden sql und sqlX der Klasse SapDB_Session sowie die Methode execute der Klasse SapDB_Prepared liefern als Ergebnis ein Objekt der Klasse SapDB_Result. Dies ist z. B. sinnvoll für Anwendungen, bei denen die Art des ausgeführten SQL unbekannt ist. OFF: In Abhängigkeit von der ausgeführten SQL-Anweisung sind verschiedene SQL-Ergebnisse möglich.
 | component | ODBC | CPC ODBC: die Datenbank wählt die für ODBC gültige SQL-Variante für die Bearbeitung CPC: die Datenbank wählt die für den Precompiler gültige SQL-Variante für die Bearbeitung

Ergebnis

Ergebniswert ist ein Objekt der Klasse SapDB_Session.

Der Datenbankbenutzer TESTUSER mit dem Kennwort TEST erzeugt eine Verbindung zur Datenbank TST auf dem aktuellen Rechner:

session=sapdb.sql.connect ('TESTUSER', 'TEST', 'TST')

Der Datenbankbenutzer TESTUSER mit dem Kennwort TEST erzeugt eine Verbindung zur Datenbank TST auf dem Rechner mit dem Namen remoteserver:

session=sapdb.sql.connect ('TESTUSER', 'TEST', 'TST','remoteserver')

Der Datenbankbenutzer TESTUSER mit dem Kennwort TEST erzeugt eine Verbindung zur Datenbank TST auf dem Rechner mit der IP-Adresse 127.0.0.1:

session=sapdb.sql.connect ('TESTUSER', 'TEST', 'TST','127.0.0.1')

Der Datenbankbenutzer TESTUSER mit dem Kennwort TEST erzeugt eine Verbindung zur Datenbank TST auf dem aktuellen Rechner im SQL-Modus ORACLE mit einem Kommando-Timeout von 60 Sekunden:

session=sapdb.sql.connect ('TESTUSER', 'TEST', 'TST','', 'sqlmode=oracle&timeout=60')


Klasse SapDB_Session (MaxDB: Python-Handbuch)

Klasse SapDB_Session

Verwendung

SapDB-Session ist eine Klasse des Moduls sapdb.sql. Objekte dieser Klasse werden durch den Aufruf der Methode connect des Moduls sapdb.sql erzeugt. Sie können damit SQL-Anweisungen ausführen.

Ein Objekt dieser Klasse entspricht einer Datenbankverbindung. Wenn die letzte Verbindung zu diesem Objekt gelöscht wird, dann wird die Datenbankverbindung mit einem ROLLBACK der Transaktion beendet.

Inhalt der Klasse

Die Klasse SapDB-Session enthält folgende Methoden:

sql (cmd)

sqlX (cmd, parms)

prepare (cmd)

release (withCommit=0)

commit ()

rollback ()


Methode sql (MaxDB: Python-Handbuch)

Methode sql

Definition

sql (cmd)

Verwendung

sql ist eine Methode der Klasse SapDB_Session. Durch den Aufruf dieser Methode wird die SQL-Anweisung cmd ausgeführt.

Ergebnis

Die Art des Ergebnisses ist abhängig vom Inhalt der SQL-Anweisung (Siehe Mögliche SQL-Ergebnisse).

Ausführen einer Datenanfrage, z. B. SELECT-Anweisung

cursor = session.sql ('SELECT * FROM messages')

Die Variable cursor enthält ein Objekt der Klasse SapDB_ResultSet, mit dem Sie auf die Datensätze der Ergebnismenge zugreifen können.

Ausführen einer Datenmanipulation, z. B. DELETE-Anweisung

rowsDeleted = session.sql ('DELETE FROM testtable WHERE column = 3')

Die Variable rowsDeleted enthält die Anzahl der Zeilen, die durch die DELETE-Anweisung gelöscht worden sind.


Methode sqlX (MaxDB: Python-Handbuch)

Methode sqlX

Definition

sqlX (cmd parms = [])

Verwendung

sqlX ist eine Methode der Klasse SapDB_Session. Durch den Aufruf dieser Methode wird die SQL-Anweisung cmd ausgeführt.

Die SQL-Anweisung cmd kann die Platzhalter ? oder :<varname> für Parameter enthalten, die vom System durch Werte aus der Parameterliste parms ersetzt werden.

Die Methode sqlX ermöglicht Ihnen, SQL-Anweisungen mit Parametern auszuführen, ohne zunächst ein Objekt der Klasse SapDB_Prepared anlegen zu müssen.

Ergebnis

Die Art des Ergebnisses ist abhängig vom Inhalt der SQL-Anweisung (Siehe Mögliche SQL-Ergebnisse).

Ausführen einer Datenanfrage, z. B. SELECT-Anweisung

cursor = session.sql ('SELECT * FROM messages WHERE msgno>?',[0])

Die Variable cursor enthält ein Objekt der Klasse SapDB_ResultSet, mit dem Sie auf die Datensätze der Ergebnismenge zugreifen können.

Ausführen einer Datenmanipulation, z. B. DELETE-Anweisung

rowsDeleted = session.sql ('DELETE FROM testtable WHERE column = ?', [3])

Die Variable rowsDeleted enthält die Anzahl der Zeilen, die durch die DELETE-Anweisung gelöscht worden sind.


Methode prepare (MaxDB: Python-Handbuch)

Methode prepare

Definition

prepare (cmd)

Verwendung

prepare ist eine Methode der Klasse SapDB_Session. Mit dem Aufruf dieser Methode wird die SQL-Anweisung cmd zur Prüfung an die Datenbank gesandt.

Ergebnis

Ergebniswert ist ein Objekt der Klasse SapDB_Prepared.

Mit Hilfe dieses Objekts können Sie die gleiche SQL-Anweisung mehrfach und mit unterschiedlichen Parametern ausführen, ohne dass die Datenbank jedes Mal die Syntax und die Privilegien überprüfen muss. Sie verwenden dazu die Methode execute.

Erzeugen einer INSERT-Anweisung zum Einfügen von Daten in die Tabelle TESTTABLE

insert = session.prepare ('INSERT INTO testtable VALUES (?,?)')

Die Variable insert enthält ein Objekt der Klasse SapDB_Prepared. Mit Hilfe dieses Objekts können Sie die INSERT-Anweisung mit unterschiedlichen Parametern ausführen.


Methode release (MaxDB: Python-Handbuch)

Methode release

Definition

release (with_commit = 0)

Verwendung

release ist eine Methode der Klasse SapDB_Session. Der Aufruf dieser Methode beendet die aktuelle Verbindung zur Datenbankinstanz.

Wenn Sie für den optionalen Parameter with_commit den Wert True angeben, dann wird die Transaktion mit COMMIT beendet, andernfalls mit ROLLBACK.

Danach kann auf das Objekt der Klasse SapDB_Session nicht mehr zugegriffen werden.


Methode commit (MaxDB: Python-Handbuch)

Methode commit

Definition

commit ()

Verwendung

commit ist eine Methode der Klasse SapDB_Session. Sie beendet die aktuelle Transaktion mit einem COMMIT und startet eine neue Transaktion.


Methode rollback (MaxDB: Python-Handbuch)

Methode rollback

Definition

rollback ()

Verwendung

rollback ist eine Methode der Klasse SapDB_Session. Sie beendet die aktuelle Transaktion mit einem ROLLBACK und startet eine neue Transaktion.


Klasse SapDB_ResultSet (MaxDB: Python-Handbuch)

Klasse SapDB_ResultSet

Verwendung

SapDB-ResultSet ist eine Klasse des Moduls sapdb.sql. Sie können damit innerhalb einer Ergebnismenge navigieren und die Daten einer Ergebnismenge auslesen.

Inhalt der Klasse

Die Klasse SapDB-ResultSet enthält folgende Methoden:

next ()

previous ()

relative (offset)

absolute (pos)

first ()

last ()

current ()

__getitem__ (pos)

getDescription ()

Beispiele für SapDB_ResultSet


Methode next (MaxDB: Python-Handbuch)

Methode next

Definition

next ()

Verwendung

next ist eine Methode der Klasse SapDB_ResultSet. Sie positionieren damit den Cursor innerhalb einer Ergebnismenge auf dem nächsten Satz, um ihn auszulesen.

Ergebnis

Der Satz wird ausgelesen.

Wenn das Ende der Ergebnismenge erreicht ist, ist der Ergebniswert None.

row = cursor.next ()

Siehe auch: Beispiele für SapDB_ResultSet


Methode previous (MaxDB: Python-Handbuch)

Methode previous

Definition

previous ()

Verwendung

previous ist eine Methode der Klasse SapDB_ResultSet. Sie positionieren damit den Cursor innerhalb einer Ergebnismenge auf dem vorhergehenden Satz, um ihn auszulesen.

Ergebnis

Der Satz wird ausgelesen.

Wenn der Anfang der Ergebnismenge erreicht ist, ist der Ergebniswert None.

row = cursor.previous ()

Siehe auch: Beispiele für SapDB_ResultSet


Methode relative (MaxDB: Python-Handbuch)

Methode relative

Definition

relative (offset)

Verwendung

relative ist eine Methode der Klasse SapDB_ResultSet. Sie positionieren den Cursor offset Sätze weiter, um den Satz an dieser Stelle auszulesen.

Die Angabe relative (1)entspricht der Angabe next ().

Wenn Sie den Wert offset mit einem negativen Vorzeichen versehen, dann bewegt sich der Cursor in der Ergebnismenge rückwärts. Damit entspricht die Angabe relative (-1) der Angabe previous ().

Ergebnis

Der Satz wird ausgelesen.

Wenn Sie für offset einen Wert angeben, der die Anzahl der Sätze nach bzw. vor der aktuellen Cursorposition überschreitet, dann ist der Ergebniswert None.

row = cursor.relative (5)

row = cursor.relative (-1)

Siehe auch: Beispiele für SapDB_ResultSet


Methode absolute (MaxDB: Python-Handbuch)

Methode absolute

Definition

absolute (pos)

Verwendung

absolute ist eine Methode der Klasse SapDB_ResultSet. Sie positionieren damit den Cursor innerhalb der Ergebnismenge auf dem Satz an Position pos, um ihn auszulesen.

Der erste Satz entspricht der Position 1.

Ein negatives Vorzeichen für den Wert pos bezieht sich auf das Ende der Ergebnismenge. Die Angabe absolute (-1) liefert also den letzten Satz der Ergebnismenge.

Ergebnis

Der Satz wird ausgelesen.

Wenn Sie für pos einen Wert angeben, der die Anzahl der Sätze in der Ergebnismenge überschreitet, dann ist der Ergebniswert None.

row = cursor . absolute (3)

Siehe auch: Beispiele für SapDB_ResultSet


Methode first (MaxDB: Python-Handbuch)

Methode first

Definition

first ()

Verwendung

first ist eine Methode der Klasse SapDB_ResultSet. Sie positionieren damit den Cursor auf dem ersten Satz der Ergebnismenge, um ihn auszulesen.

Ergebnis

Der Satz wird ausgelesen.

Wenn die Ergebnismenge leer ist, ist der Ergebniswert None.

row = cursor.first ()

Siehe auch: Beispiele für SapDB_ResultSet


Methode last (MaxDB: Python-Handbuch)

Methode last

Definition

last ()

Verwendung

last ist eine Methode der Klasse SapDB_ResultSet. Sie positionieren damit den Cursor auf dem letzten Satz der Ergebnismenge, um ihn auszulesen.

Ergebnis

Der Satz wird ausgelesen.

Wenn die Ergebnismenge leer ist, ist der Ergebniswert None.

row = cursor.last ()

Siehe auch: Beispiele für SapDB_ResultSet


Methode current (MaxDB: Python-Handbuch)

Methode current

Definition

current ()

Verwendung

current ist eine Methode der Klasse SapDB_ResultSet. Sie lesen damit den Satz an der aktuellen Cursorposition in der Ergebnismenge aus.

Ergebnis

Der Satz wird ausgelesen.

Wenn der Cursor vor dem ersten oder nach dem letzten Satz steht, ist der Ergebniswert None.

row = cursor.current ()

Siehe auch: Beispiele für SapDB_ResultSet


Methode __getitem__ (MaxDB: Python-Handbuch)

Methode __getitem__

Definition

__getitem__ (pos)

Verwendung

getitem ist eine Methode der Klasse SapDB_ResultSet. Sie positionieren damit den Cursor auf dem Satz an Position pos in der Ergebnismenge und lesen ihn aus. Der erste Satz entspricht der Position 0.

Mit Hilfe dieser Methode iterieren Sie in einer for-Schleife durch alle Sätze einer Ergebnismenge.

Ergebnis

Der Satz wird ausgelesen.

Wenn Sie für pos einen Wert angeben, der die Anzahl der Sätze in der Ergebnismenge überschreitet, dann ist der Ergebniswert None.

Sie iterieren über die gesamte Ergebnismenge:

for msgno, language, message in session.sql ('SELECT * FROM messages'):
    print msgno, language, message


Methode getDescription (MaxDB: Python-Handbuch)

Methode getDescription

Definition

getDescription ()

Verwendung

getDescription ist eine Methode der Klasse SapDB_ResultSet. Sie können damit Informationen über die Spalten einer Ergebnismenge auslesen.

Ergebnis

Die Methode liefert eine Beschreibung der Ergebnismenge.

Jedes Tupel des Ergebnisses enthält die folgenden Werte:

· Name der Spalte

· Typ der Spalte als String

· Typ der Spalte als ganze Zahl

Die Bedeutung dieser Zahlen entspricht ihrer Bedeutung in der ODBC-Spezifikation.

· logische Größe der Spalte

· Anzahl der Nachkommastellen

· Indikator, ob diese Spalte NULL enthalten kann

· String OUT

Erzeugen einer Ergebnismenge und formatierte Ausgabe der Spaltenbeschreibungen

cursor = session.sql ("SELECT * FROM messages")
print "colname    typename   code length frac  null? in/out"
print "===================================================="
for columnDescription in cursor.getDescription ():
    print "%-10s %-10s %4d %6d   %2d  %5s %s" % columnDescription

colname    typename   code length frac  null? in/out
====================================================
MSGNO      Fixed         3      5    0   None OUT
LANGUAGE   Char          1      3    0   None OUT
MSGTEXT    Unicode       1     80    0      1 OUT


Beispiele für SapDB_ResultSet (MaxDB: Python-Handbuch)

Beispiele für SapDB_ResultSet

Erzeugen einer Tabelle und Füllen der Tabelle mit Daten

session.sql ('CREATE TABLE cursortest (A INT KEY)')

insert = session.prepare ('INSERT INTO cursortest (A) VALUES (?)')

for i in xrange (1, 11):

    insert.execute ([i])

Erzeugen eine Ergebnismenge

cursor = session.sql ('SELECT A FROM cursortest ORDER BY A')

Der Cursor steht vor dem ersten Satz.

Sie positionieren den Cursor auf dem nächsten Satz, am Anfang also dem ersten Satz, und lassen sich diesen ausgeben:

>>>cursor.next ()

(1,)

Sie positionieren den Cursor auf dem nächsten Satz und lassen sich diesen ausgeben:

>>> cursor.next ()

(2,)

Sie positionieren den Cursor auf dem vorherigen Satz und lassen sich diesen ausgeben:

>>>cursor.previous ()

(1,)

Sie gehen mit dem Cursor fünf Sätze weiter und lassen sich diesen Satz ausgeben:

>>> cursor.relative (5)

(6,)

Sie gehen mit dem Cursor einen Satz zurück und lassen sich diesen Satz ausgeben:

>>>cursor.relative (-1)

(5,)

Sie positionieren den Cursor auf dem dritten Satz der Ergebnismenge und lassen sich diesen ausgeben:

>>>cursor.absolute (3)

(3,)

Sie positionieren den Cursor auf dem drittletzten Satz der Ergebnismenge und lassen sich diesen ausgeben:

>>> cursor.absolute (-3)

(8,)

Sie positionieren den Cursor auf dem ersten Satz der Ergebnismenge und lassen sich diesen ausgeben:

>>> cursor.first ()

(1,)

Sie positionieren den Cursor auf dem letzten Satz der Ergebnismenge und lassen sich diesen ausgeben:

>>> cursor.last ()

(10,)

Sie lassen sich den Satz an der aktuellen Cursorposition ausgeben:

>>> cursor.current ()

(10,)

Sie iterieren über die gesamte Ergebnismenge:

>>> for row in cursor: print row,

(1,) (2,) (3,) (4,) (5,) (6,) (7,) (8,) (9,) (10,)


Klasse SapDB_Prepared (MaxDB: Python-Handbuch)

Klasse SapDB_Prepared

Verwendung

SapDB-Prepared ist eine Klasse des Moduls sapdb.sql. Sie können damit eine SQL-Anweisung mehrmals mit unterschiedlichen Parametern ausführen. Dies hat folgende Vorteile:

· Die Datenbank muss die Syntax und die Privilegien nur einmal überprüfen

· Parameter müssen von der Anwendung nicht in ein der SQL-Syntax entsprechendes Format umgewandelt werden. Deshalb müssen Sonderzeichen nicht besonders behandelt werden.

Objekte dieser Klasse erzeugen Sie mit Hilfe der Methode prepare der Klasse SapDB_Session.

Inhalt der Klasse

Die Klasse SapDB-Prepared enthält folgende Methoden:

execute (sqlParms = [])

getDescription ()


Methode execute (MaxDB: Python-Handbuch)

Methode execute

Definition

execute (sqlParms = [])

Verwendung

execute ist eine Methode der Klasse SapDB_Prepared. Sie führt die Anweisung mit den in parameterlist angegebenen Parametern aus.

In die Parameterliste tragen Sie nur Eingabeparameter ein. Wenn die ausgeführte Anweisung Ausgabeparameter liefert, dann werden diese als ein Tupel von der Methode zurückgegeben.

Ergebnis

Die Art des Ergebnisses ist abhängig vom Inhalt der SQL-Anweisung (Siehe Mögliche SQL-Ergebnisse).

Beispiel 1: Ausführen einer Datenanfrage

select = session.prepare ('SELECT * FROM messages WHERE msgno = ?')
 select.execute ([300])

Ergebnis

<SapDB_ResultSet object at …>

Beispiel 2: Aufruf einer Stored-Procedure

Erzeugen der Stored-Procedure

session.sql ("""CREATE DBPROC paramdemo (
IN    p1 FIXED (5),
INOUT p2 FIXED,
OUT   p3 FLOAT)
AS BEGIN
SET p2 = 2;
SET p3 = 3.0;
END;""")

Erzeugen eines Objekts der Klasse SapDB_Prepared zum Aufruf der Stored-Procedure

call = session.prepare ('call paramdemo (?, ?, ?)')
in1 = 1    # sets p1
in2 = 2    # set

p2

Aufrufen der Stored-Procedure und Ausgabe der Ausgabeparameter

out2, out3 = call.execute ([in1, in2])
print 'value p2:', out2
print 'value p3:', out3

Ergebnis

value p2: 2
value p3: 3.0


Methode getDescription (MaxDB: Python-Handbuch)

Methode getDescription

Definition

getDescription ()

Verwendung

getDescription ist eine Methode der Klasse SapDB_Prepared. Mit Hilfe dieser Methode können Sie Informationen über die Parameter einer SQL-Anweisung auslesen

Ergebnis

Jedes Tupel des Ergebnisses enthält die folgenden Werte:

· leerer String als Platzhalter für den Namen des Parameters

· Typ des Parameters als String

· Typ des Parameters als ganze Zahl analog zu ODBC

Die Bedeutung dieser Zahlen entspricht ihrer Bedeutung in der ODBC-Spezifikation.

· logische Größe des Parameters

· Anzahl der Nachkommastellen

· Indikator, ob der Parameter NULL enthalten kann

· String 'IN' | 'OUT' | 'IN/OUT'

Erzeugen einer Stored-Procedure

session.sql ("""CREATE DBPROC paramdemo (
IN    p1 FIXED (5),
INOUT p2 FIXED,
OUT   p3 FLOAT)
AS BEGIN
SET p2 = 2;
SET p3 = 3.0;
END;""")

Erzeugen eines Objekts der Klasse SapDB_Prepared zum Aufruf der Stored-Procedure
call = session.prepare ('call paramdemo (?, ?, ?)')

Formatierung der Ausgabe der Parameterbeschreibung

print "colname    typename   code length frac  null? in/out"
print "===================================================="
for parameterDescription in call.getDescription ():
    print "%-10s %-10s %4d %6d   %2d  %5s %s" % parameterDescription

colname    typename   code length frac  null? in/out
====================================================
           Fixed         3      5    0      1 IN
           Fixed         3      5    0      1 IN/OUT
           Float         6     16    0      1 OUT


Klasse SapDB_Result (MaxDB: Python-Handbuch)

Klasse SapDB_Result

Verwendung

SapDB-Result ist eine Klasse des Moduls sapdb.sql.

SQL-Anweisungen können unterschiedliche Ergebnisse liefern (Siehe auch: Mögliche SQL-Ergebnisse). Mit den Methoden dieser Klasse können Sie gezielt abfragen, welcher Art die Ergebnisse sind.

Inhalt der Klasse

Die Klasse SapDB-Result enthält folgende Methoden:

getResultSet()

getOutputParameters()

getRowsAffected()

getLastSerial()

getFirstSerial()


Methode getResultSet (MaxDB: Python-Handbuch)

Methode getResultSet

Definition

getResultSet ()

Verwendung

getResultSet ist eine Methode der Klasse SapDB_Result. Sie rufen diese Methode auf, um die durch eine SQL-Anweisung erzeugte Ergebnismenge auszulesen.

Ergebnis

Wenn die Anweisung eine Ergebnismenge erzeugt hat, gibt die Methode ein Objekt der Klasse SapDB_ResultSet zurück. Andernfalls ist der Ergebniswert None.


Methode getOutputParameters (MaxDB: Python-Handbuch)

Methode getOutputParameters

Definition

getOutputParameters ()

Verwendung

getOutputParameters ist eine Methode der Klasse SapDB_Result. Sie rufen diese Methode auf, um dies Ausgabeparameter einer SQL-Anweisung auszulesen.

Ergebnis

Wenn Ausgabeparameter erzeugt wurden, gibt die Methode ein Tupel mit diesen Ausgabeparametern zurück. Andernfalls ist der Ergebniswert None.


Methode getRowsAffected (MaxDB: Python-Handbuch)

Methode getRowsAffected

Definition

getRowsAffected ()

Verwendung

getRowsAffected ist eine Methode der KlasseSapDB_Result.

Sie können damit abfragen, wie viele Zeilen mit einer SQL-Anweisung geändert wurden.

Ergebnis

Die Methode gibt die Anzahl der geänderten Zeilen zurück.


Methode getLastSerial (MaxDB: Python-Handbuch)

Methode getLastSerial

Definition

getLastSerial ()

Verwendung

getLastSerial ist eine Methode der Klasse SapDB_Result.

Mit Hilfe einer SQL-Anweisung können Sie mehrere Sätze in eine Tabelle eintragen. Wenn eine Tabelle eine Spalte des Datentyps SERIAL enthält, dann können Sie mit Hilfe dieser Methode den letzten für diese Spalte generierten Wert abfragen.

Ergebnis

Sie erhalten den abgefragten Wert.

Wenn kein Wert des Datentyps SERIAL erzeugt wurde, ist der Ergebniswert None.


Methode getFirstSerial (MaxDB: Python-Handbuch)

Methode getFirstSerial

Definition

getFirstSerial ()

Verwendung

getFirstSerial ist eine Methode der Klasse SapDB_Result.

Mit Hilfe einer SQL-Anweisung können Sie mehrere Sätze in eine Tabelle eintragen. Wenn die Tabelle eine Spalte des Datentyps SERIAL enthält, können damit auch mehrere Werte für diese Spalte erzeugt werden. Mit der Methode getFirstSerial können Sie den ersten dieser Werte abfragen.

(Siehe auch: Methode getLastSerial)

Ergebnis

Sie erhalten den abgefragten Wert.

Wenn kein Wert des Datentyps SERIAL erzeugt wurde, ist der Ergebniswert None.


Klasse SapDB_LongReader (MaxDB: Python-Handbuch)

Klasse SapDB_LongReader

Verwendung

SapDB-LongReader ist eine Klasse des Moduls sapdb.sql. Sie können damit den Inhalt einer LONG-Spalte sequentiell lesen.

Objekte der Klasse SapDB_LongReader werden von Ergebnismengen erzeugt, die eine oder mehrere Spalten des Typs LONG enthalten.

Inhalt der Klasse

Die Klasse SapDB-LongReader enthält folgende Methode:

read (count = -1)


Methode read (MaxDB: Python-Handbuch)

Methode read

Definition

read (count = -1)

Verwendung

read ist eine Methode der Klasse SapDB_LongReader. Sie gibt die nächsten count Zeichen des LONG-Wertes zurück.

Wenn Sie die Methode ohne Parameter aufrufen, wird der Rest des LONG-Wertes zurückgegeben.

Wenn das Ende des LONG-Wertes erreicht ist, dann wird ein leerer String zurückgegeben.

Damit können Objekte der Klasse SapDB_LongReader wie File-Objekte verwendet werden.


Fehlerbehandlung für das Modul sapdb.sql (MaxDB: Python-Handbuch)

Fehlerbehandlung für das Modul sapdb.sql

In Fehlersituationen lösen die Methoden des Moduls sapdb.sql eine der folgenden Ausnahmen aus:

Klasse CommunicationError

Klasse SQLError


Klasse CommunicationError (MaxDB: Python-Handbuch)

Klasse CommunicationError

Ausnahmen der Klasse CommunicationError werden ausgelöst, wenn keine Verbindung zur Datenbankinstanz hergestellt werden kann oder eine bestehende Verbindung abgebrochen wird.

Instanzen der Klasse CommunicationError haben die folgenden Attribute:

Attribut | Beschreibung
errorCode | Fehlercode
message | Text der Fehlermeldung


Klasse SQLError (MaxDB: Python-Handbuch)

Klasse SQLError

Ausnahmen der Klasse SQLError werden ausgelöst, wenn bei der Ausführung einer SQL-Anweisung ein Fehler auftritt.

Instanzen der Klasse SQLError haben die folgenden Attribute:

Attribut | Beschreibung
errorCode | Nummer der datenbankspezifischen Fehlermeldung (Siehe auch: Dokumentation Meldungen)
sqlState | normierter Fehlercode
message | Text der Fehlermeldung
errorPos | bei einem Fehler in der SQL-Anweisung: Position des Fehlers in der SQL-Anweisung bei einem Fehler in der Ausführung der SQL-Anweisung: Positionsnummer des fehlerhaften Parameters (erster Parameter = 0)


Mögliche SQL-Ergebnisse (MaxDB: Python-Handbuch)

Mögliche SQL-Ergebnisse

In Abhängigkeit vom Inhalt der SQL-Anweisung erhalten Sie verschiedene Ergebnisse bei der Ausführung von Methoden des Moduls sapdb.sql:

SQL-Anweisung | Ergebnis
SELECT | ein Objekt der Klasse SapDB_ResultSet
UPDATE, DELETE | eine ganze Zahl für die Anzahl der geänderten bzw. gelöschten Sätze
INSERT | ein Objekt der Klasse SapDB_Result, wenn die Tabelle, in die Sätze eingefügt werden, eine Spalte vom Typ SERIAL enthält, andernfalls eine ganze Zahl für die Anzahl der eingefügten Sätze
CALL | Ausgabeparameter, wenn die Stored-Procedure Ausgabeparameter zurückgibt oder ein Objekt der Klasse SapDB_ResultSet, wenn die Stored-Procedure eine Ergebnismenge zurückgibt oder ein Objekt der Klasse SapDB_Result, wenn die Stored-Procedure sowohl Ausgabeparameter als auch eine Ergebnismenge zurückgibt
DDL | None


Modul sapdb.dbm (MaxDB: Python-Handbuch)

Modul sapdb.dbm

Syntax

import sapdb.dbm

Verwendung

Mit Hilfe des Python-Moduls sapdb.dbm können Sie neue Datenbankinstanzen anlegen oder bestehende Datenbankinstanzen mit Hilfe von DBM-Kommandos verwalten.

Inhalt des Moduls

Klasse DBM

Fehlerbehandlung für das Modul dbm


Klasse DBM (MaxDB: Python-Handbuch)

Klasse DBM

Verwendung

DBM ist eine Klasse des Moduls sapdb.dbm. Eine Instanz dieser Klasse entspricht einer Verbindung zu einem DBM-Server.

Inhalt der Klasse

Die Klasse DBM enthält folgende Methoden:

cmd (cmd_string)

rawCmd (cmd_string)

release ()

Definition des Constructors

DBM (database_server = '', database_name = '', dependent_path = '', user_info = '')

Parameter | Beschreibung
database_server | Netzwerkname des Rechners, mit dem die Verbindung aufgebaut werden soll Vorschlagswert des Systems ist der lokale Rechner
database_name | Name der Datenbankinstanz, zu der eine Verbindung hergestellt werden soll; Die Angabe ist optional.
dependent_path | Installationspfad der Datenbanksoftware (Siehe auch: Variablen) Die Angabe ist optional.
user_info | ein String der Form <username>,<password> Der angegebene Benutzer meldet sich an das Programm DBM-Server an.

Wenn es auf Ihrem Rechner mehrere Installationen der Datenbanksoftware gibt, können Sie über die Angaben database_name und dependent_path steuern, welche Version des Programms DBM-Server gestartet wird:

Fall 1 – Sie wollen eine neue Datenbankinstanz mit der neuesten Softwareinstallation anlegen oder sich Informationen über die bestehenden Datenbankinstanzen und Softwareversionen anzeigen lassen:

Geben Sie weder database_name noch dependent_path an.

Das System startet so den DBM-Server der Softwareinstallation mit der höchsten Versionsnummer.

Fall 2 – Sie wollen eine bestimmte Datenbankinstanz verwalten.

Geben Sie den database_name an, jedoch nicht den dependent_path.

Das System startet so den zur angegebenen Datenbankinstanz gehörigen DBM-Server.

Fall 3 – Sie wollen eine neue Datenbankinstanz einer bestimmten Softwareversion anlegen

Geben Sie den dependent_path an, jedoch keinen database_name.

Das System startet so den DBM-Server der angegebenen Softwareinstallation.

Erzeugen eines Verbindungsobjekts session zur Datenbank TST auf dem aktuellen Rechner:

session = sapdb.dbm.DBM ('', 'TST', '', 'DBM,DBM')

Erzeugen eines Verbindungsobjekts session zum Rechner remoteserver und Auswählen des DBM-Server aus der Softwareinstallation im Verzeichnis /usr/local/sdb/7500:

session = sapdb.dbm.DBM ('remoteserver', '', '/usr/local/sdb/7500')

Erzeugen eines Verbindungsobjekts session zum DBM-Server der aktuellsten Softwareinstallation auf dem aktuellen Rechner:

session = sapdb.dbm.DBM ('', '')


Methode cmd (MaxDB: Python-Handbuch)

Methode cmd

Definition

cmd (cmd_string)

Verwendung

cmd ist eine Methode der Klasse DBM. Sie senden damit das unter cmd_string angegebene DBM-Kommando an das Programm DBM-Server.

Ergebnis

Es wird das Ergebnis des DBM-Kommandos zurückgegeben.

Wenn das Programm DBM-Server einen Fehler zurückgibt, dann wird eine Ausnahme der Klasse DBMServError ausgelöst.

Angabe eines gültigen DBM-Kommandos

result = session.cmd ('db_state')
 print repr (result)

Ausgabe:

'State\nOFFLINE\n'

Angabe eines ungültigen DBM-Kommandos

result = session.cmd ('invalid command')
print repr (result)

Ausgabe:

Traceback (innermost last):
 dbm.DBMServError: [-24977] unknown command "invalid"

(Siehe auch: Methode rawCmd)


Methode rawCmd (MaxDB: Python-Handbuch)

Methode rawCmd

Definition

rawCmd (cmd_string)

Verwendung

rawCmd ist eine Methode der Klasse DBM. Sie senden damit das unter cmd_string angegebene DBM-Kommando an das Programm DBM-Server.

Fehler des DBM-Server lösen keine Ausnahme aus. Der Rückgabewert beginnt mit OK, wenn die Ausführung des Kommandos erfolgreich war, und mit ERR, wenn das Kommando fehlgeschlagen ist.

(Siehe auch: Methode cmd)

Ergebnis

Es wird das Ergebnis des DBM-Kommandos zurückgegeben.

Angabe eines gültigen DBM-Kommandos

result = session.rawCmd ('db_state')
print repr (result)

Ausgabe:

'OK\nState\nOFFLINE\n'

Angabe eines ungültigen DBM-Kommandos

result = session.rawCmd ('invalid command')
print repr (result)

Ausgabe:

'ERR\n-24977,ERR_COMMAND: unknown command "invalid"\n'


Methode release (MaxDB: Python-Handbuch)

Methode release

Definition

release ()

Verwendung

release ist eine Methode der Klasse DBM. Sie beendet die Verbindung zum Programm DBM-Server.


Beispiele für das Modul sapdb.dbm (MaxDB: Python-Handbuch)

Beispiele für das Modul sapdb.dbm

Erzeugen einer Verbindung

#

# testdbm.py - Testen der Verbindung zum DBM-Server

#

import sapdb.dbm
session = sapdb.dbm.DBM ('', '')
version = session.cmd ("dbm_version")
print version

Starten der Datenbankinstanz

#

# dbup.py - Starten der Datenbankinstanz

#

import sys
import sapdb.dbm
_database_name = sys.argv [1]
session = sapdb.dbm.DBM ('', _database_name, '', 'DBM,DBM')
session.cmd ('db_online')


Fehlerbehandlung für das Modul sapdb.dbm (MaxDB: Python-Handbuch)

Fehlerbehandlung für das Modul sapdb.dbm

In Fehlersituationen lösen die Methoden des Moduls sapdb.dbm eine der folgenden Ausnahmen aus:

Klasse CommunicationError

Klasse DBMServError


Klasse CommunicationError (MaxDB: Python-Handbuch)

Klasse CommunicationError

Ausnahmen der Klasse CommunicationError werden ausgelöst, wenn keine Verbindung zum DBM-Server hergestellt werden kann oder eine bestehende Verbindung abgebrochen wird.

Instanzen der Klasse CommunicationError haben die folgenden Attribute:

Attribut | Beschreibung
errorCode | Fehlercode
message | Text der Fehlermeldung

Der DBM-Server, zu dem die Verbindung aufgebaut werden soll, existiert nicht:

try:
    session = sapdb.dbm.DBM ('unknownhost', '')
except sapdb.dbm.CommunicationError, err:
    print err
     print err.message

Ausgabe:

dbm.CommunicationError: [-4] unknown host name
unknown host name


Klasse DBMServError (MaxDB: Python-Handbuch)

Klasse DBMServError

Ausnahmen der Klasse DBMServError werden ausgelöst, wenn der DBM-Server einen Fehler meldet.

Instanzen der Klasse DBMServError haben die folgenden Attribute:

Attribut | Beschreibung
errorCode | Nummer der Fehlermeldung (Siehe auch: Dokumentation Meldungen)
errorSymbol | Kurztext der Fehlermeldung
message | Langtext der Fehlermeldung
additionalInfo | Text mit Zusatzinformationen
cmd | DBM-Kommando, das den Fehler erzeugt hat


Modul sapdb.loader (MaxDB: Python-Handbuch)

Modul sapdb.loader

Syntax

import sapdb.loader

Verwendung

Mit Hilfe des Python-Moduls loader können Sie Datenbankschemata und Daten in die Datenbank laden oder aus der Datenbank entladen.

Inhalt des Moduls

Klasse Loader

Fehlerbehandlung für das Modul sapdb.loader


Klasse Loader (MaxDB: Python-Handbuch)

Klasse Loader

Verwendung

Loaderist eine Klasse des Moduls sapdb.loader. Alle Dateinamen in den Loader-Kommandos müssen für den Rechner angegeben werden, auf dem der Loader-Server gestartet wurde.

Eine Instanz der Klasse Loader entspricht einer Verbindung zu einem Loader-Server.

Damit wird jedoch noch keine Verbindung zwischen Loader-Server und Datenbank aufgebaut.

Um eine Verbindung zwischen Loader-Server und Datenbank aufzubauen, führen Sie die Loader-Kommandos USE SERVERDB und USE USER aus

Inhalt der Klasse

Die Klasse Loader enthält folgende Methoden:

cmd (cmd_string)

rawCmd (cmd_string)

sql (cmd_string)

release ()

Definition des Constructors

Loader (database_server = '')

Parameter | Beschreibung
database_server | Netzwerkname des Rechners, mit dem die Verbindung aufgebaut werden soll Wenn Sie für database_server keine Angabe machen, wird eine Verbindung zum lokalen Rechner hergestellt.

Erzeugen einer Verbindung session zum Programm Loader-Server auf dem aktuellen Rechner:

session = sapdb.loader.Loader ()

Erzeugen einer Verbindung session zum Programm Loader-Server auf dem Rechner remoteserver:

session = sapdb.loader.Loader('remoteserver')


Methode cmd (MaxDB: Python-Handbuch)

Methode cmd

Definition

cmd (cmd_string)

Verwendung

cmd ist eine Methode der Klasse Loader. Sie senden damit das unter cmd_string angegebene Loader-Kommando an das Programm Loader-Server.

Ergebnis

Es wird das Ergebnis des Loader-Kommandos zurückgegeben.

Wenn das Programm Loader-Server einen Fehler zurückgibt, dann wird eine Ausnahme der Klasse LoaderError ausgelöst.

Angabe eines gültigen Loader-Kommandos

result = session.cmd ('CREATE TABLE testtable (colname INTEGER)')
print repr (result)

Ausgabe:

''

Angabe eines ungültigen Loader-Kommandos

result = session.cmd ('invalid command')
print repr (result)

Ausgabe:

Traceback (innermost last):
loader.LoaderError: loader.LoaderError: [-25010] SQL [-3005] Invalid SQL Statement (error position: 1)

(Siehe auch: Methode rawCmd)


Methode rawCmd (MaxDB: Python-Handbuch)

Methode rawCmd

Definition

rawCmd (cmd_string)

Verwendung

rawCmdist eine Methode der Klasse Loader. Sie senden damit das unter cmd_string angegebene Loader-Kommando an das Programm Loader-Server.

Fehler des Loader-Server lösen keine Ausnahme aus. Der Rückgabewert beginnt mit OK, wenn die Ausführung des Kommandos erfolgreich war, und mit ERR, wenn das Kommando fehlgeschlagen ist.

(Siehe auch: Methode cmd)

Ergebnis

Es wird das Ergebnis des Loader-Kommandos zurückgegeben.

Angabe eines gültigen Loader-Kommandos

result = session.rawCmd ('CREATE TABLE testtable2 (colname INTEGER)')
print repr (result)

Ausgabe:

'OK \012'

Angabe eines ungültigen Loader-Kommandos

result = session.rawCmd ('invalid command')
print repr (result)

Ausgabe:

' ERR\012-25010\012SQL error -3005 = Invalid SQL statement (error position: 1)'


Methode sql (MaxDB: Python-Handbuch)

Methode sql

Definition

sql (cmd_string)

Verwendung

sql ist eine Methode der Klasse Loader. Sie senden damit das unter cmd_string angegebene Loader-Kommando an den Loader-Server.

Ergebnis

Wenn die Anweisung erfolgreich ausgeführt wurde, ist der Ergebniswert 0

Wenn die Ausführung der Anweisung zu einem SQL-Fehler führt, dann wird die Nummer der Fehlermeldung der SQL-Anweisung zurückgegeben.

Wenn die Ausführung der Anweisung zu einem Loader-Fehler führt, dann wird die Ausnahme LoaderError ausgelöst.

Ausführen einer gültigen SQL-Anweisung

session.cmd ('CREATE TABLE testtable3 (a integer)')

Ausgabe:

0

Ausführen einer ungültigen SQL-Anweisung

session.cmd ('invalid command')

Ausgabe ist der Fehlercode der SQL-Anweisung:

3005

Ausführen eines ungültigen Loader-Kommandos

session.cmd ('DATALOAD invalid spec')

Ausgabe ist die Ausnahme des Loader-Server:

Traceback (innermost last):
loader.LoaderError: loader.LoaderError: [-25281] Syntax error at position 10 (Unexpected token: invalid)


Methode release (MaxDB: Python-Handbuch)

Methode release

Definition

release ()

Verwendung

release ist eine Methode der Klasse Loader. Sie beendet die aktuelle Verbindung zum Programm Loader-Server.


Beispiel für das Modul sapdb.loader (MaxDB: Python-Handbuch)

Beispiel für das Modul sapdb.loader

Erzeugen einer Verbindung

#
# testloader.py   Testen der Verbindung zwischen der Datenbankinstanz
#                 tst und dem Loader-Server für den Benutzer testuser
#                 mit dem Kennwort test.

 import sapdb.loader
session = sapdb.loader.Loader ('', '')
session.cmd ('USE SERVERDB tst')
session.cmd ('USE USER testuser test')


Fehlerbehandlung für das Modul sapdb.loader (MaxDB: Python-Handbuch)

Fehlerbehandlung für das Modul sapdb.loader

In Fehlersituationen lösen die Methoden des Moduls sapdb.loader eine der folgenden Ausnahmen aus:

Klasse CommunicationError

Klasse LoaderError


Klasse CommunicationError (MaxDB: Python-Handbuch)

Klasse CommunicationError

Ausnahmen der Klasse CommunicationError werden ausgelöst, wenn keine Verbindung zum Loader-Server hergestellt werden kann oder eine bestehende Verbindung abgebrochen wird.

Instanzen der Klasse CommunicationError haben die folgenden Attribute:

Attribut | Beschreibung
errorCode | Fehlercode
message | Text der Fehlermeldung

Der Loader-Server, zu dem die Verbindung aufgebaut werden soll, existiert nicht:

try:
    session = sapdb.loader.Loader ('unknownhost', '')
except sapdb.loader.CommunicationError, err:
    print err
    print err.message

Ausgabe:

loader.CommunicationError: [-4] unknown host name
unknown host name


Klasse LoaderError (MaxDB: Python-Handbuch)

Klasse LoaderError

Ausnahmen der Klasse LoaderError werden ausgelöst, wenn das Programm Loader-Server einen Fehler meldet.

Instanzen der Klasse LoaderError haben die folgenden Attribute:

Attribut | Beschreibung
errorCode | Nummer der Fehlermeldung (Siehe auch: Dokumentation Meldungen)
message | Langtext der Fehlermeldung
sqlCode | Nummer der Fehlermeldung der SQL-Anweisung, wenn die Ausführung der Anweisung zu einem SQL-Fehler führt oder 0, wenn die Ausführung der Anweisung zu einem Loader-Fehler führt
sqlMessage | Text der SQL-Fehlermeldung
cmd | Loader-Kommando, das den Fehler erzeugt hat


Backint for MaxDB

Einsatzmöglichkeiten

Die Implementierung einer 'Backint for MaxDB'-Schnittstelle ermöglicht das Sichern und Wiederherstellen von MaxDB-Datenbanksystemen mit Hilfe externer Sicherungswerkzeuge. Die Kommunikation zwischen dem Datenbankwerkzeug und den externen Sicherungswerkzeugen erfolgt über eine offene Schnittstelle.

Dieses Dokument beschreibt, welche Eigenschaften jede Implementierung des Backint for MaxDB haben muss.

Da SAP bereits die offene Schnittstelle BACKINT zur Integration allgemeiner Client-/Server-Programme in das ORACLE- Sicherungs- und Wiederherstellungsprogramm SAPDBA angelegt hat, wird die Schnittstelle 'Backint for MaxDB' analog zu BACKINT definiert.

Backint for MaxDB ist so entworfen, dass sie zusammen mit BACKINT (für Oracle) in einem einzigen Programm implementiert werden kann.

Allgemeine Informationen zum Datenbanksystem MaxDB finden Sie in der Dokumentation Datenbankverwaltung.

Siehe auch:

Unterstützte Betriebssysteme und Plattformen ab Datenbankversion 7.5

Unterstützte Betriebssysteme und Plattformen der Datenbankversion 7.4

Unterstützte Betriebssysteme und Plattformen der Datenbankversion 7.3


Sichern und Wiederherstellen mit MaxDB-Programmen (MaxDB: Backint for MaxDB)

Sichern und Wiederherstellen mit MaxDB-Programmen

MaxDB-Datenbanksysteme können mit Hilfe von MaxDB-Programmen gesichert und wiederhergestellt werden.

MaxDB-Programme ermöglichen vollständige und inkrementelle Datensicherungen auf Bändern (Tapes), Dateien, benannten Pipes, Autoloadern und externen Sicherungswerkzeugen. Sicherungen können sowohl im Online- als auch im Offline-Betrieb des Datenbanksystems durchgeführt werden.

Die Aktionen zum Sichern und Wiederherstellen werden über das Verwaltungswerkzeug Database Manager gesteuert, das zusammen mit dem MaxDB-Softwarepaket ausgeliefert wird.

Der Database Manager besteht aus einem Server-Teil (DBM-Server) und einem Client-Teil.
Der DBM-Server stellt die Verbindung zur Datenbankinstanz her und kann über Betriebssystemressourcen auf ihre Umgebung zugreifen.
Es gibt drei verschiedene Clients: Database Manager GUI, Database Manager CLI und Web DBM. Sie stellen eine Verbindung zum DBM-Server her und tauschen über einen Anfrage-/Antwort-Mechanismus Daten mit dem DBM-Server aus.

Der Database Manager GUI ist abwärtskompatibel, d. h. Sie können damit auch ältere Datenbankversionen verwalten.


Sichern und Wiederherstellen mit externen Sicherungsprogrammen (MaxDB: Backint for MaxDB)

Sichern und Wiederherstellen mit externen Sicherungsprogrammen

Verwendung

Sie können externe Sicherungswerkzeuge anschließen, um ein MaxDB-Datenbanksystem zu sichern und wiederherzustellen. Der Datentransfer erfolgt dabei mit Hilfe des Database Manager über benannte Pipes.

Dabei gibt es zwei Möglichkeiten:

· Das externe Sicherungswerkzeug wird vom DBM-Server gesteuert.

Beim Sichern initiiert der DBM-Server den Datentransfer von der Datenbankinstanz zu einer oder mehreren Pipes und ruft zum Sichern der in den Pipes gelieferten Daten das externe Sicherungswerkzeug auf. Wenn das Datenbanksystem oder das externe Sicherungswerkzeug einen Fehler verursachen, beendet der DBM-Server den Datentransfer und informiert den Datentransferpartner.

Beim Wiederherstellen fordert der Client die verfügbaren Sicherungen über den DBM-Server vom externen Sicherungswerkzeug an. Dann zeigt er das Ergebnis dieser Abfrage dem Benutzer an und initiiert und steuert den Transfer der gewünschten Sicherungen mit Hilfe einer oder mehrerer Pipes vom externen Sicherungswerkzeug zur Datenbankinstanz.

Siehe auch: Dokumentation Anschluss Externer Sicherungswerkzeuge, Abschnitt Blockdiagramm Sichern und Wiederherstellen

· Das externe Sicherungswerkzeug verwendet die Client-Anwendung Database Manager CLI zur Steuerung der Datenbank.


Funktionsbeschreibung für Backint for MaxDB (MaxDB: Backint for MaxDB)

Funktionsbeschreibung für Backint for MaxDB

Backint for MaxDB führt das Sichern und Wiederherstellen mit dem entsprechenden MaxDB-Datenbankwerkzeug durch und sucht nach früheren Sicherungen. Das Programm ist die Verbindung zwischen dem DBM-Server und dem externen Sicherungswerkzeug.

Wenn das externe Sicherungswerkzeug eine Client-/Server-Architektur hat, kommuniziert Backint for MaxDB mit dem Client. Andernfalls implementiert es den Client, der auf dem Datenbankserver läuft. Auf diese Weise kann das MaxDB-Datenbankwerkzeug unterschiedliche externe Sicherungswerkzeuge standardisiert einsetzen.

Siehe auch: Dokumentation Anschluss Externer Sicherungswerkzeuge, Abschnitt Blockdiagramm Sichern und Wiederherstellen

Backint for MaxDB unterstützt folgende Funktionen:

· Sichern (backup)

· Wiederherstellen (restore)

· Auskunft (inquire)

· Löschen (delete)

Für alle Funktionen wird die Benutzerkennung (UID) zur Kennzeichnung der MaxDB-Datenbank verwendet. Nachdem die Funktion ausgeführt wurde, gibt Backint for MaxDB einen Rückgabewert aus, aus dem hervorgeht, ob der Aufruf erfolgreich war.


Sicherungsfunktion (backup) (MaxDB: Backint for MaxDB)

Sicherungsfunktion (backup)

Allgemeine Funktionsbeschreibung

Mit Hilfe der Sicherungsfunktion wird eine Sicherungsanfrage für die in einer Liste angegebenen Dateien oder Pipes definiert und an Backint for MaxDB übermittelt. Backint for MaxDB sichert diese Dateien oder Pipes und erzeugt als Antwort eine Sicherungskennung für die gesicherten Dateien oder Pipes, welche die Sicherung eindeutig kennzeichnet.

Backint for MaxDB informiert den Benutzer, welche Dateien oder Pipes erfolgreich gesichert wurden und welche nicht, welche Sicherungskennung den einzelnen Dateien und Pipes zugeordnet wurde, und wie viele Bytes für jede Pipe gesichert wurden.

Die Reihenfolge, in der die Dateien und/oder Pipes in der Liste gesichert werden, wird vom externen Sicherungswerkzeug frei bestimmt.

Art der zu sichernden Objekte

In der Eingabeliste für die Sicherungsfunktion ist gekennzeichnet, ob ein zu sicherndes Objekt eine Datei oder eine Pipe ist. Sie können in der Eingabeliste gemischt angegeben sein.

Backint for MaxDB und BACKINT (für Oracle) unterscheiden sich in den zulässigen Objekten für die Sicherung:

BACKINT (für Oracle) lässt Dateien, Verzeichnisse und Raw Devices zu.

Backint for MaxDB lässt nur Dateien und Pipes zu.

Datentransfer

Wenn die Eingabeliste Dateien enthält, werden diese so gesichert, wie sie im Dateisystem abgelegt sind.

Für das Wiederherstellen von Pipes gelten folgende Regeln:

Die Software (DBM-Server) oder der Benutzer, die/der Backint for MaxDB aufgerufen hat, stellen sicher, dass jede Pipe in der Liste mindestens einmal geöffnet und geschlossen wird. Backint for MaxDB gibt für jede Pipe, die nicht geöffnet wurde, einen Fehler zurück. Für einen Datentransfer müssen beide Seiten einer Pipe geöffnet werden; die eine Seite durch die Datenbanksoftware oder den Benutzer und die andere Seite durch Backint for MaxDB. Wenn Pipes, die in der Eingabedatei aufgeführt sind, nicht existieren, legt Backint for MaxDB sie entweder an oder prüft periodisch, ob sie vorhanden sind.

Pipes werden nur zum Lesen geöffnet. Der Datentransfer durch eine Pipe endet, sobald eine Seite der Pipe geschlossen wird.

Wenn eine Datenbankversion kleiner als 7.4.03 verwendet wird und mehrere Pipes in der Eingabedatei angegeben sind, müssen die Pipes parallel und in Echtzeit verarbeitet werden, um gegenseitiges Sperren (Deadlocks) zu vermeiden. Backint for MaxDB muss also alle Pipes gleichzeitig, dabei aber unabhängig voneinander verarbeiten.

Das Öffnen oder Lesen einer Pipe darf nicht das Öffnen und die Datentransfers der anderen in der Eingabedatei aufgeführten Pipes sperren. Zu diesem Zweck prüft Backint for MaxDB jede Pipe periodisch, um sicherzustellen, dass sie geöffnet werden kann oder dass Daten aus der Pipe gelesen werden können. Dies kann dadurch erreicht werden, dass für jede einzelne Pipe ein untergeordneter Prozess oder Thread gestartet wird und jede Synchronisation zwischen diesen Prozessen und/oder Threads vermieden wird. So können die Prozesse oder Threads die Pipes mit normalen blockierenden Operationen öffnen und lesen, da das Betriebssystem periodisch zwischen den Prozessen oder Threads aller Pipes hin- und herschaltet.

Wenn eine Datenbankversion ab 7.4.03 verwendet wird und mehrere Pipes in der Eingabedatei angegeben sind, verarbeitet Backint for MaxDB diese Pipes zumindest teilweise parallel. Andernfalls würde die Möglichkeit, parallel sichern zu können, keine Vorteile bieten. Abhängigkeiten zwischen den Pipes oder den Prozessen/Threads, die diese Pipes verarbeiten, müssen während des Sicherungsvorganges nicht vermieden werden, da die Datenbank selbst die Pipes unabhängig voneinander verarbeitet.

MaxDB kann, muss aber nicht das parallele Sichern von Pipes unterstützen. Ebenso ist es möglich, Backint for MaxDB nur für Datenbankversionen 7.4.03 oder für alle Datenbankversionen zu konzipieren, für die diese Dokumentation gilt.


Wiederherstellungsfunktion (restore) (MaxDB: Backint for MaxDB)

Wiederherstellungsfunktion (restore)

Mit Hilfe der Wiederherstellungsfunktion wird eine Anfrage zur Wiederherstellung von Sicherungen an Backint for MaxDB übergeben. Diese Anfrage besteht aus der Benutzerkennung (Siehe auch: Variablen) und einer Liste der wiederherzustellenden Dateien und/oder Pipes.

Für Dateien werden die Sicherungskennung, ihr Name und ein Verzeichnis angegeben, in dem die Datei wiederhergestellt werden soll. Für Pipes werden die Sicherungskennung, ihr Name und der Name der aktuellen Pipe angegeben, in der der Inhalt der gesicherten Pipe wiederhergestellt werden soll. Der Name des Verzeichnisses, in der die Datei angelegt werden soll, und der Name der aktuellen Pipe sind optional. Wenn keine Sicherungskennung angegeben ist, wird die letzte Sicherung der Datei oder Pipe wiederhergestellt. Die zurückgegebenen Informationen geben an, welche Dateien oder Pipes wiederhergestellt wurden und welche Sicherungen verwendet wurden.

Die Reihenfolge, in der die Dateien in der Liste wiederhergestellt werden, wird von Backint for MaxDB frei bestimmt.

Art des Sicherungsmediums

Für die Wiederherstellungsfunktion verwendet Backint for MaxDB eigene Informationen oder Informationen des Sicherungswerkzeugs um zu ermitteln, ob es sich bei einem wiederherzustellenden Objekt um eine Datei oder eine Pipe handelt. In der Eingabeliste können sie gemischt angegeben sein.

Datentransfer

Wenn die Eingabeliste Dateien enthält, dann werden diese im Dateisystem wiederhergestellt.

Die Software (DBM-Server) oder der Benutzer, die/der Backint for MaxDB aufgerufen hat, stellen sicher, dass jede Pipe in der Liste mindestens einmal geöffnet und geschlossen wird. Backint for MaxDB gibt für jede Pipe, die nicht geöffnet wurde, einen Fehler zurück. Es stellt die Daten in einer Pipe in der Reihenfolge wieder her, in der sie aus der originalen, gesicherten Pipe gelesen wurden. Für einen Datentransfer müssen beide Seiten einer Pipe geöffnet werden; die eine Seite durch die Datenbanksoftware oder den Benutzer und die andere Seite durch Backint for MaxDB. Wenn Pipes, die in der Eingabedatei aufgeführt sind, nicht existieren, legt Backint for MaxDB sie entweder an oder prüft periodisch, ob sie vorhanden sind.

Pipes werden nur zum Schreiben geöffnet. Der Datentransfer durch eine Pipe endet, sobald eine Seite der Pipe geschlossen wird.

Wenn eine Datenbankversion kleiner als 7.4.03 verwendet wird und mehrere Pipes in der Eingabedatei angegeben sind, müssen die Pipes parallel und in Echtzeit verarbeitet werden, um gegenseitiges Sperren (Deadlocks) zu vermeiden. Backint for MaxDB muss also alle Pipes gleichzeitig, dabei aber unabhängig voneinander verarbeiten.

Das Öffnen oder Schreiben einer Pipe darf nicht das Öffnen und die Datentransfers der anderen in der Eingabedatei aufgeführten Pipes sperren. Zu diesem Zweck prüft Backint for MaxDB jede Pipe periodisch, um sicherzustellen, dass sie geöffnet werden kann oder dass Daten in die Pipe geschrieben werden können. Dies kann dadurch erreicht werden, dass für jede einzelne Pipe ein untergeordneter Prozess oder Thread gestartet wird und jede Synchronisation zwischen diesen Prozessen und/oder Threads vermieden wird, einschließlich der Synchronisation, die aus gemeinsam genutzten Ressourcen wie Bändern resultiert. Dann können die Prozesse oder Threads die Pipes mit normalen blockierenden Operationen öffnen und beschreiben, da das Betriebssystem periodisch zwischen den Prozessen oder Threads aller Pipes hin- und herschaltet.

Wenn eine Datenbankversion ab 7.4.03 verwendet wird und mehrere Pipes in der Eingabedatei angegeben sind, verarbeitet Backint for MaxDB ein Maximum dieser Pipes parallel. Dadurch werden minimale Wiederherstellungszeiten erreicht. Abhängigkeiten zwischen den Pipes oder den Prozessen/Threads, die diese Pipes verarbeiten, müssen während der Wiederherstellung nicht vermieden werden, da die Datenbank selbst die Pipes unabhängig voneinander verarbeitet.

MaxDB kann, muss aber nicht das parallele Wiederherstellen von Pipes unterstützen. Ebenso ist es möglich, Backint for MaxDB nur für Datenbankversionen 7.4.03 oder für alle Datenbankversionen zu konzipieren, für die diese Dokumentation gilt. Allerdings muss der unterstützte Typ der parallelen Wiederherstellung dem Typ der parallelen Sicherung entsprechen.


Auskunftsfunktion (inquire) (MaxDB: Backint for MaxDB)

Auskunftsfunktion (inquire)

Mit Hilfe der Auskunftsfunktion können Informationen über die vom externen Sicherungswerkzeug verwalteten Sicherungen abgefragt werden.

Diese Funktion wird mit der Benutzerkennung, der Sicherungskennung und dem Datei- oder Pipe-Namen aufgerufen. Die Benutzerkennung muss angegeben werden. Die Angabe der Sicherungskennung und des Datei- oder Pipe-Namens ist optional. Der Inhalt der Ausgabedatei für diese Funktion ist abhängig von den Angaben in der Abfrage.

Wenn die Eingabeliste mehrere Einträge enthält, dann generiert Backint for MaxDB die Ausgaben für die einzelnen Einträge und gibt sie in der Reihenfolge der Eingaben aus.

Es ergeben sich vier mögliche Fälle:

Einträge in der Eingabedatei

Einträge in der Ausgabedatei

Weder Sicherungskennung noch Datei- oder Pipe-Name angegeben:
#NULL

Liste der Sicherungskennungen für eine Benutzerkennung, sortiert nach Erzeugungsdatum (letzte Sicherung zuerst)
Ein Listeneintrag besteht aus einer Sicherungskennung.
 #BACKUP <backup_id>

Wenn keine Sicherungskennungen zur angegebenen Benutzerkennung vorhanden sind, erzeugt Backint for MaxDB keine Ausgabe.

Sicherungskennung angegeben,
Datei- oder Pipe-Name nicht angegeben:
<backup_id>

Liste der zur Sicherungskennung gehörigen Dateien oder Pipes
Jeder Listeneintrag besteht aus der angegebenen Sicherungskennung und einem Datei- oder Pipe-Namen.
 #BACKUP <backup_id> <file_name>
|#BACKUP <backup_id> <pipe_name>

Wenn keine Dateien und/oder Pipes zur angegebenen Sicherungskennung vorhanden sind, erzeugt Backint for MaxDB keine Ausgabe.

Datei- oder Pipe-Name angegeben,
Sicherungskennung nicht angegeben:
#NULL <file_name> |#NULL <pipe_name>

Liste der zu der angegebenen Datei oder Pipe gehörigen Sicherungskennungen, sortiert nach Erzeugungsdatum (letzte Sicherung zuerst)
Jeder Listeneintrag besteht aus einer Sicherungskennung und dem angegebenen Datei- oder Pipe-Namen.

( #BACKUP <backup_id> <file_name>
|#BACKUP <backup_id> <pipe_name>)

Wenn es keine Sicherung der angegebenen Datei oder Pipe gibt, generiert MaxDB eine Ausgabe, die das Schlüsselwort #NOTFOUND enthält.

(#NOTFOUND <file_name>)
(#NOTFOUND <pipe_name>)

Sowohl Sicherungskennung als auch Datei- oder Pipe-Name angegeben:
<backup_id> <file_name>
|<backup_id> <pipe_name>

Die durch die Sicherungskennung und den Datei- oder Pipe-Namen spezifizierte Sicherung:
#BACKUP <backup_id> <file_name>
|#BACKUP <backup_id> <pipe_name>

Wenn es keine Sicherung der angegebenen Datei oder Pipe mit der angegebenen Sicherungskennung gibt, generiert MaxDB eine Ausgabe, die das Schlüsselwort #NOTFOUND enthält.

(#NOTFOUND <file_name>)
(#NOTFOUND <pipe_name>)


Löschfunktion (delete) (MaxDB: Backint for MaxDB)

Löschfunktion (delete)

Mit Hilfe der Löschfunktion wird Backint for MaxDB darüber informiert, welche zuvor gesicherten Dateien oder Pipes nicht länger benötigt werden. Backint for MaxDB darf eine Löschanfrage ignorieren.

Wenn z.B. eine Sicherungsaktion nur teilweise erfolgreich war, wird Backint for MaxDB darüber durch die Löschfunktion informiert. Die Dateien oder Pipes, die nicht länger benötigt werden, werden mit Benutzerkennung, Sicherungskennung und Namen angegeben.


Programmdefinition für Backint for MaxDB (MaxDB: Backint for MaxDB)

Programmdefinition für Backint for MaxDB

Variablen

Aufruf von Backint for MaxDB

Optionen

Inhalt der Eingabedatei

Inhalt der Ausgabedatei

Rückgabewerte


Variablen (MaxDB: Backint for MaxDB)

Variablen

Variablen

In den Abschnitten dieses Dokuments werden alle Variablen mit folgenden Bedeutungen und Definitionen verwendet:

Variable | Beschreibung | Typ (max. Länge)
<backup_id> | Sicherungskennung (BID) | CHAR(16)
<backup_vol> | Sicherungsabschnitt (z.B. Bandetikett) | CHAR(10)
<dest_dir> | absolutes Verzeichnis und Name, unter dem eine gesicherte Datei wiederhergestellt werden soll | CHAR(255)
<dest_name> | absoluter Name der aktuellen Pipe, in der der Inhalt einer gesicherten Pipe wiederhergestellt werden soll | CHAR(255)
<file_name> | absolutes Verzeichnis und Name der Datei | CHAR(255)
<in_file> | Name der Eingabedatei | CHAR(255)
<out_file> | Name der Ausgabedatei | CHAR(255)
<par_file> | Name der Parameterdatei | CHAR(255)
<pipe_name> | absoluter Name der Pipe | CHAR(255)
<size> | Datei- oder Pipe-Größe | CHAR(16)
<user_id> | Benutzerkennung (UID) | CHAR(16)


Sicherungskennung (BID) (MaxDB: Backint for MaxDB)

Sicherungskennung (BID)

Die Implementierung von Backint for MaxDB erzeugt beim Sichern einer Datei oder Pipe eine Sicherungskennung (BID) und schreibt sie in die Ausgabedatei. Diese wird dann für die Funktionen Wiederherstellung, Auskunft und Löschung verwendet.

Eine Sicherungskennung muss nicht unbedingt eindeutig sein, da sie sowohl der Sicherung einer einzelnen Datei oder Pipe als auch den Sicherungen mehrerer Dateien und/oder Pipes zugeordnet werden kann. Jedoch wird jede Sicherung immer durch eine eindeutige Kombination von Benutzerkennung, Sicherungskennung und Datei- oder Pipe-Namen gekennzeichnet.


Aufruf von Backint for MaxDB (MaxDB: Backint for MaxDB)

Aufruf von Backint for MaxDB

Backint for MaxDB muss auf Kommandozeilenebene mit folgender Syntax aufgerufen werden können:

backint -u <user_id> [-f <function>] [-t <type>] [-c] [-p <par_file>] [-i <in_file>] [-o <out_file>]

Für die Beschreibung der Optionen siehe Abschnitt Optionen

Für die Beschreibung der Variablen siehe Abschnitt Variablen

Zusätzlich zu den Optionen unterstützt die Schnittstelle einige Umgebungsvariablen, die vom DBM-Server gesetzt werden, bevor Backint for MaxDB aufgerufen wird:

Umgebungsvariable | Wert | Beschreibung
BI_CALLER | DBMSRV | Backint for MaxDB wird vom DBM-Server aufgerufen
BI_BACKUP | FULL | PARTIAL | ARCHIVE | vollständige oder inkrementelle Datensicherung oder Log-Sicherung
BI_REQUEST | NEW | OLD | erster oder nachfolgender Aufruf von Backint for MaxDB während einer laufenden Sicherung

Da der DBM-Server die Umgebung dynamisch setzt (putenv), kann Backint for MaxDB als ein vom DBM-Server gestarteter Prozess diese Variablen erben (getenv) und anhand ihrer Werte die weitere Verarbeitung steuern.


Optionen (MaxDB: Backint for MaxDB)

Optionen

Folgende Optionen müssen für Backint for MaxDB gesetzt werden können:

Option | Beschreibung | Vorschlagswert
-u <user_id> | Benutzerkennung (UID), Benutzer des Sicherungswerkzeugs (z. B. Name der Datenbankinstanz) | Keiner
-f <function> | <function>::= backup | restore | inquire | delete Art der Operation | backup
-t <type> | <type>::= file Sicherungstyp, file ist der einzig mögliche Typ für die Handhabung von Dateien oder Pipes Er ist equivalent zum Sicherungstyp file von BACKINT (für Oracle). | file
-c | Unbetreute Sicherung (keine Aktion durch Operator möglich) | Betreute Sicherung
-p <par_file> | Name der Parameterdatei, Textdatei für das externe Sicherungswerkzeug mit Parametern, die die Sicherungsprozedur festlegen ist spezifisch für das Sicherungswerkzeug Die MaxDB-Datenbankwerkzeuge entnehmen den Speicherort dieser Datei ihrer eigenen Parameterdatei, werten aber ihren Inhalt nicht aus. | Keiner
-i <in_file> | Name der Eingabedatei Textdatei mit den Objekten der Funktion (backup, restore, inquire oder delete). Siehe auch: Inhalt der Eingabedatei | Wenn diese Option nicht gesetzt ist, werden die Daten aus der Standardeingabe gelesen.
-o <out_file> | Name der Ausgabedatei Textdatei, in der Meldungen über die Verarbeitung und die Ergebnisse der ausgeführten Funktion gespeichert werden Siehe auch: Inhalt der Ausgabedatei | Wenn diese Option nicht gesetzt ist, werden die Meldungen in die Standardausgabe geschrieben.

Siehe auch: Variablen


Inhalt der Eingabedatei (MaxDB: Backint for MaxDB)

Inhalt der Eingabedatei

Die Eingabedatei besteht aus einer Liste von zu sichernden Objekten. Die Angaben müssen den unten angegebenen Syntaxregeln entsprechen.

Welche Angaben Backint for MaxDB verarbeiten muss, hängt von der verwendeten Funktion ab.

Siehe auch: Funktionsbeschreibung für Backint for MaxDB

Funktion | Inhalt der Eingabedatei | Syntax
Sichern | Namen der zu sichernden Dateien oder Pipes Pipes sind mit dem Schlüsselwort #PIPE markiert | <file_name> | <pipe_name> #PIPE
Wiederherstellen | Sicherungskennung/en und/oder Namen der wiederherzustellenden Dateien oder Pipes Wenn die letzte Version von Dateien oder Pipes wiederhergestellt werden soll, können die Sicherungskennungen teilweise oder ganz durch das Schlüsselwort #NULL ersetzt sein. Eine Kombination aus Sicherungskennung und Name einer Datei kann um den absoluten Namen eines Zielverzeichnisses erweitert sein, wenn die Datei in einem anderen Verzeichnis wiederhergestellt werden sollen, als sie gesichert wurde. Eine Kombination aus Sicherungskennung und Name einer Pipe kann um den absoluten Namen der Ziel-Pipe erweitert sein, wenn der Inhalt der Pipe in einer anderen Pipe wiederhergestellt werden soll, als er gesichert wurde. | <backup_id> <file_name> [<dest_dir>] | #NULL <file_name> [<dest_dir>] | <backup_id> <pipe_name> [<dest_name>] | #NULL <pipe_name> [<dest_name>]
Auskunft | Sicherungskennung/en und/oder Namen der Dateien oder Pipes, zu denen Informationen abgefragt werden | #NULL | <backup_id> | #NULL <file_name> | #NULL <pipe_name> | <backup_id> <file_name> | <backup_id> <pipe_name>
Löschung | Sicherungskennungen und Namen der Dateien oder Pipes, die gelöscht werden können. | <backup_id> <file_name> | <backup_id> <pipe_name>

Siehe auch: Variablen


Inhalt der Ausgabedatei (MaxDB: Backint for MaxDB)

Inhalt der Ausgabedatei

Die Ausgabedatei enthält die Meldungen über die Verarbeitung sowie die Ergebnisse der ausgeführten Funktion. Neben den Erfolgs- und Fehlermeldungen im definierten Format kann die Datei noch weitere Meldungen enthalten.

Der Meldungsinhalt ist von der ausgeführten Funktion abhängig.

Siehe auch: Funktionsbeschreibung für Backint for MaxDB

Funktion

Erfolgsmeldung

Fehlermeldung

Sichern

#SAVED <backup_id> <file_name> [<backup_vol>]

| #SAVED <backup_id> <pipe_name> <size> [<backup_vol>]

#ERROR <file_name>
| #ERROR <pipe_name>

Wiederherstellen

#RESTORED <backup_id> <file_name>
| #RESTORED <backup_id> <pipe_name>

#NOTFOUND <file_name>
| #NOTFOUND <pipe_name>
| #ERROR <file_name>
| #ERROR <pipe_name>

Auskunft

#BACKUP <backup_id>
| #BACKUP <backup_id> <file_name>
| #BACKUP <backup_id> <pipe_name>

#NOTFOUND <file_name>
| #NOTFOUND <pipe_name>
| #ERROR <file_name>
| #ERROR <pipe_name>

Löschung

#DELETED <backup_id> <file_name>
| #DELETED <backup_id> <pipe_name>

#NOTFOUND <file_name>
| #NOTFOUND <pipe_name>
| #ERROR <file_name>
| #ERROR <pipe_name>
| #NOTDELETED <file_name>
| #NOTDELETED <pipe_name>

Siehe auch: Variablen


Rückgabewerte (MaxDB: Backint for MaxDB)

Rückgabewerte

Backint for MaxDB wird von der Software (d. h. dem DBM-Server) oder einem Benutzer aufgerufen. Software und Benutzer erwarten, dass Backint for MaxDB einen der im folgenden beschriebenen Werte zurückliefert.

Rückgabewert | Beschreibung
0 | OK – Alle Dateien und Pipes wurden erfolgreich und ohne Warnungen verarbeitet.
1 | WARNUNG – Alle Dateien und Pipes wurden jedoch erfolgreich verarbeitet.
2 | FEHLER – Einige oder alle Dateien oder Pipes wurden nicht erfolgreich verarbeitet.


Unterstützte Betriebssysteme und Plattformen (Version 7.4) (MaxDB: Backint for MaxDB)

Unterstützte Betriebssysteme und Plattformen (Version 7.4)

Die Version 7.4 des Datenbanksystems unterstützt folgende Betriebssysteme und Plattformen:

· Compaq Tru64 Unix (Alpha)

· HP-UX (HP-PA)

· IBM AIX (PowerPC)

· Linux (i386, ia64)

· SUN Solaris (SPARC)

· Microsoft Windows 2000 (i386)

· Microsoft Windows XP (i386)

· Microsoft Windows Server 2003 (i386, ia64)


Unterstützte Betriebssysteme und Plattformen (Version 7.3) (MaxDB: Backint for MaxDB)

Unterstützte Betriebssysteme und Plattformen (Version 7.3)

Die Version 7.3 des Datenbanksystems unterstützt folgende Betriebssysteme und Plattformen:

· Compaq True64 Unix / Alpha

· IBM AIX / PowerPC

· SUN Solaris / SPARC

· HP-UX / HP-PA

· Linux / Intel

· Siemens Reliant Unix / MIPS

· Windows NT / Intel


Entwicklung

Titel der Dokumentation | Inhalt
Entwicklungsumgebung | Verwenden der Entwicklungsumgebung
Quelltext für Werkzeuge | Erzeugen von Quelltexten
Web Based Problem Tracking System | Web-Interface zum MaxDB-internen Programm PTS (Problem Tracking System) für die Dokumentation von Problemmeldungen zur MaxDB-Software


Entwicklungsumgebung

Allgemeine Verzeichnisstruktur der Entwicklungsumgebung

Entwicklungshierarchie

Umgebungsvariablen

Werkzeuge der Entwicklungshierarchie

Beispiele für das Arbeiten mit der Entwicklungsumgebung


Allgemeine Verzeichnisstruktur der MySQL MaxDB-Entwicklungsumgeb (MaxDB: Entwicklungsumgebung)

Allgemeine Verzeichnisstruktur der MySQL MaxDB-Entwicklungsumgebung

Die Entwicklungsumgebung für das Datenbanksystem MySQL MaxDB arbeitet mit einer fest definierten Verzeichnisstruktur.

Der oberste Knoten MaxDB_DEV entspricht der Umgebungsvariable $OWN.

Wenn Sie VMAKE zum ersten Mal aufrufen, wird vom System folgende Verzeichnisstruktur angelegt.

Der oberste Knoten MaxDB_DEV gliedert sich in 3 Bereiche:

· Entwicklungsbereich: sys

· temporärer Bereich: tmp

· Verzeichnis der erstellten Softwarekomponenten: usr

Entwicklungsbereich

Der Entwicklungsbereich gliedert sich in die Unterverzeichnisse desc, src und wrk.

Der Entwicklungsbereich ist nicht immer erforderlich. Unter Nutzung der Entwicklungshierarchie wird bei der Erzeugung auf die Sourcen aus der nächsten Hierarchiestufe zugegriffen.

· Im Verzeichnis desc, das auch Unterverzeichnisse haben kann, sind alle Arten von Beschreibungsdateien abgelegt.

· Im Verzeichnis src sind alle Moduldateien abgelegt, und zwar getrennt in mehreren Unterverzeichnissen, die auch als Schichten bezeichnet werden.

· Im Bereich des Unterverzeichnisses wrk findet der eigentliche Erstellungsprozeß statt. Außerdem werden hier sämtliche Zwischenprodukte (Objektdateien, Include-Dateien) und Protokolle abgelegt.

· Hier existiert für jede der drei VMAKE-Versionen ein separates Verzeichnis (fast, quick, slow) mit der gleichen Struktur. So hat jedes dieser Verzeichnisse ein Unterverzeichnis tmp. Dies ist der temporäre Arbeitsbereich, der während des MAKE-Vorganges genutzt wird.

· Im Unterverzeichnis obj werden alle Objektdateien und statischen Bibliotheken, die erzeugt werden, abgelegt.

· Im Unterverzeichnis dates liegen die Datumsdateien.

· Die Verzeichnisse psrc und csrc können als Zwischenspeicher für Moduldateien genutzt werden, nachdem die VMAKE_OPTION-Parameter entsprechend gesetzt wurden.

· Im Verzeichnis debug werden jene Moduldateien abgelegt, die im Debug-Modus übersetzt wurden.

· Da Include-Dateien unabhängig von der VMAKE-Version sind, werden sie direkt unterhalb des Verzeichnisses wrk im Verzeichnis incl abgelegt.

· Die dazugehörigen Datumsdateien werden entsprechend direkt unterhalb des Verzeichnisses wrk im Verzeichnis dates abgelegt.

Temporärer Bereich

Dies ist ein temporärer Bereich für das Werkzeugs iview.pl zur Bedienung der Entwicklungsumgebung. Bei Aufruf des Werkzeugs werden die angegebenen Modul- und/oder Beschreibungsdateien in das Verzeichnis tmp kopiert, sind dort aber nicht änderbar.

Verzeichnis der erstellten Softwarekomponenten

Das Verzeichnis der erstellten Softwarekomponenten usr ist das zukünftige DBROOT-Verzeichnis der MaxDB-Software. Hierher werden alle Komponenten, die zum Betreiben der Datenbank notwendig sind, kopiert.


Entwicklungshierarchie (MaxDB: Entwicklungsumgebung)

Entwicklungshierarchie

VMAKE ermöglicht einen Zugriff auf Modul- und Beschreibungsdateien über mehrere Ebenen hinweg. Es können mehrere Entwicklungsstände in verschiedenen Verzeichnissen (auch von anderen Rechnern) logisch übereinander gelegt werden. Damit ergibt sich ein Überblick über eine vollständige Softwareversion.

Es ist es nicht erforderlich, dass in jeder Hierarchiestufe alle Modul- und Beschreibungsdateien vorhanden sind. Für den Übersetzungsvorgang werden standardmäßig die Modul- und Beschreibungsdateien aus der obersten Hierarchiestufe genutzt. Diese Abfolge in der Hierarchie wird durch die Umgebungsvariable VMAKE_PATH definiert.

Mit der Standardinstallation der MaxDB-Entwicklungsumgebung wird eine zweistufige Hierarchie installiert. Damit ist gewährleistet, dass die originalen Modul- und Beschreibungsdateien immer erhalten bleiben.

Beispiel einer zweistufigen Hierarchie

Verzeichnis 1 (C:\OWN\MaxDB_ORG) | Enthält die originalen MaxDB-Sourcen, diese befinden sich in den Unterverzeichnissen sys/desc und sys/src (Allgemeine Verzeichnisstruktur). OWN muss jeweils an den Namen des verwendeten Release angepasst werden.
Verzeichnis 2 (C:\OWN\MaxDB_DEV) | Verzeichnis zur Erstellung und Entwicklung der MaxDB-Software. OWN muss jeweils an den Namen des verwendeten Release angepasst werden.


Arbeiten mit der MaxDB-Entwicklungshierarchie (MaxDB: Entwicklungsumgebung)

Arbeiten mit der MaxDB-Entwicklungshierarchie

Wenn Sie Dateien modifizieren wollen, kopieren Sie diese mit Hilfe des Werkzeugs icp.pl vom Verzeichnis MaxDB_ORGin das Verzeichnis MaxDB_DEV der Entwicklungshierarchie.

Das Verzeichnis MaxDB_ORG befindet sich unter folgendem Pfad: C:\OWN\MaxDB_ORG

Das Verzeichnis MaxDB_DEV befindet sich unter folgendem Pfad: C:\OWN\MaxDB_DEV

In diesem Fall muss die Umgebungsvariable $VMAKE_PATH folgenden Eintrag haben:

VMAKE_PATH= C:\OWN\MaxDB_DEV,C:\OWN\MaxDB_ORG

OWN muss jeweils an den Namen des verwendeten Release angepasst werden.

Bei einem MAKE-Vorgang würde nun MaxDB_DEV nach einer Modul- oder Beschreibungsdatei abgesucht werden. Erst wenn VMAKE diese dort nicht findet, wird in der nächsten Ebene gesucht.

Wenn ein Pfad im VMAKE_PATH nicht mit doppelten Schrägstrichen endet, wird dieser auch nach aktuellen Objektdateien im dortigen Verzeichnis wrk durchsucht. Die Dateien werden kopiert, wenn sie dem aktuellen Entwicklungsstand entsprechen. Eine Übersetzung der betreffenden Moduldateien ist nicht notwendig.

Zum Vergleichen der geänderten und originalen Modul- oder Beschreibungsdateien steht Ihnen das Werkzeug idiff.pl zur Verfügung.

Zum Anzeigen einer Modul- oder Beschreibungsdatei steht Ihnen das Werkzeug iview.pl zur Verfügung.


Umgebungsvariablen (MaxDB: Entwicklungsumgebung)

Umgebungsvariablen

VMAKE stützt sich bei seiner Initialisierung auf Umgebungsvariablen.

Unter Microsoft Windows sind Umgebungsvariablen in Prozentzeichen einzuschließen.

Unter UNIX-Systemen stellen Sie stattdessen den Umgebungsvariablen ein $ voran. Dies ist auch die gewählte Schreibweise in dieser Dokumentation.

Alle aufgeführten Umgebungsvariablen mit Ausnahme von $NOQUIET können über das Initialisierungsskript initDev_MaxDB.bat (Microsoft Windows) oder initDev_MaxDB (UNIX) gesetzt werden. Dieses Skript wird bei der Installation der Entwicklungsumgebung im Verzeichnis MaxDB_DEV angelegt.

$VMAKE_VERSION

$VMAKE_DEFAULT

$VMAKE_OPTION

$INSTROOT

$VMAKE_PATH

$SHELL

$TOOLSHELL

$TOOLOPT

$TOOL

$TOOLEXT

$DLL_TYPE

$ARC_TYPE

$OWN

$WRK

$PATH

%INCLUDE%

$RELVER

$CORRECTION_LEVEL

$BUILD_PRAEFIX

$PYTHONPATH

$PERL5LIB

$EDITOR

$DBROOT

$NOQUIET

$TOOLVARS


$VMAKE_VERSION (MaxDB: Entwicklungsumgebung)

$VMAKE_VERSION

Diese Variable legt den Systemvorschlag für die VMAKE-Version fest.

VMAKE wertet nur den ersten Buchstaben der gesetzten Variable aus.

set VMAKE_VERSION=fast


$VMAKE_DEFAULT (MaxDB: Entwicklungsumgebung)

$VMAKE_DEFAULT

Diese Variable ist optional. Wenn sie nicht gesetzt ist, verwendet VMAKE den Eintrag für die Variable $VMAKE_VERSION . VMAKE wertet nur den ersten Buchstaben der gesetzten Variable aus.

Sie legt den Systemvorschlag für die Übersetzung von Moduldateien fest, die in Beschreibungsdateien aufgeführt sind.

set VMAKE_DEFAULT=fast

Bei einer Übersetzung mit der VMAKE-Version slow und dem Wert fast für die Variable $VMAKE_DEFAULT, werden von den in einer Beschreibungsdatei aufgeführten Dateien nur die Moduldateien fast , alle anderen Dateien jedoch slow übersetzt.


$VMAKE_OPTION (MaxDB: Entwicklungsumgebung)

$VMAKE_OPTION

Mit den Parametern für die Umgebungsvariable $VMAKE_OPTION legen Sie die Arbeitsweise von VMAKE fest.

Einige der für $VMAKE_OPTION möglichen Parameter können Sie durch die Eingabe von Optionen für den Aufruf von VMAKE übersteuern.

Setzen Sie keine Leerzeichen zwischen die einzelnen Parameter, wenn Sie mehrere angeben.

set VMAKE_OPTION=DISOhvWMLRg


Parameter für $VMAKE_OPTION (MaxDB: Entwicklungsumgebung)

Parameter für $VMAKE_OPTION

Für die Variable $VMAKE_OPTION können verschiedene Parameter gesetzt werden.

Setzen Sie keine Leerzeichen zwischen die einzelnen Parameter, wenn Sie mehrere angeben.

Parameter für die Suche nach Quelltext

Parameter für die Suche nach Objektdateien

Allgemeine Parameter für $VMAKE_OPTION

A | Objektdateien werden auch auf die erste Hierarchieebene von $VMAKE_PATH kopiert, wenn sie in einem eingebundenen Dateisystem zu finden sind.
a | Anstelle einer Fehlermeldung für unterschiedliche Groß-/Kleinschreibung eines Ziels in der Hierachie wird nur eine Warnung ausgegeben. Wenn sich Ziele in der Hierarchie in der Groß-/Kleinschreibung unterscheiden, gilt das normalerweise als Fehler.
b | Normalerweise dürfen C-Moduldateien keine PASCAL Include-Dateien nutzen. Wenn diese Option gesetzt ist, dann ist dies erlaubt und die aus der PASCAL Include-Datei erzeugten C-Header-Dateien werden genutzt.
C | c | C Level: Es gelten dieselben Regeln wie beim Pacal-Level mit der Ausnahme, daß hier keine PASCAL-Moduldateien existieren dürfen. Wenn PASCAL- und C-Level verwendet wird, werden beim Übersetzungsvorgang Nicht-PASCAL_Dateien vom PASCAL-Level auf das C-Level kopiert. C | c impliziert also, daß ein C-Port durchzuführen ist. PASCAL-Dateien werden in C-Dateien übersetzt. C verlangt, das Quelltext auf diesem Level verwaltet wird. Wenn Sie c verwenden ist dies optional, d.h. der Quelltext von diesem Level wird genutzt, wenn er vorhanden ist.
D | Date-Dateien werden genutzt, um das Datum einer Moduldatei zu vermerken, mit dem ein Programm erzeugt wurde.
e | Alle Objektdateien werden mit Debug-Informationen versehen.
g | global make: Werden Objekte in der Pfadhierarchie gefunden, die jünger als die der 1. Hierarchie sind, so werden diese auf die 1. Hierarchie kopiert (standardmäßiges Verhalten).
h | Gibt man auf der Kommandozeile eine Beschreibungsdatei ohne Endung an, so versucht VMAKE eine Beschreibungsdatei zu finden, die als Dateinamen den auf der Kommandozeile angegebenen Namen trägt. Dazu wird eine gewisse Suchreihenfolge eingehalten. Mit der Option h gibt man Beschreibungsdateien gemäß ihrer Dateiendung folgende Rangfolge: Zuerst wird nach einer Datei dieses Namens mit der Dateiendung shm , dann mit der Endung lnk , dann mit der Endung shr und zuletzt mit der Dateiendung rel gesucht.
H | PASCAL-Include-ateien werden nicht automatisch in C-eader-Dateien umwandelt.
I | i | Include Level: Include-Dateien sind mit einem Rahmen versehen. Dieser muß entfernt werden und die Include-Datei ist in das Include Verzeichnis zu stellen. Wenn weder die Option i noch I gesetzt ist, sind Include-Dateien untereinander unabhängig. Wenn i spezifiziert ist, gelten für Include-Dateien die normalen Abhängigkeitsregeln. Wenn I spezifiziert ist, werden für PASCAL Include-Dateien einer Größeninformation erzeugt. Include-Dateien werden nur berücksichtigt, wenn eine der Optionen S | s gesetzt ist.
l | local make: Objektdateien, deren Moduldateien auf dem ersten Pfad zu finden sind, werden als aktuell betrachtet. Es werden also niemals Objektdateien aus der Pfadhierarchie genutzt.
L | Libraries are like relocatables: Der Inhalt von Bibliotheken wird nicht analysiert. Das Datum der Bibliothek wird gegen die Datumsstempel der Objektdateien geprüft. Der Neubau der Bibliothek besteht aus dem Linken aller beteiligten Objektdateien.
M | Modules are independent: Objektdateien werden im Dateisystem gespeichert, da auf sie sonst nicht zugegriffen werden kann. Im anderen Fall können Objektdateien aus schon gelinkten Programmen genutzt werden.
O | o | Objekt Level: Diese Level enthält Objektdateien, die zur Programmerzeugung gelinkt werden können. Ist O gesetzt, werden diese Dateien entsprechend genutzt. Ist o spezifiziert, endet die Programmerzeugung, nachdem alle Objektdateien hergestellt sind.
P | p | PASCAL Level: Allen Moduldateien fehlt der Rahmen. PASCAL Level, da die meisten Moduldateien in PASCAL geschrieben sind und somit auf diesem Level PASCAL Moduldateien existieren. Dateien verschiedener Sprachen sind hier abgelegt. Ist P spezifiziert verbleiben PASCAL-Level-Dateien im PASCAL-Level-Verzeichnis. P verlangt, das Quelltext auf diesem Level verwaltet wird, mit p ist dies optional, d.h. der Quelltext von diesem Level wird genutzt, wenn er vorhanden ist.
R | Die Optionen für Beschreibungsdateien shrglob und noshrglob werden ignoriert
S | s | Source Level: Viele Moduldateien sind mit einem Rahmen versehen, der vor dem Übersetzen entfernt werden muß. Ist S spezifiziert müssen alle Moduldateien vorhanden sein. Ist s gesetzt, werden diese Dateien nur genutzt, wenn sie vorhanden sind. Abhängige Dateien werden nur verarbeitet, wenn der Quelltext vorhanden ist.
t | timestamp the start of bigger targets Werden Beschreibungsdateien übersetzt, so wird ein Datumsstempel ausgegeben..
T | Bevor die Übersetzung einer Moduldatei beginnt, wird immer ein Zeitstempel ausgegeben.
X | Wenn auf schreibgeschützte Quelltexte (z.B. auch von CD) zugegriffen werden soll, so ist die Option anzugeben.
Z | Moduldateidateien, in deren Namen keine Schicht kodiert ist und die auf .rc, .ico, .def, .mc, .dlg, .idl, .ycc, .lex oder .rgs enden, werden in der Schicht Resource gesucht.


$VMAKE_OPTION-Parameter für die Suche nach Quelltext (MaxDB: Entwicklungsumgebung)

$VMAKE_OPTION-Parameter für die Suche nach Quelltext

Für die Variable $VMAKE_OPTION können verschiedene Parameter gesetzt werden.

Setzen Sie keine Leerzeichen zwischen die einzelnen Parameter, wenn Sie mehrere angeben.

Parameter für die Suche nach Quelltext

(Kein Parameter gesetzt) | Der zuerst gefundene Quelltext wird genutzt.
v | Der zuerst gefundene Quelltext wird genutzt. Sollte eine jüngere Datei in der weiteren Pfadhierarchie gefunden werden, so wird gewarnt.
V | Der jüngste Quelltext aus der Hierarchie wird genutzt und wenn nötig in den lokalen Sourcebereich kopiert.
vV | Der jüngste Quelltext aus der Hierarchie wird genutzt und es wird eine Warnung ausgegeben.


$VMAKE_OPTION-Parameter für die Suche nach Objektdateien (MaxDB: Entwicklungsumgebung)

$VMAKE_OPTION-Parameter für die Suche nach Objektdateien

Für die Variable $VMAKE_OPTION können verschiedene Parameter gesetzt werden.

Setzen Sie keine Leerzeichen zwischen die einzelnen Parameter, wenn Sie mehrere angeben.

Parameter für die Suche nach Objektdateien

(kein Parameter gesetzt) | Die zuerst gefundene Objektdatei wird genutzt.
w | Die zuerst gefundene Objektdatei wird genutzt. Sollte eine jüngere Objektdatei in der weiteren Pfadhierarchie gefunden werden, so wird gewarnt.
W | Die jüngste Objektdatei aus der Hierarchie wird genutzt.
wW | Die jüngste Objektdatei aus der Hierarchie wird genutzt und es wird eine Warnung ausgegeben.


$INSTROOT (MaxDB: Entwicklungsumgebung)

$INSTROOT

Die Variable enthält eine absolute Pfadangabe innerhalb des eigenen Dateisystems. Diese beschreibt, wo VMAKE gelinkte Softwarekomponenten ablegen soll.

VMAKE entscheidet anhand der Softwarekomponente, unter welchem relativen Pfad unterhalb von $INSTROOT diese abzulegen ist.

set INSTROOT=D:\V72


$VMAKE_PATH (MaxDB: Entwicklungsumgebung)

$VMAKE_PATH

In dieser Variable sind Pfade aufgezählt unter denen VMAKE nach Dateien suchen kann.

Die einzelnen Pfadangaben sind durch Komma getrennt. Die Pfade können absolute Pfade im Dateisystem des eigenen Rechners oder anderer Rechner sein, die in das Dateisystem eingebunden sind.

Wenn ein Dateisystem verwendet werden soll, das nicht eingebunden ist, dann ist das Programm VMAKE-Server auf dem Rechner mit diesem Dateisystem erforderlich.

Der Pfad ist dann wie folgt anzugeben:

<server_name>:<absolute_path>

<server_name> | Name des anderen Rechners
<absolute_path> | Absoluter Pfad im Dateisystem des anderen Rechners

Wenn Sie eine Pfadangabe mit zwei Schrägstrichen beenden, dann wird dieser Pfad bei der Suche nach Objektdateien nicht berücksichtigt.

set VMAKE_PATH=D:\V72,P26326:F:\Develop//,\\P26208\share\tools


$SHELL (MaxDB: Entwicklungsumgebung)

$SHELL

Beschreibungsdateien können Betriebssystemkommandos enthalten.

Mit dieser Variable definieren Sie, daß eine bestimmte Kommando-Shell zur Abarbeitung dieser Betriebssystemkommandos genutzt werden soll.

set SHELL=C:\MyTools\4dos.exe


$TOOLSHELL (MaxDB: Entwicklungsumgebung)

$TOOLSHELL

Mit dieser Variable ist definiert, welche Shell die von VMAKE genutzten Skripte ausführt ( VMAKE-Werkzeuge ).

set TOOLSHELL=D:\Perl\5.00502\bin\MSWin32-x86-object\perl5.00502.exe


$TOOLOPT (MaxDB: Entwicklungsumgebung)

$TOOLOPT

Mit dieser Variablen können Sie zusätzliche Optionen an die in der Variablen $TOOLSHELL spezifizierten Shell übermitteln.

set TOOLOPT=-d


$TOOL (MaxDB: Entwicklungsumgebung)

$TOOL

In dieser Variable ist der relative Pfad definiert, unter dem die von VMAKE genutzten Skripte und Programme gespeichert sind.

set TOOL=D:\DevTool


$TOOLEXT (MaxDB: Entwicklungsumgebung)

$TOOLEXT

In dieser Variable ist die Dateiendung der Skripte ( VMAKE-Werkzeuge ) definiert.

VMAKE kennt nur den ersten Teil der Dateinamen der zu verwendenden Skripte. Zur Ermittlung der Dateiendung verwendet VMAKE diese Variable.

set TOOLEXT=.pl


$DLL_TYPE (MaxDB: Entwicklungsumgebung)

$DLL_TYPE

In dieser Variable ist die Dateiendung von dynamischen Bibliotheken definiert.

Diese Variable ist optional.

VMAKE hat folgende Voreinstellung:

Win32 | .dll
UNIX | ohne Dateiendung


$ARC_TYPE (MaxDB: Entwicklungsumgebung)

$ARC_TYPE

In dieser Variable ist die Dateiendung von statischen Bibliotheken definiert.

Diese Variable ist optional.

VMAKE hat folgende Voreinstellung:

Win32 | .lib
UNIX | .a


$OWN (MaxDB: Entwicklungsumgebung)

$OWN

Die Umgebungsvariable OWN entspricht dem absoluten Pfad für das Verzeichnis MaxDB_DEV (Allgemeine Verzeichnisstruktur der MySQL MaxDB-Entwicklungsumgebung).

Diese Umgebungsvariable wird durch das Initialisierungsskript initDev_MaxDB(.bat) gesetzt (Umgebungsvariablen).


$WRK (MaxDB: Entwicklungsumgebung)

$WRK

Die Umgebungsvariable $WRK wird von verschiedenen Beschreibungsdateien genutzt. Sie verweist auf des Verzeichnis sys/wrk unterhalb des Verzeichnisses MaxDB_DEV (Allgemeine Verzeichnisstruktur der MySQL MaxDB-Entwicklungsumgebung).

Diese Umgebungsvariable wird durch das Initialisierungsskript initDev_MaxDB(.bat) gesetzt (Umgebungsvariablen).


$PATH (MaxDB: Entwicklungsumgebung)

$PATH

Die Variable $PATH muss so angepasst sein, dass folgende Verzeichnisse darin enthalten sind:

$DBROOT/bin

$DBROOT/pgm (Microsoft Windows)

$TOOL/Posix

$TOOL/bin

$TOOL/pgm (Microsoft Windows)

Diese Umgebungsvariable wird durch das Initialisierungsskript initDev_MaxDB(.bat) gesetzt (Umgebungsvariablen).


%INCLUDE% (MaxDB: Entwicklungsumgebung)

%INCLUDE%

Die Umgebungsvariable gilt nur unter Microsoft Windows.

Mit dieser Umgebungsvariablen findet der Kompilierer alle MaxDB-eigenen Include-Dateien.

Es müssen folgende Einträge aufgeführt sein:

%DBROOT%\incl

%TOOL%\incl

%OWN%\sys\wrk\incl

%OWN%\sys\wrk\incl\SAPDB

Diese Umgebungsvariable wird durch das Initialisierungsskript initDev_MaxDB(.bat) gesetzt (Umgebungsvariablen).


$RELVER (MaxDB: Entwicklungsumgebung)

$RELVER

Diese Umgebungsvariable spezifiziert die aktuelle Software-Version. Sie wird zum Erzeugen der Build-Informationen innerhalb der Programmkomponenten benutzt und wird von den Linkwerkzeugen verwendet.

Diese Umgebungsvariable wird durch das Initialisierungsskript initDev_MaxDB(.bat) gesetzt (Umgebungsvariablen).


$CORRECTION_LEVEL (MaxDB: Entwicklungsumgebung)

$CORRECTION_LEVEL

Diese Umgebungsvariable spezifiziert die Nummer des Korrektur-Levels für die Build-Informationen. Zusätzlich wird diese Information von den Linkwerkzeugen verwendet.

Diese Umgebungsvariable wird durch das Initialisierungsskript initDev_MaxDB(.bat) gesetzt (Umgebungsvariablen).


$BUILD_PRAEFIX (MaxDB: Entwicklungsumgebung)

$BUILD_PRAEFIX

Diese Umgebungsvariable spezifiziert die Nummer des Patch-Levels der aktuellen Software-Version. Zusätzlich wird diese Information von den Linkwerkzeugen verwendet.

Diese Umgebungsvariable wird durch das Initialisierungsskript initDev_MaxDB(.bat) gesetzt (Umgebungsvariablen).


$PYTHONPATH (MaxDB: Entwicklungsumgebung)

$PYTHONPATH

Diese Umgebungsvariable muss gesetzt werden, damit die in den Werkzeugen enthaltenen Python-Skripte ablaufen können.

Sie sollte folgende Einträge enthalten:

$TOOL\Lib\Python

$INSTROOT/lib

Diese Umgebungsvariable wird durch das Initialisierungsskript initDev_MaxDB(.bat) gesetzt (Umgebungsvariablen).


$PERL5LIB (MaxDB: Entwicklungsumgebung)

$PERL5LIB

Diese Umgebungsvariable muss gesetzt werden, damit die in den Werkzeugen enthaltenen Perl-Scripte ablaufen können.

Sie sollte folgende Einträge enthalten:

$INSTROOT/misc

$TOOL/bin

$TOOL/Lib/Perl

Diese Umgebungsvariable wird durch das Initialisierungsskript initDev_MaxDB(.bat) gesetzt (Umgebungsvariablen).


$EDITOR (MaxDB: Entwicklungsumgebung)

$EDITOR

Diese Umgebungsvariable spezifiziert das Programm, das zur Anzeige und Bearbeitung von Dateien mit Hilfe des Werkzeugs zur Bedienung der Entwicklungsumgebung iview.pl genutzt wird.

Diese Umgebungsvariable wird durch das Initialisierungsskript initDev_MaxDB(.bat) gesetzt (Umgebungsvariablen).


$DBROOT (MaxDB: Entwicklungsumgebung)

$DBROOT

Diese Umgebungsvariable ist eine veraltete Bezeichnung für die Variable $INSTROOT. Sie ist deshalb genauso zu setzen wie $INSTROOT.

Diese Umgebungsvariable wird durch das Initialisierungsskript initDev_MaxDB(.bat) gesetzt (Umgebungsvariablen).


$NOQUIET (MaxDB: Entwicklungsumgebung)

$NOQUIET

Wenn diese Umgebungsvariable gesetzt ist, dann wird beim Erstellungsprozess jeder Aufruf des Kompilierers ausgegeben.


$TOOLVARS (MaxDB: Entwicklungsumgebung)

$TOOLVARS

Die Pfadangabe in dieser Umgebungsvariable verweist auf die zentrale Initialisierungsdatei toolvars.pl für die meisten Perl-Skripte. Der Vorschlag des Systems für die Ablage dieser Datei ist das Verzeichnis $TOOL/bin.

In dieser Perl-Datei wird ein großer Teil der plattformspezifischen Anpassungen vorgenommen. Dies umfasst die Definition der verschiedenen plattformspezifischen Kompilier-, Link- und anderen Programme und deren zugehörige Optionen. Weiterhin werden in dieser Datei einige zusätzliche für den Erzeugungsprozess notwendige Umgebungsvariablen initialisiert.

Diese Umgebungsvariable wird durch das Initialisierungsskript initDev_MaxDB(.bat) gesetzt (Umgebungsvariablen).


Werkzeuge der MaxDB-Entwicklungsumgebung (MaxDB: Entwicklungsumgebung)

Werkzeuge der MaxDB-Entwicklungsumgebung

Die Entwicklungswerkzeuge bestehen aus folgenden Komponenten.

· Werkzeuge zur Bedienung der Entwicklungsumgebung

· VMAKE, als Werkzeug zur Softwareerstellung

· Verschiedene Hilfsprogramme

Bei den verschiedenen Werkzeugen der MaxDB-Entwicklungsumgebung handelt es sich um Perl-Skripte. Diese können mit verschiedenen Optionen aufgerufen werden. Die möglichen Optionen können Sie sich mit der Option -h anzeigen lassen.


Werkzeuge zur Bedienung der Entwicklungsumgebung (MaxDB: Entwicklungsumgebung)

Werkzeuge zur Bedienung der Entwicklungsumgebung

ims.pl; imq.pl; imf.pl

idiff.pl

ils.pl

ips.pl, ipq.pl und ipf.pl

iview.pl

icp.pl


ims.pl; imq.pl; imf.pl (MaxDB: Entwicklungsumgebung)

ims.pl; imq.pl; imf.pl

Diese Kommandos sind Werkzeuge zur Bedienung der Entwicklungsumgebung und dienen zum Erzeugen von Komponenten der MaxDB-Software. Dabei wird zwischen den drei VMAKE-Versionen unterschieden. Als Parameter wird mindestens der Name einer Abarbeitungsliste, einer Linkbeschreibung oder einer Moduldatei erwartet. Es können auch mehrere Namen als Parameter angegeben werden.

Nach dem Initialisieren eine definierten Umgebung rufen diese Skripte das Programm VMAKE auf.

Alle verfügbaren Optionen für den Aufruf von VMAKE stehen für diese Skripte zur Verfügung und werden direkt an VMAKE weiter gereicht.

Für alle als Parameter übergebenen Dateinamen geben Sie nicht den vollständigen Pfad, sondern nur den Namen der Datei entsprechend den Namenskonventionen für Dateien an.

Beispiel


idiff.pl (MaxDB: Entwicklungsumgebung)

idiff.pl

Dieses Kommando ist ein Werkzeug zur Bedienung der Entwicklungsumgebung und vergleicht die als Parameter angegebene Datei im lokalen Entwicklungsbereich ( Allgemeine Verzeichnisstruktur ) mit einer älteren Version derselben Datei, innerhalb der Entwicklungshierarchie.

Es ist mit der Option -l aber auch möglich, einen Vergleich der gleichen Dateien zwischen verschiedenen Stufen in der Entwicklungshierarchie durchzuführen.

Für alle als Parameter übergebenen Dateinamen geben Sie nicht den vollständigen Pfad sondern nur den Namen der Datei entsprechend den Namenskonventionen für Dateien an.


ils.pl (MaxDB: Entwicklungsumgebung)

ils.pl

Dieses Kommando ist ein Werkzeug zur Bedienung der Entwicklungsumgebung und vergleichbar mit den Kommandos dir oder ls anderer Betriebssysteme. Es werden die als Parameter angegebenen Modul- oder Beschreibungsdateien innerhalb der Entwicklungshierarchie angezeigt.

Für alle als Parameter übergebenen Dateinamen geben Sie nicht den vollständigen Pfad sondern nur den Namen der Datei entsprechend den Namenskonventionen für Dateien an.


ips.pl, ipq.pl und ipf.pl (MaxDB: Entwicklungsumgebung)

ips.pl, ipq.pl und ipf.pl

Diese Kommandos sind Werkzeuge zur Bedienung der Entwicklungsumgebung und dienen zum Anzeigen der beiden VMAKE-Protokolle eines Übersetzungsvorganges.

Es gibt drei verschiedene Kommandos für die drei VMAKE-Versionen . Die Protokolle eines mit imf.pl gestarteten Erstellungsprozesses können mit Hilfe des Werkzeugs ipf.pl angezeigt werden. Dabei ist als Parameter der gleiche Dateiname anzugeben, der beim Kommando imf.pl verwendet wurde:

imf.pl dbmcli

ipf.pl dbmcli


iview.pl (MaxDB: Entwicklungsumgebung)

iview.pl

Dieses Kommando ist ein Werkzeug zur Bedienung der Entwicklungsumgebung und dient zum Anzeigen und Editieren von Modul- und Beschreibungsdateien.

Wenn sich die Dateien im Unterverzeichnis src oder desc unterhalb des Verzeichnisses MaxDB_DEV (Allgemeine Verzeichnisstruktur) befinden, werden sie direkt von dort geöffnet und können modifiziert werden.

Wenn sie dort nicht vorhanden sind, wird nach ihrem ersten Vorkommen in der Entwicklungshierarchie gesucht und die gefundene Datei dann zum Anzeigen in das Unterverzeichnis tmp unterhalb des Verzeichnisses MaxDB_DEV kopiert.

Die Dateien werden mit dem Programm angezeigt, auf das die Umgebungsvariable $EDITOR verweist.

iview vcn12.cpp

iview dbmcli.lnk

Es ist mit der Option -l aber auch möglich, auf alle Versionen einer Datei innerhalb der Entwicklungshierarchie zuzugreifen, obwohl sie auch im Verzeichnis MaxDB_DEVvorhanden sind.

iview –l1 co.com

Für alle als Parameter übergebenen Dateinamen geben Sie nicht den vollständigen Pfad sondern nur den Namen der Datei entsprechend den Namenskonventionen für Dateien an.

Eine übersetzungsrelevante Änderung der Dateien kann nur dann durchgeführt werden, wenn sich die Dateien direkt im Entwicklungsbereich befinden. Ein Kopieren dieser Dateien ist mit icp.pl möglich.


icp.pl (MaxDB: Entwicklungsumgebung)

icp.pl

Dieses Kommando ist ein Werkzeug zur Bedienung der Entwicklungsumgebung und dient zum Kopieren einer Modul- oder Beschreibungsdatei aus der Entwicklungshierarchie in den Entwicklungsbereich im Verzeichnis MaxDB_DEV. Damit wird beim nächsten MAKE-Vorgang anstelle der in der Entwicklungshierarchie vorhandenen diese Datei genutzt.

Mit dem Kommando iview.pl zeigen Sie die kopierte Datei an und können diese bearbeiten.

Es kann immer nur eine Datei mit diesem Kommando kopiert werden. Wird zusätzlich zu dem Dateinamen noch ein zweiter Dateiname als Parameter angegeben, so erhält die kopierte Datei den Namen, der als zweiter Parameter angegeben ist.

Für alle als Parameter übergebenen Dateinamen geben Sie nicht den vollständigen Pfad, sondern nur den Namen der Datei entsprechend den Namenskonventionen für Dateien an.


VMAKE (MaxDB: Entwicklungsumgebung)

VMAKE

Dieses Dokument soll als Referenz für diejenigen dienen, die mit Hilfe dieses Werkzeugs VMAKE Programme, Bibliotheken etc. erstellen oder pflegen.

Das Werkzeug VMAKE kann zur Erstellung von MaxDB-Software jeder Version verwendet werden.

Zur Erstellung der MaxDB-Software oder von Teilen davon geben Sie das Kommando für die gewünschte VMAKE-Version ein.

Es stehen Ihnen verschiedenen Optionen zur Verfügung, mit denen Sie den Aufruf des Werkzeugs VMAKE modifizieren können.


Begriffserklärungen (MaxDB: Entwicklungsumgebung)

Begriffserklärungen

Dateien

Schicht

Ziel

Debug-Modus


Dateien (MaxDB: Entwicklungsumgebung)

Dateien

Bei der Erstellung von Software werden Moduldateien mit Hilfe von Beschreibungsdateien übersetzt.

Die daraus entstandenen Dateien heißen Objektdateien .

In den verschiedenen Phasen des MAKE-Vorganges einer Datei <file_name>.<ext> bleibt der Dateiname <file_name> erhalten. Es ändert sich die Dateiendung <ext> .


Moduldatei (MaxDB: Entwicklungsumgebung)

Moduldatei

Quelltext setzt sich aus einzelnen Dateien zusammen. Diese werden Moduldateien genannt.

Moduldateien können zu Modulgruppen zusammengefasst werden.

Moduldateien werden gesondert von Beschreibungsdateien im Dateisystem des Betriebssystems gespeichert (Dateiablage).

Moduldateien können in beliebigen Programmiersprachen verfasst sein. Für jede von MaxDB verwendete Programmiersprache verfügt VMAKE über geeignete Werkzeuge zum Entpacken und Übersetzen der Moduldateien.


Verzeichnis der Moduldateien (MaxDB: Entwicklungsumgebung)

Verzeichnis der Moduldateien

Im Verzeichnis für Moduldateien sind die Moduldateien abgelegt.

Die Struktur des Verzeichnisses für Moduldateien entspricht der Struktur des Objektverzeichnisses ( Allgemeine Verzeichnisstruktur der SAP DB Entwicklungsumgebung ).


Include-Datei (MaxDB: Entwicklungsumgebung)

Include-Datei

Eine Include-Datei ist eine Moduldatei , die in eine andere Moduldatei eingebunden ist.

Wenn sich der Quelltext einer Include-Datei verändert hat, muß neben dieser auch die Moduldatei, in die diese Include-Datei eingebunden ist, im Prozeß der Softwareerstellung neu übersetzt werden ( Übersetzungsvorgang ).

Include-Dateien sind unabhängig von VMAKE-Versionen .


Include-Verzeichnis (MaxDB: Entwicklungsumgebung)

Include-Verzeichnis

Abweichend von den normalen Moduldateien sind Include-Dateien unabhängig von der aufgerufenen VMAKE-Version ( Aufrufversionen für VMAKE ) und werden deshalb alle unter einem Verzeichnis abgelegt

Dieses Verzeichnis heißt incl und wird vom Werkzeug VMAKE angelegt ( allgmeine Verzeichnisstruktur ).


Beschreibungsdatei (MaxDB: Entwicklungsumgebung)

Beschreibungsdatei

Die Beschreibungsdateien enthalten all jene Informationen, wie und mit welchen Moduldateien eine fertige Software erstellt wird. Dazu gehören

  • Linkbeschreibungen
  • Kompilierbeschreibungen
  • Abarbeitungslisten


Linkbeschreibungen (MaxDB: Entwicklungsumgebung)

Linkbeschreibungen

Linkbeschreibungen spezifizieren, auf welche Art und Weise die Moduldateien zu einem Programm zu linken sind.

Es handelt sich dabei um eine Auflistung von Verweisen auf Moduldateien und weitere Beschreibungsdateien , die vom System seriell abgearbeitet werden. Zusätzlich können Optionen angegeben werden, die beim Linkvorgang verwendet werden.

Mit Hilfe der Dateiendung der Linkbeschreibung wird unterschieden, welche Softwarekomponente entstehen soll ( Verwenden von VMAKE ).

Dateiendung der Linkbeschreibung | Art der entstehenden Softwarekomponente
lnk | Programm
shm | Programm, das Shared-Memory-Zugriff ermöglicht
lib | statische Bibliothek
dld | dynamische Bibliothek
rel | Programm, das wiederum mit anderen Programmen gelinkt werden kann (Relocatable)
shr | Programm, das wiederum mit anderen Programme gelinkt werden kann (Relocatable) und Shared-Memory-Zugriff ermöglicht
mac | Zusammenfassung einer Menge der übrigen Arten von Objektdateien


Kompilierbeschreibungen (MaxDB: Entwicklungsumgebung)

Kompilierbeschreibungen

Verwendung

Kompilierbeschreibungen spezifizieren, wie Moduldateien zu übersetzen sind. Es handelt sich dabei um eine Auflistung von Moduldateien und ihren Abhängigkeiten untereinander sowie übersetzungsspezifischer Optionen . Solche Abhängigkeiten können sein

  • Include-Abhängigkeiten ( Include-Datei )
  • Abhängigkeiten, wonach bestimmte Hilfsdateien beim Übersetzungsvorgang im gleichen Verzeichnis stehen müssen, wie die zu übersetzende Moduldatei ( demand=<list> )
  • Logische Abhängigkeiten, wenn beispielsweise die Moduldatei X eine Datei Z linkt, die als Nebenprodukt der Übersetzung von Moduldatei Y entsteht ( extdep=<list> )

Kompilierbeschreibungen werden nicht für jede einzelne Moduldatei sondern für Gruppen von Moduldateien erstellt. Der Name der Kompilierbeschreibung entspricht dem Namen der Schicht . Kompilierbeschreibungen haben die Dateiendung . com

Wenn im Verzeichnis der Moduldateien ( src ) eine Schicht ak existiert, muß im Verzeichnis der Beschreibungsdateien ( desc ) eine Kompilierbeschreibung ak.com vorhanden sein.

Für den Fall, daß eine Schicht (Unterverzeichnis) unter dem Verzeichnis der Moduldateien ( src ) noch weitere Unterschichten aufweist, muß die Hierarchie bis auf die vorletzte Stufe im Verzeichnis der Beschreibungsdateien ( desc ) nachgebildet sein. Der Name einer solchen Kompilierbeschreibung ergibt sich aus der letzten Unterschicht und der Dateiendung .com

Für Moduldateien in der Schicht SAPDB/DBM/Cli hat die zugehörige Kompilierbeschreibung den Namen Cli.com und befindet sich im Verzeichnis der Beschreibungsdateien ( desc ) unter SAPDB/DBM .

Kompilierbeschreibungen werden nicht seriell abgearbeitet. Die Abarbeitungspunkte einer solchen Beschreibung werden gezielt angesprungen.


Abarbeitungslisten (MaxDB: Entwicklungsumgebung)

Abarbeitungslisten

Verwendung

Eine Abarbeitungsliste ist eine Auflistung der abzuarbeitenden Beschreibungsdateien , zu behandelnden Moduldateien und auszuführenden Betriebssystemkommandos. Es können außerdem weitere Abarbeitungslisten aufgeführt sein. Zusätzlich können Optionen angegeben werden.

Die Einträge in einer Abarbeitungsliste werden von VMAKE von oben nach unten abgearbeitet. Dabei werden alle aufgeführten Dateien sowie weitere, darin als Links aufgeführte Dateien, zunächst bis in die unterste Ebene daraufhin geprüft, ob sich im Vergleich zu einem früher erzeugten Ziel Änderungen in diesen Dateien ergeben haben. Nur wenn dies der Fall ist, werden die Ziele von VMAKE neu erstellt, d. h. aktualisiert.


Objektdatei (MaxDB: Entwicklungsumgebung)

Objektdatei

Moduldateien werden entpackt und übersetzt. Die im Ergebnis dessen entstandenen Dateien werden Objektdateien genannt.

Sie werden im Normalfall in den Verzeichnissen, die der verwendeten VMAKE-Version (Aufrufversionen für VMAKE) entsprechen, abgelegt, also unter fast, quick oder slow (siehe Allgemeine Verzeichnisstruktur der MaxDB-Entwicklungsumgebung).

Wenn in der Kompilierbeschreibung für eine Moduldatei die Option noversion angegeben ist, so wird die Objektdatei direkt im Verzeichnis wrk/obj abgelegt.

Objektdateien haben die Dateiendung .o


Objektverzeichnis (MaxDB: Entwicklungsumgebung)

Objektverzeichnis

Im Objektverzeichnis werden die Objektdateien abgelegt.

Das Objektverzeichnis hat die gleiche Struktur wie das Quellcode-Verzeichnis (Allgemeine Verzeichnisstruktur der MaxDB-Entwicklungsumgebung).


Initialisierungsdateien (MaxDB: Entwicklungsumgebung)

Initialisierungsdateien

VMAKE kennt folgende Initialisierungsdateien:

Langextinfo | Enthält die Zuordnung der Moduldateien zu den Übersetzungswerkzeugen auf der Basis der Dateiendung bzw. des letzten Zeichens des Dateinamens.
Langinfo | Enthält die Zuordnung von Programmiersprachen zu bestimmten Werkzeugen zum Entpacken und Übersetzen von Moduldateien.
EXTRA | Enthält die Zuordnung nicht zu übersetzender Dateien zu ihren Speicherorten.
DirectoryMapping | Mit Hilfe dieser Datei werden Moduldateien anhand des ersten Teils ihres Dateinamens einer Schicht zugeordnet (DirectoryMapping-Funktion).

Diese Dateien sind änderbar.

Sie sind im Verzeichnis desc abgelegt (Allgemeine Verzeichnisstruktur der MaxDB-Entwicklungsumgebung).


Langextinfo (MaxDB: Entwicklungsumgebung)

Langextinfo

Verwendung

Langextinfo ist eine Initialisierungsdatei des Werkzeugs VMAKE. Mit ihrer Hilfe können Sie Dateiendungen einer Programmiersprache zuordnen. Für jede Programmiersprache steht ein Buchstabe.

VMAKE verfügt bereits über einen diesbezüglichen Systemvorschlag.

Wenn Sie die vorhandenen Zuordnungen erstmalig erweitern oder ändern wollen, legen Sie eine Datei mit dem Namen Langextinfo im Verzeichnis desc an. Sie können außerdem Zuordnungen zwischen neuen Buchstaben, Programmen und Dateiendungen vornehmen. In diesem Fall ist jedoch auch die Datei Langinfo entsprechend zu pflegen. Alle weiteren Änderungen nehmen Sie in dieser Datei vor.

Wenn VMAKE eine Datei Langextinfo findet, übersteuern die darin enthaltenen Informationen den Systemvorschlag.

Syntax

<langextinfo_line> = <comment_line> | (<lang_id><comment><token_sep><token>{<token_sep>,<token_sep><token>}<new_line>)

Allgemeine Regeln

<comment> darf nicht <token_sep> enthalten

Zeilen können das Kommentarzeichen # enthalten. Der nachfolgende Text in dieser Zeile wird als Kommentar gewertet.

Systemvorschlag in VMAKE

zugeordneter Buchstabe(Programm) | Dateiendung/en
x(C++) | cpp, hpp
c(C) | c, h
t(PASCAL) | t
a(Assembler) | s
r(Resources) | rc, ico, def, mc, dlg, idl, ycc, lex, rgs


Langinfo (MaxDB: Entwicklungsumgebung)

Langinfo

Verwendung

Langinfoist eine Initialisierungsdatei des Werkzeugs VMAKE. Mit ihrer Hilfe ordnen sie Programmiersprachen bestimmte Werkzeuge zum Entpacken und Übersetzen von Moduldateien zu. Dabei wird die jeweilige Programmiersprache durch einen Buchstaben spezifiziert (Langextinfo).

VMAKE verfügt bereits über einen diesbezüglichen Systemvorschlag.

Wenn Sie die vorhandenen Zuordnungen erstmalig erweitern oder ändern wollen, legen Sie eine Datei mit dem Namen Langinfo im Verzeichnis desc an. Alle weiteren Änderungen nehmen Sie in dieser Datei vor.

Wenn VMAKE eine Datei Langinfo findet, übersteuern die darin enthaltenen Informationen den Systemvorschlag.

Syntax

<langinfo_line> = <comment_line> | (<lang_id><token_sep><unpack_inc_tool><token_sep><unpack exp tool><tokensep><unpack mod tool><tokensep><extension><tokensep><option prefix><tokensep>
<compiler tool>)

<unpack inc tool> = <token>

<unpack exp tool> = <token>

<unpack mod tool> = <token>

<extension> = „.“<token>

<option prefix> = <ext character><letter>

<compiler tool>  = <token>

Allgemeine Regeln

Zeilen können das Kommentarzeichen # enthalten. Der nachfolgende Text in dieser Zeile wird als Kommentar gewertet.

Die Skripte zum Entpacken einer Moduldatei verwenden den Tabelleneintrag unter extension als Dateiendung.

Systemvorschlag in VMAKE

# | last char | unpack include | unpack exports | unpack module | extension | option prefix | compiler |
 | t | mfpinc | mfpexp | mfp | . p | %T | comppc | # PASCAL
 | p | mfpinc | mfpexp | mfp | .p | %P | compp | # PASCAL
 | c | mfcinc | mfcexp | mfc | .c | %C | compc | # C
 | x | mfcinc | mfcexp | mfc | .cpp | %X | compc | # C++
 | a | mfainc | mfaexp | mfa | .s | %A | compa | # Assembler
 | r | mfcinc | mfcexp | mfrc | .rc | %R | comprc | # Resources


Extra (MaxDB: Entwicklungsumgebung)

Extra

Extra ist eine Initialisierungsdatei des Werkzeugs VMAKE.

Die Datei enthält die Zuordnung nicht zu übersetzender Dateien zu ihren Speicherorten.

Syntax

<extra_line> = <comment_line> | (<extension><token_sep><layer><token_sep><dest_dir><token_sep><option><new_line>)

# | extension | layer | destination directory | options
 | .ino | xx | usr/env | unpack=no
 | .mp | px | usr/bin | unpack=no nodot
 | .dm | px | tmp | exec

Erläuterung:

Moduldateien mit der Dateiendung .ino gehören zur Schicht xx . Sie sind in das Verzeichnis usr/env zu kopieren, das sich in $INSTROOT befindet. Die Moduldatei enthält keinen textuellen Rahmen (Option unpack=no ).

Moduldateien mit der Dateiendung .mp gehören zur Schicht px . Sie sind in das Verzeichnis usr/bin (relativ zu $INSTROOT ) zu kopieren. Die Moduldatei enthält keinen textuellen Rahmen. Nach dem Kopieren ist die Dateiendung .mp zu entfernen (Option unpack=no dot ).

Moduldateien mit der Dateiendung .dm gehören zur Schicht px . Sie sind in das Verzeichnis tmp (relativ zu $INSTROOT ) zu kopieren. Die Moduldatei enthält einen textuellen Rahmen, der zu entfernen ist. Nachdem der Rahmen entfernt wurde, wird die Datei als ausführbar gekennzeichnet (Option exec , nur unter UNIX relevant).

Allgemeine Regel

Zeilen können das Kommentarzeichen # enthalten. Der nachfolgende Text in dieser Zeile wird als Kommentar gewertet.


DirectoryMapping (MaxDB: Entwicklungsumgebung)

DirectoryMapping

Verwendung

DirectoryMapping ist eine Initialisierungsdatei des Werkzeugs VMAKE. Sie ist im Verzeichnis <path>/sys/desc abgelegt.

VMAKE ordnet Moduldateien anhand des zweiten und dritten Buchstabens des Dateinamens einer Schicht zu. Eine weitere Möglichkeit, Moduldateien einer Schicht zuzuordnen, ist die DirectoryMapping-Funktion. Damit können Sie auch längere und sprechendere Dateinamen verwenden.

Ein mit der DirectoryMapping-Funktion spezifizierter Dateiname besteht aus zwei Namensteilen, die durch einen Unterstrich miteinander verbunden sind. Der erste Teil spezifiziert in Kurzform die Schicht. Der zweite Teil spezifiziert den Namen der Moduldatei.

<file_name> = <short_layer>_<modular_file>

Die Kurzform wird in der Datei DirectoryMapping auf die entsprechende Schicht abgebildet.

Syntax

<extra_line> = <comment_line> | (<short_layer>, <full_layer><new_line>)

Allgemeine Regeln

  1. Der Ausdruck <full_layer> steht für die Schichten unterhalb von <path>/sys/src/SAPDB .
  2. Zeilen können das Kommentarzeichen # enthalten. Der nachfolgende Text in dieser Zeile wird als Kommentar gewertet.
  3. Für die Schicht ist eine Kompilierbeschreibung erforderlich, in der die Struktur der Schichten bis einschließlich der vorletzten Stufe anzugeben ist.

Die Datei <path>/sys/src/DirectoryMapping hat folgende Einträge:

# <short_layer>, <directory>
# Component SQLStudio
StudioTD, SQLStudio/TableDefinition # Table Definition

Wenn nun die Dateien StudioTD_TableDef.cpp und StudioTD_Wrapper.cpp erstellt werden sollen, muß die Kompilierbeschreibung TableDefinition.com unter dem Pfad <path>/sys/desc/SAPDB/SQLStudio/ abgelegt sein.

Die Dateien StudioTD_TableDef.cpp und StudioTD_Wrapper.cpp sucht VMAKE in der Schicht <path>/sys/src/SAPDB/SQLStudio/TableDefinition.


Nicht zu übersetzende Datei (MaxDB: Entwicklungsumgebung)

Nicht zu übersetzende Datei

Es gibt Dateien, die im Quelltext bereits in dem später benötigten Textformat oder binär vorliegen. Diese Dateien müssen nicht übersetzt werden. Sie sollen nur in das Objektverzeichnis kopiert werden und können dabei gegebenenfalls mit Hilfe des Werkzeugs mfextra ( VMAKE-Werkzeuge ) manipuliert werden.

Um die Übersetzung derartiger Dateien durch VMAKE zu verhindern, verwenden Sie die Optionen ascii oder binary .

Sie können dies auch durch einen Eintrag in die Initialisierungsdatei EXTRA erreichen.


Datumsdatei (MaxDB: Entwicklungsumgebung)

Datumsdatei

Für jedes zu erzeugende Ziel wird eine Datumsdatei angelegt.

Der Name einer Datumsdatei setzt sich aus dem Namen der bearbeiteten Datei und der Dateiendung .datzusammen: <file_name>.dat

Ihr Zeitstempel entspricht dem der jeweiligen Moduldatei oder Linkbeschreibung.

Verwendung

Die Datumsdatei dient beim MAKE-Vorgang zum Vergleich, ob die lokal vorhandenen Ziele den aktuell genutzten Moduldateien/Linkbeschreibungen entsprechen. Wenn beide Dateien nicht den gleichen Zeitstempel besitzen, wird das Ziel als nicht aktuell erkannt und neu erzeugt.

Ablage der Datumsdateien

Datumsdateien von Include-Dateien werden unabhängig von der VMAKE-Version des MAKE-Vorgangs im Verzeichnis $WRK/dates innerhalb ihrer Schicht abgelegt, da Include-Dateien versionsunabhängig sind.

Datumsdateien für alle anderen Moduldateien werden in dem versionsspezifischen Verzeichnis $WRK/<version>/dates in den jeweiligen Unterverzeichnissen, die der Schicht entsprechen, abgelegt.

Datumsdateien für Linkbeschreibungen werden direkt im versionsspezifischen Verzeichnis $WRK/<version>/dates abgelegt.


Schicht (Layer) (MaxDB: Entwicklungsumgebung)

Schicht (Layer)

Schichten sind logische Einheiten, die Unterverzeichnisse im Verzeichnis für Moduldateien repräsentieren.

Moduldateien sind in verschiedenen Schichten und untergeordneten Schichten abgelegt und ermöglichen neben der besseren Übersicht eine logische Unterscheidung zwischen den einzelnen Datenbankbereichen.


Ziel (Target) (MaxDB: Entwicklungsumgebung)

Ziel (Target)

Ziele sind alle Arten von Ausgabedateien, die während des gesamten Softwareerstellungsprozesses enstehen.

Dies können sowohl einzelne Objektdateien , Linkbeschreibungen als auch Ausgabedateien von nicht zu übersetzenden Dateien sein.


Debug-Modus (MaxDB: Entwicklungsumgebung)

Debug-Modus

Wenn der Debug-Modus aktiviert ist, werden alle mit einer Debug-Option gekennzeichneten Moduldateien kompiliert, so daß die entstehenden Objektdateien zusätzliche Debug-Informationen enthalten. Die betreffenden Moduldateien werden in das versionsspezifische Debug-Verzeichnis $WRK/<version>/debug kopiert und können dort zur späteren Fehlersuche genutzt werden.

Sie haben folgende Möglichkeiten, eine Debug-Option für Moduldateien zu setzen:

  • Option - e für den Aufruf von VMAKE
  • VMAKE_OPTION-Parameter e
  • mit der Option für Beschreibungsdateien debug|d


Dateiablage (MaxDB: Entwicklungsumgebung)

Dateiablage

Die Ablage der Moduldateien und Beschreibungsdateien erfolgt im Dateisystem des Betriebssystems.

Die für die Erstellung eines Programms erforderlichen Dateien können an verschiedenen Stellen innerhalb eines Dateisystems, in mehreren verschiedenen Dateisystemen und auf unterschiedlichen Rechnern abgelegt werden.

In der Umgebungsvariablen $VMAKE_PATH sind diese möglichen Pfade spezifiziert. Um auf ältere Dateiversionen zurückgreifen zu können, ändern Sie die Umgebungsvariable entsprechend.

Es existiert je ein Verzeichnis für Beschreibungsdateien und ein Verzeichnis für Moduldateien.

Jedes dieser Verzeichnisse ist mindestens einfach, kann jedoch auch mehrfach mit weiteren Unterverzeichnisse untersetzt sein, die die logische Hierarchie der Dateien widerspiegeln. Dateien sind nur in der jeweils untersten Verzeichnisebene abgelegt.

Die Dateien können auch in einer Datenbank gespeichert werden. Datenbanken bieten jedoch im allgemeinen keine ausreichende Unterstützung für Suchoperationen, so daß ein effizienter Zugriff auf die Dateien nicht möglich ist.


Namenskonventionen für Dateien (MaxDB: Entwicklungsumgebung)

Namenskonventionen für Dateien

Bei der Benennung der Moduldateien und Beschreibungsdateien sind Namenskonventionen zu beachten.

Grundelemente

<digit> = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

<letter> = A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | | u | v | w | x | y | z

<extended letter> = alle weiteren druckbaren Zeichen außer Bindestrich und Punkt

<character> = <digit> | <letter> | <extendet letter>

<token> = <character>{<character>}

Namenskonventionen für Moduldateien

Namenskonventionen für Beschreibungsdateien


Namenskonventionen für Moduldateien (MaxDB: Entwicklungsumgebung)

Namenskonventionen für Moduldateien

<source_spec> = <qual_source> | <std_source> | <ext_std_source> | <map_source>

<qual_source> = :<ext_layer><source>

<std_source> = <source_id><layer><digit><digit>{<digit>}[{<letter>}<lang_id>][<variant>]

<ext_std_source> = <std_source>[<primary_lang_id>]

<map_source> = <shortform>_<specification>

<source> = <token>[<variant>]<primary_lang_id>

<source_id> = g | h | i | v

<ext_layer> = [<ext_layer>]<character><character>{< character >}/

<shortform> = <letter>{<letter>}

<specification> = <letter>{<letter>}[<variant>][<primary_lang_id>]

<lang_id> = <letter>

<layer> = <letter><letter>{<letter>}

<primary_lang_id> = .<token>

<variant> = -<token>

Allgemeine Regeln

  1. <layer> und <ext_layer> dürfen maximal 256 Zeichen enthalten
  2. <source_spec> darf maximal 512 Zeichen enthalten

<qual_source> Þ :Demo/Test/demo.cpp

<std_source> Þ hak33c | vbd23x | vkb00

<ext_std_source> Þ hak33.h | vbd23x.cpp | vkb00.hxx

<map_source> Þ StudioTD_TableDef.hpp | StudioTD_Wrapper.cpp


Namenskonventionen für Beschreibungsdateien (MaxDB: Entwicklungsumgebung)

Namenskonventionen für Beschreibungsdateien

<desc_spec> = <qual_desc> | <std_desc>

<qual_desc> = ::[<ext_layer>]<std_desc>

<std_desc> = <character>{<character>}<desc_ext>

<desc_ext> = .(mac | prj | shm | lnk | dld | shr | rel | lib | com)

Allgemeine Regel

<desc_spec> darf maximal 512 Zeichen enthalten

<qual_desc> Þ ::x_demo.lnk | ::Kern/diagnose.lnk

<std_desc> Þ ak1.lib | kernel.shm | ak.com


Verwenden von VMAKE (MaxDB: Entwicklungsumgebung)

Verwenden von VMAKE

Verwendung

Das Erstellen von MaxDB-Software mit Hilfe von VMAKE gliedert sich in 2 Phasen

· Übersetzungsvorgang

· Linkvorgang

Dabei können folgende Komponenten von Software erzeugt werden:

· Programm

· Programm, das Shared-Memory-Zugriff ermöglicht

· statische Bibliothek

· dynamische Bibliothek

· Programm, das wiederum mit anderen Programmen gelinkt werden kann (Relocatable)

· Programm, das wiederum mit anderen Programmen gelinkt werden kann (Relocatable) und Shared-Memory-Zugriff ermöglicht


MAKE-Vorgang (MaxDB: Entwicklungsumgebung)

MAKE-Vorgang

Der MAKE-Vorgang gliedert sich in die Sammelphase und die Make-Phase.

Welche einzelnen Schritte VMAKE während des MAKE-Vorganges ausführt, ist in Ablauf eines MAKE-Vorganges beschrieben.

Sammelphase

In der Sammelphase werden die Beschreibungsdateien eines Ziels gesammelt und analysiert. Dabei werden die Abhängigkeiten aller Dateien untereinander gesammelt. Die Moduldateien selbst werden noch nicht innerhalb der Hierarchie gesucht.

Wenn in dieser Phase Fehler auftreten, beendet sich VMAKE, ohne die MAKE-Phase zu starten.

MAKE-Phase

In der MAKE-Phase beginnt die eigentliche Erstellung der MaxDB-Software. Dabei werden die Moduldateien nach der Reihenfolge ihrer Abhängigkeit untereinander erzeugt.

Wenn eine Moduldatei vak10 von vak00 abhängig ist (vak10 inc=vak00), dann wird zunächst die Moduldatei vak00 behandelt. Erst wenn diese erfolgreich erstellt wurde, kann vak10 erstellt werden.

Wenn beim Erstellen einer Moduldatei ein Fehler auftritt, dann werden auch all jene Ziele nicht erstellt, die von dieser Moduldatei abhängig sind. Dies gilt über alle Abhängigkeitsstufen hinweg.

Wenn beim Erstellen von vak00 ein Fehler auftritt, dann wird neben anderen abhängigen Dateien auch vak10 nicht behandelt:
Da vak10 in der ak1lib.lib enthalten ist, wird ak1lib.lib nicht gelinkt. Da ak1lib.lib im Kern kernel.shm enthalten ist, wird im Ergebnis dessen auch der Kern nicht gelinkt.


Ablauf des MAKE-Vorganges (MaxDB: Entwicklungsumgebung)

Ablauf des MAKE-Vorganges

Zu Beginn eines MAKE-Vorganges ermittelt VMAKE anhand der Datumsdateien, für welche Ziele eine Neuerstellung erforderlich ist. Anschließend werden alle betreffenden Moduldateien innerhalb der Hierarchie gesucht (1) und in das temporäre Arbeitsverzeichnis tmp (Allgemeine Verzeichnisstruktur) kopiert (2).

In diesem Arbeitsverzeichnis werden sie mit Hilfe von VMAKE-Werkzeugen weiter behandelt. Bei diesen Werkzeugen handelt es sich um Perl-Skripte (3). Die Auswahl der geeigneten Perl-Skripte trifft VMAKE anhand der Programmiersprache in den Moduldateien (Auswahl der Übersetzungswerkzeuge). Die Perl-Skripte sind plattformspezifisch und rufen die jeweiligen Kompilierer, Übersetzer und Entpacker auf.

Die im Ergebnis dessen entstehenden Ausgabedateien (Objektdateien und Include-Dateien) werden zunächst ebenfalls im temporären Arbeitsverzeichnis abgelegt (4). Anschließend kopiert VMAKE die Objektdateien in das jeweilige obj-Verzeichnis und Include-Dateien entsprechend ihrer Schicht in das incl-Verzeichnis (5).

Wenn VMAKE im Debug-Modus arbeitet, werden die Moduldateien zusätzlich in das entsprechende Debug-Verzeichnis kopiert.

Für jede Moduldatei, aus der ein Ziel erstellt wurde, wird eine Datumsdatei abgelegt.

Auch das Linken entsprechend der Linkbeschreibungen wird von den entsprechenden Werkzeugen in dem temporären Arbeitsverzeichnis durchgeführt Die Ausgabedateien werden ebenfalls dort abgelegt. Das Kopieren der Ziele in die entsprechenden Verzeichnisse übernimmt dann wieder VMAKE (6).

Nach der erfolgreichen Erstellung der Ziele werden die Dateien im temporären Arbeitsverzeichnis wieder gelöscht. Wenn bei der Erstellung ein Fehler aufgetreten ist, bleiben sie jedoch erhalten.

Der gesamte Prozeß der Software-Erstellung wird von VMAKE protokolliert.

Definieren des MAKE-Vorganges

VMAKE-Protokolle

Übersetzungsvorgang

Linkvorgang


Definieren des MAKE-Vorganges (MaxDB: Entwicklungsumgebung)

Definieren des MAKE-Vorganges

VMAKE-Versionen

Grammatik des VMAKE-Aufrufs

VMAKE-Werkzeuge

Erstellen von Beschreibungsdateien


VMAKE-Versionen (MaxDB: Entwicklungsumgebung)

VMAKE-Versionen

Es gibt drei VMAKE-Versionen:

  • fast
  • quick
  • slow

Die Versionen stehen für die Erzeugung verschiedener Trace- und Prüfungsstufen in der erstellten Software.

Sie spezifizieren die gewünschte Version beim Aufruf von VMAKE:

Wenn in Beschreibungsdateien zu den Modulgruppen eine andere VMAKE-Version spezifiziert ist, als Sie durch den VMAKE-Aufruf festgelegt haben, dann wird die Aufrufversion durch die in der Beschreibungsdatei spezifizierte Version im Geltungsbereich dieser Beschreibungsdatei übersteuert.


VMAKE-Version fast (MaxDB: Entwicklungsumgebung)

VMAKE-Version fast

Syntax

imf.pl

Verwendung

Wenn Sie VMAKE als fast -Version aufrufen ( VMAKE-Versionen ), führt die im Ergebnis erstellte Software keine zusätzlichen internen Fehlerprüfungen durch und protokolliert auch keine über die normale Trace-Ausgabe der Datenbank hinausgehenden Informationen.


VMAKE-Version quick (MaxDB: Entwicklungsumgebung)

VMAKE-Version quick

Syntax

imq.pl

Verwendung

Wenn Sie VMAKE als quick -Version aufrufen, führt die im Ergebnis erstellte Software zusätzliche interne Fehlerprüfungen durch.


VMAKE-Version slow (MaxDB: Entwicklungsumgebung)

VMAKE-Version slow

Syntax

ims.pl

Verwendung

Wenn Sie VMAKE als slow -Version aufrufen, führt die im Ergebnis erstellte Software zusätzliche interne Fehlerprüfungen durch und protokolliert über die normale Trace-Ausgabe der Datenbank hinausgehende Informationen.


Grammatik des VMAKE-Aufrufs (MaxDB: Entwicklungsumgebung)

Grammatik des VMAKE-Aufrufs

Grundlage für den Aufruf von VMAKE sind die allgemeine Grammatik für Beschreibungsdateien , die Namenskonventionen für Moduldateien und die Namenskonventionen für Beschreibungsdateien .

<usage> = vmake<space>{<vmake_opt_list>}<target>[//<ext_option>]{<space><target><ext_option>}

<target> = <source_spec> | <desc_spec>

<vmake_optlist> = [-<vmake_opt>{<vmake_opt>}] [+e]

<vmake_opt> = b | c | d | D<digit> | F | g | i | I | k | K | l | L | m | M | n | p | r | S | u | U | w | x

Allgemeine Regeln

  1. In <ext_option> gilt: <token_sep> = /
  2. In <desc_spec> kann <desc_ext> entfallen

vmake -D4i vzz34x//debug/profile

vmake -D4 -l -p demo.mac

vmake demo

Erläuterungen:

Zur Übersetzung von Moduldateien mit Hilfe von VMAKE können im VMAKE-Aufruf zusätzliche Optionen für Beschreibungsdateien angegeben werden. Diese Optionen werden gegebenenfalls mit den Optionen, die in gleichzeitig verwendeten Beschreibungsdateien angegeben werden, kombiniert. Die im VMAKE-Aufruf angegebenen Optionen für Beschreibungsdateien müssen durch zwei Schrägstriche vom <target> getrennt werden.

Die Optionen für Beschreibungsdateien untereinander werden durch einen Schrägstrich getrennt.


Optionen für den Aufruf von VMAKE (MaxDB: Entwicklungsumgebung)

Optionen für den Aufruf von VMAKE

Option | Beschreibung
D<digit> | Es werden Informationen über interne Daten und Programmabläufe ausgegeben. Je größer <digit> ist, um so mehr Informationen werden ausgegeben.
i | interaktive VMAKE wird interaktiv ausgeführt (Voreinstellung für Microsoft Windows). Bei einem UNIX-System erzeugt VMAKE einen neuen Prozeß, der alle Aufgabe übernimmt. Der Elternprozeß zeigt alle Meldungen des Kindprozesses und wartet auf Signale zur Beendigung. Wenn Sie die Option i verwenden, wird kein neuer Prozeß gestartet und die standardmäßigen Signalhandler werden genutzt.
w | Diese Option entspricht der Voreinstellung für UNIX-Systeme mit der Ausnahme, daß ein Beendigungssignal den Elternprozeß ohne Nachfrage beendet. Normalerweise führt ein solches Signal zur Abfrage, ob beendet oder weiterbearbeitet werden soll.
b | background Mit dieser Option wird der Elternprozeß beendet, nachdem der Kindprozeß erfolgreich erzeugt wurde. Bemerkung: Der Kindprozeß wird erzeugt nachdem alle Beschreibungen gesammelt wurden. Normalerweise lautet die erste Meldung des Kindprozesses <date> start of <target>. Vor dieser Nachricht wird VMAKE interaktiv ausgeführt, d. h. die standardmäßigen Signalhandler werden genutzt.
c | print collection only Nachdem alle Beschreibungsdateien gesammelt wurden, wird die gesamte Beschreibungsinformation angezeigt und VMAKE terminiert. Dies kann zur Überprüfung der Beschreibungsdateien (oder des Werkzeugs VMAKE) genutzt werden.
m | print module list only Nachdem alle Beschreibungsinformationen gesammelt wurden, werden sämtliche Moduldateien ausgegeben, die benötigt werden.
x | print commands before execution Alle Dateisystem-Kommandos, die VMAKE ausführt, werden vorher angezeigt.
n | no execution VMAKE arbeitet wie gewöhnlich aber alle Dateisystem- und Betriebssystemkommandos werden nicht ausgeführt. VMAKE nimmt an, daß alle diese Operationen erfolgreich durchgeführt wurden.
r | unpack module frames only ('retrieve') Normalerweise werden Moduldateien von ihrem Rahmen befreit und dann übersetzt. Die Verwendung dieser Option unterbindet das Übersetzten und Linken. Die ausgepackten Moduldateien verbleiben im Arbeitsverzeichnis. Weitere Operationen werden nicht ausgeführt.
L | lint Mit dieser Option werden C-Moduldateien mit Hilfe von Lint analysiert. Weitere Operationen werden nicht ausgeführt.
S | sizeof Es werden von PASCAL-Moduldateien Größeninformationen von Typen und Variablen extrahiert. Weitere Operationen werden nicht ausgeführt.
d | do not make dependencies Nur die in der Kommandozeile aufgeführten Ziele werden erstellt, falls sie nicht aktuell sind. Bei abhängigen Moduldateien wird davon ausgegangen, daß sie aktuell sind. Somit kann für einen Test eine Aktualisierung aller abhängigen Moduldateien vermieden werden.
u | unconditionally make named targets Alle genannten Moduldateien werden explizit neu übersetzt und gebunden. Alle abhängigen Moduldateien werden wie gewöhnlich entsprechend ihrer Aktualität übersetzt und gelinkt. Alle genannten Beschreibungsdateien werden explizit neu gelinkt.
U | unconditionally make ALL targets (except includes) Alle genannten Moduldateien sowie davon abhängige Dateien werden übersetzt und gelinkt (Ausnahme: Include-Dateien).
I | unconditionally make includes too (with -U) Bei Verwendung dieser Option zusammen mit der Option -U werden Include-Dateien neu erzeugt.
k | keep temporary files Von VMAKE erzeugte temporäre Dateien werden nicht gelöscht. Dies sind entpackte Moduldateien, Objektdateien und andere.
K | keep temporary files Von VMAKE erzeugte temporäre Dateien werden nicht gelöscht. Zusätzlich erhalten alle Skripte die Option -k. Damit löschen auch die Skripte ihre temporären Dateien nicht.
p | include profiling calls into all targets Verwenden Sie diese Option, um Profiling für alle Moduldateien zu spezifizieren.
M | more information (print manual entry) Verwenen Sie diese Option, um die Datei vmakman anzuzeigen.
l | local make Diese Option verhindert die Benutzung von Objektdateien aus kleineren Pfadhierarchien. VMAKE übersetzt nur Moduldateien, die von der untersten Pfadhierarchie stammen. Diese Option übersteuert den $VMAKE_OPTION-Parameter g.
g | global make Die Nutzung der kompletten Pfadhierarchie aus $VMAKE_PATH zur Suche nach Objektdateien wird initiiert. Diese Option übersteuert den $VMAKE_OPTION-Parameter I.
R | require Um den Erstellungsprozeß zu beschleunigen wird gemäß Voreinstellung von VMAKE die Option ? require : <source> in Beschreibungsdateien nicht ausgewertet. Wenn Sie die Option R verwenden, wird die Option ? require : <source> berücksichtigt.
F | Filelist for Release Mit dieser Option erstellen Sie eine Auslieferungsliste, wobei eventuell veraltete Ziele nicht aktualisiert werden. Von dem aufgerufenen Ziel werden alle Dateien, die mit der Option distrib für Beschreibungsdateien oder mit der Option distribute für Beschreibungsdateien versehen wurden, in eine Liste eingetragen. Diese Liste wird im Verzeichnis $INSTROOT/etc in eine Datei gesichert. Der Name der Datei ist der Name des aufgerufenen Zieles. Sie bekommt die Dateiendung .lst. Bei der Eingabe von imf -F all wird die Datei all.lst erzeugt.
+e | Wenn Sie mit Hilfe des $VMAKE_OPTION-Parameters die Erstellung der Software im Debug-Mode spezifiziert haben, können Sie mit der Option +e den Debug-Modus deaktivieren.

Integration

Grammatik des VMAKE-Aufrufs


VMAKE-Werkzeuge (MaxDB: Entwicklungsumgebung)

VMAKE-Werkzeuge

Bei den von VMAKE verwendeten Werkzeugen handelt es sich um Skripte . Diese können in einer beliebigen Skript- oder Prototypingsprache vorliegen. Welche Shell die Skripte letztendlich ausführt, ist in der Umgebungsvariable $TOOLSHELL definiert.

Die VMAKE-Werkzeuge akzeptieren sowohl absolute als auch relative Pfadangaben für Moduldateien und Beschreibungsdateien . Die Ziele werden in dem von VMAKE vorgegebenen aktuellen Arbeitsverzeichnis erzeugt und anschließend im vorgegebenen Zielverzeichnis abgelegt.


Ablage der VMAKE-Werkzeuge (MaxDB: Entwicklungsumgebung)

Ablage der VMAKE-Werkzeuge

VMAKE geht zunächst davon aus, dass die VMAKE-Werkzeuge im Verzeichnis $TOOL/bin gespeichert sind. Wenn sie dort nicht sind, sucht VMAKE für jeden lokalen Pfad <path> entlang des Pfades <path>/sys/tool/bin.


Skripte der VMAKE-Werkzeuge (MaxDB: Entwicklungsumgebung)

Skripte der VMAKE-Werkzeuge

Name des Skripts | Beschreibung
mfainc [-<token>=<value>] source | Extrahiert den Include-Code einer Assembler- Include-Datei und schreibt ihn in die Datei < file_name >.h . Weitere Optionen definieren die bedingte Kompilierung.
mfcinc [-<token>=<value>] source | Extrahiert den Include-Code einer C/C++-Include-Datei und schreibt ihn in die Datei <file_name>.h . Weitere Optionen definieren die bedingte Kompilierung.
mfpinc [-<token>=<value>] source | Extrahiert den Include-Code einer C/C++- Include-Datei. Extrahierte CONST-Definitionen werden in die Datei <file_name>.con , extrahierte TYPE-Definitionen in die Datei <file_name>.typ geschrieben. Weitere Optionen definieren die bedingte Kompilierung.
mfcexp [-<token>=<value>] source | Schreibt die exportierte Schnittstelle (define section des textuellen Rahmens) in die Datei <file_name>.h . Weitere Optionen definieren die bedingte Kompilierung.
mfa [-trace=<procedure>] [-check=no] [-<token>=<value>] source [includes] | Extrahiert die code section einer Assembler-Moduldatei und schreibt diese in die Datei <file_name>.s . Wenn Include-Dateien benötigt werden, sind diese in korrekter Reihenfolge anzugeben. Die Optionen -trace=... und -check=... sind aus Gründen der Kompatibilität mit mfp -Skripten eingefügt und werden vom mfa -Skript ignoriert. Weitere Optionen definieren die bedingte Kompilierung.
mfc [-trace=<procedure>] [-check=no] [-<token>=<value>] source [includes] | Extrahiert die code section einer C/C++- Moduldatei und schreibt diese in <file_name>(.c |.cpp) . Wenn Include-Dateien benötigt werden, sind diese in korrekter Reihenfolge anzugeben. Wenn $VMAKE_VERSION mit slow definiert ist, wird der Datei #define DEBUG vorangestellt. Die Optionen -trace=... und -check=... sind aus Gründen der Kompatibilität mit mfp -Skripten eingefügt und werden vom mfc -Skripten ignoriert. Weitere Optionen definieren die bedingte Kompilierung.
mfp [-trace=<procedure>] [-check=no] [-<token>=<value>] source [includes] | Extrahiert die definee section, use section und code section einer PASCAL-Moduldatei und schreibt diese in die Datei <file_name>.p . Wenn Include-Dateien benötigt werden, sind diese in korrekter Reihenfolge anzugeben. Die Option -trace=<procedure> spezifiziert den Namen der Trace-Prozedur, deren Aufruf am Anfang jeder Funktion und Prozedur eingefügt wird. Die Option -check=no definiert, ob die Namenspräfixe exportierter Prozeduren geprüft werden sollen. Weitere Optionen definieren die bedingte Kompilierung.
mfsize [include-list] module | Erzeugt eine Datei <file_name>.siz , die Größeninformationen über verwendete Typen der Moduldatei enthält. Wenn Include-Dateien benötigt werden, sind diese in korrekter Reihenfolge anzugeben.
mfextra [-<token>=<value>] source destination [includes] | Erzeugt nicht zu übersetzende Dateien . Weitere Optionen definieren die bedingte Kompilierung und Attribute der nicht zu übersetzenden Dateien.
compa [as-flags] source | Übersetzt eine Assembler-Moduldatei. Es wird die Datei <file_name>.o erzeugt.
compc [cc-flags] source | Übersetzt eine C/C++-Moduldatei. Es wird die Datei <file_name>.o erzeugt.
compp [pc-flags] source | Übersetzt eine PASCAL-Moduldatei. Es wird die Datei <file_name>.o erzeugt.
comppc [pc-flags] source | Übersetzt eine PASCAL-Moduldatei in eine C-Moduldatei.
complint [cc-flags] source | Verwendet LINT, um eine C-Moduldatei zu prüfen.
archive [ar-flags] library objects | Schreibt Objektdateien in die Bibliothek library.
linkrel [ld-flags] relocatable objects | Schreibt Objektdateien in ein Relocatable-Objekt . Der Name des erzeugten Relocatable-Objekts ist relocatable .
linkshr [ld-flags] relocatable objects | Schreibt Objektdateien in ein Relocatable-Objekt, dessen globale Variablen im Shared Memory abzulegen sind. Der Name des erzeugten Relocatable-Objekts ist relocatable .
linkdll [ld-flags] dll archive objects | Linkt Objektdateien zu einer dynamischen Bibliothek dll und erzeugt eine statische Bibliothek archive .
linklnk [ld-flags] [-o program] objects | Linkt ein Programm mit dem Namen program .
linkshm [ld-flags] [-o program] objects | Linkt ein Programm mit dem Namen program , dessen globale Variablen im Shared Memory abzulegen sind.

Die Namen der Skripte werden von VMAKE mit Hilfe der Variable $TOOLEXT vervollständigt (sofern vorhanden), die die Dateiendung der Skripte definiert. Wenn zusätzliche Parameter an $TOOLSHELL übergeben werden sollen, sind diese in der Umgebungsvariable $TOOLOPT zu definieren.


Auswahl der Übersetzungswerkzeuge (MaxDB: Entwicklungsumgebung)

Auswahl der Übersetzungswerkzeuge

Moduldateien können in verschiedenen Programmiersprachen verfaßt sein.

Es gibt gesonderte VMAKE-Werkzeuge für die Übersetzung der Sprachen PASCAL, C/C++ und Assembler sowie ein Werkzeug für die Übersetzung einer Gruppe in der verschiedene Beschreibungssprachen zusammengefaßt sind, wie IDL, Resource, Yak, Lex usw.

Namen der verfügbaren Werkzeuge

 |  | Assembler | PASCAL | C / C++ | Beschreibungs-sprachgruppe
1. Phase | importierte Schnittstelle auspacken | mfainc | mfpinc | mfcinc | mfcinc
 | exportierte Schnittstelle auspacken | mfaexp | mfpexp | mfcexp | mfcexp
 | Modul auspacken | mfa | mfp | mfc | mfrc
2. Phase | übersetzen | compa | comppc | compc | comprc

Jedes Werkzeug besteht aus einem Satz von Skripten, der in der Initialisierungsdatei mit dem Namen Langinfo geändert werden kann.

Zuordnung zwischen Dateiendung bzw. letztem Zeichen und Übersetzungswerkzeug

VMAKE ordnet eine Moduldatei auf der Basis der Dateiendung einem bestimmten Werkzeug zu. Wenn keine Dateiendung vorhanden ist, erfolgt die Zuordnung auf der Basis des letzten Zeichens des Dateinamens.

 | Assembler | PASCAL | C / C++ | Beschreibungs-sprachklasse
Dateiendung | s | p, t | c, h / cpp, hpp | rc, ico, def, mc, dlg, idl, ycc, lex, rgs
letztes Zeichen | a | p, t oder eine Ziffer | c / x | r

Die Zuordnung der Übersetzungswerkzeuge auf der Basis der Dateieindung bzw. des letzten Zeichens des Dateinamens kann in der Initialisierungsdatei mit dem Namen Langtextinfo geändert werden.


Optionen für VMAKE-Werkzeuge (MaxDB: Entwicklungsumgebung)

Optionen für VMAKE-Werkzeuge

Folgende Option wird von VMAKE übergeben

-language=<lang id>

Kürzel für die dem Quelltext zugrundeliegende Programmiersprache

Folgende Optionen können von VMAKE übergeben werden

-k | Zwischendateien werden nicht gelöscht
-p | profiling eingeschaltet (für mind. eine Moduldatei)
-g | Debug-Modus eingeschaltet (für mind. eine Moduldatei)
-Y | shared global data, PTOC Zeiger-Konvertierung
-unpack=no | der Quelltext enthält keinen Rahmen (nur bei mf*-Skripten)

All diese Optionen werden je nach Werkzeug genutzt oder ignoriert.

Im übrigen wirken die spezifizierten Optionen für den Aufruf von VMAKE und Optionen für Beschreibungsdateien .


Erstellen von Beschreibungsdateien (MaxDB: Entwicklungsumgebung)

Erstellen von Beschreibungsdateien

Allgemeine Grammatik für Beschreibungsdateien

Optionen für Beschreibungsdateien


Allgemeine Grammatik für Beschreibungsdateien (MaxDB: Entwicklungsumgebung)

Allgemeine Grammatik für Beschreibungsdateien

<debug_opt> = debug | d

<digit> = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

<letter> = A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | r | u | v | w | x | y | z

<new_line> = ein expliziter Zeilenumbruch

<profile_opt> = profile | p

<sign> = + | -

<tabulator> = ein Tabulator

<vmake_default> = f | q | s

<vmake_version> = f | q | s

<extended_letter> = alle weiteren druckbaren Zeichen

<character> = <digit> | <letter> | <extended_ letter>

<identifier> = <token>

<space> = [<space>] | [<space>]<tabulator>

<token_sep> = {<token_sep>}<space>

<token> = <character>{<character>}

<list> = [<list>,],{<character>}<token_sep>

<ext_list> = [<ext_list>,],[<sign>]{<character>}<token_sep>

<comment> = [<comment><token_sep>]<token>

<compile_option> = <extended_letter><token>

<demand_spec> = demand[{<layer>{<layer>}}]

<dep_list> = (obj | inc | dep | <demand spec>)=(<list> | <ext_list> | EMPTY)

<expr> = <character>{<character>} | (<expr>) | not<space><expr> | ![<space>]<expr> | <expr><space>[(not | !)<space> ]in<space>[[<space>]<expr>{[<space>] ,[<space>]<expr>}[<space>]] | <expr>=[=]<expr> | <expr>!=<expr> | <expr>&&<expr> | <expr>||<expr>

<layer> = <letter><letter>{<letter>}

<mf_option> = <token>[=<value>]

<option> = [<option><token_sep>](<dep_list> | <mf_option> | <compile_option> | <target_option>)

<option_block> = ([f | [q | [s) <option> {<option>} (f] | q] | s])

<ext_option> = <option_block> | <option> | EMPTY

<target_option> = uncond | remake | <debug opt> | binary | ascii | exec | definition | interface | <profile opt> | shrglob | noshrglob | noobjcopy | (<vmake_version>[<vmake_default>]) | -><token> | <ext_target_option> | <ext_target_option_list>

<ext_target_option> = ?<token_sep>(default_layer | default_version | require | -><token> | propagate)<token_sep>(: | ([<character>]))<token_sep><token>

<ext_target_option_list> = ?<token_sep>(output | link_with | link_option | tool_option)<token_sep>(: | ([<character>]))<token_sep><token>{<token_sep>,<token_sep><token>}

<ext_target_option_line> = (<ext_target_option> | <ext_target_option_list>) <new_line>

<value> = <character>{<character>}

<def line> = &define | &undef <identifier> [<value>]<new_line>

<comment_line> = #<comment><new_line>

<block> = <instance_block> | <sub_block>

<instance_block> = (<instance_block_start>{<sub_block>}<instance_block_end>) | EMPTY

<instance_block_start> = (&fast | &quick | &slow) <comment><new_line>

<instance_block_end> = (&endfast | &endquick | &endslow) <comment><new_line>

<sub_block> = {<line>} | <sub_block_start>{<line>}<sub_block_end>

<sub_block_start> = &if <expr>{<space>}<new_line> | &ifdef | &ifndef | &ifvar | &ifnvar) <identifier>{<space>}<new_line>

<sub_block_end> = &endif <comment><new_line> | &else <comment><new_line> | &elif <comment><new_line>

<line> Zeile

Für die genaue Spezifikation siehe Grammatik für Linkbeschreibungen , Grammatik für Kompilierbeschreibungen oder Grammatik für Abarbeitungslisten .

Allgemeine Regeln

  1. <token> darf maximal 512 Zeichen enthalten
  2. <token> darf kein <space> enthalten
  3. Wenn <instance_block_start> die Zeichenfolge &xxx beinhaltet, dann muß <instance_block_stop> die Zeichenfolge &endxxx enthalten.
  4. Wenn der Ausdruck <option_block> mit [x startet, dann muß er mit x] enden.
  5. In <mf_option> muß <token> mit <letter> oder <character> beginnen.


Grammatik für Linkbeschreibungen (MaxDB: Entwicklungsumgebung)

Grammatik für Linkbeschreibungen

Grundlage für Linkbeschreibungen sind die allgemeine Grammatik für Beschreibungsdateien , die Namenskonventionen für Moduldateien und die Namenskonventionen für Beschreibungsdateien .

<link_description> = {<block>} | EMPTY

<line> = <link_desc_line>

<link_desc_line> = <comment_line> | <link_line> | <def_line> | <ext_target_option_line> | <tool_option_line> | <file> | EMPTY

<tool_option_line> = <extended_letter><token><new_line>

<file> = (/ | $)<token>

<link_line> = [<source_spec>|<desc_spec>]<new_line>

Allgemeine Regel

In <tool_option_line> darf <ext_character> nicht mit / | $ | ! beginnen


Grammatik für Kompilierbeschreibungen (MaxDB: Entwicklungsumgebung)

Grammatik für Kompilierbeschreibungen

Grundlage für Kompilierbeschreibungen sind die allgemeine Grammatik für Beschreibungsdateien und die Namenskonventionen für Moduldateien .

<compile_description> = {<block>} | EMPTY

<line> = <comp_desc_line>

<comp_desc_line> = <comment_line> | <comp_line> | <def_line> | <option_line> | EMPTY

<comp_line> = (<source_spec> | <reg_source>)<token_sep>{<option>}<new_line>

<reg_source> = regex(<regex>) | ([<source_id>]*[<lang_id>][<variant>])

<source_id> = g | h | i | v

<regex> = ein regulärer Ausdruck (GNU)


Grammatik für Abarbeitungslisten (MaxDB: Entwicklungsumgebung)

Grammatik für Abarbeitungslisten

Grundlage für Abarbeitungslisten sind die allgemeine Grammatik für Beschreibungsdateien , die Namenskonventionen für Moduldateien und die Namenskonventionen für Beschreibungsdateien .

<macro_description> = {<block>} | EMPTY

<line> = <macro_desc_line>

<macro_desc_line> = <comment_line> | <macro_line> | <def_line> | <ext_target_option_line>

| <command_line> | EMPTY

<command_line> = ![! | ?]<command>

<command> = {<character>}

<macro_line> = [<source_spec>|<desc_spec>]<new_line>

Allgemeine Regel

In <tool_option_line> darf <ext_character> nicht mit / | $ | ! beginnen


Optionen für Beschreibungsdateien (MaxDB: Entwicklungsumgebung)

Optionen für Beschreibungsdateien

Durch die Angabe von Optionen in Beschreibungsdateien haben Sie die Möglichkeit, den Übersetzungsvorgang und Linkvorgang zu spezifizieren und den Systemvorschlag von VMAKE für bestimmte Prozesse zu modifizieren.

Für die verschiedenen Arten von Beschreibungsdateien stehen teils gleiche und teils unterschiedliche Optionen zur Verfügung.

Optionen für Linkbeschreibungen

Optionen für Kompilierbeschreibungen

Optionen für Abarbeitungslisten


Optionen für Linkbeschreibungen (MaxDB: Entwicklungsumgebung)

Optionen für Linkbeschreibungen

Für Linkbeschreibungen stehen Ihnen folgende Optionen zur Verfügung:

? defaultlayer : <layer>

? defaultlayer :

? defaultversion : <vmake_version>

? defaultversion :

? distribute : <list>

? link with : <list>

? linkoption : <list>

? output : <list>

? propagate : <variable>[=<value>]

? require : <target>

? tooloption : <list>

-><output>

ascii

binary

debug|d

definition

demand

demandŒ<relative_path> 

demand=<list>

demandŒ<relative_path> =<list>

dep=<list>

distrib

extdep=<list>

inc=<list>

interface

nobind

nodistrib

noobjcopy

noshrglob

obj=<list>

profile|p

remake

shrglob

uncond


Optionen für Kompilierbeschreibungen (MaxDB: Entwicklungsumgebung)

Optionen für Kompilierbeschreibungen

Für Kompilierbeschreibungen stehen Ihnen folgende Optionen zur Verfügung:

? defaultlayer : <layer>

? defaultlayer :

ascii

binary

debug|d

definition

demand=<list>

demandŒ<relative_path> =<list>

dep=<list>

exec

extdep=<list>

inc=<list>

interface

noobjcopy

noshrglob

noversion

obj=<list>

profile|p

remake

shrglob

uncond


Optionen für Abarbeitungslisten (MaxDB: Entwicklungsumgebung)

Optionen für Abarbeitungslisten

Optionen

Für Abarbeitungslisten stehen Ihnen folgende Optionen zur Verfügung:

!! <command>

!? <command>

! <command>

? defaultlayer : <layer>

? defaultlayer :

? defaultversion : <vmake_version>

? defaultversion :

? distribute : <list>

? propagate : <variable>[=<value>]

? require : <target>

ascii

binary

debug|d

distrib

nodistrib

remake

shrglob

uncond


! <command> (MaxDB: Entwicklungsumgebung)

! <command>

Diese Option kann nur in Abarbeitungslisten verwendet werden.

VMAKE arbeitet eine Abarbeitungsliste von oben nach unten ab. Wenn das Werkzeug den Eintrag dieser Option erreicht und bis dahin bereits Ziele durch VMAKE aktualisiert wurden, wird das Betriebssystemkommando <command> ausgeführt.

Wenn bis dahin keine Ziele aktualisiert wurden, dann wird das Kommando ignoriert.


!! <command> (MaxDB: Entwicklungsumgebung)

!! <command>

Diese Option kann nur in Abarbeitungslisten verwendet werden.

VMAKE arbeitet eine Abarbeitungsliste von oben nach unten ab. Wenn das Werkzeug den Eintrag dieser Option erreicht, wird das Betriebssystemkommando <command> ausgeführt.

Im Gegensatz zur Option ! <command> erfolgt dies unabhängig davon, ob bis dahin bereits Ziele aktualisiert wurden.


!? <command> (MaxDB: Entwicklungsumgebung)

!? <command>

Diese Option kann nur in Abarbeitungslisten verwendet werden.

VMAKE arbeitet eine Abarbeitungsliste von oben nach unten ab. Wenn das Werkzeug den Eintrag dieser Option erreicht, wird das Betriebssystemkommando <command> nur dann ausgeführt, wenn alle vorherigen Ziele erfolgreich aktualisiert worden sind.


? defaultlayer : <layer> (MaxDB: Entwicklungsumgebung)

? defaultlayer : <layer>

Diese Option kann in Abarbeitungslisten , Linkbeschreibungen und Kompilierbeschreibungen verwendet werden.

Wenn der Name einer Moduldatei nicht den Namenskonventionen entspricht und aus diesem Grund die entsprechende Schicht vom System nicht ermittelt werden kann, wird auf die in <layer> spezifizierte Schicht zurückgegriffen

Diese Option kann sich innerhalb einer Beschreibungsdatei mehrfach wiederholen.


? defaultlayer : (MaxDB: Entwicklungsumgebung)

? defaultlayer :

Diese Option kann in Abarbeitungslisten , Linkbeschreibungen und Kompilierbeschreibungen verwendet werden.

Wenn der Name einer Moduldatei nicht den Namenskonventionen entspricht und aus diesem Grund die entsprechende Schicht vom System nicht ermittelt werden kann, wird auf die mit Hilfe der Option ? defaultlayer : <layer> spezifizierte Schicht zurückgegriffen

Verwenden Sie die Option ? defaultlayer : wenn Sie diesen Vorschlagswert für eine Schicht löschen wollen.


? defaultversion : <vmake_version> (MaxDB: Entwicklungsumgebung)

? defaultversion : <vmake_version>

Diese Option kann in Abarbeitungslisten und Linkbeschreibungen verwendet werden.

Sie legen damit fest, welche VMAKE-Version für die Abarbeitung der nachfolgend aufgeführten Dateien genutzt werden soll.

Um später eine andere Version zu spezifizieren, verwenden Sie wiederum die Option ? defaultversion : <vmake_version> . Damit kann sich diese Option also mehrfach in einer Beschreibungsdatei wiederholen.

Um VMAKE auf die beim Aufruf spezifizierte VMAKE-Version zurückzusetzen, verwenden Sie die Option ? defaultversion :


? defaultversion : (MaxDB: Entwicklungsumgebung)

? defaultversion :

Diese Option kann in Abarbeitungslisten und Linkbeschreibungen verwendet werden.

Sie verwenden diese Option, um eine mittels ? defaultversion : <vmake_version> gesetzte VMAKE-Version zu löschen.

Danach wird vom System wieder die mit dem Aufruf von VMAKE spezifizierte VMAKE-Version verwendet.


? distribute : <list> (MaxDB: Entwicklungsumgebung)

? distribute : <list>

Diese Option kann in Abarbeitungslisten und Linkbeschreibungen verwendet werden.

Sie können diese Option beim Erstellen von Auslieferungslisten ( Option -F für den Aufruf von VMAKE ) verwenden. Geben Sie in <list> die Liste jener Dateien an, die mit in die Auslieferungsliste aufgenommen werden soll.

Geben Sie die Pfade der Dateien in <list> relativ zum $INSTROOT -Verzeichnis an (z. B. pgm/kernel ) .

Sofern möglich, empfehlen wir jedoch, die Option distrib für diesen Zweck zu verwenden.


? link with : <list> (MaxDB: Entwicklungsumgebung)

? link with : <list>

Diese Option kann nur in Linkbeschreibungen verwendet werden.

Wenn ein Ziel zusätzliche Bibliotheken benötigt, können diese mit der Option ? link with : <list> in die Linkbeschreibung aufgenommen werden.


? linkoption : <list> (MaxDB: Entwicklungsumgebung)

? linkoption : <list>

Diese Option kann nur in Linkbeschreibungen verwendet werden.

Verwenden Sie diese Option, um die in <list> angegebene Liste von Optionen an das für den Linkvorgang genutzte Werkzeug zu übergeben.


? output : <list> (MaxDB: Entwicklungsumgebung)

? output : <list>

Diese Option kann nur in Linkbeschreibungen verwendet werden.

Ziele von Linkbeschreibungen erhalten den Namen der Linkbeschreibung und werden unter einem von VMAKE vorgegebenen Pfad abgelegt.

Namens- und Pfadänderungen

Wenn Sie die Option ? output : <list> verwenden, können Sie den Namen und/oder Pfad für mehrere Ausgabedateien ändern oder auch Kopien von Dateien anlegen. Sie erstellen dazu eine Liste <list>, in der Sie einem oder mehreren Zielen mehrere Pfadangaben zuordnen. Damit ändert VMAKE die vom System vorgegebene Namens- und Pfaddefinition für dieses Ziel.

Wenn Sie in einer solchen Liste ein Verzeichnis angegeben oder einen Eintrag mit einem Schrägstrich beenden, dann behält die Datei den vom System vergebenen Namen und wird in das angegebene Verzeichnis kopiert.

Wenn Sie den Namen und/oder Pfad für eine einzelne Ausgabedatei ändern wollen, verwenden Sie die Option -><output>.

Ausgabedateien für verschiedene Plattformen

Eine Ausgabedatei kann auf verschiedenen Plattformen unterschiedliche Dateiendungen haben. In einem solchen Fall geben Sie für das Ziel die Dateiendung * an. Sie vermeiden damit, für dieses Ziel einzelne plattformbezogene Ausgabedateien definieren zu müssen.

Dynamische Bibliotheken haben unter Microsoft Windows die Dateiendung dll und unter UNIX die Dateiendung so oder sl(HP-UX). Die Option müßte in diesem Falle lauten:
? output : $DBROOT/misc/libtest.*


? propagate : <variable>[=<value>] (MaxDB: Entwicklungsumgebung)

? propagate : <variable>[=<value>]

Sie verwenden diese Option in Abarbeitungslisten und Linkbeschreibungen zum Setzen einer Umgebungsvariablen.

Nach Abarbeitung der betreffenden Liste oder Linkbeschreibung wird diese Variable vom System wieder gelöscht.


? require : <target> (MaxDB: Entwicklungsumgebung)

? require : <target>

Diese Option kann in Abarbeitungslisten und Linkbeschreibungen verwendet werden. Sie wirkt nur in Verbindung mit der Option -R für den Aufruf von VMAKE .

Sie spezifizieren mit dieser Option, ob eine Linkbeschreibung die Erstellung bestimmter Ziele zur Voraussetzung hat.

In einer Abarbeitungsliste soll ein Werkzeug aufgerufen werden, das eine Datei an den Precompiler weiterreicht. In einem solchen Fall können Sie durch die Verwendung dieser Option sicherstellen, daß zuvor der Precompiler erzeugt wird.


? tooloption : <list> (MaxDB: Entwicklungsumgebung)

? tooloption : <list>

Diese Option kann nur in Linkbeschreibungen verwendet werden.

Die in der Liste <list> aufgeführten Optionen werden an das Werkzeug weitergereicht, das für den Linkvorgang zuständig ist.


-><output> (MaxDB: Entwicklungsumgebung)

-><output>

Diese Option kann in Linkbeschreibungen und Kompilierbeschreibungen verwendet werden.

Ziele von Linkbeschreibungen erhalten den Namen der Linkbeschreibung und werden unter einem von VMAKE vorgegebenen Pfad abgelegt.

Verwendung

Namens- und Pfadänderungen

Wenn Sie den Namen und/oder Pfad für eine einzelne Ausgabedatei ändern wollen, verwenden Sie die Option -><output>.

Wenn Sie die Option ? output: <list> verwenden, können Sie den Namen und/oder Pfad für mehrere Ausgabedateien ändern oder auch Kopien von Dateien anlegen. Sie erstellen dazu eine Liste <list>, in der Sie einem oder mehreren Zielen mehrere Pfadangaben zuordnen. Damit ändert VMAKE die vom System vorgegebene Namens- und Pfaddefinition für dieses Ziel.

Wenn Sie in einer solchen Liste ein Verzeichnis angegeben oder einen Eintrag mit einem Schrägstrich beenden, dann behält die Datei den vom System vergebenen Namen und wird in das angegebene Verzeichnis kopiert.

Ausgabedateien für verschiedene Plattformen

Eine Ausgabedatei kann auf verschiedenen Plattformen unterschiedliche Dateiendungen haben. In einem solchen Fall geben Sie für das Ziel die Dateiendung * an. Sie vermeiden damit, für dieses Ziel einzelne plattformbezogene Ausgabedateien definieren zu müssen.

Dynamische Bibliotheken haben unter Microsoft Windows die Dateiendung dll und unter UNIX die Dateiendung so oder sl (HP-UX). Die Option müsste in diesem Falle lauten:
->$DBROOT/misc/libtest.*


ascii (MaxDB: Entwicklungsumgebung)

ascii

Diese Option kann in Abarbeitungslisten , Linkbeschreibungen und Kompilierbeschreibungen verwendet werden.

Sie verhindert, daß die Moduldatei übersetzt wird. VMAKE erstellt das entsprechende Ziel indem die Moduldatei nur in das Objektverzeichnis kopiert wird. Anders als bei der Option binary wird die Datei dabei als Textdatei behandelt.

Wenn Sie die Datei an einem anderen Ort ablegen wollen, verwenden Sie die Option -><output> .


binary (MaxDB: Entwicklungsumgebung)

binary

Diese Option kann in Abarbeitungslisten , Linkbeschreibungen und Kompilierbeschreibungen verwendet werden.

Sie verhindert, daß die Moduldatei ausgepackt und übersetzt wird. VMAKE erstellt das entsprechende Ziel indem die Moduldatei nur in das Objektverzeichnis kopiert wird. Anders als bei der Option ascii wird die Datei dabei als Binärdatei behandelt.

Wenn Sie die Datei an einem anderen Ort ablegen wollen, verwenden Sie die Option ->output .


debug|d (MaxDB: Entwicklungsumgebung)

debug|d

Diese Option kann in Abarbeitungslisten , Linkbeschreibungen und Kompilierbeschreibungen verwendet werden.

Eine Moduldatei wird im Debug-Modus übersetzt.


definition (MaxDB: Entwicklungsumgebung)

definition

Diese Option kann in Linkbeschreibungen und Kompilierbeschreibungen verwendet werden.

Sie kennzeichnet eine Moduldatei als Definitionsdatei für dynamische Bibliotheken unter Microsoft Windows. Semantisch entspricht diese Option der Kombination aus den Optionen binary und demand.

Wenn eine Moduldatei mit dieser Option versehen wird, dann wird sie vor dem Linkvorgang binär in das aktuelle Arbeitsverzeichnis tmp kopiert


demand (MaxDB: Entwicklungsumgebung)

demand

Diese Option kann nur in Linkbeschreibungen verwendet werden.

Eine Objektdatei wird vor dem Linkvorgang in das Verzeichnis tmp kopiert.

Wenn Sie eine Moduldatei mit dieser Option versehen, wird die daraus resultierende Objektdatei für den Linkvorgang angefordert, d.h. sie wird in das entsprechende von VMAKE vorgegebene Arbeitsverzeichnis kopiert. Man drückt physische Abhängigkeit aus.


demand{<relative path>} (MaxDB: Entwicklungsumgebung)

demand{<relative path>}

Diese Option kann nur in Linkbeschreibungen verwendet werden.

Es wird die Objektdatei der so gekennzeichnete Moduldatei zum Linkvorgang in einen bestimmten Pfad angefordert, d.h. sie wird in den angegeben relativen Pfad zum Arbeitsverzeichnis kopiert. Man drückt physische Abhängigkeit aus.


demand=<list> (MaxDB: Entwicklungsumgebung)

demand=<list>

Diese Option kann in Linkbeschreibungen und Kompilierbeschreibungen verwendet werden.

Es werden die Objekt-Dateien (siehe auch „binary“) der aufgeführten Dateien zum Übersetzungszeitpunkt angefordert, d.h. sie werden ins entsprechende Arbeitsverzeichnis kopiert. Man drückt physische Abhängigkeit aus.


demand{<relative path>}=<list> (MaxDB: Entwicklungsumgebung)

demand{<relative path>}=<list>

Diese Option kann in Linkbeschreibungen und Kompilierbeschreibungen verwendet werden.

Es werden die Objekt-Dateien (siehe auch „binary“) der aufgeführten Dateien zum Übersetzungszeitpunkt in einen bestimmten Pfad angefordert, d.h. sie werden in den relativen Pfad zum Arbeitsverzeichnis kopiert. Man drückt physische Abhängigkeit aus.


dep=<list> (MaxDB: Entwicklungsumgebung)

dep=<list>

Diese Option kann in Linkbeschreibungen und Kompilierbeschreibungen verwendet werden.

Es wird aufgeführt, von welchen Moduldateien die angegebene Moduldatei abhängig ist, d. h.

vco01.idl dep=vco03.idl


distrib (MaxDB: Entwicklungsumgebung)

distrib

Diese Option kann in Abarbeitungslisten und Linkbeschreibungen verwendet werden.

Sie wird zum Erstellen von Auslieferungslisten ( Option -F für den Aufruf von VMAKE ) benötigt. Die aus dem unmittelbar vor dieser Option aufgeführten Ziel resultierenden Dateien werden in die Auslieferungsliste aufgenommen, wenn sie sich im $INSTROOT -Verzeichnis befinden.


exec (MaxDB: Entwicklungsumgebung)

exec

Diese Option kann nur in Kompilierbeschreibungen verwendet werden. Sie wird nur unter UNIX und im Zusammenhang mit den Optionen ascii oder binary ausgewertet.

Wenn Sie diese Option angeben, wird das entsprechende Ziel mit dem Zugriffsrecht execute versehen.


extdep=<list> (MaxDB: Entwicklungsumgebung)

extdep=<list>

Diese Option kann in Linkbeschreibungen und Kompilierbeschreibungen verwendet werden.

Mit dieser Option definieren Sie eine logische Abhängigkeit zwischen Zielen und/oder Dateien.

Bei der Übersetzung der Moduldatei X entsteht ein Nebenprodukt Y. Mit der Option können Sie spezifizieren, daß X neu übersetzt werden soll, sobald Y nicht mehr existiert.


inc=<list> (MaxDB: Entwicklungsumgebung)

inc=<list>

Diese Option kann in Linkbeschreibungen und Kompilierbeschreibungen verwendet werden. Sie listen die Include-Dateien auf, die von der Moduldatei genutzt werden.

Die in <list> aufgeführten Dateien müssen als Include-Dateien identifizierbar sein.

Wenn eine solche Datei nicht durch ihre Dateiendung .h oder 00 bzw durch ein h als ersten Buchstaben des Dateinamens als Include-Datei identifizierbar ist, kann sie durch ein nachgestelltes (i) als Include-Datei gekennzeichnet werden.

inc=vma18(i)


interface (MaxDB: Entwicklungsumgebung)

interface

Diese Option kann in Linkbeschreibungen und Kompilierbeschreibungen verwendet werden.

Durch die Angabe dieser Option stellen Sie sicher, daß eine Moduldatei nach der erstmaligen Übersetzung nicht mehr aktualisiert werden kann (z. B. eine definierte Schnittstelle). Dazu wird auf dem Rechner, auf dem eine mit dieser Option versehene Moduldatei übersetzt wird, eine Datei dieses Namens mit der Dateiendung .i erzeugt.

Eine Übersetzung der Moduldatei ist erst dann wieder möglich, wenn VMAKE in der Pfadhierarchie ( VMAKE_PATH ) keine Datei dieses Namens mit der Dateiendung .i mehr findet.


nobind (MaxDB: Entwicklungsumgebung)

nobind

Diese Option kann nur in Linkbeschreibungen verwendet werden.

Das mit dieser Option versehene Ziel wird zwar erstellt aber beim Linkvorgang nicht gelinkt.


nodistrib (MaxDB: Entwicklungsumgebung)

nodistrib

Diese Option kann in Abarbeitungslisten und Linkbeschreibungen verwendet werden.

Die Option wird hinter dem Ziel (Target) nodistrib bzw. direkt hinter der Ausgabedatei in Klammern (nodistrib) angegeben. So können einzelne Komponenten bzw. Dateien, die im Normalfall beim Make-Lauf erstellt werden, von der Auslieferungsliste ausgeschlossen werden.


noobjcopy (MaxDB: Entwicklungsumgebung)

noobjcopy

Diese Option kann in Linkbeschreibungen und Kompilierbeschreibungen verwendet werden.

Objektdateien, die aus mit dieser Option versehenen Moduldateien entstehen, werden nicht kopiert. Sie verwenden diese Option beispielsweise, wenn das Objekt rechnerspezifische oder abteilungsweit eindeutige Informationen enthält.


noshrglob (MaxDB: Entwicklungsumgebung)

noshrglob

Diese Option kann in Linkbeschreibungen und Kompilierbeschreibungen verwendet werden.

Durch die Angabe dieser Option unterdrücken Sie explizit die Berechnung der Größenangaben für globale Variablen im Quelltext. Diese Größenangaben sind für die Nutzung des Shared Memory erforderlich.


noversion (MaxDB: Entwicklungsumgebung)

noversion

Diese Option kann in Kompilierbeschreibungen verwendet werden.

Wenn Module, die von Headerdateien verwendet werden, versionsunabhängig ( VMAKE-Versionen ) erzeugt werden sollen, müssen Sie die Option noversion für dieses Modul verwenden. Die Objektdateien und die Datumsdateien werden dann direkt unterhalb des $WRK -Verzeichnisses in das obj - bzw. date -Verzeichnis kopiert. Damit werden diese Dateien für alle Versionen ( fast , quick , slow ) nur einmal erzeugt.


obj=<list> (MaxDB: Entwicklungsumgebung)

obj=<list>

Diese Option kann in Linkbeschreibungen und Kompilierbeschreibungen verwendet werden.

Im Normalfall wird beim Übersetzungsvorgang mit VMAKE genau eine Objektdatei erzeugt. Diese hat den Namen der Moduldatei und die Dateiendung .o .
Sie verwenden diese Option, wenn andere Objektdateien entstehen, als in dem beschriebenen Normalfall. Wenn gar keine Objektdatei entsteht, kann <list> leer sein.


profile|p (MaxDB: Entwicklungsumgebung)

profile|p

Diese Option kann in Linkbeschreibungen und Kompilierbeschreibungen verwendet werden.

Sie können mit dieser Option Quelltext zur Performance-Messung (Profiling) in eine Moduldatei einfügen.


remake (MaxDB: Entwicklungsumgebung)

remake

Diese Option kann in Abarbeitungslisten , Linkbeschreibungen und Kompilierbeschreibungen verwendet werden.

Wenn Objektdateien nicht mehr aktuell sind und das Ziel neu erstellt werden soll, erzwingen Sie mit dieser Option, daß die entsprechenden Moduldateien neu übersetzt werden.


shrglob (MaxDB: Entwicklungsumgebung)

shrglob

Diese Option kann in Abarbeitungslisten , Linkbeschreibungen und Kompilierbeschreibungen verwendet werden.

Durch die Angabe dieser Option definieren Sie, daß eine Datei erzeugt werden soll, die Größenangaben über im Quelltext global verwendete Variablen beinhaltet. Diese Größenangaben sind für die Nutzung des Shared Memory erforderlich.


uncond (MaxDB: Entwicklungsumgebung)

uncond

Diese Option kann in Abarbeitungslisten , Linkbeschreibungen und Kompilierbeschreibungen verwendet werden.

Sie verwenden diese Option, wenn eine Moduldatei bei jedem Make-Vorgang neu übersetzt werden soll.


VMAKE-Protokolle (MaxDB: Entwicklungsumgebung)

VMAKE-Protokolle

Der gesamte MAKE-Vorgang wird von VMAKE protokolliert. Dabei werden zwei Ausgabeprotokolle erzeugt, die im Verzeichnis prot ( Allgemeine Verzeichnisstruktur ) abgelegt werden.

Die Namen dieser Protokolle entsprechen den beim Aufruf der gewünschten VMAKE-Version als Parameter angegebenen Dateinamen. Sie haben die Dateiendung .p0 oder .x0.

Dateiendung | Protokoll
.p0 | Normales Protokoll, entspricht den Bildschirmausgaben während des Erstellungsprozesses
.x0 | Beinhaltet genaue Informationen über die einzelnen Dateien sowie die beim Aufruf der VMAKE-Werkzeuge verwendeten Optionen

Beim Anlegen dieser Protokolle werden Protokolle älteren Datums mit dem gleichen Namen so umbenannt, dass die Ziffer am Ende des Namens um 1 erhöht wird. Damit ist eine Historie von bis zu 10 Protokollen möglich ( .p0 - .p9 ).

Die jeweils aktuellen Protokolle können mit Hilfe des Werkzeugs zur Bedinung der Entwicklungsumgebung ipf.pl im Editor ( $EDITOR ) anzeigen


Übersetzungsvorgang (MaxDB: Entwicklungsumgebung)

Übersetzungsvorgang

Der Übersetzungsvorgang gliedert sich in zwei Phasen:

Entpacken der Moduldateien

Übersetzen der Moduldateien


Entpacken der Moduldateien (MaxDB: Entwicklungsumgebung)

Entpacken der Moduldateien

VMAKE entscheidet anhand der Optionen in den Kompilierbeschreibungen , ob die Moduldateien entpackt werden müssen. Zusätzlich können folgende Schritte ablaufen:

Entfernen der nicht übersetzungsrelevanten Teile des Rahmens

Bedingte Kompilierung


Entfernen nicht übersetzungsrelevanter Teile des Rahmens (MaxDB: Entwicklungsumgebung)

Entfernen nicht übersetzungsrelevanter Teile des Rahmens

Moduldateien , die entpackt werden müssen, haben einen textuellen Rahmen, der unter anderem folgende Informationen enthält:

  • Name des Moduls
  • Modul-Spezifikation
  • Autor, Version, Release
  • exportierte Schnittstelle
  • importierte Schnittstelle
  • Quellcode
  • Steuerzeichen

Da nicht alle Teile des textuellen Rahmens übersetzt werden müssen, werden beim Entpacken die nicht übersetzungsrelevanten Teile des Rahmens entfernt.


Bedingte Kompilierung (MaxDB: Entwicklungsumgebung)

Bedingte Kompilierung

VMAKE blendet vom Quelltext jene Teile aus, die unter den aktuellen Bedingungen nicht benötigt werden, wie z. B. jeweils nicht notwendige Netzwerkanbindungen (UNIX oder Microsoft).

Die zu verwendenden Include-Dateien werden vom System an den Anfang der zu übersetzenden Moduldatei kopiert.


Übersetzen der Moduldateien (MaxDB: Entwicklungsumgebung)

Übersetzen der Moduldateien

Die Übersetzung der Moduldateien durch VMAKE erfolgt in dem temporären Verzeichnis tmp .

Die dabei erzeugten Objektdateien werden vom System in einem Objektverzeichnis abgelegt und anschließend im temporären Verzeichnis wieder gelöscht.


Linkvorgang (MaxDB: Entwicklungsumgebung)

Linkvorgang

Das Linken der Objektdateien zu einer Softwarekomponente erfolgt im Verzeichnis tmp . Anschließend wird diese von VMAKE in einem vordefinierten (siehe unten) oder einem in der Linkbeschreibung spezifizierten Zielverzeichnis abgelegt und im Verzeichnis tmp gelöscht.

Für den Linkvorgang verfügt VMAKE über verschiedene Werkzeuge für jede Art von Objektdatei, die beim Übersetzungsvorgang entstehen kann ( VMAKE-Werkzeuge ). Die Entscheidung darüber, welches Werkzeug zum Linken der jeweiligen Objektdateien verwendet werden soll, trifft VMAKE auf der Basis der Dateiendung der Beschreibungsdatei.

Das zum Linken verwendete Werkzeug entnimmt der Linkbeschreibung die Verweise auf die zu linkenden Objektdateien und die dabei zu verwendenden Optionen .

Zu erstellende Softwarekomponente | Linkskript | Zielverzeichnis
Programm | linklnk | $DBROOT/pgm
Programm, das Shared-Memory-Zugriff ermöglicht | linkshm | $DBROOT/pgm
Statische Bibliothek | archive | $WRK/fast/obj oder $WRK/quick/obj oder $WRK/slow/obj
Dynamische Bibliothek | linkdll | $DBROOT/lib(32 bit) $DBROOT/lib/lib64 (64 bit)
Programm, das mit anderen Programmen gelinkt werden kann | linkrel | $WRK/fast/obj oder $WRK/quick/obj oder $WRK/slow/obj
Programm, das mit anderen Programmen gelinkt werden kann und Shared-Memory-Zugriff ermöglicht | linkshr | $WRK/fast/obj oder $WRK/quick/obj oder $WRK/slow/obj


Beispiele für das Arbeiten mit der MaxDB-Entwicklungsumgebung (MaxDB: Entwicklungsumgebung)

Beispiele für das Arbeiten mit der MaxDB-Entwicklungsumgebung

Bedienen der Entwicklungsumgebung

Erstellen des DBMCLI mit der MaxDB-Entwicklungsumgebung


Bedienen der Entwicklungsumgebung (MaxDB: Entwicklungsumgebung)

Bedienen der Entwicklungsumgebung

Die Bedienung der Entwicklungsumgebung soll anhand eines Beispiels (Zielstellung) erläutert werden.

Ablauf

Erläuterungen zum Ablauf

Protokollierungen

Weitere Möglichkeiten

Weitere Informationen über Abhängigkeiten

Vergleich zwischen MaxDB-VMAKE-Programm und herkömmlichem make-Programm


Zielstellung (MaxDB: Entwicklungsumgebung)

Zielstellung

· Die Datei sys/src/SAPDB/HelloWorld.c soll übersetzt werden

· Dazu wird die Include-Datei sys/src/SAPDB/HelloWorld.h benötigt

· Das Ergebnis wird zu einem ausführbaren Programm gelinkt:
usr/pgm/hello (bzw. usr\pgm\hello.exe unter Microsoft Windows).


Ablauf (MaxDB: Entwicklungsumgebung)

Ablauf

imf.pl hello.lnk

Build: 40283

vmake 9.8.5 28-11-2000

VMAKE_PATH=d:\V73\develop,d:\SAPSRC

17-01-01 13:33:46 start of collection phase

17-01-01 13:33:54 end of collection phase

17-01-01 13:33:54 start of hello.lnk fast

HelloWorld.h

HelloWorld.c fast

hello.lnk fast

s100buildnumber_PID854.c

17-01-01 13:33:55 end of hello.lnk fast


Erläuterungen zum Ablauf (MaxDB: Entwicklungsumgebung)

Erläuterungen zum Ablauf

Zunächst werden alle benötigten Dateien ermittelt

Die Beschreibungsdatei sys/desc/hello.lnk wird anhand der Dateiendung .lnk als die Beschreibung eines ausführbaren Programms erkannt. Die Beschreibung enthält nur eine einzige Datei:

:SAPDB/HelloWorld.c

Der Doppelpunkt steht für das Verzeichnis mit den Moduldateien sys/src.

Die Moduldatei sys/src/SAPDB/HelloWorld.c wird anhand der Dateiendung .c als eine Moduldatei erkannt, die mit dem C-Kompilierer übersetzt werden muss. Die von dieser Moduldatei benötigten Include-Dateien werden in der Beschreibungsdatei sys/desc/SAPDB.com aufgeführt:

HelloWorld.c    inc=:SAPDB/HelloWorld.h

In dieser Zeile können weitere Optionen für den Kompilierer stehen.

Die Include-Datei sys/src/SAPDB/HelloWorld.h benötigt keine weiteren Dateien, ansonsten müssten diese Abhängigkeiten ebenfalls in SAPDB.com eingetragen werden.

Nach der Ermittlung der benötigten Dateien wird jede dieser Dateien aktualisiert

· Include-Dateien

HelloWorld.h

HelloWorld.c fast

hello.lnk fast

Diese werden aus dem Entwicklungsbereich (Allgemeine Verzeichnisstruktur) in ein entsprechendes Unterverzeichnis sys/wrk/incl kopiert, in diesem Fall nach sys/wrk/inl/SAPDB/HelloWorld.h.

Dateinamen in #include-Anweisungen sind deshalb immer relativ zu sys/wrk/incl anzugeben.

· C-Quellen

HelloWorld.h

HelloWorld.c fast

hello.lnk fast

Diese werden mit Hilfe des C-Kompilierers in Objektdateien übersetzt.

Objektdateien können in drei Versionen (VMAKE-Versionen) erzeugt werden:

* fast: mit Optimierung

* quick: mit Assertions

* slow: mit Assertions und Traceausgaben

In diesem Fall wird die erzeugte Datei nach sys/wrk/fast/obj/SAPDB/HelloWorld.ogeschrieben.

Auch unter Microsoft Windows erhalten Objektdateien die Dateiendung .o.

Zum Übersetzen wird die Quelldatei in das Verzeichnis sys/wrk/fast/tmp kopiert. Alle Zwischenergebnisse (diese fallen insbesondere bei PASCAL-Quellen an) werden in diesem Verzeichnis erzeugt und können beim Auftreten eines Fehlers dort angesehen werden.

· Ausführbare Programme

HelloWorld.h

HelloWorld.c fast

hello.lnk fast

Diese werden gelinkt und nach usr/pgm kopiert.

Unter UNIX wird dabei usr/pgm/hello.f erzeugt und darauf ein Link im Dateisystem unter usr/pgm/hello eingetragen.

Unter Microsoft Windows wird die Datei usr\pgm\hello.exe.f erzeugt und nach usr\pgm\hello.exe kopiert.


Protokollierungen (MaxDB: Entwicklungsumgebung)

Protokollierungen

Mit dem Kommando ipf.pl hello.lnk können zwei VMAKE-Protokolle angesehen werden.

hello.lnk.p0 ist eine Kopie der Bildschirmausgabe.

hello.lnk.x0 listet alle relevanten Zeitstempel sowie die ausgeführten Aktionen auf.

...

HelloWorld.c:

17-01-01 18:27:05 dependencies (d:\V73\develop/sys/wrk/incl/SAPDB/HelloWorld.h)

17-01-01 12:29:20 d:\V73\develop/sys/src/SAPDB/HelloWorld.c

17-01-01 12:29:20 d:\V73\develop/sys/wrk/fast/dates/SAPDB/HelloWorld.c.dat

17-01-01 18:27:07 d:\V73\develop/sys/wrk/fast/obj/SAPDB/HelloWorld.o

unconditional     HelloWorld.c

rm d:\V73\develop/sys/wrk/fast/obj/SAPDB/HelloWorld.o

HelloWorld.c fast  debug

D:\SAPDevelop\Devtool\Perl\bin\perl.exe D:\SAPDevelop\Devtool/bin/mfc.pl \

   -f \

   -debug=1 \

   -language=c \

   -unpack=no \

   d:\V73\develop/sys/src/SAPDB/HelloWorld.c \

   d:\V73\develop/sys/wrk/incl/SAPDB/HelloWorld.h

touch HelloWorld.c

D:\SAPDevelop\Devtool\Perl\bin\perl.exe D:\SAPDevelop\Devtool/bin/compc.pl \

   -g \

   -language=c \

   HelloWorld.c

HelloWorld.c

touch HelloWorld.o

mv HelloWorld.o d:\V73\develop/sys/wrk/fast/obj/SAPDB/HelloWorld.o

touch d:\V73\develop/sys/wrk/fast/dates/SAPDB/HelloWorld.c.dat (from HelloWorld.c)

17-01-01 18:30:53 d:\V73\develop/sys/wrk/fast/obj/SAPDB/HelloWorld.o

...

Wenn man genau wissen will, mit welchen Optionen Kompilierer oder Linker aufgerufen wurden, setzt man die Umgebungsvariable NOQUIET.

UNIX: NOQUIET=1; export NOQUIET

Microsoft Windows: set NOQUIET=1

imf -u :SAPDB/HelloWorld.c

HelloWorld.c fast

cl -DREL30 -DWIN32 -DI386 -DSAG -Id:\V73\develop\sys\wrk/incl/SAPDB -DDU

MP_ENABLED -D_WIN32 -G6 -D_X86_=1 -DCRTAPI1=_cdecl -DCRTAPI2=_cdecl -nol

ogo -Gy -W2 -MT -DFAST=FAST -Ox -ID:/SAPDevelop/Devtool/incl -FoHelloWor

ld.o -c HelloWorld.c


Weitere Möglichkeiten (MaxDB: Entwicklungsumgebung)

Weitere Möglichkeiten

Erzwungene Übersetzung

Arbeiten mit Debug-Informationen


Erzwungene Übersetzung (MaxDB: Entwicklungsumgebung)

Erzwungene Übersetzung

  • Option -u

Damit wird das angegeben Ziel neu erzeugt. Ein ausführbares Programm wird neu gelinkt.

imf.pl -u hello.lnk

hello.lnk fast

Eine Moduldatei wird neu übersetzt.

imf.pl -u :SAPDB/HelloWorld.c

HelloWorld.c fast

  • Option -U

Damit werden das angegebene Ziel und alle dafür benötigten Moduldateien neu erzeugt.

imf.pl -U hello.lnk

HelloWorld.c fast

hello.lnk fast

  • Option -U -I

Damit werden das angegebene Ziel, alle dafür benötigten Module und alle benötigten Include-Dateien neu erzeugt.

imf.pl -U -I hello.lnk

HelloWorld.h

HelloWorld.c fast

hello.lnk fast


Arbeiten mit Debug-Informationen (MaxDB: Entwicklungsumgebung)

Arbeiten mit Debug-Informationen

Mit der Option -e wird VMAKE angewiesen, alle Ziele mit Debuginformationen zu generieren ( Debug-Modus ).

imf.pl -U -e hello.lnk

HelloWorld.c fast debug

hello.lnk fast debug

Danach kann usr/pgm/hello im Debugger gestartet werden. Die Quellateien werden nach dem Übersetzungsvorgang nach sys/wrk/fast/debug kopiert. Dies ist vor allem für PASCAL- Moduldateien wichtig, da diese nicht im Quelltext debugt werden können, sondern nur anhand der generierten C-Datei.


Weitere Informationen über Abhängigkeiten (MaxDB: Entwicklungsumgebung)

Weitere Informationen über Abhängigkeiten

Anzeigen der neu zu erzeugenden Ziele

Anzeigen der benutzten Modul- und Beschreibungsdateien

Anzeigen der benutzten Modul- und Beschreibungsdateien sowie der Abhängigkeiten


Anzeige der neu zu erzeugenden Ziele (MaxDB: Entwicklungsumgebung)

Anzeige der neu zu erzeugenden Ziele

imf.pl -u -n hello.lnk

vmake 9.8.5 28-11-2000

VMAKE_PATH=d:\V73\develop,d:\SAPSRC

17-01-01 16:50:40 start of collection phase

17-01-01 16:50:48 end of collection phase

17-01-01 16:50:48 start of hello.lnk fast

HelloWorld.c fast

hello.lnk fast

17-01-01 16:50:48 end of hello.lnk fast

statistics:

macros: 0

programs: 1

dynlinklibs: 0

relocs: 0

libraries: 0

modules: 1

includes: 1

files: 0

commands: 0

extras: 0


Anzeigen der benutzten Modul- und Beschreibungsdateien (MaxDB: Entwicklungsumgebung)

Anzeigen der benutzten Modul- und Beschreibungsdateien

imf.pl -m hello.lnk

desc/Langextinfo

desc/SAPDB.com

desc/hello.lnk

src/SAPDB/HelloWorld.h

src/SAPDB/HelloWorld.c


Anzeigen der benutzten Modul- und Beschreibungsdateien sowie der (MaxDB: Entwicklungsumgebung)

Anzeigen der benutzten Modul- und Beschreibungsdateien sowie der Abhängigkeiten

imf.pl -C hello.lnk

program

name 'hello.lnk'

type TT_PGM

version 'f'

language ' '

layer ''

level_i 2

level_s 2

level_p 0

level_c 0

level_o 2

shrglob 0

debug 0

profile 0

uncond 0

forcemake 0

binary 0

ascii 0

definition 0

noobject 0

noobjcopy 0

deptype 0

nodebug 0

file

descriptions

options

dependencies

'HelloWorld.c' 'f'

demands

external dependencies

callers

...


Vergleich MaxDB-VMAKE - herkömmliches make-Programm (MaxDB: Entwicklungsumgebung)

Vergleich MaxDB-VMAKE - herkömmliches make-Programm

Manches Verhalten von VMAKE kann für diejenigen, die bisher nur mit dem traditionellen UNIX make oder Microsoft nmake gearbeitet haben, überraschend sein.

· Da alle Include-Dateien nach sys/wrk/incl und alle Quelldateien vor der Übersetzung in ein temporäres Verzeichnis kopiert werden, zeigen Dateinamen in Fehlermeldungen des Kompilierers nie auf die eigentliche Quelldatei.

· Das Programm erzeugt immer so viel wie möglich und stoppt nicht beim ersten Fehler. Dies entspricht der Option -k in make.

· Zu jeder Objektdatei existiert eine Datumsdatei (z.B. sys/wrk/fast/dates/SAPDB/HelloWorld.c.dat). Eine Objektdatei wird neu erzeugt

· wenn die bestehende Objektdatei älter ist als die Quelldatei (wie in make)

· wenn der Zeitstempel der Datumsdatei sich vom Zeitstempel der Quelldatei unterscheidet


Erstellen des DBMCLI mit der MaxDB-Entwicklungsumgebung (MaxDB: Entwicklungsumgebung)

Erstellen des DBMCLI mit der MaxDB-Entwicklungsumgebung

Database Manager CLI

Das Programm Database Manager CLI (Database Manager Command Line Interface, DBMCLI) kommuniziert mit dem DBM-Server und kann damit zur Administration einer MaxDB-Instanz verwendet werden. Das Verhalten des Programms Database Manager CLI hängt von den Aufrufparametern und den Benutzereingaben ab. Weitere Informationen zum Database Manager CLI finden Sie in der Dokumentation Database Manager CLI.

Aufgaben des Database Manager CLI:

· Der Database Manager CLI stellt die Verbindung zum DBM-Server her und übergibt an den DBM-Server einen oder mehrere Befehle.

· Der Database Manager CLI nimmt die Antwort(en) des DBM-Server entgegen und gibt diese aus.

· Nach Beendigung des Programms Database Manager CLI wird die Verbindung zum DBM-Server geschlossen.

Siehe auch:

Struktur des Programms Database Manager CLI

Erstellen des Programms Database Manager CLI

...

1. Verfahren Sie wie in Erstellen des Programms Database Manager CLI beschrieben.

2. Führen Sie anschließend eine Funktionsprüfung durch.


Struktur des Programms Database Manager CLI (MaxDB: Entwicklungsumgebung)

Struktur des Programms Database Manager CLI

Der Database Manager CLI besteht aus folgenden Komponenten:

· Hauptkomponenten

· Kommunikationskomponenten

· DBM-Server

Hauptkomponenten

Aufgaben der Hauptkomponenten:

· Entgegennahme und Auswertung der Aufrufparameter und Nutzereingaben

· Übergabe der DBM-Kommandos an die Kommunikationskomponenten

· Entgegennahme der Antworten des DBM-Server von den Kommunikationskomponenten

· Auswerten und Ausgabe der Antworten des DBM-Server

Kommunikationskomponenten

Aufgaben der Kommunikationskomponenten:

· Kommunikation mit dem lokalen DBM-Server

· Kommunikation zu einem DBM-Server auf einem entfernten Rechner

Die Kommunikationskomponenten sind Bestandteile der Laufzeitumgebung (LZU) des Datenbanksystems.

DBM-Server

Im Programm Database Manager CLI ist ein DBM-Server integriert.

Auf Anforderung des Benutzers kann dieser integrierte DBM-Server verwendet werden. In diesem Fall werden die Komponenten, die für die Verbindung zu einem eigenständigen DBM-Server erforderlich sind, nicht verwendet.


Erstellen des Programms Database Manager CLI (MaxDB: Entwicklungsumgebung)

Erstellen des Programms Database Manager CLI

Das Programm Database Manager CLI wird in der MaxDB-Entwicklungsumgebung durch die Verarbeitung der Informationen einer Linkbeschreibung erstellt. Diese Linkbeschreibung ist vom Dateityp lnk und heißt dbmcli.lnk ($OWN/sys/desc/dbmcli.lnk, siehe auch Allgemeine Verzeichnisstruktur der MySQL MaxDB-Entwicklungsumgebung).

Die Verarbeitung dieser Linkbeschreibung führt zur Erstellung eines ausführbaren Programms. Durch die Datei dbmcli.lnk wird außerdem festgelegt, wo das ausführbare Programm abgelegt wird:

· Microsoft Windows: Das ausführbare Programm wird im Verzeichnis $OWN\usr\pgm abgelegt.

· UNIX: In die Linkbeschreibung dbmcli.lnk ist die Zeile ->$INSTROOT/bin/dbmcli eingefügt. Dadurch wird veranlasst, dass das ausführbare Programm im Verzeichnis $OWN/usr/bin abgelegt wird.

Vorgehensweise

Geben Sie folgendes Kommando ein:

imf dbmcli

Informationen zum Kommando imf finden Sie in ims.pl; imq.pl; imf.pl.

Die Entwicklungsumgebung wird durch dieses Kommando beauftragt, die Linkbeschreibung dbmcli.lnk abzuarbeiten.

Die Linkbeschreibung muss nicht mit ihrem Typ (lnk) spezifiziert sein, da bereits der Name der Datei eindeutig ist. Die Entwicklungsumgebung ermittelt den Typ der Linkbeschreibung und damit die Art der Abarbeitung selbstständig.

Ergebnis

Die Softwarekomponente DBMCLI (Database Manager CLI) wird erstellt:

· UNIX: $OWN/usr/bin/dbmcli

· Microsoft Windows: $OWN\usr\pgm\dbmcli.exe

Führen Sie eine Funktionsprüfung durch.

Integration

Erstellen des DBMCLI mit der MaxDB-Entwicklungsumgebung


Linkbeschreibung dbmcli.lnk (MaxDB: Entwicklungsumgebung)

Linkbeschreibung dbmcli.lnk

Der folgende Auszug aus der Linkbeschreibung dbmcli.lnk enthält die wesentlichen für die Erstellung des Programms Database Manager CLI notwendigen Kommandos. Auf spezielle Befehle und Schalter, die für den Linkvorgang auf den einzelnen Plattformen notwendig sein können, wurde in dieser Beispieldatei verzichtet.

Für das Erstellen des Programms Database Manager CLI müssen Sie in jedem Fall die vollständige Linkbeschreibung dbmcli.lnk verwenden, die sich im Source-Verzeichnis befindet (siehe Allgemeine Verzeichnisstruktur der MySQL MaxDB-Entwicklungsumgebung).

&if $OS in [ WIN32, OS2 ]
    :Resource/dbmcli.rc remake
&endif

vcn12.cpp
vcn13.cpp
vcn14.c

cservlib

splib
eoxlib

&if $OS in [ WIN32, OS2 ]
    sqlusr
&else

    enalib
    enblib

&endif

Weitere Informationen

Erläuterung der Linkbeschreibung dbmcli.lnk

Bestandteile des Programms DBMCLI


Erläuterung der Linkbeschreibung dbmcli.lnk (MaxDB: Entwicklungsumgebung)

Erläuterung der Linkbeschreibung dbmcli.lnk

In der Linkbeschreibung dbmcli.lnk wird auf Moduldateien und Linkbeschreibungen Bezug genommen.

  • Bezugnahmen auf Moduldateien führen zur Übersetzung dieser Moduldateien. Die Zuordnung der Übersetzungswerkzeuge erfolgt durch die Dateiendung der Moduldateien.
    Moduldateien in der Beispiel-Linkbeschreibung:
    dbmcli.rc, vcn12.cpp, vcn13.cpp, vcn14.c
  • Bezugnahmen auf Linkbeschreibungen führen zur Abarbeitung dieser Beschreibungen in Abhängigkeit vom Typ.
    Linkbeschreibungen in der Beispiel-Linkbeschreibung:
    cservlib, splib, eoxlib, sqlusr, enalib, enblib

Erläuterungen zu den Moduldateien und Linkbeschreibungen finden Sie im Abschnitt Bestandteile des Programms DBMCLI .


Bestandteile des Programms DBMCLI (MaxDB: Entwicklungsumgebung)

Bestandteile des Programms DBMCLI

Das Programm Database Manager CLI besteht aus folgenden Bestandteilen:

  • Moduldatei dbmcli.rc
  • Moduldatei vcn12.cpp
  • Moduldatei vcn13.cpp
  • Moduldatei vcn14.c
  • Linkbeschreibung cservlib
  • Linkbeschreibung splib
  • Linkbeschreibung eoxlib
  • Linkbeschreibung sqlusr
  • Linkbeschreibung enalib
  • Linkbeschreibung enblib

Weitere Abhängigkeiten

Integration

Linkbeschreibung dbmcli.lnk


dbmcli.rc (MaxDB: Entwicklungsumgebung)

dbmcli.rc

Die Moduldatei dbmcli.rc in der Linkbeschreibung dbmcli.lnk ist nur unter Microsoft Windows relevant. Daher erfolgt in der Linkbeschreibung dbmcli.lnk eine Klammerung der Moduldatei durch eine Bedingung.

Die Moduldatei dbmcli.rc ist eine Ressourcendatei und befindet sich im Unterverzeichnis $OWN\sys\src\Resource (Allgemeine Verzeichnisstruktur der MySQL MaxDB-Entwicklungsumgebung). Bei der Angabe der Moduldatei dbmcli.rcin der Linkbeschreibung dbmcli.lnk muss das Verzeichnis Resource explizit mit angegeben werden:

:Resource/dbmcli.rc

In der Moduldatei dbmcli.rc ist ein Microsoft Windows-spezifischer Quelltext enthalten. Die Angabe dieser Datei in der Linkbeschreibung führt zum Einbinden der entsprechenden Ressourcen in das Programm Database Manager CLI.

Integration

Bestandteile des Programms DBMCLI


vcn12.cpp, vcn13.cpp, vcn14.c (MaxDB: Entwicklungsumgebung)

vcn12.cpp, vcn13.cpp, vcn14.c

Die Moduldateien vcn12.cpp, vcn13.cpp und vcn14.c der Linkbeschreibung dbmcli.lnk sind im Verzeichnis $OWN /sys/src/cn abgelegt. Dieser Verzeichnisname wird implizit anhand des Namens der Moduldatei ermittelt.

Diese Moduldateien sind die Hauptkomponenten (siehe Struktur des Programms Database Manager CLI ) des Programms Database Manager CLI und enthalten C- bzw. C++-Quellcode.

  • In der Moduldatei vcn12.cpp ist die main-Funktion enthalten.
  • In der Moduldatei vcn13.cpp sind einige Funktionen zum Dateizugriff und zur Zeichensatzkonvertierung enthalten.
  • Die Moduldatei vcn14.c dient der Verbindung zwischen Hauptkomponenten und Kommunikationskomponenten.

In den Moduldateien vcn12.cpp, vcn13.cpp und vcn14.c wird mittels #include-Anweisungen auf Include-Dateien Bezug genommen.

Die Beschreibung der Abhängigkeit einer Moduldatei von einer Include-Datei wird in der Kompilierbeschreibung vorgenommen.

Integration

Bestandteile des Programms DBMCLI


Kompilierbeschreibung (MaxDB: Entwicklungsumgebung)

Kompilierbeschreibung

In den Moduldateien vcn12.cpp, vcn13.cpp und vcn14.c der Linkbeschreibung dbmcli.lnk wird mittels #include-Anweisungen auf Include-Dateien Bezug genommen.

Die Beschreibung der Abhängigkeit einer Moduldatei von einer Include-Datei wird in der Kompilierbeschreibung vorgenommen. Die für die Moduldatei passende Kompilierbeschreibung wird implizit anhand des Verzeichnisses, in dem die zu übersetzende Moduldatei abgelegt ist, ermittelt und ausgewertet.

In der Kompilierbeschreibung sind neben den Abhängigkeiten einer Moduldatei von Include-Dateien noch weitere Eigenschaften der Moduldateien spezifiziert, die die Übersetzung der Moduldateien durch die Entwicklungsumgebung steuern.

Weitere Informationen

Include-Dateien der Moduldateien vcn12.cpp, vcn13.cpp und vcn14.c


Include-Dateien (MaxDB: Entwicklungsumgebung)

Include-Dateien

Die Abhängigkeiten einer Moduldatei von Include-Datei en soll an einem Beispiel einer Moduldatei der Linkbeschreibung dbmcli.lnk erläutert werden.

Die Abhängigkeiten für die Moduldatei vcn12.cpp aus dem Verzeichnis $OWN /sys/src/cn sind in der Kompilierbeschreibung $OWN/sys/desc/cn.com enthalten. Sie werden durch die folgende Zeile der Kompilierbeschreibung beschrieben:

vcn12.cpp inc=gsp09.h,heo02.h,hcn13.h,hcn14.h,hcn90.h,...

In diesem Beispiel ist nur das Schlüsselwort inc enthalten. Das Schlüsselwort inc verweist auf die notwendigen Include-Dateien.

Die nach dem Schlüsselwort inc genannten Include-Dateien werden von der Entwicklungsumgebung vor der Übersetzung der Moduldatei in das Include-Verzeichnis $OWN/wrk/incl generiert. Dabei bearbeitet die Entwicklungsumgebung die Include-Dateien je nach ihrem Dateityp.

Im oben genannten Beispiel gibt es nur Include-Dateien vom Typ h . Include-Dateien vom Typ h werden aus dem jeweiligen Unterverzeichnis des Verzeichnisses $OWN/sys/src in ein Unterverzeichnis des Include-Verzeichnisses kopiert. Der Name dieses Unterverzeichnisses wird durch die Entwicklungsumgebung implizit aus dem Namen der Include-Datei ermittelt.


cservlib (MaxDB: Entwicklungsumgebung)

cservlib

Die Linkbeschreibung cservlib ($OWN/sys/desc/cservlib.lib) hat den Typ lib. Der Linkbeschreibungstyp lib führt zur Erstellung einer statischen Bibliothek.

Eine Linkbeschreibung vom Typ lib besteht aus mehreren Moduldateien, die nach der Übersetzung zu der entsprechenden Bibliothek zusammengefasst werden. Die Abhängigkeiten und Eigenschaften für die einzelnen Moduldateien sind in den verzeichnisspezifischen Kompilierbeschreibungen hinterlegt.

Durch den Eintrag cservlib in der Linkbeschreibung dbmcli.lnk wird die Bibliothek cservlib in das Programm Database Manager CLI eingebunden.

In der Bibliothek cservlib ist die Funktionalität des in das Programm Database Manager CLI integrierten DBM-Server enthalten (siehe Struktur des Programms Database Manager CLI).

Integration

Bestandteile des Programms DBMCLI


splib (MaxDB: Entwicklungsumgebung)

splib

Die Linkbeschreibung splib ( $OWN /sys/desc/splib.lib ) in der Linkbeschreibung dbmcli.lnk hat den Typ lib .

Die Bibliothek splib enthält Module mit allgemein benutzbaren Funktionen.

Integration

Bestandteile des Programms DBMCLI


eoxlib (MaxDB: Entwicklungsumgebung)

eoxlib

Die Linkbeschreibung eoxlib ($OWN/sys/desc/eoxlib.lib) in der Linkbeschreibung dbmcli.lnk hat den Typ lib.

Die Bibliothek eoxlib enthält Kommunikationskomponenten der Laufzeitumgebung des Datenbanksystems (siehe Struktur des Programms Database Manager CLI).

Integration

Bestandteile des Programms DBMCLI


sqlusr, enalib, enblib (MaxDB: Entwicklungsumgebung)

sqlusr, enalib, enblib

Die Linkbeschreibungen sqlusr, enalib, enblib ($OWN/sys/desc/sqlusr.lib, $OWN/sys/desc/enalib.lib, $OWN/sys/desc/enblib.lib) sind vom Typ lib.

Die Bibliotheken sqlusr, enalib, enblibenthalten Kommunikationskomponenten der MaxDB-Laufzeitumgebung (siehe Struktur des Programms Database Manager CLI). Da die MaxDB-Laufzeitumgebung plattformspezifisch ist, werden für UNIX andere Bibliotheken verwendet als für Microsoft Windows. Daher erfolgt in der Linkbeschreibung dbmcli.lnk eine Klammerung der Linkbeschreibungen durch eine Bedingung.

Integration

Bestandteile des Programms DBMCLI


Weitere Abhängigkeiten (MaxDB: Entwicklungsumgebung)

Weitere Abhängigkeiten

Wenn Sie das Betriebssystem Microsoft Windows einsetzen, benötigt das Programm Database Manager CLI eine dynamische Bibliothek. Diese Bibliothek muss explizit erstellt werden.

Geben Sie dazu folgendes Kommando ein:

imf sqltcp

Informationen zum Kommando imf finden Sie in ims.pl; imq.pl; imf.pl.

Integration

Bestandteile des Programms DBMCLI


Funktionsprüfung (MaxDB: Entwicklungsumgebung)

Funktionsprüfung

Die Funktionsfähigkeit des Programms Database Manager CLI können Sie überprüfen, indem Sie ein DBM-Kommando ausführen.

Voraussetzung

Erstellen des Programms Database Manager CLI

Vorgehensweise

...

1. Überprüfen Sie, ob Sie wirklich auf die gerade erstellte Softwarekomponente, das Programm Database Manager CLI, ($OWN/usr/bin/dbmcli, Microsoft Windows: $OWN\usr\pgm\dbmcli.exe) zugreifen.

2. Geben Sie das DBM-Kommando zum Anzeigen der Version des Database Manager ein:

dbmcli [-n <server_node>] -d <database_name> -u <dbm_userid>,<dbm_password> dbm_version

dbmcli -d TST -u dbm,dbm dbm_version

Weitere Informationen zu den DBM-Kommandos finden Sie in der Dokumentation
Database Manager CLI.

Ergebnis

Die Ausgabe sollte in etwa dieser Beispielausgabe entsprechen:

OK

VERSION    = 7.2.4

BUILD      = DBMServer 7.2.4    Build 009-000-220-192

OS         = UNIX

INSTROOT   = /usr/sapdb-srv

LOGON      = False

CODE       = ASCII

SWAP       = full


Quelltext für Werkzeuge

Die Datenbankwerkzeuge Database Manager GUI und SQL Studio wurden mit Hilfe des Programms Microsoft Visual Basic 6.0 entwickelt.

In diesem Dokument ist beschrieben, wie Sie für jedes der Werkzeuge die Quelldateien und die Entwicklungsumgebung VBMAKE installieren und anschließend die Software dafür erstellen.

Quelltext für den Database Manager GUI

Quelltext für das SQL Studio

Für eine ausführliche Beschreibung der Verwendung dieser Werkzeuge siehe auch: Database Manager GUI bzw. SQL Studio.


Quelltext für den Database Manager GUI (MaxDB: Quelltext für Werkzeuge)

Quelltext für den Database Manager GUI

Der Database Manager GUI ist ein Werkzeug für die Datenbankverwaltung. Aufgaben des Database Manager GUI sind die Steuerung und Überwachung der Datenbankinstanz und die Durchführung von Sicherungen. Der Database Manager ermöglicht den Zugriff auf entfernte Datenbankserver.

Der Database Manager GUI wurde ausschließlich mit Hilfe des Programms Microsoft Visual Basic 6.0 entwickelt. Die Komponenten des Database Manager GUI sind ActiveX-Bibliotheken und ActiveX-Steuerelemente.

Beachten Sie, welche Software für das Installieren des Quelltexts und das Erstellen der Software des Database Manager GUI vorausgesetzt wird.

Nach unserer Erfahrung ist es aufgrund der recht komplexen Struktur des Programms Database Manager GUI schwierig, in der Entwicklungsumgebung des Microsoft Visual Basic mit Gruppen-Projekten zu arbeiten. Wir empfehlen deshalb, für das Erstellen des Database Manager GUI das Werkzeug VBMAKE zu verwenden und wie unter Erstellen der Software des Database Manager GUI beschrieben, zu verfahren.


Komponenten des Database Manager GUI (MaxDB: Quelltext für Werkzeuge)

Komponenten des Database Manager GUI

Das Programm Database Manager GUI ist ausschließlich unter Verwendung des Programms Microsoft Visual Basic 6.0 entwickelt worden.

Name der Komponente | Funktion | Beschreibung
DBMGUI | Client | Hauptprogramm des Database Manager GUI
DBMLIB | Object Library | Umfangreiche Objekthierarchie zur Funktionalität des Database Manager GUI
DBMSOB | Server Object | Objekt zur Database Manager-API (dbmapi.dll)
DBMEVE | Event Handler | Globaler Ereignis-Manager
DBMAPP | Application Server | ActiveX-Server, der eine registrierte Datenbankinstanz verwaltet
DBMDOC | Documents | Enthält für jede Hauptfunktionalität des Database Manager GUI ein eigenes Steuerelement
DBMRES | Resource Library | Alle Bilder (Images and Icons), die verwendet werden
DBMCMD | Command Control | Verwaltet Kommandolisten, aus denen die Menüs und Symbolleisten erstellt werden
DBMINP | Input Control | Datums- und Zeit-Eingabe
DBMSPL | SplitterBox Control | Verwaltet ActiveX-Steuerelemente so, daß mit Hilfe eines Größenveränderungsbalkens die Aufteilung/Größe geändert werden kann
DBMREG | Registry Library | Funktionen für das Verwalten der Registry
DBMSCR | ScrollBox Control | Verwaltet ein ActiveX-Steuerelement so, daß mit Hilfe von Rollbalken die Position geändert werden kann
DBMDRT | DrawText Control | Stellt Text mit Hilfe der gleichnamigen Windows-API-Funktion dar
DBMFLB | FloodBar Control | Füllbalken zur Anzeige der Füllungsgrade einer Datenbankinstanz
DBMINF | InfoPanel Control | Steuerelement zur Anzeige von diversen Informationen
DBMSEP | SepLine Control | 3D-Trennlinie
DBMWIZ | Database Creation Wizard | Hauptprogramm des Wizard zum Erzeugen von Datenbankinstanzen
DBMTIB | TitleBar Control | Titelleiste mit Bild, Überschrift, Zeit und Schließtaste
DBMPWD | Password Library | Ver- und Entschlüsselung des in der Registry abgelegten Benutzerkennwortes zu einer registrierten Datenbankinstanz (nicht als Quelltext verfügbar).
DBMDBG | Debug Server | Hilfsprogramm zum Korrigieren (debug), dazu Datenbankinstanz markieren, Ctrl-D wählen, auf der gewünschten Datenbankinstanz rechte Maustaste wählen und anschließend Trace
DBMINS | Installer | Hilfsprogramm zum Registrieren bzw. Löschen der Regsitrierung aller Komponenten des Database Manager GUI


Software für den Database Manager GUI (MaxDB: Quelltext für Werkzeuge)

Software für den Database Manager GUI

Für das Installieren des Quelltexts und das Erstellen der Software des Database Manager GUI muss folgende Software auf Ihrem Rechner installiert sein:

· Microsoft Windows NT 4.0 Service Pack 5 oder höher

· Microsoft Visual Basic 6.0 Service Pack 3 oder höher

Sie benötigen außerdem die Datei

· sapdb-tools-source-7.4.zip

Diese enthält alle notwendigen Komponenten für das Installieren des Quelltexts und das Erstellen der Software des Database Manager GUI.


Installieren des Quelltexts (MaxDB: Quelltext für Werkzeuge)

Installieren des Quelltexts

Voraussetzungen

Sie verfügen über die für die Installation notwendige Software (Software für den Database Manager GUI, Software für das SQL Studio).

Vorgehensweise

1. Entpacken Sie die Datei sapdb-tools-source-7.4.zip an eine beliebige Stelle auf Ihrer Festplatte.

Bei diesem Vorgang wird folgende Verzeichnisstruktur aufgebaut:

-\SAPDBTools | Hauptverzeichnis
..\bin | Erstellte Komponenten und Programme
..\licence | Lizenztexte
..\src | Quelltext
..\DBM | Quelltext des Database Manager GUI
..\SQLStudio | Quelltext des SQL Studio
..\Tools | Quelltext von Programmen, die zum Übersetzen von DBM und SQLStudio benötigt werden.
..\VBMAKE | Quelltext von VBMAKE

2. Tragen Sie den TCPIP-Port
sql6  7210/tcp # MaxDB
in die Liste der bekannten Services (Dateiname services) ein, um über das Netzwerk auf Datenbanken zugreifen zu können.

Diese Datei befindet sich im Systemverzeichnis vom Microsoft Windows unter folgendem Pfad: ..\system32\drivers\etc.


Erstellen der Software des Database Manager GUI (MaxDB: Quelltext für Werkzeuge)

Erstellen der Software des Database Manager GUI

Voraussetzung

Sie verfügen über die für das Erstellen der Software des Database Manager GUI notwendige Software.

Sie haben den Quelltext auf Ihrem Rechner installiert (Installieren des Quelltexts).

Vorgehensweise

Registrieren Sie zunächst die beim Installieren des Quelltexts auf die Festplatte kopierten Programmdateien.

· Öffnen Sie dazu im Microsoft Windows Explorer das Verzeichnis bin.

· Öffnen Sie mittels Doppelklick das darin enthaltene Programm DBMIns.exe (Database Manager Installer).
Dieses Programm öffnet die Datei DBMIns.ini und zeigt alle dort aufgeführten Dateien an.

· Wählen Sie Register, um alle ActiveX-Programme, Bibliotheken und Steuerelemente zu registrieren.

Führen Sie nun das Programm VBMAKE aus (Ausführen des Programms VBMAKE).


Laufzeitumgebung (MaxDB: Quelltext für Werkzeuge)

Laufzeitumgebung

Das Ausführen des Client-Programms setzt voraus, dass eine MaxDB-Client-Laufzeitumgebung zur Verfügung steht. Eine aktuelle Version der Laufzeitumgebung befindet sich im Verzeichnis bin.


Ausführen des Programms Database Manager GUI (MaxDB: Quelltext für Werkzeuge)

Ausführen des Programms Database Manager GUI

Voraussetzungen

Wenn Sie das Database-Manager-Projekt (Name: DBMGUI) in der Entwicklungsumgebung Microsoft Visual Basic starten wollen, dann muss die Laufzeitumgebung zugreifbar sein.

Dafür stehen Ihnen mehrere Möglichkeiten zur Auswahl:

· Sie tragen das Verzeichnis bin in die Systemvariable Path ein.

· Sie rufen die Entwicklungsumgebung Microsoft Visual Basic mit dem Database-Manager-Projekt DBMGUI in einer Umgebung auf, in der Sie den Pfad temporär um das Verzeichnis bin erweitert haben.

· Sie kopieren die nachfolgend aufgeführten Dateien der Laufzeitumgebung in das Verzeichnis ...\src\DBM\DBMGUI.

Dateien des Database Manager GUI in der MaxDB-Client-Laufzeitumgebung

dbmapi.dll

sqltcp.dll

sqltcp1.dll

sqltcp2.dll

sqltcpn.dll

sqluser73.dll

sapni.dll


VBMAKE (MaxDB: Quelltext für Werkzeuge)

VBMAKE

VBMAKE ist ein für MaxDB entwickeltes Werkzeug, mit dem sich komplexe Projekte in Microsoft Visual Basic verwalten lassen. Es entstand im Zusammenhang mit der Entwicklung der Werkzeuge Database Manager GUI und SQL Studio.

Ausführen des Programms VBMAKE


Ausführen des Programms VBMAKE (MaxDB: Quelltext für Werkzeuge)

Ausführen des Programms VBMAKE

Aufrufen des Programms

Die Programmdatei vbmake.exe befindet sich im Verzeichnis bin .

Öffnen Sie diese Datei mittels Doppelklick, wenn Sie mit VBMAKE arbeiten wollen.
VBMAKE liest die Datei VBMake.ini , in der alle zu verwaltenden Hauptkomponenten aufgeführt sind. Zu den dort aufgeführten Projektdateien (Dateiendung . vbp ) kann es im Verzeichnis der Projektdatei eine Datei mit dem Namen vbmake.dep geben. In dieser Datei sind alle Projekte aufgeführt, von denen das entsprechende Projekt abhängig ist.

Nach dem Aufrufen des Programms VBMAKE sehen Sie auf der linken Seite des Bildschirms eine Verzeichnisstruktur mit allen Projekten und ihren abhängigen Projekten als Unterknoten.
Wenn Sie ein Projekt auswählen, werden auf der rechten Seite des Bildschirms diverse Informationen zu diesem Projekt angezeigt.

Verfügbare Funktionen

Verwenden Sie die Symbolleiste, um die Funktionen von VBMAKE aufzurufen.

Funktion | Beschreibung
Open | Öffnen einer neuen Eingabedatei
Open VB | Öffnen der Entwicklungsumgebung Microsoft Visual Basic mit dem ausgewählten Projekt
Edit vbp | Öffnen der Projektdatei im Programm Notepad
Options | Definieren von Optionen für das Erstellen der Software Check project file date Berücksichtige das Datum der Projektdatei bei der Entscheidung, ob eine Komponente aktualisiert (neu erstellt) werden soll Ignore read only attributes on targets Ignoriere das Attribut read only von zu erstellenden Dateien Make typelib compatible before compilation Erstelle vor der Übersetzung eine Projektdatei, in der Type-Lib-Informationen von ActiveX- Komponenten mit den Informationen in der Registry abgeglichen sind Diese Datei wird dann zur Übersetzung herangezogen. Make winrunner support file before compilation Erstelle vor der Übersetzung eine Projektdatei, die notwendige Informationen für das Werkzeug WinRunner (Mercury Interactive Corporation)) enthält Diese Datei wird dann zur Übersetzung herangezogen.
Make | Übersetzen des ausgewählten Projekts Anschließend Entscheidungsmöglichkeit, was alles übersetzt werden soll: Make current and all dependent projects Übersetze alle abhängigen Projekte und dann das ausgewählte Projekt Make current projects only Übersetze nur das ausgewählte Projekt Make dependent projects only Übersetze nur die abhängigen Projekte
Execute | Ausführen des ausgewählten Projekts, wenn es sich um ein ausführbares Programm handelt
Register | Registrieren des ausgewählten Projekts (bzw. der erstellten Komponente).
Set | Definieren ausgewählter Eigenschaften (Properties) einer Projektdatei, z. B. für Debug-Zwecke
Touch | Setzen des aktuellen Zeitstempels für die ausgewählte Projektdatei
Cancel | Abbrechen der laufenden Aktion
Info | General Public Licence Info


Quelltext für das SQL Studio (MaxDB: Quelltext für Werkzeuge)

Quelltext für das SQL Studio

Das Programm SQL Studio ist ein Werkzeug zum Anlegen und Ändern von Datenbankobjekten wie Tabellen, Views usw. sowie zum Erstellen und Ausführen von SQL-Anweisungen.

SQL Studio wurde mit Hilfe des Programms Microsoft Visual Basic 6.0, Microsoft Visual C ++ 6.0 und der Entwicklungsumgebung von MaxDB entwickelt. Die Komponenten des SQL Studio sind ActiveX-Bibliotheken, ActiveX-Steuerelemente und dynamische Laufzeitbibliotheken (DLLs).

Beachten Sie, welche Software für das Installieren des Quelltexts und das Erstellen der Software des SQL Studio vorausgesetzt wird.

Wir empfehlen, für das Erstellen des SQL Studio das Werkzeug VBMAKE zu verwenden und wie unter Erstellen der Software des SQL Studio beschrieben, zu verfahren.

Sie haben jedoch auch die Möglichkeit, die Entwicklungsumgebung Microsoft Visual Basic zu verwenden und dazu die Gruppendatei SQLStudio.vbg im Verzeichnis ..\SQLStudio\Main zu nutzen.


Komponenten des SQL Studio (MaxDB: Quelltext für Werkzeuge)

Komponenten des SQL Studio

Das Query Tool SQL Studio wurde mit Hilfe des Programms Microsoft Visual Basic 6.0, Microsoft Visual C ++ 6.0 und der Entwicklungsumgebung von MaxDB entwickelt.

Wenn Sie sich einen Überblick über die Abhängigkeiten zwischen den einzelnen Komponenten des SQL Studio verschaffen wollen, empfehlen wir Ihnen die Verwendung des Werkzeugs VBMAKE.

Name der Komponente | Funktion | Beschreibung | verwendete Entwicklungs-umgebung
SQLStudioUtil | Verschiedene Hilfsfunktionen | ActiveX-Bibliothek, enthält in Klassen gekapselte Funktionen wie Zugriff auf die Registrierungsdatenbank von Microsoft Windows Setzen des Positionsanzeigers von SQL Studio Verwalten der Historie der SQL-Anweisungen | VB 6.0
SQLStudioDBLayer | Kapselung der Datenbank-zugriffe | ActiveX-Bibliothek, in der die Datenbankzugriffe des SQL Studio über ODBC und VB-Klassen erfolgen (Klassen zum Aufbau einer Datenbankverbindung, Ausführen von SQL-Anweisungen, Blättern in einer Ergebnismenge) | VB 6.0
SQLStudioMan | SQL Studio Objekte | ActiveX-Bibliothek, enthält Klassen, mit denen spezifische Informationen des SQL Studio gehalten werden (z.B. Benutzerprofil, Programmeinstellungen, abgespeicherte Objekte des SQL Studio, Prädikate für den Form-Dialog) | VB 6.0
SQLStudioCt | Benutzer-kennwort | Ver- und Entschlüsselung des in der Registrierungsdatenbank abgelegten Benutzerkennworts zu einer Datenbankinstanz (nicht als Quellcode verfügbar). | VB 6.0
SQLStudioCCon | Allgemeine Steuerelemente | ActiveX-Komponente, die verschiedene Steuerelemente enthält: · Tabellenfenster für den Visual-Query-Dialog · Navigationsleiste für den Form-Dialog · Navigationsleiste für das Ergebnisfenster · Vorschlagsliste für den SQL-Dialog | VB 6.0
SQLStudioQCon | Steuerelemente zum Erstellen einer Datenbank-abfrage | ActiveX Komponente für Dialoge zum Ausführen von SQL-Anweisungen und deren Ergebnissen: · SQL-Dialog · Form-Dialog · Visual-Query-Dialog · Ergebnis-Dialog · Zoom-Fenster für das Ergebnis | VB 6.0
SQLStudioCDCon | Steuerelemente zum Erstellen von Datenbank-objekten | TableDefinition, ViewDefinition, IndexDefinition, SynonymDefinition, SequenceDefinition | VB 6.0
CatalogView | Darstellung des Datenbank-katalogs | Dient u. a. zum Navigieren durch den Datenbankkatalog, Aufruf von Dialogen zum Erstellen von Datenobjekten und von Objekten des SQL Studio (z.B. gegebene SQL-Anweisungen) | VB 6.0
SQLStudio | Hauptprogramm | Hauptprogramm des SQL Studio | VB 6.0
DSQLControl | Eingabefenster des SQL-Dialogs | Dient u. a. zum Einstellen verschiedener Schriftarten und Farben für SQL-Anweisungen und SQL-Schlüsselworte | VC 6.0
StudioUtil | In C realisierte Hilfsfunktionen | Umwandlung UTF8 -> UCS2 Darstellung von ASCII Zeichen als Hex-Werte | MaxDB Entwicklungs-umgebung
TableDefC | In C realisierte Hilfsfunktionen | Funktionen für SQLStudioCDCon | MaxDB Entwicklungs-umgebung


Software für das SQL Studio (MaxDB: Quelltext für Werkzeuge)

Software für das SQL Studio

Für das Installieren des Quelltexts und das Erstellen der Software des SQL Studio muss folgende Software auf Ihrem Rechner installiert sein:

· Microsoft Windows NT 4.0 Service Pack 5 oder höher

· Microsoft Visual Basic 6.0 Service Pack 3 oder höher

· Microsoft Visual C++ 6.0 Service Pack 3 oder höher

· Microsoft ODBC 3.51

· riched20.dll 5.30.11.2110 (Richedit Version 3.0) oder höher

Sie benötigen außerdem die folgenden Dateien:

· sapdb-sqlstudio-src-7.4.03.28.zip

Diese Datei enthält alle notwendigen Komponenten für das Installieren des Quelltexts von SQL Studio. Beim Entpacken dieser Datei wird die folgende Verzeichnisstruktur erstellt:

sapdb-sqlstudio-src-7.4.03.28  // Hauptverzeichnis

bin                       // Erstellte Komponenten

src                       // Quelltext des SQL Studio

· sapdb-tools-source-7.4.zip

Diese Datei enthält alle Werkzeuge, die zum Erstellen von SQL Studio benötigt werden.


Erstellen der Software des SQL Studio (MaxDB: Quelltext für Werkzeuge)

Erstellen der Software des SQL Studio

Voraussetzung

Sie verfügen über die für das Erstellen der Software des SQL Studio notwendige Software.

Sie haben den Quelltext auf Ihrem Rechner installiert (Installieren des Quelltexts).

Vorgehensweise

1. Registrieren Sie zunächst die beim Installieren des Quelltexts auf die Festplatte kopierten Programmdateien.

2. Führen Sie die Datei SQLSTDREG.bat ohne Modifikation aus.

3. Öffnen Sie eine Kommandozeile.

4. In den Verzeichnissen ~\SAPDBTools\src\SQLStudio sowie
sapdb-sqlstudio-src-7.4.03.28\src\SQLStudio muss nun jeweils ein Kommando ausgeführt werden, das betriebssystemabhängig ist.

Für Microsoft Windows 9x führen Sie folgendes Kommando aus:
 regsvr32 .\DSQLControl\Debug\SQLStudioDSQL.dll

Für alle anderen Microsoft Windows-Versionen führen Sie folgendes Kommando aus:
 regsvr32 .\DSQLControl\DebugU\SQLStudioDSQL.dll

Das Programm SQL Studio kann jetzt aufgerufen oder erstellt werden.

Die Komponenten des SQL Studio werden in verschiedenen Entwicklungsumgebungen erstellt (Komponenten des SQL Studio).

Für die Erstellung der Komponente DSQLControl benötigen Sie die Include-Datei Tom.h und die Bibliothek riched20.dll 5.3011.2110 (oder höher).
Die Datei Tom.h ist Bestandteil des Microsoft Platform Software Development Kit (SDK).

Falls Ihnen die Bibliothek riched20.dll 5.3011.2110 nicht zur Verfügung stehen sollte, kopieren Sie diese aus dem Verzeichnis bin in das entsprechende Windows-Verzeichnis (z. B. ../Winnt/System32 für Windows NT).


Ausführen des Programms SQL Studio (MaxDB: Quelltext für Werkzeuge)

Ausführen des Programms SQL Studio

Voraussetzungen

Wenn Sie das Programm SQL Studio in der Entwicklungsumgebung Microsoft Visual Basic starten wollen, dann muss die Laufzeitumgebung zugreifbar sein.

Dazu kopieren Sie die nachfolgend aufgeführten Dateien der Laufzeitumgebung in das Verzeichnis der Gruppendatei ...\SQLStudio\Main.

Dateien des SQL Studio in der MaxDB-Client-Laufzeitumgebung

sqlod32.dll

sqluser73dll

sapni.dll

sqlsp32.dll

sqltcp2.dll

sqltcp1.dll

sqltcp.dll

sqltcpn.dll

sqlodext.dll

libsqlcls.dll

wapi.dll

dbfsapi.dll

odcompr.dll

StudioUtil.dll

TableDefC.dll


Web Based Problem Tracking System

Das Web Based Problem Tracking System (Web PTS) ist das Web-Interface zum MaxDB-internen Programm PTS für die Dokumentation von Problemmeldungen zur Datenbanksoftware. Darin werden die einzelnen Bearbeitungszustände vom Anlegen der Problemmeldung bis zur Behebung des Problems dokumentiert.

Sie haben mit diesem Programm ausschließlich lesenden Zugriff auf die im MaxDB-internen Programm PTS erfassten Problemmeldungen.

Ein externer Entwickler, beispielsweise ein Mitglied der Open-Source-Community, übersendet eine Problemmeldung an das MaxDB-Entwicklungsteam. Diese wird intern im Programm PTS erfasst. Anschließend wird dem externen Entwickler die URL dieser Problemmeldung übersandt. Damit erhält er die Möglichkeit, jederzeit den Bearbeitungsstand zu verfolgen und sich über die Planung zu informieren, welche Änderung in welche Datenbankversion eingehen soll.

Systemanforderungen

Begriffe

Funktionsweise des Web PTS

Sie können auf das Programm Web Based Problem Tracking System (Web PTS) unter der Adresse http://www.sapdb.org/webpts kostenlos zugreifen.


Systemanforderungen (MaxDB: Web Based Problem Tracking System)

Systemanforderungen

Die günstigste Voraussetzung für die Verwendung des Programms Web Based Problem Tracking System ist ein Browser, der Frames, JavaScript und Cascading-Style-Sheets (CSS) unterstützt.

Wenn Ihr Browser CSS nicht unterstützt, wird die Darstellung des Programms beeinträchtigt sein. Bei einzelnen Browsers kann es aber auch dazu führen, dass das Programm nicht benutzbar ist (z. B. Konqueror 2.9.2 mit aktiviertem Accessibility-Style-Sheet).

Tests mit Microsoft Internet Explorer 6, Netscape 4.74, Mozilla 1.1, Netscape 6.1, Netscape 7 (alle auf Windows 2000) sowie Konqueror 3.0.3 (alle auf Linux SuSE 8.0) zeigten gute Ergebnisse.


Begriffe (MaxDB: Web Based Problem Tracking System)

Begriffe

Affected OS

Change Request

Completed

Component

Created

Delivered

Description

Error

Evaluate

Feature

Header Data

Keywords

Message Data

Message Texts

Message Type

Modules

Number

Patch Information

Planned/Delivered

Processed

Rejected

Release Note

Reported

Settlement

Solution

To be done

Waiting


Meldungsdaten (MaxDB: Web Based Problem Tracking System)

Meldungsdaten

Zu jeder Problemmeldung sind folgende Meldungsdaten erfasst:

Header-Daten (Header Data)

Bearbeitungsstand(Settlement)

Der Inhalt der Problemmeldung steht im Meldungstext.


Header-Daten (Header Data) (MaxDB: Web Based Problem Tracking System)

Header-Daten (Header Data)

Header-Daten sind Teil der Meldungsdaten.

Zu jeder Problemmeldung sind folgende Header-Daten erfasst:

Number | Laufende Nummer der Problemmeldung
Message Type | Art der Problemmeldung Error: Meldungsart Fehler, die Software funktioniert nicht, wie vorgesehen Change Request: Meldungsart Änderungsanforderung, der gemeldete Mangel erschwert den vorgesehenen Gebrauch der Software
Component | MaxDB-Komponente
Reported | Datenbankversion, auf die sich die Problemmeldung bezieht
Settlement | Bearbeitungsstand
Planned/Delivered | Datenbankversion, in der das Problem behoben sein wird/ ist
Created | Erfassungsdatum
Processed | Bearbeitungsdatum
Completed | Datum, an dem die Bearbeitung abgeschlossen wurde
Affected OS | Betroffene Betriebssysteme
Keywords | Schlüsselwörter Sie entsprechen den Indizes, die einer Problemmeldung beim Erfassen zugeordnet werden können.


Bearbeitungsstand (Settlement) (MaxDB: Web Based Problem Tracking System)

Bearbeitungsstand (Settlement)

Angaben zum Bearbeitungsstand einer Problemmeldung sind Teil der Meldungsdaten.

Folgende Bearbeitungsstände sind möglich:

Waiting | Die Problemmeldung wurde erfasst, wird jedoch noch nicht bearbeitet
Evaluate | Der zuständige Entwickler bewertet die Problemmeldung hinsichtlich Relevanz, Arbeits- und Zeitaufwand
To be done | Die Problemmeldung wird bearbeitet
Delivered | Das Arbeitsergebnis ist in eine Datenbankversion eingeflossen, die ausgeliefert wurde
Rejected | Die Problemmeldung wird nicht bearbeitet


Meldungstexte (Message Texts) (MaxDB: Web Based Problem Tracking System)

Meldungstexte (Message Texts)

Meldungstexte sind die in den einzelnen Phasen der Bearbeitung einer Problemmeldung erfassten Texte.
Folgende Textarten können erfasst sein:

Description | Beschreibung des Problems
Solution | Beschreibung des Lösungsweges für das Problem
Patch Information | Beschreibung des neuen Standes nach Behebung eines Fehlers (Release-Note bei Meldungsart Fehler)
Modules | Von der Problemlösung betroffene Softwaremodule
Feature | Beschreibung des neuen Feature (Release-Note bei Meldungsart Änderungsanforderung)


Funktionsweise des Web PTS (MaxDB: Web Based Problem Tracking System)

Funktionsweise des Web PTS

Verwendung

Das Programm Web Based Problem Tracking System (Web PTS) bietet Ihnen die Möglichkeit, nach den in diesem Programm erfassten Problemmeldungen zu suchen. Dazu stehen Ihnen verschiedene Suchmasken mit Auswahllisten und Suchfunktionen zu den Meldungsdaten und Meldungstexten zur Verfügung.

Verfügbare Suchmasken

Einfache Suche: Simple Search | Einschränkung des Suchergebnisses mit Hilfe freier Eingaben
Erweiterte Suche: Advanced Search | Einschränkung des Suchergebnisses mit Hilfe von Eingaben, die Sie aus den Vorschlägen des Systems auswählen
Versionsvergleich: My Release Notes | Einschränkung des Suchergebnisses auf ausschließlich jene Meldungen, die für den Endkunden relevante Informationen enthalten Wenn Sie die Version Ihrer installierten Software und eine neuere Version angeben, begrenzen Sie die Ergebnisliste auf die für Ihre Softwareinstallation relevanten Informationen, die bis zur angegebenen neueren Version ausgegeben wurden.


Einfache Suche (Simple Search) (MaxDB: Web Based Problem Tracking System)

Einfache Suche (Simple Search)

Verwendung

Mit der Einfachen Suche zeigen Sie die im MaxDB-internen Programm PTS erfassten Problemmeldungen mit den dazu vorhandenen Informationen an. Das Suchergebnis schränken Sie durch die Angabe geeigneter freier Suchbegriffe ein.

Die Suche erfolgt in den Meldungstexten und Keywords aber nicht in den Meldungsdaten.

Es werden maximal 25 Ergebnisse ausgegeben.

Eingaberegeln

Sie können beliebige Buchstaben- und/oder Zahlenkombinationen angeben. Folgende Eingaberegeln müssen dabei beachtet werden:

· Such-Strings, die aus mehreren Wörtern bestehen, sind in Anführungszeichen zu setzen (z. B.: "backup history“)

· Such-Strings, die mit einem Minuszeichen beginnen, sind ebenfalls in Anführungszeichen zu setzen (z. B.: "-8000“)

· Um Problemmeldungen aus der Ergebnisliste auszuschließen, leiten Sie den Such-String mit einem Minuszeichen als Negationsoperator ein (z. B.: -logging, -"-8000", -"backup history")

Vorgehensweise

Wählen Sie Simple Search.

...

1. Geben Sie Such-Strings unter Einhaltung der oben genannten Eingaberegeln an.

2. Wählen Sie, nach welchen Regeln die Suche erfolgen soll:

All Words | Jede Meldung in der Ergebnisliste soll alle aufgeführten Suchstrings enthalten.
Any Word | Jede Meldung in der Ergebnisliste soll mindestens einen der aufgeführten Such-Strings enthalten.
Exact Phrase | Jede Meldung in der Ergebnisliste soll exakt den aufgeführten Such-String enthalten.

3. Wenn Sie Ihre Eingaben zurücksetzen wollen, wählen Sie Clear.

Wenn Sie die Suche starten wollen, wählen Sie Search.

Ein Negationsoperator vor einem Such-String ist am sinnvollsten in der Kombination mit der Suchregel All Words, da Sie damit die Ergebnistabelle eingrenzen.

Dagegen kann der Negationsoperator vor einem Such-String in der Kombination mit der Suchregel Any Words die Ergebnisliste bedeutend vergrößern.

Ergebnisliste der Einfachen Suche


Ergebnisliste der Einfachen Suche (MaxDB: Web Based Problem Tracking System)

Ergebnisliste der Einfachen Suche

Verwendung

Sie zeigen die bei der Suche verwendeten Suchkriterien an, darunter die Anzahl der Gesamttreffer der Suche und die Ergebnisliste. In der Liste werden maximal 25 Treffer angezeigt. Wenn die Trefferzahl 25 übersteigt, empfiehlt es sich, die Suche weiter einzugrenzen.

Zu jedem Ergebnis zeigen sie die wichtigsten Meldungsdaten sowie die ersten 160 Zeichen der zur Problemmeldung erfassten Beschreibung an.

Vorgehensweise

Wenn Sie sich zu einem Eintrag in der Ergebnisliste eine Detailansicht anzeigen lassen wollen, klicken Sie dazu auf die laufende Nummer (Number) der jeweiligen Meldung. Sie zeigen damit alle zu einer ausgewählten Meldung vorhandenen Informationen an, d. h. alle verfügbaren Meldungsdaten und Meldungstexte.
Sie können die Detailansicht als URL speichern. Klicken Sie dazu mit der rechten Maustaste auf den angebotenen Link.

Wenn Sie die Suche ändern wollen, ändern Sie die angezeigten Suchkriterien. Anschließend wählen Sie Search.

Wenn Sie eine neue Suche starten wollen, wählen Sie Clear und verfahren wie unter Einfache Suche beschrieben.


Erweiterte Suche (Advanced Search) (MaxDB: Web Based Problem Tracking System)

Erweiterte Suche (Advanced Search)

Verwendung

Mit der Erweiterten Suche zeigen Sie die im MaxDB-internen Programm PTS erfassten Problemmeldungen mit den dazu vorhandenen Informationen an. Durch die Auswahl von Werten für die Eingabefelder können Sie das Suchergebnis eingrenzen.

Sie erhalten eine Information, wie viele Problemmeldungen gefunden wurden.

Sie können definieren, wie viele Problemmeldungen in der Ergebnisliste angezeigt werden.

Die Ergebnisliste können Sie als URL speichern.

Vorgehensweise

...

1. Wählen Sie Advanced Search.

Grenzen Sie das Suchergebnis ein, indem sie Werte aus den angebotenen Listen und Optionen auswählen oder freie Eingaben für die Suche in den zu den Meldungen erfassten Texten machen:
Header-Daten

¡ Klicken Sie auf Keywords, um eine eine Liste aller verfügbaren Schlüsselwörter zu erhalten. Durch einen einfachen Mausklick auf das gewünschte Schlüsselwort fügen Sie es zur Liste der Schlüsselwörter hinzu. Sie können bis zu 25 Schlüsselwörter angeben. Wählen Sie Apply, um die gewählten Schlüsselwörter in die Suchmaske zu kopieren.

Bearbeitungsstand
Meldungstexte

2. Definieren Sie die Anzeige der Ergebnisliste. Sie können zwischen verschiedenen Spaltenkombinationen wählen und angeben, wie viele Problemmeldungen angezeigt werden sollen.

¡ Wählen Sie, ob eine maximale Zeilenzahl (Max Rows) oder alle Zeilen der Ergebnisliste (All Rows) angezeigt werden sollen. Wenn Sie die Zeilenzahl begrenzen wollen, geben Sie die gewünschte Zahl an. Die Anzahl der Zeilen entspricht der Anzahl der angezeigten Problemmeldungen.

¡ Wählen Sie unter Result Column Set welche Spalten in der Ergebnisliste angezeigt werden sollen. Sie können zwischen 3 vordefinierten Spaltenkombinationen wählen:

Minimum | Nummer der Meldung (Number), Meldungsart (Message Type), Komponente (Component), Erstellt (Reported), Erfassungsdatum (Created)
Standard | wie Minimal sowie die Spalten Bearbeitungsstand (Settlement), Geplant/Ausgeliefert (Planned/Delivered)
Maximum | wie Standard sowie die Spalten Bearbeitungsdatum (Processed), Beendigungsdatum (Completed), Betroffene Betriebssysteme (Affected OS)

3. Wenn Sie Ihre Eingaben zurücksetzen wollen, wählen Sie Clear

Wenn Sie die Suche starten wollen, wählen Sie Search.

Ergebnisliste der Erweiterten Suche


Ergebnisliste der Erweiterten Suche (MaxDB: Web Based Problem Tracking System)

Ergebnisliste der Erweiterten Suche

Verwendung

Sie zeigen alle zu den definierten Suchkriterien passenden Problemmeldungen an. Zu jeder Problemmeldung können Sie eine Detailansicht aufrufen.

Sowohl die Ergebnisliste als auch die Detailansicht einer Problemmeldung können Sie als URL speichern.

Vorgehensweise

Wenn Sie die ausgegebene Ergebnisliste als URL speichern wollen, wählen Sie dazu den oben auf der Seite angebotenen Link mit der rechten Maustaste.
Wenn Sie diese URL zu einem späteren Zeitpunkt aufrufen, erhalten Sie genau diese Ergebnisliste angezeigt. Wählen Sie dann Refresh, um die Ausgabe zu aktualisieren.

Wenn Sie sich zu einem Eintrag in der Ergebnisliste die Detailansicht anzeigen lassen wollen, klicken Sie dazu auf die laufende Nummer (Number) der jeweiligen Meldung. Sie zeigen damit alle zu einer ausgewählten Meldung vorhandenen Informationen an, d. h. alle verfügbaren Meldungsdaten und Meldungstexte.
Sie können auch die Detailansicht als URL speichern. Klicken Sie dazu mit der rechten Maustaste auf den oben auf der Seite angebotenen Link.

Wenn Sie für die angezeigte Ergebnisliste die Suche modifizieren wollen, wählen Sie Modify Search.

Wenn Sie eine neue Suchabfrage definieren wollen, wählen Sie New Search und verfahren wie unter Erweiterte Suche beschrieben.


Versionsvergleich (My Release Notes) (MaxDB: Web Based Problem Tracking System)

Versionsvergleich (My Release Notes)

Verwendung

Mit dem Versionsvergleich ermitteln Sie, welche zu einer Version erfassten Fehler/ Änderungsanforderungen in einer bestimmten nachfolgend ausgelieferten Version behoben/umgesetzt sind.

In der Ergebnisliste werden die zu den abgearbeiteten Problemmeldungen verfassten Release-Notes angezeigt. Release-Notes für behobene Fehler heißen Patch Information. Release-Notes für umgesetzte Änderungsanforderungen heißen Feature.

Sie erhalten eine Information, wie viele Release-Notes gefunden wurden. Die Anzeige ist sortiert.

Vorgehensweise

...

1. Wählen Sie My Release Notes.

2. Grenzen Sie die Suche ein, indem sie Werte aus den angebotenen Listen auswählen:

My Version | Version ab der gesucht werden soll
Newer Version | Version bis zu der gesucht werden soll
Component | MaxDB-Komponente

3. Wenn Sie Ihre Eingaben zurücksetzen wollen, wählen Sie Clear.

Wenn Sie die Suche starten wollen, wählen Sie Search.

Ergebnisliste des Versionsvergleichs


Ergebnisliste des Versionsvergleichs (MaxDB: Web Based Problem Tracking System)

Ergebnisliste des Versionsvergleichs

Verwendung

In dieser Liste erhalten Sie alle zu den definierten Suchkriterien passenden Release-Notes angezeigt.

Zu jeder Release-Note erhalten Sie die wichtigsten Meldungsdaten. Diesen können Sie unter anderem entnehmen, ob das Problem in der angegebenen Newer Version in Planung (Planned) oder ausgeliefert (Delivered) ist.

Alle gefundenen Release-Notes werden in der Ergebnisliste nach Komponenten sortiert angezeigt. Dabei wird für jede Komponente zwischen Patch Information und Feature unterschieden.

Für eine bestimmte Komponente werden zunächst die Release-Notes für ausgelieferte Versionen (zuerst Features und dann Patch Informations) und dann die Release-Notes für geplante Versionen (zuerst Features und dann Patch Informations) angezeigt.

Vorgehensweise

Wenn Sie für die angezeigte Ergebnisliste die Suche modifizieren wollen, wählen Sie Modify Search.

Wenn Sie eine neue Suche definieren wollen, wählen Sie New Search und verfahren wie unter Versionsvergleich beschrieben.


Symbole und Typographische Konventionen

Symbole im Text

Symbol | Bedeutung
 | Achtung
 | Beispiel
 | Hinweis
 | Empfehlung
 | Syntax

Typografische Konventionen

Format | Beschreibung
Beispieltext | Wörter oder Zeichen, die vom Bildschirmbild zitiert werden. Dazu gehören Feldbezeichner, Bildtitel, Drucktastenbezeichner sowie Menünamen, Menüpfade und Menüeinträge. Querverweise auf andere Dokumentationen
Beispieltext | hervorgehobene Wörter oder Ausdrücke im Fließtext, Titel von Grafiken und Tabellen
BEISPIELTEXT | Namen von Systemobjekten. Dazu gehören Reportnamen, Programmnamen, Transaktionscodes, Tabellennamen und einzelne Schlüsselbegriffe einer Programmiersprache, die von Fließtext umrahmt sind, wie z.B. SELECT und INCLUDE
Beispieltext | Ausgabe auf der Oberfläche. Dazu gehören Datei- und Verzeichnisnamen und ihre Pfade, Meldungen, Quelltext, Namen von Variablen und Parametern sowie Namen von Installations-, Upgrade- und Datenbankwerkzeugen.
Beispieltext | exakte Benutzereingabe. Dazu gehören Wörter oder Zeichen, die Sie genau so in das System eingeben, wie es in der Dokumentation angegeben ist.
<Beispieltext> | variable Benutzereingabe. Die Wörter und Zeichen in spitzen Klammern müssen Sie durch entsprechende Eingaben ersetzen, bevor Sie sie in das System eingeben.
Beispieltext | Tasten auf der Tastatur, wie z.B. die Funktionstaste F2 oder die ENTER-Taste


MySQL MaxDB-Bibliothek

MySQL MaxDB ist ein robustes und zuverlässiges Datenbanksystem, das sich durch höchstmögliche Performance und Verfügbarkeit und eine niedrige Cost-of-Ownership auszeichnet. Es bietet einfachste Handhabung und weitgehend operatorlosen Betrieb. MaxDB kann mit unterschiedlichsten Informationsarten umgehen und eignet sich damit als Server für diverse Anwendungsszenarien. Es steht für alle SAP-Anwendungen zur Verfügung.

Zusätzliche Informationen und kostenlose Software-Downloads finden Sie unter der Internetadresse http://www.mysql.com/downloads.

MaxDB-Dokumentation steht Ihnen in folgenden Bereichen zur Verfügung:

Installation

Grundwissen

Werkzeuge

Schnittstellen

Entwicklung

Zur Kennzeichnung verschiedener Textbereiche in der Dokumentation werden Symbole und typographische Konventionen verwendet.