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

相關內容