在 Oracle 中,可以将存储过程(PROCEDURE)定义在一个包(PACKAGE)中。

要调用包中的存储过程,需要使用包名和存储过程名来引用它们。以下是一个示例:

假设我们有一个名为 my_package 的包,其中包含一个名为 add_numbers 的存储过程,用于将两个数字相加。存储过程定义如下:

CREATE OR REPLACE PACKAGE my_package AS
PROCEDURE add_numbers(num1 IN NUMBER, num2 IN NUMBER, sum OUT NUMBER);
END my_package; CREATE OR REPLACE PACKAGE BODY my_package AS
PROCEDURE add_numbers(num1 IN NUMBER, num2 IN NUMBER, sum OUT NUMBER) AS
BEGIN
sum := num1 + num2;
END add_numbers;
END my_package;

要调用包中的存储过程,需要使用以下语法:

DECLARE
result NUMBER;
BEGIN
my_package.add_numbers
(10, 20, result);
DBMS_OUTPUT.PUT_LINE(result);
END;
在上面的示例中,我们首先使用 DECLARE 语句定义一个名为 result 的变量。然后,我们使用 my_package.add_numbers 来调用包中的存储过程,并指定输入参数 1020,以及输出参数 result。最后,我们使用 DBMS_OUTPUT.PUT_LINE 函数在控制台上输出结果。如果一切顺利,我们将在控制台上看到输出结果为 30。注意,此示例中使用的 DBMS_OUTPUT.PUT_LINE 函数用于输出结果到控制台,但在某些情况下,可能需要根据具体情况进行修改。
 
Java使用CallableStream调用
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Types; public class Example {
public static void main(String[] args) {
try {
// 1. 创建数据库连接
String url = "jdbc:mysql://localhost:3306/mydatabase";
String username = "root";
String password = "mypassword";
Connection conn = DriverManager.getConnection(url, username, password); // 2. 创建 CallableStatement 对象
String sql = "{call my_package.add_numbers(?, ?, ?)}";
CallableStatement stmt = conn.prepareCall(sql); // 3. 设置输入参数
int param1 = 10;
int param2 = 20;
stmt.setInt(1, param1);
stmt.setInt(2, param2); // 4. 注册输出参数
stmt.registerOutParameter(3, Types.INTEGER); // 5. 执行存储过程
stmt.execute(); // 6. 获取输出参数
int result = stmt.getInt(3);
System.out.println("Result: " + result); // 7. 关闭连接和语句
stmt.close();
conn.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
 

Oracle存储过程 Call使用的更多相关文章

  1. oracle 存储过程

    来自:http://www.jb51.net/article/31805.htm Oracle存储过程基本语法 存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 I ...

  2. Oracle存储过程语法

    原文链接:http://www.jb51.net/article/31805.htm Oracle存储过程基本语法 存储过程  1 CREATE OR REPLACE PROCEDURE 存储过程名  ...

  3. ORACLE存储过程调用Web Service

    1. 概述 最近在ESB项目中,客户在各个系统之间的服务调用大多都是在oracle存储过程中进行的,本文就oracle存储过程调用web service来进行说明.其他主流数据库,比如mysql和sq ...

  4. Oracle存储过程基本语法介绍

    Oracle存储过程基本语法 存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 IS 3 BEGIN 4 NULL; 5 END; 行1: CREATE OR RE ...

  5. MyBatis调用Oracle存储过程

    MyBatis调用Oracle存储过程 1.无输入和输出参数的存储过程 2.带有输入和输出参数的存储过程 3.返回游标的存储过程 mybatis中的配置文件代码 <resultMap type= ...

  6. Oracle存储过程(转)

    Oracle存储过程基本语法 存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 IS 3 BEGIN 4 NULL; 5 END; 行1: CREATE OR RE ...

  7. Oracle存储过程中异常Exception的捕捉和处理

    Oracle存储过程中异常的捕捉和处理 CREATE OR REPLACE Procedure Proc_error_process ( v_IN in Varchar2, v_OUT Out Var ...

  8. Oracle存储过程动态创建临时表/存储过程执行权限问题--AUTHID CURRENT_USER

    关于Oracle存储过程执行权限问题的解决 http://blog.sina.com.cn/s/blog_6ceed3280101hvlo.html (2014-04-02 04:06:28) 转载▼ ...

  9. ORACLE存储过程学习

    存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 IS 3 BEGIN 4 NULL; 5 END; 行1: CREATE OR REPLACE PROCEDURE ...

  10. C# 获取 oracle 存储过程的 返回值1

    /// <summary> /// 返回对应表的模拟自增字段值 /// </summary> /// <param name="tablename"& ...

随机推荐

  1. 解决命令行窗口执行godoc报错

    在cmd命令行窗口执行godoc报错: 'godoc' is not recognized as an internal or external command,operable program or ...

  2. Java把List转成以逗号分隔的字符串

    private static <T> String parseListToStr(List<T> list){ String result = list.stream().ma ...

  3. linuxz中压缩解压缩文件

    压缩解压缩.tar格式文件: 把文件打包为tar.gz命令: tar -zcvf 文件名.tar.gz 要压缩的文件/文件夹                                      ...

  4. ORM框架的延迟加载(懒加载)

    Hibernate的延迟加载分类的延迟加载和集合的延迟加载,类的延迟加载又分调用session的load()方法的延迟加载和加载实体单向关联的另一个实体的延迟加载 1.修改配置文件 spring.jp ...

  5. wait notify 实例,生产消费者模式(转)

    今天发现了一段很标准的多线程代码,记得以前也写过,但是没有这个这么小巧和标准. import java.util.LinkedList; import java.util.Queue; import ...

  6. OA产品并发访问能力

    环境:cpu 16c,内存 32G,系统管理服务.jtportal服务 启动双实例样本:50线程,循环登录60次,共计3000次登录,用时3分钟40秒结论:平均每分钟支持800次登录,均在3秒左右.按 ...

  7. 钉钉群机器人群发[ PHP ]

    // secret 机器人设置 - 加签秘钥 // access_token 机器人设置 - Webhook带此参数 // message 机器人设置- 关键词设置的内容需要和message一致 pu ...

  8. 【vue】Vue-router

    Vue-router 安装 npm install vue-router --save-dev vue-cli中已经选择安装了vue-router,那这里不需要重复安装了 解读route 路径```s ...

  9. struts2 显示表格

    <%@ taglib uri="/struts-tags" prefix="s"%> <h3>All Records:</h3&g ...

  10. 原创:USB HID读卡器数据解析(R321-13.56MHZ读卡器)

    1.工具准备 USB 监视软件:Device Monitoring Studio7.25 PC端软件:单片机多功能调试助手 2.发送数据包 接收数据包 3.数据分析 usb hid(pc软件)发送帧( ...