Oracle学习笔记二十二:存储过程「终于解决」

Oracle学习笔记二十二:存储过程「终于解决」一、存储过程简介 • 存储过程(Stored Procedure)是一组为了完成特定功能的PL/SQL语句块,经编译后存储在数据库中。 • 存储过程经编译和SQL优化后存储在数据库服务器中,使用时只要

Oracle学习笔记二十二:存储过程

一、存储过程简介

• 存储过程(Stored Procedure)是一组为了完成特定功能的PL/SQL语句块,经编译后存储在数据库中。

• 存储过程经编译和SQL优化后存储在数据库服务器中,使用时只要调用即可。

• 存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程。

• 用户通过指定存储过程的名字给出参数(如果该存储过程带有参数)来执行它。

二、存储过程分类

1)系统存储过程

  • 系统存储过程就是由Oracle预先提供的一组完成特定功能的存储过程,安装完Oracle就有了。

2)自定义存储过程

  • 自定义存储过程就是存在Oracle数据库里由一组PL/SQL语句组成的自定义过程(Procedure)。它可以供其它Oracle自定义存储过程、自定义函数和Job调用或者由客户端程序调用。

三、存储过程语法

• 定义存储过程的语法:

  CREATE [OR REPLACE] PROCEDURE 存储过程名

    [(参数名1 [参数模式] 参数数据类型1,参数名2 [参数模式] 参数数据类型2)]

  IS [AS]

    [变量 [constant] 类型 [默认值]]

  BEGIN

    PL/SQL 语句块;

  END 存储过程名;

四、无参存储过程

1)定义无参存储过程

create or replace procedure PrintToday
is
begin
    dbms_output.put_line(sysdate);
end;

2)执行无参存储过程

begin
    PrintToday();
end;

五、存储过程参数

• 建立存储过程时,既可以指定存储过程的参数,也可以不提供任何参数。

• 存储过程的参数主要有三种类型:输入参数(IN)、输出参数(OUT)、输入输出参数(IN OUT),其中IN用于接收调用环境的输入参数,OUT用于输出数据传递到调用环境,IN OUT不仅要接收数据,而且要输出数据到调用环境。

• 在建立存储过程时,输入参数的IN可以省略。

• 注意:当定义存储过程的参数时,只能指定数据类型,不能指定数据长度。

六、有参存储过程

6.1、带输入参数存储过程

1)定义带输入参数存储过程

create or replace procedure InsertEmp
(
    p_empno varchar2,
    p_ename varchar2
)
is
begin
    insert into emp (empno,ename) values (p_empno,p_ename);
    commit;
end;

2)执行带输入参数存储过程

begin
    InsertEmp ("1004","Green");
end;

6.2、带输出参数存储过程

1)定义带输出参数存储过程

create or replace procedure CountEmp
(
    p_ename in varchar2,
    out_value out number
)
is
begin
    select count(1) into out_value from emp where ename=p_ename;
end;

2)执行带输出参数存储过程

declare
    out_value number;
begin
    CountEmp ("James",out_value);
    dbms_output.put_line(out_value);
end;

七、维护存储过程

• 修改存储过程

  • 与创建的语法相同,使用REPLACE替换即可。

• 删除存储过程

  • drop procedure [schema.]过程名

 

原文地址:https://www.cnblogs.com/atomy/archive/2022/06/05/16344769.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/5153.html

(0)
上一篇 2023-05-20 20:30
下一篇 2023-05-21

相关推荐

  • Python正则表达式:强大的文本匹配工具

    Python正则表达式:强大的文本匹配工具正则表达式是一种处理字符串的方法。在文本处理中,经常需要对字符串进行操作,例如字符串的匹配、替换以及删除等操作。Python中的正则表达式库re提供了一套强大的工具,能够对文本进行全面的匹配和操作。

    2024-02-23
    118
  • Python TKM: 创建GUI界面毫不费力

    Python TKM: 创建GUI界面毫不费力Python是一种简单、易学、高效的编程语言,适用于各种领域,如Web开发、数据科学、科学计算等。Python也可以用来创建GUI(Graphical User Interface,图形用户界面)应用程序,为用户提供更加友好的交互方式。在Python中,有多种GUI工具包可供选择,其中Tkinter是Python自带的GUI工具包,它简单易学,功能齐全,被广泛应用。

    2024-03-10
    78
  • workbench创建数据库表_workbench连接数据库

    workbench创建数据库表_workbench连接数据库涉及软件:mysql-workbench-community-6.2.5-win32.msi 1. 数据表的创建。 (1)打开MySQL Workbench工具。 (2)在mysqltest数据库中…

    2023-02-06
    147
  • 第07问:innodb_buffer_pool_instances 是如何影响性能的?「终于解决」

    第07问:innodb_buffer_pool_instances 是如何影响性能的?「终于解决」问题: 我们都知道 innodb_buffer_pool_instances 参数,将 buffer pool 分成几个区,每个区用独立的锁保护,这样就减少了访问 buffer pool 时需要上锁…

    2023-02-15
    154
  • 你python基础怎么样(Python好吗)

    你python基础怎么样(Python好吗)1、有较强的逻辑思维能力

    2023-11-27
    119
  • Python Tkinter GUI布局方案

    Python Tkinter GUI布局方案Python Tkinter是一种Python的标准GUI库,它提供了丰富的图形用户界面组件和功能,让开发者能够方便地创建漂亮、可靠的用户界面。布局(Layout)是Tkinter GUI开发中一个非常重要的环节,它决定了每个组件在屏幕上的位置、大小以及与其他组件之间的关系。在本文中,我们将探讨Python Tkinter中常用的布局方案及其优缺点,并提供相应的代码示例。

    2024-01-22
    112
  • Python字典:实现高效的键值对数据存储和操作

    Python字典:实现高效的键值对数据存储和操作Python字典是一种可变容器类型,可存储任意类型的对象。它是一个无序的键值对集合,其中键(key)必须是唯一的,而值(value)可以重复。字典是用{}括起来的,每个键值对之间用冒号(:)分隔,每个键值对之间用逗号(,)分隔。

    2023-12-24
    107
  • CentOS 8 安装 MariaDB[通俗易懂]

    CentOS 8 安装 MariaDB[通俗易懂]MariaDB 数据库管理系统是 MySQL 的一个分支,主要由开源社区在维护,采用 GPL 授权许可。开发这个分支的原因之一是:甲骨文公司收购了 MySQL 后,有将 MySQL 闭源的潜在风险,因

    2023-03-27
    171

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注