Warum erhalte ich bei der Verwendung von Informix dbaccess einen Syntaxfehler?

Warum erhalte ich bei der Verwendung von Informix dbaccess einen Syntaxfehler?

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 DATABASESes sich nicht um einen gültigen Befehl in DB-Access handelt. Tatsächlich SHOWhandelt 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 INFOBefehle 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 dbaccessoder 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.

verwandte Informationen