oracle--varchar2
2016-03-21 15:49
344 查看
1. varchar2列最多占用4000字节,但是能容纳多少字符就不一定了
使用sql查看字符集:
select userenv('language') from dual;
--select * from v$nls_parameters where parameter='NLS_CHARACTERSET';
如果是ZHS16GBK,则一个字符占用两个字节;AL32UTF8或UTF8,则英文字符一个字节,一个汉字占用三到四个字节
可使用sql
SELECT LENGTHB('您好') FROM DUAL;
查看占用了几个字节
2. 如果修改字符集,使用:
ALTER DATABASE CHARACTER SET UTF8
对数据库服务器而言,错误的修改字符集将会导致很多不可测的后果,可能会严重影响数据库的正常运行,所以在修改之前一定要确认两种字符集是否存在子集和超集的关系
特别说明:我们最常用的两种字符集ZHS16GBK和ZHS16CGB231280之间不存在子集和超集关系,因此理论上讲这两种字符集之间的相互转换不受支持修改
如果要从父集转到子集,需要使用INTERNAL_USE参数,跳过超子集检测
ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE UTF8;
使用sql查看字符集:
select userenv('language') from dual;
--select * from v$nls_parameters where parameter='NLS_CHARACTERSET';
如果是ZHS16GBK,则一个字符占用两个字节;AL32UTF8或UTF8,则英文字符一个字节,一个汉字占用三到四个字节
可使用sql
SELECT LENGTHB('您好') FROM DUAL;
查看占用了几个字节
2. 如果修改字符集,使用:
ALTER DATABASE CHARACTER SET UTF8
对数据库服务器而言,错误的修改字符集将会导致很多不可测的后果,可能会严重影响数据库的正常运行,所以在修改之前一定要确认两种字符集是否存在子集和超集的关系
特别说明:我们最常用的两种字符集ZHS16GBK和ZHS16CGB231280之间不存在子集和超集关系,因此理论上讲这两种字符集之间的相互转换不受支持修改
如果要从父集转到子集,需要使用INTERNAL_USE参数,跳过超子集检测
ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE UTF8;
相关文章推荐
- 如何实现在Oracle中应用存储过程调用MatLab函数(2)
- 如何实现在Oracle中应用存储过程调用MatLab函数(1)
- oracle中clob类型的使用
- oracle 数据库 查询结构拼接输出到本地文件
- Oracle数据库中的空值
- oracle 创建、删除唯一性约束
- ubuntu14.04安装Oracle_linux_x64_11gR2
- oracle 表空间的处理
- Oracle 11g的 7个服务 说明
- oracle死锁处理
- oracle 查看表被哪个使用(oracle 查看表被锁)百度
- oracle 倒库后insert id冲突的问题
- Oracle查询多个字段行转列处理实践案例
- oracle Plsql 执行update或者delete时卡死问题解决办法
- oracle client ORA-12541: TNS: 无监听程序
- 安装oracle遇到的bug及解决方法
- Oracle定时执行存储过程
- oracle分页查询sql
- oracle恢复删除的数据
- oracle 表死锁