要向表中批量添加数据,可以使用PL/SQL的FORALL语句。FORALL语句可以将多个数据行一次性插入到表中,可以提高插入数据的效率。
以下是一个示例代码,演示如何使用FORALL语句批量添加数据:
DECLARE
TYPE emp_type IS TABLE OF employees%ROWTYPE;
emp_data emp_type;
BEGIN
-- 初始化emp_data数组
emp_data := emp_type();
-- 添加数据到emp_data数组
emp_data.EXTEND(3); -- 扩展数组大小
emp_data(1).employee_id := 1001;
emp_data(1).first_name := 'John';
emp_data(1).last_name := 'Doe';
emp_data(2).employee_id := 1002;
emp_data(2).first_name := 'Jane';
emp_data(2).last_name := 'Smith';
emp_data(3).employee_id := 1003;
emp_data(3).first_name := 'Mike';
emp_data(3).last_name := 'Johnson';
-- 使用FORALL语句批量插入数据
FORALL i IN 1..emp_data.COUNT
INSERT INTO employees(employee_id, first_name, last_name)
VALUES(emp_data(i).employee_id, emp_data(i).first_name, emp_data(i).last_name);
COMMIT;
DBMS_OUTPUT.PUT_LINE('数据添加成功');
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('数据添加失败:' || SQLERRM);
END;
/
在上面的代码中,首先定义了一个emp_type类型,用于存储要插入的数据。然后,通过扩展emp_data数组的大小,初始化了emp_data数组,并设置了要插入的数据。最后,使用FORALL语句将数据一次性插入到employees表中,并在最后进行提交操作。
注意:在使用FORALL语句插入数据时,要确保插入的数据与目标表的结构一致,并且数据的顺序与表中列的顺序一致。