当前位置: 首页 > article >正文

数据库某字段要保存中文时,怎样确定长度(以Oracle为例)

1.确定存储中文字数在哪个区间

假设我在前端限制最长保存5个汉字。

2.查询该字数在数据库的长度

以5个汉字为例。

-- Oracle语法
SELECT LENGTH('一二三四五') FROM dual; -- 5 单位是字符
SELECT LENGTHB('一二三四五') FROM dual; -- 15 单位是字节

3.建表并指定列长

VARCHAR2(5 CHAR)VARCHAR2(15)均可。

当以VARCHAR2(15)建表时,Oracle默认指定长度单位是字节(不知道这个没关系,建个表测一下也能发现,实际上实操比找文档快多了)

-- 建表测试
CREATE TABLE TEMP(
TMP1 VARCHAR2(5 CHAR),
TMP2 VARCHAR2(5),
TMP3 VARCHAR2(15)
);

INSERT INTO TEMP (TMP1,TMP2,TMP3) VALUES ('一二三四五',NULL,NULL); -- succeed
INSERT INTO TEMP (TMP1,TMP2,TMP3) VALUES (NULL,'一二三四五',NULL); -- ORA-12899: 列 "TEMP"."TMP2" 的值太大 (实际值: 15, 最大值: 5)
INSERT INTO TEMP (TMP1,TMP2,TMP3) VALUES (NULL,NULL,'一二三四五'); -- succeed

测试结果显示,限制存储数据长度时,建表时可以指定字符长度,也可指定字节长度。

关键在于测试一下要存储的数据在数据库的单位,本例为1汉字对应1字符/3字节

参考链接

ORACLE数据库汉字占几个字节问题


http://www.kler.cn/a/318955.html

相关文章:

  • WebAssembly在现代Web开发中的应用
  • 性能测试|JMeter接口与性能测试项目
  • 文件夹被占用了无法删除怎么办?强制粉碎文件夹你可以这样操作
  • 三正科技笔试题
  • CentOS 服务
  • 区块链技术在慈善捐赠中的应用
  • 神经网络(四):UNet语义分割网络
  • 走向管理岗,必须懂这13个人才管理铁律
  • 详解机器学习经典模型(原理及应用)——岭回归
  • 一场大模型面试,三个小时,被撞飞了
  • MODELS 2024震撼续章:科技与可持续性的未来交响曲
  • MES系统如何提升制造企业的运营效率和灵活性
  • [6]Opengl ES预览摄像头
  • 徐州网站建设的最新趋势与技术
  • 无人机之编程基础原理
  • 接口测试Postman关联,断言,前置,参数化用法
  • 《AI设计类工具系列之三——Magic Design》
  • 程序设计中,day 与 date 这2个单词的区别
  • Unity的Text组件中实现输入内容的渐变色效果
  • Scanner流程控制语句
  • 【kafka-03】springboot整合kafka以及核心参数详解
  • 代码随想录Day17 图论-2
  • PyCharm 的安装和配置
  • 《机器学习》周志华-CH8(集成学习)
  • yolov8环境安装
  • apache paimon简介(官翻)