У меня есть требование, когда моей SQL серверной процедуре необходимо обновить первый член массива в связанном столбце таблицы PostGres сервера. По сути, таблица PostGres имеет определенные цены столбцов (цифры c, 15,5) [], что означает, что содержимое имеет такой тип: {23.0000,0,0,0, ...}
В моем SQL -приводном приложении я обновляю цену, и мне нужно обновить ее в PostGres. Тем не менее, я действительно изо всех сил пытался найти способ использовать:
Update openquery(PGLinkedServer,'select prices[] from theTable where id=1') set prices[1]=24
Но в конце концов я нашел способ сделать это с исследованием выполнения удаленных процедур через openquery. Конечный результат таков:
select * from openquery(PGLinkedServer,
'select 1 x; update theTable set prices[1]=24 where id=1')
Итак, моя первая проблема / вопрос - насколько это может быть стабильно? Особенности поведения не задокументированы: у вас должен вывод таблицы, и должен быть первым в запросе. Должен ли я быть обеспокоен тем, что это может сломаться в будущем обновлении SQLServer, PostGres или библиотеки, используемой для их связывания? Или эта возможность где-то задокументирована?
Второй вопрос - есть ли лучший способ обновить элемент массива PostGres table.column через соединение с сервером SQL Server?
Спасибо, ребята.