Fork me on GitHub

随笔分类 -  PL/SQL

PL/SQL
摘要:表分区:应用场景:如数据量比较大的表,比如2G的表,可以分20块来查询肯定比不分块查询速度快区间分区:常常用于日期字段的分区less than 是不包括这()里的值小于的意思示例一、创建区间分区--创建表CREATE TABLE drawlist( draw_dt DATE ... 阅读全文
posted @ 2015-01-14 05:01 森林森 阅读(884) 评论(0) 推荐(0) 编辑
摘要:tablespace 表空间可以省略B树索引反向键索引函数索引位图索引删除索引B树索引示例一、创建一张表并使用PL/SQL的数据生成器导入10万条记录--创建储户表create table depositor ( actid INTEGER n... 阅读全文
posted @ 2015-01-14 01:57 森林森 阅读(953) 评论(0) 推荐(0) 编辑
摘要:序列的作用许多的数据库之中都会为用户提供一种自动增长列的操作序列(Sequence)可以自动的按照即定的规则实现数据的编号操作序列的完整创建语法CREATE SEQUENCE 序列名称 [ INCREMENT BY 步长 ] [ START WITH 开始值 ] ... 阅读全文
posted @ 2015-01-13 18:14 森林森 阅读(1155) 评论(0) 推荐(1) 编辑
摘要:复合触发器复合触发器是在Oracle 11g之后引入进来的一种新结构的触发器,复合触发器既是表级触发器又是行级触发器。在之前针对于不同级别的触发器,如果要在一张数据表上完成表级触发(BEFORE和AFTER)与行级触发(BEFORE和AFTER)则需要编写四个触发器才可以完成,而有了复合触发器之后,... 阅读全文
posted @ 2015-01-13 17:09 森林森 阅读(1922) 评论(0) 推荐(0) 编辑
摘要:系统触发器系统触发器用于监视数据库服务的打开、关闭、错误等信息的取得,或者是监控用户的行为操作等。如果要创建系统触发器,可以使用如下的语法CREATE [OR REPLACE] TRIGGER 触发器名称 [BEFORE | AFTER] [数据库事件] ON [DATABASE | SCHE... 阅读全文
posted @ 2015-01-13 15:47 森林森 阅读(1324) 评论(0) 推荐(1) 编辑
摘要:定义记录类型TYPE 类型名称 IS RECORD (成员名称 数据类型 [[NOT NULL] [:= 默认值] 表达式] ,...成员名称 数据类型 [[NOT NULL] [:= 默认值] 表达式]) ; 示例一、记录类型接收查询返回结果--使用记录类型接收查询返回结果DECLARE V_E... 阅读全文
posted @ 2015-01-13 01:01 森林森 阅读(991) 评论(0) 推荐(0) 编辑
摘要:INSTEAD OF触发器对于简单视图,可以直接执行INSERT,UPDATE和DELETE操作但是对于复杂视图,不允许直接执行INSERT,UPDATE和DELETE操作。为了在具有以上情况的复杂视图上执行DML操作需要征用触发器来完成--创建复杂视图CREATE OR REPLACE VIEW ... 阅读全文
posted @ 2015-01-12 23:16 森林森 阅读(11632) 评论(0) 推荐(1) 编辑
摘要:视图视图是从一个或几个实体表(或视图)导出的表。它与实体表不同,视图本身是一个不包含任何真实数据的虚拟表。数据库中只存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的实体表中。所以实体表中的数据发生变化,从视图中查询出的数据也就随之改变了。从这个意义上讲,视图就像一个窗口,通过它可以看到... 阅读全文
posted @ 2015-01-12 21:56 森林森 阅读(1120) 评论(0) 推荐(0) 编辑
摘要:REFERENCING子句:使用“:new.字段”或者是“:old.字段”标记不清,那么也可以通过REFERENCING子句为这两个标识符设置别名,例如可以将“:new”设置为:emp_new,或者将“:old”设置为:emp_old。create or replace trigger myempa... 阅读全文
posted @ 2015-01-12 02:03 森林森 阅读(1340) 评论(0) 推荐(1) 编辑
摘要:行级DML触发器每当一条记录出现更新操作时进行触发操作定义时要定义FOR EACH ROW使用":old.字段"和":new.字段"标识符No.触发语句 :old字段:new字段1INSERT 未定义,字段内容为NULLINSERT操作结束后,为增加数据值2UPDATE更新数据前的原始值UPDATE... 阅读全文
posted @ 2015-01-12 00:59 森林森 阅读(735) 评论(0) 推荐(0) 编辑
摘要:DML触发器(语句触发器)由DML语句进行触发,当用户执行了INSERT,UPDATE,DELETE操作时就会触发操作示例一、只有在每个月的10日才允许办理,新员工入职与离职,其他时间不允许增加和删除员工数据--建立表CREATE TABLE myemp AS SELECT * FROM emp;-... 阅读全文
posted @ 2015-01-11 22:11 森林森 阅读(2310) 评论(0) 推荐(0) 编辑
摘要:语法:CREATE [ OR REPLACE ] TRIGGER trigger_name:创建一个触发器,设置名称,如果选择了OR REPLACE,则表示如果已经有这个触发器就替换[BEFOR | AFTER]:指的是触发器的触发日间,在操作之间就BEFORC,在操作之后就AFTER触发INSTE... 阅读全文
posted @ 2015-01-11 20:42 森林森 阅读(1022) 评论(0) 推荐(0) 编辑
摘要:Dbms_Output包No.子程序名称描述1enable打开缓冲区,当用户使用“SET SERVEROUTPUT ON”命令时,自动调用此语句2disable关闭缓冲区,当用户使用“SET SERVEROUTPUT OFF”命令时,自动调用此语句3put将内容保存到缓冲区中,不包含换行符,等执行p... 阅读全文
posted @ 2015-01-11 20:15 森林森 阅读(837) 评论(0) 推荐(0) 编辑
摘要:示例一、根据输入的部门编号找到这个部门的所有员工首先创建包,定义包规范create or replace package getemp_pkg is FUNCTION getemp_fun(p_dno dept.deptno%type) RETURN SYS_REFCURSOR; --返回弱类型游... 阅读全文
posted @ 2015-01-11 18:21 森林森 阅读(424) 评论(0) 推荐(0) 编辑
摘要:函数(存储函数)也是一种较为方便的存储结构,用户定义函数可以被SQL语句或者PL/SQL直接调,函数和过程最大的区别在于,函数可以有返回值,而过程只能依靠OUT 或者IN OUT返回数据定义函数语法:CREATE [OR REPLACE] FUNCTION 函数([参数,...]])RETURN 返... 阅读全文
posted @ 2015-01-11 04:13 森林森 阅读(949) 评论(0) 推荐(0) 编辑
摘要:存储过程指的是在大型数据库系统中专门定义的一组SQL语句集,它可以定义用户操作参数,并且存在于数据库中,当使用时直接调用即可存储过程=过程的声明+PL/SQL块定义过程语法:CREATE [OR REPLACE] PROCEDURE 过程名称([参数名称[参数模式] NOCOPY 数据类型 [参数名... 阅读全文
posted @ 2015-01-11 01:49 森林森 阅读(5447) 评论(2) 推荐(4) 编辑
摘要:dbms_sql程序包dbms_sql程序包是系统提供给我们的另一种使用动态SQL的方法:使用DBMS_SQL包实现动态的SQL的步骤如下:1.将要执行的SQL语句或者一个语句放到一个字符串变量中2.使用DBMS_SQL包的parse过程来分析该字符串3.使用DBMS_SQL包的bind_varab... 阅读全文
posted @ 2015-01-09 21:59 森林森 阅读(1107) 评论(0) 推荐(1) 编辑
摘要:动态SQLEXECUTE IMMEDIATE 动态SQL字符串 [BUCK COLLECT] INTO 自定义的变量,,|记录类型USING [IN |OUT|IN OUT]绑定的参数][RETURNING |RETURN ][BULK COLLECT]INTO 绑定参数示例1--根据用记输入的员工... 阅读全文
posted @ 2015-01-09 18:56 森林森 阅读(544) 评论(0) 推荐(0) 编辑
摘要:行级锁定和表级锁定:行级锁定:当用户执行了,INSERT,UPDATE,DELETE及SELECT FOR UPDATE语句时,ORACLE将隐式的实现记录的锁定,如果事务没有提交,回滚,就一直在锁定状态,一直到事务提交后,才会将数据锁释放表级锁定:表级锁定需要用户明确的使用LOCK TABLE语句... 阅读全文
posted @ 2015-01-08 22:03 森林森 阅读(450) 评论(0) 推荐(0) 编辑
摘要:事务:一种机制,一个操作序列,是数据库工作的逻辑单元一个或者多个完成一组相关行为的SQL语句组成一个不可分割的工作逻辑单元事务的概念: 一个不可分割的工作逻辑单元,保证数据库的完整性事务的特性:简称ACID属性原子性:(Atomicity): 事务是一个完整的操作,事务的各步操作是不可分的(原子的)... 阅读全文
posted @ 2015-01-08 19:03 森林森 阅读(2552) 评论(0) 推荐(0) 编辑