К основному контенту

Сообщения

Сообщения за апрель, 2017

Firebird various delimiters for GET_WORDS

Использование процедуры GET_WORDS для разных разделителей можно в таком виде: select WORD from GET_WORDS((select list(WORD, ';') from GET_WORDS((select list(WORD) from GET_WORDS('12 7712 12,12;12 333556', ' ')), ',')), ';') где используются последовательно несколько разделителей ' ', ',' и ';' .

Firebird get words

Задался вопросом сохранения настроек через запятую в одном поле с последующим разбором этой строки в самом Firebird'е. Вот что получилось. Меня устраивает. Может кому поможет. create or alter procedure GET_WORDS (     INSTR varchar(30000),     DELIMITER varchar(200) = ' ') returns (     NUMBER integer,     WORD varchar(30000)) as declare variable I integer; declare variable J integer; begin   NUMBER = 1;   I = 1;   J = position(:DELIMITER, INSTR, I);   if (J > I) then   begin     WORD = substring(INSTR from I for J - I);     while (WORD is not null) do     begin       if (char_length(trim(WORD)) > 0) then       begin         WORD = trim(WORD);         suspend;         NUMBER = NUMBER + 1;       end       I = J + char_length(DELIMITER); ...