## sql_execute

### Verwendung

Sie verwenden ein DBM-Kommando, um eine SQL-Anweisung an die Datenbankinstanz zu übermitteln.

Anders als bei Verwendung des DBM-Kommandos sql_executenice wollen Sie sich in der Antwort so viele Datensätze wie möglich anzeigen lassen. 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 angezeigt werden können, dann verwenden Sie anschließend das DBM-Kommando sql_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 dieses DBM-Kommandos 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: sql_connect), alle SQL-Anweisungen auszuführen und anschließend entweder die SQL-Sitzung (Siehe: sql_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

● Sie arbeiten im Sitzungsmodus des Database Manager CLI.

● Sie haben die Serverberechtigung AccessSQL.

### Syntax

sql_execute [<user_type>] <statement>

<user_type> : = user-type=<value>

Optionen

Option | Beschreibung
<statement> | SQL-Anweisung
<dabase_user> | Name des Datenbankbenutzers
<database_user_password> | Kennwort des Datenbankbenutzers
user-type=<value> | Benutzertyp, mögliche Werte sind: DBM: erster DBM-Benutzer DBA: Datenbanksystemadministrator SAP: spezieller Datenbankbenutzer im Zusammenhang mit SAP-Anwendungen

### 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

...

Aufrufen des Database Manager CLI im Sitzungsmodus, Anmelden als Benutzer OLEG mit dem Kennwort MONDAY, Herstellen der Verbindung zur Datenbankinstanz DEMODB, Anzeigen der Spalten der Tabelle USERS mit den dazugehörigen Kommentaren:

>dbmcli -u OLEG,MONDAY -d DEMODB

dbmcli on DEMODB>sql_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)