Почему поле, о котором сообщают, отсутствует при создании CURSOR?

0

DECLARE CURSOR в хранимой процедуре MySQL выдает ошибку "Неизвестный столбец"

Тот же SQL работает автономный оператор SQL.

Ниже указана заголовочная часть декларации CURSOR.

 DECLARE curl CURSOR FOR 
    SELECT
    count(*) as curl,
    ISM_MessageDelivered
FROM
    instantmessagesarchive
.
.
.

Получить: неизвестный столбец ISM_MessageDelivered в списке полей. Поле определенно находится в таблице instanmessagesarchive, и если я удалю это поле в приведенном выше определении курсора, курсор не будет жаловаться.

Буду признателен за любые идеи, что не так с этим синтаксисом, так как тот же SQL (без CURSOR) работает нормально.

Теги:

1 ответ

0

Вы объявили переменные, где хранятся в данных?

Например:


DECLARE curl_count INTEGER DEFAULT 0;
DECLARE ISM_MessageDelivered BOOLEAN;

    SELECT
    count(*) as curl_count,
    ISM_MessageDelivered
FROM
    instantmessagesarchive
.
.
.

обратите внимание, что вы должны назвать свои переменные при использовании запроса.

  • 0
    Спасибо за это предложение. Я добавил DECLARE, как вы предложили, в начало StoredProc, но теперь получаю «неправильное количество переменных выборки». Пытаясь решить эту проблему в течение нескольких часов, я теперь читаю данные из JDBC и выполняю эти вычисления в Java (и генерирую оттуда CSV). Я ценю вашу помощь и предложение.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню