sql >> データベース >  >> RDS >> Oracle

行をCLOBに連結します

    de.hh.holgerがすでに指摘しているように、 LISTAGG WITH CLOB? XMLAGGで4000文字を超える文字列集約 確かにこの問題を解決します。

    この件についてもう少し詳しく説明しましたが、文字列メッセージが非常に長い場合は、これでうまくいくはずです。

    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. ループせずにphpとmysqlを使用してスコアテーブルから誰かの「ランク」を取得する最善の方法

    2. テーブルからすべてのOracleVARRAYの要素の数を数える方法は?

    3. android listviewは、アプリを閉じずにデータを更新/更新します

    4. 文字列の最初または最後の文字である場合にのみ、文字列から特定の文字を削除する方法。