1

実行しようとしているコード:

$query = "DESCRIBE TABLE TABLENAME";
$result = odbc_exec($h, $query);

結果:

PHP 警告: odbc_exec(): SQL エラー: [unixODBC][IBM][iSeries Access ODBC ドライバー][DB2 UDB]SQL0104 - トークン TABLENAME が無効でした。有効なトークン: INTO.、SQLExecDirect の SQL 状態 37000 ...

同じ接続での SELECT、INSERT、UPDATE、または DELETE クエリには、その他の問題はありませんでした。これは構文エラーですか?

4

4 に答える 4

6

DB2 の iSeries フレーバーは、SQL DESCRIBE ステートメントをサポートしていません。代わりに、システム テーブルをクエリする必要があります。

select * from qsys2.columns where table_schema = 'my_schema' and table_name = 'my_table'
于 2008-10-08T19:34:10.560 に答える
1

このステートメントは、アプリケーション プログラムにのみ組み込むことができます。動的に準備できない実行文です。Java では指定しないでください。

iSeries DB2 SQL リファレンスから。

于 2008-11-03T20:32:28.677 に答える
0

列名だけが必要な場合は、試してください

select * from <TABLE> where 0 = 1

列の型、インデックス、キーなどを取得する方法がわかりません &c

于 2008-10-06T10:57:13.007 に答える
0

私には、ステートメントが値を返す方法を提供する必要があるように見えます「有効なトークン:INTO」がそれを教えてくれます。以前に DESCRIBE を使用したことはありませんが、何かが返されると思います。

Interactive SQL ではこのコマンドを使用できないため、それ以上のことはできません。

ところで、質問に iSeries タグを追加してください。そうすれば、さらにいくつかの答えが得られるかもしれません。

于 2008-09-30T17:48:41.283 に答える