【发布时间】:2023-04-01 02:59:01
【问题描述】:
我目前面临以下问题:
在我的数据库中,我有不同的描述需要调整。因此,这些字符串可以有不同的形式:
Part 1 (ehem. 123) - Part 2 - [Part 3]
Part 1 (ehem. 123) - [Part 3]
Part1-Part1 (ehem 123)
--> 第 1 部分的单词中可能包含 -,例如电子银行
我的目标是编写一个 PL/SQL 更新语句,确保右侧的所有内容都被修剪到 (ehem. 123)。所以,(ehem. 123) 应该仍然显示,右边的其余部分被修剪。或者,我想修剪右侧的所有内容,首先出现一个空格,然后是字符'-' --> ' -'
我的第一种方法如下,它适用于第二种形式(即Part 1 (ehem. 123) - [Part 3])
substr(regexp_substr(oct.descn, '.*\-'),1,length(regexp_substr(oct.descn, '.*\-'))-2)
但是,一旦我面对表格 1 或 3(字符串中间有一个'-')"part 1",它就不再起作用了。
所以,这里有问题:
我怎样才能确保在任何情况下我都只能使用 SQL reg 表达式获得字符串的这一部分? -->
Part 1 (ehem. 123)我需要如何编写我的 PL/SQL 语句,以便更新所有相关记录 (id,descn)。我从 for 循环开始,遍历所有相关的 decn 并更新这些。
【问题讨论】:
标签: sql regex oracle plsql sql-update