随笔分类 -  Oracle

摘要:扯在前面Oracle通过AQ (Oracle Streams Advanced Queuing)来提供“进程间” (或者跨会话 -- inter-session) 通信的功能。关于inter-session communication, 貌似DBMS_PIPE也可以做到,这个打算写另外一片水文来介绍,在此不表。 AQ 其实类似于一个message queue, 至于为什么叫... 阅读全文
posted @ 2010-11-06 17:01 FangwenYu 阅读(3982) 评论(0) 推荐(1)
摘要:整理电脑的时候,发现以前写的一篇关于dbms_profiler的文章,现在贴出来,方便参考。A BRIEF INTRODUCTION TO MY_PLSQL_PROFILER1. BackgroundThis document isnot intended to give out comprehensive introduction to the oracle-suppliedpackage DB... 阅读全文
posted @ 2010-11-04 14:31 FangwenYu 阅读(415) 评论(0) 推荐(0)
摘要:如果想得到一个随机值,非常自然地会想到用DBMS_RANDOM包来做。但是有时候不注意,可能得到的并不是我们想要的结果,就遇到如下一个”陷阱“:假设有张表T里面有一列存储字符串,并且在这个列上有个unique constraint, 由于系统并不care这列里面存储的字符串是啥东东,只要它是唯一的就OK。那么有一个简单的function来获取每次需要往这一列插入的字符串,如... 阅读全文
posted @ 2010-10-27 20:46 FangwenYu 阅读(616) 评论(2) 推荐(0)
摘要:再来一篇水文:-)主要是想把Steven写的intab贴过来,以方便平时参考参考下。这个intab主要是关于DBMS_SQL的用法,也就是Steven说的关于动态SQL的Method4的典型应用。关于DBMS_SQL, 我在另外一片水文也贴过,see here.关于动态SQL的4中method, 参考下图...不废话,直接贴代码...[代码]--EOF-- 阅读全文
posted @ 2010-10-26 22:16 FangwenYu 阅读(498) 评论(0) 推荐(0)
摘要:之前用RMAN做过一个数据库的全备,后来发现数据库mess up了,想要恢复到之前做备份的那个状态,这个用RMAN很好办,[代码]不过杯具的是,在resetlogs之后没有再做一次全备。这样在数据库run了一段时间后,发现还是要回到当初状态比较好。寻思着不如再回到从前吧,尝试重复执行上面的这段脚本,却得到如下错误,[代码]突然意识到,这应该是在resetlogs之后,数据库进入了一个新的incar... 阅读全文
posted @ 2010-10-25 17:39 FangwenYu 阅读(1417) 评论(0) 推荐(0)
摘要:在看一个script的时候,看到了类似如下的东东,[代码]对这个@后面的?很感不解,google之,在一个地方发现如下解释,遂释然。[代码]--EOF-- 阅读全文
posted @ 2010-10-19 18:08 FangwenYu 阅读(187) 评论(0) 推荐(0)
摘要:Long time no blogging, what a shame!最近一直在OT....做着一些有些无聊却又是very time-consuming的工作, 不是一般的蛋疼啊...最近工作上的事情没有啥值得写一写的其实,不过这么久没有更新过了,不写点实在过不去啊,但是又没有啥主题可直奔的,因此这个标题就不知取何名字了,对于我这样一个地道的标题党来说,真的是相当纠结, 相当蛋疼!想了想,就总结下最近被逼写的一些“脚本”吧,就是公司的产品要发布了,因此怎么也要有个所谓的“database installer”吧,所以脚本也是不可避免的。下面简单总结下遇到的问题吧...1. EXP/IMP 相 阅读全文
posted @ 2010-10-16 17:38 FangwenYu 阅读(568) 评论(2) 推荐(0)
摘要:随便起了个名字,因为不知道叫啥好。主要是想把最近遇到的一个事情简单记录下,仅此而已。为啥叫Fake SQL Tuning, 自然不是真正地谈SQL优化,因为我也说不出来啥玩意,毕竟SQL优化不是简单的一两句话就可以说出个所以然的。最近遇到个问题,我负责维护的一个产品的用户说他们有一个process老是跑不完,卡在那里。这个产品前端用PB做,中间部分计算引擎用C++来写,还有一大部分的东东是放在数据... 阅读全文
posted @ 2010-09-07 20:19 FangwenYu 阅读(518) 评论(2) 推荐(0)
摘要:网上搜了下关于Recovery Window的介绍,发现对这个问题的讨论也不少,但是貌似说得都不是很清楚。在文档《Oracle11g Backup and Recovery User's Guide》里面发现对Recovery Window的讲解,觉得还是很清楚的,摘抄在此,以作参考.....Recovery WindowA recovery window is a period of time ... 阅读全文
posted @ 2010-08-24 21:49 FangwenYu 阅读(1465) 评论(1) 推荐(0)
摘要:就像在前一篇提到的,更改一个Schema Name会带来诸多问题,不仅仅是ORA-01031, ORA-28100这些问题,还会造成一些更加诡异的问题,今天就碰到了 :(事情是这样的, 在更改过之后的Schema里面执行了一条普普通通的SQL语句,结果出现了令人摸不着头脑的错误---No more data to read from socket紧接着当前数据库的连接就断掉了!!!!! 我把这条S... 阅读全文
posted @ 2010-08-10 19:29 FangwenYu 阅读(461) 评论(2) 推荐(1)
摘要:虽然平时很少会遇到改动一个schema名字的问题,但是并不是不会遇到, 今天就很不幸给碰到了 :-)话说之前用DBCA做了一个数据库A的模板(包含数据文件),然后在另外一台机器上clone出了一个数据库叫B。因为是Clone嘛,自然里面的Schema都是一样的。但是为了方便区分,希望将其中的一个schema改名字,也就是将schema QA 改成 CI.之前没有做过类似的操作,因此不敢贸贸然行动,... 阅读全文
posted @ 2010-08-09 19:21 FangwenYu 阅读(2007) 评论(8) 推荐(1)
摘要:在尝试用impdp把一个dump文件从一个schema导入到另外一个schema (两个schema位于同一个数据库上,需要用到remap_schema参数来进行schema的映射转换)遇到了诸多类似如下的错误....(cmd> impdp test/test directory=dump_dir dumpfile=dump.dmp logfile=dump.log remap_schema... 阅读全文
posted @ 2010-07-02 10:05 FangwenYu 阅读(2105) 评论(0) 推荐(1)
摘要:遇到一个有点意思的问题,在执行如下一段code的时候,出现了 numeric overflow的错误.....[代码]从给出的错误提示来看,貌似是1000*60*60*24*365超出了number类型所能容纳的范围了,但是...[代码]可以看到1000*60*60*24*365的值的长度为才是11,而NUMBER可以支持到整数位长度为38的数字,因此这个值远远没有到numeric overflow的情况。但是为啥Oracle会报出这么一个错误呢? 真的很费解.......搜了下对这个ORA-error的解释,如下所示......Error:ORA-01426: numeric overflo 阅读全文
posted @ 2010-06-11 21:12 FangwenYu 阅读(12728) 评论(2) 推荐(0)
摘要:在创建Oracle 10g数据库的时候,会默认创建以下表空间,- SYSTEM- SYSAUX- TEMP- UNDOTBS1- USER- Example[代码]现在想知道哪些表空间可以被置成offline,或者read only状态,测试如下....(1) Take tablespace offline[代码]可以看到,1) SYSTEM, UNDO 是不可以被take offline的2) ... 阅读全文
posted @ 2010-06-05 14:04 FangwenYu 阅读(1032) 评论(0) 推荐(0)
摘要:启动EM database constrol> SET ORACLE_SID=orcl> emctl start dbconsole打开浏览器 --https://localhost:1158/em/但是却发现如下问题,刚开始以为是instance没有起来,但是执行如下SQL语句,发现数据库已经Open了,[代码]那么是啥问题呢??? 注意到上图中有个ORA-28001错误,提示pas... 阅读全文
posted @ 2010-06-05 13:27 FangwenYu 阅读(1046) 评论(0) 推荐(0)
摘要:需要写一个动态执行一大段SQL脚本的存储过程,因为这个SQL长度太长了,因此不能直接用 NDS -- EXECUTE IMMEDIATE, 只好借助于DBMS_SQL package. 但是在写的时候,遇到个问题,发现DBMS_SQL提供了好几个varchar2 table,一时不太明白这几个table的区别。干脆打开这个package的specification,来看个究竟,如下,注意这几个类型... 阅读全文
posted @ 2010-05-21 09:46 FangwenYu 阅读(720) 评论(0) 推荐(0)
摘要:帮同事看一个问题,在更新一个view的时候,触发了一些列的triggers,最后得到的错误信息就是ORA-06502: numeric or value error. 刚开始一直以为是在往表里插入数据的时候,是不是哪个列的类型不匹配造成的。注释了很多地方,都不奏效。无奈之下,只好用了下SQL Developer的debug功能,最后终于发现问题所在,是因为往一个varchar2的变量里面放数据的时... 阅读全文
posted @ 2010-05-21 09:36 FangwenYu 阅读(10399) 评论(2) 推荐(0)
摘要:比如说我有一个Package,它的specification如下,[代码]现在我想通过执行一条SQL语句,得到这个Package里面包含哪些Function和Procedure, 类似于SQL*Plus的命令 DESC package_name[代码]其实思路很简单,只要从数据字典视图里面选择需要的数据,然后进行相应的格式化就OK了。下面就是GET_PACKAGE_SPECIFICATION的代码,[代码]我是从USER_ARGUMENTS里面进行数据查询,然后通过分析函数FIRST_VALUE, 10g新增加的collect聚集函数来进行“格式化”。这里面遇到的一个问题是通过调用func 阅读全文
posted @ 2010-05-05 10:01 FangwenYu 阅读(793) 评论(0) 推荐(0)
摘要:创建一个Oracle数据库 (10g) 的步骤大致如下:1) Create a parameter file and password file.2) Use the parameter file to build an instance in memory3) Issue the CREATE DATABASE command. This will generate, at a minimum,... 阅读全文
posted @ 2010-05-03 13:42 FangwenYu 阅读(873) 评论(0) 推荐(0)
摘要:遇到如下这么一道题目:In ARCHIVELOG mode, the loss of a datafile for any tablespace other than the SYSTEM or UNDOtablespace affects which objects in the database?A. The loss affects only objects whose extents re... 阅读全文
posted @ 2010-05-01 21:45 FangwenYu 阅读(537) 评论(0) 推荐(0)