Sql 如何在oracle数据库中执行批量更新集
我有一个对象数组,其中包含的数据,例如:[{name:“name”,“id”:123,brNo:456},…],我希望通过更新多行数据,将其放入oracle数据库,如下所示:Sql 如何在oracle数据库中执行批量更新集,sql,oracle,Sql,Oracle,我有一个对象数组,其中包含的数据,例如:[{name:“name”,“id”:123,brNo:456},…],我希望通过更新多行数据,将其放入oracle数据库,如下所示: UPDATE STUDENT_BASE SET NAME = :name WHERE ID = :id AND B
UPDATE STUDENT_BASE
SET NAME = :name
WHERE ID = :id
AND BR_NO = :brNo
我想做一些循环,但不确定如何做。如果您使用的是Oracle 18或更高版本,您可以使用该函数将json信息查询到集合中
DECLARE
TYPE student_base_rec IS RECORD
(
name student_base.name%TYPE,
id student_base.id%TYPE,
brno student_base.brno%TYPE
);
TYPE student_base_t IS TABLE OF student_base_rec;
l_json CLOB
:= '[{name: "new_name", "id": 123, brNo: 456}, {name: "new_name2", "id": 111, brNo: 222}]';
l_student_base student_base_t;
BEGIN
SELECT name, id, brno
BULK COLLECT INTO l_student_base
FROM JSON_TABLE (l_json,
'$[*]'
COLUMNS (name PATH '$.name', id PATH '$.id', brno PATH '$.brNo'));
FORALL i IN 1 .. l_student_base.COUNT
UPDATE student_base
SET name = l_student_base (i).name
WHERE id = l_student_base (i).id AND brno = l_student_base (i).brno;
END;
阵列在哪里?采用哪种格式?Oracle数据库的版本是什么?