Архив рубрики «Ask Tom»

Агрегация (конкатенация) строковых значений полей с группировкой

29.08.2011

Иногда необходимо склеить (сконкатенировать) строковые значения полей возвращаемых запросом в одно значение в соответствии с группировкой по другому полю, сделать это можно как с помощью встроенных Oracle функций так и с помощью своей.

Ниже описание одного способа с использованием встроенной функции wm_concat и ссылки на описание остальных методов.

Быстрый коммит каждой 1000-и записей в цикле, счетчик или функция mod()

12.11.2010

Finding the Fastest Way
Within a large loop, if I want to commit every 1,000 (or million, or billion) records, which is faster—using mod() and then commit, as in:

LOOP
    cnt := cnt + 1;
    IF ( MOD( cnt, 1000 ) ) = 0 THEN          
       COMMIT;
    END IF;
END LOOP;

or setting up a counter, THEN commit, and then counter := 0, as in:

LOOP
   cnt := cnt + 1;
   IF cnt = 1000 THEN        
     COMMIT;
     cnt := 0;
   END IF;
END LOOP;