oracle 有很多例外,并且有不同的掩码您要对所有掩码进行编码吗?
您当前的正则表达式可能看起来像:
select regexp_replace('ORA-01400: cannot insert NULL into ("ABC_OWNER"."ABC_PART"."REGION")'
,'^ORA-\d+:\s(.+)\(.+\.\"(.+)\"\)', '\1 \2') from dual
编辑:正则表达式 '^ORA-\d+:\s(.+)(.+.\"(.+)\")' 的描述
- "^" - 字符串的开头
- "ORA-" - 简单字符串 "ORA-"
- "\d+" - 数字系列
- ":" - 简单的冒号
- "\s" - 空白
- "(.+)" - 任何字符中最长的字符串。这
()
意味着它将被捕获为组(\ 1)。
- "(" - 左括号
- “.+” - 任何字符中最长的字符串。
- “.”——简单的点
- \" - 双引号
- (.+) - 任何字符中最长的字符串。下一组 (\2)
- \" - 双引号
- )' - 右括号
第 6,8 和 11 点中的正则表达式将是饥饿搜索,它将尝试对第一组中最长的字符串进行罚款。这意味着“6”、“8”和“11”的长度之间是否存在一些变体。“6”将首先选择并尽其所能“8”将选择其次,“11”最少。例如,如果您有字符串aaaaaa
和正则表达式(.+)(.+)
,则第一组将采用aaaaa
第二组a