![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PL/SQL
文章平均质量分 75
cunxiyuan108
这个作者很懒,什么都没留下…
展开
-
Oracle 外连接和 (+)号的用法
<br />对于外连接,Oracle中可以使用“(+)”来表示,9i可以使用LEFT/RIGHT/FULL OUTER JOIN,下面将配合实例一一介绍。<br />1. LEFT OUTER JOIN:左外关联 SELECT e.last_name, e.department_id, d.department_name <br />FROM employees e <br />LEFT OUTER JOIN departments d <br />ON (e.department_id = d.depar原创 2010-08-10 20:39:00 · 922 阅读 · 0 评论 -
over(Partition by...) 详细用法
<br />常用的分析函数如下所列:<br />Pw"XG*J rj.W0row_number() over(partition by ... order by ...)<br />H*v}I*Z/_:SkP0rank() over(partition by ... order by ...)CNOUG博客首页.Z&]q /7yzC'K<br />dense_rank() over(partition by ... order by ...)CNOUG博客首页 Lz] w9c0G原创 2011-05-24 10:55:00 · 6670 阅读 · 0 评论 -
Oracle 语法之 OVER (PARTITION BY ..) 及开窗函数
oracle的分析函数over 及开窗函数一:分析函数overOracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是对于每个组返回多行,而聚合函数对于每个组只返回一行。 下面通过几个例子来说明其应用。 1:统计某商店的营业额。 date sale1 202 153 144 185 30规则:按天统计:每天都统计前面几天的总额得到的结果:DATE SALE SUM----- -------- ------1 20 20 --1天 2 15 35 --1天+2天原创 2011-05-09 19:31:00 · 926 阅读 · 0 评论 -
oracle pl/sql(bulk collect用法)
通过bulk collect减少loop处理的开销 采用bulk collect可以将查询结果一次性地加载到collections中。而不是通过cursor一条一条地处理。可以在select into,fetch into,returning into语句使用bulk collect。注意在使用bulk collect时,所有的into变量都必须是collections.转载 2011-12-12 13:22:56 · 990 阅读 · 0 评论 -
傅老师课堂:Oracle高级查询之OVER (PARTITION BY ..)
为了方便大家学习和测试,所有的例子都是在Oracle自带用户Scott下建立的。注:标题中的红色order by是说明在使用该方法的时候必须要带上order by。一、rank()/dense_rank() over(partition by ...order by ...)现在客户有这样一个需求,查询每个部门工资最高的雇员的信息,相信有一定oracle应用知识的同学都能写出下面的转载 2014-03-24 13:34:51 · 795 阅读 · 0 评论 -
傅老师课堂:Oracle高级查询之GROUP BY
为了方便大家学习和测试,所有的例子都是在Oracle自带用户Scott下建立的。现在客户的需求是统计部门中每种工作的工资总额,最后还需要统计所有人的工资总数,相信这样的需求对大家来说还是比较简单的,很快就能写出SQL语句,如下:[sql] view plaincopyselect deptno, job, sum(sal) from scott.emp g转载 2014-03-24 13:37:39 · 834 阅读 · 0 评论 -
傅老师课堂:Oracle高级查询之CONNECT BY
为了方便大家学习和测试,所有的例子都是在Oracle自带用户Scott下建立的。Oracle中的select语句可以用start with ... connect by prior ...子句实现递归查询,connect by 是结构化查询中用到的,其基本语法是:select ... from where start with connect by [prior] 下转载 2014-03-24 13:41:13 · 931 阅读 · 0 评论 -
傅老师技巧:巧用rownum查询连续季度
下面可以说是这类查询的一个模版SQL,如果大家在工作中碰到类似的问题,可以借助该SQL去解决,希望能帮助到大家。[sql] view plaincopyselect count(1) from (select t.*, rownum rnum from (select t.quarter from 表名转载 2014-03-24 13:42:35 · 891 阅读 · 0 评论 -
傅老师课堂:Oracle高级应用之去重聚合函数
本例实现的是连接字符串,并且去掉重复的项。聚合函数实际上就是一个对象:[sql] view plaincopycreate or replace type distinct_concat_type as object ( --对象变量 cat_string varchar2(500), --对象初始化 static function ODCIAgg转载 2014-03-24 13:43:51 · 1776 阅读 · 0 评论 -
傅老师课堂:Oracle高级应用之物化视图(materialized view)
原文地址:http://hi.baidu.com/gukeming888/blog/item/2682f69481c8237154fb9662.html物化视图 (Materialized View),在以前的Oracle版本中称为快照(Snapshot)。Oracle的物化视图提供了强大的功能,可以用于预先计算并保存表连接或聚集等耗时较多的操作的结果,这样在执行查询时,就可以避免进行这些转载 2014-03-24 13:46:01 · 1091 阅读 · 0 评论 -
傅老师课堂:Oracle高级应用之合并MERGE
为了方便大家学习和测试,所有的例子都是在Oracle自带用户Scott下建立的。MERGE是什么?这么厉害的东西你都不知道,你这学生是怎么学习的?老师不给你讲你就不会自学了吗?哎!可怜天下老师心啊,罢了罢了,老师现在给你好好讲一下吧。MERGE是Oracle9i新增的语法,中文意思是“合并”,那合并什么呢?它能合并INSERT和UPDATE在一条SQL语句中执行,是不是很牛X?!还有更转载 2014-03-24 13:46:41 · 1377 阅读 · 0 评论 -
oracle xmltype 创建 、插入、更新、查找
[文章摘要]介绍了oracle9i的xmltype数据类型的基本使用包括:建立含有xmltype数据类型的表插入(insert)数据查询(select)数据更新(update)数据添加超过4k字节的xml文档到xmltype型字段适合初学者。 关键词: oracle9i xmltypeoracle从9i开始支持一种新的数据类型---- xmltype,用于存转载 2014-05-06 17:19:36 · 4587 阅读 · 0 评论 -
over partition by与group by 的区别
<br />over partition by 与 group by 都是与统计类函数用,这两个有什么区别呢?<br />目前我只知道一个这样的区别:<br />比如有一张表saraly:CREATE TABLE SALARY AS SELECT 'A' NAME,10 DEPT,1000 SALARY FROM DUAL UNION ALL SELECT 'B',10,2000 FROM DUAL UNION ALL SELECT 'C' ,20,1500 FROM DUAL UNION ALL SELE原创 2011-05-24 10:54:00 · 6326 阅读 · 0 评论 -
PRAGMA AUTONOMOUS_TRANSACTION自治事务应用
<br />PRAGMA AUTONOMOUS_TRANSACTION<br />当前的存储过程作为已有事务的子事务运行,子事务的commit,rollback操作不影响父事务的状态<br />可以用于<br />(1)匿名块<br />(2)触发器<br />(3)存储过程<br /> 例子:<br />procedure addRowAutonomous( pID in TLOG.id%type, pLDate in TLOG.ldate%type, pL原创 2010-11-18 10:35:00 · 3296 阅读 · 0 评论 -
oracle 外连接的一个实例
有四个表:员工分配表:per_all_assignments_f员工职务表:per_jobs员工职务多语言表:per_jobs_tl员工职位表:hr_locations_all_tl 要求:查出所有的员工的分配记录,包括没有职务和职位的记录 sql如下: SELECT ass.assignment_id, ass.person_id, ass.assignment_number, ass.job_id, ass.position_id,原创 2010-08-10 20:52:00 · 1367 阅读 · 1 评论 -
主数据同步涉及到的表
1.组织主数据: 使用的表:hr_all_organization_units、hr_locations_all 和 hr_locations_all_tl 查询的sql: SELECT hou.organization_id, hou.name, la.location_code, la.country, la.address_line_1, la.add原创 2010-08-12 00:06:00 · 3738 阅读 · 0 评论 -
在Oracle中使用触发器
一. 触发器触发器是一个命名的程序单元,用来回应数据库中所发生的事件。根据发生事件的不同,触发器分为DML Triggers, DDL Triggers, Database Event Triggers, INSTEAD OF Triggers, AFTER SUSPEND Triggers, Maintaining Triggers .二. 功能1. 对表作修改时进行验证2. 数据库维护自动化3. 对数据库的管理操作进行细粒度的控制三. 功能举例1. 允许/限制对表的修改2. 自动生成派生列,比如自增字原创 2010-08-12 00:58:00 · 1243 阅读 · 0 评论 -
oracle中的exists和not exists和in用法
<br />有两个简单例子,以说明 “exists”和“in”的效率问题<br /> 1) select * from T1 where exists(select 1 from T2 where T1.a=T2.a) ;<br /> T1数据量小而T2数据量非常大时,T1<<T2 时,1) 的查询效率高。<br /> 2) select * from T1 where T1.a in (select T2.a from T2) ;<br /> T1数据量非常大而T2数据量小时,T1>>T2 时,2原创 2010-08-12 13:52:00 · 992 阅读 · 0 评论 -
oracle日期格式总结
<br />在oracle中处理日期大全 <br />TO_DATE格式 <br />Day: <br />dd number 12 <br />dy abbreviated fri <br />day spelled out friday <br />ddspth spelled out, ordinal twelfth <br />Month: <br />mm number 03 <br />mon abbreviated mar <br />month spelled out march <br /转载 2010-08-15 02:27:00 · 2362 阅读 · 0 评论 -
PLSQL常用方法汇总
<br />在SQLPLUS下,实现中-英字符集转换<br />alter session set nls_language='AMERICAN';<br />alter session set nls_language='SIMPLIFIED CHINESE'; <br />主要知识点:<br />一、有关表的操作<br />1)建表<br />create table test as select * from dept; --从已知表复制数据和结构<br />create table test as转载 2010-08-15 02:42:00 · 665 阅读 · 0 评论 -
PL/SQL最差实践
<br />1. 超长的PL/SQL代码 <br /> 影响:可维护性,性能<br /> 症状:<br /> 在复杂的企业应用中,存在动辄成百上千行的存储过程或上万行的包。<br /> 为什么是最差:<br /> 太长的PL/SQL代码不利于阅读,第三方工具在调试时也会出现代码行混乱等问题。PL/SQL存储对象(存储过程、包、函数、触发器等)行数上限约为6000000行,但实际工作中,当包大小超过5000行就会原创 2010-08-15 02:52:00 · 878 阅读 · 0 评论 -
Oracle中Decode()函数使用技巧
<br />DECODE函数是ORACLE PL/SQL是功能强大的函数之一,目前还只有ORACLE公司的SQL提供了此函数,其他数据库厂商的SQL实现还没有此功能。DECODE有什么用途呢?先构造一个例子,假设我们想给智星职员加工资,其标准是:工资在8000元以下的将加20%;工资在8000元以上的加15%,通常的做法是,先选出记录中的工资字段值? select salary into var-salary from employee,然后对变量var-salary用if-then-else或choose转载 2010-08-18 00:11:00 · 776 阅读 · 0 评论 -
oracle 日期转换格式 函数
<br />在网上看见不少oracle新学者对oracle的时间格式很烦,经常是设计了一个带时间字段的表之后,向表插入数据失败。回想起自己刚开始学习oracle时,也对这个时间格式摸不着头脑,虽然是小小的问题,高手们不屑于讨论,但对初学者来讲,这也是一个不大不小的坎,没找到门路的话, 可能几天都过不去,其实就是一层窗户纸,没什么难的。这里做一个简单的小结,因水平有限,请高手补充指正。 <br /> 1 oracle对时间格式的数据存贮<br /> oracle数据库中存放时间格式的数据,是以or转载 2010-09-03 11:39:00 · 1772 阅读 · 0 评论 -
Oracle 子程序参数模式,IN,OUT,NOCOPY
Oracle 子程序参数模式主要有IN,OUT,NOCOPY,IN和OUT可以组合,OUT和NOCOPY也可以组合使用.IN主要用于传入参数,可以是变量,常量,表达式,在子程序内部不能改变其值.DECLAREn NUMBER := 10;PROCEDURE do_something (n1 IN NUMBER) ISBEGINdbms_output.put_line(n1); -- prints 10--n1:=20; --illegal assignment.原创 2010-10-13 11:46:00 · 1000 阅读 · 0 评论 -
Chr()和chrb()的含义
Chr(charcode) 必要的 charcode 参数是一个用来识别某字符的 Long。 charcode:ASCII码 每个字都拥有自己的ASCII 要知道某一个字的ASCII码,编写一段VB程序: Msgbox cstr(asc(要知道的字符,要用""括起来)) 这句代码可以告诉你。 此函数很有用,一些输入法打不出来的字可以用它生成(要知道这字的ASCII)0 到 31 之间的数字与标准的非打印 ASCII 代码相同。例如,Chr(10) 可以返回换原创 2010-11-05 14:17:00 · 11284 阅读 · 0 评论 -
超级牛皮的oracle的分析函数over(Partition by...) 及开窗函数
http://zonghl8006.blog.163.com/blog/static/4528311520083995931317/ over(Partition by...) 一个超级牛皮的ORACLE特有函数。天天都用ORACLE,用了快2年了。最近才接触到这个功能强大而灵活的函数。真实惭愧啊!oracle的分析函数over 及开窗函数一:分析函数over转载 2015-02-03 12:31:49 · 1560 阅读 · 0 评论