zoukankan      html  css  js  c++  java
  • 数据库字段的正则批量替换例子

    '123<和这个>56<7>8'替换为'123568'
    最直接的方法就是想到正则表达式
    如果是SQLServer则不直接支持,可以借助js的com组件

    --测试字符串

    declare @inStr varchar(800)

    set @inStr='123<和这个>56<7>8'

    --测试语句

    declare @str  varchar(800)

    set @str='var data = "'+@inStr+'";var reCat = /<[^>]+>/gi;data.replace(reCat,"");'

    declare @object int 

    declare @r varchar(800)

    exec sp_OACreate 'MSScriptControl.ScriptControl',@object output   

    exec sp_OASetProperty @object, 'Language','javascript' 

    exec sp_OAMethod @object, 'eval', @r out,@str 

    select @r

    --输出

    /*123568*/

     

    如果是Oracle则简单很多,可以直接用SQL语句

     

    Select REGEXP_REPLACE('123<和这个>56<7>8','<[^>]+>', '') as r FROM dual;
    /*
    R
    123568
    */


  • 相关阅读:
    【校招面试 之 C/C++】第23题 C++ STL(五)之Set
    Cannot create an instance of OLE DB provider “OraOLEDB.Oracle” for linked server "xxxxxxx".
    Redhat Linux安装JDK 1.7
    ORA-10635: Invalid segment or tablespace type
    Symantec Backup Exec 2012 Agent for Linux 卸载
    Symantec Backup Exec 2012 Agent For Linux安装
    You must use the Role Management Tool to install or configure Microsoft .NET Framework 3.5 SP1
    YourSQLDba介绍
    PL/SQL重新编译包无反应
    MS SQL 监控数据/日志文件增长
  • 原文地址:https://www.cnblogs.com/cl1024cl/p/6204863.html
Copyright © 2011-2022 走看看