PL/SQL编程
文章平均质量分 66
junmail
实事求是、坦诚稳重、团结自信、务实创新
展开
-
oracle用户自定义函数
用户定义函数是存储在数据库中的代码块,可以把值返回到调用程序。调用时如同系统函数一样,如max(value)函数,其中,value被称为参数。函数参数有3种类型。IN 参数类型:表示输入给函数的参数。OUT 参数类型:表示参数在函数中被赋值,可以传给函数调用程序。IN OUT参数类型:表示参数既可以传值也可以被赋值。 1、语法格式:SQL语法方式创建的语法格式为:原创 2007-01-08 11:23:00 · 5870 阅读 · 0 评论 -
Oracle 聚集
聚集(cluster)是存储表数据的可选择的方法。一个聚集是一组表,将具有同一公共列值的行存储在一起,并且它们经常一起使用。这些公共列构成聚集码。经常被同时访问的表在物理位置上可以存储在一起。为了将它们存储在一起,就要创建一个簇( c l u s t e r )来管理这些表。表中的数据一起存储在簇中,从而最小化必须执行的I / O次数,改善系统性能。表中相关的列称为簇键(cluster k原创 2009-07-29 22:58:00 · 2757 阅读 · 0 评论 -
Oracle Top N
1.在ORACLE中实现SELECT TOP N 由于ORACLE不支持SELECT TOP语句,所以在ORACLE中经常是用ORDER BY跟ROWNUM的组合来实现SELECT TOP N的查询。简单地说,实现方法如下所示: SELECT 列名1...列名n FROM (SELECT 列名1...列名n FROM 表名 ORDER BY 列名1..转载 2009-07-28 23:15:00 · 1157 阅读 · 0 评论 -
Oracle常用函数整理
1、CEIL(n)函数:取大于等于数值n的最小整数 2、FLOOR(n)函数:取小于等于数值n的最大整数 3、INSTR和INSTRB:查询目标字符串在源字符串中的位置,INSTR是用字符方式,INSTRB是字节方式INSTR方法的格式为INSTR(源字符串, 目标字符串, 起始位置, 匹配序号)例如:INSTR(CORPORATE FLOOR,OR, 3, 2)中,原创 2009-06-04 21:17:00 · 811 阅读 · 0 评论 -
详细讲述Oracle中的to_date参数含义
日期格式参数 含义说明 D 一周中的星期几 DAY 天的名字,使用空格填充到9个字符 DD 月中的第几天 DDD 年中的第几天 DY 天的简写名 IW ISO标准的年中的第几周 IYYY ISO标准的四位年份 YYYY 四位年份 YYY,YY,Y 年份的最后三位,两位,一位 HH 小时,按12小时计 HH24 小时,按24小时计 MI 分 SS转载 2009-09-02 19:42:00 · 983 阅读 · 0 评论 -
自己整理的Oracle语句
1、 利用rowid删除重复的数据delete from tbl a where rowid//这里如果把max换成min的话,前面的where子句中需要把"改为">"原创 2009-10-09 17:21:00 · 2153 阅读 · 0 评论 -
Oracle数据库中的''与NULL的关系
在Oracle数据库中与NULL是等价的。均表示空值,而不是类似其他数据库上表示空串,NULL表示空值。 ORACLE允许任何一种数据类型的字段为空,除了以下两种情况: 1、主键字段(primary key), 2、定义时已经加了NOT NULL限制条件的字段 说明: 1、NULL等价于没有任何值、是未知数。 2、NULL与0、空字符串、空格都不同。原创 2009-11-12 20:00:00 · 1314 阅读 · 0 评论 -
oracle判断对象是否存在
declare v_isexist number(3,0):=0; begin select count(1) into v_isexist from sys.all_objects where owner = TEST and object_type = TABLE and object_name = TAB1; if v_isexist>0原创 2009-12-02 10:35:00 · 3525 阅读 · 1 评论 -
Oracle中大批量删除数据的方法
批量删除海量数据通常都是很复杂及缓慢的,方法也很多,但是通常的概念是:分批删除,逐次提交。下面是我的删除过程,我的数据表可以通过主键删除,测试过Delete和For all两种方法,for all在这里并没有带来性能提高,所以仍然选择了批量直接删除。首先创建一下过程,使用自制事务进行处理:create or replace procedure delBigTab(p转载 2010-03-25 19:40:00 · 1525 阅读 · 1 评论 -
Authid Current_User的使用
我们知道,用户拥有的role权限在存储过程是不可用的。遇到这种情况,我们一般需要显式授权,如grant create table to usera;但这种方法太麻烦,有时候可能需要进行非常多的授权才能执行存储过程,实际上,oracle给我们提供了在存储过程中使用role权限的方法:修改存储过程,加入Authid Current_User时存储过程可以使用role权限。下面来举个例子: SQ转载 2010-05-01 19:43:00 · 1039 阅读 · 0 评论 -
关于Oracle事务的总结
关于Oracle事务的总结1.什么是事务,事务的特性是什么?事务的任务便是使数据库从一种状态变换成为另一种状态,这不同于文件系统,它是数据库所特用的。它的特性有四个:TOM总结为ACID即原子性atomicity:语句级原子性,过程级原子性,事务级原子性一致性consistency:状态一致,同一事务中不会有两种状态隔离性isolation:事务间是互相分离的互不影响(这里可能也有自治事务转载 2010-05-04 16:53:00 · 57991 阅读 · 4 评论 -
Oracle触发器详细介绍
触发器是特定事件出现的时候,自动执行的代码块。类似于存储过程,但是用户不能直接调用他们。功能:1、 允许/限制对表的修改2、 自动生成派生列,比如自增字段3、 强制数据一致性4、 提供审计和日志记录5、 防止无效的事务处理6、 启用复杂的业务逻辑开始create trigger biufer_employees_department_id before insert or update of d原创 2009-07-25 20:48:00 · 2618 阅读 · 0 评论 -
Oracle视图
本人初学Oracle,冒昧的把自己归为Oracle一族,没别的意思,只是想激励自己好好的学习Oracle这个博大精深的数据库。前面的先不说了,从视图开始吧!Oracle的数据库对象分为五种:表,视图,序列,索引和同义词。视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改。视图基于的表称为基表。视图是存储在数据字典里的一条select语句。 通过创建视图可转载 2009-07-22 20:16:00 · 2187 阅读 · 1 评论 -
PL/SQL中游标和游标变量的使用
游标是什么:游标字面理解就是游动的光标。用数据库语言来描述:游标是映射在结果集中一行数据上的位置实体,有了游标用户就可以访问结果集中的任意一行数据了,将游标放置到某行后,即可对该行数据进行操作,例如提取当前行的数据等等。在Oracle9i之前,使用FETCH语句每次只能提取一行数据;从Oracle9i开始,通过使用FETCH…BULK COLLECT INTO语句,每次可以提取多行数据原创 2007-01-11 17:23:00 · 31995 阅读 · 2 评论 -
Oracle中的临时表用法汇总
1 语法 在Oracle中,可以创建以下两种临时表: 1) 会话特有的临时表 CREATE GLOBAL TEMPORARY ( ) ON COMMIT PRESERVE ROWS; 2) 事务特有的临时表 CREATE GLOBAL TEMPORARY ( ) ON COMMIT DELETE ROWS; CREATE GLOBAL TEMPORARY TABLE转载 2007-01-29 11:15:00 · 1356 阅读 · 0 评论 -
Oracle 动态SQL返回单条结果和结果集
Oracle 动态SQL有两种写法:用 DBMS_SQL 或 execute immediate,建议使用后者。试验步骤如下:1. DDL 和 DML/*** DDL ***/begin EXECUTE IMMEDIATE drop table temp_1; EXECUTE IMMEDIATE create table temp_1(name varchar2(8));转载 2007-01-29 10:49:00 · 3443 阅读 · 0 评论 -
Oracle之PL/SQL的变量小结
PLSQL变量有四种类型,分别是: - 标量类型(Scalar) - 复合类型(Composite) - 参照类型(Reference) - LOB类型(Large Object) 1、标量类型:- 只能存放单个数值的变量- 定义时,必须要指定标量的数据类型 1.1常用标量类型(1)VARCHAR2(n)定义可变长度的字符串n指定字符串最大长度n最大值是32767字节使用时必须指定长度当在PLSQ转载 2008-07-22 16:22:00 · 2303 阅读 · 0 评论 -
用SQLPLUS调试返回游标集的Oracle存储过程
CREATE OR REPLACE PACKAGE "TZH"."EMPLOYEES" ASTYPE empcur IS REF CURSOR;PROCEDURE GetEmpRecords(p_cursor OUT empcur); END Employees; /CREATE OR REPLACE PACKAGE BODY "TZH"."EMPLOYEES" AS PR原创 2008-07-22 17:35:00 · 2346 阅读 · 0 评论 -
Oracle异常处理
为了提高应用程序的健壮性,开发人员必须考虑程序可能出现的各种错误,并进行相应的处理.Oracle中异常分为预定义例外,非预定义例外和自定义例外三种.## 处理预定义异常预定义异常是指由PL/SQL所提供的系统异常.当PL/SQL应用程序违反了Oralce规则或系统限制时,则会隐含的触发一个内部异常.# PL/SQL为开发人员提供了二十多个预定义异常: 1.ACCESS_IN原创 2008-10-22 14:41:00 · 1651 阅读 · 1 评论 -
Oracle中的MD5加密
一、技术点 1、 DBMS_OBFUSCATION_TOOLKIT.MD5 DBMS_OBFUSCATION_TOOLKIT.MD5是MD5编码的数据包函数,但偶在使用select DBMS_OBFUSCATION_TOOLKIT.MD5(input_string =>abc) a from Dual时,却有错误提示,看来该函数只能直接在程序包中调用,不能直接应用于SELECT语句。 2、原创 2009-03-20 09:03:00 · 48212 阅读 · 1 评论 -
Oracle MD5加密实现
技术点 :1.1 DBMS_OBFUSCATION_TOOLKIT.MD5 DBMS_OBFUSCATION_TOOLKIT.MD5是MD5编码的数据包函数,但偶在使用select DBMS_OBFUSCATION_TOOLKIT.MD5(input_string =>abc) a from Dual时,却有错误提示,看来该函数只能直接在程序包中调用,不能直接应用于SELECT语句。原创 2009-07-17 22:55:00 · 7841 阅读 · 2 评论 -
oracle decode函数的使用
今天用户要求所有数据为0的不能参与求平均值,思路是avg函数本身就对为空的数据不参与运算所以只要把为零的数据转换成空就可以了,想了一下用case语句可以实现但在网上找了一下发现decode这个函数哈很不错的刚好能满足我的需求下面是他的用法decode(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)该函数的含义如下:IF 条件=值1 THEN RETURN(翻译值1)EL转载 2009-07-17 22:43:00 · 2439 阅读 · 0 评论 -
Oracle存储过程编写及调用一例
1、创建存储过程SQL> create or replace procedure myproc(i_deptno number) is 2 v_dname varchar2(20); 3 begin 4 select dname into v_dname from dept where deptno = i_deptno; 5 dbms_output原创 2009-07-21 23:42:00 · 1024 阅读 · 0 评论 -
Oracle同义词与序列基本使用
一、同义词同义词:同义词是一个对象的替代名称作用:利用同义词可以很方便地操纵不同用户模式下的对象。通过select user from dual查看当前使用的用户。访问其它用户模式下的表:select * from scott.dept; 表示查看scott用户模式下的dept表数据。同义词分为private 和 public,private仅创建的用户可以使用。public则所有用户都可以使用。原创 2009-07-22 21:39:00 · 2110 阅读 · 0 评论 -
Oracle自治事务的介绍
Oracle自治事务的介绍,备查原创 2010-09-19 20:04:00 · 2517 阅读 · 0 评论