我在测试的Oracle数据库中有一个用户电子邮件地址列表,这些电子邮件地址当前都设置为相同的值。我想用唯一的条目替换这些条目,其中混入了许多无效地址和空值。我的表当前看起来像这样,总共约有25万行。(为节省空间,我排除了空条目和无效条目)
+-------------+--------------------+
| employee_id | email |
+-------------+--------------------+
| 1 | test@testemail.com |
| 2 | test@testemail.com |
| 3 | test@testemail.com |
|... |... |
+-------------+--------------------+
Run Code Online (Sandbox Code Playgroud)
我希望它看起来像这样
+-------------+---------------------+
| employee_id | email |
+-------------+---------------------+
| 1 | test1@testemail.com |
| 2 | test2@testemail.com |
| 3 | test3@testemail.com |
|... |... |
+-------------+---------------------+
Run Code Online (Sandbox Code Playgroud)
我编写了以下PL / SQL来进行更改,它可以工作,但是效率很低。我可以使用另一种方法来利用集合处理吗?
感谢您对此的任何帮助。
DECLARE
i number(20);
l_employee_id hr.employees.employee_id%TYPE;
output_query varchar2(1000);
CURSOR c_cursor IS
SELECT employee_id
FROM hr.employees;
PROCEDURE update_sql(id_num IN hr.employees.employee_id%TYPE,
email IN VARCHAR2) IS …Run Code Online (Sandbox Code Playgroud)