1、在oracle中经常需要使用到截取字符串函数substr。语法:substr(str,num1,[num2]); 默认情况下都是只需要两个参数,它的意思是从第二个字符开始截取str字符串剩下所有的字符。
2、substr函数中第二个参数也可以是负数,它的使用是从str倒数第num1个字符的位置开始截取。
3、也可以同时使用三个数,它的使用是从num1开始截取str字符,截取num2个字符。如下图,
4、在同时使用三个参数的时候,第二个参数也可以是负数,它的使用就是从str倒数num1的位置的开始截取num2个字符。如下图,
5、不过有一点需要注意的是从num位置开始截取str时,如果num2的参数比较大那么返回的结果也只是返回str从num位置开始最多的字符。完成。
原有文件 是 abcd.TXT 前面的abcd不一定是多少位的 可是后面的.TXT 是确定的 我想把.TXT去掉
追答那可以啊,前提是你 的abcd.TXT是字符串,假设有一个文件abcd....xyz.TXT用函数Rtrim(abcd....xyz.TXT,.TXT)将.TXT去掉
有可能是 ABCDEF.TXT ,前面的名字不一定多少位 我要把 .TXT截掉
追答用replace替换.txt吧
Select Replace('ABCDEF.TXT','.TXT') From dual
不行呀 我就怕 文件时 ABCDEF.txt 后面的扩展名是 小写的
小写的话 Select Replace('ABCDEF.txt','.TXT') From dual 这个就查不到了
这样吧
Select substr('ABCDEF.TXT',1,length('ABCDEF.TXT')-4) From dual