Я пытаюсь запустить это заявление об обновлении, но informix не позволяет мне.
У меня есть таблица с именем ITEMS, и ниже я выбрал несколько записей из нее.
SELECT SHORT_SKU, ITEMS."STYLE" FROM ITEMS;
SHORT_SKU STYLE
--------- -----
01846173 null
01811752 null
01811748 null
При попытке выполнить приведенную ниже инструкцию UPDATE, informix сообщает об ошибке синтаксиса.
UPDATE ITEMS SET ITEMS."STYLE" = 'M' WHERE SHORT_SKU = '01846173';
^ syntax error here
Затем я изменил (как показано ниже) и получил «Столбец (стиль) не найден ни в одной таблице в запросе (или SLV не определен).»
UPDATE ITEMS SET STYLE = 'M' WHERE SHORT_SKU = '01846173';
Как обновить поле "СТИЛЬ"?
ОБНОВЛЕНИЕ 1
Я изменил одно из пользовательских свойств источника данных WAS, ifxDELIMIDENT. Первоначально это было пустым. Итак, я изменил это на истину. Перезапущен был. И я не мог войти в наше приложение. SQLExceptions были выброшены WAS, но не смогли увидеть трассировку стека, потому что WAS урезал последние несколько строк. После изменения свойства обратно на пустое я смог войти в наше приложение.
Я попробовал другой подход, который заключался в написании Java-класса, который обновляет столбец ITEMMST.STYLE. Я выполнил это из сценария оболочки. В сценарии оболочки я определил и экспортировал переменную DELIMIDENT со значением «Y». Но я все еще получаю «Синтаксическая ошибка».
ОБНОВЛЕНИЕ 2
Мне удалось обновить столбец. Это делается путем добавления свойства «DELIMIDENT = Y» в конце строки соединения, которое будет передано объекту DriverManager при открытии соединения с базой данных.
Но это не сработает для нашего веб-приложения, поскольку оно использует источник данных WebSphere для создания соединения БД. Было бы супер, если бы есть способ установить это свойство в самой среде Informix.