关于ORACLE的字符窜存储(未完善,欢迎补充)
oracle中常见的用于存储字符串的数据类型有:
数据类型 | 是否定长 | 最多存储数 | 效率排行 | 备注 | 是否oracle特有 | 英文占位 | 中文占位 |
char | 是 | 2000 | 比VARCHAR2稍高 |
char的长度是固定的,不足固定长度用空格占位。其所占空间随多,但是效率较快。 |
|||
character | Character 数据类型用来存储字母数字型数据。 | ||||||
varchar | 4000 |
varchar2的前身。标准SQL中的可变长字符串类型,在标准SQL中允许存放空的字符串,但是在 oracle中对其做出了一些改动,即:如果存放的是空字符串,则将其判断为null。另外被oracle 保留在以后可能会对其做出改变。 |
|||||
varchar2 | 4000 |
varchar2是变长的,有多少字符占多少空间。其虽节省空间,但是如果经常被修改,会引起‘行迁移’ 造成多余的I/O。Varchar2类型的字段长度可以达到4000字节,Varchar2类型的变量长度可以达 到32676字节。 |
是 | ||||
nchar | 是 |
与char一样是定长的字符串类型,会以空格补齐剩下的空间。专为UNICODE字符而设计的数据 类型,用来存储NLS(National Language Support)数据,由于以单字节存放字符的类型只能 使用于站用字节少的简单的语言,比如英文(26个字母),而中文,韩文等通常都需要2个甚至 更多的字节,所以为了适应这种需要,制定了以N为开头的数据类型(UNICODE通常被用N来 表示),这种类型一个字符需要占用2个字节的空间,简单字符(比如a)剩余的部分会用0补齐。 |
|||||
nvarchar2 | 与char和nchar的关系一样,是varchar2类型的UNICODE字符专用版。 | ||||||
long |
大字段类型之一,此类型中存放的是可变长的字符串,专门用于存放超过4000字节的超长字符 串,最大上限为2GB。但是,这个类型是被oracle保留下来并且将来会被取消掉的数据类型, 替代它的是同为大字段类型的LOB(Large Object)类型。 |
||||||
long raw |
与long互补,long raw可以存储非结构化数据,比如二进制文件,图形文件,或其他外部 文件,最大上限2GB。虽然还没有混到像long那样将被抛弃的程度,但是,long raw能 做到的LOB也一样能做到,Oracle公司建议在以后的程序中尽量使用LOB类型。 |
||||||
lob |
LOB(Large Object) 数据类型即能存储结构化数据外,也能存储非结构化数据,最 大长度为4GB,比long和long raw更加灵活,Oracle公司建议,对大对象的操作 尽量使用LOB。 |
||||||
byte | |||||||
1、在oracle中可以dump函数查询数据的内部存储结构,如:
select cola,dump(cola) from test_char;
其中cola是列名,test_char是表名。
查询结果所得:typ为类型编号,len为每行数据所占字节数。
2、Byte是字节,char是字符串。从10g开始,oracle支持在字符类型的宽度定义时指定单位。
1个字符占多少字节由当前系统所采用的字符集来决定。而1个汉字占用两个字符。
关于ORACLE的字符窜存储(未完善,欢迎补充)的更多相关文章
- Java反序列化漏洞原理解析(案例未完善后续补充)
序列化与反序列化 序列化用途:方便于对象在网络中的传输和存储 java的反序列化 序列化就是将对象转换为流,利于储存和传输的格式 反序列化与序列化相反,将流转换为对象 例如:json序列化.XML序列 ...
- 转 ORACLE数据库它可以存储 中文 字节或字符
一:因为ORACLE数据库它可以存储字节或字符,例如 CHAR(12 BYTE) CHAR(12 CHAR)的意义是不同的.一般来说默认是存储字节,你可以查看数据库参数NLS_LENGTH_SEMAN ...
- Oracle字段类型及存储(一)
Oracle中2000个byte,并不是2000个字符的意思,1个字符在Oracle中可能是1个byte到4个byte不等,需看数据库字符集的设置了. 对GBK字符集而言,ASCII码中128个字符使 ...
- python之选课系统详解[功能未完善]
作业需求 思路:1.先写出大体的类,比如学校类,学生类,课程类-- 2.写出类里面大概的方法,比如学校类里面有创建讲师.创建班级-- 3.根据下面写出大致的代码,并实现其功能 遇到的困 ...
- oracle中字符串连接用||
oracle中字符串连接用|| create or replace procedure testIf(idid number) is v_name stu.name%type; v_age stu.a ...
- ORACLE 常用字符函数
ORACLE 常用字符函数1 ASCII(arg1)返回参数arg1的十进制数字表示.如果数据库设置为ASCII,则采用的是ASCII码字符.如果设置为EBCDIC,则采用的是EBCDIC字符 sel ...
- powerdesigner12.5 设置表字符集和存储引擎
powerdesigner12.5在做建模的时候发现没有找到哪儿设置表的字符集和存储引擎.于是研究了一番. 在菜单上方选择 Database => Edit Current DBMS 然后选 ...
- sed:-e 表达式 #1,字符 10:未终止的“s”命令
执行shell脚本时,使用sed变量替换指定的字符串,一直出现这个错误: [root@bqh-118 scripts]# vim while_rz.sh [root@bqh-118 scripts]# ...
- oracle修改字符编码
ALTER DATABASE character set INTERNAL_USE ZHS16GBK; ALTER DATABASE CHARACTER SET ZHS16GBK; oracle修 ...
随机推荐
- 将tomcat做成服务
①修改startup.bat 在第一行前加入如下内容: SETJAVA_HOME=D:\ProgramFiles\tool\Java\jdk1.6 SETCATALINA_HOME=D:\Progra ...
- linux文件管理2
1.显示文件内容 cat : 显示文件内容 tac : 倒序显示内容 2.更改文件权限 chmod :更改文件权限 -R 递归改变 chown :更改文件拥有者 -R 递归改变 chgrp :更改文件 ...
- .net体系与java体系
对于.NET Framework体系结构,参考了"你必须知道的.NET"并”借用“别人的经典体系结构图从宏观上说明一下我的理解. 图1 简单的说下几个名词: CLR: 通用语言运行 ...
- 765A Neverending competitions
A. Neverending competitions time limit per test 2 seconds memory limit per test 512 megabytes input ...
- winXP使用
1.获得管理员权限 开机启动时按F8-->进入“安全模式”-->选择“Administrator”-->点击登录 2.Windows XP属于单用户多任务操作系统,Linux属于多用 ...
- 低配NOSQL
东西写的太简单了 都不好意思说是NOSQL 其实就是STL 的map容器记录了写入的信息 解析了下数据仅此. 分析的时候想了很多 比如学习redis的自写hash,动态调整hash表容量. 比如右值或 ...
- SqlServer和MySql允许脏读的实现方式,提高查询效率
--Sql Server 允许脏读查询sqlselect * from category with(nolock) --MySql 允许脏读查询sql Mysql没有语法糖,需要原生的sqlSET S ...
- qrc转换成py
- 创建一个子进程---vfork
子.父进程共享数据段与堆栈段 函数原型:pid_t vfork(void) 返回值:子进程中返回0,父进程中返回子进程ID,出错返回-1. 注意: vfork创建的进程是按先子进程后父进程的顺序执行的 ...
- 2018.10.13 bzoj4008: [HNOI2015]亚瑟王(概率dp)
传送门 马上2点考初赛了,心里有点小紧张. 做道概率dp压压惊吧. 话说这题最开始想错了. 最开始的方法是考虑f[i][j]f[i][j]f[i][j]表示第iii轮出牌为jjj的概率. 然后用第ii ...