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 number) is
begin
select sal into userSal from user1 where id=userId;
end;
对应的java代码调用如下:
3、函数示例:
(1)输入用户的姓名,返回用户的年薪:
create or replace function f_getUserYearSal(userName varchar2) return 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来构建一个名为"student"的模式,这包括创建数据库对象如表、索引,以及填充样本数据。 首先,"student"模式可能包含一...
在"Oracle PL/SQL 实例精解(第4版涵盖Oracle 11g)+源码脚本"中,读者可以深入理解PL/SQL的各种概念和实践技巧。 本书详细讲解了Oracle 11g版本中的PL/SQL语言,这涵盖了从基础语法到高级特性的广泛范围。PL/SQL是...
在"Oracle PL/SQL实例精讲student数据库模式"中,我们将深入探讨如何利用PL/SQL来设计、管理和操作一个名为"student"的数据库模式。 "student"数据库模式可能包含了与学生相关的各种实体,如学生信息表(students)...
这本书“Oracle PL/SQL实例编程”显然旨在深入讲解如何利用PL/SQL进行实际开发工作,通过实例来教授读者掌握这一技能。下面我们将深入探讨PL/SQL的关键知识点。 1. **基础语法**:PL/SQL是过程化SQL,它包含声明...
Oracle PL/SQL是一种强大的编程语言,它将SQL与过程编程语言的特性相结合,为数据库开发提供了丰富的功能。在Oracle数据库环境中,PL/SQL是开发高效、可靠和可维护的数据库应用程序的关键工具。以下是对"Oracle PL/...
《Oracle PL/SQL专家指南-高级PL/SQL解决方案的设计与开发》是一本深入探讨Oracle数据库中的PL/SQL编程的专业书籍。PL/SQL是Oracle数据库特有的编程语言,它结合了SQL的查询能力与过程式编程语言的功能,使得数据库...
本资料集是"Oracle PL/SQL实例精解",提供了丰富的源代码示例,帮助读者深入理解和应用这一技术。 首先,我们来看End_of_Chapter_Exercises.zip,这可能包含了每个章节结束时的练习题或项目。这些练习通常设计得...
《ORACLE PL/SQL 程序设计(第五版)》是Oracle数据库开发领域的一本经典教程,专注于讲解如何使用PL/SQL这一强大的过程化语言进行数据库编程。这本书旨在帮助读者掌握PL/SQL的基本概念、语法和高级特性,以便在实际...
《Oracle PL/SQL by Example(4th Edition)》是一本专为Oracle数据库用户设计的PL/SQL编程指南,尤其适合那些希望通过实践学习这一强大的过程式语言的开发者。本书的第四版详细介绍了Oracle PL/SQL的各种核心概念和...
在"2174_MasteringPLSQL_CODE"这个压缩包文件中,你将找到一系列与Oracle PL/SQL相关的代码实例,涵盖了以下几个关键知识点: 1. **基础语法**:包括变量声明、常量定义、数据类型、条件语句(IF-THEN-ELSIF,CASE...
通过阅读《Oracle PL/SQL》这本书,法语读者可以系统地学习到上述内容,并通过实例和练习提升自己的编程技能。这本书将帮助读者深入理解Oracle数据库的编程精髓,提升数据库管理与应用开发的能力。
Oracle PL/SQL 是Oracle数据库系统中的过程化语言,它结合了SQL查询功能和高级编程特性,使得开发者可以创建复杂的数据库应用程序。在Oracle 11g R2版本中,PL/SQL与SQL Developer一起使用,提供了丰富的开发环境来...
《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开发指南"中的实例源代码,读者可以亲手实践上述各种概念和技术,从而更深入地理解和掌握PL/SQL的使用。这些源代码通常包含了各种实际场景的应用,例如业务逻辑的实现、数据处理的...
西安电子科技大学出版社出版的《Oracle数据库SQL和PL/SQL实例教程》将通过丰富的实例帮助读者理解和掌握这些概念。读者将学习如何编写高效的SQL查询,以及如何利用PL/SQL进行更复杂的业务逻辑处理。通过实例练习,...
在"Oracle PL/SQL实例精讲--使用表,课后答案"中,读者可以深入理解如何有效地使用PL/SQL与Oracle数据库中的表格进行交互。这份资源包含第五版的课程内容,提供了实际操作的例子和课后练习的答案,对于学习者来说是...
在"Oracle数据库 SQL 和 PL/SQL实例教程"中,你可以期待学习到以下几个核心知识点: 1. **SQL基础**:包括数据查询、数据插入、更新和删除(DML语句),以及数据库对象的创建和管理(DDL语句)。例如,如何使用...
例如,在“PL/SQL中的SQL”这一章节,读者将学习如何在PL/SQL块中使用SQL语句,包括数据查询、数据操作、事务控制等。 此外,书中的“PL/SQL程序数据”章节会讨论PL/SQL的数据类型、变量和常量、记录和表类型等基础...
PL/SQL Developer是一款专为Oracle数据库设计的集成开发环境,它极大地简化了PL/SQL语言的编写、调试和管理任务。远程连接Oracle数据库是PL/SQL Developer的一项关键功能,允许用户在本地计算机上操作和管理远程...
本书是一本逐步分解的,详尽的pl/sql编程教程,使用真实场景的试验、范例和练习来介绍读者所需的pl/sql编程技能,涵盖oracle 11g的最新特性。作者的写作手法源自于在哥伦比亚大学教授pl/sql编程技术的经验,深度...