易截截图软件、单文件、免安装、纯绿色、仅160KB

Oracle中截取字符串

关于Oracle里面的一些小函数
要求:A.数据库表中的一个字符串  可能含有"+" 例:ORC+001
       也可能不含“+”
      B.要求如果该字符串含有“+”,则取“+”之前的字符 例:ORC+001 取ORC
     C.如果该字符串不含"+",则直接取该字符串。
解答:利用ORACLE中 INSTR,SUBSTR以及CASE WHEN语法即可实现。
Oracle中函数
INSTR:INSTR方法的格式为
INSTR(源字符串, 目标字符串, 起始位置, 匹配序号)
默认查找顺序为从左到右。当起始位置为负数的时候,从右边开始查找。
例:Select INSTR('ORC+001','+',1,1) from dual
  返回的是"4" 如果该字符串没有匹配字符 返回的是“0”。
SUBSTR:取子字符串 取子字符串
SUBSTR(源字符串,起始位置,要取多少位)
从“起始位置”开始,取“多少"个
例 Select SUBSTR('ORC+001',1,3) from dual;
  返回的是“ORC”
  
全例如下:
表T_RCV_ISSUE
WH_CD字段
取 WH_CD 如果该字段包含"+",取“+”之前的字符
          如果该字段没有"+",取整个字段
T_RCV_ISSUE表
WH_CD 分别为 MR-PS+007,MR-WS,MR-WS+001,MR-PS
执行
SELECT CASE
       WHEN INSTR(WH_CD, '+', 1, 1) > 0
       THEN SUBSTR(WH_CD, 1, INSTR(WH_CD, '+', 1, 1) - 1)
       ELSE WH_CD
       END AS WH_CD
from   T_RCV_ISSUE
结果:MR-PS,MR-WS,MR-WS,MR-PS


相关文档:

Oracle递归查询

有的情况下,我们需要用递归的方法整理数据,这才程序中很容易做到,但是在数据库中,用SQL语句怎么实现?下面我以最典型的树形结构来说明下如何在Oracle使用递归查询。
    为了说明方便,创建一张数据库表,用于存储一个简单的树形结构
Sql代码
create table TEST_TREE   
( &n ......

Oracle数组入门

Oracle数组一般可以分为固定数组和可变数组
固定数组
Sql代码
   declare 
   type v_ar is varray(10) of varchar2(30); 
   my_ar v_ar:=v_ar('g','m','d','龚','帅'); 
   begin 
          for ......

Oracle数据导入导出imp/exp

Oracle数据导入导出imp/exp

功能:Oracle数据导入导出imp/exp就相当与oracle数据还原与备份。
 
      大多情况都可以用Oracle数据导入导出完成数据的备份和还原(不会造成数据的丢失)。 Oracle有个好处,虽然你的电脑不是服务器,但是你装了oracle客户端,并建立了连接 ......

oracle flashback


1,闪回数据库到之前某时间点(在安装时需要开放闪回功能)
不支持表空间删除
 select name from v$database;
 --看是否打开闪回功能
 select flashback_on,name from v$database;
 select name from v$bgprocess where paddr<>'00' order by 1;
打开闪回功能
SQL> shutdown immedia ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号