当前位置: 首页 > 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/news/318955.html

相关文章:

  • 神经网络(四):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简介(官翻)
  • 【第十三章:Sentosa_DSML社区版-机器学习之聚类】
  • 共享单车轨迹数据分析:以厦门市共享单车数据为例(六)
  • 《开题报告》基于SpringBoot的交通管理系统的设计与实现+学习文档+答辩讲解视频
  • 9.25今日错题解析(软考)
  • Error: one input ui-file must be specified(问题已解决)
  • Nature Communications|一种快速响应的智能可穿戴嗅觉接口(可穿戴电子/柔性电子/人机交互)
  • 直播平台美颜功能开发方案:基于视频美颜SDK的集成详解
  • vue3 + ts + vite 初始化 cesium
  • 携手SelectDB,观测云实现性能与成本的双重飞跃
  • STM32CubeIDE | 使用HAL库的ADC读取内部传感器温度