clob字段一般还是不用
虽然CLOB能解决VARCHAR2字符大小的限制,但是我们的DBA们都不建议用这些来处理,可能效率问题吧,大的文件应该放在服务器上,然后Database中存响应地址即可。
业务逻辑
分为两个角色,一个提请求,一个审批请求。
总共五个大页面,分别有:上传用户列表文件,建立请求,审批列表,我的请求,发送历史页面
- 上传页面:解析excel并存储到数据库表tm_job_file,记录审计信息(谁什么时候上传了什么)和用户列表(使用clob属性保存,每个用户用逗号相隔,到时加中括号直接放json发请求)
- 建立请求:一个小页面列举tm_job_file,一个小页面从腾讯查询出media列表。用户可以从这两个里面选择来建立一个发送请求,保存到tm_job里,状态设为待批。
- 审批列表:列举所有状态为待批且申请者不是自己的请求。
- 我的请求:列举所有我的请求
- 发送历史页面:默认腾讯会把文章发送统计数据发到公众号后台,在公众号的总入口监控发送的所有文章结果,存到tm_job_report。然后这个页面展示这些数据,例如发送成功多少人,失败多少人等等。
数据库建表
tm_job_file
tm_job
tm_job_report
oracle clob字段
varchar – 存放定長的字符数据,最长2000個字符;varchar2 – 存放可变长字符数据,最大长度为4000字符。
- 在Oracle中,LOB(Large Object,大型对象)类型的字段现在用得越来越多了。因为这种类型的字段,容量大(最多能容纳4GB的数据),且一个表中可以有多个这种类型的字段,很灵活,适用于数据量非常大的业务领域(如图象、档案等)。
- LOB类型分为BLOB和CLOB两种:BLOB即二进制大型对象(Binary Large Object),适用于存贮非文本的字节流数据(如程序、图象、影音等)。
- 而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字节。