Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Преобразование json в таблицу используя json_value / 4 сообщений из 4, страница 1 из 1
14.03.2021, 00:57
    #40053254
gfhfyjz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование json в таблицу используя json_value
Нужно преобразовать json в таблицу (Oracle 19c)
таблица

Код: plsql
1.
2.
3.
4.
5.
6.
CREATE TABLE Test_json
(
    ID      NUMBER (22),
    TYPE    NUMBER (22),
    NAME    VARCHAR2 (100)
);




есть тип

Код: plsql
1.
2.
3.
4.
5.
6.
CREATE OR REPLACE TYPE T_Test_json AS OBJECT
(
    ID NUMBER (22),
    TYPE NUMBER (22),
    NAME VARCHAR2 (100)
);




Пытаюсь выполнить insert
Код: plsql
1.
2.
3.
4.
5.
insert into Test_json
select js.* 
    from (SELECT JSON_value('{"ID":-1,"TYPE":3,"NAME":"jsontest"}', '$' RETURNING T_Test_json) AS js 
            FROM DUAL
            )



Получаю ошибку ORA-00947. Понимаю что получаем не совсем столбцы, но как преобразовать пока не понял.
Таблица большая и выписывать каждый столбец не хочется, хотелось бы через тип.
Может кто-то сталкивался с данной проблемой, подскажите плиз как решить. Может есть альтернативное решение.

Заранее спасибо.
...
Рейтинг: 0 / 0
14.03.2021, 08:51
    #40053268
SenjorPomidor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование json в таблицу используя json_value
RETURNING
You can use JSON_value_return_type to specify the following data types:
VARCHAR2[(size [BYTE,CHAR])]
NUMBER[(precision [, scale])]
...
Рейтинг: 0 / 0
14.03.2021, 14:29
    #40053299
SeaGate
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование json в таблицу используя json_value
gfhfyjzТаблица большая и выписывать каждый столбец не хочется, хотелось бы через тип.
Может кто-то сталкивался с данной проблемой, подскажите плиз как решить. Может есть альтернативное решение.
Чз object views.
Код: 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.
SQL> CREATE TABLE Test_json
  2  (
  3      ID      NUMBER (22),
  4      TYPE    NUMBER (22),
  5      NAME    VARCHAR2 (100)
  6  );

Table created.

SQL>
SQL>
SQL> CREATE OR REPLACE TYPE T_Test_json AS OBJECT
  2  (
  3      ID NUMBER (22),
  4      TYPE NUMBER (22),
  5      NAME VARCHAR2 (100)
  6  );
  7  /

Type created.

SQL>
SQL> create or replace view test_json_view of t_test_json
  2    with object identifier (id) as
  3  select *
  4    from test_json;

View created.

SQL>
SQL> insert into Test_json_view
  2  select js
  3      from (SELECT JSON_value('{"ID":-1,"TYPE":3,"NAME":"jsontest"}', '$' RETURNING T_Test_json) AS js
  4              FROM DUAL
  5              )
  6  /

1 row created.

SQL>
SQL> select *
  2    from test_json;

        ID       TYPE NAME
---------- ---------- ----------
        -1          3 jsontest


SenjorPomidorRETURNING
You can use JSON_value_return_type to specify the following data types:
VARCHAR2[(size [BYTE,CHAR])]
NUMBER[(precision [, scale])]
JSON_value_return_type ::=
JSON_value_return_object_instanceIf JSON_VALUE targets a JSON object, and you specify a user-defined SQL object type as the return type, then JSON_VALUE returns an instance of that object type in object_type_name.
...
Рейтинг: 0 / 0
14.03.2021, 16:28
    #40053319
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование json в таблицу используя json_value
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
insert
  into test_json
  select  *
    from  table(
                (
                 select  collect(json_value('{"ID":-1,"TYPE":3,"NAME":"jsontest"}', '$' returning t_test_json))
                   from  dual
                )
               )
/

1 row created.

SQL> select  *
  2    from  test_json
  3  /

        ID       TYPE NAME
---------- ---------- ----------
        -1          3 jsontest

SQL>



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


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