新疆软件开发

本站首页 软件开发 成功案例 公司新闻 公司简介 客服中心 软件技术 网站建设
  您现在的位置: 新疆二域软件开发公司 >> 数据库开发 >> 文章正文

Oracle数据库几个常见问题如何解决?

◆问题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的值。 

作者:未知 | 文章来源:未知 | 更新时间:2007-12-25 13:13:22

  • 上一篇文章:

  • 下一篇文章:

  • 相关文章:
    oracle不能连接本地库的解决方案
    数据库学习:Oracle应用程序性能优化
    ADO.Net中如何优化Oracle大批量数据更新时的性能
    Oracle 10g同字节序跨平台数据迁移的测试
    ORACLE中的日志值转换成time_t
    如何利用sp_addlinkersrvlogin从oracle查询数据
    学习Oracle10gRelease2新功能之RefCursor
    数据学习:Oracle数据库备份方法之热备份
    如何获取Oracle当前数据库SCN值
    SQL-Server访问类与ORACLE访问类之间的转换
    软件技术
    · 开发语言
    · Java技术
    · .Net技术
    · 数据库开发
    最新文章  
    ·Domino平台的优缺点分析
    ·oracle不能连接本地库的解
    ·使用经验整理-TestDirecto
    ·学习sqlserver数据库的维度
    ·sqlserver 多用户并发中如
    ·丢失日志文件后数据库还能
    ·人工智能在数据库sql语句编
    ·数据库学习:Oracle应用程
    ·基础知识:软件测试的要点
    ·技术文章:sqlserver 2008
    ·SQL Server虚拟内存和物理
    ·在MySQL中 describe命令怎
    ·怎样解决视图刷新时出现的
    ·如果忘记了MySQL的root用户
    ·基础学习:基于SQL的sysob
    关于我们 | 软件开发 | 下载试用 | 客服中心 | 联系我们 | 友情链接 | 网站地图 | 新疆电子地图 | RSS订阅
    版权所有 © 2016 新疆二域软件开发网 www.k8w.net All Rights Reserved 新ICP备14003571号
    新疆软件开发总机:0991-4842803、4811639.
    客服QQ:596589785 ;地址:新疆乌鲁木齐北京中路华联大厦A-5C 邮编:830000