文章来源:http://www.itnose.net/detail/6033960.html
更多文章:http://www.itnose.net/type/97.html
PL/SQL子程序 包括函数和过程。这里的函数指的是用户自己定义的函数,和系统函数是不同的。子程序一般是完成特定功能的PL/SQL程序块,并且具有一定的通用性,可以被不同的应用程序多次调用。Oracle提供可以把PL/SQL程序存储在数据库中,并可以再任何地方来运行它。这样就叫做存储过程或者是函数。过程和函数的唯一区别就是函数总是向调用者返回数据,而过程则不返回数据。
函数
如果用户要经常执行某些操作,并且需要返回特定的数据,那么就可以将这些操作构造成一个函数。
可以使用SQL语句定义函数。
基本语法:
create or replace function fun_name(argument [in | out | in out ]datatype ...)
return datatype
is | as
-- 需要定义的变量 ,记录类型 , 游标
begin
--函数的执行体
exception
--处理出现的异常
end ;
其中,return datatype , 是要返回数据的类型。IN参数标记表示传递给函数的值在函数执行中不改变;OUT标记表示一个值在函数进行计算并通过该参数传递给调用语句;IN OUT 标记表示传递给函数的值可以变化并传递给调用语句。
例:定义一个返回hello 的函数
create or replace function hello
return varchar2
is
begin
return 'Hello World';
end ;
执行 ,Function created ,函数创建成功。
函数的调用,与Oracle内置函数的调用相同,可以使用select hello from dual ;进行调用,也可以使用PL/SQL语句进行调用 :
begin
dbms_output.put_line(hello);
end ;
例:创建带参数的helloworld函数
create or replace function helloworld(str varchar2)
return varchar2
is
begin
return 'Hello' || '_' ||str ;
end ;
函数的调用要在函数名称后面加上参数,即:select helloworld('World') from dual ;使用Pl/sql的调用除了加上参数外与上面相同,不在赘述。
例:求一个部门中,员工的工资总数的函数
create or replace function get_sal(dept number)
return number
is
v_sum number(10) := 0 ;
cursor sal_cursor is select sal from emp where deptno = dept ;
begin
for c in sal_cursor loop
v_sum := v_sum + c.sal ;
end loop ;
return v_sum ;
end ;
存储过程
存储过程,可以被多个应用程序调用,也可以向存储过程传递参数,向存储过程传回参数。
基本语法
create or replace procedure pro_name(argument [in | out | in out ]datatype ...)
is | as
-- 需要定义的变量 ,记录类型 , 游标
begin
--函数的执行体
exception
--处理出现的异常
end ;
例:使用存储过程,求部门的工资总和
create or replace procedure get_sal1(dept number ,sumsal out number)
is
cursor sal_cursor is select sal from emp where deptno = dept ;
begin
sumsal := 0 ;
for c in sal_cursor loop
sumsal := sumsal + c.sal ;
end loop ;
dbms_output.put_line(sumsal);
end ;
存储过程的调用:
declare
v_sum number(10) := 0 ;
begin
get_sal1(30 , v_sum);
end ;
调用格式:
CALL | EXCEUTE procedure_name(arg_list) ;
可以使用show error 命令来提示源码的错误位置。使用user_error 数据字典来查看各存储过程的错误位置。
删除过程和函数
删除过程
语法如下:
DROP PROCEDURE[USER.]procedure_name ;
删除函数
语法如下:
DROP FUNCTION [USER.]function_name ;
相关推荐
6. **子程序**:PL/SQL支持函数和过程的定义,这些子程序可以在多个地方重复使用,降低了代码的冗余。 7. **包(Packages)**:包是将相关的类型、变量、常量、过程和函数组合在一起的命名实体,便于管理和重用。 ...
1. **PL/SQL基础**:涵盖PL/SQL的基本语法,包括变量声明、常量定义、条件语句(IF-THEN-ELSIF-ELSE)、循环结构(WHILE, FOR)、异常处理(BEGIN-EXCEPTION-END)以及子程序(PROCEDURE和FUNCTION)的创建与调用。...
4. **子程序**:学习如何定义和调用函数、存储过程,以及了解参数传递的方式,包括IN、OUT、IN OUT参数。 5. **游标**:掌握游标的使用,包括声明、打开、关闭、提取数据等操作,以及如何在PL/SQL中进行动态SQL处理...
1. **PL/SQL简介**:PL/SQL是Oracle数据库的内置编程语言,用于创建存储过程、函数、触发器和包。它的语法基于SQL,但增加了流程控制、异常处理和数据类型等特性。 2. **变量和数据类型**:PL/SQL支持多种数据类型...
在PL/SQL中,我们可以编写存储过程、函数、触发器、游标和异常处理等。这些组件对于数据库的业务逻辑处理至关重要,可以提高数据操作的安全性,减少网络通信,同时提高性能。 在"plsql_day02"这个压缩包文件中,很...
3. **子程序**:教材会详细讲解函数(Function)和过程(Procedure)的创建和调用。函数返回值,而过程不返回值,它们都可以接受参数并执行特定任务。 4. **游标**:在处理大量数据时,游标(Cursor)是非常重要的...
《ORACLE PL/SQL 程序设计(第五版)》是Oracle数据库开发领域的一本经典教程,专注于讲解如何使用PL/SQL这一强大的过程化语言进行数据库编程。这本书旨在帮助读者掌握PL/SQL的基本概念、语法和高级特性,以便在实际...
12. **数据库对象的DDL操作**:学习如何在PL/SQL中创建、修改和删除数据库对象,如表、视图、索引和存储过程。 13. **PL/SQL与SQL的集成**:了解如何在PL/SQL中嵌入SQL语句,以及SQL语句如何与PL/SQL逻辑相互配合。...
4. 子程序与包:PL/SQL允许定义函数、过程和包,用于封装代码,提高可重用性。了解如何定义和调用这些子程序。 5. 异常处理:PL/SQL提供了一套完整的异常处理机制,学习者需要学会如何捕获和处理运行时错误。 三、...
Oracle数据库是全球广泛使用的大型关系型数据库管理系统之一,SQL(结构化查询语言)是与所有关系数据库进行交互的标准语言,而PL/SQL是Oracle数据库特有的编程语言,它扩展了SQL的功能,使得数据库管理、开发和维护...
4. **子程序**:PL/SQL支持函数和过程的创建,它们可以封装一系列的操作并在需要时调用,提高代码的复用性和可维护性。 5. **异常处理**:PL/SQL内置了异常处理机制,允许程序员预定义和捕获运行时错误,以优雅的...
包是PL/SQL中的高级特性,用于组织相关的过程、函数和其他对象。包分为包规范(PACKAGE SPECIFICATION)和包体(PACKAGE BODY)。包规范声明包的公共接口,包体实现这些接口。包可以隐藏内部实现,提高代码安全性。...
8. **存储过程和函数**:学习如何创建和调用存储过程和函数,以及它们在数据库应用程序中的作用。 9. **触发器**:理解触发器的工作原理,何时以及如何使用触发器来自动化数据库操作,如在数据更改前后的自动检查或...
共分为7部分(7个pdf文档): 第一部分:PL/SQL介绍及开发环境 ...2.PL/SQL开发和运行环境 3.跟踪和调试 第二部分:非对象功能 4.创建子程序和包 5.使用子程序和包 6.数据库触发器 7.数据库作业和文件输入输出
包是一种组织PL/SQL元素(如过程、函数和变量)的方式,可以提高代码的复用性和封装性。 5. **游标**:游标是处理单个结果集中的行的机制。在PL/SQL中,可以声明、打开、提取和关闭游标来逐行处理查询结果。 6. **...
PL/SQL(Procedural Language/Structured ...通过编写简单的脚本、存储过程和函数,逐步掌握PL/SQL的精髓,才能在Oracle数据库开发中游刃有余。对于初学者来说,找到合适的资源和教程,如本文档,是快速入门的关键。
PL/SQL的主要组成部分包括变量声明、条件语句(如IF-THEN-ELSE)、循环结构(如WHILE和FOR)、异常处理以及存储过程和函数的定义。它允许开发人员编写能够处理大量数据的高效代码,并通过游标来逐行处理查询结果。...
PL/SQL 用户指南与参考 第一章 PL/SQL一览 第二章 PL/SQL基础 第三章 PL/SQL数据类型 ...第八章 PL/SQL子程序 第九章 PL/SQL包 第十章 PL/SQL对象类型 第十一章 本地动态SQL 第十二章 PL/SQL应用程序性能调优
你将了解到PL/SQL如何作为Oracle数据库中的一个内置编程环境,如何编写和执行存储过程、函数和触发器。 第二章“访问Oracle”将探讨如何通过PL/SQL连接到Oracle数据库,使用连接字符串、用户认证和游标来操作数据。...
包包含一组相关的函数和过程,可以有公共的变量和常量。 5. **异常处理**:PL/SQL的异常处理机制允许程序员预定义和自定义异常,通过EXCEPTION部分捕获和处理错误。 6. **游标**:游标用于处理结果集,允许在循环...