- 浏览: 150729 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
陈碧滔:
java获取工程目录路径 -
stevenjohn:
楼主能上传一下源代码吗?
ActiveMQ5.0实战三:使用Spring发送,消费topic和queue消息 -
指挥家:
讲的很好!
Foxmail6收发Web mail邮箱邮件实现原理 -
azhqiang:
谢谢你啊。呵呵
flex最全的表单验证
Oracle在数据库中引入了一种过程化编程语言,称为PL/SQL(Procedural Language/SQL).PL/SQL构建与SQL之上,可以用来编写包含SQL语句程序。其中包含这类语言的标准编程结构如下:
- 块结构
- 变量和类型
- 条件逻辑
- 循环
- 游标,其中保存着查询返回的结果
- 过程
- 函数
- 包,可以用来将过程和函数组合到一个单元中
通常,PL/SQL用于向数据库中加入业务逻辑。这种集中化的代码可以由任何能够访问数据库的程序调用,其中就包括C程序和Java程序。
块结构
PL/SQL程序可划分成称为块的结构,每一个块包含有PL/SQL和SQL语句。典型的PL/SQL代码包含如下的结构:
- [DECLARE
- declaration_statements
- ]
- BEGIN
- executable_statements
- [EXCEPTION
- exception_handing_statements
- ]
- END;
[DECLARE declaration_statements ] BEGIN executable_statements [EXCEPTION exception_handing_statements ] END;
声明和异常块是可选的,上述语法中的解释如下:
- declaration_statements 包含在声明块中,它负责声明该块其他部分将会使用的变量。这个变量对这个块来说是局部变量,也就是说不能从块的外部来访问这些变量。声明块总是放在块的开始位置。
- executable_statements 是块中实际可执行的语句。
- exception_handing_statements 中的语句负责处理可执行语句中可能发生的任何错误。
每一条语句都有分号结尾,整个块由关键字END标志结束。先看一个简单的例子:
- -- Created on 2010-5-20 by ADMINISTRATOR
- declare
- -- Local variables here
- width INTEGER;
- height INTEGER:=2;
- area INTEGER;
- i integer;
- begin
- -- Test statements here
- area:=6;
- width:=area/height;
- DBMS_OUTPUT.put_line('width='||width);
- EXCEPTION
- WHEN ZERO_DIVIDE THEN
- DBMS_OUTPUT.put_line('Division by zero');
- end;
-- Created on 2010-5-20 by ADMINISTRATOR declare -- Local variables here width INTEGER; height INTEGER:=2; area INTEGER; i integer; begin -- Test statements here area:=6; width:=area/height; DBMS_OUTPUT.put_line('width='||width); EXCEPTION WHEN ZERO_DIVIDE THEN DBMS_OUTPUT.put_line('Division by zero'); end;
变量和类型
变量声明中包含名称和类型,还可以通过%TYPE关键字定义变量类型,这个关键字告诉PL/SQL使用与表中指定列相同的类型。下面这个例子用%TYPE声明了一个变量,这个变量类型与product表中price列类型相同。
product_price product.price%TYPE
条件逻辑
在PL/SQL中,IF、THEN、ELSE、ELSIF和ENDIF等关键字用于执行条件逻辑。下面的语法说明了条件逻辑的用法:
IF condition1 THEN statement1 ELSIF condition2 THEN statement2 ELSE statement3 END IF;
循环
PL/SQL中包含三种循环:
简单循环:直到显式结束循环前一直运行。
WHILE循环:直到某个特定条件出现之前一直运行。
FOR循环:运行预先确定的次数。
简单循环
LOOP statements END LOOP;
要结束简单循环,可以使用EXIT或者EXIT WHEN语句。EXIT语句立即结束循环,EXIT WHEN语句在指定条件出现时结束循环。 举个简单例子:
LOOP counter:=counter+1; EXIT WHEN counter=5; END LOOP;
WHILE循环
WHILE循环在某个特定条件出现之前一直运行。
举个例子:
counter=0; WHILE counter<6 LOOP counter:=counter+1; END LOOP;
FOR循环
FOR循环会运行预先确定的次数,可通过给循环变量指定上限和下限来确定循环运行的次数,然后,循环变量在每次循环中递增或递减。语法如下:
FOR loop_variable IN [REVERSE] lower_bound ..upper_bound LOOP statements END LOOP;
如果使用了REVERSE则loop_variable每次减少1。
游标
当SELECT语句从数据库中返回的记录多余一条时,就可以使用游标。使用游标需要遵循以下5个步骤:
(1)声明一些变量,用于保存SELECT语句返回的列值。
(2)声明游标,并指定SELECT语句。
(3)打开游标。
(4)从游标中获取记录。
(5)关闭游标。
- declare
- v_username amc_base_user.user_name%TYPE;
- CURSOR v_user_cursor IS
- SELECT user_name FROM amc_base_user;
- begin
- OPEN v_user_cursor;
- LOOP
- FETCH v_user_cursor
- INTO v_username;
- EXIT WHEN v_user_cursor%NOTFOUND;
- DBMS_OUTPUT.put_line(v_username);
- END LOOP;
- CLOSE v_user_cursor;
- end;
declare v_username amc_base_user.user_name%TYPE; CURSOR v_user_cursor IS SELECT user_name FROM amc_base_user; begin OPEN v_user_cursor; LOOP FETCH v_user_cursor INTO v_username; EXIT WHEN v_user_cursor%NOTFOUND; DBMS_OUTPUT.put_line(v_username); END LOOP; CLOSE v_user_cursor; end;
注意:
1 声明完游标后此时游标并未打开,只有OPEN的时候才打开。
2 为了确定循环是否结束,可以使用布尔变量%NOTFOUND。当FETCH语句到达游标的最后一条记录时,这个变量为真。
3 游标使用完之后要及时关闭掉。
利用FOR循环的功能,可以增强在游标中访问记录的能力。当使用FOR循环时,可以不显式地打开和关闭游标----FOR循环会自动执行这些操作。
- declare
- v_username amc_base_user.user_name%TYPE;
- CURSOR v_user_cursor IS
- SELECT user_name FROM amc_base_user;
- begin
- FOR v_u IN v_user_cursor LOOP
- DBMS_OUTPUT.put_line(v_u.user_name);
- END LOOP;
- end;
declare v_username amc_base_user.user_name%TYPE; CURSOR v_user_cursor IS SELECT user_name FROM amc_base_user; begin FOR v_u IN v_user_cursor LOOP DBMS_OUTPUT.put_line(v_u.user_name); END LOOP; end;
发表评论
-
Oracle导出导入dmp文件(转)
2010-11-17 13:41 4669Oracle数据导入导出imp/exp ... -
row_number over(partition by col1 order by col2)
2010-10-28 11:16 1906row_number() OVER (PARTITION BY ... -
orcle中sys_connect_by_path的用法
2010-10-28 10:21 969sys_connect_by_path的几种 ... -
使用plsql一些常见的操作
2010-09-01 23:51 1007/**创建一个访问分析表*/ create table Ac ... -
oracle函数手册(带示例)
2010-07-30 15:12 792oracle函数手册 SQL中的单记录函数 1.ASCII 返 ... -
Oracle分析函数参考手册[下][转载自JavaEye]
2010-07-30 15:08 825=============================== ... -
Oracle分析函数参考手册[上][转载自JavaEye]
2010-07-30 15:07 775=============================== ... -
Oracle 分析函数的使用(zt)
2010-07-30 15:07 6792/11/2005 09:43 FPOracle 分析函数使用 ... -
Oracle分析函数参考手册
2010-07-30 15:06 67622/06/2005 12:22 FP Oracle从8.1. ... -
Oracle函数列表速查
2010-07-30 15:03 660PL/SQL单行函数和组函数详解 函数是一种有零个或多个参数 ... -
oracle分析函数(3)
2010-07-30 14:59 774【2】找出每个区域订单总额排名前3的大客户: SQL &g ... -
oracle分析函数(2)
2010-07-30 14:58 788注意这里有3条记录的订单总额是一样的。假如我们现在需要筛选排名 ... -
oracle分析函数(1)
2010-07-30 14:57 731一.分析函数(OVER) 目录: ============ ... -
用SQL语句添加删除修改字段
2010-07-27 14:19 1375增加字段alter table docdsp add dsp ... -
oracle 存储过程的基本语法
2010-07-13 18:57 6871.基本结构 CREATE OR REPLACE PROCED ... -
oracle 字符串连接
2010-06-28 15:26 892字符串连接 SQL> select 'abc' || ' ... -
系统重装后,oracle数据库中数据快速恢复
2010-06-18 15:56 14831. 准备工作把旧的ORACLE所有文件都COPY备份下来 ... -
SELECT INTO 和 INSERT INTO SELECT 两种表复制语句
2010-06-06 19:05 799Insert是T-sql中常用语句,Insert ... -
Oracle字符串处理函数
2010-06-02 19:27 1318项目中有涉及存储过程对字符串的处理,所以就将在网上查找到的资料 ...
相关推荐
### PL/SQL编程基础知识 #### 一、PL/SQL简介 PL/SQL(Procedural Language for SQL)是一种过程化语言,它结合了SQL的数据操纵功能和过程化语言的控制结构,使用户能够灵活地控制数据操作流程。作为Oracle数据库...
【PL/SQL编程】是Oracle数据库中用于数据库管理和应用程序开发的一种高级过程语言,它结合了SQL查询语言的威力和高级编程语言的灵活性。本章详细介绍了PL/SQL的基础知识,帮助初学者快速掌握该语言。 **4.1 PL/SQL...
pl/sql编程基础教程,内容丰富,适合初学者学习。
本书是一本逐步分解的,详尽的pl/sql编程教程,使用真实场景的试验、范例和练习来介绍读者所需的pl/sql编程技能,涵盖oracle 11g的最新特性。作者的写作手法源自于在哥伦比亚大学教授pl/sql编程技术的经验,深度...
### PL/SQL基础编程知识点详解 #### 一、PL/SQL概述 PL/SQL,全称为Procedural Language for SQL,是Oracle数据库特有的高级程序设计语言。它结合了SQL的数据处理能力和传统编程语言的控制结构,使开发者能够在...
这个"PL/SQL最新中文手册"显然是一份详细解释PL/SQL 7.0版本的指南,对于学习和精通Oracle数据库编程至关重要。以下是手册可能涵盖的一些核心知识点: 1. **PL/SQL基础**:手册可能会从基础开始,介绍PL/SQL的基本...
Oracle 10g PL/SQL 是Oracle数据库系统中用于创建和管理存储过程、函数、触发器等数据库对象的编程语言。本教程旨在为初学者提供一个全面的学习平台,同时也为经验丰富的开发者提供参考资料。PL/SQL是Oracle特有的...
1. **编程能力**:PL/SQL允许编写包含控制结构(如循环、条件语句)和异常处理的程序块,这些块可以存储在数据库中并按需调用,提高了数据库应用的灵活性和复杂性。 2. **数据处理**:通过PL/SQL,用户可以直接对...
PL/SQL编程教程电子书,全册,完整版。。。。
Oracle PL/SQL 编程及最佳实践 Oracle PL/SQL 是一种高级编程语言,用于开发 Oracle 数据库中的存储过程、函数和触发器。PL/SQL language 提供了强大的编程能力,可以实现复杂的业务逻辑,并且与 Oracle 数据库紧密...
Oracle PL/SQL是一种强大的编程语言,它将数据库管理和应用程序逻辑紧密结合起来,是Oracle数据库系统中的核心组件之一。这本书“Oracle PL/SQL实例编程”显然旨在深入讲解如何利用PL/SQL进行实际开发工作,通过实例...
Oracle PL/SQL编程是Oracle数据库管理系统中的重要组成部分,它是一种过程化语言,允许开发者编写复杂的数据库应用程序。在本次实验中,我们将重点学习PL/SQL的基本语法、控制结构、复合数据类型以及异常处理技术。 ...
pl/sal编程简介,介绍了pl/sql编程所用的基本语法,循环,条件,异常处理,自定义异常等等
Oracle PL/SQL是一种强大的编程语言,它结合了SQL的数据处理能力与PL的程序设计特性,是Oracle数据库系统中用于创建存储过程、函数、触发器和包的主要工具。在这个"Oracle PL/SQL实战(待续)"的主题中,我们将深入...
PL/SQL(Procedural Language/Structured Query Language)是Oracle数据库系统中用于数据库编程的一种扩展SQL语言。它结合了SQL的查询能力与过程化编程元素,使得开发者能够创建复杂的业务逻辑和数据库应用程序。PL/...
### Oracle PL/SQL编程知识点详解 #### 一、SQL与PL/SQL概述 - **SQL简介**:SQL(Structured Query Language)即结构化查询语言,是数据库管理领域中最广泛使用的标准化语言之一。由IBM最初提出并发展起来,后被...
《精通PL/SQL》这本书是针对Oracle数据库系统中PL/SQL编程语言的深度解析与实践指南,主要面向希望提升在Oracle环境下使用PL/SQL技能的专业人士。PL/SQL,全称为Procedural Language/Structured Query Language,是...
本书《精通Oracle10g PL/SQL编程》为读者提供了一个系统性的学习路径,从基础知识到高级应用,从具体技巧到最佳实践,涵盖了PL/SQL编程的方方面面。通过本书的学习,读者将能够有效地提高Oracle数据库编程的效率和...
PL/SOL是Oracle特有的编程语言,它不仅具有过程编程语言的基本特征(循环、条件分支等),而且还...本书不仅适合于PL/SQL初学者,而且也适合于有经验的PL/SQL编程人员,本书还可以作为Oracle培训班的教材或者辅助材料。
《精通Oracle 10g PL/SQL编程》是一本专门针对Oracle 10g版本的PL/SQL编程语言的权威指南书籍。Oracle 10g是甲骨文公司(Oracle Corporation)推出的数据库管理系统(DBMS)的一个重要版本,而PL/SQL是Oracle的存储...