小编Dav*_*ner的帖子

按照设置而不是迭代方法重写表更新

我在测试的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)

oracle plsql

1
推荐指数
1
解决办法
68
查看次数

标签 统计

oracle ×1

plsql ×1