你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:技术专栏 / Linux开发
Oracle数据库中7个疑难问题的解决方法 (1)
 

◆问题1:假如发现表中有坏块,怎样检索其它未坏的数据?

答:首先需要找到坏块的ID(可以运行dbverify实现),假设为1234。运行下面的查询查找段名:

select segment_name, segment_type, block_id, blocks 

from dba_extents 

where (1234 between block_id and (block_id + blocks - 1));

一旦找到坏段名称,若段是一个表,则最好建立一个临时表,存放好的数据。若段是索引,则删除它,再重建。

create table good_table 

as 

select  from bad_table where rowid not in 

( select /+index(bad_table, any_index)/ rowid 

from bad_table where substr( rowid, 1, 8 ) = 1234)

◆问题2:如何关闭FORM调用REPORT时的小窗口?

答:在利用Oracle数据库的Develop 2000设计开发界面的过程中,当FORM调用REPORT时,会显示一个背景窗口REPORT BACKGROUD ENGINE,等待FORM对REPORT的调用,当FORM调用其它REPORT时,也使用这个后台服务器,不论调用多少个REPORT,这个后台服务器存在且只有一个。但当FORM与REPORT全部退出后,该窗口仍处于等待状态,不会关闭,这时,我们需要手工将其关闭。

我们可以使用以下参数在FORM调用REPORT时不显示这个小窗口:

Add_Parameter( pl_id, 
'ORACLE_SHUTDOWN',TEXT_Parameter, 'Yes' );

需要注意的是,该参数必须加在所有参数的前面,即它必须为第一个参数。

◆问题3:如何根据查询条件在REPORT中动态显示记录?

答:1. 在REPORT的“数据模型”下面的“用户参数”中,创建用户自定义参数W_CLAUSE,W_CLAUSE为从FORM传递过来的查询条件,数据类型为字符型,缺省值为NULL。

2. 修改查询Q_1,将SQL查询语句修改为select  from dept &&w_clause。

3. 在运行报表时,报表会自动将符合&&w_clause的查询条件记录显示出来。

如果从FORM传递过来的w_clause为where dept=1,本报表的SQL查询自动转换为select  from dept where dept=1,并在报表运行结果中显示符合该查询条件的记录,如果从FORM传递过来的w_cluase为where to_char(年度,'YYYY.MM')='2000.03',则在报表运行结果中自动显示2000年3月份的记录。

◆问题4:在Oracle数据库中,如何查看某表上的约束?

答:我们可以使用下面语句从all_constraints视图中查看某表上的约束:

SELECT constraint_name, table_name, r_owner, r_constraint_name 

FROM all_constraints 

WHERE table_name = 'table_name' and owner = 'owner_name';

另一个视图ALL_CONS_COLUMNS也包括组成表上约束列的信息。

(编辑:aniston)

  推荐精品文章

·2024年12月目录 
·2024年11月目录 
·2024年10月目录 
·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089