选择特殊符号
选择搜索类型
请输入搜索
Oracle的新一代数据库云服务器Oracle Exadata X3结合了大量内存和低成本磁盘,能以最低的成本实现最高的性能,因此是处理云计算中多变、不可预测负载的理想数据库平台。 Oracle Exadata X3 系统凭借新一代技术得到大幅改进,包括响应速度提高了40%,电力和制冷成本降低了30%,并能够在闪存中存储和管理数百TB数据。现在它还提供了新的低成本1/8机架配置。 借助Oracle Exadata,客户可通过整合降低IT成本,使存储能力增加10倍,提升所有应用的性能,因消除系统集成的试错过程而加快上市速度,以及实时做出更好的业务决策。
可以把备份数据导出dmp备份:1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中exp system/manager@TEST file=...
这几本由浅入深地看: Oracle PL/SQL入门 Oracle PL/SQL 实例精解(原书第4版)、 Oracle Database 11g PLSQL 程序设计 精通Oracle10gSQL和...
我这有一篇关于SQL Server 2005 与Oracle 10g的比较的文章,是微软工程师写的,相信会对你很有帮助。 =======================================...
打造中国行业ERP工程——Oracle拓宽应用市场
记者汤铭 辞旧迎新之际,从Oracle公司传来两个消息。12月19日,中国印钞造币总公司与Oracle中国公司在北京举行合作签约仪式,正式启动造币总公司ERP三期工程。同时中国海洋石油有限公司与Oracle中国公司也在日前合作签约实施能源行业ERP解决方案。 印钞造币是国家的特种行业,特种行业的每一举一动都牵动国家经济的脉搏。在国际化及产业结构调整成为必然趋势之时,特种行业如何而对新环境?如何在多元化的领域达到实现专业化经
Oracle金融行业解决方案 Oracle GRC—实现企业与银行共赢
随着中国银行业逐渐与国际接轨和国内银行的陆续上市,公司治理、风险管理和法规遵从(以下简称GRC)已成为国内银行必须遵循和解决的问题,银监会要求国内银行在2010年必须要开始实施巴塞尔新协议,2013年为最后的期限。这就意味着国内银行只有仅仅3年的准备时间,国内银行将面临着全方位地提高风险管理能力和法规遵从能力。
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建立全文索引的完整步骤,归纳起来如下:
⑴建表并装载文本(包含带有需要检索的文本字段)
⑵配置索引
⑶建立索引
⑷发出查询
⑸索引维护:同步与优化(将在后面介绍)
索引建好后,如果表中的数据发生变化,比如增加或修改了记录,怎么办?由于对表所发生的任何DML语句,都不会自动修改索引,因此,必须定时同步(sync)和优化(optimize)索引,以正确反映数据的变化。
在索引建好后,可以在该用户下查到Oracle自动产生了以下几个表:(假设索引名为myindex):
DR$myindex$I,DR$myindex$K,DR$myindex$R,DR$myindex$N
其中以I表最重要,可以查询一下该表:
select token_text,token_count from DR$ myindex $I where rownum<=20;
查询结果在此省略。可以看到,该表中保存的其实就是Oracle 分析你的文档后,生成的term记录
在这里,包括term出现的位置、次数、hash值等。当文档的内容改变后,可以想见这个I表的内容也应该相应改变,才能保证Oracle在做全文检索时正确检索到内容(因为所谓全文检索,其实核心就是查询这个表)。那么如何维护该表的内容,不能每次数据改变都重新建立索引,这就要用到sync 和 optimize了。
同步(sync):将新的term 保存到I表;
优化(optimize):清除I表的垃圾,主要是将已经被删除的term从I表删除。
Oracle提供了一个所谓的ctx server来做这个同步和优化的工作,只需要在后台运行这个进程,它会监视数据的变化,及时进行同步。另外,也可以用以下的job来完成(该job要建在和表同一个用户下):
create or replace procedure sync
is
begin
execute immediate
'alter index myindex rebuild online' ||
' parameters (''sync'')' ;
execute immediate
'alter index myindex rebuild online' ||
' parameters (''optimize full maxtime unlimited'')' ;
end sync;
/
Set ServerOutput on
declare
v_job number;
begin
Dbms_Job.Submit
(
job => v_job,
what => 'sync;',
next_date => sysdate,/* default */
interval => 'sysdate + 1/720' /* = 1 day / (24 hrs * 30 min) = 2 mins */
);
Dbms_Job.Run (v_job);
Dbms_Output.Put_Line ('Submitted as job # ' || to_char (v_job));
end;
/
job的SYSDATE + (1/720)是指每隔2分钟同步一次。具体的时间间隔,可以根据自己的应用的需要而定。