2008-09-30 100 views
1

代碼我試圖運行:php + unixODBC + DB2 + DESCRIBE =令牌無效?

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

結果:

PHP Warning: odbc_exec(): SQL error: [unixODBC][IBM][iSeries Access ODBC Driver][DB2 UDB]SQL0104 - Token TABLENAME was not valid. Valid tokens: INTO., SQL state 37000 in SQLExecDirect in ...

有相同的連接上沒有其它問題,SELECT,INSERT,UPDATE或DELETE查詢。這是一個語法錯誤?

回答

0

對我來說,它看起來像你需要提供一種方法讓語句返回一個值「有效令牌:INTO」告訴我這一點。我之前沒有使用DESCRIBE,但我會想象它會返回一些東西。

Interactive SQL不允許該命令,所以我不能真正幫助你。

順便說一句,添加iSeries標籤到您的問題。您可能會以這種方式獲得更多答案。

0

如果你只需要列名嘗試

select * from <TABLE> where 0 = 1 

我不知道如何讓列類型,索引,鍵&Ç

5

DB2的iSeries的味道不支持SQL DESCRIBE語句。相反,你要查詢的系統表:

select * from qsys2.columns where table_schema = 'my_schema' and table_name = 'my_table' 
+0

非常感謝你的這個例子。你碰巧知道如何獲得字段描述? – 2010-07-15 18:00:09

1

This statement can only be embedded in an application program. It is an executable statement that cannot be dynamically prepared. It must not be specified in Java.

從iSeries DB2 SQL參考。