Преобразование Oracle в Postgres

Может кто-нибудь, дайте мне знать, как преобразовать приведенный ниже код Oracle из Oracle в базу данных Postgres,

select RTRIM(
          XMLAGG(
             XMLELEMENT(E,
                        (SEC_PROMOTION_ID ||'+'|| SEC_OFFER_ID),
                        '|'
                       ).EXTRACT('//text()')
             ORDER BY (SEC_PROMOTION_ID ||'+'|| SEC_OFFER_ID)
          ).GETCLOBVAL(),
          '|'
       ) SEC_PROMO_OFFERS
from SSP2_PCAT.IE_FOR_SSP_STAGING;

что ты уже испробовал? Сообщество SO будет рад помочь вам, но не сделает что-то для вас. Посмотрите эти советы, чтобы задать хороший вопрос: stackoverflow.com/help/how-to-ask

Nathan Thomas 19.10.2018 23:44

В дополнение к вопросу Натана, как выглядит эта таблица и как вы хотите, чтобы результат выглядел?

jmelesky 19.10.2018 23:54

Чтобы понять, что делает этот запрос, требуется образец данных XML. Он извлекает 2 значения из этих данных, которые, по-видимому, хранятся как clob. Два извлеченных значения объединяются, не совсем понятно, почему используется xmlagg (), затем используется rtrim (). Итак, чтобы помочь вам в дальнейшем, в дополнение к некоторым образцам данных предоставьте результат образца

Paul Maxwell 20.10.2018 04:17

Это не сервис преобразования кода. Когда вы попытались сделать это преобразование самостоятельно и столкнулись с трудностями. Пожалуйста, вернитесь и объясните проблему, с которой вы столкнулись, включая соответствующие части кода, и задайте конкретный вопрос, и мы постараемся помочь.

Ken White 20.10.2018 07:19
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
1
4
201
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это похоже на обходной путь для преодоления неприятного ограничения Oracle в 4000 байт для результата listagg().

В Postgres это намного проще

select string_agg(sec_promotion_id||'+'||sec_offer_id, '|' order by sec_promotion_id, sec_offer_id) as sec_promo_offers
from IE_FOR_SSP_STAGING

Большое спасибо, это ИДЕАЛЬНО и очень полезно в будущем!

user10531062 24.10.2018 00:26

@ user10531062 Если этот ответ решил ваш вопрос, пожалуйста, принимать, чтобы ваш вопрос был отмечен как решенный.

a_horse_with_no_name 24.10.2018 07:40

Вы очень мне помогли, сэр!

user10531062 06.11.2018 08:26

Другие вопросы по теме