web-dev-qa-db-ja.com

Informix dbaccessを使用して構文エラーが発生するのはなぜですか?

Dbaccessユーティリティを使用すると、IBMInformixで次の構文エラーが発生します。

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
John Elliot V

SHOW DATABASESはDB-Accessの有効なコマンドではないため、「構文エラー」が発生します。実際、SHOWは、DB-Accessまたは基盤となるDBMSのいずれにおいても有効なキーワードではありません。

何かがうまくいくとしたら、それはINFO DATABASESになります。ただし、これは実際にはDB-Accessではサポートされていません(ただし、DB-Accessよりも優先して使用する私の [〜#〜] sqlcmd [〜#〜] プログラムにあります。 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

これらのコマンドは、InformixデータベースサーバーではなくDB-Accessによって解釈され、現在のデータベースのシステムカタログに対するクエリに変換されます。したがって、データベースのリストは、情報が現在のデータベースのシステムカタログの一部ではないため、多少異なります。

データベースのリストは、sysmasterデータベースのテーブルから入手できます。

SELECT * FROM SysMaster:informix.sysdatabases;

1つの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があり、これを使用してサブメニューを表示できます。データベースを一覧表示、選択、作成、および削除します。

2