Pl/sql+存储函数

目录

1.是什么

2.语法

3.例子

4.存储过程

5.存储函数和存储过程的区别

6.存储过程语法

7.例子


1.是什么
-- 自定义函数,我们自己写的函数,可以通过函数名直接使用,存储函数也是函数,为了返回一个结果,必须有返回值。
2.语法
create [or replace] function 函数名  -- 只写类型
(参数名 参数类型,参数名 参数类型...)  -- 只写类型,不写大小
return 结果变量数据类型  -- 只写类型,不写大小
is 
    变量声明部分;
begin
    逻辑部分;
    return 结果变量;
    [exception 异常处理部分]
end;
3.例子
create or replace function fn_getAddressByID
(addr_id number)  -- 只写类型,不写大小
return varchar2  -- 只写类型,不写大小
is 
    v_name varchar2(100); -- 这里要写大小
begin
    -- 根据参数,获取名字
    select name into v_name from T_ADDRESS where id = add_id; -- 获取第二行字段名
    return v_name;
end;
-- 使用存储函数
select fn_getAddressByID(12)from dual;

4.存储过程
-- 存储过程只是为了完成某个过程,没有返回值,但可以返回值。
-- 有传入(in),传出(out)参数,传出传入参数。
5.存储函数和存储过程的区别
-- 存储函数中有返回值,且必须返回;而存储过程没有返回值,可以通过传出参数返回多个值。
-- 存储函数可以在select 语句中直接使用,而存储过程不能。过程多数是在plsq!代码中直接使用的。在plsql代码外部使用 cal 存储过程名。
-- 存储函数一般都是封装一个查询结果,而存储过程一般都封装一段事务代码。
6.存储过程语法
create [or replace] procedure 存储过程名  -- 只写类型
(参数名 参数类型,参数名 参数类型...)  -- 只写类型,不写大小
return 结果变量数据类型  -- 只写类型,不写大小
is|as 
    变量声明部分;
begin
    逻辑部分;
    return 结果变量;
    [exception 异常处理部分]
end;
7.例子
-- 准备工作(t_owners有主键),创建序列 seq_owners 起始值100 生成主键值
create sequence seg_owners start with 100;
-- 创建传入参数过程
create or replace procedure aaa  -- 只写类型
(V_NAME varchar2,
V_ADDRESSID number,
V_HOUSENUMBER varchar2,
V_WATERMETER varchar2,
V_OWNERTYPEID number)  -- 只写类型,不写大小
is
begin
    -- 向t_owners插入数据
    insert into C##WATERUSER.T_OWNERS
    values (seg_owners.nextVaL, V_NAME, V_ADDRESSID, V_HOUSENUMBER, V_WATERMETER,SYSdate, V_OWNERTYPEID);
    -- 提交数据
commit;
end;

相关推荐

  1. Oracle—PLSQL函数

    2024-04-25 22:54:01       8 阅读
  2. pgsql存储过程

    2024-04-25 22:54:01       32 阅读
  3. PGSQL】date_trunc 函数

    2024-04-25 22:54:01       32 阅读
  4. PgSQL】聚合函数string_agg

    2024-04-25 22:54:01       30 阅读
  5. MYSQL 存储过程 函数

    2024-04-25 22:54:01       11 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-25 22:54:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-25 22:54:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-25 22:54:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-25 22:54:01       18 阅读

热门阅读

  1. MyBatis笔记——参数处理

    2024-04-25 22:54:01       13 阅读
  2. 玩转nginx的配置文件2

    2024-04-25 22:54:01       8 阅读
  3. 字符串、数组的反转

    2024-04-25 22:54:01       10 阅读
  4. SAP fiori 第三方网页认证登录(伪)

    2024-04-25 22:54:01       14 阅读
  5. 初识计算机网络

    2024-04-25 22:54:01       11 阅读
  6. LINUX如何 部署ansible

    2024-04-25 22:54:01       12 阅读