
oracle plsql
文章平均质量分 69
47522341
这个作者很懒,什么都没留下…
展开
-
oracle的层次查询
Q7,oracle层次查询:在业务执行过程中,如果涉及到的目标表具有层次结构数据,在传统的查询执行过程中,我们需要使用自连接来完成查询的执行,这样不仅代码书写比较麻烦,而且执行时的资源花销也比较大。Oracle提供了层次查询函数来优化这类查询要求。在层次查询中,伪列level可以用于返回层次,根层次为1,第二级层次为2,以此类推。层次查询子句的语法为Start with conditio原创 2008-03-17 15:52:00 · 2479 阅读 · 0 评论 -
oracle动态sql语句处理
动态SQL语句处理:根据要处理的sql语句的作用不同,可以使用三种不同类型的动态sql方法:使用execute immediate语句可以处理包括ddl(create、alter和drop)、DCL(grant、revoke)、DML(insert、update、delete)以及单行select语句;使用open cursorname for sql_statement语句可以处理多行查询原创 2008-03-22 09:53:00 · 9916 阅读 · 6 评论 -
异常退出后的循环执行问题
在业务处理过程中,有时希望能在异常出现时,记录我们的异常信息但不退出系统,以便继续执行后续操作。下面的代码给出了一种实现的方法,主要依据是exception可以出现在任意义个begin和end块之间,而不像我原来所想当然的认为是只能出现在一个事务的结尾部分,如下所示代码中,在出现异常时,oracle将执行完异常代码后会继续转到loop循环的下一次操作。declare myex原创 2008-04-19 10:37:00 · 1641 阅读 · 0 评论 -
按照汇总结果排序问题
建立测试环境如下 create table t1 (f1 varchar2(10), f2 varchar2(10), v1 integer, v2 integer); --插入测试数据 insert into t1 select 北京,1,1,1 from dual union all select 北京,2,1,1 from dual union all select 北原创 2008-04-24 15:35:00 · 835 阅读 · 0 评论 -
对oracle执行计划相关概念的理解
※ 驱动表(driving table)和被探查表(probed table)的概念驱动表又称为外层表(outer table),这个概念用于嵌套与hash连接中,如果驱动表row source返回较多的行数据,则对所有的后续操作都有负面的影响,因为将大的row source作为驱动表时在后续的操作中返回的中间结果都比较大。这是比较容易理解的。另外在驱动表的选择上,应该选择原创 2008-05-07 16:34:00 · 1811 阅读 · 0 评论 -
oracle分析函数参考手册
Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是对于每个组返回多行,而聚合函数对于每个组只返回一行。下面例子中使用的表来自Oracle自带的HR用户下的表,如果没有安装该用户,可以在SYS用户下运行$ORACLE_HOME/demo/schema/human_resources/hr_main.sql来创建。除本文内容外,你转载 2008-05-16 09:06:00 · 871 阅读 · 0 评论 -
综合执行计划与索引结构的查询优化实例
我们知道,一般在查询语句出现性能瓶颈,需要对其进行优化时,一个比较有效的手段就是DBA通过调整sql语句的执行计划,或者建立有效索引以达到数据执行时间最短的效果. 我们系统中有两个表I_ORG_PARTY_RELATIONSHIP(部门基础表),数据记录月5w条:create table ODS.I_ORG_PARTY_RELATIONSHIP( PARTY_ID原创 2008-09-02 09:22:00 · 982 阅读 · 0 评论 -
Oracle的group by聚合函数扩展cube rollup和grouping sets
Oracle的group by聚合函数扩展cube rollup和grouping sets聚合函数是oracle数据仓库的基础。为了提高距合的性能,oracle提供了group by条款的扩展。ü cubeü rollupü groupingü grouping sets这几个对sql的扩展使得查询和报告都变原创 2008-11-24 09:14:00 · 2872 阅读 · 0 评论 -
使用over函数实现递归汇总
Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是对于每个组返回多行,而聚合函数对于每个组只返回一行。一、over函数 over函数指定了分析函数工作的数据窗口的大小,这个数据窗口大小可能会随着行的变化而变化,例如:over(order by salary)按照salary排序进行累计,order by是个默认的开窗函数over原创 2008-11-25 16:13:00 · 1410 阅读 · 0 评论 -
connect by start with详细用法
树结构查询ORACLE是一个关系数据库管理系统,它用表的形式组织数据,在某些表中的数据还呈现出树型结构的联系。例如,我们现在讨论雇员信息表EMP,其中含有雇员编号(EMPNO)和经理(MGR)两例,通过这两列反映出来的就是雇员之间领导和被领导的关系。有些雇员领导另一些雇员,有些雇员被领导,还有些雇员领导一些人又被别人领导,他们之间的这种关系就是一种树结构,图1.1表示了EMP表雇员间的这种树结构。转载 2009-08-06 16:08:00 · 4126 阅读 · 0 评论 -
oracle的系统事件触发器
oracle的系统事件触发器:系统事件触发器是指基于oracle系统事件(如logon和startup)所建立的触发器。通过这种触发器可以跟踪系统或数据库的变化。create table jax_event_table(eventname varchar2(30),time date);createtrigger tr_startupafter startup ondatabase原创 2008-03-20 15:58:00 · 5535 阅读 · 2 评论 -
触发器相关概念与应用
触发器是被隐含执行的存储过程,它可以使用PLSQL,java和c进行开发,它由触发事件、触发条件和触发操作三部分组成。*触发事件:从8i开始,oracle的触发事件扩充为:启动和关闭例程;oracle错误消息;用户登录和断开会话;特定表和视图的DML操作;在任何方案上的DDL语句。*触发条件(可选):when指定的一个boolean表达式,决定是否执行触发代码。*触发代码:触发代码不能原创 2008-03-20 12:03:00 · 2356 阅读 · 0 评论 -
oracle中的hash join详解
Q9,oracle中的hash join详解。作者: fuyuncat来源: www.HelloDBA.com 一、 hash join概念 hash join(HJ)是一种用于equi-join(而anti-join就是使用NOT IN时的join)的技术转载 2008-03-17 15:55:00 · 3317 阅读 · 0 评论 -
使用集合操作符给嵌套表赋值
从oracle10g开始,允许将多个嵌套表的结果集合到某个嵌套表中(set,multiset union[distinct],multiset intersect,multiset except)。其中set有一个嵌套表传入参数,作用是消除嵌套表中的重复内容;multiset union是将两个嵌套表内容合并起来,加入关键词distinct可以消除重复内容;multiset interse原创 2008-03-18 16:59:00 · 1443 阅读 · 0 评论 -
oracle批量绑定的概念
从oracle9i开始,oracle提供批量绑定关键词forall和bulk collect通过批量绑定技术,极大地加快了数据的处理速度。在不使用批量绑定的时候,为了将嵌套表中的数据插入数据库表中,需要循环执行insert语句,而使用forall关键词可以让所有插入内容集中在一次insert中执行,从而加快了执行速度。Bulk collect子句用于取得批量数据,该子句只能用于select语句、f原创 2008-03-18 20:33:00 · 3259 阅读 · 0 评论 -
oracle的异常处理
oracle提供了预定义例外、非预定义例外和自定义例外三种类型。其中预定义例外用于处理常见的oracle错误;非预定义例外用于处理预定义所不能处理的oracle错误;自定义例外处理与oracle错误无关的其他情况。Oracle代码编写过程中,如果捕捉例外则会在plsql块内解决运行错误,否则将错误传递到调用环境。*常用预定义例外:为了处理各种常见的oracle错误,plsql为开发人员提供原创 2008-03-19 15:36:00 · 4437 阅读 · 2 评论 -
程序包开发相关概念及其应用
包用于将oracle相关的嵌套表、record、varray、记录、游标以及子程序逻辑组合在一起的一种方法。它由包规范(package specification)和包体(package body)两部分组成,其中保规范实际是包与其他应用程序之间的接口,它用于定义包的公用组件,包括常量、变量、游标、过程和函数等;包体中定义的组件只能在包内使用。在user_source数据字典视图中可以查询得到原创 2008-03-20 10:03:00 · 1940 阅读 · 0 评论 -
oracle的多表插入
Q5,oracle的多表插入操作。在业务处理过程中,经常会碰到将业务数据按照条件分别插入不同的数据表的问题,按照传统的处理方式,需要分条件执行多次检索后分别插入不同的表单,这样因为执行了重复的检索造成cpu和内存的浪费,从oracle9i开始引入了insert all关键字支持将某张表的数据同时插入多张表单。语法如下:Insert all Insert_into_clause [valu原创 2008-03-15 10:48:00 · 4085 阅读 · 0 评论 -
oracle的参照变量
Q4,oracle的参照变量:oracle中的参照变量有两种,ref cursor和ref obj_type。是指用于存放数值指针的变量。通过使用参照变量,可以使得应用程序共享相同对象,从而降低占用空间。Ref cursor:使用游标变量时不需要在定义时就指定相应的select语句,从而实现动态的游标操作。Declare Type c1_refcursor is ref curs原创 2008-03-15 10:51:00 · 1854 阅读 · 1 评论 -
oracle的复杂聚合函数
rollup、cube以及grouping sets统计关键字的使用:数据库的group by关键词执行对数据内容的聚合统计。select * from tsalary;1 1 10 开发 10000.002 2 10 测试 10000.003 3 10 管理 10000.004 4原创 2008-03-17 10:07:00 · 5364 阅读 · 2 评论 -
oracle中与子程序(函数或过程)相关的几个视图
Q17,子程序(函数与过程)相关的系统视图:user_resource:保存子程序的源代码的系统视图。User_objects:存储当前用户的所有对象,包括过程、函数、表、视图以及索引等。User_errors:存储当前用户执行过程中曾经的出错代码及出错位置信息。User_dependencies:跟对象直接依赖的其他对象。Deptree/ideptree(直接依赖/间接原创 2008-03-19 17:44:00 · 1231 阅读 · 0 评论 -
connect by rownum造表
之前需要递增的数据都是使用如下的示例方式.select rownumfrom dba_objects , dba_objectswhere rownum 效率相对较差. 今天突然发现有哥们使用了如下方式, 眼前一亮.select rownumfrom dualconnect by rownum原创 2009-11-03 17:13:00 · 1406 阅读 · 0 评论