powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Помогите загрузить JSON
3 сообщений из 3, страница 1 из 1
Помогите загрузить JSON
    #39480893
Титов Артем
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет.

Возникла сложность с загрузкой JSON при помощи серверной процедуры.

Сами данные получаются по ссылке: http://www.ccredproject.com/stock/market_orders.php?market=BTC-ETH

Данные в result из набора сами делятся на два набора: buy и sell.
Процедура работает, когда внутри result больше нет наборов.

Что-то я неверно в коде написал. Помогите плз.

Код: 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.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
 PROCEDURE PRC_GET_MARKETORDERS_DATA(IN_MARKET_NAME IN VARCHAR2,
                                      IN_ORDERS_LIST IN CLOB) AS
    CDATA  CLOB;
    VAR_1  CLOB := IN_ORDERS_LIST;
    v_json json;
    --  v_array         json_list;
    v_array_1       json_list;
    v_array_2       json_list;
    v_array_element json;
  BEGIN
    execute immediate 'truncate table BIT_MARKETORDERS_TBL';
    DBMS_LOB.CREATETEMPORARY(CDATA, FALSE);
    CDATA := VAR_1;
  
    v_json := json(CDATA);
  
    --v_array := json_list(v_json.get('result'));
  
    v_array_1 := json_list(v_json.get('buy'));
    v_array_2 := json_list(v_json.get('sell'));
  
    for v_i in 1 .. v_array_1.count loop
      v_array_element := json(v_array_1.get(v_i));
      begin
        INSERT INTO BIT_MARKETORDERS_TBL
          (MARKETNAME, ORDERTYPE, QUANTITY, RATE)
        VALUES
          (IN_MARKET_NAME,
           1,
           v_array_element.get('Quantity').get_number(),
           v_array_element.get('Rate').get_number());
      exception
        when others then
          raise_application_error(-20001,
                                  'Ошибка сохранения JSON. Проверьте данные по покупке');
      end;
    end loop;
  
    for v_i in 1 .. v_array_2.count loop
      v_array_element := json(v_array_2.get(v_i));
      begin
        INSERT INTO BIT_MARKETORDERS_TBL
          (MARKETNAME, ORDERTYPE, QUANTITY, RATE)
        VALUES
          (IN_MARKET_NAME,
           2,
           v_array_element.get('Quantity').get_number(),
           v_array_element.get('Rate').get_number());
      exception
        when others then
          raise_application_error(-20001,
                                  'Ошибка сохранения JSON. Проверьте данные по продаже');
      end;
    end loop;
  
    DBMS_LOB.freetemporary(CDATA);
    COMMIT;
  END PRC_GET_MARKETORDERS_DATA;
...
Рейтинг: 0 / 0
Помогите загрузить JSON
    #39481897
dba123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Титов Артем,

1) Уберите это из кода.
Вам, надеюсь, не доплачивают за сокрытие от бизнеса реальных ошибок.

[src oracle]
exception
when others then
raise_application_error(-20001,
'Ошибка сохранения JSON. Проверьте данные по продаже');
[src]
...
Рейтинг: 0 / 0
Помогите загрузить JSON
    #39482930
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Титов АртемСами данные получаются по ссылке

Конечно же все ломанулись загружать что-либо по ссылке.

Приведи пример данных, описание ошибки, ddl таблиц и т.п.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Помогите загрузить JSON
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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