Oracle存储过程的几种调用方式图文详解

 更新时间:2023年04月14日 10:33:26   作者:zhangbeizhen18  
存储过程是一个预编译的SQL语句,优点是允许模块化的设计,就是说只需创建一次,以后在程序中就可以调用多次,下面这篇文章主要给大家介绍了关于Oracle存储过程的几种调用方式,需要的朋友可以参考下

场景:Oracle存储过程调用方式,包括PL/SQL的SQL窗口中调用、在PL/SQL的命令窗口、在Procedures菜单列表中选中存储过程名称右键点击测试、在Package Bodies菜单列表中选中存储过程名称右键点击测试、在Jobs菜单列表选中已经配置Job的存储过程右键中点击运行、Java代码调用存储过程。

版本:Oracle Database 11g

工具:PL/SQL Developer

一、案例场景

1.基础环境

本例环境,使用Packages和Packages bodies管理存储过程Procedure。

Packages和Packages bodies名称:PKG_ZBZ_PORTAL

Procedure名称:PRO_INSERT_INFO_ARGS

完整SQL:

--包定义
CREATE OR REPLACE PACKAGE PKG_ZBZ_PORTAL IS
  PROCEDURE PRO_INSERT_INFO_ARGS(IN_DATE IN VARCHAR2 := NULL,
        FLAG OUT NUMBER,
        FAIL_INFO OUT VARCHAR2);
END PKG_ZBZ_PORTAL;
--包体
CREATE OR REPLACE PACKAGE BODY PKG_ZBZ_PORTAL IS
  PROCEDURE PRO_INSERT_INFO_ARGS(IN_DATE   IN VARCHAR2 := NULL,
        FLAG  OUT NUMBER,
        FAIL_INFO OUT VARCHAR2) IS
  BEGIN
    DECLARE
      V_DATE DATE := TRUNC(SYSDATE - 1);
    BEGIN
      FLAG      := 1;
      FAIL_INFO := '';
      IF (IN_DATE IS NOT NULL) THEN
        V_DATE := TO_DATE(IN_DATE, 'YYYYMMDD');
      END IF;
      INSERT INTO B_LOG_INFO
        SELECT SEQ_DEMO_ID.NEXTVAL,V_DATE,
               SYSDATE,'1','执行成功',50,'DUAL'
          FROM DUAL;
      COMMIT;
    EXCEPTION
      WHEN OTHERS THEN
        FLAG      := 0;
        FAIL_INFO := '此次执行: ' || IN_DATE || ' 输出结果: FLAG = ' || FLAG ||
                     '异常信息:  ' || SQLERRM;
        ROLLBACK;
    END;
  END PRO_INSERT_INFO_ARGS;
END PKG_ZBZ_PORTAL;

注意以下测试,存储过程或者包都必须编译通过,即如下。

2.SQL窗口中调用存储过程

在PL/SQL Developer工具,菜单路径依次:文件->新建->SQL 窗口,即可以进入SQL窗口中。

场景:在存储过程提交后,直接在SQL 窗口执行,调用存储过程验证和测试存储过程。

var FLAG NUMBER;
var FAIL_INFO VARCHAR2(512);
exec PKG_ZBZ_PORTAL.PRO_INSERT_INFO_ARGS( '20220710',:FLAG,:FAIL_INFO);

3.命令窗口中调用存储过程

在PL/SQL Developer工具,菜单路径依次:文件->新建->命令窗口,即可以进入命令窗口中。

场景:在存储过程提交后,直接在命令窗口执行,调用存储过程验证和测试存储过程。

var FLAG NUMBER;
var FAIL_INFO VARCHAR2(512);
exec PKG_ZBZ_PORTAL.PRO_INSERT_INFO_ARGS( '20220710',:FLAG,:FAIL_INFO);

4.Procedures菜单列表中调用存储过程

在PL/SQL Developer工具,在左侧对象导航窗口,菜单路径依次:Users->用户名称->Objects->Procedures,选中需要测试的存储过程,右键选中,点击测试,即进入测试窗口,根据需求填写参数(如果有入参)。注意,能出现测试菜单前提是存储过程必须先编译提交。

场景:在存储过程提交后,直接在Procedures菜单列表中选中存储过程,调用存储过程验证和测试存储过程。

5.Package或Package Bodies菜单列表中调用存储过程

在PL/SQL Developer工具,在左侧对象导航窗口,菜单路径依次:Users->用户名称->Objects->Package或Package Bodies,选中需要测试的存储过程,右键选中,点击测试,即进入测试窗口,根据需求填写参数(如果有入参)。注意,能出现测试菜单前提是存储过程必须先编译提交。

场景:在存储过程提交后,直接在Package或Package Bodies菜单列表中选中存储过程,调用存储过程验证和测试存储过程。

5.1 右键包名称,选择菜单:查看说明与体。即进入包里存储过程。

5.2 右键存储过程名称,选择测试,即进入测试窗口。

6.Jobs菜单列表调用存储过程

在PL/SQL Developer工具,在左侧对象导航窗口,菜单路径依次:Users->用户名称->Objects->Jobs,选中需要运行的job任务,右键选中,点击运行。

场景:在存储过程提交后,直接在Jobs菜单列表中选中存储过程,调用存储过程验证和测试存储过程。

7.Java代码中调用存储过程

本例引用:https://www.jb51.net/article/281108.htm

场景:

使用Java代码调用oracle的存储过程,本例使用JdbcTemplate模板类操作.

总结

到此这篇关于Oracle存储过程的几种调用方式的文章就介绍到这了,更多相关Oracle存储过程调用方式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:

相关文章

  • oracle创建一个数据库三步走

    oracle创建一个数据库三步走

    这篇文章主要介绍了oracle如何创建数据库和用户,以及每一步所涉及到的代码,需要的朋友可以参考下
    2015-08-08
  • Oracle 闪回 找回数据的实现方法

    Oracle 闪回 找回数据的实现方法

    闪回技术是Oracle强大数据库备份恢复机制的一部分,在数据库发生逻辑错误的时候,闪回技术能提供快速且最小损失的恢复。这篇文章主要介绍了Oracle 闪回 找回数据的实现方法,需要的朋友可以参考下
    2018-09-09
  • oracle关键字作为字段名使用方法

    oracle关键字作为字段名使用方法

    有时我们在定义字段名及别名时所用名与oracle关键字同名,这时该如何处理呢,本文将详细介绍,需要了解的朋友可以参考下
    2012-11-11
  • expdp与impdp导出导入特定表方式

    expdp与impdp导出导入特定表方式

    文章介绍了在Oracle数据库中导入导出特定表的方法,包括在10g和11g/12c中的操作区别,以及如何使用DBBAK文件夹作为导出文件的存储,同时,文章指出了在Windows Server 2012及以上版本中使用PowerShell时可能会遇到的问题,建议在DOS命令行窗口中执行相关操作
    2025-01-01
  • Oracle数据泵(expdp)导入导出数据的详细步骤

    Oracle数据泵(expdp)导入导出数据的详细步骤

    这篇文章主要介绍了Oracle数据泵(expdp)导入导出数据的详细步骤,文中详细描述了源数据库操作中的数据备份和目标数据库操作中的数据恢复过程,需要的朋友可以参考下
    2024-12-12
  • oracle常用分析函数与聚合函数的用法

    oracle常用分析函数与聚合函数的用法

    今天小编就为大家分享一篇关于oracle常用分析函数与聚合函数的用法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • Oracle自动备份及自动备份步骤

    Oracle自动备份及自动备份步骤

    这篇文章主要介绍了Oracle自动备份及自动备份步骤的相关资料,需要的朋友可以参考下
    2016-02-02
  • Oracle监听启动时由“监听程序不支持服务”遇到的一系列问题

    Oracle监听启动时由“监听程序不支持服务”遇到的一系列问题

    这篇文章主要介绍了Oracle监听启动时由“监听程序不支持服务”遇到的一系列问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • PL/SQL数据类型及操作符

    PL/SQL数据类型及操作符

    PL/SQL数据类型及操作符...
    2007-03-03
  • CentOS7下Oracle19c rpm安装过程

    CentOS7下Oracle19c rpm安装过程

    这篇文章主要介绍了CentOS7下Oracle19c rpm安装过程,包含环境配置、依赖安装问题,对Oracle19c rpm安装相关知识感兴趣的朋友一起看看吧
    2021-07-07

最新评论