Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak połączyć wiersze oddzielone spacją w Oracle?

Co zrobisz z tak długim ciągiem?

W każdym razie spójrz na ten przykład; jeśli listagg nie zadziała, xmlagg będzie.

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wyeksportować dużą ilość danych za pomocą programisty sql - Oracle

  2. Błąd:ORA-01704:literał ciągu jest za długi

  3. Klucz obcy odwołujący się do widoku w Oracle

  4. identyfikując lokalizację odpowiednich nazw tns i wysyłając echo do konsoli

  5. Jaka jest różnica między „nie w” a „nie istnieje”?