設為首頁收藏本站

艾歐踢論壇

 找回密碼
 立即註冊

QQ登錄

只需一步,快速開始

搜索
熱搜: 活動 交友 discuz
查看: 1717|回復: 0
打印 上一主題 下一主題

Removing un-wanted text from strings in Oracle

[複製鏈接]
跳轉到指定樓層
樓主
發表於 2019-12-2 18:48:35 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  There are different ways of removing unwanted characters from the string using:
•    REPLACE function
•    TRANSLATE function
•    REGEXP_REPLACE function (10g and above)

1) Removes special characters from a string value. 2) All characters except 0-9, a-z and A-Z are removed and 3) the remaining characters are returned.

  1. create function dbo.RemoveSpecialChars (@s varchar(256)) returns varchar(256)
  2.        with schemabinding
  3.     begin
  4.        if @s is null
  5.           return null
  6.        declare @s2 varchar(256)
  7.        set @s2 = ''
  8.        declare @l int
  9.        set @l = len(@s)
  10.        declare @p int
  11.        set @p = 1
  12.        while @p <= @l begin
  13.           declare @c int
  14.           set @c = ascii(substring(@s, @p, 1))
  15.           if @c between 48 and 57 or @c between 65 and 90 or @c between 97 and 122
  16.              set @s2 = @s2 + char(@c)
  17.           set @p = @p + 1
  18.           end
  19.        if len(@s2) = 0
  20.           return null
  21.        return @s2
  22.        end
複製代碼

hen call this function in update statement:-
  1. UPDATE [BuildingPros].[utbProfessionals]
  2. SET [ProfessionalName] =
  3.                    (
  4.                      CASE
  5.                       WHEN [ProfessionalName] LIKE '%[^a-zA-Z0-9]%'
  6.                            THEN (SELECT dbo.RemoveSpecialChars(ProfessionalName))
  7.                       ELSE [ProfessionalName]
  8.                       END
  9.                     )
複製代碼

select TABLE_NAME , COLUMN_NAME
From dba_tab_columns
WHERE OWNER ='IFSAPP'
AND TABLE_NAME ='ABC_CLASS'
AND DATA_TYPE ='VARCHAR2'


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 轉播轉播 分享分享 分享淘帖
回復

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

小黑屋|Archiver|手機版|艾歐踢創新工坊    

GMT+8, 2024-5-16 04:49 , Processed in 0.274122 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表