Oracle之PLSQL总结
摘要:基本数据类型变量 1. 基本数据类型 Number 数字型 Int 整数型 Pls_integer 整数型,产生溢出时出现错误 Binary_integer 整数型,表示带符号的整数 Char 定长字符型,最大255个字符 Varchar2 变长字符型,最大2000个字符 Long 变长字符型,最长2GB Date 日期型 Boolean 布尔型(TRUE、FALSE、NULL三者取一) 在PL/SQL中使用的数据类型和Oracle数据库中使用的数据类型,有的含义是完全一致的,有的是有不同的含义的。 2. 基本数据类型变量的定义方法 变量名 类型标识符 [not n...
阅读全文
posted @
2012-07-16 18:41
Ronger
阅读(23547)
推荐(1) 编辑
Oracle之异常ora-00054:resource busy and acquire with nowait specified
摘要:今天通过TOAD操作Oracle数据库时,遇到一个陌生的异常信息ora-00054:resource busy and acquire with nowait specified(资源正忙,需指定nowait),寻觅已久,终于找到相关解决方法,记之,鉴之,勉之:)当某个数据库用户在数据库中插入、更新、删除一个表的数据,或者增加一个表的主键时或者表的索引时,常常会出现ora-00054:resource busy and acquire with nowait specified这样的错误。要是因为有事务正在执行(或者事务已经被锁),所有导致执行不成功。1、用dba权限的用户查看数据库都有哪些锁
阅读全文
posted @
2012-06-21 17:27
Ronger
阅读(5105)
推荐(0) 编辑
Oracle之PL/SQL有关查询实现
摘要:最近有看到网上关于排序查询的实现有两个自己不常用的查询语法,关于分析函数的用法,记之,鉴之,勉之;在一个表里怎么查询每列数据的最大值和次大值?WITH tt AS (SELECT CASE WHEN col1 IN (1, 2) THEN empno ELSE NULL END empno, CASE WHEN col2 IN (1, 2) THEN ename ELSE NULL END ename, CASE WHEN col3 IN (1, 2) THEN job ELSE NULL END job, ...
阅读全文
posted @
2012-06-20 14:24
Ronger
阅读(1017)
推荐(0) 编辑
Oracle之存储过程和ADO.NET的结合
摘要:在利用WCF服务模式实现数据层和数据库交换中,输入参数和输出参数也是要注意的一部分,这次主要是记录在一个输入参数和一个数组形式的输出参数的存储过程如何与ADO.NET实现数据信息交互。C#实现的底层服务,代码如下: /// <summary> /// 撤销合并账单 /// </summary> /// <param name="tgtBillId">目标账单</param> /// <returns>撤销之后生成的账单</returns> public string[] RestoreBill(stri
阅读全文
Oracle之数据挖掘的更新介绍
摘要:摘要:Oracle数据挖掘(ODM)是一 种数据库内的数据挖掘和预测分析引擎,允许你在通过你的Oracle数据基础设施可以访问的数据上建立和使用高级预测分析模型。 最近从 Oracle中得到一次Oracle数据挖掘 (ODM)的更新介绍。Oracle数据挖掘(ODM)是一 种数据库内的数据挖掘和预测分析引擎,允许你在通过你的Oracle数据基础设施可以访问的数据上建立和使用高级预测分析模型。去年在这个“先睹为快 — Oracle数据挖掘” 中广泛地写了关于Oracle数据挖掘(ODM) 的文章,从那时起,他们已经发布了Oracle数据挖掘 (ODM) 11.2。 当然,Oracle数据挖掘 (
阅读全文
posted @
2012-05-28 17:28
Ronger
阅读(5330)
推荐(0) 编辑
Oracle之分页查询
摘要:Oracle的分页查询语句基本上可以按照本文给出的格式来进行套用。分页查询格式:View Code SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A WHERE ROWNUM <= 40 ) WHERE RN >= 21其中最内层的查询SELECT * FROM TABLE_NAME表示不进行翻页的原始查询语句。ROWNUM <= 40和RN >= 21控制分页查询的每页的范围。上面给出的这个分页查询语句,在大多数情况拥有较高的效率。分页的目的就是控制输出结果集大小,将结果尽快
阅读全文
posted @
2012-05-14 10:40
Ronger
阅读(125771)
推荐(4) 编辑
Oracle之数据库一致性读的原理
摘要:在Oracle数据库中,undo主要有三大作用:提供一致性读(Consistent Read)、回滚事务(Rollback Transaction)以及实例恢复(Instance Recovery)。一致性读是相对于脏读(Dirty Read)而言的。假设某个表T中有10000条记录,获取所有记录需要15分钟时间。当前时间为9点整,某用户A发出一条查询语句:select * from T,该语句在9点15分时执行完毕。当用户A执行该SQL语句到9点10分的时候,另外一个用户B发出了一条delete命令,将T表中的最后一条记录删除并提交了。那么到9点15分时,A用户将返回多少条记录?如果返回99
阅读全文
posted @
2012-05-09 17:53
Ronger
阅读(14198)
推荐(3) 编辑
Oracle之优化篇---海量数据处理分析
摘要:笔者在实际工作中,有幸接触到海量的数据处理问题,对其进行处理是一项艰巨而复杂的任务。原因有以下几个方面:一、数据量过大,数据中什么情况都可能存在。如果说有10条数据,那么大不了每条去逐一检查,人为处理,如果有上百条数据,也可以考虑,如果数据上到千万级别,甚至过亿,那不是手工能解决的了,必须通过工具或者程序进行处理,尤其海量的数据中,什么情况都可能存在,例如,数据中某处格式出了问题,尤其在程序处理时,前面还能正常处理,突然到了某个地方问题出现了,程序终止了。二、软硬件要求高,系统资源占用率高。对海量的数据进行处理,除了好的方法,最重要的就是合理使用工具,合理分配系统资源。一般情况,如果处理的数据
阅读全文
posted @
2012-05-02 18:06
Ronger
阅读(13225)
推荐(3) 编辑
Oracle之数据词典
摘要:select * from dictionary; --数据字典 数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的。 比如一个表的创建者信息,创建时间信息,所属表空间信息,用户访问权限信息等。 数据库数据字典是一组表和视图结构。它们存放在SYSTEM表空间中 当用户在对数据库中的数据进行操作时遇到困难就可以访问数据字典来查看详细的信息。 用户可以用SQL语句访问数据库数据字典。 数据字典内容包括: 1,数据库中所有模式对象的信息,如表、视图、簇、及索引等。 2,分配多少空间,当前使用了多少空间等。 3,列的缺省值。 4,约束信息的完整性。 5,Or...
阅读全文
posted @
2012-04-17 17:33
Ronger
阅读(1316)
推荐(1) 编辑
Oracle之物化视图
摘要:近期根据项目业务需要对oracle的物化视图有所接触,在网上搜寻关于这方面的资料,便于提高,整理内容如下:物化视图是一种特殊的物理表,“物化”(Materialized)视图是相对普通视图而言的。普通视图是虚拟表,应用的局限性大,任何对视图的查询,Oracle都实际上转换为视图SQL语句的查询。这样对整体查询性能的提高,并没有实质上的好处。1、物化视图的类型:ON DEMAND、ON COMMIT二者的区别在于刷新方法的不同,ON DEMAND顾名思义,仅在该物化视图“需要”被刷新了,才进行刷新(REFRESH),即更新物化视图,以保证和基表数据的一致性;而ON COMMIT是说,一旦基表有了
阅读全文
posted @
2012-03-28 11:38
Ronger
阅读(42348)
推荐(7) 编辑
Oracle之锁表问题
摘要:查找用户锁View Code select s.username, decode(l.type, 'TM ', 'TABLE LOCK ', 'TX ', 'ROW LOCK ', NULL) LOCK_LEVEL, o.owner,o.object_name,o.object_type,s.terminal,s.machine,s.program,s.osuser from v$session s,v$lock l,dba_objects o whe...
阅读全文
posted @
2012-03-15 16:10
Ronger
阅读(807)
推荐(0) 编辑
Oracle之自治事务
摘要:昨天处理项目中的一个业务需求要用到触发器实现,触发器中涉及到在inserting、deleting、updating之后来触发对表的操作,对于inserting、updating中的操作都可以正常实现,就是deleting的时候,要求更新其他表,更新的值是对触发器表自身的查询操作,本人在有限的水平范围之内试过N中方式来达到需求,最后无果,无奈之下只有找经理帮忙看看问题,最终问题被解决了,果然是用到了自己不太熟悉的oracle自治事务,而且这个自治事务因为是独立的事务操作,考虑到事务回滚,必须单独写成一个触发器来完成,最后问题被老大解决掉了,每次问题希望都是成长的机会,会有收获,于是乎就到网上找
阅读全文
posted @
2012-02-15 14:05
Ronger
阅读(19285)
推荐(2) 编辑
oracle之常见技术问题
摘要:1.解释冷备份和热备份的不同点以及各自的优点解答:热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份。而冷备份指在数据库关闭后,进行备份,适用于所有模式的数据库。热备份的优点在于当备份时,数据库仍旧可以被使用并且可以将数据库恢复到任意一个时间点。冷备份的优点在于它的备份和恢复操作相当简单,并且由于冷备份的数据库可以工作在非归档模式下,数据库性能会比归档模式稍好。(因为不必将archive log写入硬盘)2.你必须利用备份恢复数据库,但是你没有控制文件,该如何解决问题呢?解答:重建控制文件,用带backup control file 子句的recover 命令恢复数据库。3.如何转
阅读全文
posted @
2011-12-31 11:37
Ronger
阅读(794)
推荐(1) 编辑
oracle之rman入门指南
摘要:这篇文章主要介绍RMAN的常用方法,其中包含了作者一些自己的经验,里面的实验也基本全在WIN 2K和ORACLE 8.1.6环境下测试成功(因为这个环境比较容易实现)。 本文借鉴了网上一些高手的相关文章,希望大侠们不要见怪,此处一并谢过。 因为篇幅有限,一些技术细节不能一一覆盖了,只希望能够帮助新手入门的作用,想真正熟练掌握RMAN,必须经过较长时间的实践磨练才可以,尤其需要在工程中获得宝贵的故障解决经验。 1.什么是RMAN? RMAN可以用来备份和还原数据库文件、归档日志和控制文件。它也可以用来执行完全或不完全的数据库恢复。 注意:RMAN不能用于备份初始化参...
阅读全文
posted @
2011-12-29 16:39
Ronger
阅读(31605)
推荐(5) 编辑
oracle之基本介绍及认证
摘要:1、Oracle公司推荐的官方准备途径 一般来讲,Oracle的考试内容比较多,并且考题也很细,对动手能力要求很强。因此,为了有足够的把握,一定要提前充分准备,而且一定要注重动手实践。在Oracle官方网站上推荐的通过认证的途径如下,可以进行参考。 Oracle大学:Oracle大学提供的教师引导及基于技术的训练(Instructor-led training and technology- based training)是准备OCP认证的最好方式,这些课程将为你打下需要通过OCP认证的知识基础。你可以查阅一下课程表来选择理想的准备方式,你当地的Oracle大学可以在这方面给你一些最好的建..
阅读全文
posted @
2011-12-29 16:37
Ronger
阅读(1257)
推荐(0) 编辑
oracle之 any、some、all 解析
摘要:因为很少用到, 所以几乎忘记了这几个函数, 不过它们还是很有用的使用它们可以大大简化一些SQL文的语法, 至于效率问题, 如CCW所说它们和EXISTS, IN 之类没有什么差别, 而且要具体问题具体分析其中ANY和SOME在意思上是相同的, 可以相互替代.举几个例子来说明ALL和ANY的用法1. SELECT * FROM TABLEA WHERE FLD > ALL(SELECT FLD FROM TABLEA)这相当于SELECT * FROM TABLEA WHERE FLD > (SELECT MAX(FLD) FROM TABLEA)2. SELECT * FROM T
阅读全文
posted @
2011-12-28 17:14
Ronger
阅读(13284)
推荐(0) 编辑
oracle之分析函数over及开窗函数
摘要:一:分析函数overOracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是对于每个组返回多行,而聚合函数对于每个组只返回一行。 统计各班成绩第一名的同学信息NAME CLASS S ----- ----- ----------------------fda 1 80 ffd 1 78 dss 1 95 cfe 2 74 gds 2 92 gf 3 99 ddd 3 99 adf 3 45 asdf 3 55 3dd 3 78 通过: -- select * from ( select name,class,s,rank()over(pa...
阅读全文
posted @
2011-12-28 15:45
Ronger
阅读(13214)
推荐(2) 编辑
oracle之分页获取记录
摘要:如何实现分页提取记录方法1:oracle的ROWNUM伪列返回查询的行序号。 例如要查询表的前10条记录,可以使用 select * from tablename where ROWNUM<=10 但是要返回第11-第20条记录,尝试以下的语句 select * from tablename where ROWNUM<=20 and ROWNUM>=11; 这个人报错。返回0条记录。因为ROWNUM是伪列,不能用>=条件 使用以下方法可以查询第11-第20条记录 select * from (select ROWNUM rn ,t.* from tablename t
阅读全文
posted @
2011-12-27 18:12
Ronger
阅读(735)
推荐(0) 编辑
Oracle之常用函数大全
摘要:1.ASCII返回与指定的字符对应的十进制数;View Code SQL>selectascii('A')A,ascii('a')a,ascii('0')zero,ascii('')spacefromdual;AAZEROSPACE------------------------------------659748322.CHR给出整数,返回对应的字符;View Code SQL>selectchr(54740)zhao,chr(65)chr65fromdual;ZHC---赵A3.CONCAT连接两个字符串;View
阅读全文
oracle之报错:ORA-00054: 资源正忙,要求指定 NOWAIT
摘要:问题如下:SQL> conn scott/tiger@vm_databaseConnected to Oracle Database 11g Enterprise Edition Release 11.1.0.6.0Connected as scott。。。。。。SQL> drop table student2;drop table student2ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效=========================================================解决方法如下:===========
阅读全文
posted @
2011-12-19 15:59
Ronger
阅读(123276)
推荐(8) 编辑