Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Làm thế nào để nối các hàng được phân tách bằng dấu cách trong oracle?

Bạn sẽ làm gì với một chuỗi dài như vậy?

Dù sao, hãy xem ví dụ này; if listagg sẽ không hoạt động, xmlagg sẽ.

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. 12c Data Redaction

  2. Giải nén Oracle từ giá trị cắt xml

  3. PS / SQL của Oracle có yêu cầu thứ tự cụ thể của các mục nhập trong phần `khai báo` của một khối không

  4. Sự khác biệt giữa chỉ số chính và chỉ số phụ chính xác là gì?

  5. Sử dụng NẾU TỒN TẠI (CHỌN ...) trong trình kích hoạt CHÈN TRƯỚC (Oracle)