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
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
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/6517/viewspace-101735/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/6517/viewspace-101735/