| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1181 人关注过本帖
标题:存储过程、函数定义的注意事项,超详细,精心测试所得啊,参考价值颇大!共 ...
只看楼主 加入收藏
h781458175
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2011-2-7
结帖率:55.56%
收藏
 问题点数:0 回复次数:1 
存储过程、函数定义的注意事项,超详细,精心测试所得啊,参考价值颇大!共分享!
--=====================================================================================================
--前记:
--  入参(in)、出参(out)、出入参(in out)
--  in:代码块开始时就已经有值,且在代码执行过程中不能更改其值
--  out:代码块开始时其无值,可以在代码块中对其赋值
--  in out:代码块开始时可以有值也可以无值,不管有值没值都可以在代码块中对其重新赋值
--  函数与存储过程中都可以包含以上参数类型,并且可以包含多个。
--笔记:
--1.函数可以有若干个出参和若干个入参,且必须有一个返回值;存储过程可以有若干个出参和若干个入参,且没有返回值
--2.函数若没有出参,则有两种调用方法:一是用select语用调用;二是在代码块中调用:首先定义一个变量(如a),随后写
--    代码如下:"a:=函数名(入参1,入参2,....);",以变量(此处为a)接收返回值;另在代码块中还可以写代码如下:“
--    select 函数名(入参1,入参2,....) into a from dual;",但不能写作“select 函数名(入参1,入参2,....) from dual;"
--    当然在代码块外是可以这么写的。
--  存储过程若没有出参,则也有两种调用方法:一是用"call 存储过程名(入参1,入参2,....);”调用;二是在代码块中
--    调用:代码形如"存储过程名(入参1,入参2,....);",如此即完成调用。
--3.函数若有出参,则不能再用select语句调用,上述第2点中提及的所有用select调用的方法都不能再用了,它的调用方法
--    只剩下一种,即在代码块中(因为必须有一个变量去接收出参):先定义用以接收出参与返回值的变量,再写形如
--    下的代码调用 "返回值变量名:=函数名(入参1,入参2,....,出参变量名1,出参变量名2,.....);"
--  存储过程若有出参,则也只剩下一种方法调用,即在代码块中进行调用:方法基本同有出参的函数,只是没有返回值
--4.包中的函数与存储过程都可以运用变量
--  包中的函数与存储过程可以有多个入参与出参(函数还必须有返回值)
--  一个包中可以有多个函数与多个方法
--5.包的定义分为两部分:一是包头,其内只定义函数(或存储过程)的名称、参数个数与类型、返回值类型,其实只是定义一个
--  函数头,类似于java中的接口;二是包体,其内定义函数(或存储过程)的具体实现,书写时要注意几点:(1)第一个函数或
--  存储过程定义时形如:”as 函数头(存储过程头) as 函数体(存储过程体) end 函数名(存储过程名);"函数头之前的as不可少
--  ,函数头与第二个as之间不能有分号;(2)定义第二个及其之后的函数体(存储过程体)时,代码形如”函数头(存储过程头)
--   as 函数体(存储过程体) end 函数名(存储过程名);",规则同定义第一个时基本相同,只是函数头前不能再有as了
--6.包中的函数与存储过程在调用时都应该加包名,形如:包名.函数名(或包名.存储过程名)。
--=====================================================================================================

此是我作测试时的例子,仅供参考
Oracle--包、存储过程与函数.rar (2.49 KB)
搜索更多相关主题的帖子: 价值 
2013-06-13 22:19
oliver2891
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2007-10-14
收藏
得分:0 
不错,学习一下
2013-10-23 22:37
快速回复:存储过程、函数定义的注意事项,超详细,精心测试所得啊,参考价值颇大 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.038168 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved