Oracle clob字段

文章目录
  1. 1. clob字段一般还是不用
  2. 2. 业务逻辑
  3. 3. 数据库建表
  4. 4. oracle clob字段
  5. 5. mysql对应的是text
  6. 6. oracle和mysql字段属性区别
    1. 6.1. mysql char定长,varchar变长,text大内容
    2. 6.2. oracle char定长,varchar2变长,,nvarchar存字符,lob大内容
  7. 7. mysql和oracle varchar里面数字的区别
    1. 7.1. oracle varchar2字段里面的数字是字节
    2. 7.2. mysql varchar里面数字是字符
  8. 8. 属性字节数

clob字段一般还是不用

虽然CLOB能解决VARCHAR2字符大小的限制,但是我们的DBA们都不建议用这些来处理,可能效率问题吧,大的文件应该放在服务器上,然后Database中存响应地址即可。

业务逻辑

分为两个角色,一个提请求,一个审批请求。

总共五个大页面,分别有:上传用户列表文件,建立请求,审批列表,我的请求,发送历史页面

  1. 上传页面:解析excel并存储到数据库表tm_job_file,记录审计信息(谁什么时候上传了什么)和用户列表(使用clob属性保存,每个用户用逗号相隔,到时加中括号直接放json发请求)
  2. 建立请求:一个小页面列举tm_job_file,一个小页面从腾讯查询出media列表。用户可以从这两个里面选择来建立一个发送请求,保存到tm_job里,状态设为待批。
  3. 审批列表:列举所有状态为待批且申请者不是自己的请求。
  4. 我的请求:列举所有我的请求
  5. 发送历史页面:默认腾讯会把文章发送统计数据发到公众号后台,在公众号的总入口监控发送的所有文章结果,存到tm_job_report。然后这个页面展示这些数据,例如发送成功多少人,失败多少人等等。

数据库建表

tm_job_file

tm_job

tm_job_report

oracle clob字段

varchar – 存放定長的字符数据,最长2000個字符;varchar2 – 存放可变长字符数据,最大长度为4000字符。

  1. 在Oracle中,LOB(Large Object,大型对象)类型的字段现在用得越来越多了。因为这种类型的字段,容量大(最多能容纳4GB的数据),且一个表中可以有多个这种类型的字段,很灵活,适用于数据量非常大的业务领域(如图象、档案等)。
  2. LOB类型分为BLOB和CLOB两种:BLOB即二进制大型对象(Binary Large Object),适用于存贮非文本的字节流数据(如程序、图象、影音等)。
  3. 而CLOB,即字符型大型对象(Character Large Object),则与字符集相关,适于存贮文本型的数据(如历史档案、大部头著作等)。

mysql对应的是text

又分为TINYTEXT, TEXT, MEDIUMTEXT,LONGTEXT, 都是表示数据长度类型的一种。

TINYTEXT: 256 bytes
TEXT: 65,535 bytes => ~64kb
MEDIUMTEXT: 16,777,215 bytes => ~16MB
LONGTEXT: 4,294,967,295 bytes => ~4GB

oracle和mysql字段属性区别

mysql char定长,varchar变长,text大内容

oracle char定长,varchar2变长,,nvarchar存字符,lob大内容

varchar(旧版本) – 存放定長的字符数据,最长2000個字符,null和空字符不一样,而且这个不让用了;varchar2(新版本) – 存放可变长字符数据,最大长度为4000字符,空字符和null一样看待。

1). varchar:按字节存储数据

​ varchar(6),最多能存储6个字节的数据,比如:“哈哈哈”,“abcdef”……

备注:一个中文字符在数据库里占多少个字节,要看unicode的编码方式,比如:utf8在mysql上占3个字节,sqlserver的Chinese_PRC_CI_AS占2个字节…

2). nvarchar:按字符存储数据

​ nvarchar(6),最多能存储6个字符/中文数据,比如:”哈哈哈哈哈哈”,“abcdef”……

​ nvarchar(m)最大存储的实际字节长度=nm(n跟据编码方式而定),如果nvarchar存储的是英文字符,也是根据编码方式存储n的字节长度。也就是说,如果nvarchar存储英文字符,会浪费一半以上的存储空间*….

mysql和oracle varchar里面数字的区别

oracle varchar2字段里面的数字是字节

1Q:请问VARCHAR2(128)能存多少个汉字?

A:看看什么字符集,或者看单个汉字几个字节lengthb

2Q:请问怎样查看你所提出的两个问题?

A:oracle中length()与lengthb()区别
SQL> select length(‘阿猪’) from dual;

LENGTH(‘阿猪’)
-————-
2

SQL> select lengthb(‘阿猪’) from dual;

LENGTHB(‘阿猪’)
-————–
区别:length求得是字符长度,lengthb求得是字节长度。

3Q:字符集是:NLS_CHARACTERSET UTF8
LENGTH(‘阿猪’)
-————-
2
LENGTHB(‘阿猪’)
-————–
6
请问VARCHAR2(128)能存多少个汉字,如何算多谢?

A:128/3

mysql varchar里面数字是字符

现在mysql普遍都是5或者8了

4.0版本以下,varchar(100),指的是100字节,如果存放UTF8汉字时,只能存33个(每个汉字3字节)

5.0版本以上,varchar(100),指的是100字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放100个。

属性字节数

urf8字符集都是一个中文字符,三个字节。

int4字节,float4字节,double8字节。

tinyint1字节(unassign 2^8=0-255, assign 2^7=-128~127),smallint2字节,mediumint3字节。