在Oracle 9i,由于 CHAR 型字段读取的不方便,限制了 CHAR 型字段的使用.要读取一个字段的值,要用以下的方法:
SQL> create table test (
2 a char(5))
3 tablespace users;
表已创建。
SQL> insert into test values ('1');
已创建 1 行。
SQL> insert into test values ('2');
已创建 1 行。
SQL> insert into test values ('12345');
已创建 1 行。
SQL> select * from test;
A
-----
1
2
12345
SQL> select * from test where trim(a)='1';
A
-----
1
SQL> select * from test where a ='1 ';
A
-----
1
读取之前,首先要取掉空格,或者要考虑空格.
在Oracle 9i 中,对 CHAR 字段做了优化,可以用以下的方法读取:
SQL> select * from test where a='1';
A
-----
1
这种读取方法和读取 VARHCAR 类型的字段方法是相同的,所以,在读取字段串的字段时,不用再考虑 CHAR 或 VARCHAR 类型了,同时由于 CHAR 型字段在效率上的优势,对于长度变化不大的字符字段,就可以使用 CHAR 型字段了.
最后:
SQL> truncate table test;
表已截掉。
SQL> drop table test;
表已丢弃。
SQL>