查看: 9078|回复: 7

怎么计算一个字符串中子串的数量?

[复制链接]
论坛徽章:
5
2009日食纪念
日期:2009-07-22 09:30:002010新春纪念徽章
日期:2010-03-01 11:19:062011新春纪念徽章
日期:2011-02-18 11:43:33ITPUB十周年纪念徽章
日期:2011-11-01 16:24:042013年新春福章
日期:2013-02-25 14:51:24
跳转到指定楼层
1#
发表于 2009-5-14 16:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一个字符串中 某一个字串的数量
不用
select length(str)-length(replace(str,'s_tr',''))
from table
论坛徽章:
17
生肖徽章2007版:牛
日期:2008-12-02 13:51:42生肖徽章2007版:牛
日期:2009-01-12 11:14:47生肖徽章2007版:牛
日期:2009-01-14 09:31:04
2#
发表于 2009-5-14 16:53 | 只看该作者
原帖由 sieper 于 2009-5-14 16:29 发表
一个字符串中 某一个字串的数量
不用
select length(str)-length(replace(str,'s_tr',''))
from table


为啥不用这个?

使用道具 举报

回复
论坛徽章:
40
授权会员
日期:2009-03-04 17:06:25最佳人气徽章
日期:2013-03-19 17:24:25SQL极客
日期:2013-12-09 14:13:35优秀写手
日期:2013-12-18 09:29:09ITPUB元老
日期:2015-03-04 13:33:34白羊座
日期:2016-03-11 13:49:34乌索普
日期:2017-11-17 11:40:00
3#
发表于 2009-5-14 16:57 | 只看该作者
10G 的话 还可以用正则表达式吧

使用道具 举报

回复
论坛徽章:
5
2009日食纪念
日期:2009-07-22 09:30:002010新春纪念徽章
日期:2010-03-01 11:19:062011新春纪念徽章
日期:2011-02-18 11:43:33ITPUB十周年纪念徽章
日期:2011-11-01 16:24:042013年新春福章
日期:2013-02-25 14:51:24
4#
 楼主| 发表于 2009-5-14 17:12 | 只看该作者

回复 #2 喃喃 的帖子

因为我在触发器中对一个clob类型的字段做操作 比如说 value  clob类型的
select length(value)-length(replace(:new.value,'我要找的子串',''))
from dual ;
报错如下:
ORA-22921: 输入缓冲区的长度小于所要求的数量

使用道具 举报

回复
论坛徽章:
17
生肖徽章2007版:牛
日期:2008-12-02 13:51:42生肖徽章2007版:牛
日期:2009-01-12 11:14:47生肖徽章2007版:牛
日期:2009-01-14 09:31:04
5#
发表于 2009-5-14 17:29 | 只看该作者

回复 #4 sieper 的帖子

这样啊,估计得自己写函数了

使用道具 举报

回复
论坛徽章:
38
授权会员
日期:2005-10-30 17:05:332012新春纪念徽章
日期:2012-02-13 15:12:09现任管理团队成员
日期:2011-11-07 09:46:59ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41ITPUB9周年纪念徽章
日期:2010-10-08 09:31:21版主3段
日期:2012-05-15 15:24:112009新春纪念徽章
日期:2009-01-04 14:52:282010新春纪念徽章
日期:2010-03-01 11:06:202009日食纪念
日期:2009-07-22 09:30:00祖国60周年纪念徽章
日期:2009-10-09 08:28:00
6#
发表于 2009-5-14 20:34 | 只看该作者
将 clob 拆分成 短点的 varchar 再用 length(str)-length(replace(str,'s_tr',''))

使用道具 举报

回复
chinazjq 该用户已被删除
7#
发表于 2009-5-15 11:14 | 只看该作者
原帖由 guostong 于 2009-5-14 20:34 发表
将 clob 拆分成 短点的 varchar 再用 length(str)-length(replace(str,'s_tr',''))
问题是你要用什么策略来拆分成短点的varchar呢?会不会正好把字串给拆分了。

使用道具 举报

回复
论坛徽章:
90
生肖徽章:蛇
日期:2006-09-07 17:09:082011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:562011新春纪念徽章
日期:2011-02-18 11:43:34现任管理团队成员
日期:2011-05-07 01:45:082012新春纪念徽章
日期:2012-01-04 11:50:442012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-02-13 15:12:09
8#
发表于 2009-5-15 15:58 | 只看该作者
看看 dbms_lob.erase & dbms_lob.getlength

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表