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 标准计算超长字符串的长度相关推荐

  1. oracle中如何写函数【oracle技术】

    oracle中如何写函数[oracle技术] | 浏览:1377 | 更新:2014-04-29 23:14 | 标签:oracle 在oracle数据开发中函数是必不可少的.函数可以一般是可以完成某 ...

  2. oracle中匹配函数怎么用,Oracle中的正则表达式(及函数)详解

    运算符 在介绍函数前,这里先说明一下Oracle中正则表达式运算符及其描述. 如果不知道他们有什么用,或者也不知道描述说的是什么,没关系,可以先看后面的介绍,就知道他们的含义了. 图片.png ora ...

  3. oracle中lang能不能查找,oracle中的查询语句

    PL/SQL单行函数和组函数详解 函数是一种有零个或多个参数并且有一个返回值的程序.在SQL中Oracle内建了一系列函数,这些函数都可被称为SQL或PL/SQL语句,函数主要分为两大类: 单行函数 ...

  4. oracle 中的日志在处理,ORACLE在存储过程中记录日志的处理包

    Java开发过程中一般使用LOG4J来将程序的运行日志记录到文件中,在ORACLE存储过程中也需要记录日志,我将工作中自己整理的一个记录日志的包分享出来,其实很简单,希望大家多提意见. 一.表结构 为 ...

  5. oracle中函数怎么使用方法,Oracle中函数的使用

    1.decode () 例子:它的写法如下decode('a','b','c','d'),其中a,b,c,d可以是其他函数也可以是数值,依据我们自己的情况来使用,它的含义是如果a=b,那么结果显示c, ...

  6. oracle中spool命令的使用,Oracle中Spool命令的使用方法实例

    Oracle中Spool命令的使用方法实例 前言 对于Oracle中的Spool命令,其实还可以换一种问法为,如何将sqlplus中的结果输出到指定的文件夹中. 近期在进行Oracle数据库备份的时候 ...

  7. oracle中minus作的应用,Oracle minus用法详解及应用实例

    Oracle minus用法详解及应用实例 Oracle minus用法 "minus"直接翻译为中文是"减"的意思,在Oracle中也是用来做减法操作的,只不 ...

  8. 从oracle中读取图片,Pb从oracle中读取和保存图片

    Pb从oracle中读取和保存图片 (2008-12-12 12:23:20) 转载 分类:编程 标签: it //保存图片 //选择文件 string pname, fname integer va ...

  9. oracle中or的替函数,Oracle常用内置Or自定义函数-SQL宝典

    一 .函数使用说明 1.NLSSORT(列名,排序规则) 在oracle9i中新增了按照拼音.部首.笔画排序功能.设置NLS_SORT值 SCHINESE_RADICAL_M   按照部首(第一顺序) ...

  10. oracle中右击出现的含义,Oracle中经典的问题解决方案-Oracle

    对于 Oracle 数据库的开发,我们可能有时候会遇到一些奇怪的问题,与其它数据库存在不同的差异的问题,在这里我列举了一些比较有趣的问题 问题一:解决Oracle中时间问题 Oracle默认date类 ...

最新文章

  1. 第15组构建之法团队心得(2)
  2. 水晶报表 jar包版本过低_工具类学习-UReport报表设计器整合
  3. LAMP或LNMP一键安装包
  4. 跳转语句_javascript流程语句(单分支)
  5. grpc,protoc, protoc-gen-go,rust
  6. html阶梯统计,html,_有什么图表可以显示阶梯费率,html - phpStudy
  7. zb_system login.php,zblog后台登录地址怎么修改?
  8. scrollView截取指定区域的图片
  9. soapui 免费版 实现 datasource+ dataLoop
  10. 软件系统概要设计的三大要素
  11. 1998-2018 TOM邮箱20年发展
  12. 第八章:加载Maya2011模型
  13. AI助力智能安检,基于目标检测模型实现X光安检图像智能检测分析
  14. 老外网络语言缩写总结
  15. 安卓手机管理_安卓必备!!一个小工具干掉所有乱搞的APP,手机速度瞬间提升,管理后台应用...
  16. (每日一练python)有效的数独
  17. W10电脑U盘插入电脑不显示盘符但是“安全删除硬件并弹出媒体”中却有该U盘
  18. Windows远程桌面实现之六(新版本框架更新,以及网页HTML5音频采集通讯)
  19. 悟透JavaScript之对象素描
  20. sku与spu 概念

热门文章

  1. android 音频子系统框架(一)
  2. AppThinning之AppSlicing
  3. NMOS与PMOS的区分及使用
  4. 每天一练:html简单文字排版
  5. 基于TADK的SQLI检测
  6. php传值和引用哪个效率高,php方法传值和传引用性能比较
  7. python尼姆游戏_一个傻傻的尼姆游戏及其Python实现
  8. 档案管理系统操作说明
  9. 关于下载的wide形式的数据(横轴为地区,纵轴为年份)批量转换为long形式的代码(stata版)
  10. 计算机名、有线网卡mac地址、无线网卡mac地址