Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Bagaimana saya bisa mengembalikan string CSV dari tipe tabel PL/SQL di Oracle

Tanpa masuk ke pertanyaan- mengapa Anda menggunakan tipe tabel dan bukan tabel (atau tabel sementara), Anda dapat melakukannya seperti ini:

declare
  my_table varTableType;
  i varchar2(32767);
begin
  my_table := new
              varTableType('bbbb', 'ccca', 'ddda', 'eee', 'fffa', 'gggg');

  select trim(xmlagg(xmlelement(e, column_value || ','))
              .extract('//text()'))
    into i
    from table(my_table)
   where column_value like '%a';

  dbms_output.put_line(i);

end;

Ada lebih banyak cara untuk menggabungkan baris- WM_CONCAT (jika diaktifkan) atau LISTAGG (sejak 11g R2) tetapi ide dasar dari

select column_value 
from table(my_table) 
where column_value like '%a';

tinggal

Ada cara lain tanpa sql:

declare
  my_table varTableType;
  i varchar2(32767);
begin
  my_table := new
              varTableType('bbbb', 'ccca', 'ddda', 'eee', 'fffa', 'gggg');

  FOR j IN my_table.first .. my_table.last LOOP

     IF my_table(j) like '%a' THEN
        i := i || my_table(j);
     END IF;

  END LOOP;

  dbms_output.put_line(i);

end;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Buat tabel - Kesalahan SQL:ORA-00905:kata kunci hilang

  2. Masalah saat menginstal Oracle Database Express Edition 11g

  3. Oracle SQL - Mengubah baris menjadi kolom secara dinamis

  4. Cara menggunakan kolom terhitung untuk menghitung kolom lain dalam tampilan yang sama

  5. Bagaimana cara menambahkan 'ON DELETE CASCADE' dalam pernyataan ALTER TABLE