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

Fungsi Oracle:Replikasi wm_concat

Apakah Anda mendapatkan pesan kesalahan saat menggunakan wm_concat? Tidak seperti fungsi seperti to_char, ini dimiliki oleh wmsys dan Anda mungkin perlu menggunakan wmsys.wm_concat untuk menggunakannya. (kecuali jika Anda membuat sinonim yang diperlukan tentunya).

Sekarang untuk pertanyaan sebenarnya,

Teknik ini disebut agregasi string.

Anda dapat menemukan banyak alternatif lain di sini.

http://www.Oracle-base.com/articles/ 10g/StringAggregationTechniques.php Untuk metode lain, Cari "stragg" di http://asktom.oracle.com Tautan bermanfaat lainnya :http://www.orafaq.com/node/2290

Ini mungkin yang paling sering digunakan. Banyak tim menulis fungsi kustom mereka sendiri yang kurang lebih melakukan hal yang sama.

CREATE OR REPLACE FUNCTION get_employees (p_deptno  in  emp.deptno%TYPE)
  RETURN VARCHAR2
IS
  l_text  VARCHAR2(32767) := NULL;
BEGIN
  FOR cur_rec IN (SELECT ename FROM emp WHERE deptno = p_deptno) LOOP
    l_text := l_text || ',' || cur_rec.ename;
  END LOOP;
  RETURN LTRIM(l_text, ',');
END;
/
SHOW ERRORS

sementara solusi ini bekerja untuk varchar2 dan nomor, solusi generik terbaik dapat dibangun menggunakan antarmuka Oracle ODCIAggregate.

http://download-west .oracle.com/docs/cd/B14117_01/appdev.101/b10800/dciaggfns.htm#sthref462

Implementasi untuk hal yang sama ada di tautan pertama di atas di www.Oracle-base.com



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pengambilan sampel dari Oracle, Perlu jumlah hasil yang tepat (Sample Clause)

  2. Tabel Sementara Global

  3. Apakah ada ekspresi CASE seperti itu di JPQL?

  4. Memfilter menurut hari dalam seminggu

  5. Kerangka Entitas dan Oracle