我在 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 模式(dbaccess
或dbaccess dbname
)下运行 DB-Access,那么有一个菜单选项Databases
会引导您进入一个子菜单,允许您列出、选择、创建和删除数据库。