## Folge von Datenbankanweisungen ausführen

### Verwendung

Bevor Sie eine Folge von Datenbankanweisungen ausführen, eröffnen Sie explizit eine Datenbanksitzung. Sie können in diesem Kommando angeben, mit welchem Benutzer diese Datenbanksitzung eröffnet werden soll. Wenn Sie keinen Benutzer angeben, verwendet das System die Daten des ersten DBM-Benutzers. Beachten Sie deshalb, dass Sie innerhalb der Datenbanksitzung nur Datenbankanweisungen ausführen können, zu denen der Benutzer, mit welchem die Datenbanksitzung eröffnet wurde, berechtigt ist.

Die Datenbanksitzung wird immer im AUTOCOMMIT-Modus eröffnet. Das bedeutet, dass eingegebene SQL-Anweisungen automatisch mit einer COMMIT-Anweisung abgeschlossen und damit nicht mehr mit Hilfe einer ROLLBACK-Anweisung zurückgerollt werden können.

Innerhalb der Datenbanksitzung verwenden Sie dann das DBM-Kommando db_execute oder db_executenice, um eine Datenbankanweisung an eine Datenbankinstanz zu übermitteln.

Welches dieser beiden DBM-Kommandos Sie wählen, hängt davon ab, ob Sie die größtmögliche Ergebnismenge der Datenbankanweisung oder das Ergebnis datensatzweise anzeigen wollen.

Wenn Sie db_execute verwendet haben, dann kann die erzeugte Ergebnismenge die Größe des vom DBM-Server übertragenen Antwortpakets (ca. 16 KB) überschreiten. In diesem Fall weist Sie der Database Manager mit dem Schlüsselwort CONTINUE in der Ausgabe darauf hin, dass noch weitere Daten angezeigt werden können. Zum Anzeigen dieser weiteren Daten verwenden Sie das DBM-Kommando db_fetch.

Wenn Sie db_executenice verwendet haben und sich den jeweils nächsten Datensatz anzeigen lassen wollen, verwenden Sie dazu das DBM-Kommando db_fetchnice.

Wenn alle Ergebnisdaten angezeigt wurden, schließen Sie die Datenbanksitzung oder beenden gegebenenfalls den Database Manager CLI.

Sie müssen auch für die Ausführung einer einzelnen Datenbankanweisung explizit eine Datenbanksitzung eröffnen, wenn Sie für diese Anweisung eine Ergebnismenge erwarten, die die Größe eines Antwortpakets übersteigt, oder wenn Sie sich die Ergebnismenge datensatzweise anzeigen lassen wollen. Dies ist notwendig, da Sie in diesen Fällen mehrere Datenbankanweisungen zum Anzeigen der Ergebnisse innerhalb derselben Datenbanksitzung ausführen müssen.

Zu den Voraussetzungen siehe Database Manager CLI, db_connect, db_execute, db_executenice, db_fetch, db_fetchnice, db_release

Siehe auch:

Glossar, AUTOCOMMIT-Modus, ROLLBACK

### Szenario 1

Sie wollen drei neue Datenbankbenutzer anlegen und die dazu notwendigen SQL-Anweisungen unmittelbar nacheinander ausführen. Sie müssen dazu eine Datenbanksitzung eröffnen.

Nur ein Datenbanksystemadministrator hat die Berechtigung, neue Datenbankbenutzer anzulegen. Sie müssen deshalb die Datenbanksitzung mit den Daten des Datenbanksystemadministrators eröffnen. Wenn Sie bei diesem DBM-Kommando keinen Benutzer angeben, verwendet das System die Daten des ersten DBM-Benutzers.

Siehe auch:

Konzepte des Datenbanksystems, Benutzer, Authentifizierung und Berechtigungen

Referenzhandbuch, CREATE USER-Anweisung

#### Vorgehensweise

...

1. Aufrufen des Database Manager CLI im Sitzungsmodus, Anmelden als Benutzer OLEG mit dem Kennwort MONDAY, Herstellen der Verbindung zur Datenbankinstanz DEMODB:

>dbmcli –u OLEG,MONDAY –d DEMODB

dbmcli on demodb>

2. Aufbau einer Datenbanksitzung als Datenbankadministrator DBADMIN mit dem Kennwort SECRET:

dbmcli on demodb>db_connect DBADMIN,SECRET

OK

3. Ausführen der SQL-Anweisung zum Anlegen des Benutzers MONA mit dem Kennwort RED und den Eigenschaften DBA und NOT EXCLUSIVE:

dbmcli on demodb>db_execute CREATE USER mona PASSWORD red DBA NOT EXCLUSIVE

OK

4. Ausführen der SQL-Anweisung zum Anlegen des Benutzers DAVID mit dem Kennwort BLUE und der Eigenschaft RESOURCE:

dbmcli on demodb>db_execute CREATE USER david PASSWORD blue RESOURCE

OK

5. Ausführen der SQL-Anweisung zum Anlegen des Benutzers BORIS mit dem Kennwort PINK und der Eigenschaft STANDARD:

dbmcli on demodb>db_execute CREATE USER boris PASSWORD pink STANDARD

OK

6. Schließen der Datenbanksitzung:

dbmcli on demodb>db_release

OK

#### Ergebnis

Die Datenbankbenutzer MONA, DAVID und BORIS wurden mit den angegebenen Eigenschaften angelegt und können sich nun an die Datenbankinstanz anmelden.

### Szenario 2

Sie wollen eine SQL-Anweisung ausführen, um sich Inhalte der Tabelle users anzeigen zu lassen. Die Anzeige soll datensatzweise erfolgen.

#### Vorgehensweise

...

1. Aufrufen des Database Manager CLI im Sitzungsmodus, Anmelden als Benutzer OLEG mit dem Kennwort MONDAY, Herstellen der Verbindung zur Datenbankinstanz DEMODB:

>dbmcli -u OLEG,MONDAY -d DEMODB

dbmcli on demodb>

2. Aufbau einer Datenbanksitzung (ohne Angabe eines Benutzers, es werden die Daten des ersten DBM-Benutzers verwendet):

dbmcli on demodb>db_connect

OK

3. Ausführen der SQL-Anweisung zum datensatzweisen Anzeigen von Inhalten der Tabelle users (Benutzername, Verbindungsmodus und Benutzer-ID):

dbmcli on demodb>db_executenice SELECT username,connectmode,user_id FROM users

OK

CONTINUE

USERNAME = 'DBM'

CONNECTMODE = 'MULTIPLE'

USER_ID = 0

---

4. Anzeigen des nächsten Datensatzes:

dbmcli on demodb>db_fetchnice

OK

CONTINUE

USERNAME = 'DBADMIN'

CONNECTMODE = 'MULTIPLE'

USER_ID = 10

---

5. Anzeigen des nächsten Datensatzes:

dbmcli on demodb>db_fetchnice

OK

USERNAME = 'MONA'

CONNECTMODE = 'MULTIPLE'

USER_ID = 27

#### Ergebnis

Nach jeder Ausführung des DBM-Kommandos db_fetchnice erhalten Sie den nächsten Datensatz der Ergebnismenge angezeigt.