关于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修 ...
随机推荐
- SSH框架整合的其它方式
--------------------siwuxie095 SSH 框架整合的其它方式 1.主要是整合 Spring 框架和 Hibernate 框架时,可以不写 Hibernate 核心配置文件: ...
- [leetcode]349. Intersection of Two Arrays数组交集
Given two arrays, write a function to compute their intersection. Example 1: Input: nums1 = [1,2,2,1 ...
- sql小技巧——关闭自动提交,防止误操作
set IMPLICIT_TRANSACTIONS ON--关闭自动提交on 防止误操作,除非显式提交commit后,才会真正提交到数据库中,并且可以随时回滚操作.如下: set IMPLICIT_T ...
- 洛谷 P2986 [USACO10MAR]伟大的奶牛聚集(树形动规)
题目描述 Bessie is planning the annual Great Cow Gathering for cows all across the country and, of cours ...
- tp5.1注册路由后接收不到参数
- 跨页传值c#
Application (4)URL地址中的参数 (5)通过隐藏字段来传递数据 (6)Server.Transfer (7)通过序列化对象 (8)........ 下面就分别一一介绍: (1)使用Se ...
- $.fn.extend 和$.extend函数
区别和详解:jQuery extend()和jQuery.fn.extend() 首先是简单的概述区别:$.extend()是类方法 $.fn.extend()是原型方法 对象方法和原 ...
- 编译HBase1.0.0-cdh5.4.2版本
1. 编译环境准备 Jdk:1.7.0_x Maven : 3.3.9 hbase: cdh5.4.2-release 2. 用idea打开项目 使用git clone得到HBase源码.打开git: ...
- 经典的SQL语句面试题(转)
Student(S#,Sname,Sage,Ssex) 学生表Course(C#,Cname,T#) 课程表SC(S#,C#,score) 成绩表Teacher(T#,Tname) 教师表 问题:1. ...
- TabHost实现通话记录界面
//MainActivity.java public class MainActivity extends TabActivity { @Override public ...