Выбрать все столбцы из строки Json Array в oracle - PullRequest
0 голосов
/ 01 июля 2019

У меня есть строка массива json, как показано ниже

[{a:100},{a:200},{a:300},{a:400}]

Передача его в качестве входного параметра CLOB в хранимую процедуру

Как я могу получить табличный вывод, как показано ниже в SQL, чтобы я мог массово вставить в таблицу

Value
-----------
100
200
300
400

Я пробовал некоторые примеры, упомянутые в документации Oracle, но не смог найти рабочий пример с вышеупомянутым выводом.

Спасибо

1 Ответ

1 голос
/ 01 июля 2019

Используйте JSON_TABLE:

Установка Oracle :

CREATE TABLE destination ( a NUMBER );

PL / SQL

DECLARE
  your_input_parameter CLOB := '[{a:100},{a:200},{a:300},{a:400}]';
BEGIN
  INSERT INTO destination ( a )
    SELECT a
    FROM   JSON_TABLE(
             your_input_parameter,
             '$[*]'
             COLUMNS a NUMBER PATH '$.a'
           );
END;
/

выход

SELECT * FROM destination;
|   A |
| --: |
| 100 |
| 200 |
| 300 |
| 400 |

дБ <> скрипка здесь

...