精华内容
下载资源
问答
  • 2021-05-02 00:57:48

    在设计Oracle数据库的时候需要为字段选取类型。对数据库中的varchar、varchar2和nvarchar、nvarchar2这几种数据类型一直不知道怎么选取。

    varchar和varchar2:

    Oracle中varchar和varchar2的区别不是很大,但是建议使用varchar2,varchar2用null代替varchar的空字符串。

    varchar2和nvarchar2

    nvarchar2相较与varchar2对汉字拥有更好的兼容性。varchar2(10)和nvarchar2(10)在都存储英文的情况下都可以存储10个英文字符,但是nvarchar2(10)可以存储10个汉字,而varchar2(10)只能存储5个汉字。varchar2最大长度支持4000个字符,nvarchar2最大长度支持4000个字符或4000个字节。

    nvarchar和nvarchar2

    nvarchar和nvarchar2基本相同,不同在于 nvarchar对于英文也是占用两个字符。比如nvarchar2(10)可以存储10个汉字或者10个英文,但是nvarchar(10)只能存储5个汉字或者5个英文。

    更多相关内容
  • 问: sql server中的varchar和Nvarchar有什么区别啊,varchar好像是一个英文和一个汉字都站两个字节,而Nvarchar则是一个英文占一个字节,汉字占两个字节。可是这个对asp程序有什么影响? 答: varchar(n) 长度为 ...
  • nvarchar(n) 包含 n 个字符的可变长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。字节的存储大小是所输入字符个数的两倍。 两字段分别有字段值:我和coffee 那么varchar字段占2×2+6=10个字节的存储空间,...
  • varchar在SQL Server中是采用单字节来存储数据的,nvarchar是使用Unico来存储数据的.中文字符存储到SQL Server中会保存为两个字节(一般采用Unico编码),英文字符保存到数据库中,如果字段的类型为varchar,则只会...
  • 主要给大家详细介绍了关于Oralce中VARCHAR2()与NVARCHAR2()的区别,文中先通过翻译官方的介绍进行区别总结,然后由一个实战示例代码进行演示,相信对大家的理解会很有帮助,有需要的朋友们下面来跟着小编一起看看吧...
  • 主要介绍了mysql如何处理varchar与nvarchar类型中的特殊字符,需要的朋友可以参考下
  • 对于程序中的一般字符串类型的字段,SQL Server中有char、varchar、nchar、nvarchar四种类型来对应,那么这四种类型有什么区别呢,这里做一下对比。 1.定长或变长 所谓定长就是长度固定,当要保存的数据长度不够时将...
  • Sqlserver中char,nchar,varchar与Nvarchar的区别分析,使用sqlserver的朋友可以参考下。
  • 本文实例讲述了PHP连接MSSQL时nvarchar字段长度被截断为255的解决方法。分享给大家供大家参考。具体分析如下: PHP 连接 MSSQL 的新手经常遇到这个问题:数据库里面的 nvarchar 字段中数据一切正常,但是用 PHP 查询...
  • 用友T+从数据类型 nvarchar 转换为 numeric 时出错.pdf
  • 您可能感兴趣的文章:sql中varchar和nvarchar的区别与使用方法Sqlserver中char,nchar,varchar与Nvarchar的区别分析基于SQL Server中char,nchar,varchar,nvarchar的使用区别深入char、varchar、text和nchar、nvarchar...
  • 本技巧使您可以将nvarchar,money和s​​mallmoney值转换为int。
  • 过程需要参数
  • 本篇文章是对char、varchar、text和nchar、nvarchar、ntext的区别进行了详细的分析介绍,需要的朋友参考下
  • 有人讨论char nchar varchar nvarchar这几个数据类型的区别跟实际使用情况,很多人都搞不清楚究竟哪个场景使用哪个数据类型,下面用代码解释一下
  • 因最近自己制作的软件需运行在简繁系统中,但数据库设计时...此脚本可批量处理数据库内所有char和varchar转换为nchar和nvarchar,已集成重建主键,约束,索引,此脚本没有启用事务,运行前请备份原数据库或手动增加事务
  • nvarchar不区分中英文,比如说:你定义了nvarchar(20),你可以存入20个英文字母/汉字或中英文组合,这个20定义的是字符数而不是字节数 nvarchar2基本上等同于nvarchar,不同在于nvarchar2中存的英文字母也占两个字节 ...

    一、概述

    1.char

    char的长度是固定的,比如说,你定义了char(20),即使你你插入abc,不足二十个字节,数据库也会在abc后面自动加上17个空格,以补足二十个字节;

    char是区分中英文的,中文在char中占两个字节,而英文占一个,所以char(20)你只能存20个字母或10个汉字。

    char适用于长度比较固定的,一般不含中文的情况

    2.varchar,varchar2

    varchar是长度不固定的,比如说,你定义了varchar(20),当你插入abc,则在数据库中只占3个字节。

    varchar同样区分中英文,这点同char。

    varchar2基本上等同于varchar,它是oracle自己定义的一个非工业标准varchar,不同在于,varchar2用null代替varchar的空字符串

    varchar/varchar2适用于长度不固定的,一般不含中文的情况

    3.nvarchar,nvarchar2

    nvarchar和nvarchar2是长度不固定的

    nvarchar不区分中英文,比如说:你定义了nvarchar(20),你可以存入20个英文字母/汉字或中英文组合,这个20定义的是字符数而不是字节数

    nvarchar2基本上等同于nvarchar,不同在于nvarchar2中存的英文字母也占两个字节

    nvarchar/nvarchar2适用于存放中文

    char [ ( n ) ]

    固定长度,非 Unicode 字符数据,长度为 n 个字节。n 的取值范围为 1 至 8,000,存储大小是 n 个字节。

    varchar [ ( n | max ) ]

    可变长度,非 Unicode 字符数据。n 的取值范围为 1 至 8,000。max 指示最大存储大小是 2^31-1 个字节。存储大小是输入数据的实际长度加 2 个字节,用于反映存储的数据的长度。所输入数据的长度可以为 0 个字符。

    * 如果列数据项的大小一致,则使用 char。

    * 如果列数据项的大小差异相当大,则使用 varchar。

    * 如果列数据项大小相差很大,而且大小可能超过 8,000 字节,请使用 varchar(max)。

    如果未在数据定义或变量声明语句中char 或 varchar 数据类型指定 n,则默认长度为 1。如果在使用 CAST 和 CONVERT 函数时char 或 varchar 数据类型未指定 n,则默认长度为 30。

    当执行 CREATE TABLE 或 ALTER TABLE 时,如果 SET ANSI_PADDING 为 OFF,则定义为 NULL 的 char 列将作为 varchar 处理。

    另外帮助理解的,只供参考:转自http://www.51testing.com/?uid-258885-action-viewspace-itemid-141197

    也可参照学习http://ce.sysu.edu.cn/garden/dispbbs.asp?boardid=26&ID=8774&replyID=18180&skin=1

    4.varchar,nvarchar,nvarchar,nvarchar2

    四个类型都属于变长字符类型, varchar和varchar2的区别在与后者把所有字符都占两字节,前者只对汉字和全角等字符占两字节。

    nvarchar和nvarchar2的区别和上面一样,与上面区别在于是根据Unicode标准所进行的定义的类型,通常用于支持多国语言类似系统的定义。

    二、应用

    1.NULL值(空值)。

    a. char列的NULL值占用存储空间。

    b. varcahr列的NULL值不占用存储空间。

    c. 插入同样数量的NULL值,varchar列的插入效率明显高出char列。

    2.插入数据

    无论插入数据涉及的列是否建立索引,char的效率都明显低于varchar。

    3. 更新数据

    如果更新的列上未建立索引,则char的效率低于varchar,差异不大;建立索引的话,效率较高。

    4. 修改结构

    a. 无论增加或是删除的列的类型是char还是varchar,操作都能较快的完成,而且效率上没有什么差异。

    b. 对于增加列的宽度而言,char与varchar有非常明显的效率差异,修改varcahr列基本上不花费时间,而修改char列需要花费很长的时间。

    5.数据检索

    无论是否通过索引,varchar类型的数据检索略优于char的扫描。

    三、选择char还是选择varchar的建议

    1.适宜于char的情况:

    a. 列中的各行数据长度基本一致,长度变化不超过50字节;

    b. 数据变更频繁,数据检索的需求较少。

    c. 列的长度不会变化,修改char类型列的宽度的代价比较大。

    d. 列中不会出现大量的NULL值。

    e. 列上不需要建立过多的索引,过多的索引对char列的数据变更影响较大。

    2.适宜于varchar的情况;

    a. 列中的各行数据的长度差异比较大。

    b. 列中数据的更新非常少,但查询非常频繁。

    c. 列中经常没有数据,为NULL值或为空值

    nchar [ ( n ) ]

    n 个字符的固定长度的 Unicode 字符数据。n 值必须在 1 到 4,000 之间(含)。存储大小为两倍 n 字节。

    nvarchar [ ( n | max ) ]

    可变长度 Unicode 字符数据。n 值在 1 到 4,000 之间(含)。max 指示最大存储大小为 2^31-1 字节。存储大小是所输入字符个数的两倍 + 2 个字节。所输入数据的长度可以为 0 个字符。

    注释

    如果没有在数据定义或变量声明语句中指定 n,则默认长度为 1。如果没有使用 CAST 函数指定 n,则默认长度为 30。

    如果列数据项的大小可能相同,请使用 nchar。

    如果列数据项的大小可能差异很大,请使用 nvarchar。

    sysname 是系统提供的用户定义数据类型,除了不可为空值外,在功能上与 nvarchar(128) 相同。sysname 用于引用数据库对象名。

    为使用 nchar 或 nvarchar 的对象分配的是默认的数据库排序规则,但可使用 COLLATE 子句分配特定的排序规则。

    SET ANSI_PADDING ON 永远适用于 nchar 和 nvarchar。SET ANSI_PADDING OFF 不适用于 nchar 或 nvarchar 数据类型。

    四、简述

    1.CHAR(size)和VARCHAR(size)的区别

    CHAR为定长的字段,最大长度为2K字节;

    VARCHAR为可变长的字段,最大长度为4K字节;

    2.CHAR(size)和NCHAR(size)的区别

    CHAR如果存放字母数字占1个字节,存放GBK编码的汉字存放2个字节,存放UTF-8编码的汉字占用3个字节;

    NCHAR根据所选字符集来定义存放字符的占用字节数,一般都为2个字节存放一个字符(不管字符或者汉字)

    3.VARCHAR(size)和VARCHAR2(size)的区别

    在现在的版本中,两者是没有区别的;最大长度为4K字节;推荐使用VARCHAR2;

    4.VARCHAR2(size)和NVARCHAR2(size)的区别

    最大长度为4K字节,区别同CHAR与NCHAR的区别;(如果数据库字符集长度是2,则NVARCHAR2最大为2K)

    5.共同特性

    当执行insert的时候,插入的值为'',则转变成null,即insert ... values('') <=> insert ... values(null)

    搜索的条件须用where xx is null

    6.例子

    比如有一个性别字段,里面存放“男,女”的其中一个值,两种常用选择:CHAR(2)和 NCHAR(1)

    展开全文
  • nvarchar binary数据类型转换
  • Oracle NVarchar2类型

    2021-05-02 00:56:50
    本教程向您介绍了Oracle NVARCHAR2数据类型,并解释了NVARCHAR2和VARCHAR2之间的区别。Oracle NVARCHAR2数据类型简介NVARCHAR2是可以存储Unicode字符的Unicode数据类型。 NVARCHAR2的字符集是在数据库创建时指定的...

    本教程向您介绍了Oracle NVARCHAR2数据类型,并解释了NVARCHAR2和VARCHAR2之间的区别。

    Oracle NVARCHAR2数据类型简介

    NVARCHAR2是可以存储Unicode字符的Unicode数据类型。 NVARCHAR2的字符集是在数据库创建时指定的国家字符集。

    要在数据库中查找NVARCHAR2的字符集,请使用以下查询:

    SELECT

    *

    FROM

    nls_database_parameters

    WHERE

    PARAMETER = 'NLS_NCHAR_CHARACTERSET';

    执行上面查询语句,得到以下结果(因环境不同而不同)-

    e7daa5d225268136c9421d7366dfa7c8.png

    在笔者的Oracle数据库服务器中,NVARCHAR2数据类型使用AL16UTF16字符集,它使用UTF-16编码对Unicode数据进行编码。AL16UTF16使用2个字节来存储一个字符。

    NVARCHAR2存储可变长度的字符数据。 使用NVARCHAR2列创建表时,最大长度始终为字符长度语义,也是NVARCHAR2数据类型的默认值,也是唯一的长度语义。

    Oracle NVARCHAR2的例子

    以下语句创建一个最大长度为50个字符的NVARCHAR2列的表。

    CREATE TABLE nvarchar2_demo (

    description NVARCHAR2(50)

    );

    由于当前的国家字符集是:UTF-16,所以描述列的最大字节长度是200字节。

    请注意,最大字节长度是每个字符中最大字符长度和最大字节数的乘积。

    以下语句在nvarchar2_demo表中插入一行:

    INSERT INTO nvarchar2_demo

    VALUES('ABCDE');

    使用DUMP()函数来查看存储在nvarchar2_demo表中的值的详细信息:

    SELECT

    description,

    DUMP(description,1016)

    FROM

    nvarchar2_demo;

    执行上面查询语句,得到以下结果 -

    cc5e917fbd7df52c67ea099f297781af.png

    如结果所示,数据类型代码1是10个字节(5个字符,每个2个字节)。

    VARCHAR2与NVARCHAR2

    首先,VARCHAR2的最大大小可以是字节或字符,而NVARCHAR2的最大大小只能是字符。 另外,NVARCHAR2的最大字节长度取决于配置的国家字符集。

    其次,VARCHAR2列只能将字符存储在默认字符集中,而NVARCHAR2则可以存储几乎任何字符

    以下查询返回VARCHAR2数据类型使用的缺省字符集。

    SELECT

    *

    FROM

    nls_database_parameters

    WHERE

    parameter = 'NLS_CHARACTERSET';

    执行上面查询语句,得到以下结果 -

    ed0f6b31584e508009a9851e0a9cbf6a.png

    在本教程中,您已经了解了Oracle NVARCHAR2的用法,以及NVARCHAR2和VARCHAR2之间的区别。

    ¥ 我要打赏

    纠错/补充

    收藏

    加QQ群啦,易百教程官方技术学习群

    注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。

    展开全文
  • 比如:VARCHAR2(10),一般情况下最多存放5个汉字,10个字符 --nvarchar,nvarchar2 联系: 1. nvarchar/nvarchar2用于存储可变长度的字符串 2. size 的最大值是 4000,而最小值是 1,其值表示字符的个数,而不是字节...

    【varchar,varchar2 】 联系: 1. varchar/varchar2用于存储可变长度的字符串 比如 varchar(20),存入字符串'abc', 则数据库中该字段只占3个字节,而不是20个字节 2. size 的最大是 4000,而最小是 1,其表示字节数, 比如 varchar(20)表示最大可以存放2

    【varchar,varchar2】

    联系:

    1. varchar/varchar2用于存储可变长度的字符串

    比如 varchar(20),存入字符串'abc',

    则数据库中该字段只占3个字节,而不是20个字节

    2. size 的最大值是 4000,而最小值是 1,其值表示字节数,

    比如varchar(20)表示最大可以存放20个字节的内容

    区别:

    1. varchar2把所有字符都占两字节处理(一般情况下),

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

    2. VARCHAR2把空串等同于null处理,而varchar仍按照空串处理;

    3. VARCHAR2字符要用几个字节存储,要看数据库使用的字符集,

    比如GBK,汉字就会占两个字节,英文1个

    如果是UTF-8,汉字一般占3个字节,英文还是1个。

    但是一般情况下,我们都认为是两个字节处理,

    因为oracle安装时候默认我们都选择GBK的编码格式,

    但是我们在页面做输入字符串长度的校验的时候,

    还是以数据库设计字段最大长度除3来作为最大长度

    -----防止数据库移植时设置不同编码格式;

    比如:VARCHAR2(10),一般情况下最多存放5个汉字,10个字符

    --nvarchar,nvarchar2

    联系:

    1. nvarchar/nvarchar2用于存储可变长度的字符串

    2. size 的最大值是 4000,而最小值是 1,其值表示字符的个数,而不是字节数

    3. 这两种类型更适合存储中文

    区别:

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

    2.nvarchar2中所有字符均按照2个字节计算;

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

    VARCHAR2(size)

    可变长度的字符串,其最大长度为size个字节;size的最大值是4000,而最小值是1;你必须指定一个VARCHAR2的size;

    NVARCHAR2(size)

    可变长度的字符串,依据所选的国家字符集,其最大长度为size个字符或字节;size的最大值取决于储存每个字符所需的字节数,其上限为4000;你必须指定一个NVARCHAR2的size; 本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉 本文系统来源:php中文网

    展开全文
  • Oracle nvarchar2错误

    2021-05-03 02:41:10
    Oracle nvarchar2错误问题:使用substr函数截取指定字符串时,取出4位字符 年(例如2019),结果只取出3位(例如201);问题原因:字符类型nvarchar2解决方案:通过TRANSLATE函数将nvarchar2转换成varchar2。问题重现:--...
  • 环境: sqlserver 2014 window 10 建议先阅读《细说ASCII、GB2312/GBK/GB18030、Unicode、UTF-8/UTF-16/UTF-32编码》 先说下结论: 如果你想在数据库中存储emoji表情等特殊字符,就需要将varchar改为nvarchar并且在...
  • sqlserver varchar和Nvarchar区别 原文:https://www.cnblogs.com/qanholas/p/3298882.html varchar和Nvarchar区别 Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即...
  • 问题:使用 substr函数截取...问题原因:字符类型 nvarchar2解决方案:通过 TRANSLATE函数将 nvarchar2 转换成 varchar2 。问题重现:---1 创建测试数据create table t1(id number,t_format nvarchar2(100),t_name...
  • 问题:在有sqlserver数据库迁移至Oracle数据库时,遇到将VARCHAR2付给NVARCHAR2问题原sqlCASE A .kindCodeWHEN ‘2321034‘ THEN‘02049‘ WHEN ‘2321035‘ THEN‘11067‘ WHEN ‘2321022‘ THEN‘11067‘ WHEN ...
  • 如何在MySQL中创建NVARCHAR列?

    千次阅读 2021-01-25 22:47:54
    MySQL转换NVARCHAR()为VARCHAR()。NVARCHAR在MySQL中代表National Varchar。让我们首先创建一个表,其中“ StudentName”列之一为NVARCHAR-mysql>createtableDemoTable(StudentNameNVARCHAR(40),...
  • nvarchar类型和varchar类型

    千次阅读 2021-02-07 10:44:26
    nvarchar类型和varchar类型 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 121,139
精华内容 48,455
关键字:

nvarchar

友情链接: 聚类分析.zip