频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

Oracle数据库中7个疑难问题的解决方法

来源:pcdog 作者:佚名 出处:巧巧读书 2007-12-24 进入讨论组

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

本U R L:http://www.qqread.com/oracle/2007/12/b388720.html 更多文章 更多内容请看数据库专栏数据库处理专题城域网专题专题,或进入讨论组讨论。
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章