请问oracle存储过程在is后面声明的变量和begin语句块里面通过declare声明的有何区别啊,谢谢

procedureaward_terminal_user(i_region_codeinvarchar2,i_begin_busi_datenumber,i_end_bu... procedure award_terminal_user(
i_region_code in varchar2,
i_begin_busi_date number,
i_end_busi_date number,
o_ret_piont out number,
o_ret_code out varchar2,
o_ret_msg out varchar2)is

type t_RefCur is ref cursor;
v_cur t_RefCur;
v_sql varchar2(4000);
v_itotal number(8);
v_proc_exec_id number(8);

begin

delete from i_award_terminal where act_region_code = i_region_code and
sale_date = 20991231 and active_date >= i_begin_busi_date and active_date <= i_end_busi_date;

commit;

declare
v_done_code number(12); --受理编号
v_sale_date number(8); --销售时间
v_act_date number(8); --激活时间
v_busi_code number(8); --业务编号
v_model_id number(8); --终端产品
v_imei varchar2(30); --imei号
v_org_id number(8); --登录组织
v_standby2 NUMBER(8); --归属组织
v_county_code varchar2(4); --地市编号

上面这个列子在is后声明了几个变量,后来在begin里面有声明了几个变量,不知道有何区别啊,谢谢
这里需要局部变量吗,存储过程里面会有多个函数那样的东西吗
展开
 我来答
szg176976970
推荐于2018-05-18 · TA获得超过388个赞
知道小有建树答主
回答量:1322
采纳率:0%
帮助的人:473万
展开全部
范围上的区别,就像在方法外声明的变量可以用在多个方法内使用,而方法内声明的变量只能在该方法内使用。
mcdull8412
2010-10-21 · TA获得超过194个赞
知道答主
回答量:97
采纳率:0%
帮助的人:50.7万
展开全部
使用范围的区别,在IS 之后申明的变量,在整个包里面都可以用;但是在包体里面的declare里面申明的变量,好像只能在declare 的begin 和end 之间使用。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ren7_2000
2010-10-20 · TA获得超过231个赞
知道小有建树答主
回答量:360
采纳率:0%
帮助的人:298万
展开全部
应该无区别 都是局部变量
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式