Обновление значения в OrientDB устанавливает массив как значение
Я попытался выполнить следующую команду:
UPDATE EN190
set Sys_DisplayTitle = (SELECT EP190_1 FROM EN190 WHERE Sys_ID = 4705)
WHERE Sys_ID = 4706
Значение (SELECT EP190_1 FROM EN190 WHERE Sys_ID = 4705) представляет собой строку:
SomeValue
и это то, что я ожидал быть (ВЫБЕРИТЕ EP190_1 ОТ EN190, ГДЕ Sys_ID = 4706)
но значение в этом поле теперь является следующей строкой:
[SomeValue]
Как я могу решить это?
2 ответа
Решение
Не очень "чистое" решение, но оно работает.
UPDATE EN190 set Sys_DisplayTitle = (SELECT EP190_1 FROM EN190 WHERE Sys_ID = 4705),
Sys_DisplayTitle= Sys_DisplayTitle.replace("[","").replace("]","")
WHERE Sys_ID = 4706
(см. /questions/42975803/orientdb-kak-obnovit-stolbets-s-pomoschyu-zaprosa-vyibora/42975808#42975808)
Следующий запрос SELECT EP190_1 FROM EN190 WHERE Sys_ID = 4705
вернуть список, а не строку