
Beim Verwenden des Dienstprogramms dbaccess in IBM Informix tritt dieser Syntaxfehler auf:
root@guava:/opt/informix# bin/dbaccess - -
Your evaluation license will expire on 2015-12-22 00:00:00
> show databases;
201: A syntax error has occurred.
Error in line 1
Near character position 1
Irgendwelche Vorschläge?
Antwort1
Sie erhalten den „Syntaxfehler“, weil SHOW DATABASES
es sich nicht um einen gültigen Befehl in DB-Access handelt. Tatsächlich SHOW
handelt es sich weder in DB-Access noch im zugrunde liegenden DBMS um ein gültiges Schlüsselwort.
Wenn etwas funktionieren würde, dann wäre es INFO DATABASES
; das wird jedoch in DB-Access nicht unterstützt (aber in meinemSQLCMDProgramm, das ich gegenüber DB-Access bevorzuge und verwende, seit ich es 1987 zum ersten Mal geschrieben habe).
Es gibt weitere INFO
Befehle zum Auflisten von Tabellen, Spalten usw.
INFO TABLES; -- List of user-defined tables and views
INFO COLUMNS FOR systables; -- Columns for a specific table
INFO INDEXES FOR systables; -- Indexes on a specific table
Diese Befehle werden von DB-Access und nicht vom Informix-Datenbankserver interpretiert und in Abfragen für den Systemkatalog der aktuellen Datenbank übersetzt. Die Liste der Datenbanken ist daher etwas anders, da die Informationen nicht Teil des Systemkatalogs der aktuellen Datenbank sind.
Die Liste der Datenbanken ist über eine Tabelle in der Datenbank verfügbar sysmaster
:
SELECT * FROM SysMaster:informix.sysdatabases;
Beispielausgabe von einem Informix-Server:
…
name mode_ansi
partnum 1048920
owner jleffler
created 2014-04-30
is_logging 1
is_buff_log 0
is_ansi 1
is_nls 0
is_case_insens 0
flags -12283
name utf8
partnum 1048988
owner jleffler
created 2014-04-30
is_logging 1
is_buff_log 1
is_ansi 0
is_nls 0
is_case_insens 0
flags -12285
…
Wenn Sie DB-Access alternativ im Curses-Modus (entweder dbaccess
oder dbaccess dbname
) ausführen, gibt es eine Menüoption Databases
, die zu einem Untermenü führt, in dem Sie Datenbanken auflisten, auswählen, erstellen und löschen können.