substr(‘源字符串’,开始位置,截取长度)
       substr('This is a test', 6, 2)     would return 'is'
       substr('This is a test', 6)     would return 'is a test'
       substr('TechOnTheNet', -3, 3)     would return 'Net'
       substr('TechOnTheNet', -6, 3)     would return 'The'
instr(‘源字符串’,‘目标字符串’,‘开始位置’,‘第几次出现’)从一个字符串中查找指定子串的位置
    从第1个字符开始,查找第2次出现子串的位置
    SQL> select instr('qinyinglianqin','qin', 1, 2) position from dual;
    POSITION
    ----------
      12
trim该函数有两种作用
第一种:去除空格
--trim去除指定字符的前后空格
SQL> select '     dd   df     ' from dual;

'DDDF'
-----------------
     dd   df

SQL> select trim('     dd   df     ') from dual;

TRIM('D
-------
dd   df
SQL> select ltrim('     dd   df     ') from dual;

LTRIM('DDDF'
------------
dd   df

SQL> select rtrim('     dd   df     ') from dual;

RTRIM('DDDF'
------------
     dd   df

--ltrim去除指定字符的前面空格
--rtrim去除指定字符的后面空格
第二种用法:去除指定的字符,trim只能去除单个字符,而ltrim和rtrim可以去除多个字符
select trim (leading|trailing|both string1 from string2) from dual;
如果不指定leading或者trailing,那么默认是both
SQL> SELECT trim(leading 'd' from 'dfssa') FROM dual;
TRIM(LEADING'D'FROM'DFSSA')
---------------------------
fssa

SQL> SELECT trim(both '1' from '123sfd111') FROM dual;
TRIM(BOTH'1'FROM'123SFD111')
----------------------------
23sfd

SQL> SELECT trim(trailing '2' from '213dsq12') FROM dual;
TRIM(TRAILING'2'FROM'213DSQ12'
------------------------------
213dsq1
注:trim去除字符只能是单个字符,如下,要去除的字符若为字符集则报错
SQL> SELECT trim(trailing '12' from '123dsq12') FROM dual;
SELECT trim(trailing '12' from '123dsq12') FROM dual
ORA-30001: 截取集仅能有一个字符


ltrim和rtrim去除字符的写法:
--表示从字符串string1中去除与string2字符集匹配的,若无匹配则结束返回。
select ltrim (string1,string2) from dual;
--rtrim与ltrim类似,只是去除的是右边算起匹配的字符
SELECT rtrim(string1,string2) FROM dual;
例子:
--如下,由于从右边算起,第一个字母是b没有与'main'匹配的字符,因此返回结果仍是'aaaaminb'
SQL> SELECT rtrim('aaaaminb','main') FROM dual;
RTRIM('AAAAMINB','MAIN')
------------------------
aaaaminb

--如下返回结果为空
SQL> SELECT rtrim('aaaaminb','mainb') FROM dual;
RTRIM('AAAAMINB','MAINB')
-------------------------

SQL> SELECT ltrim('ccbcminb','cb') FROM dual;
LTRIM('CCBCMINB','CB')
----------------------
minb
使用RTRIM和LTRIM函数时的注意事项:“mainb”不表示整个“mainb”字符串进行匹配,而是发现任意的字符“m”或字符“a”或字符“i”或字符“n”或字符“b”均做删除操作。


replace语法replace(char,search_string[,replacement_string])
char:等待替换的字符串
search_string:搜索需要替换的字符串
replacement_string:替换字符串

select replace('jack and jue','j','bl')  from dual;
black and blue