选择特殊符号
选择搜索类型
请输入搜索
第一篇Oracle12cSQL1
第1章SQL*Plus的使用1
1.1SQL*Plus基础1
1.2日常操作命令6
1.3查询输出与报表10
1.4Oracle数据字典与性能视图20
1.5Oracle数据字典与计量单位24
1.6本章小结28
第2章SELECT语句入门29
2.1查询语句的使用29
2.2基本函数的使用33
2.3组函数与分组的使用40
2.4集合操作的使用44
2.5如何使用合并语句MERGE47
2.6本章小结51
第3章较复杂SELECT语句的使用53
3.1高级子查询53
3.2高级连接用法61
3.3层次查询67
3.4正则表达式的使用71
3.5其他语句77
3.6本章小结85
第4章DML语句的使用86
4.1INSERT语句的使用86
4.2UPDATE语句的使用90
4.3DELETE与TRUNCATE语句的使用94
4.4MERGE语句的使用97
4.5本章小结101
第5章表与约束的创建及管理102
5.1创建表结构102
5.2表与约束的创建121
5.3表的维护125
5.4约束的维护132
5.5本章小结140
第6章索引创建与维护141
6.1创建普通索引141
6.2索引的一般维护144
6.3索引的特别维护147
6.4本章小结151
第7章Oracle常见对象创建与维护152
7.1创建与维护视图152
7.2创建与维护序列156
7.3创建与维护同义词161
7.4CLUSTER对象与表164
7.5本章小结168
第8章大数据对象设计与维护169
8.1大型表/索引数据压缩设计与维护169
8.2表分区创建与管理177
8.3索引分区创建与管理183
8.4创建OracleLOB表与维护187
8.5Spatial创建与维护193
8.6OracleText使用初步200
8.7本章小结207
第9章大数据环境的容量规划与设计208
9.1应用系统段对象数据量获取208
9.2Oracle数据库规模获取211
9.3Oracle数据库规划与设计219
9.4Oracle大数据表空间设计225
9.5本章小结228
第二篇Oracle12cPL/SQL229
第10章Oracle12cPL/SQL基础229
10.1PL/SQL基础229
10.2光标的使用238
10.3异常处理与编程242
10.4本章小结247
第11章存储过程、函数和包248
11.1存储过程248
11.2函数252
11.3包的创建与使用258
11.4常见内置包的使用263
11.5存储过程、函数和包的维护278
11.6本章小结288
第12章Oracle12c触发器289
12.1表级触发器289
12.2数据库触发器295
12.3触发器维护300
12.4本章小结303
第13章常用内置包的使用304
13.1Oracle12c版本支持的内置包304
13.2Oracle系统内部有关的包使用307
13.3应用有关的包使用320
13.4外部有关的包使用335
13.5性能诊断与监控有关包的使用342
13.6数据安全/保密有关的内置包354
13.7本章小结362
第三篇Oracle12c管理基础363
第14章Oracle12c系统实例的管理363
14.1Oracle12c数据库启动与关闭363
14.2维护方式的启动369
14.3数据库关闭与等待373
14.4Oracle内存分配监控379
14.5Oracle系统进程管理386
14.6应用系统进程与会话395
14.7Oracle系统并行进程管理407
14.8本章小结412
第15章Oracle12c系统安全与用户管理413
15.1创建与管理Oracle用户413
15.2Oracle用户与表空间422
15.3权限与角色管理427
15.4PROFILE与资源配置434
15.5本章小结444
第16章Oracle12c数据库审计与访问控制445
16.1Oracle系统简单审计445
16.2Oracle系统精细审计457
16.3Oracle12c统一审计462
16.4一些安全访问控制466
16.5本章小结468
第17章Oracle12c表空间与数据文件管理469
17.1表空间与数据文件有关信息469
17.2SYSTEM与SYSAUX表空间维护479
17.3表空间维护486
17.4本章小结493
第18章Oracle12c撤销表空间与临时表空间494
18.1撤销表空间管理494
18.2Oracle12c临时undo499
18.3临时表空间管理501
18.4本章小结507
第19章Oracle12c控制文件管理508
19.1控制文件管理508
19.2控制文件备份与恢复514
19.3本章小结519
第20章Oracle12c日志文件管理520
20.1日志文件的一般管理520
20.2日志文件较为复杂的管理525
20.3日志文件与性能528
20.4本章小结533
第21章Oracle12c闪回的使用534
21.1DROP操作与闪回534
21.2DML操作与闪回事务540
21.3闪回的管理与维护547
21.4数据库级闪回功能与配置553
21.5本章小结558
第四篇Oracle12c性能诊断与调整559
第22章Oracle12c系统内存使用优化559
22.1Oracle系统调整准备559
22.2SGA调整基础568
22.3SGA调整实战573
22.4PGA调整与排序优化579
22.5Oracle12c的In—Memory功能583
22.6本章小结589
第23章Oracle12c应用系统性能调整590
23.1DML操作与性能590
23.2索引与性能595
23.3调整表的连接600
23.4提高应用运行效率与并行的使用604
23.5SQL语句性能问题分析609
23.6编程与会话参数设置615
23.7本章小结621
第24章应用系统性能监控与故障问题诊断622
24.1应用SQL语句实时监控622
24.2会话历史与性能诊断631
24.3SQL语句性能诊断635
24.4Oradebug工具与诊断642
24.5本章小结648
第25章Oracle12cCBO模式下任务649
25.1Oracle优化器与CBO649
25.2表/索引的统计数据搜集649
25.3表/索引统计数据搜集管理654
25.4搜集更多的统计数据661
25.5本章小结665
第26章应用系统I/O效率与段重组666
26.1磁盘相关概念与术语666
26.2Oracle文件分布合理性诊断667
26.3存储I/O能力与I/O调整672
26.4段对象与存储问题678
26.5应用系统段重构问题687
26.6本章小结699
第27章Oracle12c系统故障诊断与修复700
27.1诊断文件的使用700
27.2维护ADR数据708
27.3Oracle12c健康监控检查715
27.4数据文件与冲突块724
27.5本章小结731
第28章Oracle12c应用系统问题诊断与维护732
28.1应用系统对象可用性检查732
28.2应用系统数据完整性与数据质量检查738
28.3关于自动数据优化ADO747
28.4本章小结758
从事Oracle系统环境下的设计、开发、管理及其维护工作的广大技术人员,经常要处理大量的技术任务。比如说,项目设计人员和应用迁移人员需要了解各个schema下的对象的元数据;应用开发人员需要快速得到某个问题的具体解决方法;维护工程师和DBA需要了解当前Oracle系统性能运行是否良好、性能不佳的根源及其相关SQL语句定位等。大多数多年从事Oracle系统环境开发和维护的工程师都有自己的“Oracle系统常见问题解决秘籍”或“脚本秘籍”,在这些秘籍里包含有从各个渠道搜集的脚本技巧和自己工作经验整理的样例。多数技术人员在工作中遇到问题时,经常快速从这些脚本秘籍中得到问题的解决方法。但是,随着Oracle系统版本的不断变化和系统复杂度的增加,设计人员、开发人员及其维护人员为了解决遇到的问题,花费相当多时间来搜集各类问题的解决脚本上,而不是花时间在解决当前的具体问题上。类似地,为了解决目前Oracle系统的某个紧急的问题,常常在网上到处搜索解决的方法和具体的脚本样例,当看到网上讲了许多理论而没有给出具体解决问题的脚本时,我们都显得很烦躁和无奈。
作为从事Oracle环境项目设计、应用开发和Oracle系统维护多年的软件人员,我非常了解软件开发人员和应用系统维护人员在工作中所遇到的问题和心中的期盼,所以,我根据多年的工作经验收集了大量的样例和脚本,并按照内容所属的范围分为“Oracle 12c SQL、Oracle 12c PL/SQL、Oracle 12c管理基础、Oracle 12c性能诊断与调整”四个部分。每个部分都以由浅入深的布局进行编写,读者可根据自己已掌握的知识情况任意跳到相应的章节进行直接搜索和参考。
本书特点:
本书的主要特点是突出问题的解决,也就是针对具体问题给出解决方法与实际实现的脚本。书中省略掉相关的原理和概念性的描述,整个内容都是按照“问题的提出”、“实现技术”、“实现步骤”、“说明”来描述。在“实现步骤”中给出具有参考价值的样例介绍。对于使用本书的读者来说,不必按照章节的顺序进行阅读,可直接查阅所关心的问题。
本书是一本解决问题的快速参考书,它不属于一般的入门级教程,在书中突出快捷高效解决问题,所以,本书省略使用Oracle系统图形界面的解决问题的描述。本书的脚本基本上都要在SQL*Plus环境下执行,而包含内置包构成的脚本可以嵌入到PL/SQL应用或Java等高级语言应用中。
本书内容适用于Oracle 11g/12c环境。
本书适用的读者:
就像本书的书名一样,本书的主要使用者是在一线解决具体问题的技术人员。本书适用于基于Oracle 11g/12c环境设计的中、高级技术人员阅读和使用,主要对象为:
基于Oracle 11g/12c环境软件项目规划设计人员;
基于Oracle 11g/12c环境数据库结构设计人员;
基于Oracle 11g/12c环境PL/SQL应用开发人员;
基于Oracle 11g/12c环境应用维护人员;
基于Oracle 11g/12c环境DBA管理人员;
基于Oracle 环境应用系统迁移人员;
基于Oracle 11g/12c环境性能诊断与优化人员。
本书的结构:
本书分为四篇。
第一篇Oracle 12c SQL,包括第1章~第9章。内容有SQL *Plus的使用、SELECT语句入门、较复杂SELECT语句的使用、DML语句的使用、表与约束的创建及管理、索引创建与维护、Oracle常见对象创建与维护、大数据对象设计与维护、大数据环境的容量规划与设计。
第二篇Oracle 12c PL/SQL。包括第10章~第13章。内容包括Oracle 12c PL/SQL基础,存储过程、函数和包、,Oracle 12c触发器,常用内置包的使用。
第三篇Oracle 12c 管理基础。包括第14章~第21章。内容有Oracle 12c系统实例的管理、Oracle12c系统安全与用户管理、Oracle12c数据库审计与访问控制、Oracle 12c表空间与数据文件管理、Oracle 12c撤销表空间与临时表空间、Oracle 12c控制文件管理、Oracle 12c日志文件管理、Oracle 12c闪回的使用。
第四篇Oracle 12c 性能诊断与调整。包括第22章~第28章。内容有Oracle 12c系统内存使用优化、Oracle 12c应用系统性能调整、应用系统性能监控与故障问题诊断、Oracle 12c CBO模式下任务、应用系统I/O效率与段重组、Oracle 12c系统故障诊断与修复、Oracle 12c应用系统问题诊断与维护。
由于本书文字和脚本内容繁多,且所有文字均为本人编写和手工输入,书中难免存在疏漏和不足之外,欢迎大家批评指正。如果在运行本书的样例过程遇到任何问题,请通过邮箱给我发送电子邮件,我会尽快纠正错误和给予回复。如果在运行中出现某些错误的话,也请将显示错误的信息以文本的方式发送给我,并请最 好按照下面的格式进行说明:
运行的Oracle版本;
执行脚本的用户(DBA或普通用户);
操作系统(Linux或Windows);
脚本所在章节.
赵元杰
2015年6月
做Oracle数据库开发和优化时,最痛苦的事情莫过于记忆庞大的Oracle SQL语法及参数配置体系。赵元杰老师写的这本Oracle数据库的操作手册,不仅分门别类地将Oraole数据库日常操作的脚本列出,还贴心地增加了注解和技巧,是数据库管理者和开发者提高操作效率的一大利器。
——山东浪潮齐鲁软件产业股份有限公司浪潮国际平台与技术部总经理郑伟波
在计算机领域从来就不缺理论书籍,如何快速地从书中找到问题的解答才是读者真正关心的事。在这本书中,作者针对每个问题点都分别从提出到实现技术进行了阐述,并配备了详细的实现步骤,值得推荐!
——波司登股份有限公司技术中心高级研发经理方育华
无论您是Oracle数据库应用的系统设计人员、开发人员、维护人员,还是DBA,都需要手头珍藏一本这样的好书。它会在您需要的时候,及时提供帮助。对于初学者来说这本书绝对是您的好帮手,好“字典”,好指南。您会发现书中讲述的问题,非常细致到位,就像会看透您的心事一样。本书还针对Oracle 12c的新增功能和特点进行了讲解。
——中国联通系统集成有限公司山东省分公司软件二部 赵莉
Oracle是大型系统必不可少的核心数据库,这本书将Oracle日常部署和运维所用到的一些技能进行归类,极大地提高了工程师日常排除故障的效率,是一本非常难得的工具书。同时,准备OCP考证的同学们也可通过每个实例的练习,加深对Oracle的了解。
——富士通(中国)信息系统有限公司第二基础架构解决方案部部长陈颖
本书是Oracle数据库管理人员的必备参考手册和应用系统开发人员的得力助手。
——中国石油天然气股份有限公司辽河油田分公司信息管理部高级工程师丁明吉
一般是按照 版本/CPU数/用户数 来进行授权的。几万到几十万不等,具体价格要联系经销商。这里的价格供参考:http://product.pcpop.com/data_base/
一般是按照 版本/CPU数/用户数 来进行授权的。几万到几十万不等,具体价格要联系经销商。
你在新干线上的共享资料中搜索GCL2008操作手册中的案例图纸就可以找到和下载。 你下载1#楼住宅GCL2008案例就行。
赵元杰
麦思博公司Oready技术团队成员,Oracle数据库权威专家;多年来从事软件的设计、开发与管理工作,具有丰富的编程经验与技巧;从事Oracle 系统的使用和研究近20年,从事过程序设计和项目规划、设计、编码及测试等工作,参加和主持过商场系统、住房公积金系统、银行储蓄系统、图像处理系统、排版软件系统的设计与开发;熟悉UNIX、MS Windows及VMS 操作系统的使用,熟悉Oracle 系统及SQL Server、Sybase 等数据库系统的使用;特别擅长Oracle 应用系统设计、性能优化与故障解决。
麦思博(北京)软件技术有限公司
Oready技术团队
麦思博(北京)软件技术有限公司是一家面向软件研发团队的培训咨询机构,专注于软件研发中心的快速成长,强调人员、技术、流程和管理的有机结合,注重个体的技能提升与职业发展,研发团队的管理与协作。在麦思博公司旗下,有一个Oready技术团队,其涵义是One Technology Ready!Oready不仅仅是数据库领域的专家团队,同时也是一个社区,这里汇集百位数据库领域资深顾问、讲师,服务于数据中心的技术支持与技能传授,针对客户的关键数据库运营支撑,强调经验的分享Skill Transfer,聚焦数据中心的完美结合。广大的企业级技术人员集结一堂,探讨数据库故障分析、系统安全、数据库的运维管理、数据趋势解读等。
中控iface302人脸指纹考勤机操作手册(管理员版)
中控 iface 302人脸指纹考勤机操作手册(管理员版) 1、考勤机主界面:如图,按左上角“ MENU”可进入管理员身份验证界面 2、管理员身份验证界面:通过人脸识别或指纹识别验证管理员的合法性 3、管理员菜单界面:红框部分为 HR人员使用的功能 4、用户管理界面:可查询、新增、修改、删除人员信息(工号、姓名、指纹、密码、人脸、用户权限、照片) 新增用户界面:为避免考勤机与考勤系统工号重复,不建议直接在考勤机上新增用户。 编辑用户界面:如需更换指纹及人脸信息,可在该界面操作。 U 盘管理界面:从考勤机下载数据到 U 盘,从 U 盘上传数据到考勤机 注意事项: 新增或修改考勤机用户及时间后请按 “保存”,完成所有考勤机配置后退出到考勤机主界面 (左上角 “菜单” “返回”),以免其它人员非法修改考勤机数据。 总部员工报到,人员信息录入方式: 员工报到 ——总部 HR分配工号录入考勤系统 —
ORACLE数据库在大H型钢轧线二级系统中的应用
该文阐述了ORACLE数据库的特点及其访问方式,并介绍了ORACLE数据库及其所带的Form,Reports在开发大H型钢轧线二级系统中的应用。
目 录
第1章 Oracle数据库的创建 1
1.1 Oracle软件的获取与安装 1
1.1.1 Oracle软件的获取 1
1.1.2 Oracle的补丁集 4
1.2 使用DBCA创建数据库 8
1.2.1 DBCA的启动 8
1.2.2 模板选择及EM选项 10
1.2.3 数据库安全与口令 13
1.2.4 存储管理及选件 14
1.2.5 初始化参数选择设定 18
1.2.6 文件存储及创建选项 21
1.2.7 告警日志及跟踪文件 24
1.3 数据库创建的脚本 25
1.3.1 数据库创建脚本 25
1.3.2 创建的起点 26
1.3.3 ORADIM工具的使用 27
1.3.4 ORACLE_SID的含义 27
1.3.5 Oracle的口令文件 32
1.3.6 Oracle 12c中的口令文件 36
1.3.7 脚本的执行 37
1.3.8 db_name参数和instance_name参数 38
1.3.9 sql.bsq文件与数据库创建 42
1.3.10 数据文件及字典的创建 43
1.4 auto_space_advisor_job_proc案例一则 46
1.5 口令文件修改案例一则 49
第2章 使用模板创建数据库 52
2.1 数据库创建模板 53
2.2 DBMS_BACKUP_RESTORE包的使用 54
2.3 克隆数据库 55
2.4 传输表空间技术 58
2.5 跨平台表空间传输 63
2.5.1 字节顺序和平台 63
2.5.2 源平台和目标平台 63
2.5.3 源平台的导出及转换 64
2.5.4 文件传输 66
2.5.5 目标数据库的导入 66
2.5.6 同字节序文件的跨平台 68
2.5.7 Oracle 10g同字节序跨平台迁移 73
2.5.8 Oracle 10g同字节序跨平台迁移的增强 75
2.5.9 实现数据迁移的高可用性 83
2.6 Oracle 12c表空间传输的简化和增强 84
2.7 文件系统与ASM的切换 90
2.8 DBMS_FILE_TRANSFER的可选性 93
2.9 用户的锁定 96
2.10 最后的脚本 97
2.11 Oracle 12c引入EM express简化版本 98
2.12 systemstate转储案例分析一则 101
第3章 插接式数据库 109
3.1 插接式数据简介 109
3.2 CDB的组成 110
3.2.1 ROOT 110
3.2.2 Seed PDB 111
3.2.3 PDB 112
3.3 元数据的隔离 113
3.4 CDB的内存管理 114
3.5 PDB的创建和访问 118
3.6 由现有PDB创建新的PDB 123
3.7 PDB的使用与维护 126
3.8 种子数据库的隐藏和保护 129
3.9 CDB与PDB的起停管理 130
3.10 COMMON和Local用户 133
3.11 COMMON和Local用户的内部隔离 142
3.12 将Non-PDB插入CDB 146
3.13 UNPLUG数据库 151
3.14 PDB的备份与恢复 152
3.14.1 启动归档模式 152
3.14.2 对PDB执行备份 154
3.14.3 对PDB及PDB文件执行恢复 155
3.14.4 对PDB执行不完全恢复 157
3.15 CDB的视图与原理 169
3.16 PDB为云计算而生 174
第4章 数据库的启动和关闭 176
4.1 数据库的启动 176
4.1.1 启动数据库到NOMOUNT状态 177
4.1.2 启动数据库到MOUNT状态 202
4.1.3 启动数据库OPEN阶段 209
4.2 数据库的访问 220
4.2.1 客户端的TNSNAMES.ORA文件配置 221
4.2.2 服务器端的监听器文件listener.ora配置 223
4.2.3 通过不同服务器名对数据库的访问 225
4.2.4 动态监听器注册服务 226
4.2.5 简捷的Easy Connect方式 230
4.3 数据库的关闭 231
4.3.1 数据库关闭的步骤 231
4.3.2 几种关闭方式的对比 233
4.3.3 数据库关闭的诊断案例一则 235
第5章 参数及参数文件 238
5.1 初始化参数的分类 238
5.1.1 推导参数(Derived Parameters) 238
5.1.2 操作系统依赖参数 240
5.1.3 可变参数 240
5.1.4 废弃参数 240
5.1.5 初始化参数的获取 241
5.1.6 初始化参数的可选项目 244
5.2 参数文件 245
5.2.1 PFILE和SPFILE 246
5.2.2 获取参数的视图 247
5.2.3 SPFILE的创建 249
5.2.4 由内存创建参数文件 250
5.2.5 SPFILE的搜索顺序 251
5.2.6 使用PFILE/SPFILE启动数据库 251
5.2.7 修改参数 253
5.2.8 解决SPFILE参数修改错误 258
5.2.9 重置SPFILE中设置的参数 259
5.2.10 是否使用了SPFILE 260
5.2.11 SPFILE的备份与恢复 261
5.2.12 如何设置Events事件 267
5.2.13 导出SPFILE文件 267
5.2.14 使用ASM存储参数文件 269
5.3 CDB与PDB的参数管理 270
5.3.1 参数表的引入 271
5.3.2 参数表在PDB启动中的作用 274
5.4 参数文件诊断案例之一 275
5.4.1 登录系统检查告警日志文件文件 275
5.4.2 尝试重新启动数据库 277
5.4.3 检查数据文件 277
5.4.4 MOUNT数据库,检查系统参数 277
5.4.5 检查参数文件 278
5.4.6 再次检查alert文件 278
5.4.7 修正PFILE 280
5.4.8 启动数据库 280
5.5 RAC环境参数文件诊断案例 280
5.5.1 数据库资源异常 280
5.5.2 问题的发现 281
5.5.3 参数文件问题的解决 282
5.6 RAC环境参数文件案例两则 283
5.6.1 修改参数引起的挂起 283
5.6.2 参数叠加带来的冗余 283
第6章 控制文件与数据库初始化 285
6.1 控制文件的内容 285
6.2 Oracle 12c中控制文件的变化 288
6.3 SCN的说明 290
6.3.1 SCN的定义 290
6.3.2 SCN的获取方式 292
6.3.3 SCN的进一步说明 293
6.4 检查点(Checkpoint) 296
6.4.1 检查点(Checkpoint)的工作原理 297
6.4.2 全量检查点与增量检查点 298
6.4.3 LOG_CHECKPOINT_TO_ALERT参数 305
6.4.4 控制文件与数据文件头信息 306
6.4.5 数据库的启动验证 308
6.4.6 使用备份的控制文件 313
6.4.7 FAST_START_MTTR_TAR GET 315
6.4.8 关于检查点执行的案例 317
6.4.9 Oracle 10g自动检查点调整 319
6.4.10 检查点信息及恢复起点 321
6.4.11 正常关闭数据库的状况 322
6.4.12 数据库异常关闭的情况 323
6.4.13 数据库并行恢复案例一则 327
6.4.14 判断一个死事务的恢复进度 330
6.5 数据库的初始化 331
6.5.1 bootstrap$及数据库初始化过程 331
6.5.2 bootstrap$的定位 334
6.5.3 Oracle数据库中的Cache对象 335
6.5.4 Oracle数据库的引导 336
6.5.5 数据库引导的分解 338
6.5.6 bootstrap$的重要性 341
6.5.7 BBED工具的简要介绍 342
6.5.8 坏块的处理与恢复 345
6.5.9 使用BBED模拟和修复坏块 347
6.5.10 使用RMAN进行坏块修复 349
第7章 控制文件与启动校验 351
7.1 启动校验的两种情况 351
7.2 MISSING文件的产生 356
7.3 遭遇ORA-00600 25013/25015错误 359
7.4 来龙去脉--表空间创建 360
7.5 Drop Tablespace Internal 366
7.6 ORA-600 4348错误的成因 376
7.7 一致性损坏的显示错误 385
7.8 实际的处理过程 388
7.9 字典检查何时发生 389
第8章 数据字典 391
8.1 数据字典概述 391
8.2 内部RDBMS(X$)表 392
8.3 数据字典表 394
8.4 Oracle 12c的数据字典维护信息 399
8.5 数据字典表的特殊维护 400
8.6 静态数据字典视图 404
8.6.1 静态数据字典视图的分类 404
8.6.2 静态数据字典视图的内部实现 406
8.6.3 同义词 407
8.6.4 常用数据字典视图举例 408
8.7 动态性能视图 412
8.7.1 GV$和V$视图 412
8.7.2 GV_$、V_$视图和V$、GV$同义词 413
8.7.3 进一步的说明 417
8.7.4 动态性能视图与数据库启动 418
8.8 最后的验证 419
8.8.1 V$PARAMETER的结构 419
8.8.2 视图还是同义词 419
8.8.3 Oracle如何通过同义词定位对象 420
8.9 同义词优化案例一则 423
8.10 数据字典与统计信息缺失案例一则 426
8.11 DBA的数据字典敏感度 429
8.11.1 临时表空间组案例一则 429
8.11.2 从数据字典中获得更多知识 432
Oracle一直致力于全文检索技术的研究,当Oracle9i Rlease2发布之时,Oracle数据库的全文检索技术已经非常完美,Oracle Text使Oracle9i具备了强大的文本检索能力和智能化的文本管理能力。Oracle Text是Oracle9i采用的新名称,在Oracle8/8i中它被称作Oracle interMedia Text,在Oracle8以前它的名称是Oracle ConText Cartridge。使用Oracle9i和Oracle Text,可以方便而有效地利用标准的SQL工具来构建基于文本的新的开发工具或对现有应用程序进行扩展。应用程序开发人员可以在任何使用文本的Oracle数据库应用程序中充分利用Oracle Text搜索,应用范围可以是现有应用程序中可搜索的注释字段,也可是实现涉及多种文档格式和复杂搜索标准的大型文档管理系统。Oracle Text支持Oracle数据库所支持的大多数语言的基本全文搜索功能。本文将介绍如何使用Oracle9i的全文检索技术来为自己的应用提供一个优秀的解决方案。
这里先给出一个简单示例说利用Oracle Text实现全文检索的方法与步骤,在后面在进行具体的说明。Orcale9i提供了Oracle Text Manager可以简化许多工作,所有在Oracle Text Manager中完成的工作,都可以在通过PL/SQL来实现。要使用Oracle Text,必须具有CTXAPP角色或者是CTXSYS用户。Oracle Text为系统管理员提供CTXSYS用户,为应用程序开发人员提供CTXAPP角色。
CTXSYS用户可执行以下任务:启动Oracle Text服务器,执行CTXAPP角色的所有任务。
具有CTXAPP角色的用户可执行以下任务:创建索引,管理 Oracle Text 数据字典,包括创建和删除首选项,进行Oracle Text 查询,使用 Oracle Text PL/SQL程序包。
使用Oracle Text的步骤:
⑴创建表来保存某些文档。该示例使用一个主关键字列来标识每个文档,使用一个小的VARCHAR2列来保存每个文档。
CREATE TABLE docs (id NUMBER PRIMARY KEY,text VARCHAR2(80));
⑵将两个示例文档置入该表:
INSERT INTO docs VALUES (1,'the first doc');
INSERT INTO docs VALUES (2,'the second doc');
COMMIT;
⑶使用Oracle Text Manager来创建和修改首选项,首选项将与索引相关联。
⑷使用Oracle Text Manager创建文本索引。另外,可以输入以下使用默认首选项的 SQL 语句:
CREATE INDEX doc_index ON docs(text) INDEXTYPE IS CTXSYS.CONTEXT;
⑸使用 CONTAINS 函数,发出基于内容的文档查询。例如:
SELECT id FROM docs WHERE CONTAINS (text,'first') > 0;
这将在文本列包含单词 first (即文档1) 的 docs 中查找所有行。语句中的>0部分是有效的Oracle SQL所必需的,Oracle SQL不支持函数的布尔返回值。
以上只是一个简单的示例,旨在给出使用Oracle Text建立全文索引的完整步骤,归纳起来如下:
⑴建表并装载文本(包含带有需要检索的文本字段)
⑵配置索引
⑶建立索引
⑷发出查询
⑸索引维护:同步与优化(将在后面介绍)