Почему я получаю синтаксическую ошибку с помощью Informix dbaccess?

Я получаю эту синтаксическую ошибку в IBM Informix с помощью 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

Какие-либо предложения?

1
задан 25 September 2015 в 05:03
1 ответ

Вы получаете «синтаксическую ошибку», потому что SHOW DATABASES не является допустимой командой в DB-Access. По факту, SHOW не является допустимым ключевым словом ни в DB-Access, ни в базовой СУБД.

Если что-то и должно было работать, это будет INFO DATABASES ; однако на самом деле это не поддерживается в DB-Access (но это есть в моей программе SQLCMD , которую я использую вместо DB-Access и использую с тех пор, как я впервые написал ее еще в 1987 году).

Существуют и другие команды INFO для вывода списка таблиц, столбцов и т. Д.

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

Эти команды интерпретируются DB-Access, а не сервером базы данных Informix, и преобразуются в запросы к системному каталогу текущая база данных. Таким образом, список баз данных несколько отличается, поскольку информация не является частью системного каталога текущей базы данных.

Список баз данных доступен из таблицы в базе данных sysmaster :

SELECT * FROM SysMaster:informix.sysdatabases;

Пример вывода одного сервера 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

…

В качестве альтернативы, если вы запустите DB-Access в режиме curses (либо dbaccess , либо dbaccess dbname ), то появится меню опция Базы данных , которая ведет к подменю, которое позволяет вам перечислять, выбирать, создавать и удалять базы данных.

2
ответ дан 3 December 2019 в 20:47

Теги

Похожие вопросы