php + unixODBC + DB2 + DESCRIBE = 令牌无效?

php + unixODBC + DB2 + DESCRIBE = token not valid?

提问人:tpk 提问时间:10/1/2008 最后编辑:Benny Hilltpk 更新时间:11/24/2013 访问量:3195

问:

我正在尝试运行的代码:

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

结果:

PHP 警告:odbc_exec():SQL 错误:[unixODBC][IBM][iSeries Access ODBC 驱动程序][DB2 UDB]SQL0104 - 令牌 TABLENAME 无效。有效 tokens: INTO., SQLExecDirect 中的 SQL 状态 37000 ...

同一连接上的 SELECT、INSERT、UPDATE 或 DELETE 查询没有其他问题。这是语法错误吗?

PHP IBM 中端 UNIXODBC DB2-400

评论


答:

0赞 Mike Wills 10/1/2008 #1

对我来说,看起来您需要为语句提供一种方法来返回一个值“有效令牌:INTO”告诉我这一点。我以前没有使用过 DESCRIBE ,但我想它会返回一些东西。

Interactive SQL 不允许使用该命令,因此我无法为您提供更多帮助。

顺便说一句,将 iSeries 标签添加到您的问题中。这样你可能会得到更多的答案。

0赞 pmg 10/6/2008 #2

如果您只需要列名,请尝试

select * from <TABLE> where 0 = 1

我不知道如何获取列类型、索引、键和

6赞 Ian McLaird 10/9/2008 #3

DB2 的 iSeries 风格不支持 SQL DESCRIBE 语句。相反,您必须查询系统表:

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

评论

0赞 K Richard 7/16/2010
非常感谢你这个例子。您是否也知道如何获取字段描述?
1赞 Paul Morgan 11/4/2008 #4

此语句只能嵌入到应用程序中。它是一个无法动态准备的可执行语句。不得在 Java 中指定它。

摘自 iSeries DB2 SQL Reference。