我不明白我在pl/sql 12 c中遇到的问题,代码如下:
MERGE INTO ident_utilisateur iu
USING users us
ON ((regexp_substr (iu.LOGIN, '[^_]+', 1)) = TO_CHAR(us.cnbf))
WHEN MATCHED THEN
UPDATE
SET
iu.login = (regexp_substr (iu.login, '[^_]+', 1)),
iu.email_contact = (regexp_substr (iu.email_contact, '[^_]+', 1)),
iu.valide = 1,
iu.date_fin = ''
WHERE iu.login LIKE '%_LOG_%'
AND iu.login NOT LIKE '%AUT_LOG%'
(iu.LOGIN实际上看起来像“169_LOG_04/10/2022”,正则表达式输出“169”与us.cnbf看起来像“169”)
此代码应为error Columns referenced in the ON Clause cannot be update IU.LOGIN
供参考:此代码可以工作,但它不能JOIN用户表
update ident_utilisateur iu
set
iu.login = (regexp_substr (iu.login, '[^_]+', 1)),
iu.email_contact = (regexp_substr (iu.email_contact, '[^_]+', 1)),
iu.valide = 1,
iu.date_fin = ''
--FROM ident_utilisateur iu
--INNER JOIN users us ON (regexp_substr (iu.login, '[^_]+', 1)) = TO_CHAR(us.CNBF)
WHERE iu.login LIKE '%_LOG_%'
AND iu.login NOT LIKE '%AUT_LOG%'
如果我取消注解From和INNER行,它将输出SQL command not properly ended
真的谢谢你的帮助!
特里
1条答案
按热度按时间xoshrz7s1#
试试看: