## db_execute

### Verwendung

Mit diesem DBM-Kommando übermitteln Sie ein Administrationskommando oder eine SQL-Anweisung an die Datenbankinstanz. Insbesondere bei SQL-Anweisungen ist es jedoch für die Verwendung über eine Programmierschnittstelle gedacht.

Anders als bei Verwendung des DBM-Kommandos db_executenice wollen Sie mit der Antwort so viele Datensätze wie möglich übertragen. Die Menge der übertragenen Daten ist begrenzt durch die Größe des vom DBM-Server übertragenen Antwortpakets.

Wenn es sich um eine SELECT-Anweisung handelt, dann werden vom System die Datensätze der Antwort angezeigt. Wenn aufgrund der begrenzten Größe des Antwortpakets noch nicht alle Daten übertragen wurden, dann verwenden Sie anschließend das DBM-Kommando db_fetch, um ein weiteres Antwortpaket mit Datensätzen zu übertragen. Dies ist jedoch nur dann möglich, wenn Sie sich noch in derselben Datenbanksitzung befinden.

Wenn Sie andere SQL-Anweisungen eingeben, wird die Ausführung der Anweisung mit einer OK-Meldung bestätigt.

Bei der Ausführung von db_execute wird implizit eine Sitzung mit der Datenbankinstanz eröffnet und nach Ausführung des Kommandos wieder beendet. Diese Datenbanksitzung wird im AUTOCOMMIT-Modus eröffnet, d. h. jede eingegebene SQL-Anweisung wird automatisch mit einer COMMIT-Anweisung abgeschlossen.

Wenn eine Folge von SQL-Anweisungen ausgeführt werden soll und diese nur von einem bestimmten Datenbankbenutzer ausgeführt werden können, dann empfiehlt es sich, zunächst eine SQL-Sitzung mit den Daten dieses Datenbankbenutzers zu eröffnen (Siehe: db_connect), dann alle SQL-Anweisungen nacheinander auszuführen und anschließend entweder die Datenbanksitzung (Siehe: db_release) oder den Database Manager CLI zu beenden.

Weitere Informationen zu SQL-Anweisungen finden Sie in den Dokumentationen SQL-Referenzhandbuch und SQL-Tutorial.

Siehe auch:

Tutorial Datenbankverwaltung, Betriebsmodi im Database Manager CLI, Ausführen von Datenbankanweisungen

Konzepte des Datenbanksystems, SQL

### Voraussetzungen

● Wenn Sie Administrationskommandos ausführen wollen, benötigen Sie die Serverberechtigung AccessUtility.

● Wenn Sie SQL-Anweisungen ausführen wollen, benötigen Sie die Serverberechtigung AccessSQL.

### Syntax

db_execute [<user_type>] <statement>

Optionen

Option | Beschreibung
<user_type> | Benutzertyp, mögliche Werte sind: DBM: erster DBM-Benutzer DBA: Datenbanksystemadministrator SAP: spezieller Datenbankbenutzer im Zusammenhang mit SAP-Anwendungen
<statement> | Administrationskommando oder SQL-Anweisung

### Antwort

OK

[END|CONTINUE]

[<record>

<record>

...]

Werte für die Felder der Antwort

Wert | Beschreibung
END | Die Antwort wurde vollständig ausgegeben
CONTINUE | Es liegen noch weitere Datensätze vor, die aufgrund der begrenzten Größe des Antwortpakets nicht übertragen wurden.
<record> | Ergebnisdaten der SQL-Anweisung Die Felder in einem Datensatz sind durch Semikolon voneinander getrennt. Die Ausgabe von Zeichenketten erfolgt in einfachen Anführungszeichen.

Im Fehlerfall siehe Antwortformat.

### Beispiel

...

db_execute im Kommandomodus verwenden

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

Anzeigen der Spaltennamen und Kommentare der Tabelle users in der Systemtablelle COLUMNS im Schema DOMAIN:

>dbmcli -u OLEG,MONDAY -d DEMODB db_execute SELECT columnname, comment FROM domain.columns WHERE tablename = 'USERS'

OK

END

'OWNER';(long)

'GROUPNAME';(long)

'USERNAME';(long)

'USERMODE';(long)

'CONNECTMODE';(long)

'MAXTIMEOUT';(long)

'COSTWARNING';(long)

'COSTLIMIT';(long)

'DEFAULTCODE';(long)

'CREATEDATE';(long)

'CREATETIME';(long)

'ALTERDATE';(long)

'ALTERTIME';(long)

'PWCREADATE';(long)

'PWCREATIME';(long)

'SERVERDB';(long)

'SERVERNODE';(long)

'USER_ID';(long)

'ISREPLICATIONUSER';(long)

'COMMENT';(long)

db_execute im Sitzungsmodus verwenden

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

>dbmcli –u OLEG,MONDAY –d DEMODB

dbmcli on DEMODB>

2. Eröffnen einer Datenbanksitzung:

dbmcli on DEMODB>db_connect

OK

3. Anzeigen des Inhalts der Systemtabelle columns des Schemas domain:

dbmcli on DEMODB>db_execute SELECT * FROM domain.columns

OK

CONTINUE

'DBADMIN';'DBADMIN';'ALLOCATORSTATISTIC';'ALLOCATOR';'OPT';'CHAR';'ASCII';40;(nu

ll);'YES';'SEL+';(null);(null);(null);(null);1;(null);2;'20060406';'00145007';'2

0060406';'00145007';'SYSTEM';(null)

'DBADMIN';'DBADMIN';'ALLOCATORSTATISTIC';'USED_BYTES';'OPT';'FIXED';'';20;0;'YES

';'SEL+';(null);(null);(null);(null);2;(null);3;'20060406';'00145007';'20060406'

;'00145007';'SYSTEM';(null)

'DBADMIN';'DBADMIN';'ALLOCATORSTATISTIC';'MAXUSED_BYTES';'OPT';'FIXED';'';20;0;'

YES';'SEL+';(null);(null);(null);(null);3;(null);4;'20060406';'00145007';'200604

06';'00145007';'SYSTEM';(null)

'DBADMIN';'DBADMIN';'ALLOCATORSTATISTIC';'ALLOCATED_BYTES';'OPT';'FIXED';'';20;0

;'YES';'SEL+';(null);(null);(null);(null);4;(null);5;'20060406';'00145007';'2006

0406';'00145007';'SYSTEM';(null)

...

...

4. Übertragen des nächsten Antwortpakets:

dbmcli on DEMODB>db_fetch

OK

CONTINUE

'DBADMIN';'DBADMIN';'LOCKSTATISTICS';'REQTIMEOUT';'OPT';'CHAR';'UNICODE';10;(nul

l);'YES';'SEL+';(null);(null);(null);(null);10;(null);11;'20060406';'00145007';'

20060406';'00145007';'SYSTEM';(null)

'DBADMIN';'DBADMIN';'LOCKSTATISTICS';'LASTWRITE';'OPT';'CHAR';'UNICODE';10;(null

);'YES';'SEL+';(null);(null);(null);(null);11;(null);12;'20060406';'00145007';'2

0060406';'00145007';'SYSTEM';(null)

...

...

5. Übertragen des nächsten Antwortpakets:

dbmcli on DEMODB>db_fetch

OK

CONTINUE

…

…

…

6. Übertragen des nächsten Antwortpakets:

dbmcli on DEMODB>db_fetch

OK

END

…

…

'HOTEL';'MONA';'ROOM';'FREE';'OPT';'FIXED';'';3;0;'YES';'SEL+UPD+';(null);(null)

;(null);(null);3;(null);3;'20060406';'00145012';'20060406';'00145012';'TABLE';(n

ull)

'HOTEL';'MONA';'ROOM';'PRICE';'OPT';'FIXED';'';6;2;'YES';'SEL+UPD+';(null);(null

);(null);(null);4;(null);4;'20060406';'00145012';'20060406';'00145012';'TABLE';(null)

7. Beenden der Datenbanksitzung

dbmcli on DEMODB>db_release

OK

dbmcli on DEMODB>