pl/sql编程——过程、函数、包
1.注释
单行注释 --
select * from emp where empno=7788; --取得员工信息
多行注释 /*...*/来划分
2.标志符号的命名规范
1).当定义变量时,建议用v_作为前缀v_sal
2).当定义常量时,建议用c_作为前缀c_rate
3).当定义游标时,建议用_cursor作为后缀emp_cursor
4).当定义例外时,建议用e_作为前缀e_error
3.块结构示意图
pl/sql块由三个部分构成:定义部分,执行部分,例外处理部分。
如下所示:
declare
/*定义部分——定义常量、变量、游标、例外、复杂数据类型*/
begin
/*执行部分——要执行的pl/sql语句和sql语句*/
exception
/*例外处理部分——处理运行的各种错误*/
end;
定义部分是从declare开始的,该部分是可选的;
执行部分是从begin开始的,该部分是必须的,至少要写null,不能不写;
例外处理部分是从exception开始的,该部分是可选的。
& 表示要接收从控制台输入的变量。
4. 过程
过程用于执行特定的操作,当建立过程时,既可以指定输入参数(in),也可以指定输出参数(out),通过在过程中使用输入参数,可以将数据传递到执行部分;通过使用输出参数,可以将执行部分的数据传递到应用环境。在sqlplus中可以使用create procedure命令来建立过程。
5. JAVA中调用存储过程
CallableStatement cs = con.prepareCall("{call emp_pro(?,?)}"); //4.给?赋值 cs.setString(1,"SMITH"); cs.setInt(2,10); //5.执行 cs.execute();
6. 函数
函数用于返回特定的数据,当建立函数时,在函数头部必须包含return子句。而在函数体内必须包含return语句返回的数据。我们可以使用create function来建立函数,实际案例:
--编写函数 返回指定人员的年薪 create function annual_income(name varchar2) return number is annual_salary number(7, 2); begin select sal*12 + nvl(comm, 0) into annual_salary from emp where ename = name; return annual_salary; end;
在sqlplus中调用函数
SQL> var income number SQL> call annual_incomec('scott') into :income; --注意:和income之间不能有空白 SQL> print income
同样我们可以在java程序中调用该函数 select annual_income('SCOTT') from dual;
7. 包
包用于在逻辑上组合过程和函数,它由包规范和包体两部分组成。
1).我们可以使用create package命令来创建包。
--使用create package命令创建包 create package pkg_sal is procedure update_sal(name varchar2, new_sal number); function annual_income(name varchar2) return number; end;
包的规范只包含了过程和函数的说明,但是没有过程和函数的实现代码。包体用于实现包规范中的过程和函数。
2).建立包体可以使用create package body命令
--使用create package body创建包体 create or replace package body pkg_sal is procedure update_sal(name varchar2, new_sal number) is begin update emp set sal = new_sal where ename = name; end; function annual_income(name varchar2) return number is income number(7, 2); begin select sal*12 + nvl(comm, 0) into income from emp where ename = name; return income; end; end;
3).如何调用包的过程或是函数
当调用包的过程或是函数时,在过程和函数前需要带有包名,如果要访问其它方案的包,还需要在包名前加方案名。
相关推荐
包是一种组织PL/SQL对象的方式,它可以将类型、过程、函数等封装在一起,方便管理和重用。 - **包规范**:声明包中的公共接口。 - **包体**:实现包规范中声明的对象。 #### 实战案例 假设我们需要编写一个PL/SQL块...
Oracle PL/SQL编程是Oracle数据库管理系统中的重要组成部分,它是一种过程化语言,允许开发者编写复杂的数据库应用程序。在本次实验中,我们将重点学习PL/SQL的基本语法、控制结构、复合数据类型以及异常处理技术。 ...
《精通Oracle 10g PL/SQL编程》是中国水利水电出版社出版的一本专为数据库管理员、软件开发者和系统架构师量身打造的书籍,由王海亮、林立新等专家共同编著。这本书深入浅出地介绍了Oracle数据库中最重要的编程语言...
Oracle 10g PL/SQL编程是数据库管理与开发领域中的一个重要主题,它涉及了如何在Oracle数据库环境中高效地编写过程化SQL语句。Oracle的PL/SQL是一种强大的编程语言,它结合了SQL的查询能力与传统的编程语言特性,...
Oracle 8 PL/SQL程序设计是一门深度探讨Oracle数据库中PL/SQL编程语言的应用技术的主题。PL/SQL,全称Procedural Language/Structured Query Language,是Oracle数据库提供的一种过程化编程语言,它结合了SQL的查询...
第二天的课程则进一步深入到错误处理、过程和函数、PL/SQL包的使用、触发器、事务管理、调试、SQL调优,甚至可选的JAVA集成。这些内容旨在让你掌握更高级的PL/SQL技巧,如异常处理、模块化编程和性能优化。 学习PL/...
PL/SQL包(Packages)是将相关的过程、函数、变量和类型组织在一起的结构,这种封装方式提高了代码的重用性和模块化,使得代码管理更加有序。 1. **包的概念**:包由两个部分组成——声明部分和执行部分。声明部分...
标题“PL/SQL Quiz”指的是一个关于PL/SQL编程语言的练习或测试,可能是为了帮助学习者提升在数据库管理和编程方面的能力。PL/SQL是Oracle数据库系统中的过程化语言,结合了SQL查询语言和传统的编程元素,常用于开发...
2. **PL/SQL块**:了解PL/SQL程序的基本组成单元——匿名块和命名块(存储过程、函数、包),以及如何编写、调试和执行这些块。 3. **游标**:理解游标的概念,如何在PL/SQL中声明、打开、提取数据和关闭游标,以及...
- 结合了SQL的数据操作能力和过程化编程语言的控制能力。 - 支持声明变量、定义函数和过程。 - 可以捕获并处理运行时错误。 #### 第二章 PL/SQL基础 - **块结构**: - PL/SQL采用块结构,每个块可以包含多个子...
PL/SQL是Oracle数据库系统中的一个核心组件,全称为Procedural Language/SQL,它将SQL(结构化查询语言)与过程式编程语言相结合,为数据库开发者和管理员提供了强大的数据处理和管理能力。"PL/SQL 1001原版"可能是...
PL/SQL,全称为Procedural Language/Structured Query Language,是Oracle数据库的一种扩展,它将SQL(结构化查询语言)与过程式编程语言相结合,为数据库管理提供了强大的编程能力。以下是对PL/SQL的一些核心知识点...
不过需要注意的是,MySQL 使用的是自己的存储过程语言——MySQL 存储过程语言,而非 PL/SQL。因此,在使用 PL/SQL Developer 连接 MySQL 时,需要使用特定的连接插件,并且可能无法充分利用 PL/SQL Developer 的全部...
- **定义**: 包是用来组织PL/SQL类型、过程、函数和异常等的容器。 - **结构**: 包由规范(SPECIFICATION)和主体(BODY)两部分组成。 - **作用**: 提高代码的复用性和维护性。 #### 10. 触发器 - **定义**: ...
《Introduction to Oracle SQL and PL/SQL》是一本专为初学者设计的教程,全面涵盖了Oracle数据库管理系统中的核心语言——SQL(结构化查询语言)和PL/SQL(过程化语言/SQL)。这本书分为两卷,旨在帮助读者从基础到...
2. **PL/SQL块**:讲解了PL/SQL的三种块类型——匿名块、存储过程和函数,以及它们在数据库管理中的应用。 3. **游标**:详述了如何使用游标进行数据检索和操作,以及游标在循环和动态SQL中的作用。 4. **异常处理...
1. **基本操作实现**:包括数据元素的插入、删除、查找等操作,这需要理解每个数据结构的内部工作原理,并能用C语言编写相应的函数。 2. **算法分析**:涉及时间复杂度和空间复杂度的计算,理解算法效率的重要性,...
标题与描述明确指出了本文档的主题——“精通Oracle 10g Pl/SQL编程”。Oracle 10g是Oracle公司于2004年发布的一个数据库管理系统版本,而Pl/SQL(Procedural Language for SQL)则是Oracle数据库内置的一种过程化...
### 精通Oracle 10g PL/SQL编程知识点概览 #### 一、PL/SQL编程基础 - **PL/SQL概述**:PL/SQL(程序化SQL)是Oracle数据库的一种内置过程语言,它扩展了标准SQL的功能,允许在SQL语句之间嵌入流程控制语句,支持...