`

PL/SQL编程—函数和包的创建

阅读更多

PL/SQL中有关函数和包创建的总结

1.函数的创建及调用

PL/SQL编程和其它语言的编程一样,有函数的创建其语法规则如下:

create or replace function function_NAME(parameter_NAME data_TYPE) return data_TYPE is

...

end function_NAME; 

 

其中function_NAME是函数名,parameter_NAME是参数名,data_TYPE是数据类型;

和其它语言函数不同的是PL/SQL的函数必须有返回值,即return data_TYPE;

is之后,end之前是函数体。

例:

create or replace function Fun_01(v_name varchar2) return number is

-- 声明变量
v_sals number(7, 2);

begin
  
  -- 执行语句
  select sal*12 into v_sals from emp where ename=v_name;
  return v_sals;
end Fun_01;

此例创建了一个名为Fun_01的函数,其参数是v_name,参数数据类型为varchar2,返回一个number类型的值,该函数的功能是计算并返回emp表中指定姓名的雇员的年薪。

函数创建以后就需要调用,调用函数的语法如下:

var variable_NAME data_TYPE;
call function_NAME(VALUE) into:variable_NAME;

其中variable_NAME是存放返回值的变量,data_TYPE是返回值的数据类型,function_NAME要调用的函数,VALUE是传入的参数值,into:variable_NAME表示将调用该函数得到的返回值存入变量中。

下面代码是对上例中创建函数的调用:

var v_sals number;
call Fun_01('SMITH') into:v_sals;

 

2.包和包体

和Java中一样,PL/SQL中的包是用来给函数和过程分类的。

创建一个包的语法如下:

create or replace package package_NAME is

...
end package_NAME;

其中package_NAME是要创建的包的包名;

is之后,end之前是包中存放的内容(包括函数、过程等)。

例:

create or replace package package_01 is
       procedure pro_04;
       function fun_02(v_empno number) return varchar;
end package_01;

 此例表明创建一个名为package_01的包,其中存放了一个名为pro_04的过程和一个名为fun_02的函数。

包体是对包的实现,更准确一点应该说是包中存放的过程、函数等的具体实现。其语法如下:

create or replace package body package_NAME is

...

end;

其中package body表明是包体的实现,package_NAME是要实现的包的包名;

is和end之间是包体具体的实现。

例:

create or replace package body package_02 is
       procedure pro_04(v_empno number) is
                  v_ename varchar2(10);
                  begin
                    select ename from emp where empno=v_empno;
                  end;
end package_02;
0
0
分享到:
评论

相关推荐

    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 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以及如何有效地使用它。...

    plsql_oracle 编程

    §7.6 删除过程、函数和包 13 §7.7 包的管理 13 第八章 触发器 13 §8.1 触发器类型 13 §8.1.1 DML触发器 13 §8.1.2 替代触发器 13 §8.1.3 系统触发器 13 §8.2 创建触发器 13 §8.2.1 触发器触发次序 13 §...

    plsql_oracle 8i 编程讲义

    §7.6 删除过程、函数和包 13 §7.7 包的管理 13 第八章 触发器 13 §8.1 触发器类型 13 §8.1.1 DML触发器 13 §8.1.2 替代触发器 13 §8.1.3 系统触发器 13 §8.2 创建触发器 13 §8.2.1 触发器触发次序 13 §...

    PLSQL基础教程

    §7.6 删除过程、函数和包 13 §7.7 包的管理 13 第八章 触发器 13 §8.1 触发器类型 13 §8.1.1 DML触发器 13 §8.1.2 替代触发器 13 §8.1.3 系统触发器 13 §8.2 创建触发器 13 §8.2.1 触发器触发次序 ...

    PLSQL程序设计

    §7.6 删除过程、函数和包 13 §7.7 包的管理 13 第八章 触发器 13 §8.1 触发器类型 13 §8.1.1 DML触发器 13 §8.1.2 替代触发器 13 §8.1.3 系统触发器 13 §8.2 创建触发器 13 §8.2.1 触发器触发次序 13 §...

    oracle学习资料

    §7.6 删除过程、函数和包 13 §7.7 包的管理 13 第八章 触发器 13 §8.1 触发器类型 13 §8.1.1 DML触发器 13 §8.1.2 替代触发器 13 §8.1.3 系统触发器 13 §8.2 创建触发器 13 §8.2.1 触发器触发次序 13 §...

    Oracle-PL/SQL教程

    详细讲解了PLSQL的基本语法,以及储存过程、函数、触发器、游标和包。文档中还包括例子和练习。

    H155-合集-大型数据库系统概论-实验.pptx

    大型数据库概论 Introduction of Large Database 实验2 PL/SQL编程 H155-合集-大型数据库系统概论-实验全文共24页,当前为第4页。 【实验目的】 1.掌握PL/SQL基础,包括PL/SQL语句块、变量、常用数据类型、运算符和...

    数据库基础

    §17.6 删除过程、函数和包 293 §17.7 包的管理 293 §17.7.1 包有关的数据字典 293 §17.7.2 包中无效对象的查询和编译 294 §17.7.3 包源代码的导出 296 第十八章 触发器 297 §18.1 触发器类型 297 §18.1.1 DML...

    Oracle8i_9i数据库基础

    §17.6 删除过程、函数和包 293 §17.7 包的管理 293 §17.7.1 包有关的数据字典 293 §17.7.2 包中无效对象的查询和编译 294 §17.7.3 包源代码的导出 296 第十八章 触发器 297 §18.1 触发器类型 297 §18.1.1 DML...

    Perl 实例精解(第三版).pdf

    15.5.5 范例15-6:ex6.pl Oracle上persons.sql的Perl ADO,无DSN 15.5.6 范例15-7:ex7.pl Oracle上的Perl DBI简单查询 15.5.7 范例15-8:ex8.ploracle上persons.sql的Perl DBI 15.6 练习:非编程 ...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    第三章 Sql查询与函数 一、 SQL概述 SQL(Structured Query Language)结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。同时也是数据库脚本文件的扩展名。  SQL...

Global site tag (gtag.js) - Google Analytics