当前位置:首页 » 数据仓库 » 数据库varcharvarchar2
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

数据库varcharvarchar2

发布时间: 2022-05-14 02:33:07

A. oracle varchar 和varchar2的区别

varchar2是oracle提供的独特的数据类型
oracle保证在任何版本中该数据类型向上和向下兼容
但不保证varchar,这是因为varchar是标准sql提供的数据类型
有可能随着sql标准的变化而改变
不过ocacle以后的版本就不支持varchar类型,如果想新版本的数据库兼容就不要用varchar,如果想和其它数据库兼容就不要用varchar2
另外区别(重点):
varchar2存放空字符串'',和null,都统一用null来存放到数据库中,直接查询''是查询不到东西的,这是跟其他数据库的主要区别。
海枫科技

B. PL SQL中 varchar 和 varchar2有什么区别

1.varchar2把所有字符都占两字节处理(一般情况下),varchar只对汉字和全角等字符占两字节,数字,英文字符等都是一个字节;
2.VARCHAR2把空串等同于null处理,而varchar仍按照空串处理;
3.VARCHAR2字符要用几个字节存储,要看数据库使用的字符集,
大部分情况下建议使用varchar2类型,可以保证更好的兼容性。

C. 在oracle数据库中为什么推荐使用varchar2类型而不推荐使用char和varchar

例如:
v_char
varchar2(10);
c_char
char(10);
varchar2:对于定义长度的变量或表中的字段的长度可变,就是定义varchar2(10),你只有一个字符时,变量或表中的字段里面就只保存了1个字符,不补空格,v_char='A';length(v_char)=1。
c_char/varchar:是定长数据:赋值c_char='A',实际上是:c_char='A
',length(c_char)=10。
如果作比较的话如果使用c_char/varchar,你会比较痛苦的
if
c_char=v_char
then
这样的语句出来的肯定是:false否(else)里面的,要对c_char实行rtrim才是:真:if
rtrim(c_char)=v_char
then
这才返回:ture

D. VARCHAR2与VARCHAR的区别

二者的区别如下:
1,varchar2把所有字符都占两字节处理(一般情况下),varchar只对汉字和全角等字符占两字节,数字,英文字符等都是一个字节;

2,VARCHAR2把空串等同于null处理,而varchar仍按照空串处理;
3,VARCHAR2字符要用几个字节存储,要看数据库使用的字符集。

大部分情况下建议使用varchar2类型,可以保证更好的兼容性。

E. oracle中字段类型varchar2最大长度是多少

1、varchar2有两个最大长度:一个是在字段类型4000;一个是在PL/SQL中变量类型32767。这是一个比较容易出错的地方。

2、因为在函数中可以声明长度超过4000的字符串变量,并且将它作为返回值,这里是不会提示编译错误的。这个函数平时都可以正常执行,而一旦这个字符串长度超过4000,函数执行就会出错。

3、在pl/sql中,建个函数,测试varchar2长度,可以看到函数是成功的;

(5)数据库varcharvarchar2扩展阅读

1、varchar2是oracle提供的独有的数据类型,varchar2是存放可变长度的字符串,最大长度是4000.

2、在oracle中 varchar2的最大长度为4000 bytes,即varchar2(4000),最多能储存2000个汉字或4000位的数字字母。当储存值超过时可以使用clob(Character Large Object)或blob(Binary Large Object)类型。

3、varchar、varchar2、nvarchar2区别

1)varchar(50) 表示该字段类型为varchar2类型,长度为50,可以存单字节字符50个,如字母、数字等,可以存储双字节字符25个,如汉字。不同的是,若输入的不足,则以空格填充。

2)varchar2(50) 表示该字段类型为varchar2类型,长度为50,可以存单字节字符50个,如字母、数字等,可以存储双字节字符25个,如汉字。

3)nvarchar2(50)表示该字段类型为nvarchar2,长度为50,不论英文,数字,中文都能存50个。

参考资料

ORACLE数据库-网络

F. char,varchar和varchar2的区别

char:
使用指定长度的固定长度表示的字符串;比如char(8),则数据库会使用固定的8个字节来存储数据
,不足8为的字符串在其后补空字符;
varchar
在oracle中varchar跟char是一个类型;sqlserver中varchar相当于oracle中的varchar2
varchar2
用实际字符数+2个字节来存储的变长字符串;比如一个字段定义为varchar(10),而实际存储的内容为
‘A’,则数据库会用3个字节来存储该字符串,其中前两个字节用来存储字符的长度;
在数据库中的字段,由于一个字段大小不能超过一个block的长度,所以varchar和char都是最大为
8000个字节,由于可能会存储汉字,也就是一个字符用2个字节来存储,所以字段中最大定义为varchar
(4000),而在plsql中,这个大小的限制变为32000左右,这是因为表示其大小的字节只有两个。

G. oracle中varchar,varchar2,nvarchar,nvarchar2有什么区别

一、varchar和varchar2之间的区别

1、在一般情况下,varchar2把所有字符都占两字节处理,而varchar只对汉字和全角等字符占两字节,数字,英文字符等都是一个字节。

2、varchar2把空串等同于null处理,而varchar仍按照空串处理。

3、varchar2字符要用几个字节存储,要看数据库使用的字符集,比如GBK,汉字就会占两个字节,英文1个如果是UTF-8,汉字一般占3个字节,英文还是1个。

二、nvarchar和nvarchar2的区别

1、nvarchar中字符为中文则一般按2个字节计算,英文数字等按照一个自己计算。

2、nvarchar2中所有字符均按照2个字节计算。

3、nvarchar2虽然更占空间,但是它有更好的兼容性,所有推荐使用。

(7)数据库varcharvarchar2扩展阅读

Oracle数据库

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。

可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库解决方案。

H. 在oracle中varchar和varchar2有什么区别

区别点:

  • varchar只对汉字和全角等字符占两字节,数字,英文字符等都是一个字节。

  • varchar2把空串等同于null处理,而varchar仍按照空串处理。

  • varchar2把所有字符都占两字节处理(一般情况下),并且字符要用几个字节存储,要看数据库使用的字符集。

I. char varchar varchar2 的区别

1、处理速度

char 和相同长度的varchar处理速度差不多。varchar的长度不会影响处理速度;

2、string

O/R Mapping中对应实体的属性类型一般是以string居多,用char[]的非常少,所以如果按mapping的合理性来说,可变长度的类型更加吻合;varchar的存放和string是一样原理的,即length {block}这种方式,所以varchar的长度和它实际占用空间是无关的;

3、查询成本

char和varchar的比较成本是一样的,现在关键就看它们的索引查找的成本了,因为查找策略都一样,因此应该比较谁占用空间小。

例:

在存放相同数量的字符情况下,如果数量小,那么char占用长度是小于varchar的,但如果数量稍大,则varchar完全可能小于char,而且要看实际填充数值的充实度,比如说varchar(3)和char(3),那么理论上应该是char快了,但如果是char(10)和varchar(10),充实度只有30%的情况下,理论上就应该是varchar快了。

因为varchar需要额外空间存放块长度,所以只要length(1-fillfactor)大于这个存放空间(好像是2字节),那么它就会比相同长度的char快了。

(9)数据库varcharvarchar2扩展阅读:

1、如果数据量非常大,又能100%确定长度且保存只是ansi字符,那么char;

2、能确定长度又不一定是ansi字符或者,那么用nchar;

3、不确定长度,要查询且希望利用索引的话,用nvarchar类型吧,将它们设到400;

4、不查询的话没什么好说的,用nvarchar(4000);

5、性格豪爽的可以只用3和4,偶尔用用1,毕竟这是一种额外说明,等于告诉别人说,我一定需要长度为X位的数据。

J. Oracle数据库中的varchar2类型

varchar2(50)
表示该字段类型为varchar2类型,长度为50,可以存单字节字符50个,如字母、数字等,可以存储双字节字符25个,如汉字。
varchar2是Oracle中特有的一种数据库类型,与varchar的区别在于
varchar
存贮为定长
varchar2
存贮为不定长。
即:如果定义了一个字段为varchar(10),那么存贮到这个字段的值,不管有没有10个字符,都存贮为10个字符长度,不足的部份补足空格。而如果定义为varchar2(10),那么按实际值来存贮,即字段值有多长存贮为多长,不补足空格。这样,在进行字段值的比较时,varchar2显然比
varchar字段简单且不易出错。另外,在进行存贮时,varchar2
也比varchar节约存贮空间。因此建议用varchar2来代替varchar类型。除非你能确定这个字段存贮内容总是那么长,那么varchar字段也是可以用的。
varchar2的最大长度是4000