Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Создание JSON в Oracle Database 11g / 18 сообщений из 18, страница 1 из 1
07.08.2019, 06:43
    #39846142
Никита А
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание JSON в Oracle Database 11g
Всем привет. Требуется помощь в создании json-а на Oracle Database 11g.
Или нужно научится с нуля делать, или разобраться с готовой процедурой.
Код: 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.
42.
43.
  PROCEDURE json(p_period varchar2, p_modelid number) is
            
    v_res    system.json := system.json(); -- непонятный тип данных и присвоенное значение
    v_l1     system.json_list; -- ??
    v_o      system.json;
    
    v_clob   clob;
  begin
  
  v_l1 := system.json_list();
  
  for i in (какой-то запрос)loop
    v_o:=system.json(); 
    v_o.put('rn', i.rn); -- записываем в v_o, тут вроде ясно
    v_o.put('name', i.name);
    v_o.put('value', i.value);
    v_o.put('prc', i.prc*100);
    v_o.put('prc_lag', i.prc_lag*100);
            
    v_l1.append(v_o.to_json_value); -- тут тоже не ясно 
  end loop;
  
  v_res.put('r_ktg_fact',   v_l1.to_json_value);
  
  v_l1 := system.json_list();
  
  for i in (запрос) loop
    v_o:=system.json();
    v_o.put('name', i.name);
    v_o.put('value', i.value);
    
    v_l1.append(v_o.to_json_value);
  end loop;
  
  v_res.put('r_ktg_plan',   v_l1.to_json_value);
  
  ------------------------------------------------  
  
  dbms_lob.createtemporary(v_clob, true); -- ??
  v_res.to_clob(v_clob, true);                    -- ??
  base.htpclob(v_clob);                             -- ??
    
  end;



Как понять типы дынных: system.json и system.json_list
Присвоение значение в виде функции: system.json() и system.json_list()
...
Рейтинг: 0 / 0
07.08.2019, 07:00
    #39846145
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание JSON в Oracle Database 11g
Никита АКак понять типы дынныхПосмотреть их ddl.
...
Рейтинг: 0 / 0
07.08.2019, 10:47
    #39846209
Никита А
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание JSON в Oracle Database 11g
-2-Посмотреть их ddl.

А можно подробнее пожалуйста.
...
Рейтинг: 0 / 0
07.08.2019, 13:14
    #39846326
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание JSON в Oracle Database 11g
Никита А,

Попробуй расспросить того, кто додумался залить pljson в схему пользователя system.
...
Рейтинг: 0 / 0
09.08.2019, 05:44
    #39847275
Никита А
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание JSON в Oracle Database 11g
В схеме system, в папкe types, нашёл тe самые json типы, буду дальше разбираться.
...
Рейтинг: 0 / 0
12.08.2019, 17:14
    #39848448
SQL*Plus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание JSON в Oracle Database 11g
Никита АТребуется помощь в создании json-а на Oracle Database 11g .
Почему бы не использовать Oracle Database 12с , где JSON уже есть?
...
Рейтинг: 0 / 0
12.08.2019, 17:24
    #39848454
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание JSON в Oracle Database 11g
SQL*PlusНикита АТребуется помощь в создании json-а на Oracle Database 11g .
Почему бы не использовать Oracle Database 12с , где JSON уже есть?
Во-первых, потому что не любой 12с, но только 12.2
Во-вторых, потому что первая реализация новофичи у оракеля традиционно баговая на весь процессор - Vint не даст соврать :)
...
Рейтинг: 0 / 0
12.08.2019, 17:42
    #39848466
SQL*Plus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание JSON в Oracle Database 11g
andrey_anonymousSQL*Plusпропущено...

Почему бы не использовать Oracle Database 12с , где JSON уже есть?
Во-первых, потому что не любой 12с, но только 12.2
Неправда ваша. JSON появился в 12.1.0.2 (August 2015)
https://docs.oracle.com/database/121/NEWFT/title.htm
Oracle® Database.
New Features Guide
12c Release 1 (12.1)
E49322-11
August 2015
1 Oracle Database 12c Release 1 (12.1.0.2) New Features1.9 JSON Support

andrey_anonymousВо-вторых, потому что первая реализация новофичи у оракеля традиционно баговая на весь процессор - Vint не даст соврать :)Конечно не 12.2.0.1 должна лучше работать с JSON.
А терминальный релиз 12.2.0.3 (19с) ещё надежнее...

А привинчивание непонятно чего к базе 11g - это хорошее сертифицированное решение!? :-)
...
Рейтинг: 0 / 0
12.08.2019, 17:52
    #39848470
dmdmdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание JSON в Oracle Database 11g
SQL*PlusА привинчивание непонятно чего к базе 11g - это хорошее сертифицированное решение!? :-)

Для тех, кто не хочет тратить денег на апгрейд - вполне решение.

Есть еще Oracle 18 XE.
...
Рейтинг: 0 / 0
12.08.2019, 19:05
    #39848498
IMNO
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание JSON в Oracle Database 11g
Добрый день.

У меня вопрос.
Если делать разработку на 11g, но версию ставить на продакшен версии 12, то не будет конфликта в ключевых словах между pljson и стандартным оракловым API на 12 версии?
В pljson создаются объекты типа JSON, очень смахивает на ключевое слово.
...
Рейтинг: 0 / 0
12.08.2019, 19:43
    #39848507
IMNO
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание JSON в Oracle Database 11g
Ну и вопрос вдогонку.
Если вставлять русские буквы, то в JSONе оно их преобразует в коды UTF8.

"Ш\u043B\u044E\u043F\u043Aа"

Что-то в исходниках я не могу найти, где задаётся кодировка.
Кто нибудь сталкивался и знает как это исправить?
...
Рейтинг: 0 / 0
12.08.2019, 21:03
    #39848516
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание JSON в Oracle Database 11g
SQL*PlusА привинчивание непонятно чего к базе 11g - это хорошее сертифицированное решение!? Это просто решение. То, чем занимаются все разработчики plsql. При наличии исходников сопровождаемо и самоподдерживаемо.
JSON в оракле сырой не только из-за многочисленных багов, но и из-за непродуманного функционала.
...
Рейтинг: 0 / 0
13.08.2019, 11:02
    #39848668
Lary Denis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание JSON в Oracle Database 11g
SQL*Plus Почему бы не использовать Oracle Database 12с, где JSON уже есть?

Интересно, как это будет выглядеть?

Есть рабочая продуктивная OLTP база, развернутая на Oracle 11g. И тут понадобилось для какой-нибудь интеграции данные отдавать в формате JSON. "SQL*Plus" экстренно собирает всю команду и тревожным голосом говорит, что нужен апгрейд до 12с..
Когда команда отвергает такое предложение, то он мужественно поднимает "рядом" 12с, пишет там процедуру, и on-line из 11 вызывает 12-ку для получения своего злополучного JSON
...
Рейтинг: 0 / 0
13.08.2019, 11:51
    #39848713
IMNO
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание JSON в Oracle Database 11g
Отвечаю на свои же вопросы, если кому нужно будет.

1. Чтобы поменять кодировку нужно в спецификации пакета pljson_printer присвоить переменной ascii_output значение fasle, по умолчанию true.

2. Поставил либу на оракл 12.1.0.2. Либа встала без ошибок. Попробовал собрать JSON. Вроде работает. JSON собирает. Ошибок нет.
...
Рейтинг: 0 / 0
13.08.2019, 11:58
    #39848718
dmdmdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание JSON в Oracle Database 11g
Lary Denisон мужественно поднимает "рядом" 12с, пишет там процедуру, и on-line из 11 вызывает 12-ку для получения своего злополучного JSON

Если отбросить ненужный сарказм, вполне себе решение.
...
Рейтинг: 0 / 0
13.08.2019, 12:10
    #39848728
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание JSON в Oracle Database 11g
dmdmdm,

Надеюсь, это был ненужный сарказм?
...
Рейтинг: 0 / 0
13.08.2019, 16:20
    #39848879
SQL*Plus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание JSON в Oracle Database 11g
Lary DenisSQL*Plus Почему бы не использовать Oracle Database 12с, где JSON уже есть?Интересно, как это будет выглядеть?

Есть рабочая продуктивная OLTP база, развернутая на Oracle 11g.
И тут понадобилось для какой-нибудь интеграции данные отдавать в формате JSON.Убедительное разъяснение.
Спасибо!
...
Рейтинг: 0 / 0
13.08.2019, 16:23
    #39848882
Sayan Malakshinov
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание JSON в Oracle Database 11g
Lary DenisЕсть рабочая продуктивная OLTP база, развернутая на Oracle 11g.Lary Denisговорит, что нужен апгрейд до 12с..вообще-то давно пора бы.

Lary Denisкоманда отвергает такое предложениену и команда...
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Создание JSON в Oracle Database 11g / 18 сообщений из 18, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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