Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Informix Новый топик    Ответить
 Ищу токенайзер на SPL  [new]
cpr
Member

Откуда: Rostov-on-Don
Сообщений: 738
Кому нибудь попадались толковые реализации?
9 сен 19, 19:51    [21967238]     Ответить | Цитировать Сообщить модератору
 Re: Ищу токенайзер на SPL  [new]
cpr
Member

Откуда: Rostov-on-Don
Сообщений: 738
Попробовал сам, собственно вот что получилось

create function ssplit3 (
plist char(30267),
pd SET (char(1) not null)
)
returning LIST (lvarchar(30267) not null);
define i,first,last int;
define ret_list LIST (lvarchar(30267) not null);
define ret_str lvarchar(30267);
let plist = nvl(plist,'');
let first,last=1,1;
for i=1 to length(trim(plist))
if(substr(plist,i,1) in pd) then
let ret_str=trim(substr(plist,first,i-first));
insert into table (ret_list) values (ret_str);
let first=i+1;
end if
end for
let ret_str=trim(substr(plist,first,i-first));
insert into table (ret_list) values (ret_str);
return ret_list;
end function;
12 сен 19, 13:35    [21969431]     Ответить | Цитировать Сообщить модератору
 Re: Ищу токенайзер на SPL  [new]
Выбегалло
Member

Откуда: Scottsdale, AZ, USA
Сообщений: 3762
cpr,

смотри в сторону JSON/BSON .

Имеется запись JSON
{ "person" : {
"givenname" : "Jim",
"surname" : "Flynn",
"age" : 29,
"cars" : [ "dodge", "olds" ] }}



drop table if exists tt1;
create table tt1 (col1 int,
col2 bson);


insert into tt1 values (1, '{ "person" : { "givenname" : "Jim", "surname" : "Flynn", "age" : 29, "cars" : [ "dodge", "olds" ] }}'::JSON)

select col1, BSON_VALUE_LVARCHAR(col3, "person.givenname") from tt1 where col1 = 1
19 сен 19, 00:53    [21973769]     Ответить | Цитировать Сообщить модератору
Все форумы / Informix Ответить