`
gdcxq
  • 浏览: 11810 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Oracle pl/sql块实例

阅读更多

  1、pl/sql块包括三个部分,定义部分,执行部分,异常处理部分,以下是一个例子:

declare

 --定义变量(可选)

  v_name varchar2(20);

  v_sal number;

 begin

  --执行部分

  select name,sal into v_name,v_sal from user1 where id=2;

  dbms_output.put_line('查询到的用户名为:'||v_name);

  --异常处理(可选)

 exception

  when no_data_found then

    dbms_output.put_line('查询不到制定的用户');

 end;

2、存储过程示例:

(1)创建一个名称为prc_user 的不带参数的存储过程:

 

 create or replace procedure prc_user is

 begin

 update user1 set sal=11 where id=1;

 end;

对应的java代码调用如下:

 

import java.sql.*;
public class DB {
	public static void main(String[] args) {
		try {
			//1.加载驱动
			Class.forName("oracle.jdbc.driver.OracleDriver");
			//2.建立数据库连接
			Connection con=DriverManager.getConnection(
					"jdbc:oracle:thin:@127.0.0.1:1521:orcl","cxq", "cxq123");
			//3.创建CallableStatement
		    CallableStatement cst=con.prepareCall("{call prc_user}");
		    //4.执行
		    cst.execute();
		    //4.关闭
		    cst.close();
		    con.close();
		} catch (Exception e) {
			e.printStackTrace();
 		}
	}
}

 

(2)创建一个名称为prc_user1 的带输入参数的存储过程:

 create or replace procedure prc_updateUserSal(userId IN number,newSal IN number)

 is

 begin

 update user1 set sal=newSal where id=userId;

 end;

注意:输入参数IN是可以省略的,默认就是IN。

对应的java代码调用如下:

  

import java.sql.*;
public class DB {
	public static void main(String[] args) {
		try {
			//1.加载驱动
			Class.forName("oracle.jdbc.driver.OracleDriver");
			//2.建立数据库连接
			Connection con=DriverManager.getConnection(
					"jdbc:oracle:thin:@127.0.0.1:1521:orcl","cxq", "cxq123");
			//3.创建CallableStatement
		    CallableStatement cst=con.prepareCall("{call prc_updateUserSal(1,3500)}");
		    
		    /*或者这样
		    3.创建CallableStatement
		    CallableStatement cst=con.prepareCall("{call prc_updateUserSal(?,?)}");
		    cst.setInt(1, 1);
		    cst.setInt(2, 3500);
		    */
		    //4.执行
		    cst.execute();
		    //4.关闭
		    cst.close();
		    con.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

 

(3)创建一个名称为prc_user2 的带输入参数和输出参数的存储过程:

create or replace procedure prc_getUserSal(userId IN number,userSal OUT numberis

begin

select sal into userSal from user1 where id=userId;

end;

对应的java代码调用如下:

3、函数示例:

(1)输入用户的姓名,返回用户的年薪:

create or replace function f_getUserYearSal(userName varchar2return number

as

yearSal number;

begin

  select sal*12 into yearSal from user1 where name=userName;

  return yearSal;

end;

在命令行中调用函数如下:

SQL> var yearSal number;

SQL> call f_getUserYearSal('cxq') into:yearSal;

返回结果:

Method called

yearSal

---------

60000

如果没返回就打印变量:

SQL> print yearSal; 

会返回结果:

yearSal

---------

60000

对应的java代码调用如下:
import java.sql.*;
public class Test {
	public static void main(String[] args) {
		try {
			//1.加载驱动
			Class.forName("oracle.jdbc.driver.OracleDriver");
			//2.建立数据库连接
			Connection con=DriverManager.getConnection(
					"jdbc:oracle:thin:@127.0.0.1:1521:orcl","cxq", "cxq123");
			//3.创建PreparedStatement
			String sqlStr="select f_getUserYearSal(?) from dual";
		    PreparedStatement psmt=con.prepareStatement(sqlStr);
		    psmt.setString(1, "cxq");
		    //4.执行查询
		    ResultSet rs=psmt.executeQuery();
		    //5.处理结果集
		    while(rs.next()){
		    	int yearSal=rs.getInt(1);
		    	System.out.println("用户cxq的年薪为"+yearSal);
		    }
		    //6.关闭
		    psmt.close();
		    con.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

  

分享到:
评论

相关推荐

    Oracle PL/SQL实例精解 数据库建立代码

    在"Oracle PL/SQL实例精解 数据库建立代码"中,我们将深入探讨如何在Oracle数据库中使用PL/SQL来构建一个名为"student"的模式,这包括创建数据库对象如表、索引,以及填充样本数据。 首先,"student"模式可能包含一...

    Oracle PL/SQL 实例精解(第4版涵盖Oracle 11g)+源码脚本

    在"Oracle PL/SQL 实例精解(第4版涵盖Oracle 11g)+源码脚本"中,读者可以深入理解PL/SQL的各种概念和实践技巧。 本书详细讲解了Oracle 11g版本中的PL/SQL语言,这涵盖了从基础语法到高级特性的广泛范围。PL/SQL是...

    oracle pl/sql实例精讲student数据库模式数据和表脚本

    在"Oracle PL/SQL实例精讲student数据库模式"中,我们将深入探讨如何利用PL/SQL来设计、管理和操作一个名为"student"的数据库模式。 "student"数据库模式可能包含了与学生相关的各种实体,如学生信息表(students)...

    oracle pl/sql 实例精解(中文原书第4版)

    本书是一本逐步分解的,详尽的pl/sql编程教程,使用真实场景的试验、范例和练习来介绍读者所需的pl/sql编程技能,涵盖oracle 11g的最新特性。作者的写作手法源自于在哥伦比亚大学教授pl/sql编程技术的经验,深度...

    Oracle PL/SQL实例编程(PL/SQL经典书籍)

    这本书“Oracle PL/SQL实例编程”显然旨在深入讲解如何利用PL/SQL进行实际开发工作,通过实例来教授读者掌握这一技能。下面我们将深入探讨PL/SQL的关键知识点。 1. **基础语法**:PL/SQL是过程化SQL,它包含声明...

    Oracle PL/SQL学习官方教材

    Oracle PL/SQL是一种强大的编程语言,它将SQL与过程编程语言的特性相结合,为数据库开发提供了丰富的功能。在Oracle数据库环境中,PL/SQL是开发高效、可靠和可维护的数据库应用程序的关键工具。以下是对"Oracle PL/...

    Oracle PL/SQL专家指南-高级PL/SQL解决方案的设计与开发

    《Oracle PL/SQL专家指南-高级PL/SQL解决方案的设计与开发》是一本深入探讨Oracle数据库中的PL/SQL编程的专业书籍。PL/SQL是Oracle数据库特有的编程语言,它结合了SQL的查询能力与过程式编程语言的功能,使得数据库...

    oracle pl sql 实例精解 源代码

    本资料集是"Oracle PL/SQL实例精解",提供了丰富的源代码示例,帮助读者深入理解和应用这一技术。 首先,我们来看End_of_Chapter_Exercises.zip,这可能包含了每个章节结束时的练习题或项目。这些练习通常设计得...

    ORACLE PL/SQL 程序设计(第五版)

    《ORACLE PL/SQL 程序设计(第五版)》是Oracle数据库开发领域的一本经典教程,专注于讲解如何使用PL/SQL这一强大的过程化语言进行数据库编程。这本书旨在帮助读者掌握PL/SQL的基本概念、语法和高级特性,以便在实际...

    Oracle PL/SQL by Example(4th Edition)

    《Oracle PL/SQL by Example(4th Edition)》是一本专为Oracle数据库用户设计的PL/SQL编程指南,尤其适合那些希望通过实践学习这一强大的过程式语言的开发者。本书的第四版详细介绍了Oracle PL/SQL的各种核心概念和...

    《精通Oracle PL/SQL》源码

    在"2174_MasteringPLSQL_CODE"这个压缩包文件中,你将找到一系列与Oracle PL/SQL相关的代码实例,涵盖了以下几个关键知识点: 1. **基础语法**:包括变量声明、常量定义、数据类型、条件语句(IF-THEN-ELSIF,CASE...

    oracle_oracle_oraclepl/sql_

    通过阅读《Oracle PL/SQL》这本书,法语读者可以系统地学习到上述内容,并通过实例和练习提升自己的编程技能。这本书将帮助读者深入理解Oracle数据库的编程精髓,提升数据库管理与应用开发的能力。

    oracle PL/SQL

    Oracle PL/SQL 是Oracle数据库系统中的过程化语言,它结合了SQL查询功能和高级编程特性,使得开发者可以创建复杂的数据库应用程序。在Oracle 11g R2版本中,PL/SQL与SQL Developer一起使用,提供了丰富的开发环境来...

    Oracle PL/SQL程序设计(第5版)(下册)第二部分

    《Oracle PL/SQL程序设计(第5版)》基于Oracle数据库11g,从PL/SQL编程、PL/SQL程序结构、PL/SQL程序数据、PL/SQL中的SQL、PL/SQL应用构建、高级PL/SQL主题这6个方面详细系统地讨论了PL/SQL以及如何有效地使用它。...

    Oracle Database 12c PL/SQL开发指南 实例源代码

    通过"Oracle Database 12c PL/SQL开发指南"中的实例源代码,读者可以亲手实践上述各种概念和技术,从而更深入地理解和掌握PL/SQL的使用。这些源代码通常包含了各种实际场景的应用,例如业务逻辑的实现、数据处理的...

    Oracle数据库SQL和PL/SQL实例教程

    西安电子科技大学出版社出版的《Oracle数据库SQL和PL/SQL实例教程》将通过丰富的实例帮助读者理解和掌握这些概念。读者将学习如何编写高效的SQL查询,以及如何利用PL/SQL进行更复杂的业务逻辑处理。通过实例练习,...

    Oracle PL/SQL实例精讲--使用表,课后答案

    在"Oracle PL/SQL实例精讲--使用表,课后答案"中,读者可以深入理解如何有效地使用PL/SQL与Oracle数据库中的表格进行交互。这份资源包含第五版的课程内容,提供了实际操作的例子和课后练习的答案,对于学习者来说是...

    oracle数据库 sql 和pl/sql实例教程

    在"Oracle数据库 SQL 和 PL/SQL实例教程"中,你可以期待学习到以下几个核心知识点: 1. **SQL基础**:包括数据查询、数据插入、更新和删除(DML语句),以及数据库对象的创建和管理(DDL语句)。例如,如何使用...

    Oracle PL/SQL程序设计(第5版)

    例如,在“PL/SQL中的SQL”这一章节,读者将学习如何在PL/SQL块中使用SQL语句,包括数据查询、数据操作、事务控制等。 此外,书中的“PL/SQL程序数据”章节会讨论PL/SQL的数据类型、变量和常量、记录和表类型等基础...

    PL/SQL Developer 远程连接Oracle数据库

    PL/SQL Developer是一款专为Oracle数据库设计的集成开发环境,它极大地简化了PL/SQL语言的编写、调试和管理任务。远程连接Oracle数据库是PL/SQL Developer的一项关键功能,允许用户在本地计算机上操作和管理远程...

Global site tag (gtag.js) - Google Analytics