oracle中translate与replace的使用
1.translate
语法:TRANSLATE(char, from, to)
用法:返回将出现在from中的每个字符替换为to中的相应字符以后的字符串。
若from比to字符串长,那么在from中比to中多出的字符将会被删除。
三个参数中有一个是空,返回值也将是空值。
举例:SQL> select translate('abcdefga','abc','wo') 返回值 from dual;
返回值
-------
wodefgw
分析:该语句要将'abcdefga'中的'abc'转换为'wo',
由于'abc'中'a'对应'wo'中的'w',
故将'abcdefga'中的'a'全部转换成'w';
而'abc'中'b'对应'wo'中的'o',
故将'abcdefga'中的'b'全部转换成'o';
'abc'中的'c'在'wo'中没有与之对应的字符,
故将'abcdefga'中的'c'全部删除;
简单说来,就是将from中的字符转换为to中与之位置对应的字符,
若to中找不到与之对应的字符,返回值中的该字符将会被删除。
在实际的业务中,可以用来删除一些异常数据,
比如表a中的一个字段t_no表示电话号码,
而电话号码本身应该是一个由数字组成的字符串,
&n
相关文档:
select dbtimezone from dual ; --查看数据库时区
select sessiontimezone from dual ; --查看会话时区
1.select u.name || '.' || o.name || '.' || c.name TSLTZcolumn
from sys.obj$ o, sys.col$ c, sys.user$ u
&nbs ......
例如我在oracle10g里配置了2个数据库xljc和xldb,期控制太浏览器种启动分别为:xljc在浏览器中输入 http://zhang:5500/em xldb在浏览器中输入 http://zhang:1158/em如果忘记了启动端口号,可以查询文件
例如我在oracle10g里配置了2个数据库xljc和xldb,期控制太浏览器种启动分别为:xljc在浏览器中输入 http://zhang:5500/em
x ......
应用数据库中记录中date列莫名其妙的出现了几个值为0000-00-00的数据。
更可怕的是如果将这样的记录进行读取成为varchar2后再to_date转换回去就会报错。
问题无从查起,只说一下最终同事搜索到的连接结果:http://www.hellodba.com/Doc/oracle_date_zero_bug.htm
看来的确是oracle的一个bug。
另外需要注意的是,在使用 ......
例如我在oracle10g里配置了2个数据库xljc和xldb,期控制太浏览器种启动分别为:xljc在浏览器中输入 http://zhang:5500/em xldb在浏览器中输入 http://zhang:1158/em如果忘记了启动端口号,可以查询文件
例如我在oracle10g里配置了2个数据库xljc和xldb,期控制太浏览器种启动分别为:xljc在浏览器中输入 http://zhang:5500/em
x ......