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 в том же соединении не было. Это синтаксическая ошибка?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
3 004
4

Ответы 4

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

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

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

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

select * from <TABLE> where 0 = 1

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

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

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

Большое спасибо за этот пример. Вы случайно не знаете, как получить описания полей?

K Richard 15.07.2010 22:00

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.

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

Другие вопросы по теме