我正试图运行的代码:
$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查询没有其他问题。这是语法错误吗?
答案 0 :(得分:5)
DB2的iSeries风格不支持SQL DESCRIBE语句。相反,您必须查询系统表:
select * from qsys2.columns where table_schema = 'my_schema' and table_name = 'my_table'
答案 1 :(得分:1)
此声明只能嵌入应用程序中。它是一个无法动态准备的可执行语句。它不能在Java中指定。
来自iSeries DB2 SQL Reference。
答案 2 :(得分:0)
对我来说,看起来你需要为语句提供一种返回值的方法“有效令牌:INTO”告诉我。我之前没有使用过DESCRIBE,但我想它会返回一些东西。
Interactive SQL不允许使用该命令,因此我无法为您提供更多帮助。
顺便说一句,将iSeries标记添加到您的问题中。你可以通过这种方式获得更多答案。
答案 3 :(得分:0)
如果您只需要列名称,请尝试
select * from <TABLE> where 0 = 1
我不知道如何获取列类型,索引,键和&lt; c