char,varchar和varchar2的区别

char对于不够位数的用空格添补,而varchar和varchar2不用。

varchar和varchar2目前没有本质的区别,但是varchar2是oracle提供的独特的数据类型,oracle保证在任何版本中该数据类型向上和向下兼容,但不保证varchar,因为varchar是标准sql提供的数据类型,有可能随着sql标准的变化而改变。

nvarchar2字节的存储大小是所输入字符个数的两倍;

varchar汉字按着二个字节来存放,非汉字按照一个字节来存储。最大4000


下面的例子说明这个问题:

1 declare
2 emp_name_c char(32);
3 emp_name_v varchar2(32);
4 begin
5 emp_name_c:='www.ncn.cn gototop';
6 emp_name_v:='www.ncn.cn gototop';
7 if rtrim(emp_name_c)=emp_name_v then
8 dbms_output.put_line('The names are the same');
9 else
10 dbms_output.put_line('The names are NOT the same');
11 end if;
12 end;
SQL> /
The names are the same

PL/SQL 过程已成功完成。

SQL> ed
已写入文件 afiedt.buf

1 declare
2 emp_name_c char(32);
3 emp_name_v varchar2(32);
4 begin
5 emp_name_c:='www.ncn.cn gototop';
6 emp_name_v:='www.ncn.cn gototop';
7 if emp_name_c=emp_name_v then
8 dbms_output.put_line('The names are the same');
9 else
10 dbms_output.put_line('The names are NOT the same');
11 end if;
12* end;
SQL> /
The names are NOT the same

PL/SQL 过程已成功完成。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值