- 浏览: 472813 次
-
文章分类
最新评论
-
datawarehouse:
来学习了。
什么是informatic? -
nange223:
感谢分享,学习了
一些数据库监控,优化,管理工具 -
pianxibin:
ertrth thr dj dyj
一些数据库监控,优化,管理工具 -
gekky6:
多谢分享,学习下
一些数据库监控,优化,管理工具 -
lqlein:
好好学习学习
一些数据库监控,优化,管理工具
1、substr()
substr('This is a test', 6, 2) would return 'is'
substr('This is a test', 6) would return 'is a test'
substr('TechOnTheNet', 1, 4) would return 'Tech'
substr('TechOnTheNet', -3, 3) would return 'Net'
substr('TechOnTheNet', -6, 3) would return 'The'
substr('TechOnTheNet', -8, 2) would return 'On'
2、insert()
例如:INSTR('CORPORATE FLOOR','OR', 3, 2)中,源字符串为'CORPORATE FLOOR', 目标字符串为'OR',起始 位置为3,取第2个匹配项的位置。
默认查找顺序为从左到右。当起始位置为负数的时候,从右边开始查找。
所以SELECT INSTR('CORPORATE FLOOR', 'OR', -1, 1) "Instring" FROM DUAL的显示结果是
Instring
——————
14
3、oracle中length()与lengthb()区别
LENGTH('阿猪')
--------------
2
SQL> select lengthb('阿猪') from dual;
LENGTHB('阿猪')
---------------
4
SQL> select lengthb('镀锌钢管*6m') from dual;
LENGTHB('镀锌钢管*6M')
-------------------------
14
SQL> select length('镀锌钢管*6m') from dual;
LENGTH('镀锌钢管*6M')
------------------------
10
4、oracle中的正则表达式(regular expression)
正则表达式是很多编程语言中都有的。可惜oracle8i、oracle9i中一直迟迟不肯加入,好在oracle10g中终于增加了期盼已久的正则表达式功能。你可以在oracle10g中使用正则表达式肆意地匹配你想匹配的任何字符串了。
所谓正则表达式是对于字符串进行匹配的一种模式。举个例子来说字符串’^198[0-9]$’可以匹配‘1980-1989’,也即80后出生的年份。如果希望统计出公司那些员工是80后的,就可以使用如下的SQL语句:
select * from emp where regexp_like(to_char(birthdate,’yyyy’),’^198[0-9]$’);
这里用到了regexp_like和to_char函数。
这里在正则表达式中用到的^、$、[0-9]都被称为元数据(metacharacter),正则表达式都是由多元表达式组成的。在这里,^表示一个字符串的开头,$表示一个字符换的结尾,因此^198表示以198开头的字符串,而[0-9]$则表示以0-9的数字结尾的字符串。因此整体上’^198[0-9]$’就能匹配所有1980-1989的字符串。
正则表达式中常用到的元数据(metacharacter)如下:
- ^ 匹配字符串的开头位置。
- $ 匹配支付传的结尾位置。
- * 匹配该字符前面的一个字符0次,1次或者多次出现。例如52*oracle 可以匹配 5oracle,52oracle,522oracle,5222oracle等等。
- + 匹配该字符前面的一个字符1次或者多次出现。例如52+oracle 可以匹配 52oracle,522oracle,5222oracle等等
- ? 匹配该字符前面的一个字符0次或1次或者多次出现。例如52?oracle 只能匹配5oracle,52oracle等等
- {n} 匹配一个字符串n次,n为正整数。例如:hel{2}o 所匹配的是hello
- {n,m} 匹配一个字符串至少n次,至多m次。其中n和m都是整数。
- . 匹配除了null之外的任何单个字符串
- (pattern) 这个是用来匹配指定模式的一个子表达式
- x|y 匹配x或者y,其中x和y是一个或者多个字符
- [abc] 匹配括号中的任意一个字符。例如:[ab]bc可以匹配abc和bbc
- [a-z] 匹配指定范围内的任意字符串。例如[A-G]hi可以匹配Ahi至Ghi
- [::]指定一个字符类,可以匹配该类中的任意字符 这里的字符类包括:
- [:alphanum:] 可以匹配字符0-9、A-Z、a-z
- [:alpha:]可以匹配字符A-Z、a-z
- [:blank:]可以匹配空格或者tab键
- [:digit:]可以匹配数字 0-9
- [:gragh:]可以匹配非空字符
- [:punct:]可以匹配. , ” ‘等标点符号。
- [:upper:]可以匹配字符A-Z
- [:lower:]可以匹配字符a-z
这里列出的是一些常见的正则表达式中的元数据。更多的正则表达式的内容请参照oracle官网上的正则表达式的相关内容
关于orace中的正则表达式只能通过oracle特意为正则表达式设计的4个函数来使用。这4个函数分别是:
regexp_like,regexp_instr,regexp_replace,regexp_substr。关于这4个函数的具体用法,会在稍后介绍,这里简单说一下:
- regexp_like(x,pattern)当x能正确匹配字符串时返回true。
- regexp_instr(x,pattern)在x中尝试匹配pattern,并返回匹配的位置。
- regexp_replace(x,pattern,replacestring)在x中尝试匹配pattern,并将其替换成replacestring。
- regexp_substr(x,pattern)返回x中匹配pattern的一个字符串。
关于这几个函数的具体用法会稍后详细介绍。
<!---->regexp_instr的原型如下:
regexp_instr(x,pattern[,start[,occurrence[,return_option[,match_option]]]])
这里每个参数分别含义如下:
- x 待匹配的字符串
- pattern 待匹配的模式
- start 开始匹配的位置,如果不指定默认为1
- occurrence 匹配的次数,如果不指定,默认为1
- return_option 指定返回值的类型,如果该参数为0,则返回值为匹配位置的第一个字符,如果该值为非0则返回匹配值的最后一个位置。
- match_option 可以用这个参数来修改一些默认的配置设置。这个值与前面所说的regexp_like函数中的match_option参数的意义是一样的。
下面来举几个有关regexp_instr函数的例子:
select (’i love www.52oracle.com’,'o[[:alpha:]]{4}e$’,1,1) as r from dual
这个例子从’i love www.52oracle.com’这个字符串中匹配一个模式,这个模式是以o开头,以e结尾,在o和e之间有4个字符的字符串。这样自然而然就返回oracle的起始位置14
另一个例子是:
select (’i love www.52oracle.com’,'o[[:alpha:]]{2}’,1,2,1) as r from dual
这个例子的含义是在’i love www.52oracle.com’这个字符串中匹配另一个模式,这个模式是以o开始,再包含两个字符的一个模式,因此这个模式可以是ove,也可是ora但是我们要求它匹配两次,因此这个SQL语句的结果是ora所在的位置,所在的什么位置呢?因为我们的return_option参数的值是1,即大于0,所以这的结果是16,也就单词oracle中a所在的位置。
发表评论
-
oracle分析函数row_number() over()使用
2009-12-24 16:00 2361row_number() over ([partition ... -
深入sql之merge into
2009-07-10 22:37 2245http://nodonkey.iteye.com/blog/ ... -
Oracle字符集问题总结(转)
2009-07-10 15:53 1104经常有同事咨询oracle数据库字符集相关的问题,如在不 ... -
minus/not in/not exists的原理和效率
2009-07-06 14:57 2998http://www.itpub.net/viewthread ... -
批量获取多个表的创建索引语句
2009-06-08 09:48 1612批量获取多个表的创建索引语句 一个朋友提供的set ec ... -
Truncate table,Delete,与Drop table的区别
2009-06-06 15:33 4589TRUNCATE TABLE 在功能上与不带 WHERE 子句 ... -
oracle cast() 函数问题
2009-06-02 15:03 12997SQL> create table t1(a varch ... -
db2中decimal实现oracle中trunc的方法
2009-06-02 15:00 3296在oracle中trunc的使用方法: 1.TRUNC(fo ... -
oracle是如何工作的(一个有趣的故事)
2009-06-01 14:12 1214转自http://bbs3.chinaunix.net/v ... -
表约束的巧用
2009-06-01 14:08 8231、问题: 表中的一個欄位,現在是VARCHAR2(8)型的 ... -
BLOB和CLOB区别和定义
2009-06-01 11:16 10237BLOB和CLOB区别和定义 LON ... -
Oracle中忘记System和Sys密码后的处理方法
2009-05-06 21:21 1368Oracle提供两种验证方式,一种是OS验证,另一种密码文件验 ... -
Oracle SQL*Loader 使用指南(解决插入大量的数据)
2009-04-27 11:21 1616我的理解; 如果表的属性是NOLOGG ... -
数据字典——数据库概念
2009-04-24 09:37 1531来自:http://yangtingkun.itpub.net ... -
创建连接服务器
2009-03-30 10:53 878一般的方法是:oracle->Net manager 还 ... -
JIRA
2009-03-13 13:57 1157在cmcs學到的系統JIRA+SVN+Fisheye+Cruc ... -
Study Oracle Document Website
2009-03-12 09:32 1188http://www.siue.edu/~dbock/cmis ... -
查看表占用多少M
2009-03-03 13:40 917SQL> SELECT d.status "S ... -
汉字和字符分开(整理)
2009-03-02 17:11 1240SQL> create table gjtext 2 ... -
查看表或者索引空间使用
2009-03-02 16:17 826SQL> SET SERVEROUTPUT ONSQL& ...
相关推荐
1-使用wildcard函数来获得当前目录下所有.c文件的列表。 2-make的多目标规则。 3-make的模式规则。 4-用gcc -MM命令得到一个.c文件include了哪些文件。 5-用sed命令对gcc -MM命令的结果作修改。 6-用include命令包含...
python学习资源
jfinal-undertow 用于开发、部署由 jfinal 开发的 web 项目
基于Andorid的音乐播放器项目设计(国外开源)实现源码,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。
python学习资源
python学习资源
python学习一些项目和资源
【毕业设计】java-springboot+vue家具销售平台实现源码(完整前后端+mysql+说明文档+LunW).zip
HTML+CSS+JavaScarip开发的前端网页源代码
python学习资源
【毕业设计】java-springboot-vue健身房信息管理系统源码(完整前后端+mysql+说明文档+LunW).zip
成绩管理系统C/Go。大学生期末小作业,指针实现,C语言版本(ANSI C)和Go语言版本
1_基于大数据的智能菜品个性化推荐与点餐系统的设计与实现.docx
【毕业设计】java-springboot-vue交流互动平台实现源码(完整前后端+mysql+说明文档+LunW).zip
内容概要:本文主要探讨了在高并发情况下如何设计并优化火车票秒杀系统,确保系统的高性能与稳定性。通过对比分析三种库存管理模式(下单减库存、支付减库存、预扣库存),强调了预扣库存结合本地缓存及远程Redis统一库存的优势,同时介绍了如何利用Nginx的加权轮询策略、MQ消息队列异步处理等方式降低系统压力,保障交易完整性和数据一致性,防止超卖现象。 适用人群:具有一定互联网应用开发经验的研发人员和技术管理人员。 使用场景及目标:适用于电商、票务等行业需要处理大量瞬时并发请求的业务场景。其目标在于通过合理的架构规划,实现在高峰期保持平台的稳定运行,保证用户体验的同时最大化销售额。 其他说明:文中提及的技术细节如Epoll I/O多路复用模型以及分布式系统中的容错措施等内容,对于深入理解大规模并发系统的构建有着重要指导意义。
基于 OpenCV 和 PyTorch 的深度车牌识别
【毕业设计-java】springboot-vue教学资料管理系统实现源码(完整前后端+mysql+说明文档+LunW).zip
此数据集包含有关出租车行程的详细信息,包括乘客人数、行程距离、付款类型、车费金额和行程时长。它可用于各种数据分析和机器学习应用程序,例如票价预测和乘车模式分析。
把代码放到Word中,通过开发工具——Visual Basic——插入模块,粘贴在里在,把在硅基流动中申请的API放到VBA代码中。在Word中,选择一个问题,运行这个DeepSeekV3的宏就可以实现在线问答
【毕业设计】java-springboot+vue机动车号牌管理系统实现源码(完整前后端+mysql+说明文档+LunW).zip