oracle PL/SQL高级特性
触发器:存放在数据库中,并被隐含执行的存储过程。
由触发事件,触发条件,触发操作组成。
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高级特性的更多相关文章
- Oracle PL/SQL 高级编程
1. 复合数据类型--记录类型 Ø 语法格式 type 类型名 is record ( 字段1 字段1类型 [not null]:=表达式1; 字段2 字段2类型 [not n ...
- Oracle PL/SQL高级应用 存储过程
有名字的Plsql块,成为Oracle的对象,在以后用到时可以直接调用. CREATE OR REPLACE PROCEDURE myproc(id IN varchar2) IS -IN 为输入参数 ...
- Oracle PL/SQL高级应用 视图 同义词 序列
视图: 视图叫虚表,即是在哪个表上建立的视图,将那个表的数据用一条查询sql语句查出的数据展现在该视图中,对这个视图操作就是只能对该视图中的数据进行操作,该操作也会保存在建立的表中.可以理解为表上表, ...
- Oracle PL/SQL高级应用 游标
游标可以处理SQL语句查询出来的结果集,进行逐条控制,其实游标在内存中申请空间,将自己指向SQL语句查询出来的结果集,有点像指针的感觉,游标使SQL更加的灵活. DECLARE CURSOR mycu ...
- Oracle.PL/SQL高级
一.匿名块 .使用returning ... INTO 保存增删改表数据时的一些列的值 ()增加数据时保存数据 DECLARE v_ename emp.ename%TYPE; v_sal emp.sa ...
- oracle学习笔记(十七) PL/SQL高级应用
PL/SQL高级应用 动态SQL 在PL/SQL中,不能直接执行DDL(create,alter,drop),得使用动态SQL,当然,除了DDL,动态SQL也可以执行DML(select,insert ...
- ORACLE PL/SQL编程详解
ORACLE PL/SQL编程详解 编程详解 SQL语言只是访问.操作数据库的语言,并不是一种具有流程控制的程序设计语言,而只有程序设计语言才能用于应用软件的开发.PL /SQL是一种高级数据库程序设 ...
- [顶]ORACLE PL/SQL编程详解之二:PL/SQL块结构和组成元素(为山九仞,岂一日之功)
原文:[顶]ORACLE PL/SQL编程详解之二:PL/SQL块结构和组成元素(为山九仞,岂一日之功) [顶]ORACLE PL/SQL编程详解之二: PL/SQL块结构和组成元素(为山九仞,岂一日 ...
- 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 ...
随机推荐
- Discuzx系统 CSS 编码规范,CSS属性书写顺序
1. 属性写在一行内,属性之间.属性名和值之间以及属性与“{}”之间须有空格,例如:.class { width: 400px; height: 300px; } 2. 属性的书写顺序: ...
- ReactiveCocoa源码拆分解析(六)
(整个关于ReactiveCocoa的代码工程可以在https://github.com/qianhongqiang/QHQReactive下载) RAC为了实现优雅的信号绑定,可谓使尽浑身解数,不仅 ...
- C++中使用初始化列表的情况
http://blog.csdn.net/iceshirley/article/details/5688696 要理解这个问题,从概念上,我们要知道一点,那就是构造函数的执行过程会分成两个阶段:隐式或 ...
- [BZOJ2761][JLOI2011]不重复数字
[BZOJ2761][JLOI2011]不重复数字 试题描述 给出N个数,要求把其中重复的去掉,只保留第一次出现的数. 例如,给出的数为1 2 18 3 3 19 2 3 6 5 4,其中2和3有重复 ...
- Git 常用命令合集
$ git init 建立git仓库(一般都是在github上新建好,直接克隆到本地) $ git clone **.git 克隆git仓库 $ git add -A ...
- oss文件删除策略
当你想删除oss服务中某个bucket下的文件夹时,文件夹中又包含了太多文件,递归删除太过耗时,又必须删除时,此时就要用oss的文件删除策略,如下所示: OSSClient client = new ...
- dex文件格式二
一. dex文件头 (1) magic value 在DexFile.c dexFileParse函数中 会先检查magic opt 啥是magic opt呢? 我们刚刚从cache目录拷贝出来的 ...
- 【MySQL】 empty table and delete table.
1.MySQL生成删除满足条件的表的sql: 1 SELECT 2 CONCAT( 3 'DROP TABLE ', 4 GROUP_CONCAT(table_name), 5 ';' 6 ) AS ...
- jstl 简单实践
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"% ...
- iOS 编码转换
- (NSString *)SaveFileToDocuments:(NSString *)url { // NSString *url = @"http://172.28.250.70/a ...