ORACLE存储过程判断非法字符

1---------------------------调用方法 2 3 --验证非法字符 4 isMg := fun_issensitivity(v_arr); 5 if not isMg then 6 v_sendmsg := '很好,你的信息是正常的。'; 7 else 8 v_sendmsg := '对不起,您的信息含有敏感字,请修改后再发!'; 9 end if; 10 11---------------------------中间过程 12 13create or replace function fun_issensitivity(arr in splitlongstr) return boolean is 14 Result boolean; 15 i number; 16 v_mg_msg varchar2(4000); 17begin 18 i:=1; 19 Result:=false; 20 while (i<=arr.count) loop 21 syn_sp_unlawful(arr(i),v_mg_msg); 22 v_mg_msg:=replace(v_mg_msg,' ',''); 23 if v_mg_msg='0' then 24 null; 25 else 26 Result:=true; 27 exit; 28 end if; 29 i:=i+1; 30 end loop; 31 return(Result); 32end fun_issensitivity; 33 34--------------------------敏感字符判断过程 35 36create or replace procedure sp_unlawful 37( 38 in_msg in varchar2, 39 out_msg out varchar2 40) is 41/* 42 敏感字符判断过程 43 44*/ 45 46 v_Result varchar2(1024); 47 v_location number; 48 v_word varchar2(1024); 49 v_i number; 50 51 cursor c_unlawful is 52 select msg 53 from word_unlawful 54 where is_valid=1; 55 56begin 57 v_i:=0; 58 open c_unlawful; 59 loop 60 fetch c_unlawful into v_word; 61 exit when c_unlawful%notfound; 62 select instr(in_msg,v_word) into v_location 63 from dual; 64 if v_location>0 then 65 v_i:=v_i+1; 66 v_Result:=v_Result||','||v_word; 67 end if; 68 end loop; 69 close c_unlawful; 70 if v_i>0 then 71 out_msg:=ltrim(v_Result,','); 72 else 73 out_msg:='0'; 74 end if; 75end sp_unlawful; 76 77------------------------------创建收集的非法字符列表 78 79-- Create table 80create table WORD_UNLAWFUL 81( 82 MSG VARCHAR2(100) not null, 83 IS_VALID NUMBER(1) not null, 84 INS_DATE DATE default sysdate not null 85); 86-----------------------------需要非法字符库的请到附件下载

 来源:优特产     个人博客:优特品

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

一篇文章带你了解JavaScript日期

日期对象允许您使用日期(年、月、日、小时、分钟、秒和毫秒)。一、JavaScript的日期格式一个JavaScript日期可以写为一个字符串:ThuFeb02201909:59:51GMT0800(中国标准时间)或者是一个数字:1486000791164写数字的日期,指定的毫秒数自1970年1月1日00:00:00到现在。1\.显示日期使用

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )

mysql设置时区

mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0

ORACLE存储过程判断非法字符 - HelloWorld