Re: Oracle to Postgres migration

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



bimal maity schrieb am 20.12.2023 um 04:35:
Hi,

I have below query used in Oracle but while migrating to Postgres this code is not supported in Postgres.
Could you please tell me how to resolve this?

SELECT p.id_po, p.line_number, replace(replace(replace(RTRIM(XMLAGG(XMLELEMENT(name C, regexp_replace(p.protocol_number,'([[:cntrl:]])','', 'g'))ORDER BY 1), ',' ) ,'</C><C>','/'),'<C>',''),'</C>','') AS protocol_number
                         ,replace(replace(replace(RTRIM(XMLAGG(XMLELEMENT(name C, regexp_replace(p.protocol_status,'([[:cntrl:]])','', 'g'))ORDER BY 1), ',' ) ,'</C><C>','/'),'<C>',''),'</C>','') AS protocol_status
                         ,replace(replace(replace(RTRIM(XMLAGG(XMLELEMENT(name C, regexp_replace(p.protocol_approver,'([[:cntrl:]])','', 'g'))ORDER BY 1), ',' ) ,'</C><C>','/'),'<C>',''),'</C>','') AS protocol_approver
                         ,max(p.protocol_date) AS protocol_date
                         ,replace(replace(replace(RTRIM(XMLAGG(XMLELEMENT(name C, regexp_replace(p.protocol_nota,'([[:cntrl:]])','', 'g'))ORDER BY 1), ',' ) ,'</C><C>','/'),'<C>',''),'</C>','') AS protocol_nota
                         ,sum(coalesce(p.protocol_value,0)) protocol_value
                 FROM podl_extended_protocol p
                 where upper(p.protocol_status) not in ('REJEITADO','ELIMINADO')
                          group by p.id_po, p.line_number

What exactly does it do? I have often seen the hack using xmlagg/xmlelement/regexp_replace to do some kind of poor man's unnest/string_agg.

If you tell us, what exactly the goal is, I am confident there is a better solution in Postgres.








[Index of Archives]     [Postgresql Home]     [Postgresql General]     [Postgresql Performance]     [Postgresql PHP]     [Postgresql Jobs]     [PHP Users]     [PHP Databases]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Databases]     [Yosemite Forum]

  Powered by Linux