Oracle数据库以其强大的功能和稳定性而著称,但同时,在开发和管理方面也存在很多困难,笔者在此总结了一些Oracle数据库开发和管理的常见问题,希望能对大家有所帮助。
问:如果发现表中有坏块,如何检索其它未坏的数据?
答:首先需要找到坏块的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)
问:如请问如何关闭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’ );
需要注意的是,该参数必须加在所有参数的前面,即它必须为第一个参数。