中科院云平台架构师,专注于数字化、智能化,技术方向:云、Linux内核、AI、MES/ERP/CRM/OA、物联网、传感器、大数据、ML、微服务。
分类: Oracle
2013-07-10 11:29:37
Q:PL/SQL中 varchar 和 varchar2有什么区别?
A:
varchar 存放的字符数据最长2000。
varchar2 存放字符数据最大长度为4000字。 它是oracle独特的数据类型
在oracle里使用存储过程时,如果遇到一个字段字段经常被修改,比如拼接sql语句或者用游标修改某个表字段,这种情况下使用varchar类型。varchar类型是固定长度的,而varchar2是变化的一个长度,修改的效率相对较低。
varchar2和varchar的目前没有区别,不过以后的版本就不支持varchar类型,如果想新版本的数据库兼容就不要用varchar,如果想和其它数据库兼容就不要用varchar2.
1.varchar2把所有字符都占两字节处理(一般情况下),varchar只对汉字和全角等字符占两字节,数字,英文字符等都是一个字节;
2.VARCHAR2把空串等同于null处理,而varchar仍按照空串处理;
3.VARCHAR2字符要用几个字节存储,要看数据库使用的字符集,
大部分情况下建议使用varchar2类型,可以保证更好的兼容性。
Q:SQLServer中varchar和nvarchar有什么区别?
A:varchar(n)长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。nvarchar(n)包含 n 个字符的可变长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。字节的存储大小是所输入字符个数的两倍。两字段分别有字段值:我和coffee那么varchar字段占2×2+6=10个字节的存储空间,而nvarchar字段占8×2=16个字节的存储空间。如字段值只是英文可选择varchar,而字段值存在较多的双字节(中文、韩文等)字符时用nvarchar上面是一个总结介绍,通过上面的介绍,可以知道。varchar(4) 可以输入4个字线,也可以输入两个汉字nvarchar(4) 可以输四个汉字,也可以输4个字母,但最多四个