| « | 六月 2008 | » | ||||
|---|---|---|---|---|---|---|
| 一 | 二 | 三 | 四 | 五 | 六 | 日 |
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 | ||||||
tranlate可以帮我们把相应的字符进行转义和自定义函数均可以帮我们实现这个功能:)
tranlate可以帮我们把相应的字符进行转义,例子如下:
SELECT
TRANSLATE('abcd123','abc','XXXX'),
TRANSLATE('abcd123','abcdef','XXXX')
FROM dual
原型为 TRANSLATE(str1 VARCHAR2,src VARCHAR2,dest VARCHAR2)
str1为要转义的字符串,src为待转义的字符,dest为转义后的字符
如果dest长度大于src,则只转义出现在src中的字符
如果dest长度小于src,则src中多余的字符转义为''
以下为判断一个字符串是否为数字的详细例子,当然标点符号没有计算在你
SELECT
INSTR(TRANSLATE('abc123','abcdefghijklmnopqrstuvdxyzABCDEFGHIJKLMNOPQRSTUVWXYZ','XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'),'X')
FROM dual
CREATE OR REPLACE FUNCTION f_isnumber(str1 IN VARCHAR2) RETURN NUMBER
IS
vNumber NUMBER(38,0);
BEGIN
vNumber:=TO_NUMBER(str1);
RETURN(1);
EXCEPTION
WHEN OTHERS THEN
RETURN(0);
END F_ISNUMBER;
SELECT f_isnumber('12'),f_isnumber('12a') FROM dual