首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

Oracle中char门类乱谈

2012-08-21 
Oracle中char类型乱谈今天有个朋友问我关于char类型和varchar2类型的取舍问题,我自然推荐他使varchar2。因

Oracle中char类型乱谈
    今天有个朋友问我关于char类型和varchar2类型的取舍问题,我自然推荐他使varchar2。因为我就是这么干的,varchar2灵活且不浪费存储空间就是我的理由,后来就顺手测试了下。这里把测试拿出来,这里重点讨论下char的问题:

在测试的过程中,使用的基本SQL判断语句就是:
     1: 查看数据库的parameters; select * from nls_database_parameters;
     2: 使用dump查看数据的存储情况; select dump(col_name) from dual;
-----------------------------------
步骤一,查看数据库的字符集(NLS_NCHAR_CHARACTERSET),和NLS_LENGTH_SEMANTICS的取值情况,执行完语句:
   

select length(char_data_char), length(char_data_byte) from test_s_char;

    而在使用jdbc的ResultSet来获取char的数据时,使用getString()方法返回的数据总是数据定义的长度,如果不足则使用ASCII取值为32的space来填充,这个是需要注意的地方,同事这个也是我那哥们出岔子的地方,他虽然在表上同一格式化了数据,且使用length得到的数据也是自己期望的,但是程序捣鼓出来的就是不对,症结就在于此。

热点排行