powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Преобразование json в таблицу используя json_value
4 сообщений из 4, страница 1 из 1
Преобразование json в таблицу используя json_value
    #40053254
gfhfyjz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нужно преобразовать 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
Преобразование json в таблицу используя json_value
    #40053268
SenjorPomidor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
RETURNING
You can use JSON_value_return_type to specify the following data types:
VARCHAR2[(size [BYTE,CHAR])]
NUMBER[(precision [, scale])]
...
Рейтинг: 0 / 0
Преобразование json в таблицу используя json_value
    #40053299
Фотография SeaGate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Преобразование json в таблицу используя json_value
    #40053319
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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
4 сообщений из 4, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Преобразование json в таблицу используя json_value
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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