oracle 用SQl语句截取最后一个“\”后面的内容

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle 用SQl语句截取最后一个“\”后面的内容相关的知识,希望对你有一定的参考价值。

例如:file表中字段名filename的数据有:
C:\Documents and Settings\sytl\桌面\各部门反馈\条线分册-财务部.xls
C:\Documents and Settings\dell\tabledest\上报信息.doc...........
现在我要把filename内的数据全部替换为去掉路径只显示文件名,也就是说只留下
条线分册-财务部.xls
上报信息.doc
如果用sql实现不了的话可以用函数或存储过程,不过这个我不太熟请解释详细些啊,谢谢了

参考技术A select substr('C:\Documents and Settings\sytl\桌面\各部门反馈\条线分册-财务部.xls',instr('C:\Documents and Settings\sytl\桌面\各部门反馈\条线分册-财务部.xls','\',-1,1)+1) from dual

这个绝对可以!追问

太棒了 这个确实可以,但是整个表的替换怎么弄啊
select substr((select filename from file),instr((select filename from file),'\',-1,1)+1) from dual
这样不行啊,求助!!

追答

你要把表里面的数据都改成那样吗?如果是的话用
update 表名 set 字段名=substr(字段名,instr(字段名,'\',-1,1)+1) where 条件(条件为确定你要更新的那条记录)
这样就好了

本回答被提问者采纳
参考技术B TRIM(字符 FROM 字符串) 去掉字符串首尾的字符;
示例: select trim('S' from ename) from emp;
select trim('C:\Documents and Settings\sytl\桌面\各部门反馈\' from filename) from file where filename like 'C:\Documents and Settings\sytl\桌面\各部门反馈\%';
select trim('C:\Documents and Settings\dell\tabledest\' from filename) from file where filename like 'C:\Documents and Settings\dell\tabledest\%';
我已经尽力了!
参考技术C 我用的是sql2000
不知道oracle 通用不,你自己测试下
select reverse(left(reverse(filename),charindex('\',reverse(filename))-1)) from file
参考技术D substr
Length
Instr
三个函数组合可以实现

Oracle中如何截取字符串的后10位

参考技术A

1、使用Oracle语句 select substr('12345',greatest( -位数,-length('12345')),位数) from dual。输入后程序会自动截取该字符串的指定长度。

2、表达式中的“位数”输入格式是数字形式。如截取后10位,则输入数字10,也可以使用这个语句 substr(字符串,截取开始位置,截取长度)。

3、这个公式需要注意的是,若最后一个截取长度参数为空,则表示从截取开始位置起截到最末。若截取开始位置 为大于0的数字,则表示从字符串左数几位开始。 若截取开始位置 为小于0的数字,则表示从字符串右数几位开始。

扩展资料:

字符串的转化方法如下:

可以用 (string) 标记或者strval()函数将一个值转换为字符串。当某表达式需要字符串时,字符串的转换会在表达式范围内自动完成。例如当使用echo()或者print()函数时,或者将一个变量值与一个字符串进行比较的时候。阅读手册中有关类型和类型戏法中的部分有助于更清楚一些。参见settype()。

布尔值TRUE将被转换为字符串 "1",而值FALSE将被表示为 ""(即空字符串)。这样就可以随意地在布尔值和字符串之间进行比较。

整数或浮点数数值在转换成字符串时,字符串由表示这些数值的数字字符组成(浮点数还包含有指数部分)。

数组将被转换成字符串 "Array",因此无法通过echo()或者print()函数来输出数组的内容。请参考下文以获取更多提示。

对象将被转换成字符串 "Object"。如果因为调试需要,需要将对象的成员变量打印出来,请阅读下文。如果希望得到该对象所依附的类的名称,请使用函数get_class()。自 php 5 起,如果合适可以用 __toString() 方法。

资源类型总是以 "Resource id #1" 的格式被转换成字符串,其中 1 是 php 在运行时给资源指定的唯一标识。如果希望获取资源的类型,请使用函数get_resource_type()。

NULL将被转换成空字符串。

正如以上所示,将数组、对象或者资源打印出来,并不能提供任何关于这些值本身的有用的信息。请参阅函数print_r()和var_dump(),对于调试来说,这些是更好的打印值的方法。

可以将 php 的值转换为字符串以永久地储存它们。这种方法被称为序列化,可以用函数serialize()来完成该操作。如果在安装 php 时建立了 WDDX 支持,还可以将 php 的值序列化为 XML 结构。

Oracle的功能:

数据库的物理存储结构是由一些多种物理文件组成,主要有数据文件、控制文件、重做日志文件、归档日志文件、参数文件、口令文件、警告文件等。 

控制文件:存储实例、数据文件及日志文件等信息的二进制文件。alter system set control_files=‘路径’。V$CONTROLFILE。

数据文件:存储数据,以.dbf做后缀。一句话:一个表空间对多个数据文件,一个数据文件只对一个表空间。dba_data_files/v$datafile。

日志文件:即Redo Log Files和Archivelog Files。记录数据库修改信息。ALTER SYSTEM SWITCH LOGFILE; 。V$LOG。

参数文件:记录基本参数。spfile和pfile。

警告文件:show parameter background_dump_dest---使用共享服务器连接。

跟踪文件:show parameter user_dump_dest---使用专用服务器连接。

参考资料:百度百科-Oracle数据库

参考资料:百度百科-字符串

以上是关于oracle 用SQl语句截取最后一个“\”后面的内容的主要内容,如果未能解决你的问题,请参考以下文章

oracle怎么截取指定字符后面的字符串,或者删除指定字符前面的字符串也行

Oracle中如何截取字符串的后10位

MySQL数据库的一个表截取字符串然后去找另一张表的字段匹配怎么写sql

Oracle中如何截取字符串的后10位

SQL语句截取字符串中最后的两个字怎么做?急用。在线等。

sql 怎么去掉最后一个字符,请看详细