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

oracle数据类型

 
阅读更多
1 ORACLE   笔记
1.1 序言
1.2 数据类型
1.2.1   Oracle_built_in_datatype(内置数据类型)
1.2.1.1 字符类型
  字符类型主要包括以下四种类型,用法图如下

默认情况下 单位是  byte
1.2.1.1.1 Char
   char(size byte|char) , char 类型的主要特点是定长,如果不足则自动以空格补充。
   由于oracle的基本管理单位块的大小是 2k/4K/8K , 为了方便管理 char的最大必须在一个块内,也就是说char的最大长度是 2K ,2000bytes。
中文一般采用的是双字节字符集。
1.2.1.1.2 Varchar2
    Varchar2(size byte|char)
Varchar2采用的变长的的存储机制,即使没有填满也不进行补充。
Varchar2 的最大长度是 4K,4000bytes。
1.2.1.1.3 Nchar
     Nchar(size byte|char)
     国家字符集:unicode 。要能使用unicode必须使用N开头的数据类型,例如 Nchar ,Nclob 等。
     位、字节、字符:一个字节等于8位,一个字符可以是一个字节或者是多个字节,更像是逻辑单位。
1.2.1.1.4 Nvarchar2
1.2.1.1.5 Varchar
1.2.1.2 数值
1.2.1.2.1 固点数值类型
1.2.1.2.2 浮点数值类型
1.2.1.3 二进制数据类型
1.2.1.3.1 Long raw
1.2.1.3.2 raw
1.2.1.4 日期
1.2.1.4.1 Date 类型
1.2.1.4.2 Timestamp类型
1.2.1.5 大对象类型
1.2.1.5.1 LOB
1.2.1.5.2 Bfile
1.2.1.6 行地址类型
1.2.1.6.1 Rowid
1.2.1.6.2 Urowid
  
1.2.2   ANSI_support_datatype(美国国际标准化组织支持的通用数据类型)
1.2.3   User_defined_datatype(用户自定义数据类型)
1.2.4   Oralce_supplied type
1.3 数据类型转换
1.3.1 隐士转换
1.3.2 显示转换
1.4 Oracle对象

1.5 字符编码
例如: 对于ascii编码  A -> 0100 0001  ,A对应的数字是65,所以存储在计算机中的形式就是0100 0001
1.5.1 Unicode编码
Unicode 中, 一个字符实际上对应一种叫做 code point 的东西。
Unicode 中 code point 的数字的大小是没有限制的,而且也早就超过了 65535. 所以不是每个字符都能存储在两个字节中。
那么,一个字符串 "Hello", 在 Unicode 中会表示成 5 个 code points :
    U+0048 U+0065 U+006C U+006C U+006F
1.5.2 常见字符集
ZHS16GBK  在中国主要使用的字符集
US7ASCII  美国字符集 
WE8ISO8859P1   西欧字符集
1.5.3 查询字符集参数
    nls_database_parameters
    v#nls_parameters
    props$
其中列 nls_characterset 表示字符集
       Nls_nchar_character 表示国家字符集。
NLS  ‘National Language Support (NLS)’   
Oracle的字符集命名遵循以下命名规则:
         <Language><bit size><encoding>
          即:  <语言><比特位数><编码>
          比如: ZHS16GBK表示采用GBK编码格式、16位(两个字节)简体中文字符集
1.5.4 修改数据库字符集
1. 修改数据库字符集必须有个条件满足,即新的字符集是现在字符集的超集才可以修改,否则无法修改。
2. 修改字符集有两种方法
第一种是通过命令修改  alert  databasecharactor set utf8
第二种是将老数据库中的数据导出,建立新的数据库,然后再导入。

1.5.5 客户端字符集
1.5.5.1 客户端字符集查看
客户端字符集是通过设置 nls_lang 这个参数
例如 NLS_LANG = AMERICAN_AMERICA.US7ASCII 
$export  NLS_LANG
  1、NLS_DATABASE_PARAMETERS--显示数据库当前NLS参数取值,包括数据库字符集取值
   2、 NLS_SESSION_PARAMETERS--显示由NLS_LANG 设置的参数,或经过alter session 改变后的参数值(不包括由NLS_LANG 设置的客户端字符集)
   3、 NLS_INSTANCE_PARAMETE--显示由参数文件init<SID>.ora 定义的参数V$NLS_PARAMETERS--显示数据库当前NLS参数取值
1.5.5.2 客户端字符集的设置
           Unix环境  : 编辑 oralce用户的 profile文件,设置NLS_LANG 参数
           使用下列方法可以修改NLS参数
              (1)修改实例启动时使用的初始化参数文件
    (2)修改环境变量NLS_LANG
    (3)使用ALTER SESSION语句,在oracle会话中修改
    (4)使用某些SQL函数
           NLS作用优先级别:Sql function>alter session>环境变量或注册表>参数文件>数据库默认参数

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

Global site tag (gtag.js) - Google Analytics