一、先来看看Oralce中VARCHAR2()和NVARCHAR2()的官方定义

官方文档定义如下:

VARCHAR2(size [BYTE | CHAR])

Variable-length character string having maximum length size bytes or characters. Maximum size is 4000 bytes or characters,and minimum is 1 byte or 1 character. You must specify size for VARCHAR2.

BYTE indicates that the column will have byte length semantics. CHAR indicates that the column will have character semantics.

NVARCHAR2(size)

Variable-length Unicode character string having maximum length size characters. The number of bytes can be up to two times size for AL16UTF16 encoding and three times size for UTF8 encoding. Maximum size is determined by the national character set definition,with an upper limit of 4000 bytes. You must specify size for NVARCHAR2.

二、中文翻译:

VARCHAR2(size [BYTE | CHAR])

具有最大长度的字节数(bytes)或字符数(char)的可变长度的字符类型。最大长度为4000字节/字符,最小长度是1字节/字符。你必须为VARCHAR2()类型指定大小。

BYTE代表该列以字节计算长度,CHAR代表该列以字符计算长度。

NVARCHAR2(size)

具有最大长度的带有字符集属性的可变长度的字符类型。它的长度是AL16UTF16字符集的2倍,UTF8字符集的三倍。它的最大长度取决于字符集,上限位4000字节。您必须为NVARCHAR2()类型指定大小。

三、实战演练

使用字符集为UTF8。

create table t_varchar2(name varchar2(6 CHAR));

Table created

sql> insert into t_varchar2 values('中国');

1 row inserted

sql> insert into t_varchar2 values('中华人民共和');

1 row inserted

sql> insert into t_varchar2 values('中华人民共和国');

insert into t_varchar2 values('中华人民共和国')

ORA-12899: 列 "SCOTT"."T_VARCHAR2"."NAME" 的值太大 (实际值: 7,最大值: 6)

sql> create table t_nvarchar2(name nvarchar2(6));

Table created

sql> insert into t_nvarchar2 values('中国');

1 row inserted

sql> insert into t_nvarchar2 values('中华人民共和');

1 row inserted

sql> insert into t_nvarchar2 values('中华人民共和国');

insert into t_nvarchar2 values('中华人民共和国')

ORA-12899: 列 "SCOTT"."T_NVARCHAR2"."NAME" 的值太大 (实际值: 7,最大值: 6)

# 验证NVARCHAR2(sie)与VARCHAR(size CHAR)存在最大长度不同

sql> create table t_varchar2(name varchar2(4000 CHAR));

Table created

sql> create table t_nvarchar2(name nvarchar2(4000));

create table t_nvarchar2(name nvarchar2(4000))

ORA-00910: 指定的长度对于数据类型而言过长

四、区别总结:

NVARCHAR2(size)与VARCHAR2(size CHAR)相似,唯一的区别是NVARCHAR2(size)的最大长度是4000字节(实验测试结果是,在utf8的字符集下,最大长度为2000字符),而VARCHAR2(size CHAR)的最大长度是4000字符。

好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

oracle nvarchar2使用场景,Oralce中VARCHAR2()与NVARCHAR2()的区别介绍相关推荐

  1. oracle nvarchar2 substr,关于oracle中varchar2与nvarchar2的一点认识 - Qxun_dream

    今天在oracle 10g下测试了下varchar2与nvarchar2这两种类型,网上有很多关于这两种类型的区别的帖子,我还是自己测试了下. varchar2(size type),size最大为4 ...

  2. mysql ifnull 别名_mysql中IFNULL,IF,CASE的区别介绍

    mysql中IFNULL,IF,CASE的区别介绍 发布时间:2018-04-15 09:54:57 假设有一数据表的状态字段设计为varchar类型,有以下值:NULL,pending,pendin ...

  3. [Perl]Perl中chomp和chop的区别介绍

    Perl中chomp和chop的区别介绍 一.chomp是用来删除换行符. #!/usr/bin/perl $c = "abcde\n"; chomp($c); print(&qu ...

  4. php中 br什么意思,HTML_html中br和br/的区别介绍,answer from stackflow: Simply br - phpStudy...

    html中br和br/的区别介绍 answer from stackflow: Simply is sufficient. The other forms are there for compatib ...

  5. oracle 创建nchar类型,ORACLE8I中关于nchar,nvarchar2等类型的ORA-12704错误

    我在oracle9i以上,插入和修改nchar,nvarchar2等类型字段时正常,但在8i版本遇到一条简单的插入语句,类型有nchar,nvarchar等字段的时候,出现ora-12704,字符集不 ...

  6. [Reprint]c++中typename和class的区别介绍

    在c++Template中,很多地方都用到了typename与class这两个关键字,而且好像可以替换,是不是这两个关键字完全一样呢? 相信学习C++的人对class这个关键字都非常明白,class用 ...

  7. c++中typename和class的区别介绍

    "typename"是一个C++程序设计语言中的关键字.相当用于泛型编程时是另一术语"class"的同义词.这个关键字用于指出模板声明(或定义)中的非独立名称( ...

  8. oracle nvarchar2问题,Oracle数据库中,使用case语句,遇到VARCHAR2与NVARCHAR2问题

    问题: 在有sqlserver数据库迁移至Oracle数据库时,遇到将VARCHAR2付给NVARCHAR2问题 原sql CASE A .kindCode WHEN '2321034' THEN'0 ...

  9. 图谱实战 | 知识图谱在美团搜索酒旅场景认知中的应用

    分享嘉宾:陈骐 美团 高级算法专家 编辑整理:毛佳豪 中国平安浙江分公司(实习) 出品平台:DataFunTalk 导读:知识图谱凭借能够以图模型描述知识和世界万物关联关系的特性,在各行业领域大放异彩 ...

最新文章

  1. docker报错:driver failed programming external connectivity on endpoint, iptables:No chain by that name
  2. 画pytorch模型图,以及参数计算
  3. html5--6-59 其他常用CSS属性
  4. 二维凸包 Graham's Scan
  5. RegOpenKeyEx 返回值 2
  6. 利用SQL和Python分别实现人流量查询,考验逻辑思维的时候到了
  7. 兼职做了DB设计和维护的体会(存储过程,视图,函数,范式)
  8. 操作系统直接决定了计算机系统的整体性能
  9. python调用java接口或者类_python如何调用java类
  10. jmp怎么做合并的箱线图_JMP和Minitab的图形分析
  11. 全国软考中级软件设计师 学习笔记-数据流图部分
  12. 【STM32F429的DSP教程】第18章 DSP控制函数-更好用的SIN,COS计算
  13. html怎样让线段显示长度,CAD想要知道线段的长度有什么技巧吗?
  14. java 双引号 转义_java字符转义 字符串中的双引号
  15. 梦幻西游转区后没显示原服务器,梦幻西游:你不知道的转区小细节,刷区时间不只是周二上午的10点...
  16. 面试计算机应用技术自我介绍,计算机应用专业面试的自我介绍
  17. python添加pythonhome参数,如何在python中向烧瓶烧瓶添加参数?
  18. docker logs 说明
  19. Apache运行正常,但是localhost却打不开页面
  20. 密码学系列 - 椭圆曲线签名的基本原理

热门文章

  1. java计算机毕业设计共享单车管理系统源码+mysql数据库+系统+lw文档+部署
  2. 磁力链 下载 java_Windows配置java(jdk)环境 – 自己本地搭建磁力搜索系统
  3. linux蓝牙经常掉线,解决蓝牙设备经常掉线的问题
  4. 推荐系统 - 3 - 协同过滤算法、随机游走算法
  5. 国际大学生程序设计竞赛例题_5.12搏击俱乐部
  6. window xp 序列号|可用|有效的
  7. 阿里五年,我还记得最初为什么出发
  8. 超全的12种数组去重的方法
  9. mysql json数据格式的查询性能测试
  10. Maix Bit(K210) 裸机开发教程(七) SD卡文件系统使用