
我在 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
,該選項會開啟一個子選單,讓您可以列出、選擇、建立和刪除資料庫。