【Oracle 存储过程和存储函数】 (3) 存储函数

例子:查询某个员工的年收入

 1 --存储函数:查询某个员工的年收入
 2 create or replace function queryempincome(eno in number)
 3 return number
 4 as
 5     --定义变量保存员工的薪水和奖金
 6     psal emp1.sal%type;
 7     pcomm emp1.comm%type;
 8
 9 begin
10     --得到该员工的月薪和奖金
11     select sal,comm into psal,pcomm from emp1 where empno=eno;
12
13     --直接返回年收入
14     return psal*12+nvl(pcomm,0);
15 end;

结果:

原文地址:https://www.cnblogs.com/CPU-Easy/p/10906950.html

时间: 2024-10-05 04:29:40

【Oracle 存储过程和存储函数】 (3) 存储函数的相关文章

Oracle 存储过程定义和优点及与函数区别

定义: 存储过程(Stored Procedure )是一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中.用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它.存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程. 存储过程是由流控制和SQL 语句书写的过程,这个过程经编译和优化后存储在数据库服务器中,应用程序使用时只要调用即可.在ORACLE 中,若干个有联系的过程可以组合在一起构成程序包. 优 点: 1.(预编译)存储过程只在创造

oracle存储过程和存储函数&触发器

oracle存储过程和存储函数 指存储在数据库中供所有用户程序调用的子程序叫存储过程,存储函数 存储过程和存储函数的相同点:完成特定功能的程序 存储过程和存储函数的区别:是否用return语句返回值 =========================创建和使用存储过程============================= 用create procedure命令建立存储过程和存储函数 语法: create [or replace] procedure 过程名(参数列表) as PLSQL子程序

oracle存储过程和自定义函数

create [or replace] PRocedure 过程名(参数列表) AS PLSQL 子程序体; 存储过程写完之后,要调用这个存储过程; 有两种方法: 1.exec 存储过程名(); 2.PL/SQL begin 存储过程名(); end; / 如何调试和运行PL/SQL 语句; 进入debeg 模式 函数(Function)为一命名的存储程序;可带参数,并返回一计算值:用PL/SQL 语句的写的程序; 函数和过程的结构类似,但是必须有一个RETURN 子句,用于返回函数值; cre

c++成员函数的存储方式---11

原创博客:转载请标明出处:http://www.cnblogs.com/zxouxuewei/ 成员函数属于一个类的成员,出现再类体中.可以被指定为公有,私有或受保护的. 1.在类外面定义成员函数时,需要用类名加作用域限定符(::),如下代码: #include <iostream> #include <string> using namespace std; class _test_myclass { public: void display(const int &val

拷贝构造,深度拷贝,关于delete和default相关的操作,explicit,类赋初值,构造函数和析构函数,成员函数和内联函数,关于内存存储,默认参数,静态函数和普通函数,const函数,友元

 1.拷贝构造 //拷贝构造的规则,有两种方式实现初始化. //1.一个是通过在后面:a(x),b(y)的方式实现初始化. //2.第二种初始化的方式是直接在构造方法里面实现初始化. 案例如下: #include<iostream> //如果声明已经定义,边不会生成 class classA { private: int a; int b; public: //拷贝构造的规则,有两种方式实现初始化 //1.一个是通过在后面:a(x),b(y)的方式实现初始化 //2.第二种初始化的方式是直

C++成员函数的存储方式

用类去定义对象时,系统会为每一个对象分配存储空间.如果一个类包括了数据和函数,要分别为数据和函数的代码分配存储空间. 按理说,如果用同一个类定义了10个对象,那么就需要分别为10个对象的数据和函数代码分配存储单元,如图8.4所示. 能否只用一段空间来存放这个共同的函数代码段,在调用各对象的函数时,都去调用这个公用的函数代码.如图8.5所示. 显然,这样做会大大节约存储空间.C++编译系统正是这样做的,因此每个对象所占用的存储空间只是该对象的数据部分所占用的存储空间,而不包括函数代码所占用的存储空

C变量和函数的存储类型

C变量和函数的存储类型 在上一篇<C程序内存管理>的文章中,已经知道了C语言编译后的可执行文件的存储结构以及运行时的内存布局,本文则记录C语言中变量和函数的存储类型,以及在内存中的一些行为. C语言中变量的声明/定义格式如下: 存储类型    类型修饰符    数据类型    变量名; 存储类型:用来指明变量的存储位置,即运行该变量在哪一段分配内存空间,常见的存储位置有auto.extern.register.static,在一段执行程序中,可以为变量分配存储空间的有BSS.数据区.栈区.堆区

封装函数实现存储和读取的功能

需求: 在全局中只有一个namespace函数, 可以实现两种功能, 一种是存储数据,另一种是读取数据 存储数据的时候: namespace('a.b.c', 123); 读取数据的时候: namespace('a.b.c') => 123 读取: namespace('a.b') => {c: 123} 读取: namespace('a') => {b: {c: 123}} a:{ b: { c: 123 } } 该函数可以实现两种功能: 第一种是可以存储数据: 当存储数据的时候需要接

oracle存储过程、匿名块、函数、包

使用过程与函数的原则: 1.如果需要返回多个值和不返回值,就使用过程:如果只需要返回一个值,就使用函数. 2.过程一般用于执行一个指定的动作,函数一般用于计算和返回一个值. 3.可以SQL语句内部(如表达式)调用函数来完成复杂的计算问题,但不能调用过程.所以这是函数的特色. 一.存储过程 1.存储过程初步 --存储过程:实现搬历史表 create or replace procedure movetohistory_1 (                                     

数据存储——SQLite语句之DML 数据操作语言和内置函数之聚合函数

一.连接查询之内连接 select   a.字段,b.字段   from   表1   a,表2   b    where   a.字段=b.字段  And ... 二.DML 数据操作语言 1.增  insert  into values 1-insert  into 表名  values (跟所有字段一一对应的值的列表) 2-insert  into 表名(字段列表)  values (跟字段列表一一对应的值的列表) 3-insert  into 表名  select  对应的字段列表  f