分享这个脚本,主要是因为一本书《精通Oracle 10g PL SQL编程》。在这本书中,离不开这两张表。
两张表建立后,下面向表中添加数据
现在基本的准备工作已经完成,想要学习Oracle开发知识就可以基于这两张表进行练习。今天想对我学习的过程和函数小结一下,那么它们的含义是什么呢?其中过程用于执行特定操作,函数则用于返回特定数据。
过程的优点:
1)只在创建时进行编译,提高数据库执行速度,减少网络通信量。
2)对数据库进行复杂操作时,可将此复杂操作用过程封装起来与数据库提供的事务处理结合一起使用。
3)可以重复使用,减少数据库开发人员的工作量。
4)安全性高,可设定只有某些用户才具有对指定过程的使用权。
5)分布式工作。应用程序和数据库的编码工作可以分别独立进行,而不会相互压制。
过程语法:
create [or replace] procedure procedure_name
(argument1 [mode1] datatype1, argument2 [mode2] datatype2,...)
is[as]
PL/SQL Block;
procedure_name用于指定过程名称;argument1,argument2等则用于指定过程的参数;is或as用于开始一个 PL/SQL块。当指定参数数据类型时,不能指定其长度。当建立过程时,既可以指定输入参数(in),也可以指定输出参数(out)及输入输出参数(in out)。如果不指定参数模式,则默认为输入参数;如果要定义输出参数,那么需要指定out关键字;如果要定义输入输出参数,则需要指定in out关键字。
--建立过程,不带任何参数
call out_time();
在PL/SQL中调用exec out_time会出现这个Error
请在Oracle SQL*Plus中运行,或者使用命令行提示符。
--建立过程,带有in参数
--建立过程,带有out参数
--建立过程,带有in out参数
--参数传递变量和数据
位置传递
名称传递
组合传递
函数语法:
create [or replace] function function_name
(argument1 [mode1] datatype1,
argument2 [mode2] datatype2,
...)
return datatype
is | as
PL/SQL Block;
function_name用于指定函数名称;argument1、argument2等则用于指定函数的参数,同过程一样,当指定参数数据类型 时,不能指定其长度;return子句用于指定函数返回值的数据类型;is或as用于开始一个PL/SQL块。当建立函数时,在函数头部必须要带有 return子句,在函数体内至少要包含一条return语句。另外,我们既可以指定输入参数(in),也可以指定输出参数(out)及输入输出参数 (in out)。
--建立函数,不带任何参数
使用变量接收函数返回值
在SQL语句中直接调用函数
--建立函数,带有in参数
--建立函数,带有out参数
--建立函数,带有in out参数