更新 initcap 和 upper 记录的代码

Code to update records for both initcap and upper

我正在尝试更新同时包含 initcap 和大写字母的记录。例如:Stages Home Health LLC;达娜灰

它同时具有 Initcap "Stages" 和 Upper 即 "LLC"

我试过使用 and with 一个 where 子句,但没有得到所需的结果

select bbl_id, entity_name 来自 bbl_dq_test 其中 entity_name =

UPPER (ENTITY_NAME) AND ENTITY_NAME = INITCAP (ENTITY_NAME);

但我正在寻找类似于

的内容

更新bbl_dq_test一个 设置 Text_field_format = 'BOTH' where entity_name = (一个把Initcap和Upper一起找的子句)

select bbl_id, entity_name 来自 bbl_dq_test 其中 entity_name =

UPPER (ENTITY_NAME) AND ENTITY_NAME = INITCAP (ENTITY_NAME);

只有 returns 个数字。

REGEXP_LIKE 在这里可能会有帮助:

下面的查询是一个起点。可能需要调整正则表达式模式以确保它们涵盖所有需要的情况 - 并考虑评论者在原始 post 中提到的输入值。

SELECT *
  FROM  bbl_dq_test
  WHERE REGEXP_LIKE(entity_name, '(^[A-Z][a-z]| [A-Z][a-z])')
  AND REGEXP_LIKE(entity_name, '(^[A-Z]+ | [A-Z]+ | [A-Z]+$)');

参考: https://docs.oracle.com/database/121/SQLRF/conditions007.htm#SQLRF00501