读书人

Oracle中char门类乱谈

发布时间: 2012-08-21 13:00:21 作者: rapoo

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得到的数据也是自己期望的,但是程序捣鼓出来的就是不对,症结就在于此。

读书人网 >其他数据库

热点推荐