GBase 8s内置数据类型—大对象数据类型

2023-11-19

 大对象数据类型

大对象数据类型已定义表与大对象存储分开大对象是逻辑存储在表列中但物理存储与列无关的数据对象。大对象是独立于表存储的,因为它们通常存储大量的数据。将此数据与表分开可提高性能。

大对象分为简单大对象和智能大对象,简单大对象又分为BYTE和TEXT,智能大对象又分为BLOB和CLOB

只有GBase 8s支特BLOB和CLOB数据类型。

1.简单大对象

简单大对象是具有理论大小限制2^31个字节和磁盘容量确定的实际限制的大对象类别。GBase 8s支持以下简单大对象数据类型:

1.1 BYTE

存储二进制数据,BYTE数据类型以无差别字节流的形式存储任何种类的二进制数据。二进制数据通常由数字化的信息(如电子表格、程序装入模块和数字化声音模式等等)组成。

BYTE数据类型不具有最大大小。BYTE列具有2^31个字节的理论限制和磁盘容量确定的实际限制。可以存储、检索、更新或刪除BYTE列的内容。但是,不能在算术或字符串运算中使用BYTE操作数,也不能使用UPDATE 语句的SET子句将文字指定给BYTE列。也不能通过以下任何方法使用BYTE项:

  • 使用聚集函数。
  • 使用IN子句。
  • 使用MATCHES或LIKE子句
  • 使用GROUP BY子句
  • 使用ORDER BY子句

1.2 TEXT

存储文本数据。TEXT数据类型存储所有类型的文本数据。它可以同时包含语言坏境支持的单字节字符和多字节字符。术语简单大对象指的是TEXT和BYTE数据类型。

TEXT列具有2^31个字节(两千兆字节)的理论限制和可用磁盘存储器确定的实际限制。可以将相同表的不超过195列声明为TEXT数据类型。同一限制还适用于BYTE数据类型。可以存储、检索、更新或删除TEXT列中的值。

仅当正在使用IS NULL或 IS NOT NULL运算符测试NULL值时,才能在布尔表达式中使用TEXT操作数。

您可以使用以下可装入行或更新字段的方法来插入TEXT 数据:

  • 使用dbload或onload实用程序,
  • 使用LOAD 语句(DB-Access)
  • 从TEXT主变量 (ESQL)
  • 存在内置强制转型将TEXT对象转换为CLOB对象

可以将相同表的不超过195列声明为BYTE或TEXT数据类型。与智能大对象不同,简单大对象不支特随机存取数据。在客户机应用程序和数据库服务器之间传输简单大对象时,您必须传输完整的BYTE或TEXT值。如果数据不适合于内存,那么必须将数据值存储在操作系统文件中,然后从该文件中检索数据值。


2.智能大对象

智能大对象是支持对数据进行随机访向并且通常可恢复的一类大对象。随机存取功能允许您查找和读取智能大对象,就好像它是操作系统文件一样。

智能大对象对于具有大量存储器需求的不透明数据类型也很有用。它们具有2^42个字节的理论大小限制和磁盘容量确定的实际限制。

CBase 8s支持下列智能大对象数据类型:

2.1 BLOB

存储二进制数据。BLOB 数据类型以随机存取块(称为智能大对象空间)的形式存储任何种类的二进制数据。二进制数据通常由已保存的电子表格、程序装入模块和数字化声音模式等等组成。数据库服务器不会对 BLOB 列的内容进行解释。

BLOB列最长可为4太字节(4^29个字节),不过系统资源可能会强加较低的实际限值。分配给智能大对象数据类型的最小磁盘空间量为512字节。

木语智能大对象指的是BLOB和CLOB数据类型。将CLOB数据类型用于随机访问文本数据。

您可以使用以下SQL函数对BLOB列执行操作:

  • FILETOBLOB将文件复制到BLOB列。
  • LOTOFILE将BLOB(或CLOB)值复制到操作系统文件中。
  • LOCOPY将现有智能大对象复制至新的智能大对象。

可以通过下列方法将数据插入到BLOB列:

  • 使用dbload或onload实用程序。
  • 使用LOAD 语句(DB-Access)
  • 使用FILETOBLOB函数
  • 从BLOB(ifx_lo_t)主变量(GBase 8s ESQL /C) 

2.2 CLOB

存储文本数据。CLOB数据类型以随机存取块(称为智能大对象空间)的形式存储任何种类的文本数据。如果此信息也是文本的 (例加。PostScript、“超文本标记语言”(HTML)、“标准图形标记语言”(SGML)或“可扩展标记语言(XML)数据),那么文本数据可包括文本格式的信息。

木语智能大对象指的是CLOB和BLOB数据类型。CLOB数据类型支持对不适合 BLOB值的字符串进行特殊运算。CLOB值最长可为4太字节(4*2^40个字节)。分配给智能大对象数据类型的最小磁盘空间量为 512字节。

将BLOB数据类型用于随机访问二进制数据,以下SQL函数可以对CLOB列执行操作:

  • FILETOCLOB将文件复制到CLOB列。
  • LOTOFILE将CLOB(或BLOB)值复制到文件中。
  • LOCOPY 将CLOB(或BLOB)值复制到新的智能大对象。
  • ENCRYPT_DES 或ENCRYPT TDES 从纯文本CLOB参数创建一个加密的BLOB值。
  • DECRYPT BINAR或DECRYPT CHAR从加密的BLOB 参数返回未加密的BLOB值(该ENCRYPT DES或ENCRYPT TDES从纯文本CLOB值中创建)

CLOB数据没有任何强制转型。因此,除非使用这些加密和解密函数返回一个BLOB,否则数据库服务器无法将CLOB类型的数据转换为任何其他数据类型。在SQL中,只能对CLOB数据执行等于(=)比较运算。要执行其他运算。必须从客户机应用程序中使用某种应用程序编程接口。

CLOB类型的多字节字符可以通过下列方法将数据插入到CLOB列:

  • 使用dbload或onload实用程序
  • 使用 LOAD语句(DB-Access)
  • 从CLOB(ifx_lo_t主变量(ESOL/C)

对于GLS,以下规则适用:

  • 必须在数据库语言环境中定义多字节CLOB字符。
  • 用代码集顺序整理CLOB数据类型。
  • 数据库服务器处理CLOB数据的代码集转换。

GBase 8s将智能大对象存储在智能大对象空间中。智能大对象空间是包含只存储BLOB和CLOB数据的—个或多个块的逻辑存储器区域。


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GBase 8s内置数据类型—大对象数据类型 的相关文章

  • 在数据库设计中什么时候需要使用一对一关系?

    在数据库设计中什么时候需要使用一对一关系 在我看来 如果两个表是一对一的关系 那么它们可以合并成一个表 这是真的 对大型表进行垂直分区以减少 I O 和缓存需求 将经常查询的列与很少查询的列分开 向生产系统添加列时alter table就是
  • 使用 Rails/ActiveRecord 覆盖旧数据库中列的名称或别名

    我正在针对旧数据库编写 Rails 应用程序 此旧数据库中的一个表有一个名为object id 很遗憾object id也是 Ruby 中每个对象的属性 因此当 ActiveRecord 尝试使用这些对象来制定查询时 它使用 Ruby 定义
  • 如何检查 postgres 的 psql 是否自动提交

    我使用的是 postgres 9 5 如何检查自动提交是否打开或关闭 我试过SHOW AUTOCOMMIT我在哪里得到的ERROR unrecognized configuration parameter autocommit 然后我做了一
  • 如何优化 postgres 查询

    我正在运行以下查询 SELECT fat FROM Table1 fat LEFT JOIN modo captura mc ON mc id fat modo captura id INNER JOIN loja lj ON lj id
  • SQLSTATE[HY000] [2002] 连接尝试失败,因为连接方在一段时间后没有正确响应,

    我尝试连接 2 个数据库Laravel 5 6项目 但我遇到这样的错误 SQLSTATE HY000 2002 连接尝试失败 因为连接方在一段时间后没有正确响应 或者由于连接的主机未能响应而建立的连接失败 SQL 从中选择 mt merch
  • FIND_IN_SET 具有多个值[重复]

    这个问题在这里已经有答案了 我想从数据库字段搜索多个值 以下是我的查询 SELECT FROM tablename WHERE FIND IN SET 12 13 15 15 category id 我如何搜索它对我不起作用 FIND IN
  • 仅包含主键和外键的数据库表的用途是什么?

    我试图理解一个简单的音乐数据库设计 有些表只包含外键和主键 我不确定如何以及何时使用这些表或向其中插入什么内容 设计如下 Track id primary key title duration live performance true o
  • 文件保存在文件系统中 VS 保存在数据库中

    我正在设计一个 servlet 或 Struts2 中的操作 用于文件 图像 文档等 下载 但我想知道哪种更好的方法可以将文件保留在文件系统和数据库中 只需保留文件的路径或将文件保留在数据库中 如 BLOB 我知道当我查询数据库时 哪里的
  • 按时间戳字段中的日期过滤结果

    我已经获得了一些帮助 但不确定为什么这不起作用 我正在尝试使用表单让用户过滤他们的活动 存储在数据库中 My code GET from 01 11 2013 GET to 25 11 2013 from DateTime createFr
  • 当我尝试连接到数据库时收到“错误:无法初始化 OLE”? C#

    我正在尝试通过 C 连接到数据库 但这样做时收到一条非常无用的错误消息 08 44 17 错误 无法初始化 OLE 08 44 17 错误 无法初始化 OLE 我尝试寻找解决方案 但没有成功 我也尝试重新启动计算机 但这也没有帮助 我正在运
  • 如何使用Python高效地将CSV文件数据插入MYSQL?

    我有一个带有 aprox 的 CSV 输入文件 400 万条记录 插入已运行超过 2 小时 但仍未完成 数据库仍然是空的 关于如何实际插入值的任何建议 使用insert into 并且更快 比如将插入物分成块 我对 python 还很陌生
  • 如何使用 django 更新会计应用程序中的余额?

    我正在学习 Django 尝试制作一个会计应用程序来跟踪我的开支等 我使用两种模型创建数据库 一种用于帐户 一种用于操作 但我不知道如何在每次操作时更新我的 余额 我在想 也许每次我保存一个新操作时 我都会通过覆盖操作模型的保存方法来更新余
  • 是否可以从数据库转储生成 knex 种子文件?

    就我而言 我使用的是 mysql 但是 我正在寻找一种通用解决方案 用于从当前运行的数据库或数据库转储生成 knex 种子文件 我可以就像是 https github com tgriesser knex issues 944 issuec
  • 如何杀死Mysql“show processlist”中的所有进程?

    因为我在那里看到了很多进程 并且 时间 列显示了所有进程的大值 大规模屠杀操作节省时间 在 MySql 本身中执行此操作 运行这些命令 mysql gt select concat KILL id from information sche
  • 如何通过逗号分隔将 2 行合并为一行?

    我需要将这些单独的行合并到一列 我现在如何通过逗号分隔合并列 CID Flag Value 1 F 10 1 N 20 2 F 12 2 N 23 2 F 14 3 N 21 3 N
  • 自定义 php 论坛 - 显示新的/未读的帖子

    我自己使用 php 编写了一个自定义论坛脚本 我决定不使用 phpbb 和其他工具 因为我希望我所做的事情具有 100 的灵活性 不过我遇到了一个问题 如何向用户显示帖子是否是新的 未读的 我想到了两种解决方案 1 饼干 2 数据库 我不想
  • 如何在查询中生成序列号?

    我们使用 PostgreSQL v8 2 3 如何在查询输出中生成序列号 我想显示查询返回的每一行的序列号 例子 SELECT employeeid name FROM employee 我希望生成并显示从一开始的每一行的序列号 你有两个选
  • 如何解析 Google Alerts 中的数据?

    首先 除了解析 Google 发送给您的电子邮件文本之外 您如何将 Google Alerts 信息存入数据库 似乎没有 Google Alerts API 如果您必须解析文本 您将如何解析电子邮件的相关部分 创建警报时 将 传送至 设置为
  • 使用 Spring Boot 的 Flyway Core 给出错误 'delayedFlywayInitializer' 和 'entityManagerFactory' 之间的循环依赖关系

    我想在 SQL Server 数据库上导入一些数据 我使用的是 Spring Boot 2 3 4 我还使用 Hibernate 来生成表 我在pom中添加了flyway核心
  • MySQL - 替换列中的字符

    作为一个自学成才的新手 我给自己制造了一个大问题 在将数据插入数据库之前 我将字符串中的撇号 转换为双引号 而不是 MySQL 实际需要的反斜杠和撇号 在我的表增长到超过 200 000 行之前 我认为最好立即纠正此问题 所以我做了一些研究

随机推荐

  • 跨站脚本攻击XSS(最全最细致的靶场实战)

    一 XSS跨站漏洞 1 XSS简介 网站中包含大量的动态内容以提高用户体验 比过去要复杂得多 所谓动态内容 就是根据用户环境和需要 Web应用程序能够输出相应的内容 动态站点会受到一种名为 跨站脚本攻击 Cross Site Scripti
  • 教你如何快速下载python

    1 打开python官网 链接 py官网 2 找到自己要安装的版本 点击下载 3 下载 exe文件 打开 4 弹出标题为Install Python X X X X bit 的窗口 将下面的Add Python 打勾 点Install No
  • (一)软件架构概述

    1 系统结构 B S架构 Browser Server 浏览器 服务器的交互形式 Browser支持哪些语言 HTML CSS JavaScript 写HTML CSS JavaScript代码的这波人职位叫做 WEB 前端开发工程师 Ja
  • Python学习笔记(四)

    文章目录 1 进程 1 1 系统原生 OS 模块 创建进程 1 2 multiprocessing 模块 1 2 1 Process 单进程 1 2 2 Pool 进程池 1 3 subprocess 模块 使用外部子进程 2 线程 2 1
  • 爬虫 跨域请求 获取json数据 解决参数加密

    分析网址 提示 抓取对方信息是通过对方允许的 请不要违法操作 抓取其他个人有关信息 网址先发送了一个OPTIONS请求 Request URL http xxxxxxxx com Request Method OPTIONS Status
  • C++知识积累:内存对齐理解

    为什么要进行内存对齐 这是因为CPU的读取总是对齐的 举个例子 假设CPU是32位的 那么CPU每次读取的4字节数据的首地址都是4的倍数 也就是说 内存中数据首地址为4的倍数时 CPU一次操作就可以完成数据读取 假设有一个int型四字节大小
  • 警告: Can't initialize javac processor due to (most likely) a class loader problem: java.lang.NoClassD

    说明 主要参考了这位大佬的文章 https www cnblogs com xxjcai p java compiler html 不过我是在使用IDEA的时候遇到的问题 所以我这里介绍一下在IDEA中的解决方案 错误信息 src main
  • VS2017 NuGet包管理

    一 在 https www nuget org 注册账号并生成APIKEY 二 在命令行窗口启动nuget exe 三 生成 nuspec文件 将nuget exe放置在项目目录 注意下图 处的id version 打包后会生成 id ve
  • C/C++ int a[]和int (*a)[]的区别

    int a a与 先结合 a为数组 数组element type int int a a与 先结合 a为指针 指向数组 同int a link https www jianshu com p 548ff8e1b243
  • CentOS7修改SSH端口

    CentOS7 修改SSH端口 文章目录 CentOS7 修改SSH端口 1 修改ssh配置文件 1 1 查看默认端口 1 2 修改端口 2 防火墙放行 2 1 查看防火墙状态 2 2 防火墙放行端口 202 2 3 查看已开启端口 2 4
  • svn客户端检出的工程导入eclipse后不显示SVN信息

    1 首先确定原因 是由于SVN客户端与SVN插件版本不对应导致的 因此需要更换SVN插件版本 1 1 SVN插件与SVN客户端版本对应关系 插件svn1 4 x对应TortoiseSvn 1 5 x 插件svn1 6 x对应Tortoise
  • Keil MDK编程环境下的 STM32 IAP下载(学习笔记)

    IAP下载 IAP的引入 不同的程序下载方式 ICP ICP In Circuit Programing 在电路编程 可通过 CPU 的 Debug Access Port 烧录代码 比如 ARM Cortex 的 Debug Interf
  • Jsp页面java.lang.NumberFormatException: For input string: ““错误解决办法

    Jsp页面报Java lang NumberFormatException For input string 错误解决办法 昨天写代码遇到一个错误 在日志和控制台报一个错误说jsp页面一个出现java lang NumberFormatEx
  • React-Router V6 使用详解

    一 基本用法 React Router的安装方法 npm npm install react router dom 6 yarn yarn add react router dom 6 目前官方从5开始已经放弃原有的react router
  • Java中Date日期处理类,Calendar日期类,SimpleDateFormat

    1 date 获取当前系统时间 date getTime 获取系统时间毫秒值 package import java util Date public class DateDemo public static void main Strin
  • Java 多线程模式 —— Guarded Suspension 模式

    Part1Guarded Suspension 模式的介绍 我们只从字面上看 Guarded Suspension 是受保护暂停的意思 1Guarded Suspension 模式 在实际的并发编程中 Guarded Suspension
  • 【开源电机驱动】符号-幅值驱动方式

    原文地址 http www modularcircuits com blog articles h bridge secrets sign magnitude drive 本文为翻译校正稿件 含有译者个人理解 Sign Magnitude
  • Edge兼容性错误

    Edge兼容性错误 搜索错误 STATUS INVALID IMAGE HASH 修改注册表 进入 HKEY LOCAL MACHINE SOFTWARE Policies Microsoft Edge 没有就新建 然后新建DWORD 32
  • Vue中鼠标悬停更换图片/文字内容,动态展示/修改某些属性

    Vue中鼠标悬停更换图片 文字内容 动态展示 修改某些属性 鼠标悬停时 mouseenter 鼠标离开时 mouseleave 利用以上来绑定相应方法 例如 div 分别为鼠标悬停时和离开时绑定方法changeImageSrc 并传递参数
  • GBase 8s内置数据类型—大对象数据类型

    大对象数据类型 大对象数据类型已定义表与大对象存储分开大对象是逻辑存储在表列中但物理存储与列无关的数据对象 大对象是独立于表存储的 因为它们通常存储大量的数据 将此数据与表分开可提高性能 大对象分为简单大对象和智能大对象 简单大对象又分为B