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

Oracleでスペースで区切られた行を連結するにはどうすればよいですか?

    このような長い文字列をどうしますか?

    とにかく、この例を見てください。 listaggの場合 動作しません、xmlagg

    SQL> create table test (id, col) as
      2  select rownum, a.column_name
      3  from user_tab_columns a cross join user_tab_columns b
      4  cross join user_tab_columns c;
    
    Table created.
    
    SQL> select count(*) from test;
    
      COUNT(*)
    ----------
          9261
    
    SQL> select listagg(col, ' ') within group (order by null) result from test;
    select listagg(col, ' ') within group (order by null) result from test
                                                                      *
    ERROR at line 1:
    ORA-01489: result of string concatenation is too long
    
    
    SQL> select length(xmlagg(xmlelement(e, col, ' ').extract('//text()') order by null).GetClobVal()) length_result
      2  from test;
    
    LENGTH_RESULT
    -------------
            51156
    
    SQL>
    


    1. ジャロウィンクラー関数:同じスコアが非常に類似した非常に異なる単語に一致するのはなぜですか?

    2. 文字列が数字で終わるmysql

    3. OracleのORA_HASHはランダムですか?

    4. 1年以内の月ごとのカウントを取得するPostgresqlクエリ