




已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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 wner = 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_destn,其中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_installtestdb Connected.(已连接) SQL select * from v$pwfile_users; username sysdb sysop - internal true true sys true true SQL conn sys/change_on_installtestdb 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 实例已启动) Total 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_installora81 Connected.(已连接) 成功了。现在试着以SYSDBA身份连接: SVRMGR connect sys/change_on_installora81 as sysdba; ORA-01017: invalid username/password; logon denied(无效的用户名/口令;被拒绝) 这里出现了你所说的错误。你的SYS口令为:change_on_install,但口令文件中的口令却是foobar。SYS用户是专用的,以SYSDBA身份连接就像是以INTERNAL连接,你必须使用口令文件中的口令。试试这样做: SVRMGR connect sys/foobarora81 as sysdba; Connected.(已连接) 并不是每个人都需要使用口令文件中的口令;用户需要使用他们自己的口令, SVRMGR grant sysdba to scott; Statement processed.(已处理) 这个命令将SCOTT以SCOTT的凭证加入到口令文件中。如果你改变了SCOTT的口令,口令文件也会自动同步改变。现在,你可以试试以SYSDBA身份连接SCOTT了: SVRMGR connect scott/tigerora81 as sysdba; Connected.(已连接) 一切正常。现在可以使用ALTER USER 命令来改变SYS用户的口令。 SVRMGR alter user sys identified by change_on_install; Statement processed.(已成功更改) SVRMGR? connect sys/change_on_installora81 as sysdba; Connected.(已连接) 你还可以用change_on_install,因为改变SYS用户口令将同时改变口令文件中的口令。当你建立了口令文件后,Oracle数据库在其中放入两个账号:SYS和INTERNAL,并将你在命令行中提供的口令作为这两个账户的口令。当你改变数据库中的SYS用户口令时,数据库将冲掉口令文件中的SYS和INTERNAL口令。下面操作将显示口令foobar已经是无效的了: SVRMGR connect sys/foobarora81 as sysdba; ORA-01017: invalid username/password; logon denied(无效的用户名/口令,被拒绝) 问:利用QUERY选项输出数据 我知道在Oracle8i中,可以使用QUERY有选择地输出表数据。我想用EXP命令来实现,但没有成功。下面是我所写的命令,以及得到的错误信息: exp ddd/ddd file=/dbf/u11/customer.dmp tables=AASC.AST_CUSTOMER_KEEP query=where CUA_TRANS_DTS . 下面给出一个例子。我用select * from all_objects建立了一个表T,我希望输出所有object_id 小于5000的行。在Windows中,必须这样做: C:expexp userid=tkyte/tkyte tables=t query=where object_id 5000 注意:在windows中,需要在WHERE语句的两端使用三个双引号。在UNIX中,必须这样做: $ exp userid=/ tables=t query=where object_id 5000 exp userid=/ tables=t parfile=exp.par 如果使用包含query=where object_id select dbms_random.value, dbms_random.value(55,100) 2 from dual; VALUE DBMS_RANDOM.VALUE(55,100) - - .782821936 79.6367038 NORMAL函数返回服从正态分布的一组数。此正态分布标准偏差为1,期望值为0。这个函数返回的数值中有68%是介于-1与+1之间,95%介于-2与+2之间,99%介于-3与+3之间。事实上,这就是你在清单1中所看到的。 最后,是STRING函数。它返回一个长度达60个字符的随机字符串。参数OPT可以是清单2显示的值中的任何一个单个字符。 关于这些函数及DBMS_RANDOM包的文件都包含在SQLPlus中: select text from all_source where name = DBMS_RANDOM and type = PACKAGE order by line; 问:连接次序与谓词求值 在下面的查询中,WHERE 语句的哪一部分先执行? Select field names from emp, dept where emp.dept_num = dept.num and Like S% and =IT; 答:执行次序随已有的索引、统计、和session/init.ora参数的不同而变化。 假定已有一个建立在DEPT(name)和EMP(dept_num)上的索引。假定优化器认为DEPT是唯一的,它可能按下面的顺序进行操作: 利用建立在DEPT(name)上的索引查找dept列 利用建立在EMP(dept_num)上的索引查找匹配的emp列(即连接emp.dept_num = dept.num) 依据建立在emp.ename like S%进行过滤 现在,我们假定没有建立在EMP(dept_num)上的索引,也没有建立在DEPT(name)上的索引,而存在建立在EMP(name)和DEPT(num)上的索引。优化器可能按下面的次序进行操作: 利用建立在EMP(name)上的索引找到带有S的EMPS 利用建立在DEPT(num)上的索引找到匹配项 根据 = IT过滤结果 谓词求值的次序是不确定的,可以随时间的改变而改变,并由优化器决定。不要假定任何事情会按一定的次序发生。如果你那么做,随着时间的推移,你的应用程序可能会出现一些看起来非常奇怪的错误。看以下的例子:建立一个表,输入一些数据。当X=a时,第二列的数据“Y”是一个数值,当X=b时,“Y”不是数字。 SQL create table t ( x varchar2(1), y varchar2(1) ); Table created. SQL insert into t values ( a, 1 ); 1 row created. SQL insert into t values ( b, x ); 1 row created. 现在根据这个表运行一个查询:查找满足x=a,y=1的行。 SQL select * f
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 图案打样工中秋节后复工安全考核试卷含答案
- 信息通信网络动力机务员国庆节后复工安全考核试卷含答案
- 法律文书写作基础知识与示范
- 铁合金回转窑工国庆节后复工安全考核试卷含答案
- 异丁烯装置操作工节假日前安全考核试卷含答案
- 劳动定员定额师节假日前安全考核试卷含答案
- 一年级数学趣味课堂教案
- 飞机管工节假日前安全考核试卷含答案
- 玻璃幕墙拆除安全协议书(新版)5篇
- 汽车美容装潢工节假日前安全考核试卷含答案
- 医保基金监管培训课件
- 药厂变更管理培训
- 2025届名校名师模拟卷(九)语文试题(PDF版含答案)
- 技术部工作汇报与未来规划
- 体育安全与急救知识培训
- 小区装修工具管理制度
- 2026年日历表(带农历 每月一张可打印)
- 数据采集效率提升-洞察阐释
- 人教版五年级上册数学第二单元测试卷(含答案)
- 国资委考试试题及答案
- 2025-2030中国铝合金门窗行业发展分析及投资前景与战略规划研究报告
评论
0/150
提交评论