在Oracle数据库中和Oracle FORM中都 有这样一个参数的设置,有必要澄清一下:

参数NLS_LENGTH_SEMANTICS的含义在Oracle文档中这样描述:
Oracl文档中的说明: Syntax: NLS_LENGTH_SEMANTICS = string Range of values: BYTE | CHAR NLS_LENGTH_SEMANTICS enables you to create CHAR and VARCHAR2 columns using either byte or character length semantics. Existing columns are not affected. NCHAR, NVARCHAR2, CLOB, and NCLOB columns are always character-based. You may be required to use byte semantics in order to maintain compatibility with existing applications. NLS_LENGTH_SEMANTICS does not apply to tables in SYS and SYSTEM. The data dictionary always uses byte semantics.
翻译过来的意思就是该参数有BYTE和CHAR两种取值,使你能够使用这两种语义创建CHAR或VARCHAR2类型的数据库表列,而对现有的列没有影响。
二者的区别就是一个是按字符存放,另一个按字节存放;一般情况数据库都会使用UTF-8编码,一个汉字如果按字节存放,就需要3个字节。

可以看到数据库中参数NLS_LENGTH_SEMANTICS的设置 ,一般默认为‘BYTE’。
这是因为按字节存放,3个汉字就需要9个字节,如果把参数NLS_LENGTH_SEMANTICS设置为‘CHAR’,就可以将数据插入进去了。这是因为按数据库会按字符计数,而不是字节。
Oracle Form中:
ITEM属性设置 中也有Data Length Semantics这样一个属性设置,它有三种选择“NULL”、“CHAR”和“BYTE”,如果设置 为“NULL”则直接从数据库中获取,使用数据库的设置。设置为“CHAR”和“BYTE”则和上述数据库中的情况一样。经过测试发现,如果一个字符类型的ITEM的最大长度为100,则当Data Length Semantics设置为“CHAR”时,最多可以输入100个汉字或100个英文字符;当Data Length Semantics设置为“BYTE”时,最多可以输入33个汉字或100个英文字符。
举例如下:
SQL> show parameter nls_length
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
nls_length_semantics                 string      BYTE
SQL> create table byte_test (a varchar2(3));
表已创建。
SQL> insert into byte_test values('甲骨文');
insert into byte_test values('甲骨文')
                             *
ERROR 位于第 1 行:
ORA-01401: inserted value too large for column
SQL> alter session set NLS_LENGTH_SEMANTICS='CHAR';
会话已更改。
SQL> create table char_test (a varchar2(3));
表已创建。
SQL> insert into char_test values('甲骨文');
已创建 1 行。
SQL> show parameter  NLS_LENGTH_SEMANTICS
NAME                                 TYPE                  VALUE
------------------------------------ ----------------------------------------------------
nls_length_semantics                 string                CHAR
SQL> desc byte_test;
 名称                                      是否为空? 类型
 ---------------------------------------- -------- ----------------------------
 A                                                  VARCHAR2(3 BYTE)
SQL> desc char_test;
 名称                                      是否为空? 类型
 ----------------------------------------- -------- ----------------------------
 A                                                  VARCHAR2(3)

参数NLS_LENGTH_SEMANTICS的设置问题相关推荐

  1. R语言使用survminer包生存分析及可视化(ggsurvplot)实战详解:从数据集导入、生存对象生成、ggsurvplot可视化参数配置、设置、可视化对比

    R语言使用survminer包生存分析及可视化(ggsurvplot)实战详解:从数据集导入.生存对象生成.ggsurvplot可视化参数配置.设置.可视化对比 目录 R语言使用survminer包生 ...

  2. 055——VUE中vue-router之路由参数的随意设置与伪静态链接地址处理:

    <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...

  3. jvm的参数含义及设置

    最近在研究jvm基本的原理,对jvm的参数设置了解了一下,mark如下: 几个基本概念: PermGen space:全称是Permanent Generation space,即永久代.就是说是永久 ...

  4. mysql key_block_size_Mysql入门mysql Key_buffer_size参数的优化设置

    <Mysql入门mysql Key_buffer_size参数的优化设置>要点: 本文介绍了Mysql入门mysql Key_buffer_size参数的优化设置,希望对您有用.如果有疑问 ...

  5. Durid数据库连接池设置ConnectionInitSqls参数解决数据库设置编码utf8mb4

    背景:数据库在存储特殊字符时,数据库编码必须使用utf8mb4,否则会报Incorrect string value: '\xF0\x9F\x98\x82\xF0\x9F-' for column ' ...

  6. 台达b2伺服说明书_三菱Q系列定位模块及伺服参数不会设置?看这一篇就够了!...

    三菱Q系列定位模块介绍及应用 --定位模块及伺服参数设置 一.定位模块QD75D2参数设定(基本参数) 1. 单位设置 3(脉冲) 2. 每转的脉冲数 2000 3. 脉冲输出模式 1(CW/CCW) ...

  7. [SpringBoot2]ajax函数中data参数的数据设置方式

    ajax函数中data参数的数据设置方式:

  8. 在C语言中,SetConsoleTextAttribute(参数1,参数2)是设置控制台窗口字体颜色和背景颜色的函数。GetStdHandle(参数)函数用于获得句柄

    在C语言中,SetConsoleTextAttribute(参数1,参数2)是设置控制台窗口字体颜色和背景颜色的函数. 参数1:句柄 参数2:颜色 颜色的参数 数值 颜色 0 黑色 1 深蓝色 2 深 ...

  9. mysql增加sort_buffer_MySQL数据库之MySQL中的sort_buffer_size参数大小的设置问题

    本文主要向大家介绍了MySQL数据库之MySQL中的sort_buffer_size参数大小的设置问题 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 看到sort_buffer ...

最新文章

  1. 【ACM】杭电OJ 2039
  2. oracle定时器定时删除30天前的数据_Redis-数据淘汰策略持久化方式(RDB/AOF)Redis与Memcached区别...
  3. SDNU 1330.Max Sum(最大子序列和)
  4. LeetCode 1869. 哪种连续子字符串更长
  5. 数据结构--散列表 Hash Table
  6. 学习日报 day03 实体与标识符 变量与数据类型
  7. hibernate 各历史版本下载 spring各历史版本下载
  8. 用HTML+CSS画出一个同心圆
  9. linux执行shell过程日志,Android之在linux终端执行shell脚本直接打印当前运行app的日志...
  10. ThreadLocal源码学习
  11. 《MySQL技术内幕》读书笔记
  12. 测试手机烧屏的软件,烧屏坏点检测
  13. Matlab 曲线拟合之 polyfit 、polyval、poly2str 函数
  14. Could not connect to appstore: cURL error 28: Operation timed out after 60000 milliseconds with
  15. 自动化测试框架[Cypress概述]
  16. 解决div高度不自动增加的问题
  17. java中的tomcatserverlet
  18. Geoffrey Hinton:从神经网络黑暗时代的坚守到今天的胜利
  19. 变态级JAVA程序员面试32问(转)
  20. Android下拉列表框

热门文章

  1. 面试必问:读写一致性,你需要思考的问题
  2. LAMP和LNMP去除index.php访问
  3. 洛谷 P4551 最长异或路径
  4. cxf整合spring代码
  5. NPOI随笔——图片在单元格等比缩放且居中显示
  6. Appium Python 六:管理应用和Activity
  7. C++中数字与字符串之间的转换 scanf string总结(复习必读)
  8. SQL入门经典(第5版)pdf
  9. 求助:如何获取ueditor的上传路径
  10. Log4j 2使用教程