oracle中字符串长度计算,根据 oracle 标准计算超长字符串的长度
Oracle 数据库使用 sql语句 : select lengthb('输入字符串') from dual , 来计算 字符串 所占的字节长度(比如,一个汉字3个字节),但是用这个lengthb函数时,输入字符串的长度不能超过4000,这样遇到一些超长字符串就不行了,因此,需要用下面的三个vb.net函数来配合获取:
PrivateFunctiongetStrLength_long(strInputAsString)AsInteger
'Try
Dimlist_strsAsList(OfString) = getList_shortStrs(strInput)
DimtotalLengthAsInt16= 0
ForEach_strInlist_strs
totalLength += getStrLength_short(_str)
Next
ReturntotalLength
'Catch ex As Exception
' MessageBox.Show("当前输入的有特殊字符,不容许 " & ex.ToString)
' Return 0
'End Try
EndFunction
'''
''' 这个函数的功能,是将输入的一个长字符串转化为 由若干条较短的字符串组成的列表
''' 本函数是为了测算字符串的长度而做配套的,
''' oracle在测算字符串长度时,字符串长度不能超过4000个字节,否则会出错
''' 所以,将一条长字符串转化为若干条短字符串,对每条短字符串分别测算长度,再累加起来,即长字符串的长度
'''
'''输入的一个长字符串
'''
PrivateFunctiongetList_shortStrs(strInputAsString)AsList(OfString)
DimlengthValueAsInt16= 1000' 阈值, 短字符串的长度
' 之所以定为 1000 ,是因为即使这1000个字符全是汉字,1000 *3 = 3000,仍然小于 4000
Dimlist_strsAsList(OfString) =NewList(OfString)
DimtotalLengthAsInt16= strInput.Length' 名义上的总长度
IftotalLength < lengthValueThen' 如果名义长度 小于 阈值
list_strs.Add(strInput)
Returnlist_strs' 返回
EndIf
' 现在知道该字符串 的长度 超过阈值了,需要处理
Dimii = 0
While(ii + 1) * lengthValue <= totalLength' 对长字符串进行 分段
list_strs.Add(strInput.Substring(ii * lengthValue, lengthValue))
ii += 1
EndWhile
' 最后一小段字符串
list_strs.Add(strInput.Substring(ii * lengthValue, strInput.Length - ii * lengthValue))
Returnlist_strs' 返回
EndFunction
' 下面这个函数只能对较短的字符串(长度不超过4000)判断长度
PrivateFunctiongetStrLength_short(strInputAsString)AsString
IfstrInput.Length = 0Then
Return0
EndIf
' 下面,直接根据Oracle数据库的判读字符串长度的方法来判断
' lengthb(string)计算string所占的字节长度: select lengthb('¥') from dual
DimstrSqlAsString="select lengthb('"& strInput &"') from dual"
DimrsAsNewADODB.Recordset
DimdaAsNewData.OleDb.OleDbDataAdapter()
DimcmdAsNewADODB.Command
cmd.CommandText = strSql
cmd.ActiveConnection = conn
cmd.CommandType = CommandType.Text
'Try
rs = cmd.Execute() ' 执行
'Catch ex As Exception
' 'MessageBox.Show("当前输入的字符串有特殊字符,无法判断长度")
' Return "过长或特殊字符,无法判断长度"
'End Try
IfNotrs.EOFThen
Returnrs.Fields(0).Value.ToString
EndIf
Return""
EndFunction
oracle中字符串长度计算,根据 oracle 标准计算超长字符串的长度相关推荐
- oracle中如何写函数【oracle技术】
oracle中如何写函数[oracle技术] | 浏览:1377 | 更新:2014-04-29 23:14 | 标签:oracle 在oracle数据开发中函数是必不可少的.函数可以一般是可以完成某 ...
- oracle中匹配函数怎么用,Oracle中的正则表达式(及函数)详解
运算符 在介绍函数前,这里先说明一下Oracle中正则表达式运算符及其描述. 如果不知道他们有什么用,或者也不知道描述说的是什么,没关系,可以先看后面的介绍,就知道他们的含义了. 图片.png ora ...
- oracle中lang能不能查找,oracle中的查询语句
PL/SQL单行函数和组函数详解 函数是一种有零个或多个参数并且有一个返回值的程序.在SQL中Oracle内建了一系列函数,这些函数都可被称为SQL或PL/SQL语句,函数主要分为两大类: 单行函数 ...
- oracle 中的日志在处理,ORACLE在存储过程中记录日志的处理包
Java开发过程中一般使用LOG4J来将程序的运行日志记录到文件中,在ORACLE存储过程中也需要记录日志,我将工作中自己整理的一个记录日志的包分享出来,其实很简单,希望大家多提意见. 一.表结构 为 ...
- oracle中函数怎么使用方法,Oracle中函数的使用
1.decode () 例子:它的写法如下decode('a','b','c','d'),其中a,b,c,d可以是其他函数也可以是数值,依据我们自己的情况来使用,它的含义是如果a=b,那么结果显示c, ...
- oracle中spool命令的使用,Oracle中Spool命令的使用方法实例
Oracle中Spool命令的使用方法实例 前言 对于Oracle中的Spool命令,其实还可以换一种问法为,如何将sqlplus中的结果输出到指定的文件夹中. 近期在进行Oracle数据库备份的时候 ...
- oracle中minus作的应用,Oracle minus用法详解及应用实例
Oracle minus用法详解及应用实例 Oracle minus用法 "minus"直接翻译为中文是"减"的意思,在Oracle中也是用来做减法操作的,只不 ...
- 从oracle中读取图片,Pb从oracle中读取和保存图片
Pb从oracle中读取和保存图片 (2008-12-12 12:23:20) 转载 分类:编程 标签: it //保存图片 //选择文件 string pname, fname integer va ...
- oracle中or的替函数,Oracle常用内置Or自定义函数-SQL宝典
一 .函数使用说明 1.NLSSORT(列名,排序规则) 在oracle9i中新增了按照拼音.部首.笔画排序功能.设置NLS_SORT值 SCHINESE_RADICAL_M 按照部首(第一顺序) ...
- oracle中右击出现的含义,Oracle中经典的问题解决方案-Oracle
对于 Oracle 数据库的开发,我们可能有时候会遇到一些奇怪的问题,与其它数据库存在不同的差异的问题,在这里我列举了一些比较有趣的问题 问题一:解决Oracle中时间问题 Oracle默认date类 ...
最新文章
- 第15组构建之法团队心得(2)
- 水晶报表 jar包版本过低_工具类学习-UReport报表设计器整合
- LAMP或LNMP一键安装包
- 跳转语句_javascript流程语句(单分支)
- grpc,protoc, protoc-gen-go,rust
- html阶梯统计,html,_有什么图表可以显示阶梯费率,html - phpStudy
- zb_system login.php,zblog后台登录地址怎么修改?
- scrollView截取指定区域的图片
- soapui 免费版 实现 datasource+ dataLoop
- 软件系统概要设计的三大要素
- 1998-2018 TOM邮箱20年发展
- 第八章:加载Maya2011模型
- AI助力智能安检,基于目标检测模型实现X光安检图像智能检测分析
- 老外网络语言缩写总结
- 安卓手机管理_安卓必备!!一个小工具干掉所有乱搞的APP,手机速度瞬间提升,管理后台应用...
- (每日一练python)有效的数独
- W10电脑U盘插入电脑不显示盘符但是“安全删除硬件并弹出媒体”中却有该U盘
- Windows远程桌面实现之六(新版本框架更新,以及网页HTML5音频采集通讯)
- 悟透JavaScript之对象素描
- sku与spu 概念