Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / опция transactional не работает для json-индексов у одного меня? / 6 сообщений из 6, страница 1 из 1
25.06.2017, 17:24
    #39477284
Shtock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опция transactional не работает для json-индексов у одного меня?
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
create   table json_storage (
id number not null,
created_dtm timestamp not null,
json_data blob
);

CREATE  INDEX json_fts_idx ON json_storage (json_data)
  INDEXTYPE IS CTXSYS.CONTEXT
PARAMETERS ('section group CTXSYS.JSON_SECTION_GROUP SYNC (EVERY "SYSDATE+1/24") transactional') ;

insert into json_storage(id, created_dtm, json_data)
   values(
   -1000,
   systimestamp,
   utl_raw.cast_to_raw('
                         {"menu": {
                        "id": "' || '444444444'  ||'",
                        "value": "File",
                        "popup": {
                          "menuitem": [
                            {"value": "New", "onclick": "CreateNewDoc()"},
                            {"value": "Open", "onclick": "OpenDoc()"},
                            {"value": "Close", "onclick": "CloseDoc()"}
                          ]
                        }
                      }}
                       '
                    )
   );

 select JSON_VALUE(json_data, '$.menu.id')
from json_storage
where json_textcontains(json_data, '$.menu.id', '4444444449') ;

select JSON_VALUE(json_data, '$.menu.id')
from json_storage
where contains(json_data, '4444444449 INPATCH(/menu/id)') >0;

select JSON_VALUE(json_data, '$.menu.id')
from json_storage
where contains(json_data, '4444444449') >0;
...
Рейтинг: 0 / 0
25.06.2017, 17:27
    #39477285
Shtock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опция transactional не работает для json-индексов у одного меня?
итого первые 2 select ничего не видят, а contains в чистом виде возвращает данные, т.е. в нём transactional работает. Почему тогда не работает для первых 2-х? Ведь contains сам по себе работает на context индексе и раз он возвращает что надо, значит transactional именно для него работает. Выходит как-то криво работают секции.

как только делаю

Код: plsql
1.
2.
3.
 begin
    ctx_ddl.SYNC_INDEX('PERSO.json_fts_idx'); --schema inside :)
   end;



работают и первые 2.

Подскажите куда копать.
...
Рейтинг: 0 / 0
25.06.2017, 17:30
    #39477288
Shtock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опция transactional не работает для json-индексов у одного меня?
Код: plsql
1.
2.
3.
select JSON_VALUE(json_data, '$.menu.id')
from json_storage
where contains(json_data, '4444444449 INPACH(/menu/id)') >0;

- вот так второй, была опечатка
...
Рейтинг: 0 / 0
25.06.2017, 19:33
    #39477307
MaximaXXL
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опция transactional не работает для json-индексов у одного меня?
Shtock,

INPATH - знаю
INPACH - не знаю, похоже и Oracle не очень
...
Рейтинг: 0 / 0
25.06.2017, 19:41
    #39477311
MaximaXXL
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опция transactional не работает для json-индексов у одного меня?
...
Рейтинг: 0 / 0
25.06.2017, 20:07
    #39477316
Shtock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опция transactional не работает для json-индексов у одного меня?
про него мне читать меньше всего интересно :)
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / опция transactional не работает для json-индексов у одного меня? / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]