`
MicLee
  • 浏览: 16890 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Oracle数据类型

 
阅读更多

数据类型(datatype)是列(column)或存储过程中的一个属性。

    Oracle支持的数据类型可以分为三个基本种类:字符数据类型、数字数据类型以及表示其它数据的数据类型。

    字符数据类型

    CHAR CHAR数据类型存储固定长度的子符值。一个CHAR数据类型可以包括1到2000个字符。如果对CHAR没有明确地说明长度,它的默认长度则设置为1.如果对某个CHAR类型变量赋值,其长度小于规定的长度,那么Oracle自动用空格填充。

    VARCHAR2存储可变长度的字符串。虽然也必须指定一个VARCHAR2数据变量的长度,但是这个长度是指对该变量赋值的的最大长度而非实际赋值长度。不需要用空格填充。最多可设置为4000个字符。

    因为VARCHAR2数据类型只存储为该列所赋的字符(不加空格),所以VARCHAR2需要的存储空间比CHAR数据类型要小。

    Oracle推荐使用VARCHAR2

    NCHAR和NVARCHAR2 NCHAR和NVARCHAR2数据类型分别存储固定长度与可变长度的字符数据,但是它们使用的是和数据库其他类型不同的字符集。在创建数据库时,需要指 定所使用的字符集,以便对数据库中数据进行编码。还可以指定一个辅助的字符集[即本地语言集(National Language Set,简称NLS)]。NCHAR和NVARCHAR2类型的列使用辅助字符集。

    在Oracle9i中,可以以字符而不是字节为单位来表示NCHAR和NVARCHAR2列的长度。

    LONG LONG数据类型可以存放2GB的字符数据,它是从早期版本中继承来的。现在如果想存储大容量的数据,Oracle推荐使用CLOB和NCLOB数据类型。在表和SQL语句中使用LONG类型有许多限制。

    CLOB和NCLOB CLOB和NCLOB数据类型可以存储多达4GB的字符数据。NCLOB数据类型可存储NLS数据。

    数字数据类型

    Oracle使用标准、可变长度的内部格式来存储数字。这个内部格式精度可以高达38位。

    NUMBER数据类型可以有两个限定符,如:

    column NUMBER ( precision, scale)

    precision表示数字中的有效位。如果没有指定precision的话,Oracle将使用38作为精度。

    scale表示数字小数点右边的位数,scale默认设置为0.  如果把scale设成负数,Oracle将把该数字取舍到小数点左边的指定位数。

    日期数据类型

    Oracle标准日期格式为:DD-MON-YY  HH:MI:SS

    通过修改实例的参数NLS_DATE_FORMAT,可以改变实例中插入日期的格式。在一个会话期间,可以通过ALTER SESSION SQL命令来修改日期,或者通过使用SQL语句的TO_DATE表达式中的参数来更新一个特定值。

    其它的数据类型

    RAW和LONG RAW RAW和LONG RAW数据类型主要用于对数据库进行解释。指定这两种类型时,Oracle以位的形式来存储数据。RAW数据类型一般用于存储有特定格式的对象,如位图。 RAW数据类型可占用2KB的空间,而LONG RAW数据类型则可以占用2GB大小。

    ROWID ROWID是一种特殊的列类型,称之为伪列(pseudocolumn)。ROWID伪列在SQL SELECT语句中可以像普通列那样被访问。Oracle数据库中每行都有一个伪列。ROWID表示行的地址,ROWID伪列用ROWID数据类型定义。

    ROWID与磁盘驱动的特定位置有关,因此,ROWID是获得行的最快方法。但是,行的ROWID会随着卸载和重载数据库而发生变化,因此建议不要在事务 中使用ROWID伪列的值。例如,一旦当前应用已经使用完记录,就没有理由保存行的ROWID.不能通过任何SQL语句来设置标准的ROWID伪列的值。

    列或变量可以定义成ROWID数据类型,但是Oracle不能保证该列或变量的值是一个有效的ROWID.

    LOB

    LOB(大型对象)数据类型,可以保存4GB的信息。LOB有以下3种类型:

    。CLOB,只能存储字符数据

    。NCLOB,保存本地语言字符集数据

    。BLOB,以二进制信息保存数据

    可以指定将一个LOB数据保存在Oracle数据库内,还是指向一个包含次数据的外部文件。

    LOB可以参与事务。管理LOB中的数据必须通过DBMS_LOB PL/SQL内置软件包或者OCI接口。

    为了便于将LONG数据类型转换成LOB,Oracle9i包含许多同时支持LOB和LONG的函数,还包括一个ALTER TABLE语句的的新选择,它允许将LONG数据类型自动转换成LOB.

    BFILE

    BFILE数据类型用做指向存储在Oracle数据库以外的文件的指针。

    XMLType

    作为对XML支持的一部分,Oracle9i包含了一个新的数据类型XMLType.定义为XMLType的列将存储一个在字符LOB列中的XML文档。有许多内置的功能可以使你从文当中抽取单个节点,还可以在XMLType文档中对任何节点创建索引。

    用户自定义数据

    从Oracle8以后,用户可以定义自己的复杂数据类型,它们由Oracle基本数据类型组合而成。

    AnyType、AnyData和AnyDataSet

    Oracle包括3个新的数据类型,用于定义在现有数据类型之外的数据结构。其中每种数据类型必须用程序单元来定义,以便让Oracle9i知道如何处理这些类型的特定实现。

    类型转换

    Oracle会自动将某些数据类型转换成其他的数据类型,转换取决于包括该值的SQL语句。

    数据转换还可以通过Oracle的类型转换函数显示地进行。

    连接与比较

    在大多数平台上Oracle SQL中的连接操作符用两条竖线(||)表示。连接是将两个字符值连接。Oracle的自动类型转换功能使得两个数字值也可以进行连接。

    NULL

    NULL值是关系数据库的重要特征之一。实际上,NULL不代表任何值,它表示没有值。如果要创建表的一个列,而这个列必须有值,那么应将它指定为NOT NULL,这表示该列不能包含NULL值。

    任何数据类型都可以赋予NULL值。NULL值引入了SQL运算的三态逻辑。如果比较的一方是NULL值,那么会出现3种状态:TURE、FALSE以及两者都不是。

    因为NULL值不等于0或其他任何值,所以测试某个数据是否为NULL值只能通过关系运算符IS NULL来进行。

    NULL值特别适合以下情况:当一个列还未赋值时。如果选择不使用NULL值,那么必须对行的所有列都要赋值。这实际上也取消了某列不需要值的可能性,同时对它赋的值也很容易产生误解。这种情况则可能误导终端用户,并且导致累计操作的错误结果。

分享到:
评论

相关推荐

    v512工作室_张利国_Java高端培训系列教材_Oracle实用教程_04章_Oracle数据类型和函数.

    ### Oracle 数据类型详解 #### 4.1 Oracle 数据类型 ##### 4.1.1 概述 在深入了解Oracle数据库中的各种数据类型之前,我们首先需要明确数据类型的基本概念。数据类型是由一组具有相同特性的值及其上定义的操作...

    oracle数据类型总结PPT

    以下是对Oracle数据类型的详细总结,特别是字符和二进制串类型。 首先,我们来看字符类型。Oracle提供了四种基本的字符数据类型:`CHAR`,`NCHAR`,`VARCHAR2`,以及`NVARCHAR2`。`CHAR`和`NCHAR`是固定长度的数据...

    Oracle与.Net 数据类型映射

    它提供了一个OracleDbType枚举,该枚举定义了所有Oracle数据类型到.NET数据类型的映射。例如,OracleDbType.Number对应.NET的decimal,OracleDbType.Varchar2对应.NET的string,OracleDbType.Date对应.NET的DateTime...

    java、mysql以及oracle数据类型对照表

    标题"java、mysql以及oracle数据类型对照表"揭示了本主题的核心,即比较Java、MySQL和Oracle数据库的数据类型。Java的数据类型主要分为基本类型(如int、double、boolean)和引用类型(如类、接口和数组)。MySQL和...

    oracle数据类型.doc

    在Oracle中,数据类型可以分为基本数据类型、对象数据类型和大型对象数据类型。以下是对Oracle主要数据类型的详细说明: 1. **Char(n)**: 这是一种定长字符串数据类型,其中n的范围是1到2000字节。如果未指定长度,...

    sqlserver-oracle 数据类型对照

    - `bit`在SQL Server中没有直接对应的Oracle数据类型,但可以近似用单字节的`NUMBER(1)`表示。 - `datetime`和`smalldatetime`在SQL Server中对应Oracle的`DATE`,表示日期和时间。 - `decimal`和`numeric`在SQL ...

    Oracle实用教程_04章_Oracle数据类型和函数[整理].pdf

    Oracle 数据类型和函数 Oracle 数据类型是指一组性质相同的值的集合以及定义于这个值集合上的一组操作的总称。在 Oracle 数据库中,数据类型可以分为字符型、数值型、日期型和其它类型等几类。 Oracle 数据类型...

    oracle新手入门指导之四——ORACLE数据类型 .txt

    ### Oracle新手入门指导之四——ORACLE数据类型 在Oracle数据库中,数据类型的选择对于确保数据的正确存储、处理效率以及资源的有效利用至关重要。本文将详细介绍Oracle中的各种数据类型及其特性,帮助初学者更好地...

    Oracle 10g 操作手册 Oracle数据类型精解

    一、Oracle数据类型详解 在Oracle数据库中,数据类型定义了列可以存储的数据类型。理解这些数据类型对于创建表结构和编写SQL语句至关重要。主要的数据类型包括: 1. **数值型**:NUMBER(p,s)用于存储浮点数,p是总...

    oracle数据类型.docora复制

    本篇文章将深入探讨Oracle数据类型及其重要性。 首先,Oracle数据类型大致可以分为四大类:数值型、字符型、日期/时间型和二进制型。数值型数据类型包括整数类型(如NUMBER、INTEGER、BINARY_INTEGER)和浮点类型...

    Oracle数据类型详解

    理解Oracle数据类型对于数据库设计、开发和管理至关重要。以下是Oracle 10g中数据类型的详细讲解: 1. **数值类型** - `NUMBER(p,s)`: 最通用的数值类型,可以存储整数和小数,p代表总位数,s代表小数位数。 - `...

    oracle数据类型和对应的JDBC类型.pdf

    Oracle 数据类型是 Oracle 数据库管理系统中的数据类型,用于存储和管理数据,而 JDBC(Java Database Connectivity)类型是 Java 语言中用于连接数据库的 API 中的数据类型。了解 Oracle 数据类型和对应的 JDBC ...

    oracle数据类型

    Oracle 数据类型是数据库管理系统Oracle中的核心元素,它们用于定义和存储各种类型的数据。与其他数据库系统相比,Oracle的数据类型相对简洁,能有效地处理多种数据。在Oracle中,数据类型大致可以分为以下几类: 1...

    sql mysql oracle数据类型

    【标题】: "SQL MySQL Oracle 数据类型对比与理解" 【描述】: "本文将深入探讨 MySQL、Oracle 和 SQL Server 三大主流数据库系统中的数据类型,以及它们与 JDBC 数据类型的对应关系,帮助读者全面理解各数据库的...

    oracle数据类型及存储方式.doc

    以下是对Oracle数据类型及存储方式的深入探讨。 ### 第一部分:字符类型 #### §1.1 CHAR `CHAR`是一种固定长度的字符串类型,一旦定义了长度,如`CHAR(10)`,不论实际存储的数据是否达到这个长度,都会占用指定...

    Oracle数据类型说明

    ### Oracle 数据类型详解 #### 一、概述 Oracle 数据库提供了丰富的数据类型,这些类型能够满足各种业务场景的需求。在数据库设计中合理选择数据类型对于提高数据库性能、减少存储空间和确保数据一致性等方面都至...

    oracle数据类型及函数

    Oracle 数据库是一个强大的关系型数据库管理系统,其丰富的数据类型和函数是进行数据存储和处理的基础。在Oracle中,数据类型用于定义字段可以存储的数据种类,而函数则帮助我们对数据进行各种操作。以下是对这些...

    05.Oracle数据类型1

    Oracle 数据类型是数据库管理系统中用来定义列或变量的数据格式,对于理解如何有效地存储和操作数据至关重要。Oracle 提供了丰富的数据类型,以满足各种数据存储需求。以下是对标题和描述中涉及的知识点的详细说明:...

    mysql与oracle数据类型对应关系.pdf

    这里我们将深入探讨MySQL与Oracle数据类型之间的对应关系,以及它们在Java编程语言中的映射。 1. MySQL数据类型: - BIGINT:MySQL中用于存储大整数,对应Oracle的NUMBER类型,可以表示非常大的数值。 - BIT:...

Global site tag (gtag.js) - Google Analytics