从oracle

时间:2019-07-01 08:43:06

标签: json plsql oracle12c

我有一个如下的json数组字符串

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

将其作为CLOB输入参数传递给存储过程

如何在sql中获得如下表格格式的输出,以便可以批量插入表中

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

我已经尝试了oracle docs中提到的一些示例,但是找不到上述输出的有效示例。

谢谢

1 个答案:

答案 0 :(得分:1)

使用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 |

db <>提琴here