Ibm
為什麼使用 Informix dbaccess 時出現語法錯誤?
我使用 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 模式(
dbaccess
或dbaccess dbname
)下執行 DB-Access,則有一個菜單選項Databases
會通向一個允許您列出、選擇、創建和刪除數據庫的子菜單。