¿Por qué recibo un error de sintaxis al utilizar Informix dbaccess?

¿Por qué recibo un error de sintaxis al utilizar Informix dbaccess?

Recibo este error de sintaxis en IBM Informix usando la utilidad dbaccess:

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

¿Alguna sugerencia?

Respuesta1

Obtiene el 'error de sintaxis' porque SHOW DATABASESno es un comando válido en DB-Access. De hecho, SHOWno es una palabra clave válida ni en DB-Access ni en el DBMS subyacente.

Si algo fuera a funcionar, sería INFO DATABASES; sin embargo, eso no es realmente compatible con DB-Access (pero sí está en miSQLCMDprograma, que uso con preferencia a DB-Access, y lo he usado desde que lo escribí por primera vez en 1987).

Hay otros INFOcomandos para enumerar tablas, columnas, etc.

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

Estos comandos son interpretados por DB-Access y no por el servidor de bases de datos Informix, y se traducen en consultas en el catálogo del sistema de la base de datos actual. Por lo tanto, la lista de bases de datos es algo diferente porque la información no forma parte del catálogo del sistema de la base de datos actual.

La lista de bases de datos está disponible en una tabla en la sysmasterbase de datos:

SELECT * FROM SysMaster:informix.sysdatabases;

Ejemplo de salida de un servidor Informix:



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

Alternativamente, si ejecuta DB-Access en modo curses (ya sea dbaccesso dbaccess dbname), entonces hay una opción de menú Databasesque conduce a un submenú que le permite enumerar, seleccionar, crear y eliminar bases de datos.

información relacionada