表A(name  varchar2(200));
对表A中字段name里面的内容是非合法字符,且是非数字的数据进行删除。这个sql怎么写??以下是合法字符集字符内容(也就是不允许删除的内容)
序号 中文(全角) 外文以及拼音(半角)
1 @ @
2 _ _
3 - -
4 / /
5 ; ;
6 : :
7 ~ ~
8 ^ ^
9 " "
10 ' '
11 , ,
12 . .
13 ? ?
14 ! !
15 * *
16 # #
17 ( (
18 ) )
19 < <
20 > >
21 ¥ 无  $
22 $ $
23 % %
24 & &
23 + +
24 • 无
25 (空格全角)(空格半角)

解决方案 »

  1.   

    translate('源数据','1234567890!@$%^.........','1234567890!@$%^........')
      

  2.   

    或者用正则regexp_replace('源数据','[\u1a2b-\u3c4d]+')  里面的范围自己查字符集编码
      

  3.   

    正则表达式:regexp_replace('源数据','[\u1a2b-\u3c4d]+') 如是10G版本的话!
      

  4.   

    是11g的环境:
    能解释一下'[\u1a2b-\u3c4d]+'这第二个参数的意义么?我是要更新或删除里面的数据 (删除和更新name字段中非合法字符且不包含数字的数据),能给一条完整的sql吗?谢谢啊 有点急啊~~~