Oracle 【to_number】【instr】

需求:对一个包含数字的字符串排序

search后参考了  http://www.cnblogs.com/m-cnblogs/archive/2012/03/30/2425938.html

截屏:

(用到了to_number(str,split 1,...)   instr()  replace()  substr())

TO_NUMBER(x [, format], [ nls_language ]) 

converts x to a NUMBER.

  • x is the string that will be converted to a number.
  • format, optional, is the format that will be used to convert x to a number.
  • nls_language, optional, is the nls language used to convert x to a number

INSTR(string, pattern-to-find)

INSTR returns the location (beginning) of a pattern in a given string. Its simple form is:

The general syntax of INSTR is:

INSTR (string to search, search pattern [, start [,occurrence]])

The arguments within brackets ([]) are optional.

在一个字符串中查找指定的字符,返回被查找到的指定的字符的位置。

如果start的值为负数,则代表从右往左进行查找,但是位置数据仍然从左向右计算。

SUBSTR retrieves a portion of the string. The general format for this function is:

SUBSTR(string, start_at_position[, number_of_characters_to_retrieve])  
从给定的字符表达式返回一个子字符串。    
REPLACE(source-string, pattern-to-find, pattern-to-replace-by)

(to)‘2011-10-11’  ‘2011/10/11’ 转换

update 表1 t set t.列1=replace((select 列1from 表1 a where a.主键列=t.主键列) , ‘/‘ , ‘-‘ )

例:select  replace (‘111222333444‘,‘222‘,‘888‘) from dual;

输出为 ‘111888333444‘

最后我的代码

pn
to_number(str,’-’)

str:

replace(source ,’-’)

source:

substr(pn,instr(pn,’-’)+1, 
length(pn)-1-instr(pn,’-’))

时间: 2024-10-17 21:49:49

Oracle 【to_number】【instr】的相关文章

【我的Oracle学习笔记(二)】----- select语句补充

一.多表查询 多表查询是指从多个有关联的表中查询数据,其语法与单表查询类似.一般来说,多表查询的表要用连接联系起来,如果没连接,则查询结果是这多个查询表的笛卡尔积(注释1). 模拟查询雇员姓名和所在部门名称: select [雇员姓名],[部门名称] from [雇员表] a,scott,[部门表] b where a.[部门编号]=b.[部门编号]; 上例中,为每一个查询表指定了别名,便于SQL语句的书写. 模拟查询在”sales“部门工作的雇员其雇员姓名 select [雇员姓名] from

Oracle中奇怪的【不等于号】

Oracle中奇怪的[不等于号] 在Oracle中,不等号有三种:<>,!=,^= 例如: select * from test where name<>'xn'.返回的结果是name不为xn,且name不空的记录.但是这与我们想要得到的结果有出入,因为我们的目的是得到name为xn的全部记录,当然这也包括name为空的记录,所以这些写SQL语句是有问题的.为了解决这个问题,我们可以采用以下两种方案: select * from test where instr(concat(na

oracle数据库事务相关【weber出品必属精品】

事务的概念:事务:一个事务由一组构成一个逻辑操作的DML语句组成 事务有开始有结束,事务以DML语句开始,以Conmmit和Rollback结束.以下情况会使得事务结束: 1. 执行COMMIT 或者 ROLLBACK 语句 2. 执行DDL或者 DCL语句 3. 用户退出 4. 系统崩溃 一个事务可以包含下列语句: 1. 对数据做出一致性修改的DML语句 2. 一个 DDL 语句 3. 一个 DCL语句 DDL与和DCL语句执行的过程: 1. 首先发出COMMIT; 2. 执行对数据字典的DM

Java连接Oracle数据库开发银行管理系统【二、设计篇】

一.总体分析     此系统的实现并不难,但是如何更好的设计出实现方式还是需要更深入的分析,例如:如果再增加其他功能,是不是需要变动的 代码很少,只是直接再增加一点功能就可以了呢?如果使用的不是Oracle而是MySQL数据库呢?这都应该在设计阶段考虑清楚. 二.具体分析     1.创建test包并创建TestBank类,启动和运行系统.[启动]     2.创建service包         2.1 创建业务逻辑层类Bank,定义银行系统主菜单方法,以及功能的操作.         2.2

如何启用Oracle EBS Form监控【Z】

前言: 有时候,因某些需要,必须知道Oracle的Form被使用的情况,以方面我们做出决策: 例如,如果某个Form被使用的次数非常多,那么,这个Form的相关SQL代码就应该优先处理,以减少服务器负荷,从而提供系统运行速度. 或者,(特别是)在系统要升级的时候,这些数据就显得非常重要了:决定哪个Form应该留,哪个Form应该拿掉. 当然,这个信息只是做出决策的参考数据而已.1. 在Oracle EBS上进行Form跟踪的技术方法:Oracle EBS的一个Profile 提供此功能: Use

【翻译自mos文章】对于oracle 数据库来说,OGG的抽取进程什么时候到database中获取数据?

对于oracle 数据库来说,OGG的抽取进程什么时候到database中获取数据? 参考原文: When GoldenGate Fetches Data From The Database On Extraction For Oracle (Doc ID 1059583.1) 适用于: Oracle GoldenGate - Version 4.0.0 and later Information in this document applies to any platform. 解决方法: 问

【翻译自mos文章】oracle db 中的用户账户被锁--查看oracle用户的尝试次数

参考原文: Users Accounts Getting Locked. (Doc ID 791037.1) 其实这个文章是为oracle 别的软件产品写的,不过涉及到user 锁定问题,那还是跟db有关系. 该文章我就不全部翻译了,只翻译最有用的一点: ---lcount列是记录oracle用户用错误的密码登陆db的登陆的次数. Select lcount from SYS.USER$ where name ='<USERNAME>' [翻译自mos文章]oracle db 中的用户账户被锁

【翻译自mos文章】在Oracle GoldenGate中循环使用ggserr.log的方法

在OGG中循环使用ggserr.log的方法: 参考原文: OGG How Do I Recycle The "ggserr.log" File? (Doc ID 967932.1) 适用于: Oracle GoldenGate - Version 4.0.0 and later Generic Linux 问题 GoldenGate的 ggserr.log 日志文件包括有关 GoldenGate 事件的信息,比如:进程启动,关闭,error ,warning.该文件可能会变的很大.为

【翻译自mos文章】在OGG (Oracle GoldenGate) 中使用SCHEMATRANDATA的话,需要额外的db patch

在OGG (Oracle GoldenGate) 中使用SCHEMATRANDATA的话,需要额外的db patch 参考原文: Patches needed to support SCHEMATRANDATA in OGG (Oracle GoldenGate) (Doc ID 1426440.1) 适用于: Oracle GoldenGate - Version 11.1.1.1.1 and later Information in this document applies to any

ORACLE SQL 组函数【weber出品必属精品】

组函数:对一组数据进行加工,每组数据返回一个值 常用的组函数:count()  avg()  max()   min()  sum()   count()函数  1. count(*) :返回总共的行数,不去除NULL值 2. count(column):返回非NULL行的数量 SQL> select count(*) ,count(sal),count(comm) from emp; COUNT(*) COUNT(SAL) COUNT(COMM) ---------- ---------- -