php + unixODBC + DB2 + DESCRIBE = токен недействителен?

Код, который я пытаюсь запустить:

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

Результат:

PHP Предупреждение: odbc_exec (): ошибка SQL: [unixODBC] [IBM] [iSeries Access ODBC Driver] [DB2 UDB] SQL0104 – токен TABLENAME недействителен. Действительные токены: INTO., Состояние SQL 37000 в SQLExecDirect в …

Не было никаких других проблем с запросами SELECT, INSERT, UPDATE или DELETE в том же соединении. Является ли это синтаксической ошибкой?

Ярлык iSeries DB2 не поддерживает инструкцию SQL DESCRIBE. Вместо этого вам нужно запросить системную таблицу:

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

Этот оператор может быть встроен только в прикладную программу. Это исполняемый оператор, который не может быть динамически подготовлен. Он не должен быть указан в Java.

Из справочника SQL SQL iSeries.

Для меня похоже, что вам нужно предоставить способ, чтобы оператор возвращал значение «Valid tokens: INTO». Раньше я не использовал DESCRIBE, но я бы предположил, что он что-то возвращает.

Интерактивный SQL не разрешает команду, поэтому я не могу помочь вам намного дальше.

BTW, добавьте тег iSeries на ваш вопрос. Тогда вы можете получить еще несколько ответов.

Если вам просто нужны имена столбцов, попробуйте

 select * from <TABLE> where 0 = 1 

Я не знаю, как получить типы столбцов, индексы, ключи и c