【Oracle】空格单字符通配符查询匹配失败

问题

在这里插入图片描述
在进行模糊查询的时候,通过全局任意字符串匹配出含有两个字刘姓的人,但是通过刘_不能匹配出结果。

解决

在这里插入图片描述
检查后发现,姓名中包含空格

SELECT * FROM student WHERE TRIM(sname) LIKE '刘_';

第一种解决方案就是查询的时候进行去空格处理,但是一般情况下我们是不知道原数据中是否存在,但是插入数据的时候并没有空格,那么在存储的时候为什么会加入空格呢?
在这里插入图片描述
于是我想到数据类型定义,在Oracle数据库中,CHAR 和 VARCHAR2 是用于存储字符数据的两种不同数据类型,它们之间有几个关键区别:

存储方式

  • CHAR:固定长度的字符数据类型。无论实际存储的字符串长度是多少,都会占用定义时指定的长度。例如,如果定义一个 CHAR(10) 列,存储一个 5 个字符的字符串时,Oracle 会使用 10 个字符的空间来存储这个字符串,其余部分用空格填充。
  • VARCHAR2:可变长度的字符数据类型。只有实际存储的字符串所需的长度会被使用。例如,如果定义一个 VARCHAR2(10) 列,存储一个 5 个字符的字符串时,只会占用 5 个字符的空间。

效率和性能

  • CHAR:在固定长度的情况下,CHAR 可以在某些特定场景下提高性能(如对大量相同长度字符串的处理),但由于其会填充空格,可能会导致存储效率低下。
  • VARCHAR2:通常更节省存储空间,并且在大多数场景下性能优于 CHAR。适合存储长度变化较大的字符串。

空格处理

  • CHAR:当使用 CHAR 数据类型时,在存储过程中多余的空格会被保留。在查询时,如果有必要,Oracle会自动对字符进行填充对齐。
  • VARCHAR2:不会存储多余的空格。在查询时,实际的存储内容会返回,不会有填充。

最大长度限制

  • 在Oracle 12c及之前,CHAR 和 VARCHAR2 的最大存储长度为 2000 字符(对于 VARCHAR2 也可以设置为 4000 字节,取决于字符集)。在Oracle 12c及以后的版本中,VARCHAR2 的最大长度可以扩展到 32,767 字符(在使用 MAX 选项时)。
    在这里插入图片描述
    sname改为varchar2,同时新插入两条数据,再次查看数据:
    在这里插入图片描述
    综上,数据类型在定义时需要有一定的考虑

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/59244.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

讲讲⾼并发的原则?

大家好,我是锋哥。今天分享关于【讲讲⾼并发的原则?】面试题。希望对大家有帮助; 讲讲⾼并发的原则? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 高并发是指系统在同一时间内能够处理大量请求的能力。要有效地管理…

鸿蒙进阶-AlphabetIndexer组件

大家好,这里是鸿蒙开天组,今天我们来学习AlphabetIndexer组件,喜欢就点点关注吧! 通过 AlphabetIndexer 组件可以与容器组件结合,实现导航联动,以及快速定位的效果 核心用法 AlphabetIndexer不是容器组件…

WebGL(Web Graphics Library)

WebGL(Web Graphics Library)是一种基于 JavaScript 的 API,允许在网页上渲染高性能的 2D 和 3D 图形。它利用计算机的 GPU 来实现硬件加速,因此适合创建游戏、数据可视化和交互式应用程序。 WebGL 的基本概念: 上下文…

nvm使用的方法

nvm——Node版本管理工具_node管理工具-CSDN博客

第四部分 可扩展的架构实践

第四部分 可扩展的架构实践 19. 第19章 对架构影响重大的需求20. 第20章 设计架构21. 第21章 评估架构22. 第22章 记录架构23. 第23章 管理架构债

ubuntu交叉编译expat库给arm平台使用

1.下载expat库源码: https://github.com/libexpat/libexpat/release?page=2 wget https://github.com/libexpat/libexpat/release/download/R_2_3_0/expat-2.3.0.tar.bz2 下载成功: 2.解压expat库,并进入解压后的目录: tar xjf expat-2.3.0.tar.bz2 cd expat-2.3.0 <…

Python中的PDF处理工具:PyPDF2和ReportLab使用指南

Python中的PDF处理工具&#xff1a;PyPDF2和ReportLab使用指南 在日常工作和项目中&#xff0c;PDF 文件处理是个常见需求&#xff0c;不论是合并报告、加密文档、填充表单&#xff0c;还是生成发票。Python 中有许多用于操作 PDF 文件的库&#xff0c;其中 PyPDF2 和 ReportL…

【系统面试篇】进程和线程类(1)(笔记)——区别、通讯方式、同步、互斥、锁分类

目录 一、问题综述 1. 进程和线程的区别&#xff1f; 2. 进程的状态有哪些&#xff1f; 3. 进程之间的通信方式? &#xff08;1&#xff09;管道 &#xff08;2&#xff09;消息队列 &#xff08;3&#xff09;共享内存 &#xff08;4&#xff09;信号量 &#xff08…

delphi 编译多语言工程 error RC2104 : undefined keyword or key name:

Delphi 10.3中建立多语言工程&#xff0c;编译时出现错误&#xff1a;error RC2104 : undefined keyword or key name: 出现错误的的文件是.rc文件&#xff0c;出现错误的位置是 System_JSONConsts_SInvalidJavascriptQuote, L"Invalid JavaScript string quote character…

vue 禁用element-ui calendar 取消非本月日期的点击事件

需求描述&#xff1a;原本的日历组件不是本月的日期是灰色的&#xff0c;且点击后会跳转到对应的月份&#xff0c;现在不想它跳转&#xff0c;需要禁用它的点击事件 方法&#xff1a;使用css的pointer-events:none属性即可&#xff0c;把不是当前月份的日历表格的td属性修改 :…

nginx(四):如何在 Nginx 中配置以保留真实 IP 地址

如何在 Nginx 中配置以保留真实 IP 地址 1、概述2、nginx配置示例2.1、配置说明2.2、客户端获取真实IP2.2.1、代码说明 3、插曲4、总结 大家好&#xff0c;我是欧阳方超&#xff0c;可以我的公众号“欧阳方超”&#xff0c;后续内容将在公众号首发。 1、概述 当使用nginx作为…

传统的自然语言处理评估指标

目录 传统的自然语言处理评估指标 EM(Exact Match) BLEU(Bilingual Evaluation Understudy) 传统的自然语言处理评估指标 传统评估指标 EM(Exact Match) 计算方式:如果生成的答案与参考答案完全相同(字符级完全匹配),则 EM 得分为 1,否则为 0。这是一种比较严格的…

DiskGenius工具扩容Mac OS X Apple APFS分区

DiskGenius是一款功能强大的磁盘分区工具&#xff0c;它支持Windows和Mac OS X系统&#xff0c;可以用于管理硬盘分区&#xff0c;包括扩容Mac OS X的Apple APFS分区。然而&#xff0c;直接使用DiskGenius来扩容Mac OS X的APFS分区可能存在一定的风险&#xff0c;因为不是专门为…

C++《list的模拟实现》

在上一篇C《list》专题当中我们了解了STL当中list类当中的各个成员函数该如何使用&#xff0c;接下来在本篇当中我们将试着模拟实现list&#xff0c;在本篇当中我们将通过模拟实现list过程中深入理解list迭代器和之前学习的vector和string迭代器的不同&#xff0c;接下来就开始…

【Python基础】第02节课:数字与盒子的奇妙冒险

数字与盒子的奇妙冒险 1. 引言2. 算术运算符探险3. 运算顺序小挑战4. 计算小能手5 生活中的数学:帮妈妈买鸡蛋6. 变量小盒子6.1 变量的小故事:小猴子的果园探险1. 引言 想象一下,你手里有一个神秘的盒子,里面藏着数学和编程的秘密!你知道吗?在我们的日常生活中,尤其是玩…

本篇万字,博客最细,oled多级菜单代码解析,与实现教程,指针实现(含源码)!!!

目录 教程前言 多级菜单基本知识 驱动文件创建 ​编辑 ​编辑 ​编辑 定义菜单数据类型代码解析 按键代码解析 菜单数据赋值代码解析 菜单按键切换显示代码解析 项目工程移植地址 教程前言 前言&#xff1a;编写不易&#xf…

华为HarmonyOS打造开放、合规的广告生态 - 贴片广告

场景介绍 贴片广告是一种在视频播放前、视频播放中或视频播放结束后插入的视频或图片广告。 接口说明 接口名 描述 loadAd(adParam: AdRequestParams, adOptions: AdOptions, listener: AdLoadListener): void 请求单广告位广告&#xff0c;通过AdRequestParams、AdOptions…

Leetcode137只出现一次的数字|| 及其拓展

简述&#xff1a; 虽然标题是这么描述的&#xff0c;但是我们不是一上来就解这道题&#xff0c;先看一下他的子题和扩展 子题&#xff1a;136. 只出现一次的数字 - 力扣&#xff08;LeetCode&#xff09; 扩展题&#xff1a; 所以我们由易到难&#xff0c;先来看第一道&#x…

【解决办法】无法使用右键“通过VSCode打开文件夹”

个人博客&#xff1a;苏三有春的博客 前言 作者的编程环境为VScode&#xff0c;工作时常使用VScode打开整个工程文件夹。如果先打开VScode再从VScode中选择文件夹打开效率太慢&#xff0c;作者一般使用的方式是右键文件夹&#xff0c;直接选择"通过code打开文件夹"…

图文深入介绍Oracle DB link(二)

1. 引言&#xff1a; 本文承接上篇继续深入介绍Oracle DB link&#xff0c;主要介绍如何配置DB link的连接及确保连接的安全。 2. 创建 DB Link 时配置连接参数 1. 配置连接参数 1. 使用 TNSNAMES.ORA 文件配置连接参数&#xff08;常用方式&#xff09; TNSNAMES.ORA 文件…