`

Oracle 数据类型及存储方式 日期时间类型

 
阅读更多
[url]http://www.net527.cn/shujukuguanli/Oracle/2010/0623/11647.html
[/url]

第三部分 日期时间类型 3.1 DATE Date类型Oralce用于表示日期和时间的数据类型。固定占用7个字节。 包括七个属性: 世纪 世纪中的年份 月份 月份中的哪一天 小时 分 秒 SQL create table test_date(col_date date); Table created SQL insert into test_date values(to_date('2008-06-27 10:35:00','yyyy-mm-dd hh24:mi:ss'))
第三部分 日期时间类型
§3.1 DATE
Date类型Oralce用于表示日期和时间的数据类型。固定占用7个字节。
包括七个属性:
世纪
世纪中的年份
月份
月份中的哪一天
小时


SQL> create table test_date(col_date date);

Table created
SQL> insert into test_date values(to_date('2008-06-27 10:35:00','yyyy-mm-dd hh24:mi:ss'));

1 row inserted

SQL> select to_char(col_date,'yyyy-mm-dd hh24:mi:ss'),dump(col_date) from test_date;

TO_CHAR(COL_DATE,'YYYY-MM-DDHH DUMP(COL_DATE)
------------------------------ --------------------------------------------------------------------------------
2008-06-27 10:35:00            Typ=12 Len=7: 120,108,6,27,11,36,1

Date类型的内部编码为12
长度:占用7个字节
数据存储的每一位到第七位分别为:世纪,年,月,日,时,分,秒。
世纪:采用”加100”表示法来存储。即世纪+100来存储。120 – 100 = 20
年:跟世纪一样采用”加100”表示法来存储。108 – 100 = 08(采用两位表示)
月:自然存储.6
日:自然存储,不做修改,27
时:(时,分,秒都采用“加1”法存储)11 -1= 10
分:36 -1 = 35
秒:1 -1 = 0
为什么世纪和年份要用加100法存储呢?是为了支持BC和AD日期。
BC即为公元前。
AD即为公元。
如果世纪 – 100为一个负数,那么就是一个BC日期。

插入一个公元前日期
SQL> insert into test_date values(to_date('-4712-01-01','syyyy-mm-dd hh24:mi:ss'));

1 row inserted

SQL> select to_char(col_date,'bc yyyy-mm-dd hh24:mi:ss'),dump(col_date) from test_date;

TO_CHAR(COL_DATE,'BCYYYY-MM-DD DUMP(COL_DATE)
------------------------------ --------------------------------------------------------------------------------
公元 2008-06-27 10:35:00       Typ=12 Len=7: 120,108,6,27,11,36,1
公元前 4712-01-01 00:00:00     Typ=12 Len=7: 53,88,1,1,1,1,1
我们已经了解了日期的存储结构。当要对日期进行截取时,比如去掉时,分,秒。只需要把最后的三个字节设为:12 12 1就可以了。
SQL> create table test_date1 (col_char varchar2(12), col_date date);

Table created

SQL> insert into test_date1 values('full',to_date('2008-06-27 12:01:00','yyyy-mm-dd hh24:mi:ss'));

1 row inserted
SQL> insert into test_date1(col_char,col_date) select 'minute', trunc(col_date,'mi') from test_date1
2     union all
3      select 'day', trunc(col_date,'dd') from test_date1
4     union all
5      select 'month',trunc(col_date,'mm') from test_date1
6      union all
7       select 'year',trunc(col_date,'y') from test_date1
8 ;

4 rows inserted
SQL> select col_char, col_date,dump(col_date) from test_date1;

COL_CHAR     COL_DATE    DUMP(COL_DATE)
------------ ----------- --------------------------------------------------------------------------------
full         2008-6-27 1 Typ=12 Len=7: 120,108,6,27,13,2,1
minute       2008-6-27 1 Typ=12 Len=7: 120,108,6,27,13,2,1
day          2008-6-27   Typ=12 Len=7: 120,108,6,27,1,1,1
month        2008-6-1    Typ=12 Len=7: 120,108,6,1,1,1,1
year         2008-1-1    Typ=12 Len=7: 120,108,1,1,1,1,1

要把一个日期截取,只取到年。数据库只是把最后5个字节置上1。这是非常快的。
当我们对一个Date字段进行操作,需要截取到年份进行比较时,我们经常使用to_char函数。通过会这样写。
Select * from test_date1 where to_char(col_date ,’yyyy’) = ‘2008’
而不是
Select * from test_date1 where trunc(col_date,’y’) = to_date(‘2008-01-01’,’yyyy-mm-dd’)

使用trunc会占用更少的资源,性能更优。
使用to_char所有的CPU时间与trunc相差一个数量级,差不多10倍。因为to_char必须把日期转换成一个串,并利用当前系统所采用的 NLS来完成,然后执行一个串与串的比较。而TRUNC只需要把后5个字节设置为1,然后将两个7位的字节的二进行数进行比较就搞定了。所要截取一个 DATE列叶,应该避免使用to_char.
另外,要完全避免对DATE列应用函数。比如我们要查询2008年的所有数据,并且这一列上也有索引,我们希望能够用上这个索引。
SQL> select count(col_date) from test_date1 where col_date >= to_date('2008-01-01','yyyy-mm-dd') and col_date < to_date('2009-01-01','yyyy-mm-dd');

COUNT(COL_DATE)
---------------
              5

§3.2 向Date类型增加或减时间
怎么向Date类型增加时间,例如:向Date增加1天,或1小时,或1秒,一月等。
常有的办法有几个方法:
a.向date增加一个NUMBER值。因为Date 加减操作是以天为单位。1秒就是 1/24/60/60。依此类推。
b.使用INTERVAL类型。后续会介绍
c.使用内置函数add_months增加月。增加月不像增加天那么简单,所以需要使用内置函数来处理。


3.2.1 增加秒
SQL> create table test_date2(id varchar2(10), operate_time date);

Table created

SQL> insert into test_date2 values('1',sysdate);

1 row inserted

SQL> select id, to_char(operate_time, 'yyyy-mm-dd hh24:mi:ss') from test_date2 where id=1;

ID         TO_CHAR(OPERATE_TIME,'YYYY-MM-
---------- ------------------------------
1          2008-06-27 13:35:35
SQL> update test_date2 set operate_time = operate_time + 1/24/60/60 where id=1;

1 row updated

SQL> select id, to_char(operate_time, 'yyyy-mm-dd hh24:mi:ss') from test_date2 where id=1;

ID         TO_CHAR(OPERATE_TIME,'YYYY-MM-
---------- ------------------------------
1          2008-06-27 13:35:36

3.2.2 增加分
SQL> update test_date2 set operate_time = operate_time + 1/24/60 where id=1;

1 row updated

SQL> select id, to_char(operate_time, 'yyyy-mm-dd hh24:mi:ss') from test_date2 where id=1;

ID         TO_CHAR(OPERATE_TIME,'YYYY-MM-
---------- ------------------------------
1          2008-06-27 13:36:36

3.2.3 增加小时
SQL> update test_date2 set operate_time = operate_time + 1/24 where id=1;

1 row updated
SQL> select id, to_char(operate_time, 'yyyy-mm-dd hh24:mi:ss') from test_date2 where id=1;

ID         TO_CHAR(OPERATE_TIME,'YYYY-MM-
---------- ------------------------------
1          2008-06-27 14:36:36

3.2.4 增加天
SQL> update test_date2 set operate_time = operate_time + 1 where id=1;

1 row updated
SQL> select id, to_char(operate_time, 'yyyy-mm-dd hh24:mi:ss') from test_date2 where id=1;

ID         TO_CHAR(OPERATE_TIME,'YYYY-MM-
---------- ------------------------------
1          2008-06-28 14:36:36

3.2.4 增加周
SQL> update test_date2 set operate_time = operate_time + 1 * 7 where id=1;

1 row updated

SQL> select id, to_char(operate_time, 'yyyy-mm-dd hh24:mi:ss') from test_date2 where id=1;

ID         TO_CHAR(OPERATE_TIME,'YYYY-MM-
---------- ------------------------------
1          2008-07-05 14:36:36
3.2.5 增加月
SQL> update test_date2 set operate_time = add_months(operate_time,1) where id=1;

1 row updated
SQL> select id, to_char(operate_time, 'yyyy-mm-dd hh24:mi:ss') from test_date2 where id=1;

ID         TO_CHAR(OPERATE_TIME,'YYYY-MM-
---------- ------------------------------
1          2008-08-05 14:36:36
3.2.6 增加年
SQL> update test_date2 set operate_time = add_months(operate_time,1 * 12) where id=1;

1 row updated
SQL> select id, to_char(operate_time, 'yyyy-mm-dd hh24:mi:ss') from test_date2 where id=1;

ID         TO_CHAR(OPERATE_TIME,'YYYY-MM-
---------- ------------------------------
1          2009-08-05 14:36:36

另外可以使用一个非常有用的函数NUMTODSINTERVAL来新增加小时,分钟,秒。
SQL> update test_date2 set operate_time = operate_time + numtodsinterval(1,'second') where id=1;

1 row updated
SQL> select id, to_char(operate_time, 'yyyy-mm-dd hh24:mi:ss') from test_date2 where id=1;

ID         TO_CHAR(OPERATE_TIME,'YYYY-MM-
---------- ------------------------------
1          2009-08-05 14:36:37

Numtodsinterval(n, 'second') 获得秒的时间间隔
Numtodsinterval(n, 'minute') 获得分的时间间隔
Numtodsinterval(n, 'month') 获得月的时间间隔
Numtodsinterval(n, 'year') 获得月的时间间隔

增加月份时要非常的小心,应该使用add_months函数。为什么呢?
比如当前日期为2000-2-29日。增加一个月得到的日期就应该是2000-3-31
如果只是简单的加30天或加31天,是无法实现的。所以必须使用add_months函数,它会自动来处理这种月末问题。对年份进行增加也会出现类似的问 题

§3.3 TIMESTAMP

TIMESTAMP是支持小数秒和时区的日期/时间类型。对秒的精确度更高。

3.3.1 TIMESTAM语法
TIMESTAMP(n)
N的取值为0~9.表示指定TIMESTAMP中秒的小数位数。N为可选。如果n为0,timestamp与date等价。
SQL> create table test_timestamp(col_date date, col_timestamp timestamp(0));

Table created

SQL> insert into test_timestamp values(sysdate,systimestamp);

1 row inserted
SQL> select dump(col_date) from test_timestamp;

DUMP(COL_DATE)
--------------------------------------------------------------------------------
Typ=12 Len=7: 120,108,6,27,17,8,37

SQL> select dump(col_timestamp) from test_timestamp;

DUMP(COL_TIMESTAMP)
--------------------------------------------------------------------------------
Typ=180 Len=7: 120,108,6,27,17,8,38

如果指定了保留小数位数,那情况就大不一样了。
SQL> create table test_timestamp1 (col_date date, col_timestamp timestamp(9));

Table created

SQL> insert into test_timestamp1 values(sysdate, systimestamp);

1 row inserted
SQL> select dump(col_date) from test_timestamp1;

DUMP(COL_DATE)
--------------------------------------------------------------------------------
Typ=12 Len=7: 120,108,6,27,17,36,40
SQL> select dump(col_timestamp) from test_timestamp1;

DUMP(COL_TIMESTAMP)
--------------------------------------------------------------------------------
Typ=180 Len=11: 120,108,6,27,17,36,40,17,249,15,24

现在可以看到timestamp(9)占用了11个字节的空间。后面额外的四个字节包括了小数秒数。

3.3.2 TIMESTAMP 相减
将两个Date相减的结果是一个number.而将两个timestamp相减的结果是一个INTERVAL值
SQL> create table test_timestamp2(time1 timestamp(9), time2 timestamp(9));

Table created

SQL> insert into test_timestamp2 values(to_timestamp('2008-06-29 01:02:01.100000','yyyy-mm-dd hh24:mi:ss.ff'),to_timestamp('2008-07-29 02:03:02.000000','yyyy-mm-dd hh24:mi:ss.ff'))
2 ;

1 row inserted
SQL> select time2 - time1 from test_timestamp2;

TIME2-TIME1
---------------------------------------
+000000030 01:01:00.900000000
结果表示两个时间之间相隔的天数,小时数,分数,秒数.
相差30天1小时1分0.9秒

有时我们需要得到两个时间之前相关的年数和月数.
SQL> select numtoyminterval(months_between(time2,time1),'month') years_months, time2 -
2 add_months(time1 , trunc(months_between(time2,time1))) days_hours from test_timestamp2;

YEARS_MONTHS                            DAYS_HOURS
--------------------------------------- ---------------------------------------
+000000000-01                           +000000000 01:01:01.000000000

在计算时,分,秒间隔时我们注意到,使用add_months之后,小数秒就丢掉了.
如果要保留集小数秒,我们就需要使用numtoyminterval函数
SQL> select numtoyminterval(months_between(time2,time1),'month') years_months, time2 -(time1 + numtoyminterval(trunc(months_between(time2,time1)),'month')) day_hours from test_timestamp2;

YEARS_MONTHS                            DAY_HOURS
--------------------------------------- ---------------------------------------
+000000000-01                           +000000000 01:01:00.900000000


§3.4 TIMESTAMP WITH TIME ZONE
TIMESTAMP WITH TIME ZONE类型是TIMESTAMP的子类型,增加了时区支持。
SQL> create table test_timezone(col_ts timestamp, col_tz timestamp with time zone);

Table created
SQL> insert into test_timezone values(systimestamp, systimestamp);

1 row inserted
SQL> select dump(col_tz) from test_timezone;

DUMP(COL_TZ)
--------------------------------------------------------------------------------
Typ=181 Len=13: 120,108,6,27,9,55,24,43,209,96,112,28,60

SQL> select dump(col_ts) from test_timezone;

DUMP(COL_TS)
--------------------------------------------------------------------------------
Typ=180 Len=11: 120,108,6,27,17,55,24,43,209,96,112

占用13字节的存储空间,最后两位用于保存时区信息。
在timestamp类型中,对时,分,秒的存储采用了加1法。
在timestamp with time zone上执行timestamp运算时,oracle自动把两个类型首先转换为UTC时间,然后再执行运算。

§3.5 TIMESTAMP WITH LOCAL TIME ZONE
这个类型保存进数据库时会先转换成数据库时区再进行保存.
SQL> create table test_timeltz(col_date date, timetz timestamp with time zone, timeltz timestamp with local time zone);

Table created

SQL> insert into test_timeltz values(timestamp'2008-06-29 12:03:22.111 US/Pacific',timestamp'2008-06-29 12:03:22.111 US/Pacific',timestamp'2008-06-29 12:03:22.111 US/Pacific');

1 row inserted
SQL> select dbtimezone from dual;

DBTIMEZONE
----------
+08:00

SQL> select * from test_timeltz;

COL_DATE    TIMETZ                                                                           TIMELTZ
----------- -------------------------------------------------------------------------------- --------------------------------------------------------------------------------
2008-6-29 1 2008-06-29 12:03:22.111000 US/PACIFIC                                            2008-06-30 03:03:22.111000
SQL> select dump(col_date), dump(timetz), dump(timeltz) from test_timeltz;

DUMP(COL_DATE)                                                                   DUMP(TIMETZ)                                                                     DUMP(TIMELTZ)
-------------------------------------------------------------------------------- -------------------------------------------------------------------------------- --------------------------------------------------------------------------------
Typ=12 Len=7: 120,108,6,29,13,4,23                                               Typ=181 Len=13: 120,108,6,29,20,4,23,6,157,185,192,137,156                       Typ=231 Len=11: 120,108,6,30,4,4,23,6,157,185,192


请注意:
第一列,类型为date,只存储了日期和时间.时区和小数秒已经丢失了.不会执行时区转换.
第二列:类型为timestamp with time zone.保留了时区信息.并规范化了该时区相应的UTC时间.
第三列:类型为timestamp with local time zone.进行了转换,把插入的时间转为了数据库时区的时间.

timestamp with local time zone也是不需要记录时区信息的.它占用7-11个字节.
一旦你的数据表中有一列使用了timestamp with local time zone,你就不能再改变数据库时区.

通用协调时(UTC, Universal Time Coordinated) ,UTC与格林尼治平均时(GMT, Greenwich Mean Time)一样,都与英国伦敦的本地时相同. 北京时区是东八区,领先UTC八个小时

§3.6 INTERVAL
用于表示一段时间或一个时间间隔的方法.在前面有多次提过.INTERVAL有两种类型.
YEAR TO MONTH 能存储年或月指定的一个时间段.
DATE TO SECOND存储天,小时,分钟,秒指定的时间段.
在前面用到的两个函数numtoyminterval 和numtodsinterval就是创建interval最好的方法.
另外extract 函数可以很容易的获得时间的每个部分.
SQL> select extract(day from time2-time1) day, extract(hour from time2 - time1) hour,
2 extract (minute from time2 - time1) minute,extract (second from time2 - time1) second from
3 test_timestamp2;

       DAY       HOUR     MINUTE     SECOND
---------- ---------- ---------- ----------
        30          1          1        0.9

3.6.1 Interval year to month
语法:
Interval year(n) to month
N表示年数的位数.取值:0~9 .默认为2,表示年数为0 ~ 99

如果要产生一个1年2个月的时间段.用numtoyminterval是最方便的.
SQL> select (numtoyminterval(1,'year') + numtoyminterval(2,'month')) yminterval from dual;

YMINTERVAL
---------------------------------------
+000000001-02

或者是:
SQL> select numtoyminterval(1 * 12 + 2,'month') yminterval from dual;

YMINTERVAL
---------------------------------------
+000000001-02

另外可以使用 to_yminterval(‘1-2’)函数来进行转换.
SQL> create table test_intervarym(col_interval interval year to month);

Table created
SQL> insert into test_intervarym values ( numtoyminterval(1 * 12 + 2,'month'));

1 row inserted
SQL> select * from test_intervarym;

COL_INTERVAL
---------------------------------------
+01-02

SQL> select dump(col_interval) from test_intervarym;

DUMP(COL_INTERVAL)
--------------------------------------------------------------------------------
Typ=182 Len=5: 128,0,0,1,62

INTERVAL year to month 采用固定5个字节进行存储.最后一位为天数值.采用加60算法.所以计算是需要减去60.
第一位为标志位,标志是否为正负数.
第二到第四位表示年数.
第五位表示日数

3.6.2 INTERVAL DAY TO SECOND
定义如下:
INTERVAL DAY(n) to second(m)
N为可选位数,表示天数的位数.可取值0~9,默认为2位.
M是秒字段小时的位数.取值0~9,默认为6

SQL> create table test_intervalds(col_ds interval day(9) to second(9));

Table created
SQL> insert into test_intervalds values(numtodsinterval(1,'second'));

1 row inserted
SQL> insert into test_intervalds values(numtodsinterval(1.000000001,'second'));

1 row inserted
SQL> select col_ds, dump(col_ds) from test_intervalds;

COL_DS                                  DUMP(COL_DS)
--------------------------------------- --------------------------------------------------------------------------------
+000000000 00:00:01.000000000           Typ=183 Len=11: 128,0,0,0,60,60,61,128,0,0,0
+000000000 00:00:01.000000001           Typ=183 Len=11: 128,0,0,0,60,60,61,128,0,0,1

可见,这种类型也是采用固定11个字节来存储的.
第一位为标志位,区分正负数
第二到第四位表示天数.
第五位表示小时数.时,分,秒采用加60算法
第六位表示分钟数,
第七位表示秒数.
最后四位表示小数秒数.


分享到:
评论

相关推荐

    Oracle基本数据类型存储格式浅析

    Oracle基本数据类型存储格式浅析(一)——字符类型 ...Oracle基本数据类型存储格式浅析(三)——日期类型 Oracle基本数据类型存储格式浅析(四)——ROWID类型 Oracle基本数据类型存储格式浅析(五)——RAW类型

    Oracle 数据类型

    5、DATE数据类型,使用7个字节固定长度,每个字节分别存储世纪,年,月,日 ,时,分,秒,ORACLE中SYSDATE函数的功能是返回当前的日期和时间 6、TIMESTAMP数据类型,和DATE相似,但是这个类型的秒精确到小数点后6...

    oracle支持的数据类型

    常用的数据库字段类型如下: 字段类型 中文说明 限制条件 其它说明 CHAR 固定长度字符串 ...数据类型 参数 描述 char(n) n=1 to 2000字节 定长字符串,n字节长,如果不指定长度,缺省为1个字节长(一个汉字为2字节)

    oracle常用数据类型说明

    类型 含义 存储描述 备注 CHAR 固定长度字符串 最大长度2000bytes   VARCHAR2 可变长度的字符串, 最大长度4000bytes 可做索引的最大长度749 NCHAR 根据字符集而定的固定长度字符串 最大长度2000bytes   ...

    Oracle 从入门到精通视频教程(11G版本)(ppt)

    Oracle 11g中支持的数据类型 数据库定义语言(DDL) 约束的使用 数据操纵语言(DML) 第5章-利用SELECT检索数据 SQL-数据库沟通的语言标准 Oracle 11g中支持的数据类型 数据库定义语言(DDL) 约束的使用 ...

    Oracle日期与时间拼接函数以及时间处理函数

    在工作过程中是否有遇到源数据的时间存储为Integer类型的时间格式,如下: 序号 T_TIME_1 1 63272 2 55066 3 55975 4 31394 5 42465 6 56309 7 37965 8 30757 9 37018 10 30092 通过...

    oracle database 10g 完整参考手册part1

    第42章 Oracle数据字典指南 第43章 调整应用程序和SQL旅行者指南 第44章 调整中的案例分析 第45章 Oracle Application Server 10g的旅行者指南 第46章 数据库管理旅行者指南 第47章 XML旅行者指南

    Oracle11g从入门到精通2

    9.4.1 采用正确的数据类型 9.4.2 存储参数的正确设置 9.4.3 定期回收无用表空间 9.4.4 归档历史表空间 第10章 备份与恢复机制 10.1 备份与恢复的方法 10.2 使用数据泵进行逻辑备份和恢复 10.2.1 使用...

    Oracle-数据库简答题.doc

    每个Oracle数据库都由3种类型 的文件组成:数据文件、日志文件和控制文件。 Oracle数据库有一个或多个物理的数据文件。数据库的数据文件包含全部数据库数据 。逻辑数据物理地存储在数据文件中。 每个数据库有两个或...

    oracle知识简介

    RAW:这是一种变长的二进制数据类型,采用这种数据类型存储的数据不会发生字符集的转换,可以把它看做是由数据库存储的信息的二进制字节串。最多可以存储2000字节 LONG RAW 能存储2GB的二进制信息,建议所有开发中都...

    Oracle11g从入门到精通

    9.4.1 采用正确的数据类型 9.4.2 存储参数的正确设置 9.4.3 定期回收无用表空间 9.4.4 归档历史表空间 第10章 备份与恢复机制 10.1 备份与恢复的方法 10.2 使用数据泵进行逻辑备份和恢复 10.2.1 使用expdp...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    其三、职业方向多:Oracle数据库管理方向、Oracle开发及系统架构方向、Oracle数据建模数据仓库等方向。 四、 如何学习 认真听课、多思考问题、多动手操作、有问题一定要问、多参与讨论、多帮组同学 五、 体系结构 ...

    Oracle Database 11g初学者指南--详细书签版

    1.3 Oracle Database 11g的基本数据类型 8 1.3.1 varchar2 8 1.3.2 数字 9 1.3.3 日期 9 1.3.4 时间戳 9 1.3.5 clob 10 1.3.6 blob 10 1.4 表 10 1.5 存储对象 11 1.5.1 视图 12 1.5.2 触发器 12 1.5.3 ...

    非常全的oracle文档

    19.6. 日期时间格式参数 113 19.7. 分析函数 114 19.8. 通用函数 115 19.9. GROUP BY子句 116 19.10. HAVING子句 117 19.11. 实用方法 118 19.12. 练习 118 二十、 子查询 119 20.1. 使用子查询 120 20.2. IN\NOT IN...

    Oracle8i_9i数据库基础

    §1.7 ORACLE数据类型 38 §1.8 SQL 语句基础 44 §1.8.1 SQL语句所用符号 44 §1.8.2 简单select 查询 45 §1.9 伪列及伪表 46 §1.10 使用SQL Worksheet工作 46 第二章 查询基础 50 §2.1 SELECT语句 50 §2.2 SQL...

    Oracle_Database_11g完全参考手册.part3/3

    第45章 Oracle数据字典指南 第46章 应用程序和SQL调整指南 第47章 SQL结果缓存和客户端查询缓存 第48章 关于调整的示例分析 第49章 高级体系结构选项——DB保险库、内容DB和记录DB 第50章 Oracle实时应用群集 第51章...

    oracle使用管理笔记(一些经验的总结)

    17.oracle数据完整性 36 18.oracle 序列(sequence) 39 19.oracle 索引 40 20.oracle管理权限和角色 42 21.PL/SQL 47 (1)存储过程简单版本 47 (2)存储过程升级版本 49 (3)函数 50 (4)包 50 (5)触发器 51 PL/SQL语法...

    Oracle_Database_11g完全参考手册.part2/3

    第45章 Oracle数据字典指南 第46章 应用程序和SQL调整指南 第47章 SQL结果缓存和客户端查询缓存 第48章 关于调整的示例分析 第49章 高级体系结构选项——DB保险库、内容DB和记录DB 第50章 Oracle实时应用群集 第51章...

    ORACLE11G宝典.rar 是光盘里面的内容,书太厚咧没法影印啊

     3.5.3 单行日期时间函数  3.5.4 单行转换函数  3.5.5 几个函数的使用举例  3.6 小结  第4章 PUSQL语言基础  4.1 PL/SQL语言简介  4.1.1 概述  4.1.2 开发调试环境  4.1.3 块的类型  4.2 程序...

Global site tag (gtag.js) - Google Analytics