首页 > 解决方案 > 如何使用 3 个服务提供商更新电子邮件地址 - ORACLE

问题描述

我有一个表'EMPLOYEES',其中用户的电子邮件地址不正确。

在此处输入图像描述

我需要使用 gmail、yahoo、outlook 等 3 个服务提供商更新电子邮件地址。我有大量的记录,所以我不能一一做。我怎样才能编写该查询来一次更新它们。?

在电子邮件列中,每条记录必须有一个有效的电子邮件地址

我的电子邮件字段表中的第一条记录是 sking。更新后它应该变成 jusking@yahoo.com 它应该只占用一个域而不是全部 3 个域。

第二条记录应该是 nkochhar@gmail.com 第三方 ledhaan@yahoo.com 因此它应该与每条记录一起,必须添加三个域之一以使其成为有效的电子邮件地址。

sking@gmail.com
nkochhar@yahoo.com
ldehaan@outlook.com
name4@yahoo.com
name5@outlook.com
name6@yahoo.com
name7@yahoo.com
name8@outlook.com
name@gmail.com
name@gmail.com
...

我在谷歌上找到了这个,但我不知道如何将它应用到我需要的东西:

for (int i = 0; i <rowsCount; i ++) {
   cv.put (column2, columnValue [1]);
   cv.put (column3, columnValue [1]);
   db.update (tableName, cv, null, null);
}

我试图这样做,但它显示一个错误:

在此处输入图像描述

我需要帮助,我是这方面的初学者:(

标签: oracleoracle-sqldeveloper

解决方案


要使用 @outlook.com、@yahoo.com 或 @gmail.com 随机更新电子邮件字段,请使用以下查询:

update employees
set email= (case when   mod(employee_id,3)=0 then concat(email,'@outlook.com') when mod(employee_id ,2)=1 then  concat(email,'@yahoo.com') else concat(email, '@gmail.com') end);

在 MySql 和 Oracle 数据库中,此查询都可以正常工作。


推荐阅读