为什么使用 Informix dbaccess 时会出现语法错误?

为什么使用 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

您收到“语法错误”,因为SHOW DATABASES在 DB-Access 中不是有效命令。事实上,SHOW在 DB-Access 或底层 DBMS 中都不是有效关键字。

如果有什么可以工作的话,那将是INFO DATABASES;然而,这在 DB-Access 中实际上不受支持(但它在我的SQL命令程序,我更喜欢用它而不是 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

或者,如果您在 curses 模式(dbaccessdbaccess dbname)下运行 DB-Access,那么有一个菜单选项Databases会引导您进入一个子菜单,允许您列出、选择、创建和删除数据库。

相关内容