欢迎投稿

今日深度:

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

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


目录
  • 一、案例场景
    • 1.基础环境
    • 2.SQL窗口中调用存储过程
    • 3.命令窗口中调用存储过程
    • 4.Procedures菜单列表中调用存储过程
    • 5.Package或Package Bodies菜单列表中调用存储过程
    • 6.Jobs菜单列表调用存储过程
    • 7.Java代码中调用存储过程
  • 总结

    场景: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存储过程调用方式内容请搜索PHP之友以前的文章或继续浏览下面的相关文章希望大家以后多多支持PHP之友!

    您可能感兴趣的文章:
    • Oracle存储过程及调用

    www.htsjk.Com true http://www.htsjk.com/oracle/46360.html NewsArticle Oracle存储过程的几种调用方式图文详解, 目录 一、案例场景 1.基础环境 2.SQL窗口中调用存储过程 3.命令窗口中调用存储过程 4.Procedures菜单列表中调用存储过程 5.Package或Package Bodies菜单...
    评论暂时关闭