阅 读 文 章

Oracle数据库常见问题答疑(一)

[来源:网上转载 (http://exam.21tx.com) | 作者:网友(网络收集) | 时间:2007-08-25 | 浏览:人次 ]

  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' );
  
  需要注意的是,该参数必须加在所有参数的前面,即它必须为第一个参数。
  
  问:请问如何根据查询条件在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月份的记录。
  
  问:在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也包括组成表上约束列的信息。
  
  问:如何将数据库从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。

论坛热门帖子: [lch203] 写得蛮好的linux学习笔记(10-21)
[黑马制造] 学习java的30个目标(10-19)
[笑傲股林] 做测试半年了,有点迷茫,应该再学些什么提高自己的测试水平和测试能力呢?(10-19)
[udp8589] 大家用google的来吱一声? 用百度的~~也来报道下?(10-18)
[沂偌掳兆] 本人总结的一些认为C++比较经典的书籍,希望对大家有用(10-18)
TAG标签: 答疑 常见问题 数据库 显示 REPORT 参数 FORM 数据 查询

最新评论 共有0位网友发表了评论

发表评论

评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名:(注册)
密码:
验证码:
匿名发表

网站地图友情连接交流论坛网站投稿广告服务联系我们留言本站长统计
Some rights reserved: www.chmhome.com, 鄂ICP备07010232号 E-mail:chinakafei@live.com,QQ:552766
中国咖啡技术网(Chmhome):国外编程技术书籍,中文编程手册,经典编程文章,交流技术,技术软件下载,计算机论文,毕业论文.