简体   繁体   English

SQL 开发人员 ORACLE 脚本

[英]SQL Developer ORACLE SCRPT

I have a table with 2 columns我有一个有 2 列的表

Common name通用名称 usr_name用户名
ABC 123 ABC 123 123 123
CDE 123 CDE 123 XYZ 123 XYZ 123

I'm trying to find a PL SQL script that would go through all the users in the common name column and if the Common name not equal usr_name then it updates the usr name and makes it the same as common name我正在尝试找到一个 PL SQL 脚本,它将遍历公用名列中的所有用户,如果公用名不等于 usr_name,那么它会更新 usr 名称并使其与公用名相同

should look like this应该是这样的

if common name != usr name // update usr_name == common name if common name != usr name // 更新 usr_name == common name

You do not need PL/SQL, use an UPDATE SQL statement and put your logic in the WHERE clause:您不需要 PL/SQL,使用UPDATE SQL 语句并将您的逻辑放在WHERE子句中:

UPDATE table_name
SET   usr_name = common_name
WHERE usr_name != common_name
OR    (usr_name IS NOT NULL AND common_name IS NULL)
OR    (usr_name IS NULL AND common_name IS NOT NULL)

Which, for the sample data:其中,对于样本数据:

CREATE TABLE table_name (Common_name, usr_name) AS
SELECT 'ABC 123', '123' FROM DUAL UNION ALL
SELECT 'CDE 123', 'XYZ 123' FROM DUAL

Then, after the update the table contains:然后,更新后的表包含:

COMMON_NAME COMMON_NAME USR_NAME USR_NAME
ABC 123 ABC 123 ABC 123 ABC 123
CDE 123 CDE 123 CDE 123 CDE 123

db<>fiddle here db<> 在这里摆弄

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM