服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > 数据库技术 > Oracle技术 > Oracle开发 > 查看文档

快速解决"oracle"数据库中的常见问题 (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也包括组成表上约束列的信息。

◆问题5:怎样将数据库从noarchivelog方式改变为archivelog方式?

答:首先打开init.ora文件,确保存档日志目标指向一有效目录。

然后启动server manager

svrmgrl〉 shutdown immediate 

svrmgrl〉 startup mount 

svrmgrl〉 alter database archivelog; 

svrmgrl〉 alter database open; 

svrmgrl〉 archive log list;

在init.ora中设置参数archive_log_start=true,它设置存档日志为自动启动。在oracle 8i中支持多个存档日志的目标,因此参数修改为log_archive_dest[n],其中n为1到5。

◆问题6:在oracle数据库中,我们如何增加表空间的大小?

答:在开发oracle数据库中,我们有两种方法增加表空间的大小:

1.增加额外的数据文件到表空间中

例如:

alter tablespace users add datafile 
'/u01/oradata/orcl/users02.dbf' size 25m;

2.修改表空间当前的数据文件

例如:

alter database datafile 

'/u01/oradata/orcl/users01.dbf' resize 50m;

◆问题7:请问如何在report中设置动态显示域?

答:在report中设置动态显示域的方法如下:

1. 在report的“数据模型”下面的“用户参数”中,创建用户自定义参数,如rq,rq是从form传递过来的显示日期,数据类型为字符型。

2. 在布局模型中,创建一个显示域f_1,在属性选项板中修改该显示域的源为用户自定义参数rq,并且设为“不可见的”。

3. 在动态预览中,创建一个文本域d_1,调整该文本域的位置和宽度,在该域的内容中输入&&f_1,则该域会动态显示用户定义参数rq的值。

扫描关注微信公众号