Por que estou recebendo um erro de sintaxe usando o Informix dbaccess?

1

Estou recebendo este erro de sintaxe no IBM Informix usando o utilitário 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

Alguma sugestão?

    
por John Elliot V 25.09.2015 / 04:03

1 resposta

2

Você obtém o 'erro de sintaxe' porque SHOW DATABASES não é um comando válido no DB-Access. Na verdade, SHOW não é uma palavra-chave válida no DB-Access ou no DBMS subjacente.

Se alguma coisa funcionasse, seria INFO DATABASES ; no entanto, isso não é realmente suportado no DB-Access (mas é no meu programa SQLCMD , que eu uso em preferência ao DB-Access, e usei desde que eu o escrevi em 1987).

Existem outros comandos INFO para listar tabelas, colunas, 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

Esses comandos são interpretados pelo DB-Access e não pelo servidor de banco de dados Informix e são convertidos em consultas no catálogo do sistema do banco de dados atual. A lista de bancos de dados é, portanto, um pouco diferente porque as informações não fazem parte do catálogo do sistema do banco de dados atual.

A lista de bancos de dados está disponível em uma tabela no banco de dados sysmaster :

SELECT * FROM SysMaster:informix.sysdatabases;

Exemplo de saída de um 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

…

Como alternativa, se você executar o DB-Access no modo curses ( dbaccess ou dbaccess dbname ), haverá uma opção de menu Databases que leva a um submenu que permite listar, selecionar , crie e elimine bases de dados.

    
por 25.09.2015 / 15:56

Tags