`
jinliyixi
  • 浏览: 18381 次
  • 性别: Icon_minigender_2
  • 来自: 南京
最近访客 更多访客>>
社区版块
存档分类
最新评论

oracle笔记八(函数+存储过程+包)

阅读更多
函数:(过程和函数的唯一区别是函数总向调用者返回数据,而过程则不返回数据)
1. 创建函数
Create or replace function get_salary(
V_deptno number,emp_count out number)return number
------这里的type只能是类型,不能有长度或大小的定义
Is
V_sum number;
Begin
Select sum(sal),count(*) into v_sum,emp_count from emp
Where deptno=v_deptno;
Return v_sum;
Exception
When no_data_found then
dbms_output.put_line('no data');
when others then
dbms_output.put_line(sqlcode||sqlerrm);
End;
2. 查询函数信息
a). select object_name from user_objects
where object_type=’FUNCTION’;
b). select object_name from user_procedures;
c). select line,text from user_source
where name=’GET_SALARY’;
3. 调用函数方法
declare
   v_sum number;
   v_num number;
begin
-----位置表示法
v_sum:=get_salary(30,v_num);
dbms_output.put_line(v_sum ||','||v_num);

-----名称表示法
v_sum:=get_salary(emp_count=>v_num,v_deptno=>20);
dbms_output.put_line(v_sum ||','||v_num);
-----混合表示法(使用位置表示法所传递的参数必须放在名称表示法所传递的参数前面 )
v_sum:=get_salary(10,emp_count=>v_num);
dbms_output.put_line(v_sum ||','||v_num);
end;
4. 结合select语句调用
select ename,sal ,tax(sal),tax(sal)*sal from emp;

存储过程:
1. 创建过程
create or replace procedure delEmp(
   v_empno emp.empno%type)
is
  no_result exception;
begin
delete from emp where empno=v_empno;
if sql%notfound then
raise no_result;
else dbms_output.put_line(v_empno||'has been deleted');
end if;
exception
when no_result then
dbms_output.put_line('no data');
when others then
dbms_output.put_line(sqlcode||','||sqlerrm); 
end;
2. 调用过程
a). begin
delemp(1234);
end;
b). exec delemp(1234);
c).在sql/plus中调用
set serveroutput on
exec delemp(1234);

包Package:
1. 创建包定义
Create or replace package mypack
Is
C_pi constant number:=3.14;
Function getArea(r number)return number;
End;
2. 创建包体
Create or replace package body mypack
Is
Function getArea(r number)return number
Is
Begin
Return c_pi*r*r;
End;
End;
3. 调用包
a). begin
dbms_output.put_line(mypack.getArea(5));
end;
b).exec mypack.getArea(5);

查看过程的名字及其参数表
Desc mypack.getArea;
分享到:
评论

相关推荐

    oracle笔记存储函数和存储过程

    oracle笔记存储函数和存储过程,有具体的代码案例!存储函数和存储过程的知识笔记!

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

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

    oracle学习笔记2013(+安装、卸载)

    ### Oracle笔记篇 存储过程和存储函数是Oracle数据库编程的重要组成部分。它们允许开发者将复杂的业务逻辑封装在数据库内部,这样不仅可以提高业务执行的效率,还可以减少网络传输的数据量。在笔记中,详细地讲解了...

    oracle笔记+资料.rar

    PL/SQL是Oracle的编程语言,用于编写存储过程、函数、触发器等。资料中可能包含如何使用SQL*Plus和编写PL/SQL程序的实例。 3. **Oracle索引**:索引是提高查询性能的关键,资料可能讲解了B树索引、位图索引、函数...

    Oracle 培训+题目+笔记.rar

    3. **PL/SQL编程**: PL/SQL是Oracle特有的过程化语言,用于编写存储过程、函数、触发器等,增强数据库的逻辑处理能力。 4. **表和索引**: 表是数据存储的基本单元,索引则可以显著提高查询速度。理解如何设计高效的...

    oracle 分析函数学习笔记

    这些函数在处理大数据集时尤其有用,可以高效地完成复杂的统计任务,而无需编写额外的存储过程或应用程序逻辑。 总的来说,熟悉和掌握Oracle的分析函数对于开发人员来说非常重要,特别是在开发需要高效数据分析的...

    李兴华Oracle全部笔记

    其次,笔记可能会深入到Oracle的高级特性,比如PL/SQL编程,这是一种专为Oracle设计的过程化编程语言,用于创建存储过程、函数、触发器等。此外,可能还会涵盖数据库事务处理、并发控制和锁机制,这些都是保证数据...

    MLDN_Oracle学习笔记+源码 李兴华讲解

    3. **PL/SQL编程**:介绍Oracle的PL/SQL编程语言,包括变量声明、流程控制语句、异常处理,以及存储过程和函数的创建和调用。 4. **数据库对象**:涵盖表、视图、索引、触发器、存储过程、游标等数据库对象的创建、...

    达内,tarena,oracle笔记,oraclePPT课件,达内oracle笔记

    学习PL/SQL可以编写存储过程、函数、触发器等,实现更复杂的业务逻辑。笔记可能包括控制结构(如IF-THEN-ELSE、LOOP)、异常处理、游标以及PL/SQL块的结构。 5. **数据库管理**:管理Oracle数据库涉及备份恢复、...

    oracle培训笔记2

    - 其他天数的笔记可能包括存储过程、触发器、索引优化、备份恢复策略等内容。 通过这样的培训,参与者将能够全面掌握Oracle数据库的使用,从基本操作到复杂的数据库设计和性能优化。不断学习和实践是提升Oracle技能...

    第01阶段-基础+进阶-Oracle培训笔记+作业

    6. 存储过程和函数:学习编写存储过程和函数,用于封装复杂的业务逻辑,提高代码复用性和安全性。 接下来,进阶部分的内容可能包括: 1. 分区与分片:了解Oracle的分区技术,如范围分区、列表分区、哈希分区,以及...

    Oracle笔记(基于尚学堂马士兵)

    【Oracle笔记(基于尚学堂马士兵)】 Oracle是一款全球广泛使用的大型关系型数据库管理系统,由美国Oracle公司开发。本笔记主要基于尚学堂马士兵老师的教学内容,深入浅出地介绍了Oracle的基本概念、安装配置、SQL...

    Oracle学习笔记精华版

    笔记可能涉及索引的创建和管理、SQL调优(如使用EXPLAIN PLAN分析查询执行计划)、数据库统计信息的收集、存储优化以及使用Oracle的性能监控工具(如AWR和ASH报告)。 此外,Oracle的安全管理包括用户权限管理、...

    oracle经典笔记

    通过学习,读者可以掌握如何创建存储过程、函数、触发器,以及如何处理异常,理解PL/SQL的块结构和变量声明,这对数据库开发和管理至关重要。 接下来,《PLSQL基础教程-必看.pdf》提供了更基础的PL/SQL知识,包括...

    oracle笔记.rar

    PL/SQL是Oracle特有的过程化SQL语言,用于编写存储过程、函数、包等。学习PL/SQL可以帮助你更好地实现业务逻辑和数据库交互。 综上所述,“Oracle笔记”涵盖了Oracle数据库的基础知识,对于初学者来说是一份宝贵的...

    韩顺平oracle视频笔记

    ### 韩顺平Oracle视频笔记知识点概览 #### 1. Oracle 用户管理 - **概念**:在Oracle数据库中,用户是用来管理访问权限的基本单位。每个用户都可以有自己的模式(schema),其中包含各种对象如表、视图等。 - **创建...

    oracle_sql笔记

    PL/SQL是Oracle的存储过程语言,结合了SQL和过程式编程。它可以创建存储过程、函数、触发器等,实现复杂的业务逻辑和数据库控制。 九、事务处理 在Oracle中,事务是一组SQL语句,被视为一个工作单元。事务处理包括...

    Oracle 笔记 详解 资料 用例

    这份"Oracle笔记详解资料用例"涵盖了Oracle数据库的核心概念、安装配置、SQL语言、表和索引、存储结构、备份恢复、性能优化等多个方面,是学习和掌握Oracle数据库的宝贵资源。 首先,Oracle数据库的基础部分包括...

    Oracle数据库课堂笔记

    以下是对Oracle数据库课堂笔记的详细解析,涵盖了从基础到进阶的重要知识点。 第一讲:Oracle简介 Oracle数据库是由甲骨文公司开发的,提供了一整套数据存储、管理和检索解决方案。它支持多种操作系统和硬件平台,...

    oracle笔记html版本

    首先,Oracle笔记可能涵盖的基础概念包括数据库的结构,如表空间、段、区和块等,这些都是Oracle存储数据的基本单元。表空间是数据库中最大的逻辑存储单位,用于组织和存储数据文件。段是表空间内的逻辑存储结构,如...

Global site tag (gtag.js) - Google Analytics