sql >> Database teknologi >  >> RDS >> Oracle

Sammensæt rækker i CLOB

Som de.hh.holger allerede har påpeget, er LISTAGG MED CLOB? STRING AGGREGATION OVER 4000 KARAKTER MED XMLAGG løser virkelig dette problem.

Jeg har uddybet emnet lidt mere, og dette burde gøre tricket i tilfælde af en rigtig lang streng besked:

SELECT
   table_row_id,
   DBMS_XMLGEN.CONVERT (
     EXTRACT(
       xmltype('<?xml version="1.0"?><document>' ||
               XMLAGG(
                 XMLTYPE('<V>' || DBMS_XMLGEN.CONVERT(data_value)|| '</V>')
                 order by myOrder).getclobval() || '</document>'),
               '/document/V/text()').getclobval(),1) AS data_value
FROM (
   SELECT 1 myOrder, 1 table_row_id,'abcdefg>' data_value FROM dual
   UNION ALL
   SELECT 2, 1 table_row_id,'hijklmn' data_value FROM dual
   UNION ALL
   SELECT 3, 1 table_row_id,'opqrst' data_value FROM dual
   UNION ALL
   SELECT 4, 1 table_row_id,'uvwxyz' data_value FROM dual)
GROUP BY
   table_row_id


  1. opret kolonne til automatisk dato i postgresql

  2. Måling af forespørgselsydeevne:Eksekveringsplan forespørgselsomkostninger vs. brugt tid

  3. Ikke markeret afkrydsningsfelt returnerer null-værdi

  4. Installation af PostgreSQL Client v10 på AWS Amazon Linux (EC2) AMI