ORACLE 正则解决初使化数据格式不一致
如: 2000-1-1==> 2000-01-01、2000-01-1==>2000-01-01、2000-1-01==>2000-01-01
以前会写一个function/procedure之类的脚本,大量的IF ELSE。。。
今次无意中发现oracle10g已经支持正则功能,上述问题也就迎刃而解了。。
复制代码 代码如下:
UPDATE LZ__EQ_RHGL LZRH SET LS__SP_GHTIME = SUBSTR(LZ__SP_GHTIME, 1, 5) || '0' || SUBSTR(LZ__SP_GHTIME, 6, 2) || '0' || SUBSTR(8, 1) WHERE RETEXT_LINE(LZ__SP_GHTIME, '^\d{4}-\d{1}-\d{1}$')
时间: 2009-05-01
最近做项目,有这样一需求:ORACLE数据库中求除数字.字母之外的非中文字符的正则表达式 如有如下字段,需将其中除字母.数字.汉字外的其他所有字符替换为空 'asdfsad ,,:)()!@123234#$%^&*(我w 是e ? 中国人../\[]::''""一人' 最终得到值:asdfsad123234我是中国人一人 select FN_REG_REPLACEOTHER('asdfsad ,,:)()!@#$%^&*(我是?中国人../\[]::''"&q
/*ORACLE中的支持正则表达式的函数主要有下面四个:1,REGEXP_LIKE :与LIKE的功能相似2,REGEXP_INSTR :与INSTR的功能相似3,REGEXP_SUBSTR :与SUBSTR的功能相似4,REGEXP_R