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

Funkcja Oracle:replikacja wm_concat

Czy podczas używania wm_concat pojawia się komunikat o błędzie? W przeciwieństwie do funkcji takich jak to_char, należy do wmsys i może być konieczne użycie pliku wmsys.wm_concat. (o ile oczywiście nie stworzysz niezbędnych synonimów).

Teraz właściwe pytanie,

Ta technika nazywa się agregacją ciągów.

Możesz znaleźć tutaj wiele innych alternatyw.

http://www.oracle-base.com/articles/ 10g/StringAggregationTechniques.php W przypadku innych metod wyszukaj „stragg” na http://asktom.oracle.com Kolejny przydatny link :http://www.orafaq.com/node/2290

Jest to prawdopodobnie najczęściej używany. Wiele zespołów tworzy własne niestandardowe funkcje, które mniej więcej robią to samo.

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

podczas gdy to rozwiązanie działa dla varchar2 i number, najlepsze ogólne rozwiązanie można zbudować przy użyciu interfejsu Oracle ODCIAggregate.

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

Implementacja tego samego znajduje się pod pierwszym linkiem powyżej na 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. Po wykonaniu migracji z Oracle do SQL Server straciłem bazę danych SysDB. Jak mogę to odtworzyć?

  2. Zapytanie sparametryzowane Oracle w c#

  3. Zapytanie o wyświetlenie wyjścia w poziomie

  4. używając pl/sql jak otworzyć katalog?

  5. Instalacja Oracle Grid — brakujące pakiety compat-libcap1-1.10 i inne