知识大全 Oracle数据库常见问题答疑二
Posted 索引
篇首语:千磨万击还坚劲,任尔东西南北风。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Oracle数据库常见问题答疑二相关的知识,希望对你有一定的参考价值。
Oracle数据库常见问题答疑二 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
问 利用QUERY选项输出数据 我知道在Oracle i中 可以使用QUERY有选择地输出表数据 我想用EXP命令来实现 但没有成功 下面是我所写的命令 以及得到的错误信息 exp ddd/ddd file=/dbf/u /customer dmp tables=AASC AST_CUSTOMER_KEEP query=\\ where CUA_TRANS_DTS \\< add_months\\(sysdate \\)\\ table_export[ ]: CUA_TRANS_DTS: not found (没有找到) 答 操作系统不同 用来指定QUERY=参数的方法也不同 WHERE 语句里面往往有很多特殊的字符 如= > <和空格等等 而UNIX和Windows操作系统中的外壳命令提示是不欢迎这些字符的 这些字符将被忽略 你应该根据不同的操作系统采用不用的方法 我一般使用带有QUERY选项的参数文件(PARFILE) 利用PARFILE 可以不考虑操作系统平台而使用完全相同的方法 下面给出一个例子 我用select * from all_objects建立了一个表T 我希望输出所有object_id 小于 的行 在Windows中 必须这样做 C:\\exp>exp userid=tkyte/tkyte tables=t query= where object_id < 注意 在windows中 需要在WHERE语句的两端使用三个双引号 在UNIX中 必须这样做 $ exp userid=/ tables=t query=\\ where object_id \\< \\ exp userid=/ tables=t parfile=exp par 如果使用包含query= where object_id < 的PARFILE文件 我可以在两个系统中使用相同的一个命令 exp userid=/ tables=t parfile=exp par 在两种操作系统中 完全相同 这相对于在不同的平台中使用不同的QUERY字符串容易多了 问 DBMS_RANDOM 您能否告诉我写一个能产生大于 小于 的随机数的随机数产生器的最好方法? 答 Oracle 版介绍了DBMS_RANDOM包 Oracle i 版介绍了DBMS_RANDOM包的新功能 但Oracle i 文档中没有详细全面介绍其功能 幸运的是 有一个新的DBMS_RANDOM包函数能够返回 之间的随机数 这个新函数是 FUNCTION value RETURN NUMBER; FUNCTION value (low IN NUMBER high IN NUMBER) RETURN NUMBER; FUNCTION normal RETURN NUMBER; FUNCTION string (opt char len NUMBER) RETURN VARCHAR ; VALUE函数的第一种形式返回一个大于或等于 且小于 的随机数 第二种形式返回一个大于或等于LOW 小于HIGH的随机数 下面是其用法的一个示例 SQL> select dbms_random value dbms_random value( ) from dual; VALUE DBMS_RANDOM VALUE( ) NORMAL函数返回服从正态分布的一组数 此正态分布标准偏差为 期望值为 这个函数返回的数值中有 %是介于 与+ 之间 %介于 与+ 之间 %介于 与+ 之间 事实上 这就是你在清单 中所看到的 最后 是STRING函数 它返回一个长度达 个字符的随机字符串 参数OPT可以是清单 显示的值中的任何一个单个字符 关于这些函数及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 w here emp dept_num = dept num and emp name Like S% and dept name= 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)上的索引找到匹配项 根据dept name = IT 过滤结果 谓词求值的次序是不确定的 可以随时间的改变而改变 并由优化器决定 不要假定任何事情会按一定的次序发生 如果你那么做 随着时间的推移 你的应用程序可能会出现一些看起来非常奇怪的错误 看以下的例子 建立一个表 输入一些数据 当X= a 时 第二列的数据 Y 是一个数值 当X= b 时 Y 不是数字 SQL> create table t ( x varchar ( ) y varchar ( ) ); Table created SQL> insert into t values ( a ); row created SQL> insert into t values ( b x ); row created 现在根据这个表运行一个查询 查找满足x= a y= 的行 SQL> select * from t where x = a and y = ; ERROR: ORA : invalid number no rows selected(错误 无效的数字 没有选择任何行) 呦 没有成功 在这种情况下 数据库首先执行Y= 当找到Y= X 的行后 很显然 它不能将 X 转换为一个数字 所以失败了 而下面的程序将给出不同的结果 SQL> analyze table t pute statistics; Table analyzed (表已经分析过) SQL> select * from t where x = a and y = ; X Y a 使用不同的优化器模式 成功了!为什么?优化器说 嘿 检查x= a 要比检查y= 来得快 因为在y= 中有一个将y从字符变为数字的转换 所以 我先检查x= a 然后再检查y= 这个例子说明谓词执行的次序可能是不确定的 你不能指望有一种特定的执行次序 也就是说 当你依靠一个隐含的转换时 必须非常谨慎 问 显示SGA fixed size(固定大小)与variable size(可变大小) 当在svrmgr提示符下运行 show SGA 时 fixed size和variable size是什么意思? 答 fixed size就是SGA中固定组件(它在编译oracle 数据库本身时就固定于其中)的大小 它是固定大小的内存 用来指向SGA的其它部分 SGA这一部分的大小是不能改变的 variable size指分配的内存块大小可变 SGA的可变块 分为共享池 大池 JAVA池 游标区和其他结构 cha138/Article/program/Oracle/201311/17509相关参考
Oracle数据库开发的一些经验积累(二) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 三LI
知识大全 动态性能视图,Oracle数据库维护的好帮手(二)
动态性能视图,Oracle数据库维护的好帮手(二) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
Oracle9i数据库管理实务讲座(二) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Orac
Oracle备份与恢复案例二 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 检查数据库的数据(完
数据库手册:Oracle维护常用SQL语句二 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 回滚
ORACLE数据库常见问题诊断方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ORACLE的
ORACLE数据库应用开发常见问题及排除 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 硬件平台
Oracle数据库常见问题诊断-SQL*NET篇 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
ORACLE数据库问题诊断方法:常见错误篇 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ORA
Oracle数据库诊断性能问题 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 使用扩展SQL跟踪