oracle-替换中文、回车、换行、倒序截取等,从OA一堆意见里面找出你想要的审批日期

简介: 笔记

前言:


       在早期的OA建设中,主要是为了让流程跑的通畅,很少去考虑后期的数据分析的需求,比如我们需要获取领导审批通过的日期,但是日期是在一堆意见里面。因组织架构的问题,同一个领导的意见会包含多条记录,即多个审批日期,这时候我们需要去获取最后一个审批日期作为审批日期。下面我们先来看看现实的数据是怎么样的吧。其中打码的都是人名哈。

30.png

 从图片我们可以看到,里面包含了汉字、回车和换行符,下面详细说说怎么去处理吧。

一、去掉字符串里面的汉字


1、效果

31.png

2、代码

select  '【同意】   可以先调试
    小明 2021-10-01 07:52
' old,trim(regexp_replace('【同意】   可以先调试
    小明 2021-10-01 07:52
','['||chr(128)||'-'||chr(255)||']','')) nnew FROM DUAL

3、解析

       实现的逻辑具体可参考我以前写的一篇博客介绍。

二、去掉换行和回车符,倒叙截取需要日期


       通过上面的方法部分数据能满足我们的分析需求,但是我们会发现,当意见里面出现非汉字的时候,就会和日期一起展示,同时里面还存在很多换行符。如下图所示。

32.png33.png34.png

如上图所示去掉汉字的字符串,存在多个日期和其他非英文字符的问题。同时里面还有大量的换行和回车符。话不多说直接上效果吧。

1、效果

image.png

2、代码

select FIELD0065 原始数据,
trim(regexp_replace(FIELD0065,'['||chr(128)||'-'||chr(255)||']',''))  第一次处理,
substr(trim(replace(replace(trim(regexp_replace(FIELD0065,'['||chr(128)||'-'||chr(255)||']','')),CHR(10),''),chr(13),'')),-16,10)    第二次处理后
from BI.Oa_51me_Zb  where FIELD0065    is not null 
---使用时替换表名BI.Oa_51me_Zb和字段名FIELD0065即可

3、解析

       通过replace+CHR(10)+chr(13)去掉了回车和换行符。然后通过trim去掉里面的空格,再通过substr函数从最后16位的位置截取10为长度的字符串作为审批日期。


三、总结


       本文主要用来分享项目上遇到的小问题,同时在自己再次遇到的时候可以用来查看,快速解决问题,希望本次文章对你有空,也欢迎留言讨论其他更优解哦~


相关文章
|
6月前
|
JSON API 数据格式
在钉钉开放平台中,创建或更新OA审批表单模板需要通过API接口进行操作
在钉钉开放平台中,创建或更新OA审批表单模板需要通过API接口进行操作【1月更文挑战第20天】【1月更文挑战第97篇】
171 1
|
6月前
|
SQL Oracle 关系型数据库
Oracle之日期计算相关函数
Oracle之日期计算相关函数
84 0
OA项目之我的审批(查询&会议签字&审批)(一)
OA项目之我的审批(查询&会议签字&审批)
OA项目之我的审批(查询&会议签字&审批)(一)
OA会议管理系统之我的审批(审批签字可生成图片)(二)
OA会议管理系统之我的审批(审批签字可生成图片)(二)
3673 0
|
Java
OA会议管理系统之我的审批(审批签字可生成图片)(一)
OA会议管理系统之我的审批(审批签字可生成图片)
57 0
|
3月前
|
Oracle 关系型数据库 数据库
oracle日期加减的三种方式
【8月更文挑战第15天】在Oracle数据库中,可通过三种方式对日期进行加减操作:一是利用`ADD_MONTHS`函数增减月份,如`ADD_MONTHS(SYSDATE, 2)`表示两个月后;二是运用算术运算符直接加减天数,如`SYSDATE + 7`表示七天后;三是采用`INTERVAL`表达式增加或减少特定时间间隔,如`SYSDATE + INTERVAL '2' YEAR`表示两年后。这些方法可根据实际需求灵活选用。
2279 5
|
4月前
|
SQL Oracle 算法
|
3月前
|
Java uml
某OA系统需要提供一个假条审批的模块,如果员工请假天数小于3天,主任可以审批该请假条;如果员工请假天数大于等于3天,小于10天,经理可以审批;如果员工请假天数大于等于10天,小于30天,总经理可以审批
该博客文章通过一个OA系统中的请假审批模块示例,使用Java语言实现了职责链模式,展示了如何根据不同的请假天数由不同级别的领导进行审批,并讨论了职责链模式的优缺点。
某OA系统需要提供一个假条审批的模块,如果员工请假天数小于3天,主任可以审批该请假条;如果员工请假天数大于等于3天,小于10天,经理可以审批;如果员工请假天数大于等于10天,小于30天,总经理可以审批
|
API 开发工具 开发者
在钉钉中,服务端API 如何获取OA审批评论中的附件下载链接?
在钉钉中,服务端API 如何获取OA审批评论中的附件下载链接?
979 1
|
API
在钉钉中,如何通过API接口实现OA审批和企业业务系统打通?
在钉钉中,如何通过API接口实现OA审批和企业业务系统打通?
476 1