博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PLSQL基础(四)储存过程与函数
阅读量:4221 次
发布时间:2019-05-26

本文共 973 字,大约阅读时间需要 3 分钟。

储存过程

 

CREATE OR REPLACE PROCEDURE  过程名

     ...           --参数定义部分

 )

IS

   ...             --局部变量定义部分

BEGIN

  ...               --可执行部分

EXCEPTION

...                  --异常处理部分

END 过程名;

 

在END后可以加上储存过程名,也可以不加。如果要在END后加过程名,则必须要和前面的存储过程名相同。

 

在定义一个储存过程参数时,不能指定CHAR类型和VARCHAR2类型形参的长度,也不能指定NUMBER形参的精度和标度,这些约束有实参来传递。

 

 

函数:

储存过程和存储函数有不同之处,储存过程只能作为一个PLSQL语句调用,而函数作为表达式的一部分调用。并且他们的定义部分,可执行部分和异常处理部分是不同的

CREATE OR REPLACE FUNCTION  函数名

  ...   --参数

  )

RETURN  return_datatype   --函数返回值类型

IS

...        --局部变量定义

v_RreturnValue    return_datatype;

BEGIN

...          --函数处理部分

RETURN v_RreturnValue;

EXCEPTION

...

END 函数名;

 

 

函数的返回值

在函数内,是通过RETURN语句来返回值的。

在函数体中可以有多条RETURN语句,但是只能有一条被执行,在函数结束的时候,如果没有执行RETURN语句会产生错误。

 

 

函数与储存过程的相同的

都可以通过OUT模式的参数返回一个或多个值。

代码都有定义部分,可执行部分和异常处理部分

都可以使用缺省值

都可以用位置表示法和命名表示法。

 

在使用储存函数与储存过程时,一般情况下,如果只有一个返回值,则使用函数;如果有多个返回值则使用储存过程,尽管函数的形参可以是OUT模式,当时一般不这样使用。

 

 

删除过程和函数

DORP PROCEDURE 储存过程名;

DROP FUNCTION 函数名;

 

 

库存子程序和局部子程序

库存子程序,是由CREATE命令创建,并可以在其他PLSQL块中调用.他们在创建子程序时要进行编译,并将编译后的代码存储在数据库中,当子程序被调用时,编译后的代码从数据看中读出并执行。

一个子程序也可以在块的定义部分创建,这样的子程序被叫作局部子程序

局部子程序只能在定义部分的最后被创建

转载地址:http://mjlmi.baihongyu.com/

你可能感兴趣的文章
UVM:8.2.4 factory 机制的调试
查看>>
UVM:8.3.1 重载transaction
查看>>
UVM:8.3.2 重载sequence
查看>>
leetcode171.[math] Excel Sheet Column Number
查看>>
Log4j配置
查看>>
java发送https请求
查看>>
java发送https请求证书问题
查看>>
js新消息提醒
查看>>
js窗体消息提醒
查看>>
深入Hibernate映射文件(二)——<hibernate-mapping>的属性
查看>>
详解在Spring中进行集成测试
查看>>
Hibernate 的工具类
查看>>
Struts2中过滤器和拦截器的区别
查看>>
51单片机:led灯闪烁10次后熄灭
查看>>
安卓使用okhttp上传文件,服务端PHP接收
查看>>
51单片机:设计有四位数码管,设计3个按键,k1,k2,k3;k1为模式键,第一次按下,显示初始值,k2,k3有效,k2按一次初值加1,k3按一次初值减1;k1第二次按下停止;k1第三次按下清零;
查看>>
安卓:阿里逆地理编码,可直接拿去用
查看>>
thinkphp源码没问题却各种报错,Namespace declaration statement has to be the very first statement in the script
查看>>
android:dkplayer中ijkplayer延迟长的问题,达到秒开的结果
查看>>
安卓:okhttp请求,获取返回数据
查看>>