2015-08-20 36 views
2

我有一個PL/SQL過程,我需要一個字符串並刪除所有不是字母的字符。我已經看過一些例子,並閱讀關於REGEXP_REPLACE函數的文檔,但無法理解它的功能。如何從PL/SQL中的字符串中刪除所有不是字母的字符?

這不是重複的,因爲我需要刪除標點符號而不是數字。

+2

可能重複 - 獲取只有在選擇路線字段](http://stackoverflow.com/questions/2375426/oracle-query-get-only-strings-in-the-select-field) – kevinsky

+0

r egexp_replace(yourcol,'[a-zA-Z]','') – Mihai

回答

0

試試這個:

SELECT REGEXP_REPLACE('AB$%c','[^a-zA-Z]', '') FROM DUAL; 

或者

SELECT REGEXP_REPLACE(your_column, '[^a-zA-Z]', '') FROM your_table; 

閱讀here瞭解更多信息

2

或者:

select regexp_replace('1A23B$%C_z1123d', '[^A-Za-z]') from dual; 

或:

select regexp_replace('1A23B$%C_z1123d', '[^[:alpha:]]') from dual; 

第二個考慮像其他可能的字母:

select regexp_replace('123żźć', '[^[:alpha:]]') from dual; 

結果:

​​3210

還爲您解答有關的功能是如何工作的問題:第一個參數是源字符串,第二個 - 正則表達式 - 與它匹配的所有內容將被第三個參數替代(可選,默認情況下爲NULL,意味着所有匹配的字符將被刪除)。

瞭解更多關於正則表達式:

http://docs.oracle.com/cd/B19306_01/appdev.102/b14251/adfns_regexp.htm

相關問題