Oracle
 sql >> база данни >  >> RDS >> Oracle

Функция на Oracle:Репликиране на wm_concat

Получавате ли съобщение за грешка, когато използвате wm_concat? За разлика от функции като to_char, тя е собственост на wmsys и може да се наложи да използвате wmsys.wm_concat, за да я използвате. (освен ако не създадете необходимите синоними, разбира се).

Сега за същинския въпрос,

Тази техника се нарича агрегиране на низове.

Можете да намерите много други алтернативи тук.

http://www.oracle-base.com/articles/ 10g/StringAggregationTechniques.php За други методи потърсете „stragg“ на http://asktom.oracle.com Друга полезна връзка:http://www.orafaq.com/node/2290

Това е може би най-използваният. Много екипи пишат свои собствени персонализирани функции, които повече или по-малко правят същото.

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

докато това решение работи за varchar2 и number, най-доброто генерично решение може да бъде изградено с помощта на интерфейс Oracle ODCIAggregate.

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

Внедряването за същото е на първата връзка по-горе на 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. Приложение срещу резидентен пул за свързване на база данни

  2. Най-добрата заявка за достигане на индекс на Oracle със свързвания и нулеви стойности

  3. Приложението се срива при разговор с Oracle, освен ако изпълнимият път не съдържа интервали

  4. Как да проверя версията на JDK в Oracle?

  5. Как да направите заявка за данни на hugeblob