触发器:存放在数据库中,并被隐含执行的存储过程。

由触发事件,触发条件,触发操作组成。

DML触发器:指定触发器时机(before or after),触发事件(insert  , delete, update),表名,触发类型,触发条件,触发操作

语句触发器:

create [or replace] trigger trigger_name
timing event1 [or event2 ..] on table_name
PL/SQL block;
trigger_name 触发器名
event 事件
table_name 表名
timing 时机

行触发器:

--序列
create sequence seq_fc
increment by
start with
--触发器
create or replace trigger tr_fc
before insert on FundCompany for each row
begin
select to_char('K'||to_char(seq_fc.nextval,'FM00000')) into :new.companyid from dual;
end seq_fc;
insert into FundCompany(Name,Content,Money,State) values('龙腾集团','<CLOB>','',)
select * from FundCompany

管理触发器

1显示触发器信息(user_triggers 数据字典):select * from user_triggers where table_name='';

2禁用触发器(暂时失败):alter trigger trigger_name disable;

3激活触发器(重新生效):alter triggertrigger_name enable;

4禁止或激活表的所有触发器:

alter table table_name disable all triggers;

alter table table_name enable all triggers;

5重新编译触发器: alter trigger trigger_name compile;

6删除触发器:drop trigger trigger_name;

程序包(是oracle 的优点)

包是用于逻辑组合相关的PL/SQL类型(索引,记录类型),PL/SQL项(游标,游标标量)和PL/SQL 子程序(过程,函数)

优点:

简化应用设计

提高应用性能

实现信息的隐藏

子程序的重载 等

包由包头和包体组成,包头也称为包规范。

包规范实际是包与应用程序之间的接口,用于定义包的公用组件(常量,变量,游标,过程,函数等)

公用组件不仅可以在包内使用也可以被其他子程序引用

包体 用于实现包头定义的过程和函数

在包体中,用户可以单独定义私有组件,只能在包内使用

--包头
create or replace package FundManager_pack
is
name varchar2():='张三';
state number(,):=; procedure p_select(fid varchar2);
--添加基金公司
procedure P_insertFundCompany(P_Name varchar2,P_Content clob,P_Money number,P_state number);
end FundManager_pack;
create or replace package body fundmanager_pack
is
--添加基金公司
procedure P_insertFundCompany(P_Name varchar2,P_Content clob,P_Money number,P_state number)
is
begin
insert into FundCompany(Name,Content,Money,State) values(P_Name,P_Content,P_Money,P_state);
end P_insertFundCompany;
end fundmanager_pack;
--添加基金公司
begin
--调用
fundmanager_pack.P_insertFundCompany('鸿通','地方',,);
end;

oracle PL/SQL高级特性的更多相关文章

  1. Oracle PL/SQL 高级编程

    1. 复合数据类型--记录类型 Ø        语法格式 type  类型名 is   record ( 字段1  字段1类型 [not null]:=表达式1; 字段2  字段2类型 [not n ...

  2. Oracle PL/SQL高级应用 存储过程

    有名字的Plsql块,成为Oracle的对象,在以后用到时可以直接调用. CREATE OR REPLACE PROCEDURE myproc(id IN varchar2) IS -IN 为输入参数 ...

  3. Oracle PL/SQL高级应用 视图 同义词 序列

    视图: 视图叫虚表,即是在哪个表上建立的视图,将那个表的数据用一条查询sql语句查出的数据展现在该视图中,对这个视图操作就是只能对该视图中的数据进行操作,该操作也会保存在建立的表中.可以理解为表上表, ...

  4. Oracle PL/SQL高级应用 游标

    游标可以处理SQL语句查询出来的结果集,进行逐条控制,其实游标在内存中申请空间,将自己指向SQL语句查询出来的结果集,有点像指针的感觉,游标使SQL更加的灵活. DECLARE CURSOR mycu ...

  5. Oracle.PL/SQL高级

    一.匿名块 .使用returning ... INTO 保存增删改表数据时的一些列的值 ()增加数据时保存数据 DECLARE v_ename emp.ename%TYPE; v_sal emp.sa ...

  6. oracle学习笔记(十七) PL/SQL高级应用

    PL/SQL高级应用 动态SQL 在PL/SQL中,不能直接执行DDL(create,alter,drop),得使用动态SQL,当然,除了DDL,动态SQL也可以执行DML(select,insert ...

  7. ORACLE PL/SQL编程详解

    ORACLE PL/SQL编程详解 编程详解 SQL语言只是访问.操作数据库的语言,并不是一种具有流程控制的程序设计语言,而只有程序设计语言才能用于应用软件的开发.PL /SQL是一种高级数据库程序设 ...

  8. [顶]ORACLE PL/SQL编程详解之二:PL/SQL块结构和组成元素(为山九仞,岂一日之功)

    原文:[顶]ORACLE PL/SQL编程详解之二:PL/SQL块结构和组成元素(为山九仞,岂一日之功) [顶]ORACLE PL/SQL编程详解之二: PL/SQL块结构和组成元素(为山九仞,岂一日 ...

  9. Oracle+PL+SQL从入门到精通.丁士锋.清华大学出版社.2012

    \t第1篇 pl/sql开发入门第1章 oracle 11g数据库系统1.1 关系型数据库系统介绍1.1.1 什么是关系型数据模型1.1.2 数据库系统范式1.1.3 关系型数据库管理系统1.1.4 ...

随机推荐

  1. UVALive 3027 Corporative Network

    ---恢复内容开始--- Corporative Network Time Limit: 3000MS   Memory Limit: Unknown   64bit IO Format: %lld ...

  2. 如何撤销 PhpStorm/Clion 等 JetBrains 产品的 “Mark as Plain Text” 操作 ?

    当把某个文件“Mark as Plain Text”时,该文件被当做普通文本,就不会有“代码自动完成提示”功能,如下图所示: 但是呢,右键菜单中貌似没有 相应的撤销 操作, 即使是把它删除,再新建一个 ...

  3. synchronized在jvm底层是如何实现的

    目前在Java中存在两种锁机制:synchronized和Lock,Lock接口及其实现类是JDK5增加的内容,其作者是大名鼎鼎的并发专家Doug Lea.本文并不比较synchronized与Loc ...

  4. C和指针 第十四章 习题

    14.1 打印函数 #include <stdio.h> void print_ledger_long(){ printf("function print_ledger_long ...

  5. php之登录功能实现。

    项目默认存在的东西:jquery库[jquery.min.js] 登录功能实现的基本逻辑: 1.书写前台php功能基本页面:(index.php) a.编写基本功能,比如用户名.密码.登录 b.引用j ...

  6. 【Python】自动生成html文件查看指定目录中的所有图片

    获取本目录下的pic子目录中的所有图片(jpg,png,bmp,gif等,此处以jpg文件为例),然后生成一个image.html文件,打开该html文件即可在浏览器中查看pic子目录中的所有图片. ...

  7. jquery之toggleClass应用

    今天记载一下常用的html + css + jquery效果应用 1.html内容 <div class="selBtn screen_btn"> <a id=& ...

  8. Java 集合类 TreeSet、TreeMap

    TreeMap和TreeSet的异同: 相同点: TreeMap和TreeSet都是有序的集合,也就是说他们存储的值都是拍好序的. TreeMap和TreeSet都是非同步集合,因此他们不能在多线程之 ...

  9. CoreAnimation 之CATextLayer

    如果你想在一个图层中显示文字,完全可以借助图层代理直接将Core Graphics写入图层的内容(这就是UILabel的精髓).如果雨果寄宿于图层的视图,直接在图层上操作,其实相当繁琐.你要为每一个显 ...

  10. 浅谈Javascript事件模拟

    事件是用来描述网页中某一特定有趣时刻的,众所周知事件通常是在由用户和浏览器进行交互时触发,其实不然,通过Javascript可以在任何时间触发特定的事件,并且这些事件与浏览器创建的事件是相同的.这就意 ...