• 网络学院
  • IT资讯
  • 操作系统
  • 网络技术
  • 软件应用
  • 办公软件
  • 编程技术
  • 网站架设
  • 数据库类
  • 平面设计
  • 多媒体类
  • 游戏资讯
  • 教学论文
  • 认证考试
Oracle数据库常见问题答疑(一)
  站点:
  • 首 页
  • 最新软件
  • 文章教程
  • 国内软件
  • 国外软件
  • 绿色软件
  • 源码下载
  • 字体下载
Oracle数据库常见问题答疑(一)
软件发布 Oracle数据库常见问题答疑(一)
网络软件 系统工具 应用软件 联络聊天 图形图像 多媒体类 行业软件 游戏娱乐 编程开发 安全相关 教育教学 数码软件 绿软下载
热门软件: QQ 瑞星 pplive e话通 木马克星 千千静听 office2000 五笔字根 Photoshop 视频分割
返回文章教程首页 >> 认证考试 >> Oracle认证 >> Oracle指导 >> Oracle数据库常见问题答疑(一)

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

添加时间: 2008-4-19 21:33:45  作者: Oracle指导  阅读次数:3   来源: http://www.d9soft.com

       

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。
  
  问:在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;
  
  问:请问如何在REPORT中设置动态显示域?
  
  答:在REPORT中设置动态显示域的方法如下:
  
  1. 在REPORT的“数据模型”下面的“用户参数”中,创建用户自定义参数,如RQ,RQ是从FORM传递过来的显示日期,数据类型为字符型。
  
  2. 在布局模型中,创建一个显示域F_1,在属性选项板中修改该显示域的源为用户自定义参数RQ,并且设为“不可见的”。
  
  3. 在动态预览中,创建一个文本域D_1,调整该文本域的位置和宽度,在该域的内容中输入&&F_1,则该域会动态显示用户定义参数RQ的值。
  
  问:有关口令
  
  我在Solaris系统上运行 Oracle8i 8.1.7 企业 版。我创建了两个数据库:SUGAR和TestDb。将两者的remote_login_passwordfile都设置为 “独占(exclusive)”。我试图以SYSDBA身份连接到TestDb,但未能成功。下面是我的做法:
  
  $sqlplus /nolog
  
  SQL> conn sys/change_on_install@testdb
  
  Connected.(已连接)
  
  SQL> select * from v$pwfile_users;
  
  username sysdb sysop
  
  -----------------------------------------
  
  internal true true
  
  sys true true
  
  SQL> conn sys/change_on_install@testdb as
  
  sysdba
  
  ERROR(错误)
  
  ORA-01017: invalid username/password; logon
  
  denied(无效的用户名/口令,登录被拒绝)
  
  Warning: You are on longer connected to
  
  ORACLE(警告:你已经与ORACLE断开连接)


 
 问:我为什么不能以SYSDBA身份连接到TestDb?
  
  答:通常Oracle中的SYS口令与INTERNAL口令是同步的,SYS口令存储于口令文件中。在上述情况下你建立了包含有一个口令的口令文件,而不是使用缺省的 “change_on_install,”这就是问题之所在。
  
  希望下面的方法对你有所帮助。首先,建立一个口令文件,其中包含一个口令,这个口令不要与系统口令匹配:
  
  $ orapwd file=orapw password=foobar
  
  entries=40
  
  然后,进入服务器,启动数据库:
  
  $ svrmgr
  
  SVRMGR> connect internal
  
  Connected.(已连接)
  
  SVRMGR> startup
  
  ORACLE instance started.(ORACLE 实例已启动)
  
  Tot
  
  al System Global Area (系统全局区域大小)
  
  193073136 bytes
  
  Fixed Size (固定大小)
  
  69616 bytes
  
  Variable Size (可变大小)
  
  141639680 bytes
  
  Database Buffers (数据库缓冲区)
  
  45056000 bytes
  
  Redo Buffers (重做缓冲区)
  
  6307840 bytes
  
  Database mounted. (数据库已加载)
  
  Database opened.数据库已打开。
  
  现在使用SYS用户的口令,以SYS身份连接:
  
  SVRMGR> connect sys/change_on_install@ora81
  
  Connected.(已连接)
  
  成功了。现在试着以SYSDBA身份连接:
  
  SVRMGR> connect sys/change_on_install@ora81
  
  as sysdba;
  
  ORA-01017: invalid username/password; logon
  
  denied(无效的用户名/口令;登录被拒绝)
  
  这里出现了你所说的错误。你的SYS口令为:change_on_install,但口令文件中的口令却是foobar。SYS用户是专用的,以SYSDBA身份连接就像是以INTERNAL连接,你必须使用口令文件中的口令。试试这样做:
  
  SVRMGR— connect sys/foobar@ora81 as sysdba;
  
  Connected.(已连接)
  
  并不是每个人都需要使用口令文件中的口令;用户需要使用他们自己的口令。通过授权SYSDBA给SCOTT,你就可以明白这一点:
  
  SVRMGR> grant sysdba to scott;
  
  Statement processed.(已处理)
  
  这个命令将SCOTT以SCOTT的凭证加入到口令文件中。如果你改变了SCOTT的口令,口令文件也会自动同步改变。现在,你可以试试以SYSDBA身份连接SCOTT了:
  
  SVRMGR> connect scott/tiger@ora81 as sysdba;
  
  Connected.(已连接)
  
  一切正常。现在可以使用ALTER USER 命令来改变SYS用户的口令。
  
  SVRMGR> alter user sys identified by
  
  change_on_install;
  
  Statement processed.(已成功更改)
  
  SVRMGR≫ connect sys/change_on_install@ora81
  
  as sysdba;
  
  Connected.(已连接)
  
  你还可以用change_on_install,因为改变SYS用户口令将同时改变口令文件中的口令。当你建立了口令文件后,Oracle数据库在其中放入两个账号:SYS和INTERNAL,并将你在命令行中提供的口令作为这两个账户的口令。当你改变数据库中的SYS用户口令时,数据库将冲掉口令文件中的SYS和INTERNAL口令。下面操作将显示口令foobar已经是无效的了:
  
  SVRMGR> connect sys/foobar@ora81 as sysdba;
  
  ORA-01017: invalid username/password; logon
  
  denied(无效的用户名/口令,登录被拒绝)

 

上下文章:

 

上一篇文章: Oracle数据库常见问题诊断方法(二) 下一篇文章: Oracle面试问题-技术篇

相关文章:

  • 微软回避关于Windows7的七个问题
  • 从“番茄花园”看软件正版化问题
  • 如何手动创建oracle数据库
  • 七招解决Vista的加速与优化问题
  • oracle 多元化控制文件

相关软件:

  • 腾讯QQ IP数据库 1015 纯真版
  • 计算机等级考试训练模拟软件(三级数据库技术) V1.01
  • 腾讯QQLite IP数据库 Build 1105
  • 腾讯QQ IP数据库 0730 纯真版(繁体版)
  • 网际数据库浏览器 2008 5.1.151
  • 手机通讯录信息备份数据库 2.0

 

快速导航

  • 网络学院
  • 精品汇聚
  • 字体下载
  • 教程下载
  • ASP源码
  • PHP源码
  • Net源码
  • JSP 源码

Oracle认证分类导航

  • Oracle动态
  • Oracle指导
  • Oracle题库

本类经典文章推荐

  • Oracle中关于逻辑备份与恢复
  • Oracle开发人员JAVA存储过程
  • 为数据库的表自动生成行号
  • Oracle中的OOP概念
  • 用java从oracle取数
  • 冷备份移植到另一台Solaris机器上
  • 如何将excel数据导入oracle中
  • Oracle10.2g安装记录
  • 数据库监控工具ForOraclev1.2
  • oracle双机群集系统

Oracle指导阅读排行

  • Oracle系统表查询
  • 实例:Oracle导出EXCEL文件
  • Oracle常用的OCI函数上
  • 案例学习Oracle错误:ORA-00060
  • 案例学习Oracle错误:ORA-00604
  • Tomcat+SQLServer连接池配置
  • 如何将excel数据导入oracle中
  • Oracle企业管理器(OEM 2.1)使用...
  • ORACLE数据库简介
  • 案例学习Oracle错误:ORA-00904

Oracle认证阅读总排行

  • Oracle系统表查询
  • 实例:Oracle导出EXCEL文件
  • Oracle常用的OCI函数上
  • 在ORACLE的存储过程中如何做简单的...
  • 案例学习Oracle错误:ORA-00060
  • 案例学习Oracle错误:ORA-00604
  • Tomcat+SQLServer连接池配置
  • 如何将excel数据导入oracle中
  • Oracle企业管理器(OEM 2.1)使用...
  • AIX下自动启动Oracle数据库与监听...

广告位置

字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 回到顶部

关于我们 | 版权声明 | 免责条款 | 广告联系 | 软件发布 | 下载帮助 | 下载排行 | 网站地图 | 特别鸣谢 | 友情连接

copyright; 2005-2008 D9soft.com 第九软件网 版权所有