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. 将tomcat做成服务

    ①修改startup.bat 在第一行前加入如下内容: SETJAVA_HOME=D:\ProgramFiles\tool\Java\jdk1.6 SETCATALINA_HOME=D:\Progra ...

  2. linux文件管理2

    1.显示文件内容 cat : 显示文件内容 tac : 倒序显示内容 2.更改文件权限 chmod :更改文件权限 -R 递归改变 chown :更改文件拥有者 -R 递归改变 chgrp :更改文件 ...

  3. .net体系与java体系

    对于.NET Framework体系结构,参考了"你必须知道的.NET"并”借用“别人的经典体系结构图从宏观上说明一下我的理解. 图1 简单的说下几个名词: CLR: 通用语言运行 ...

  4. 765A Neverending competitions

    A. Neverending competitions time limit per test 2 seconds memory limit per test 512 megabytes input ...

  5. winXP使用

    1.获得管理员权限 开机启动时按F8-->进入“安全模式”-->选择“Administrator”-->点击登录 2.Windows XP属于单用户多任务操作系统,Linux属于多用 ...

  6. 低配NOSQL

    东西写的太简单了 都不好意思说是NOSQL 其实就是STL 的map容器记录了写入的信息 解析了下数据仅此. 分析的时候想了很多 比如学习redis的自写hash,动态调整hash表容量. 比如右值或 ...

  7. SqlServer和MySql允许脏读的实现方式,提高查询效率

    --Sql Server 允许脏读查询sqlselect * from category with(nolock) --MySql 允许脏读查询sql Mysql没有语法糖,需要原生的sqlSET S ...

  8. qrc转换成py

  9. 创建一个子进程---vfork

    子.父进程共享数据段与堆栈段 函数原型:pid_t vfork(void) 返回值:子进程中返回0,父进程中返回子进程ID,出错返回-1. 注意: vfork创建的进程是按先子进程后父进程的顺序执行的 ...

  10. 2018.10.13 bzoj4008: [HNOI2015]亚瑟王(概率dp)

    传送门 马上2点考初赛了,心里有点小紧张. 做道概率dp压压惊吧. 话说这题最开始想错了. 最开始的方法是考虑f[i][j]f[i][j]f[i][j]表示第iii轮出牌为jjj的概率. 然后用第ii ...