mysql的varchar和oracle的varchar2比较
首先说结论:
1.mysql存储的是字符数(不分语言)
2.oracle存储的需要看定义,如果定义为varchar2(n),则默认是n个字节,如果是varchar2(n char)则是n个字节.
3.oracle的实际存储有受到限制,如果是12c之前,那么即使可以定义varchar2(4000 char)也无法存入4000个汉字。
以上结论是基于以下情形:
1.mysql-8.x 字符集utf8mb4
2.oracle-12.2.0 ,字符集合al32utf8(三个字节存储一个汉字)
--
oracle12c即使定义为varchar2(4000 char),如果字符集是al32utf8,那么实际只能存入4000/3≈1333个汉字。
create table t_test_datalength(id int ,name varchar2(3 char));
alter table t_test_datalength add v4000 varchar2(4000 char);
declare
vn_char varchar2(4000 char) := '';
i int;
ttl int;
begin
for i in 1 .. 400 loop
vn_char := vn_char || '我们大家都很好啊匹配';
end loop;
dbms_output.put_line(vn_char);
ttl := length(vn_char);
dbms_output.put_line(ttl);
update t_test_datalength set v4000 = vn_char;
end;
执行后,会提示ora-12899
mysql的varchar和oracle的varchar2比较的更多相关文章
- mysql的varchar和oracle的varchar2、nvarchar2
mysql的varchar长度表示字符长度,一个汉字和一个英文字母的长度都是1 实例:下面name字段定义为varchar(10),可存10个汉字和10个字母 oracle的varchar2长度表示的 ...
- mysql数据库转移到oracle的经历
简单说明一下情况,系统原本是LAMP的.现在要添加对oracle的支持,原来的mysql也同样支持(通过配置选择数据库类型). 第一步,表结构转移到oracle,并掌握转移的方法(方便给有二开的老客户 ...
- mysql varchar vs oracle varchar2
1.错误提示: mysql的Data truncation: Data too long for column 'path' at row 1 错误原因: 1.字段过长而导致出错的, 2. 可能是因为 ...
- 600万用户数据导入MYSQL、MSSQL、Oracle数据库方法【转】
1.导入MySql数据库 参考文献:http://zhuaxia.org/blog/post/145 1.1.LOAD DATA INFILE语法 因为获得的数据库文件是一个文本文件www.csd ...
- mysql 迁移数据库到 oracle (sql注意问题)
http://ykdn2010.iteye.com/blog/1511349 一. 项目已用到 oracle 函数的转换 1. Oracle 中的 TO_DATE (),TO_CHAR () 示例: ...
- mysql导入数据到oracle中
mysql导入数据到oracle中. 建立Oracle表: CREATE TABLE "GG_USER" ( "USERID" BYTE) NOT NULL, ...
- 针对各主流数据mysql、sqlserver、oracle中文乱码问题。
针对各主流数据mysql.sqlserver.oracle当以编码格式gbk存放数据时,要注意字符串类型的字段,要采用宽字符串nvarchar存放,前提是当你的应用程序是utf8编码,而数据库是gbk ...
- 在mysql数据库中创建oracle scott用户的四个表及插入初始化数据
在mysql数据库中创建oracle scott用户的四个表及插入初始化数据 /* 功能:创建 scott 数据库中的 dept 表 */ create table dept( deptno int ...
- 在mysql数据库中创建Oracle数据库中的scott用户表
在mysql数据库中创建Oracle数据库中的scott用户表 作者:Eric 微信:loveoracle11g create table DEPT ( DEPTNO int(2) not null, ...
- Oracle SQL——varchar2() 和 char()关联查询 存在空格
背景 表dbcontinfo 字段loanid,类型为varchar2(60) 表dbloanbal 字段loanid,类型为char(60) loanid字段实际长度为24位 问题 两张表dbloa ...
随机推荐
- [Gin] gin-jwt 中间件的请求流程与使用思路
gin-jwt 中间件是对 jwt-go 的封装以适应 gin 框架.gin-jwt 对不同的请求流程有不同的 handler: 登录请求流程 是用 LoginHandler. 需要 jwt 令牌的后 ...
- WPF 简单聊聊如何使用 DrawGlyphRun 绘制文本
在 WPF 里面,提供的使用底层的方法绘制文本是通过 DrawGlyphRun 的方式,此方法适合用在需要对文本进行精细控制的定制化控件上.此方法特别底层而让调用方法比较复杂,本文告诉大家一些简单的使 ...
- Prometheus+Grafana+alertmanager构建企业级监控系统(三)
七.Prometheus监控扩展 7.1 Promethues 采集tomcat监控数据 tomcat_exporter地址:https://github.com/nlighten/tomcat_ex ...
- C++ 多级继承与多重继承:代码组织与灵活性的平衡
C++ 多级继承 多级继承是一种面向对象编程(OOP)特性,允许一个类从多个基类继承属性和方法.它使代码更易于组织和维护,并促进代码重用. 多级继承的语法 在 C++ 中,使用 : 符号来指定继承关系 ...
- CSP-S2023游记
不知不觉也高二了呢,最后一年OI了. Day -?? 过了初赛.没什么难度. Day -4 模拟赛挂分. RP++. Day -3 模拟赛挂分. RP++. Day -2 没挂分--?换数据了,又挂了 ...
- 《深度学习原理与Pytorch实战》(第二版)
第1章 深度学习简介 深度学习--利用深度人工神经网络来进行自动分类.预测和学习的技术,深度学习=深度人工神经网络 超过三层的神经网络都可以叫做深度神经网络 人工神经网络的关键算法--反向传播算法 深 ...
- blazor中的PageTitle输出keywords和description,自定义组件
在blazor的PageTitle中不具备输出keywords和description的功能,而如果直接使用<mate>标签,输出中文时会变成乱码,所以我给大家推介下面的代码解君愁: 1 ...
- Swift Charts 报错:Initializer ... requires that .. conform to ‘Identifiable‘
目录 1. 问题描述 2. 解决办法 1. 问题描述 在运行Swift Charts官方折线图示例时,出现了如下错误. Initializer 'init(_:content:)' requires ...
- P3622 [APIO2007] 动物园 -题解
好写 爱写 没事干 所以有了这篇题解 洛谷P3622 [APIO2007] 动物园 题解 $Link$ hzoi题库 洛谷 题目说的挺繁琐,其实就传达了一个很简单的信息: \(n\)个动物,\(c\) ...
- debug技巧之远程调试
一.前言 大家好啊,我是summo,今天给大家分享一下我平时是怎么调试代码的,不是权威也不是教学,就是简单分享一下,如果大家还有更好的调试方式也可以多多交流哦. 当我们的应用发布到线上之后,就不能随意 ...