首页 > 数据库 >Oracle中varchar2(20)和varchar2(20 byte)区别 建议 使用统一的格式如:varchar2(20)

Oracle中varchar2(20)和varchar2(20 byte)区别 建议 使用统一的格式如:varchar2(20)

时间:2023-07-10 20:14:08浏览次数:60  
标签:-------- 10 20 varchar2 SQL Oracle byte

Oracle中varchar2(20)和varchar2(20 byte)区别 建议 使用统一的格式如:varchar2(20)
原文链接:https://blog.csdn.net/u010033674/article/details/8736791

    开发环境中:有的表中字段类型定义为varchar2(20)有的表中字段类型定义为varchar2(20 byte)

varchar2(20)和varchar2(20 byte)是否相同呢?

相不相同是由数据库的参数NLS_LENGTH_SEMANTICS决定的,有两个单位,char(字符)或者字节(byte),该参数默认值为BYTE。

所以说,在默认情况下 varchar2(20) = varchar2(20 byte)。如果参数值为CHAR 就不相等。

建议:使用统一的格式如:varchar2(20)

演示:

SQL> show parameter nls_length_semantics;

 

NAME                                        TYPE       VALUE

------------------------------------ ----------- ------------------------------

nls_length_semantics                    string     BYTE

SQL> create table tab1 (

  2  id   number(10),

  3  description varchar2(20)

  4  );

 

Table created.

 

SQL> create table tab2 (

  2  id   number(10),

  3  description varchar2(20 char)

  4  );

 

Table created.

 

SQL> desc tab1;

 Name                                             Null?    Type

 ----------------------------------------- -------- ----------------------------

 ID                                                     NUMBER(10)

 DESCRIPTION                                                  VARCHAR2(20)

 

SQL> desc tab2;

 Name                                             Null?    Type

 ----------------------------------------- -------- ----------------------------

 ID                                                     NUMBER(10)

 DESCRIPTION                                                  VARCHAR2(20 CHAR)

SQL> alter session set nls_length_semantics=char;

 

Session altered.

 

SQL> create table tab3 (

  2  id number(10),

  3  description varchar2(20)

  4  );

 

Table created.

 

SQL> desc tab1;

 Name                                             Null?    Type

 ----------------------------------------- -------- ----------------------------

 ID                                                     NUMBER(10)

 DESCRIPTION                                                  VARCHAR2(20 BYTE)

 

SQL> desc tab2;

 Name                                             Null?    Type

 ----------------------------------------- -------- ----------------------------

 ID                                                     NUMBER(10)

 DESCRIPTION                                                  VARCHAR2(20)

 

SQL> desc tab3;

 Name                                             Null?    Type

 ----------------------------------------- -------- ----------------------------

 ID                                                     NUMBER(10)

 DESCRIPTION                                                  VARCHAR2(20)

注意:对于SYS和SYSTEM而言不受该NLS_LENGTH_SEMANTICS影响,始终为BYTE
请不要随意修改SYSTEM级别的NLS_LENGTH_SEMANTICS,否则一些成品套件例如EBS将可能无法正常运行。

标签:--------,10,20,varchar2,SQL,Oracle,byte
From: https://www.cnblogs.com/sunny3158/p/17542185.html

相关文章

  • 2023-7-10 #65 我守着虚构的幻想 那些我珍视的模样
    448QOJ6669Mapa这谁想得到啊??????????????????插出一个模1e9+7下的多项式,保存系数。449CF1456EXOR-ranges感觉挺难的。类似406HDU6358Innocence,我们将每一段拆成\(\log\)个trie上的区间,每一个形如“固定前缀\(S\),长为\(l\)的后缀任选”,并将选择\([l,r]\)内的数改为在这\(\l......
  • 20230710巴蜀暑期集训测试总结
    T1打个不太暴的暴力但是爆了。只对了subtask1,不清楚发生了什么。先建出Kruscal重构树,对每个询问二分答案,判断就用暴力启发式合并T2打了一个\(20pts\)dp。第一步没有想到,每怎么见过这种题。将问题转化为满足\(\foralli,x_i\leA_i,x_i\leB_i\)的序列\(x\)个数。枚......
  • 2023-07-10:Kafka如何做到消息不丢失?
    2023-07-10:Kafka如何做到消息不丢失?答案2023-07-10:Kafka采用多种机制来确保消息的不丢失,其中包括副本机制、ISR(In-SyncReplicas)机制以及ACK机制等。1.副本机制Kafka通过副本机制来确保消息不会丢失。在Kafka中,每个分区都可以配置多个副本,每个副本保存分区的完整拷贝。当一个副本宕......
  • 2013年湖南省对口高考真题
    一、选择题1、下列选项中正确的C语言变量定义是__________。A.chara1='A',a2=A;                  B.unsignedlonga=1000;C.floata1=a2=10.0;                   D.doublea=0.618,a=3.14; 2、假设有:floata=5,b=a+5/2;则执行语句pri......
  • [ICDE 2022]How Learning Can Help Complex Cyclic Join Decomposition
    [ICDE2022]HowLearningCanHelpComplexCyclicJoinDecomposition总结主要贡献是把子图匹配策略的cost的判断改为了GNN实现的预测(写得挺模棱两可的)动机解决子图匹配的一个重要问题是解决复杂循环连接查询。文章除了在工程方面提供了GUI,主要的贡献是设计了合理的框架,使用A......
  • 每日总结2023年7月10日
    今日学习:SQL注入:是利用某些系统没有对用户输入的数据进行充分的检查,而在用户输入的数据中注入非法的SQL语句段或命令,恶意攻击数据库。例子如下:计算机网络:七层模型:物理层(功能:传输二进制,设备:中继器、集线器)、数据链路层(功能:传输以帧为单位的信息,设备:网桥、交换机、网卡,协议:PPTP、L......
  • C++程序设计综合实验任选题目[2023-07-10]
    C++程序设计综合实验任选题目[2023-07-10]程序设计综合实验任选题目简单题目题目1模拟ATM机存取款管理系统设计1、问题描述模拟银行的自动取款及使用过程中的界面和用户交互过程。实现查询银行卡余额、取款、修改密码、退出系统等功能。2、功能要求(1)卡号、密码输入最多......
  • CVPR 2023 | 南洋理工、商汤提出E3DGE:2D图片秒出3D形象
    前言 在CVPR2023上,南洋理工大学-商汤科技联合实验室S-Lab的研究者提出的基于Encoder的快速3DGANInversion方法,针对现有3DGANinversion方法无法兼顾重建速度、重建质量和编辑质量的问题,提出一种自监督3DGANinversion训练框架。同时,通过构建全局-局部的多尺度结构以及2D-3D......
  • 2023-07-10:Kafka如何做到消息不丢失?
    2023-07-10:Kafka如何做到消息不丢失?答案2023-07-10:Kafka采用多种机制来确保消息的不丢失,其中包括副本机制、ISR(In-SyncReplicas)机制以及ACK机制等。1.副本机制Kafka通过副本机制来确保消息不会丢失。在Kafka中,每个分区都可以配置多个副本,每个副本保存分区的完整拷贝。当一个......
  • NOIP2013-2023题解
    本文章主要是为了不想卷题的时候不是特别颓废而准备本文章是为了总结NOIP最近的题目(为了今年NOIP做准备),目前还没写完,尽量做的全面一些。2013积木大赛给定一个长度为\(n\)的序列\(h_i\),初始有一个全为\(0\)的序列,每次操作可以任意选择\(L,R\),使得\([L,R]\)这段区......