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

深入解析下oracle char和varchar2底层存储方式

    oracle数据库中,char和varchar2数据类型用来存储字符数据。char类型一旦定义多大,那么它就分配多少字节空间;varchar2类型定义多大,代表它可以扩展的最大大小为多大,一开始空间根据使用来决定。字符数据存储在oracle表列中,对于使用者,不需要去管它底层的存储格式是怎样。但对于想深入学习数据库的人来说,还是可以去了解下其具体的存储格式是这样的。

一、环境搭建

1.1,创建表

    我们先创建一个测试表t_code,并插入数据:

1.2,查看表段区信息

 

1.3,根据数据rowid,获取数据文件号和数据块id:

 

二、数据存储格式分析

2.1,dump数据块

    我们先把存储数据的数据块进行dump,便于后续的存储格式比对。

2.2,dump文本数据

    我们通过oracle内置的dump函数,进行name和bj字段的底层存储数据的查看:

(16进制格式)

(10进制)

2.3,比对

    我们查看下dump数据块出来的数据,比对下前端dump函数出来的数据,对比下:

    可以看到,两边数据一样

三、说明

    oracle内部,varchar2数据类型的内部代表码为1,也就是上面图中的TYP=1;char数据类型的内部代表码为96,也就是上面图中的TYP=96。根据这个内部码,oracle内部程序就知道该表该列的类型具体为什么。

    而len=5,就告知了这个字段存储所占为5个字节。

我们写个简单的c语言程序,直接解析下上述的数据:

t_oracle(){int a[] = {116,97,98,108,101};printf("tale t_code's first row column name is: ");for(int i=0;i<5;i++){printf("%c",a[i]);}printf("\n");printf("tale t_code's first row column bj is: ");int bj = 49;printf("%c",bj);
}int main() {t_oracle();}

    可以看到,我们直接就获取到第一行的name字段值为“table”,而bj字段值为“1"。深入想想,我们是否可以自己程序去读取数据文件块中的存储数据? 

相关文章:

深入解析下oracle char和varchar2底层存储方式

oracle数据库中&#xff0c;char和varchar2数据类型用来存储字符数据。char类型一旦定义多大&#xff0c;那么它就分配多少字节空间&#xff1b;varchar2类型定义多大&#xff0c;代表它可以扩展的最大大小为多大&#xff0c;一开始空间根据使用来决定。字符数据存储在oracle表…...

Angular v19 (三):增量水合特性详解 - 什么是水合过程?有哪些应用场景?与 Qwik 相比谁更胜一筹?- 哪个技术好我就学哪个,这就是吸心大法吧

Angular在其最新版本 v19 中引入了增量水合&#xff08;Incremental Hydration&#xff09;这一特性。这一更新引发了开发者们广泛的讨论&#xff0c;特别是在优化首屏加载速度和改善用户体验方面。本文将详解水合过程的概念、增量水合的应用场景&#xff0c;以及它与类似框架如…...

宠物空气净化器推荐2024超详细测评 希喂VS霍尼韦尔谁能胜出

最近有粉丝一直在评论区和后台探讨宠物空气净化器是不是智商税的问题&#xff0c;有人认为宠物空气净化器肯定不是智商税&#xff0c;有些人认为将其购回家就是个没用的东西&#xff0c;还占地方&#xff0c;双方各有自己的观点。 其实宠物空气净化器和普通的空气净化器是有很大…...

一线、二线、三线技术支持

一线、二线、三线技术支持是企业IT支持体系中常见的分工模式&#xff0c;目的是高效解决技术问题&#xff0c;同时优化资源利用。以下是它们的具体定义和职责划分&#xff1a; 1. 一线技术支持 (Tier 1/Level 1 Support) 定义&#xff1a; 一线技术支持是直接面对最终用户或客…...

智截违规,稳保安全 | 聚铭视频专网违规外联治理系统新品正式发布

“千里之堤&#xff0c;毁于蚁穴”。 违规外联作为网络安全的一大隐患&#xff0c; 加强防护已刻不容缓。 这一次&#xff0c; 我们带着全新的解决方案来了 ——聚铭视频专网违规外联治理系统&#xff0c; 重磅登场&#xff01;...

FFmpeg 的 codec 和 format

很多人容易混淆这二者区别 pcm_alaw, 这是 codec wav, 这是 format ffmpeg -formats 打印支持的所有 format ffmpeg -codecs 打印支持所有的 codec ffmpeg -i in.wav -y -ac 1 -ar 8000 -acodec pcm_alaw -f wav out.wav 把 in.wav 转换成 out.wav rtp/rtsp 等&#xff…...

分布式锁的实现原理

作者&#xff1a;来自 vivo 互联网服务器团队- Xu Yaoming 介绍分布式锁的实现原理。 一、分布式锁概述 分布式锁&#xff0c;顾名思义&#xff0c;就是在分布式环境下使用的锁。众所周知&#xff0c;在并发编程中&#xff0c;我们经常需要借助并发控制工具&#xff0c;如 mu…...

怎样提高自己的能量

能量转换的基本原则是让别人需要你&#xff0c;而不是你去求对方。别人需要你&#xff0c;你的能量就高&#xff0c;你去求别人你的能量就低。 怎样提高自己的能量&#xff1f; 第一&#xff0c;留意你的气场和格局。气场不是说你表现的多么霸道&#xff0c;而是你的信念、决心…...

ospf协议(动态路由协议)

ospf基本概念 定义 OSPF 是典型的链路状态路由协议&#xff0c;是目前业内使用非常广泛的 IGP 协议之一。 目前针对 IPv4 协议使用的是 OSPF Version 2 &#xff08; RFC2328 &#xff09;&#xff1b;针对 IPv6 协议使用 OSPF Version 3 &#xff08; RFC2740 &#xff09;。…...

【娱乐项目】竖式算术器

Demo介绍 一个加减法随机数生成器&#xff0c;它能够生成随机的加减法题目&#xff0c;并且支持用户输入答案。系统会根据用户输入的答案判断是否正确&#xff0c;统计正确和错误的次数&#xff0c;并显示历史记录和错题记录。该工具适合用于数学练习&#xff0c;尤其适合练习基…...

Qt中模拟鼠标消息并与系统鼠标消息进行区分

功能使用场景&#xff1a; 开发一个教学系统&#xff0c;包含了教师端、学生端&#xff0c;并且教师端支持示教功能。此时&#xff0c;学生端的鼠标、键盘不响应系统事件&#xff0c;但需要响应教师端发过来的鼠标移动、按下消息。 因为共享页面相同&#xff0c;为了提高局域…...

实时数据开发 | 一文理解Flink窗口机制

窗口操作在流处理和批处理之间起到了桥梁的作用。 Flink引擎本质上是流式引擎&#xff0c;认为批处理是流处理的一个特例。因此&#xff0c;通过窗口将流数据划分为有限大小的集合&#xff0c;使得在这些有界的数据集上可以进行批处理风格的计算。 通过配置窗口的参数&#xf…...

MFC 自定义树控件:树节点的样式与交互

在本教程中&#xff0c;将介绍如何在 MFC 应用程序中使用树控件 (CTreeCtrl) 进行高级定制&#xff0c;包括设置字体、颜色、徽章、图标、节点的高度等。通过这些自定义设置&#xff0c;可以显著提升用户界面的交互性和视觉效果。 1. 树控件基本设置 首先&#xff0c;我们需要…...

YOLOv8-ultralytics-8.2.103部分代码阅读笔记-loss.py

loss.py ultralytics\utils\loss.py 目录 loss.py 1.所需的库和模块 2.class VarifocalLoss(nn.Module): 3.class FocalLoss(nn.Module): 4.class DFLoss(nn.Module): 5.class BboxLoss(nn.Module): 6.class RotatedBboxLoss(BboxLoss): 7.class KeypointLoss(n…...

像素流送api ue多人访问需要什么显卡服务器

关于像素流送UE推流&#xff0c;在之前的文章里其实小芹和大家聊过很多&#xff0c;不过今天偶然搜索发现还是有很多小伙伴&#xff0c;在搜索像素流送相关的问题&#xff0c;搜索引擎给的提示有这些。当然这些都是比较短的词汇&#xff0c;可能每个人真正遇到的问题和想获取的…...

字符型注入‘)闭合

前言 进行sql注入的时候&#xff0c;不要忘记闭合&#xff0c;先闭合再去获取数据 步骤 判断是字符型注入 用order by获取不了显位&#xff0c;select也一样 是因为它是’)闭合&#xff0c;闭合之后&#xff0c;就可以获取数据了 最后就是一样的步骤...

评分规则的建模,用户全选就是满分10分(分数可自定义), 选2个5分, 选2个以下0分

子夜(603***854) 15:11:40 和各位讨论一下设计问题: 有个有业务场景: 有一组产品共4个产品(数目用户可自定义), 需要一套规则,比如如果用户全选就是满分10分(分数可自定义), 选2个5分, 选2个以下0分 又比如另一组产品 产品有个必选属性,如果选了其中所有的必选则5分, 其他项每1…...

Elasticsearch与NLP的深度融合:文本嵌入与向量搜索实战指南

Elasticsearch与NLP的深度融合:文本嵌入与向量搜索实战指南 引言 在当今信息爆炸的时代,如何从海量文本数据中快速准确地检索出相关信息,成为了一个迫切需要解决的问题。自然语言处理(NLP)技术的发展为这一挑战提供了新的解决方案。Elasticsearch,作为一个强大的搜索引…...

4. STM32_定时器

概述 什么是定时器&#xff1a; 定时器核心就是计数器&#xff0c;是使用精准的时基&#xff0c;通过硬件的方式&#xff0c;实现定时功能的器件。 定时器的工作原理&#xff1a; 主频时钟CLK通过PSC进行分频后产生定时器时钟TIM CLK&#xff0c;计数器CNT根据TIM CLK的频率…...

Mysql 深度分页问题及优化方案

Mysql 深度分页问题及优化方案 一、为什么 MySQL 深度分页慢&#xff1f;二、优化方案三、补充 一、为什么 MySQL 深度分页慢&#xff1f; 在数据量大时&#xff0c;深分页查询速度缓慢&#xff0c;主要原因是多次回表查询。 前言&#xff1a;N个条件为索引&#xff0c;id为主…...

前端性能优化技巧

前端性能优化技巧 1. 介绍 前端性能优化是确保网站或应用程序快速、响应迅速和流畅的关键。本文档将详细探讨提升前端性能的各种策略和最佳实践。 2. 资源加载优化 2.1 资源压缩 代码压缩&#xff1a;使用 Webpack、Terser 等工具压缩 JavaScript、CSS 文件文件大小压缩&a…...

taro使用createAsyncThunk报错ReferenceError: AbortController is not defined

解决办法&#xff1a; 1&#xff0c;安装这俩包&#xff1a;yet-another-abortcontroller-polyfill&#xff0c;event-target-polyfill 2&#xff0c;app.js import&#xff1a; import ‘event-target-polyfill’; import ‘yet-another-abortcontroller-polyfill’; 补充 但…...

Linux:systemd进程管理【1】

整体理解 要快速掌握Linux的systemd并覆盖80%的使用场景&#xff0c;以下是最重要的20%知识点&#xff1a; Systemd简介与核心功能&#xff1a; Systemd是一个系统和服务管理器&#xff0c;作为Linux系统的PID 1进程&#xff0c;负责启动和管理其他系统组件。它提供并行启动服…...

【Maven】继承和聚合

5. Maven的继承和聚合 5.1 什么是继承 Maven 的依赖传递机制可以一定程度上简化 POM 的配置&#xff0c;但这仅限于存在依赖关系的项目或模块中。当一个项目的多个模块都依赖于相同 jar 包的相同版本&#xff0c;且这些模块之间不存在依赖关系&#xff0c;这就导致同一个依赖…...

【线上问题记录 | 排查网络连接问题】

问题描述 现在有我们程序是部署在服务器A的&#xff0c;A链接的是B。程序从B的redis进行存储和取数据的。 我们的业务是: 信息展示&#xff0c;也就是如果发现机器有异常了&#xff0c;实时进行监控。突然发现有一天&#xff0c;信息显示延迟了。 然后我们就开始排查究竟什么原…...

springboot车辆管理系统设计与实现(代码+数据库+LW)

摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了车辆管理系统的开发全过程。通过分析车辆管理系统管理的不足&#xff0c;创建了一个计算机管理车辆管理系统的方案。文章介绍了车辆管理系统的系统分析部分&…...

独家|京东调整职级序列体系

原有的M、P、T、S主序列将正式合并为新的专业主序列P。 作者|文昌龙 编辑|杨舟 据「市象」独家获悉&#xff0c;京东已在近日在内部宣布对职级序列体系进行调整&#xff0c;将原有的M、P、T、S主序列正式合并为新的专业主序列P&#xff0c;合并后的职级体系将沿用原有专业序…...

Arrays.copyOfRange(),System.arraycopy() 数组复制,数组扩容

Arrays.copyOfRange() 当需要将数组中的 长度扩容时, 数组复制 使用 需要用到Arrays 类提供的的 参数解析 * param original the array from which a range is to be copied * param from the initial index of the range to be copied, inclusive * param to the final ind…...

Python学习37天

# 魔术方法 # 创建类Monster,默认为object的子类 class Monster: name None age None gender None def __init__(self, name, age, gender): self.name name self.age age self.gender gender # 重写魔术方法__str__输出实例对象信息…...

flask的第一个应用

本文编写一个简单的实例来记录下flask的使用 文章目录 简单实例flask中的路由 简单实例 flask的依赖包都安装好之后&#xff0c;我们就可以写一个最简单的web应用程序了&#xff0c;我们把这个应用程序命名为first.py: from flask import Flaskapp Flask(__name__)app.route(/…...

电脑版商城网站建设/百度seo推广

0 什么是环&#xff1f;在图论中&#xff0c;环(英语&#xff1a;cycle)是一条只有第一个和最后一个顶点重复的非空路径。在有向图中&#xff0c;一个结点经过两种路线到达另一个结点&#xff0c;未必形成环。1 拓扑排序1.1 无向图使用拓扑排序可以判断一个无向图中是否存在环&…...

河北邢台wap网站建设/今天热搜榜前十名

Scrum会议3 小组名称&#xff1a;Thunder 项目名称&#xff1a;i阅app Scrum Master&#xff1a;王航 工作照片&#xff1a; 苗威同学在拍照&#xff0c;所以不在照片内。 参会成员&#xff1a; 王航(Master)&#xff1a;http://www.cnblogs.com/wangh013/ 李传康&#xff1a;h…...

深圳网站制作公司流程图/网站运营和维护

计算机操作系统考试习题 1.设计现代OS的主要目标是什么&#xff1f; 答&#xff1a;&#xff08;1&#xff09;方便性&#xff08;2&#xff09;有效性&#xff08;3&#xff09;可扩充性&#xff08;4&#xff09;开放性&#xff08;兼容性&#xff09; 2.OS的作用可表现为哪…...

wordpress用户站内信/seo数据监控平台

同一个Tomcat 同一个端口 部署多个项目 第一步&#xff1a;把待发布的多个项目.war文件放入tomcat的webapps文件下下 ![这里写图片描述](https://img-blog.csdn.net/20170914102630363?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZHJlYW1zdGFyNjEz/font/5a6L5L2T/fontsiz…...

网上做网站的公司都是怎么做的/alexa排名

这个问题是一个具有很强操作性的问题。我这里有一个经验总结&#xff0c;分享一下&#xff0c;供参考&#xff1a; 首先&#xff0c;提倡使用utf-8编码方案&#xff0c;因为它跨平台不错。 经验一&#xff1a;在开头声明&#xff1a; # -*- coding: utf-8 -*- 有朋友问我-*-…...

三拼域名做网站/网站注册查询

如果在javascript内要用alert显示换行的信息则<script language"javascript">alert("1 2 3")</script>今天我想RegularExpressionValidator的错误信息ValidationSummary被显示用MessageBox方式显示的时候随手写下了ErrorMessage"电话号码…...