varchar2最大是4000字节,那么就看你的oracle字符集:(select userenv('language') from dual;)如果字符集是16位编码的,ZHS16GBK,那么每个字符16位,2字节,所以可以容纳2000字符.如果是32位编码的字符集,那么只能存储 1000个字符. 例如:varchar(50) 表示该字段类型为varchar2类型,长度为50,可以存单字节字符50个,如字母.数字等,可以存储双字节字符25个,如汉字.不同的是,若输入的不足,则以空格填充.var…
为纪念中华人民共和国建军90周年,特此一篇,以此纪念,我军威武!!! 一.问题背景 项目中商品发布,却没有保存成功. 二.问题定位 初步判断向数据库中保存时出现了错误,查看日志文件,由于日志文件过大就采用grep进行搜索(再一次说明grep 的强大) 其中 "ReserveProductService.update" 是要搜索的关键字,catalina.out是日志文件, -n 显示搜索内容所在行数, -B 2 是显示搜索内容的前两行(还有-C 前后几行,-A 后几行) 将2换成更大值…
今天遇到了,随手记录一下.   sql server 存储数据里面 NVARCHAR 记录中文的时候是 一个中文对应一个字符串长度,记录英文也是一个字母一个长度 标点符号也是一样.          VARCHAR 记录中文的时候一个中文对应两个字符串长度,记录英文是一个字母长度,标点符号空格的没测. 优缺点暂时不列,记一下大致区别: VARCHAR比NVARCHAR更加节省空间,但是一般是用在国外记录英文上面会比较好. 如果国外安装的语言包里面没有中文包 用VARCHAR存的中文会变成? 解决…
首先要说的是Oracle中字符类型的比较都是基于ASCII码表来实现的,我就简单做个总结. Oracle中varchar2类型的字符串使用的是非填充空格的标准来进行比较的(表格中右边的那列,注意空格的情况). Blank-Padded Nonpadded 'ac' > 'ab'  'ac' > 'ab' 'ab' > 'a  '  'ab' > 'a   ' 'ab' > 'a'  'ab' > 'a' 'ab' = 'ab'  'ab' = 'ab' 'a ' = '…
一直对varchar2.nvarchar2 字段类型存储字符数不清楚,现测试如下: 创建TT测试表 测试脚本如下: insert into tt values('1111','1111');  -----ok insert into tt values('wwww','wwww')-----ok insert into tt values('应用范围','应用范围');-----失败 提示如下: insert into tt values('应用范围','应用');-----失败 提示如下: i…
情景 原来表中的列定义成VARCHAR2类型,众所周知,VARCHAR2类型最大支持长度为4000.假设因为业务须要.想把此列转换为CLOB类型,在Oracle中直接通过ALTER语句转换是行不通的.以下依据详细事例解说在Oracle数据库中怎样把表列由VARCHAR2类型转换为CLOB类型. 演示样例准备 1. 新建两张张表TB_WITHOUT_DATA(此VARCHAR2列不包括数据)和TB_WITH_DATA(此Varchar2列包括数据) create table TB_WITHOUT_…
Oracle修改字段名 alter table 表名 rename column 旧字段名 to 新字段名 Oracle修改字段类型和长度 alter table 表名 modify 字段名 数据类型 如果是修改数据类型比如由varchar2修改为int且字段内有值,会报如下错误 解决方法参考:http://blog.csdn.net/itmyhome1990/article/details/8681206 出处:http://blog.csdn.net/itmyhome1990/article…
Oracle改动字段名 alter table 表名 rename column 旧字段名 to 新字段名 Oracle改动字段类型和长度 alter table 表名 modify 字段名 数据类型 假设是改动数据类型比方由varchar2改动为int且字段内有值,会报例如以下错误 解决方法參考:http://blog.csdn.net/itmyhome1990/article/details/8681206 出处:http://blog.csdn.net/itmyhome1990/artic…
错误提示: 一个汉字占了三个字节,而不是两个,这跟字符集有关. 查一下字符集:select userenv('language') from dual; 结果显示,本机Oracle的字符集是UTF-8,32位,而不是GBK的16位.UTF-8的每个字符占3个字节(bytes),可以通过修改默认字符集来实现varchar2(2)存储一个汉字. 若此时数据库服务器已启动,则先执行SHUTDOWN IMMEDIATE命令关闭数据库服务器,然后执行以下命令: SQL>STARTUP MOUNT; SQL…
1.在oracle中 varchar2的最大长度为4000 bytes,即varchar2(4000),最多能储存2000个汉子或4000位的数字字母.当储存值超过时可以使用clob(Character Large Object)或blob(Binary Large Object)类型. 2.使用clob就要有string转换blob的过程:java.sql.Clob c = new javax.sql.rowset.serial.SerialClob(strObj.toCharArray())…