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的字符窜存储(未完善,欢迎补充)的更多相关文章

  1. Java反序列化漏洞原理解析(案例未完善后续补充)

    序列化与反序列化 序列化用途:方便于对象在网络中的传输和存储 java的反序列化 序列化就是将对象转换为流,利于储存和传输的格式 反序列化与序列化相反,将流转换为对象 例如:json序列化.XML序列 ...

  2. 转 ORACLE数据库它可以存储 中文 字节或字符

    一:因为ORACLE数据库它可以存储字节或字符,例如 CHAR(12 BYTE) CHAR(12 CHAR)的意义是不同的.一般来说默认是存储字节,你可以查看数据库参数NLS_LENGTH_SEMAN ...

  3. Oracle字段类型及存储(一)

    Oracle中2000个byte,并不是2000个字符的意思,1个字符在Oracle中可能是1个byte到4个byte不等,需看数据库字符集的设置了. 对GBK字符集而言,ASCII码中128个字符使 ...

  4. python之选课系统详解[功能未完善]

    作业需求 思路:1.先写出大体的类,比如学校类,学生类,课程类--   2.写出类里面大概的方法,比如学校类里面有创建讲师.创建班级-- 3.根据下面写出大致的代码,并实现其功能       遇到的困 ...

  5. oracle中字符串连接用||

    oracle中字符串连接用|| create or replace procedure testIf(idid number) is v_name stu.name%type; v_age stu.a ...

  6. ORACLE 常用字符函数

    ORACLE 常用字符函数1 ASCII(arg1)返回参数arg1的十进制数字表示.如果数据库设置为ASCII,则采用的是ASCII码字符.如果设置为EBCDIC,则采用的是EBCDIC字符 sel ...

  7. powerdesigner12.5 设置表字符集和存储引擎

    powerdesigner12.5在做建模的时候发现没有找到哪儿设置表的字符集和存储引擎.于是研究了一番. 在菜单上方选择 Database => Edit Current DBMS   然后选 ...

  8. sed:-e 表达式 #1,字符 10:未终止的“s”命令

    执行shell脚本时,使用sed变量替换指定的字符串,一直出现这个错误: [root@bqh-118 scripts]# vim while_rz.sh [root@bqh-118 scripts]# ...

  9. oracle修改字符编码

    ALTER DATABASE character set INTERNAL_USE ZHS16GBK;  ALTER DATABASE CHARACTER SET ZHS16GBK;  oracle修 ...

随机推荐

  1. SSH框架整合的其它方式

    --------------------siwuxie095 SSH 框架整合的其它方式 1.主要是整合 Spring 框架和 Hibernate 框架时,可以不写 Hibernate 核心配置文件: ...

  2. [leetcode]349. Intersection of Two Arrays数组交集

    Given two arrays, write a function to compute their intersection. Example 1: Input: nums1 = [1,2,2,1 ...

  3. sql小技巧——关闭自动提交,防止误操作

    set IMPLICIT_TRANSACTIONS ON--关闭自动提交on 防止误操作,除非显式提交commit后,才会真正提交到数据库中,并且可以随时回滚操作.如下: set IMPLICIT_T ...

  4. 洛谷 P2986 [USACO10MAR]伟大的奶牛聚集(树形动规)

    题目描述 Bessie is planning the annual Great Cow Gathering for cows all across the country and, of cours ...

  5. tp5.1注册路由后接收不到参数

  6. 跨页传值c#

    Application (4)URL地址中的参数 (5)通过隐藏字段来传递数据 (6)Server.Transfer (7)通过序列化对象 (8)........ 下面就分别一一介绍: (1)使用Se ...

  7. $.fn.extend 和$.extend函数

    区别和详解:jQuery extend()和jQuery.fn.extend()     首先是简单的概述区别:$.extend()是类方法   $.fn.extend()是原型方法   对象方法和原 ...

  8. 编译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: ...

  9. 经典的SQL语句面试题(转)

    Student(S#,Sname,Sage,Ssex) 学生表Course(C#,Cname,T#) 课程表SC(S#,C#,score) 成绩表Teacher(T#,Tname) 教师表 问题:1. ...

  10. TabHost实现通话记录界面

    //MainActivity.java   public class MainActivity extends TabActivity   {       @Override       public ...