字符集编码和存储大小因素

2024-01-04

对于 Oracle,是否有关于给定各种字符编码的存储分配的矩阵/表格信息。

例如:

列大小 (AL32UTF8) == 4 * 列大小 (WE8ISO8859P1)

我对因子值 4 感兴趣


除非您只对最大变化感兴趣,否则您的示例是不正确的。

AL32UTF8 是可变长度字符集。一般来说,US7ASCII 字符集中的任何字符都将占用 1 个字节,欧洲字符通常需要 2 个字节,各种亚洲语言字符需要 3 个字节,少数非常罕见的字符将需要 4 个字节。实际上,如果您正在谈论将实际的 WE8ISO8859P1 数据转换为 AL32UTF8,那么实际上您通常会看到 1 和 2 之间的转换因子,该因子更接近 1,而不是 2。无需查找每个有效 WE8ISO8859P1 字符的 Unicode 映射,如果 AL32UTF8 字符集中需要 3 或 4 个字节的存储,我会感到惊讶。

在全球化支持指南中,有一节介绍字符集 http://docs.oracle.com/cd/E11882_01/server.112/e10729/applocaledata.htm#i635016它告诉您哪些字符集是单字节的,哪些是多字节的,以及哪些多字节字符集是固定宽度的。几乎所有多字节字符集都是可变宽度的,因此您要查找的因素将取决于您的数据。

在大多数情况下,最好将列声明为使用字符长度语义而不是字节长度语义,让数据库在幕后确定要分配多少数据。例如,如果您声明一列

CREATE TABLE foo (
  col1 VARCHAR2(10 CHAR)
)

Oracle 将为 10 个字符的存储分配空间,无论数据库字符集如何,也无论存储该数据所需的实际字节数(受限于每个字符 4000 字节的限制)。VARCHAR2柱子)。这通常会使定义列大小变得更加容易,因为如果有人决定将 10 个 4 字节 UTF-8 字符放入一行,您不必增大列的大小,并且您不必向用户解释该列将接受根据语言和/或所选的特定字符,包含不同数量的字符的字符串。

尽管定期处理全球化问题的 Oracle 人员阻止它 https://forums.oracle.com/forums/thread.jspa?messageID=9868167,更愿意在声明列时显式指定字符长度语义或至少仅在会话级别设置它,您可以设置引起VARCHAR2(10)默认情况下使用字符长度语义而不是字节长度语义(您仍然可以指定VARCHAR2(10 BYTE)如果你想要字节长度语义)。

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

字符集编码和存储大小因素 的相关文章

  • 具有多个数据源的 Tomcat 6/7 JNDI

    当有多个时
  • oracle中是否有相当于concat_ws的东西?

    我有大量的列试图聚合在一起 其中大多数都有 NULL 值 我想分隔确实以 出现的值但我在oracle中找不到有效的方法来做到这一点 CONCAT WS 正是我所需要的 因为它不会在 NULL 值之间添加分隔符 但 Oracle 不支持这一点
  • 从 oracle 中为每个组选择最新行

    我在留言簿中有一张包含用户评论的表格 列有 id user id 标题 评论 时间戳 我需要为每个用户选择最新行 我尝试使用 group by 执行此操作 但没有管理它 因为我无法在按 user id 分组的同一查询中选择任何其他内容 SE
  • 如何将 default.html 的字符编码设置为 UTF-8?

    我花了几个小时来验证我的网站HTML 4 01 严格事实上我已经成功了 但仍然有一个警告我无法摆脱 警告是 字符编码不匹配 中指定的字符编码 HTTP 标头 iso 8859 1 是 与中的值不同 元素 utf 8 我将使用该值 来自 HT
  • 仅使用 SQL 中的 MAX 函数更新重复行

    我有一张这样的桌子 假设为了举例 NAME是一个唯一的标识符 NAME AGE VALUE Jack Under 65 3 Jack 66 74 5 John 66 74 7 John Over 75 9 Gill 25 35 11 Som
  • 在 Oracle 中创建数据库链接时出错

    我有两个数据库 需要编写跨数据库查询 所以我试图创建一个数据库链接 CREATE PUBLIC DATABASE LINK DBLink CONNECT TO SchemaName IDENTIFIED BY 123 using DBNam
  • 如何在sql中提取周数

    我有一个 varchar2 类型的转换列 其中包含以下主菜 01 02 2012 01 03 2012 etc 我使用 to date 函数将其转换为另一列中的日期格式 这是我得到的格式 01 JAN 2012 03 APR 2012 当我
  • 英镑符号在商店中显示为未知字符

    对于商店中每次出现的英镑符号 我都会看到一个 黑色菱形中的问号符号 谷歌搜索得到了字符集的建议 我的设置为 utf 8 如下 我相信这家商店最初是在 Os commerce 中开设的 在货币表中 我使用了 pound 的 ascii 代码
  • 如何在 Node.js 中打开 Windows-1255 编码文件?

    我有一个 Windows 1255 希伯来语 编码的文件 我希望能够在 Node js 中访问它 我尝试使用打开文件fs readFile 它给了我一个Buffer我无能为力 我尝试将编码设置为Windows 1255 但这没有被识别 我还
  • 如何在html中设置按钮的文本大小

    您好 我想在我的网站上有一个按钮 并且我想调整按钮上的文本大小 我该怎么做呢 我的代码如下
  • simpleJdbcCall 调用 Pl/SQL 过程 -- ORA-22922 不存在的 LOB 值

    我收到此 SQLException ORA 22922 不存在的 LOB 值 我的场景是 我正在调用一个采用结构数组的过程 该结构体包含三种类型 两种是日期 一种是 Clob 当我使用 Spring 的 simpleJdbcCall 设置
  • 什么会导致 Oracle ROWID 更改?

    AFAIK Oracle 中的 ROWID 表示相应数据文件中记录的物理位置 在什么情况下记录的ROWID可能会改变 我所知道的一个是分区表上的更新 它将记录 移动 到另一个分区 还有其他情况吗 我们的大多数数据库都是 Oracle 10
  • Oracle Blob 在 PHP 页面中作为 img src

    我有一个网站当前使用文件服务器上的图像 这些图像显示在页面上 用户可以根据需要拖放每个图像 这是使用 jQuery 完成的 图像包含在列表中 每张图片都非常标准 img src network path image png height 8
  • Hibernate 本机查询 - char(3) 列

    我在 Oracle 中有一个表 其中列 SC CUR CODE 是 CHAR 3 当我做 Query q2 em createNativeQuery select sc cur code sc amount from sector cost
  • 验证 sql/oracle 中的电子邮件/邮政编码字段

    对于以下方面的一些建议将不胜感激 是否可以通过 oracle 中的 sql 中的某种检查约束来验证电子邮件和邮政编码字段 或者我怀疑 pl sql 带有正则表达式的这种事情 Thanks 这是电子邮件地址的正则表达式语法 包括引号 a zA
  • 使用 UTF-8 编码的 Powershell 字符串变量

    我检查了许多与此相关的问题 但找不到解决我的问题的东西 基本上 我想将 UTF 8 编码的字符串存储在变量中 然后使用该字符串作为文件名 例如 我正在尝试下载 YouTube 视频 如果我们打印视频标题 则会显示非英文字符 ytd这是you
  • 如何检查oracle数据库中分配给模式、角色的对象的权限(DDL、DML、DCL)?

    大多数时候 我们都在与愚蠢的事情作斗争 以获取架构 角色及其对象的权限详细信息 并尝试找到一些简单的方法来获取有关它的所有详细信息以及伪查询代码 以批量生成授予语句以供进一步使用执行 所以我们在这里得到它 关于数据字典视图前缀的一些简单介绍
  • ORA-00933 与内部联接和“as”混淆

    我有一个使用以下命令从两个表中获取数据的查询inner join 但我收到错误SQL command not properly ended as 下面有一个星号 select P carrier id O order id O aircra
  • 使用 Hibernate 将 Oracle 日期映射到 Java 对象

    我收到消息 文字与格式字符串不匹配 例如 以下是 Java 类中的一些方法 public String getDateTime public void setDateTime String date time 以下是该类的 Hibernat
  • 如何计算选择查询的最佳获取大小

    在 JDBC 中 默认获取大小为 10 但我想当我有一百万行时 这不是最佳获取大小 据我所知 获取大小太低会降低性能 但如果获取大小太高也会降低性能 我怎样才能找到最佳尺寸 这对数据库端有影响吗 它会占用大量内存吗 如果您的行很大 请记住

随机推荐

  • TFS 传输层安全 1.1/1.2

    我们目前在 Windows Server 2012 R2 上使用 TFS 2015 3 使用 NARTAC 指定使用 TLS1 1 1 2 并禁用 TLS1 0 后 我们的构建层服务器无法连接到应用层服务器 有没有人有同样的问题并解决了 谢
  • 语义相关性算法 - python [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想找到两个同义词集之间的相关性 我遇到了许多算法 如 resnik lin wu palmer path 算法 leacock ch
  • 从 iPhone 上传文件时出现 POSIX 错误 12(“无法分配内存”)

    我正在开发一个 iPhone 应用程序 该应用程序涉及将相机中的完整照片 通常每张照片在 1 5 到 2 0 MB 之间 及其缩略图 小得多 上传到 Amazon S3 缩略图总是成功上传 但是有时完整图像则不然 当它们失败时 它们会失败并
  • Botframework - 调整机器人聊天的宽度[重复]

    这个问题在这里已经有答案了 Is it possible to resize the width of the chat for botframework Currently I m testing on a emulator Basica
  • 使用 Node JS 将数据从 Excel 导入到 MySql

    我想使用 NodeJS 读取 excel 并保存在 MySQL 数据库中 我不知道该使用什么库 我希望能够根据某些行和列读取 Excel 请帮我 您可以使用许多库 sheetjs xlsx excel js etc
  • iOS 的滑块视图

    Can someone help me with this scenario 有一个按钮 点击该按钮时 会滑动打开一个 UIView 点击的按钮仍在其左侧 再次点击此按钮时 使 UIView 向后滑动 你所描述的很简单 我们将从右侧滑入的视
  • RGB 图像的像素强度以及如何将其与整数相乘以查看灰度阴影

    我有一个 RGB 图像 有 4 种不同的颜色黑色 0 0 0 作为背景 绿色 106 136 93 蓝色 64 224 208 和棕色 168 124 85 当我将图像读取为灰度并使用 np unique 时 它会返回一个巨大的像素强度列表
  • 使用异步承诺处理 Guzzle 超时

    我正在发送多个异步承诺 并将 guzzle 超时设置为 30 我想知道如何捕获是否有任何承诺超时 以便我可以报告此错误 请参阅下面的代码 本质上 我想在超时之前使用我能做的任何响应 并捕获那些超时的响应 foreach apiRequest
  • 为什么在生产环境中运行 Go 应用程序时建议使用“go build”而不是“go run”?

    我有一个 Dockerfile 用来编译 Go 应用程序go build 我研究了一下 确实go build推荐用于生产 但是我无法找到正确的答案 我明白go run创建一个临时文件 并在应用程序终止时进行清理 但是如果我使用Docker
  • 从另一个线程调用 CFRunLoopStop 是否安全?

    我的 主要是 POSIX 应用程序的 Mac 版本生成一个子线程 该子线程调用 CFRunLoopRun 来执行事件循环 以从 MacOS 获取网络配置更改事件 当需要收拾东西离开时 主线程在子线程的运行循环上调用 CFRunLoopSto
  • 如何从 JSF 生成 JSON 响应?

    我创建了一个页面 我想在其中从 JSF 页面获取 JSON 响应 但是当我尝试获取页面时 它显示了整个 html 页面 value 21 name Mick Jagger value 43 name Johnny Storm value 4
  • 图数据库(neo4j)与关系数据库。需要设计帮助

    我必须与一个开源项目合作 biojava http biojava org wiki Main Page 但我对某些性能不满意 我想花一些时间来改进它 例如 我有一个以这种方式编码的文本数据库 chrX Cufflinks exon 651
  • 如何在Project中找到UIWebView并替换为WKWebView?

    我们收到这封电子邮件来自 电子邮件受保护 cdn cgi l email protection上传构建时 我们发现您的应用程序 应用程序名称 1 0 5 0 最近交付存在一个或多个问题 请更正以下问题 然后重新上传 ITMS 90809 已
  • 如何更改另一个程序图标?

    我如何在 C 中更改另一个程序图标 不是我的 我想在 Windows 上执行此操作 我的一个朋友正在用 VB 编程 他制作了一个可以更改另一个 exe 图标的程序 那么我怎样才能在 C 中做到这一点呢 准备好更新的资源后 使用 LoadIc
  • 如何将 Pandas DataFrame 更改为多列列?

    我有一个 Pandas DataFrame 其列索引如下所示 A1 A2 A3 B1 B2 B3 the data 我想做的就是将此 DataFrame 的列索引更改为多索引列索引 如下面的格式所示 而不修改数据 只是简单地在索引中添加上一
  • 将 XML 中的 反序列化为 List<>

    我在反序列化 WCF Web 服务的结果时遇到问题 该方法返回一个List
  • 使用 oracle 解析器从 XML 中获取首次出现的值

    我不是 Oracle 专家 但根据要求 我使用 Oracle Parser 来解析 Xml 对于下面列出的 xml 即
  • 如何使用 C# 将一个图像嵌入到另一个图像中?

    在我的项目中 用户将上传图像 项目徽标将附加 嵌入 到图像的底部 是否可以实施 如果是的话如何实施 请帮忙 是的 可以实施 看着那 这系统图 http msdn microsoft com en us library system draw
  • 从 HTML 字符串中提取脚本标签

    或者任何其他标签 for eg 该字符串是 ajax 调用的响应 我想得到一个包含 3 个字符串的数组
  • 字符集编码和存储大小因素

    对于 Oracle 是否有关于给定各种字符编码的存储分配的矩阵 表格信息 例如 列大小 AL32UTF8 4 列大小 WE8ISO8859P1 我对因子值 4 感兴趣 除非您只对最大变化感兴趣 否则您的示例是不正确的 AL32UTF8 是可