`
jiang_dlut
  • 浏览: 6746 次
  • 性别: Icon_minigender_1
  • 来自: 大连
最近访客 更多访客>>
社区版块
存档分类
最新评论

Oracle触发器+包+过程+函数

阅读更多
使用PL/SQL针对Scott模式中的数据完成以下任务:
1. 编写一个数据库触发器,当任何时候某个部门从"dept"中删除时,该触发器将从"emp"表中 删除该部门的所有雇员。
2. 编写一个数据包,它有两个函数和两个过程以操作"emp"表。该数据包要执行的任务为:
①插入一个新雇员;
②删除一个现有雇员;
③显示指定雇员的整体薪水;
④显示指定雇员所在部门名称。
---------------------------------------------------------
1.create or replace trigger Trigger_dept_emp
  before delete on dept 
  for each row
begin
  delete from emp where deptno=:old.deptno;
end Trigger_dept_emp;
/
2.create or replace package Emp_Operate is

procedure insert_emp(   P_EMPNO NUMBER,                                                                      
                        P_ENAME VARCHAR2,
                        P_JOB VARCHAR2,
                        P_MGR NUMBER,
                        P_HIREDATE VARCHAR2,
                        P_SAL NUMBER,
                        P_COMM NUMBER,
                        P_DEPTNO NUMBER);
procedure delete_emp(P_EMPNO NUMBER);

function show_sal(F_EMPNO in NUMBER)
   return NUMBER;
  
function show_dname(F_EMPNO in NUMBER)  
  return varchar2;
end Emp_Operate;
/
create or replace package body Emp_Operate is
  procedure insert_emp(   P_EMPNO NUMBER,                                                                      
                          P_ENAME VARCHAR2,
                          P_JOB VARCHAR2,
                          P_MGR NUMBER,
                          P_HIREDATE VARCHAR2,
                          P_SAL NUMBER,
                          P_COMM NUMBER,
                          P_DEPTNO NUMBER) is
  begin
      insert into emp values(P_EMPNO,P_ENAME,P_JOB,P_MGR,to_date(P_HIREDATE,'yyyy-mm-dd'),P_SAL,P_COMM,P_DEPTNO);
  end insert_emp;
 
  procedure delete_emp(P_EMPNO NUMBER) is
    begin
      delete from emp where empno=P_EMPNO;
    end delete_emp;
   
  function show_sal(F_EMPNO in  NUMBER)
   return NUMBER is
   F_SAL NUMBER;
  begin
    select SAL INTO F_SAL from EMP where EMPNO=F_EMPNO;
    return F_SAL;
  end show_sal;
  function show_dname(F_EMPNO in NUMBER)
   return   varchar2 is
   F_DNAME varchar2(20);
   begin
     select DNAME into F_DNAME from DEPT,EMP where DEPT.DEPTNO=EMP.DEPTNO AND EMP.EMPNO=F_EMPNO;
     return F_DNAME;
  end show_dname;
end Emp_Operate;
/
调用方法不再赘述
分享到:
评论

相关推荐

    oracle 触发器实时调用java 中http接口

    总之,"Oracle触发器实时调用Java中HTTP接口"是一个数据库与应用程序实时通信的示例,涉及Oracle的触发器、存储过程和UTL_HTTP包,以及Java HTTP服务器的设计和实现。这样的设计需要对Oracle PL/SQL和Java网络编程有...

    Oracle触发器与存储过程高级编程-第3版itpub.rar

    《Oracle触发器与存储过程高级编程》第3版是一本深入探讨Oracle数据库中触发器和存储过程技术的专业书籍。在Oracle数据库系统中,触发器和存储过程是数据库管理员和开发人员进行复杂业务逻辑处理和数据管理的重要...

    oracle触发器调用存储过程

    "Oracle触发器调用存储过程" Oracle触发器可以调用存储过程,以实现业务逻辑的自动化执行。然而,在触发器中调用存储过程时,需要注意事务的隔离性,以避免出现锁定和死锁的问题。Oracle自治事务(Autonomous ...

    关于oracle触发器before和after的应用问题

    触发器类似于过程和函数,具有声明、执行和异常处理的部分,但其独特之处在于由特定事件驱动,无需外部调用即可自动执行。这些事件通常包括对数据库表的INSERT、UPDATE和DELETE操作,以及数据库的启动与关闭等系统...

    oracle函数触发器游标等几个小例子

    3. **Oracle触发器**:触发器是一种特殊的存储过程,会在特定的数据库事件(如INSERT、UPDATE或DELETE)发生时自动执行。`V_InsertEquip.sql`可能包含一个插入触发器的示例,这种触发器在向特定表中插入新数据时被...

    个人亲测oracle触发器调用java程序

    Oracle触发器调用Java程序 Oracle触发器是Oracle数据库中的一种机制,可以在数据库中执行特定的操作。在本文中,我们将介绍如何使用Oracle触发器调用Java程序。 一、加载Java程序 首先,我们需要将Java程序加载到...

    oracle触发器的创建与使用

    【Oracle触发器的创建与使用】是数据库管理中不可或缺的一部分,尤其在Oracle数据库系统中,触发器扮演着关键角色。触发器是一种存储过程,当特定的数据库事件发生时(如INSERT、UPDATE或DELETE操作),它会被自动...

    存储过程、函数、触发器和包

    存储过程、函数、触发器和包

    oracle触发器与存储过程高级编程

    4. **包(Packages)**:包是存储过程和函数的集合,可以包含公共变量、常量和类型定义,提供了更高级的代码组织和封装。 5. **索引优化**:合理创建和使用索引可以显著提升触发器和存储过程的执行效率,但过多的...

    oracle笔记(存储过程函数触发器游标流程控制等)

    这份"oracle笔记(存储过程函数触发器游标流程控制等)"涵盖了Oracle数据库管理中的关键知识点,包括但不限于以下几个方面: 1. **存储过程与函数**:存储过程是预编译的SQL语句集合,用于执行特定任务。它们可以提高...

    oracle 触发器、存储过程、函数、包

    Oracle数据库系统是企业级数据管理的重要工具,其中的触发器(Triggers)、存储过程(Stored Procedures)、函数(Functions)和包(Packages)是其核心的编程元素,用于实现复杂的业务逻辑和数据处理。以下是这些...

    oracle触发器

    ### Oracle触发器详解 在Oracle数据库管理中,触发器是一种非常强大的工具,它允许你在特定的数据库事件(如数据插入、更新或删除)发生时自动执行预定义的SQL语句或PL/SQL代码块。这使得数据库能够在无需外部程序...

    Oracle触发器与存储过程高级编程

    文件"Oracle触发器与存储过程高级编程.pdf"很可能是这本书或教程的电子版,它会详细讲解触发器和存储过程的各种高级特性,包括但不限于:触发器的时间线(Before/After)、级联触发、触发器中的事务控制、存储过程的...

    数据库oracle触发器课件

    在Oracle数据库中,子程序(过程和函数)可以存储在数据字典中,成为存储子程序,也可以作为局部子程序在PL/SQL语句块内部定义。存储子程序在创建后被编译成伪代码(p-code)存储在数据库中,可以被具有EXECUTE权限...

    Oracle9i+PL_SQL从入门到精通

    此外,还会涵盖如何编写存储过程、函数、包,以及触发器的使用,这些都是数据库开发者日常工作中不可或缺的部分。通过实际案例,读者可以学习如何利用PL/SQL进行数据处理、业务逻辑实现以及性能优化。 书中可能还会...

    开发篇之Oracle触发器心得

    Oracle触发器是数据库中的一个重要组成部分,它们允许开发者在特定的数据操作发生时...在开发过程中,理解并掌握这些知识点对于高效、无误地利用Oracle触发器至关重要,有助于提升数据库管理和应用程序的性能及稳定性。

    oracle高级语法(事物、函数、存储过程、触发器、异常)[参照].pdf

    Oracle 高级语法是指在 Oracle 数据库管理系统中使用的高级语法结构,包括事务、函数、存储过程、触发器、异常等。这些语法结构是 Oracle 数据库开发和管理的核心内容,对于数据库开发者和管理员来说是必备的知识。 ...

    oracle 触发器方式实现行ID自增加

    本文将深入探讨如何使用Oracle触发器来实现行ID的自增加。 首先,我们得了解什么是触发器。在Oracle中,触发器是一种数据库对象,它可以在特定的数据库操作(如INSERT、UPDATE或DELETE)发生时自动执行预先定义的...

Global site tag (gtag.js) - Google Analytics