Oracle笔记 十一、PL/SQL函数和触发器

简介:
--创建函数
create or replace function add_sal(sSal number)
       return number
is
begin
  if (sSal > 5000) then
    return sSal + 51;
  elsif (sSal > 3000) then
    return sSal + 111;
  else
    return sSal + 222;
  end if;
end;
 
select sal, add_sal(sal) from emp;
 
 
--触发器
create table deptLog(
       uName varchar2(20),
       action varchar2(20),
       dTime date
);
 
--创建触发器
--for each row 可以触发多条,当你的语言影响多少条记录就会触发多少次
create or replace trigger trig_dept2
  after insert or delete or update on dept2/* for each row*/
begin
  if inserting then
    insert into deptLog values(user, 'insert', sysdate);
  elsif updating then
    insert into deptLog values(user, 'update', sysdate);
  elsif deleting then
    insert into deptLog values(user, 'delete', sysdate);
  end if; 
end;
 
select * from dept2;
select * from deptLog;
insert into dept2 values(55, 'SOFTWARE', 'cic');
update dept2 set loc = 'go' where deptno in(30);
delete dept2 where deptno = 55;
 
--触发器
create or replace trigger trig_emp
  after update on dept for each row
begin
  update emp set emp.deptno =: new.deptno where emp.deptno = :old.deptno;
end;
 
update dept set deptno = 11     where deptno = 10;
select * from emp;
 
---语句级触发器
create or replace trigger trg_ins_dept2
before insert
on dept2
begin
     if user not in('SCOTT') then      
       raise_application_error(-20001, '只有SCOTT才能修改该表!');
     end if;
end;
 
禁用、启用触发器
alter trigger tgr_Name disable | enable;
alter table tableName disable all trigger | enable all trigger;





本文转自hoojo博客园博客,原文链接:http://www.cnblogs.com/hoojo/archive/2011/05/03/2035393.html,如需转载请自行联系原作者
目录
打赏
0
0
0
0
60
分享
相关文章
解决大小写、保留字与特殊字符问题!Oracle双引号在SQL中的特殊应用
在Oracle数据库开发中,双引号的使用是一个重要但易被忽视的细节。本文全面解析了双引号在SQL中的特殊应用场景,包括解决标识符与保留字冲突、强制保留大小写、支持特殊字符和数字开头标识符等。同时提供了最佳实践建议,帮助开发者规避常见错误,提高代码可维护性和效率。
23 6
【YashanDB知识库】共享利用Python脚本解决Oracle的SQL脚本@@用法
【YashanDB知识库】共享利用Python脚本解决Oracle的SQL脚本@@用法
【YashanDB知识库】Oracle pipelined函数在YashanDB中的改写
【YashanDB知识库】Oracle pipelined函数在YashanDB中的改写
【YashanDB知识库】yashandb执行包含带oracle dblink表的sql时性能差
【YashanDB知识库】yashandb执行包含带oracle dblink表的sql时性能差
【YashanDB知识库】共享利用Python脚本解决Oracle的SQL脚本@@用法
本文来自YashanDB官网,介绍如何处理Oracle客户端sql*plus中使用@@调用同级目录SQL脚本的场景。崖山数据库23.2.x.100已支持@@用法,但旧版本可通过Python脚本批量重写SQL文件,将@@替换为绝对路径。文章通过Oracle示例展示了具体用法,并提供Python脚本实现自动化处理,最后调整批处理脚本以适配YashanDB运行环境。
如何在 Oracle 中配置和使用 SQL Profiles 来优化查询性能?
在 Oracle 数据库中,SQL Profiles 是优化查询性能的工具,通过提供额外统计信息帮助生成更有效的执行计划。配置和使用步骤包括:1. 启用自动 SQL 调优;2. 手动创建 SQL Profile,涉及收集、执行调优任务、查看报告及应用建议;3. 验证效果;4. 使用 `DBA_SQL_PROFILES` 视图管理 Profile。
[Oracle]面试官:你举例几个内置函数,并且说说如何使用内置函数作正则匹配
本文介绍了多种SQL内置函数,包括单行函数、非空判断函数、日期函数和正则表达式相关函数。每种函数都有详细的参数说明和使用示例,帮助读者更好地理解和应用这些函数。文章强调了字符串操作、数值处理、日期计算和正则表达式的使用方法,并提供了丰富的示例代码。作者建议读者通过自测来巩固学习成果。
57 1
[Oracle]面试官:你举例几个内置函数,并且说说如何使用内置函数作正则匹配
SQL优化-使用联合索引和函数索引
在一次例行巡检中,发现一条使用 `to_char` 函数将日期转换为字符串的 SQL 语句 CPU 利用率很高。为了优化该语句,首先分析了 where 条件中各列的选择性,并创建了不同类型的索引,包括普通索引、函数索引和虚拟列索引。通过对比不同索引的执行计划,最终确定了使用复合索引(包含函数表达式)能够显著降低查询成本,提高执行效率。
Oracle SQL性能优化全面指南
在数据库管理领域,Oracle SQL性能优化是确保数据库高效运行和数据查询速度的关键
1046 6
数据库SQL函数应用技巧与方法
在数据库管理中,SQL函数是处理和分析数据的强大工具

推荐镜像

更多
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等