oracle varchar 比较,Oracle中的varchar和varchar2有什么区别?

取自最新的稳定的Oracle生产版本12.2: 数据类型

的主要区别在于,VARCHAR2为内部数据类型和VARCHAR是一个外部数据类型。因此,我们需要了解内部和外部数据类型之间的区别...

在数据库内部,值存储在表的列中。在内部,Oracle用称为内部数据类型的特定格式表示数据。

通常,OCI(Oracle调用接口)应用程序不适用于数据的内部数据类型表示形式,但可以使用由编写语言所预定义的宿主语言数据类型。在OCI客户端应用程序和数据库表之间传输数据时,OCI库会在内部数据类型和外部数据类型之间转换数据。

外部类型使程序员可以使用宿主语言类型而不是专有数据格式来为程序员提供便利。在Oracle数据库和OCI应用程序之间传输数据时,OCI可以执行各种数据类型转换。OCI外部数据类型比Oracle内部数据类型更多。

的VARCHAR2数据类型是具有4000个字节的最大长度字符的可变长度的字符串。如果init.ora参数max_string_size为默认值,则a的最大长度VARCHAR2可以为4000字节。如果init.ora参数max_string_size =扩展,则a的最大长度VARCHAR2可以是32767字节

的VARCHAR不同长度的数据类型存储字符串。前2个字节包含字符串的长度,其余字节包含字符串。绑定或定义调用中字符串的指定长度必须包含两个长度字节,因此VARCHAR可以接收或发送的最大字符串长度为65533字节,而不是65535。

在12.2数据库快速测试表明,作为内部数据类型中,Oracle仍然把一个VARCHAR作为假对VARCHAR2。它不是SYNONYMOracle中实际的对象类型。

SQL> select substr(banner,1,80) from v$version where rownum=1;

Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

SQL> create table test (my_char varchar(20));

Table created.

SQL> desc test

Name                 Null?    Type

MY_CHAR                       VARCHAR2(20)

VARCHARProC / C ++预编译器选项也有一些含义。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值