
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 DATABASES
no es un comando válido en DB-Access. De hecho, SHOW
no 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 INFO
comandos 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 sysmaster
base 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 dbaccess
o dbaccess dbname
), entonces hay una opción de menú Databases
que conduce a un submenú que le permite enumerar, seleccionar, crear y eliminar bases de datos.