Ошибка программирования.Дополнительная информация по ссылке ниже.
db2 "? SQL0510N "
SQL0510N ОБНОВЛЕНИЕ или УДАЛЕНИЕ не разрешено для указанного курсора.
Объяснение :
Программа попыталась выполнить оператор курсора UPDATE или DELETE WHERE CURRENT OF для определения таблицы или представления, которое не разрешает запрошенную операцию обновления или удаления.Например, эта ошибка может возникать при удалении из представления, доступного только для чтения, или в обновлении, где курсор не был определен с предложением FOR UPDATE.
Из предоставленного файла журнала:
SQLPrepare (65537, ВЫБРАТЬ * ИЗ ПУТИ, ГДЕ TRMCAU =? И PRFCAU =? И LVL2AU =? ЗАКАЗАТЬ TRCCAU ASC, PRFCAU ASC, LVL2AU ASC, ОПТИМИЗИРОВАТЬ ДЛЯ 40 ROWS, SQL_NTS);, SPAUTHU);
...
SQLPrepare (65539, ОБНОВЛЕНИЕ SPAUTH установлено TRMCAU = ?, PRFCAU = ?, LVL2AU = ?, AUTHAU =? Где ток SPAUTHU, SQL_NTS);
SQLExecute (65539);
[ОШИБКА] 0315-152416 Обработка 31244 Файл isp406000o / qcsrc / TestUpd1.c Строка 1653: SQLSTATE: 42828, собственный код ошибки: 4294966786, [IBM] [драйвер CLI] [DB2 / AIX64] SQL0510N ОБНОВЛЕНИЕ илиУДАЛЕНИЕ не разрешено для указанного курсора.SQLSTATE = 42828
Курсор SPAUTHU не может быть обновлен, но вы пытаетесь выполнить позиционное обновление для него.
DECLARE CURSOR оператор :
Столбец в списке выбора внешнего полного выбора, связанного с курсором, имеет значение обновляемый , если выполняется любое из следующих условий:
Курсор можно удалить, если выполняется каждое из следующих условий:
...
- Внешний полный выбор не включает в себя предложение ORDER BY (дажеесли предложение ORDER BY вложено в представление), а предложение FOR UPDATE не было указано
...
В конце добавьте предложение FOR UPDATE
вашего SELECT
заявления.