1

vectorwise データベースとの接続に python ingress モジュールを使用しています。テーブルを記述するために、私は以下のコードを使用しています:

import ingresdbi
local_db =  ingresdbi.connect(database ='x',uid ='y',driver ='z',pwd ='p')
local_db_cursor = local_db.cursor()
local_db_cursor.execute('help tran_applog ; ' )

このエラーが発生しています:

Syntax error.  Last symbol read was: 'help'."

解決策をいただければ幸いです。ありがとう

4

2 に答える 2

1

問題は、'help' が DBMS サーバーによって理解される実際の SQL ステートメントではないことです。これは実際には、内部でシステム カタログに対するいくつかのクエリに変換される端末監視コマンドです。

別の方法は、「describe table」から取得しようとしているものによって少し異なります。テーブルと列の情報に関連するシステム カタログは、iitables と iicolumns であり、それらに対して選択を行うことができます。ドキュメントまたは実験を確認してください。

あるいは、ingresdbi から取得できる行記述子があるようです。ここの例を参照してください http://community.actian.com/wiki/Python_Row_Description

HTH

于 2014-05-20T19:38:01.093 に答える
0

他のシェルスクリプトと同じように行うべきだと思います:echo "help tran_applog;" | sql mydatabase

理由: 「HELP」は標準の SQL ステートメントではありません。

PaulM が提案したように、テーブルに関するメタデータを取得するための最良のオプションは、システム カタログ (iitables、iicolumns、iirelation など) をクエリすることです。

次のようなものから始めます。

SELECT C.column_name, C.column_datatype 
FROM iitables T, iicolumns C 
WHERE T.table_name = C.table_name 
  AND T.table_name = 'tran_applog';\g
于 2014-07-10T09:25:27.257 に答える