Ibm

為什麼使用 Informix dbaccess 時出現語法錯誤?

  • September 25, 2015

我使用 dbaccess 實用程序在 IBM Informix 中收到此語法錯誤:

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

有什麼建議麼?

您會收到“語法錯誤”,因為SHOW DATABASES它不是 DB-Access 中的有效命令。事實上,SHOW在 DB-Access 或底層 DBMS 中都不是有效關鍵字。

如果有任何事情會奏效,那就是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

…

或者,如果您在 curses 模式(dbaccessdbaccess dbname)下執行 DB-Access,則有一個菜單選項Databases會通向一個允許您列出、選擇、創建和刪除數據庫的子菜單。

引用自:https://serverfault.com/questions/724693