n  函数

函数用于返回特定的数据,当建立函数式,在函数头部必须包含return子句,而在函数体内必须包含return语句返回的数据,我们可以使用create function来建立函数,实际案例:

基本语法:

create function 函数名(参数1,参数2…)

return 数据类型  is

//定义变量;

begin

//执行语句;

end;

案例:请编写一个函数,可以接收用户名并返回该用户的年薪。

SQL>
create or replace function fun1(v_in_ename varchar2)


return number is


v_annual_sal number;


begin

5   
select (sal+nvl(comm,0))*13 into v_annual_sal from emp where
ename=v_in_ename;

6   
return v_annual_sal;

7  end;

8  /

Function
created

SQL>
select fun1('SMITH') from dual;

FUN1('SMITH')

-------------

5934.5

如何在调用函数

(1)在sqlplus控制台调用:select 函数名(实际参数) from dual

(2)在java中调用:

package com.lsz.test;

import java.sql.*;

public class TestFunction {

//如何在java中调用自己编写的函数

public static void main(String[] args) {

String sql="select fun1('KING') from
dual";

ResultSet rs=SQLHelper.executeQuery(sql, null);

try {

if(rs.next()){

System.out.println(rs.getDouble(1));

}

} catch (Exception e) {

e.printStackTrace();

}finally{

}

}

}

函数和包的区别

1.函数必须有返回值,而过程可以没有

2.函数和过程在java中调用方式不一样

函数:select 自己的函数名(列) from 表

过程:使用CallableStatement去完成调用

pl/sql基础知识—函数快速入门的更多相关文章

  1. pl/sql基础知识—过程快速入门

    n  过程 过程用于执行特定的操作,当建立过程时,既可以指定输入参数(in),也可以指定输出参数(out),通过在过程中使用输入参数,可以将数据传递到执行部分:通过使用输出参数可以将执行部分的数据传递 ...

  2. web前端基础知识及快速入门指南

    web前端基础知识及快速入门指南 做前端开发有几个月了,虽然说是几个月,但是中间断断续续的上课.考试以及其它杂七杂八的事情,到现在居然一直感觉自己虽然很多前端的知识很眼熟,却也感觉自己貌似也知识在门口 ...

  3. pl/sql基础知识—定义并使用变量

    n  介绍 在编写pl/sql程序是,可以定义变量和常量:在pl/sql程序中包括有: ①标量类型(scalar) ②复合类型(composite) ③参照类型(reference) ④lob(lar ...

  4. PL/SQL 基础知识简介

    1.PL/SQL代码块 PL/SQL 代码块是指令的集合,支持所有的DML,NDS,DBMS_SQL,DDL. :DML 是数据操纵语言(Data Manipulation Language)包括,I ...

  5. PL/SQL基础知识

    Oracle之PL/SQL学习笔记 自己在学习Oracle是做的笔记及实验代码记录,内容挺全的,也挺详细,发篇博文分享给需要的朋友,共有1w多字的学习笔记吧.是以前做的,一直在压箱底,今天拿出来整理了 ...

  6. 【PL/SQL基础知识】结构

    1.pl/sql块的结构 declare --声明的变量.类型.游标 begin --程序的执行部分(类似于java的main()方法) exception --针对begin块中出现的异常 ---w ...

  7. pl/sql基础知识—触发器

    n  触发器简单介绍 触发器是指隐含执行的存储过程,它不是由程序员或者是DBA来显式调用,而是因为某个操作引发执行的.当定义触发器时,必须要指定触法的事件和触发的操作,常用的触发事件包括insert, ...

  8. pl/sql基础知识—pl/sql块介绍

    n  介绍 块(block)是pl/sql的基本成型单元,编写pl/sql程序实际上就是编写pl/sql块.要完成相对简单的应用功能,可能只需要编写一个pl/sql块:但是如果要想实现复杂的功能,可能 ...

  9. pl/sql基础知识—包

    n  包 包用于在逻辑上组合过程和函数,它由包规范和包体两部分组成. 为什么需要包:使用包可以更好的管理自己写的函数.过程 ①我们可以使用create package命令来创建包:     creat ...

随机推荐

  1. [code] if (x<0)x=0;else if (x>255)x=255;

    //颜色范围0-255: // 1.原始: )tem_b=;)tem_b=; )tem_g=;)tem_g=; )tem_r=;)tem_r=; //2.使用条件状态值生成掩码来移除条件分支 tem_ ...

  2. 《DSP using MATLAB》Problem 7.32

    代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ %% Output In ...

  3. SQLSTATE[HY000] [2002] 乱码

    string(59) "SQLSTATE[HY000] [2002] ����Ŀ����������ܾ����޷����ӡ� " 实际意思是:SQLSTATE[HY000] [20 ...

  4. getBoundingClientRect介绍

    getBoundingClientRect用于获取元素相对与浏览器视口的位置 由于getBoundingClientRect()已经是w3c标准,所以不用担心兼容,不过在ie下还是有所区别 { top ...

  5. TZ_14_Feign的客户端和Feign的负载均衡

    1.作用:Feign可以把Rest的请求进行隐藏,伪装成类似SpringMVC的Controller一样.你不用再自己拼接url,拼接参数等等操作,一切都交给Feign去做. 2.导入起步坐标 < ...

  6. Cors之带凭据的请求

    带凭据的请求 默认情况下,跨源请求不提供凭据.通过将withCredentials属性设置为true,可以制定某个请求应该发送凭据.

  7. 微信小程序 原生框架 (分享方法封装)

    封装的分享方法 function share(o,isDebug = false ) { //路径 let url = o.url || getCurrentPages()[getCurrentPag ...

  8. java并发系列(四)-----源码角度彻底理解ReentrantLock(重入锁)

    1.前言 ReentrantLock可以有公平锁和非公平锁的不同实现,只要在构造它的时候传入不同的布尔值,继续跟进下源码我们就能发现,关键在于实例化内部变量sync的方式不同,如下所示: /** * ...

  9. 学习JDK1.8集合源码之--LinkedHashMap

    1. LinkedHashMap简介 LinkedHashMap继承自HashMap,实现了Map接口. LinkedHashMap是HashMap的一种有序实现(多态,HashMap的有序态),可以 ...

  10. django中模型

    一.django需要使用数据库,则需要安装对应的驱动,比如mysql,则需要安装mysqlclient驱动: pip install mysqlclient 二.在settings.py文件中配置数据 ...