`

存储过程简单案例

阅读更多
存储过程简单案例


该案例包含两部分,带返回值和不带返回值的,同时有jdbc调用存储过程的案例
1、不带返回参数的存储过程
create or replace procedure callback --回调函数名字
( --参数
   id number,
   name varchar
)
is
begin
insert into t_area values(id,name); --所执行具体内容
commit;
end;

--怎么查询呢?
call callback1(77,'patronli');



1.2.、在 java中通过jdbc调用
public static void add() {
		java.sql.Connection conn = null;
		java.sql.CallableStatement stmt = null;
		try {
			conn = DaoUtil.getConnection();
			//语句的写法与普通的sql语句不同
			stmt = conn.prepareCall("{call callback(?,?)}");
			stmt.setInt(1, 21);
			stmt.setString(2, "patronli");
			stmt.execute(); -- 注意			
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			DaoUtil.closeAll(null, stmt, conn);
		}
	}


那么可能有同学要问了?这个没有返回值,我怎么知道我有没有插入成功呢? 可以将上图 “注意”处的执行方法更换为stmt.executeUpdate()就可以有受影响的行数返回,如果还想返回插入行的主键的话,请继续往下看!!!
2、带返回参数的存出过程(举两个例子,一个是返回主键id,一个是返回受影响行数)
----  返回主键id 的
create or replace procedure callback
(
   id number,
   name varchar,
   P_id out number--定义输出参数
)
is
begin
select seq_owners.nextval into P_id from dual;-- 从sequence中获取下一个值,并赋给pid
insert into t_area values(P_id,name);
commit;
end;

---怎么查询呢?
declare
  P_id number;
begin
  callback(77,'patronli',P_id);
  dbms_output.put_line(P_id); 
end;

-- 定义返回受影响行数的存出过程
create or replace procedure callback
(
   id number,
   name varchar,
   P_ROWS out number
)
is
begin
insert into t_area values(id,name);
P_ROWS := SQL%ROWCOUNT;
commit;
end;

--怎么查询呢?
declare
 P_ROWS NUMBER; 
begin
 callback(77'patronli',P_ROWS);
 dbms_output.put_line(P_ROWS); 
end;

2.1那么怎么在java代码中调用并获得返回信息呢?
	public static void add() {
		java.sql.Connection conn = null;
		java.sql.CallableStatement stmt = null;
		try {
			conn = DaoUtil.getConnection();
			// 语句的写法与普通的sql语句不同
			stmt = conn.prepareCall("{call callback(?,?,?)}");
			stmt.setInt(1, 77);
			stmt.setString(2, "patronli");
			stmt.registerOutParameter(3, OracleTypes.NUMBER);
			// 注册传出参数类型
			// System.out.println(stmt.executeUpdate());
			stmt.execute();
			System.out.println(stmt.getLong(3));// 提取传出参数
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			DaoUtil.closeAll(null, stmt, conn);
		}
	}



附上oracle连接的工具类以及jar包



0
0
分享到:
评论

相关推荐

    存储过程简单案例以及使用方法参考.pdf

    在IT领域,数据库管理和开发是不可或缺的部分,存储过程作为数据库中的一个重要组件,它是一组为了完成特定功能的SQL语句集,预编译后存储在数据库中,可以被多次调用,提高了代码的复用性和执行效率。本文将详细...

    SQL_Server存储过程入门案例详解.doc

    ### SQL Server 存储过程入门案例详解 #### 一、引言 在现代数据库管理系统(DBMS)中,存储过程是一种强大的工具,它允许开发者在数据库服务器上编写可重用的代码块。这些代码块主要由T-SQL语句组成,并能够接受...

    存储过程应用案例新手学习存储过程的好资料

    例如,一个简单的存储过程可能是用于插入新记录的,如下所示: ```sql CREATE PROCEDURE InsertUser @Username VARCHAR(50), @Password VARCHAR(50) AS BEGIN INSERT INTO Users (Username, Password) VALUES (@...

    oracle的一个简单存储过程实例

    在这个“Oracle的一个简单存储过程实例”中,我们可以看到如何在Oracle环境中创建、调用和管理存储过程。下面将详细讲解这个主题。 首先,`c.sql`、`b.sql`和`student.sql`可能是包含存储过程定义的脚本文件。这些...

    存储过程案例存储过程案例.doc

    这个过程简单地打印当前系统时间,通过`DBMS_OUTPUT.PUT_LINE`函数输出到命令窗口。 2. 执行存储过程: 存储过程可以通过BEGIN/END块直接执行,或者使用`EXEC`或`CALL`命令。例如,`BEGIN out_time; END;`和`EXEC ...

    润乾报表调用oracle存储过程案例说明

    以下是一个简单的存储过程示例,名为`TEST`,它接收两个输入参数`arg1`和`arg2`,并返回一个sys_refcursor类型的输出参数`v_out_result`: ```sql CREATE OR REPLACE PROCEDURE TEST (arg1 IN VARCHAR2, arg2 IN ...

    SQL Server存储过程入门案例详解

    例如,例1中创建了一个名为`uspGetContact`的简单存储过程,用于获取`Person.Contact`表中的第一条记录。 ```sql CREATE PROCEDURE uspGetContact AS SELECT TOP 1 ContactID, FirstName, LastName FROM Person....

    oracle存储过程实例

    例如,创建一个名为`stu_proc`的简单存储过程,用于获取`sno`为1的学生的`sname`: ```sql CREATE OR REPLACE PROCEDURE stu_proc AS pname VARCHAR2(25); BEGIN SELECT sname INTO pname FROM student WHERE sno ...

    存储过过程介绍,简单的存储过程

    根据给定的信息,本文将详细介绍存储过程的基本概念及其在数据库管理中的应用,特别是简单存储过程的设计与实现。 ### 存储过程概述 存储过程是一种预编译的SQL语句集合,它存储在数据库服务器上,并可以作为一个...

    jsp 存储过程的应用案例

    以下是一个简单的JSP调用存储过程进行登录验证的步骤: 1. **创建存储过程**:在数据库中创建一个接受用户名和密码作为参数的存储过程,该过程会检查这些参数是否与数据库中记录匹配。例如: ```sql CREATE ...

    SQL Server存储过程入门案例详解.doc

    这个例子展示了如何创建一个简单的存储过程,用于获取`Person.Contact`表中的第一条记录。使用`CREATE PROCEDURE`语句定义存储过程`uspGetContact`,然后使用`EXEC`命令执行。 2. **带参数的存储过程**(例2): ...

    java存储过程函数案例.ppt

    Java存储过程和函数是数据库操作中的重要组成部分,它们在Java应用程序与数据库交互时起到关键作用。存储过程是在数据库中预编译的SQL语句集合,而函数则返回一个值。这两种技术都允许开发者封装复杂的逻辑,提高...

    oracle 存储过程实例

    在提供的示例中,我们首先定义了一个简单的存储过程`TESTA`,用于向表`HYQ.B_ID`插入一条记录。 ```sql CREATE OR REPLACE PROCEDURE TESTA (PARA1 IN VARCHAR2, PARA2 IN VARCHAR2) AS BEGIN INSERT INTO HYQ.B_...

    SSM框架简单案例

    3. **MyBatis框架**:MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。它允许开发者编写动态SQL,使得数据库操作更加灵活和...

    Java Web应用开发 35 课堂案例-调用存储过程统计商品总价.docx

    本案例是关于Java Web应用开发的一个实践,主要目的是学习如何通过JDBC调用SQL Server数据库中的存储过程来统计商品的总价。在这个过程中,我们将了解到如何在SQL Server中创建存储过程,以及在Java环境中如何使用...

    PLSQL入门存储过程(详细注释案例).pdf

    根据提供的文件信息,我们可以深入探讨以下...以上就是基于给定文件信息对 PL/SQL 存储过程的基本介绍,包括语言特点、程序结构、数据类型与定义以及简单的示例代码。希望这些内容能够帮助初学者快速入门 PL/SQL 编程。

    DW 关联存储过程读取和更新表

    在本案例中,我们关注的是使用DW(DataWindow)关联存储过程来读取和更新表的操作。DataWindow是PowerBuilder中的一个核心组件,它允许开发者创建、操作和显示数据库中的数据。而存储过程,则是预编译的SQL语句集合...

    SQLserver存储过程语法及实例

    这里是一个简单的创建存储过程的示例: ```sql CREATE PROCEDURE sp_name AS BEGIN -- SQL语句 END; ``` 在上述示例中,sp_name是存储过程的名称。AS关键字后跟随的是过程体,其中包含了若干条SQL语句。 2. 调用...

    SQL数据库简单案例

    综上所述,SQL数据库简单案例中的学生信息管理系统通过合理设计表格、应用触发器和设置约束,实现了高效、安全且符合业务逻辑的数据管理。这不仅对理解数据库原理至关重要,也为实际的项目开发提供了实践基础。

Global site tag (gtag.js) - Google Analytics