Oracle的常用字符函数实验展示(二)

来源:这里教程网 时间:2026-03-03 12:03:23 作者:

8.REPLACE函数 REPLACE函数完成替换功能,如果不指定替换的内容将会删除与之匹配的内容。 1)删除FIRST_NAME字段中出现的“cool”字符串 sec@ora10g> select FIRST_NAME, replace(FIRST_NAME,'cool') replace from t; FIRST_NAME      REPLACE --------------- --------------- Secooler        Seer 此时Secooler已经变成了“先知”(Seer):)。 2)将FIRST_NAME字段中的“cool”替换为“****”符号 sec@ora10g> select FIRST_NAME, replace(FIRST_NAME,'cool','****') replace from t; FIRST_NAME      REPLACE --------------- ----------------------------------------------------- Secooler        Se****er 9.SUBSTR函数 使用SUBSTR函数可以得到字符串的一个子串。 1)得到FIRST_NAME字段的前三个字符 sec@ora10g> select FIRST_NAME, substr(FIRST_NAME,1,3) substr from t; FIRST_NAME      SUBSTR --------------- ------------ Secooler        Sec 2)从FIRST_NAME字段的第三个字符开始连续取4个字符。 sec@ora10g> select FIRST_NAME, substr(FIRST_NAME,3,4) substr from t; FIRST_NAME      SUBSTR --------------- ---------------- Secooler        cool 的确很“cool”吧:) 3)从相反的方向获得子字符串 下面的SQL中substr函数的第二个参数是“-6”,表示从字符串后面向前数第6个字符开始,再读取4个字符。这里构造的结构和上面的结果相同,可谓殊途同归是也。 这里之所以使用到了rtrim函数,是为了消除字符串尾部空格对结果的影响。 sec@ora10g> select FIRST_NAME, substr(rtrim(FIRST_NAME),-6,4) substr from t; FIRST_NAME      SUBSTR --------------- ---------------- Secooler        cool 4)SUBSTR函数的第三个参数可以为空,表示从截取开始的位置一直到字符串尾部的意思。 sec@ora10g> select FIRST_NAME, substr(FIRST_NAME,3) substr from t; FIRST_NAME      SUBSTR --------------- ---------------------------------------------------- Secooler        cooler 10.TRANSLATE函数 1)将“H”翻译成“S”、将“O”翻译成“e”、将“U”翻译成“c” sec@ora10g> select FAMILY_NAME, translate(FAMILY_NAME,'HOU','Sec') translate from t; FAMILY_NAME     TRANSLATE --------------- ---------------------------------------------------- HOU             Sec 2)想一想下面的SQL为什么没有把“Secooler”转换为“Shengwen”?体会一下这个“翻译”过程的细节之处。 sec@ora10g> select FIRST_NAME, translate(FIRST_NAME,'Secooler','Shengwen') from t; FIRST_NAME      TRANSLATE(FIRST_NAME,'SECOOLER','SHENGWEN') --------------- ---------------------------------------------------- Secooler        Shennwhn 11.INSTR函数 语法是:INSTR (string , substring [, position [, occurrence ] ]) INSTR函数可以得到子字符串(当然包含单个字符)在字符串中的位置,返回的是数字。 1)得到字母“o”在FIRST_NAME字段第一次出现的位置 sec@ora10g> select FIRST_NAME, instr(FIRST_NAME,'o') instr from t; FIRST_NAME           INSTR --------------- ---------- Secooler                 4 2)从字符串的第5个字符开始查找,第一次出现字母“o”的位置 sec@ora10g>  select FIRST_NAME, instr(FIRST_NAME,'o',5) instr from t; FIRST_NAME           INSTR --------------- ---------- Secooler                 5 3)从字符串的第1个字符开始查找,第二次出现字母“o”的位置 sec@ora10g> select FIRST_NAME, instr(FIRST_NAME,'o',1,2) instr from t; FIRST_NAME           INSTR --------------- ---------- Secooler                 5 12.LENGTH函数 参考《【差异】LENGTH与VSIZE的区别演示》http://space.itpub.net/519536/viewspace-623537 13.小结 通过两篇小文儿给大家介绍了12个Oracle常用字符函数。善用函数带给我们的便利不可小视,也许不经意间在使用这些函数进行简单组合之后就会给我们带来无限的快感。 Good luck. secooler

相关推荐