
Oracle案例
文章平均质量分 56
记录本人遇到的Oracle 案例
只是甲
10年及以上金融信贷、通信行业数据库运维管理、数据仓库及大数据相关工作经验,持有Oracle OCP和Linux RHCE认证证书。
展开
-
正则案例四:清空()里面的内容
一.需求今天在论坛上看到有人提了一个正则相关的问题,刚好有时间,就给他提供了一个解决方案。需求如下:字符串:‘我爱(xxx)中华(qq)人民(aac啊)共和国’想达到的效果,凡是()中的内容都不需要了,包括()本身,以上字符串希望返回结果:我爱中华人民共和国。二.解决方案2.1 Oracle解决方案首先想到的是regexp_replace进行替换,题目意思已经很明白,是要删除()及()里面的内容。代码:with tmp1 as(select '我爱(xxx)中华(qq)人民(aac啊)共原创 2021-06-30 18:08:44 · 3563 阅读 · 0 评论 -
正则案例一:匹配字母开头后面跟随14个数字的字符串
一.需求描述今天朋友遇到一个问题,数据库中的某一列中字母开头后面跟随14个数字的字符串,例如 ‘a12345678912345’ 这种。其实各个编程语言例如Java、Python等都有自己的正则,朋友不想那么麻烦,想在数据库里面来实现。二.解决方案2.1 Oracle的解决方案Oracle的正则表达式虽然没有Java、Python的那么强大,但是也足够够用。^ 匹配每一行的开头,单行模式下等价于字符串的开头$ 匹配每一行的结尾,单行模式下等价于字符串的结尾字母可以使用 [a-zA-Z]原创 2021-03-26 11:00:18 · 5080 阅读 · 12 评论 -
正则案例二:匹配有且仅有3个连续数字的字符
一.需求描述近期收到朋友的一个需求,需要在一堆字符串中查找连续3个数字的字符,连续数字可能出现在开头、中间、结尾,而且如果连续数字超过3个,也不符合条件。二.解决方案2.1 Oracle解决方案^ 匹配每一行的开头,单行模式下等价于字符串的开头$ 匹配每一行的结尾,单行模式下等价于字符串的结尾字母可以使用 [a-zA-Z]数字可以用 \d 或者 [0-9]我测试匹配开头使用\d居然未匹配出来,只能使用[0-9]代码:with tmp1 as(select 'abc12' str fr原创 2021-06-22 10:07:56 · 7846 阅读 · 0 评论 -
正则案例三:匹配3个及以上连续数字并输出
一.需求描述 今天朋友咨询一个正则的需求,对于连续超过3个数字进行输出,如果有多个连续数字,都需要输出。 例如 123abc1234 输出为 123.1234,中间用’.'进行分隔。二.解决方案2.1 Oracle解决方案看到这个需求,首先想到的是使用Oracle 正则表达式的regexp_replace函数了。多个匹配表达式用()进行关联,例如(.*?)([0-9]{3,})其中 *? 是匹配0次或多次,非贪婪模式。[0-9]{3,} 是匹配连续3个及以上数字。代码:with tmp原创 2021-06-22 10:45:52 · 11223 阅读 · 0 评论 -
Oracle 收缩表空间一例
备注:Oracle 11.2.0.4文章目录一. 需求二. 解决方案2.1 清理过期数据2.2 收缩表空间2.3 清理表碎片2.4 直接把相关的表drop掉2.5 把该表空间下其它的表移出此表空间2.6 查看压缩的空间一. 需求近期有一个日志库,占用了比较多的空间,需要将历史的清理,然后收缩空间。如下图所示,4T的空间已经差不多用完。二. 解决方案首先想到的是清理掉超过半年的数据,然后resize 表空间。2.1 清理过期数据因为业务的表是 tablename_yearmonth格式,原创 2022-04-25 16:02:55 · 2954 阅读 · 2 评论 -
Oracle sys.dba_audit_session查询慢
备注:Oracle 11.2.0.4一.问题描述从awr报告可以看到这个EM相关的sql消耗了大量的IO。也可以通过消耗IO的sql来查找:--找出消耗物理IO资源最大的的SQL语句select disk_reads, substr(sql_text,1,4000) from v$sqlarea order by disk_reads desc;具体的慢SQL如下:SELECT TO_CHAR(current_timestamp AT TIME ZONE 'GMT', 'YYYY-MM原创 2021-07-14 10:36:55 · 4303 阅读 · 0 评论 -
Oracle RMAN无法删除归档一例
备注:Oralce 11.2.0.4文章目录一.问题描述二.解决方案2.1 清理归档日志2.2 问题分析2.3 最终解决方案参考:一.问题描述因为空间不足导致无法归档,数据库hang住Thu Jan 14 03:24:49 2021ARC3: Error 19502 Closing archive log file '/oracle/ora11g/db/dbs/arch/1_74591_982339590.dbf'Thu Jan 14 03:24:52 2021ARC0: Error 19原创 2021-01-14 10:54:43 · 1198 阅读 · 3 评论