sql >> Database teknologi >  >> RDS >> Oracle

Oracle-funktion:Repliker wm_concat

Får du en fejlmeddelelse, når du bruger wm_concat? I modsætning til funktioner som to_char, ejes det af wmsys, og du skal muligvis bruge wmsys.wm_concat for at bruge det. (medmindre du opretter de nødvendige synonymer selvfølgelig).

Nu til det egentlige spørgsmål,

Denne teknik kaldes strengaggregering.

Du kan finde en masse andre alternativer her.

http://www.oracle-base.com/articles/ 10g/StringAggregationTechniques.php For andre metoder, søg efter "stragg" på http://asktom.oracle.com Et andet nyttigt link:http://www.orafaq.com/node/2290

Dette er nok den mest brugte. Mange teams skriver deres egne brugerdefinerede funktioner, som mere eller mindre gør det samme.

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

mens denne løsning virker til varchar2 og nummer, kan den bedste generiske løsning bygges ved hjælp af Oracle ODCIAggregate-grænsefladen.

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

Implementering af samme er på det første link ovenfor på www.oracle-base.com



  1. './mysql/user.MYD' ikke fundet (Fejlkode:2 - Ingen sådan fil eller mappe)

  2. Parsing af et separat PHP-array i Javascript

  3. Mysql LIKE-klausul og separate ord i et felt

  4. script til at konvertere mysql dump sql-fil til format, der kan importeres til sqlite3 db