oracle函数调用存储过程时为什么还写SQL语句
createorreplacefucntiongetnamereturnvarchar2ispnamevarchar2(20);beginstu_proc;selects...
create or replace fucntion getname return varchar2 is pname varchar2(20);
begin
stu_proc;
select sname into pname from student where sno=1;
return pname;
end; 展开
begin
stu_proc;
select sname into pname from student where sno=1;
return pname;
end; 展开
4个回答
展开全部
LZ给出来的是函数。。看2楼给出来的那个才是存储过程。。仔细看你create后面的是function(你单词还写错了),2楼create后面的是procedure,不一样的东西
函数本身就是用在SQL语句里的,比如常用的SUM(),COUNT()这个都是内置的函数,你建的那个是自定义的函数
存储过程是要用execute procedure命令单独调用的。。
函数本身就是用在SQL语句里的,比如常用的SUM(),COUNT()这个都是内置的函数,你建的那个是自定义的函数
存储过程是要用execute procedure命令单独调用的。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以把存储过程理解成sql语句的集合,其中可以带有逻辑
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
CREATE OR REPLACE PROCEDURE SPW_CTR_HOUR_SUM IS
NAME_VALUE cell %TYPE;
CURSOR CUR IS select a.name from cell a,TER_MEA_CTR_DATA_AGG b,Ter_mea_ctr_data_CELLTRANS c
where a.CGI=(select c.CGI from TER_MEA_CTR_DATA_AGG b,Ter_mea_ctr_data_CELLTRANS c where b.TargetCellId=c.cptr)
BEGIN
OPEN CUR;
LOOP:
FETCH CUR INTO NAME_VALUE;
EXIT WHEN CUR%NOTFOUND;
update TER_MEA_CTR_DATA_AGG set
ServingCellId=NAME_VALUE,TargetCellId=NAME_VALUE, HoCell1Id=NAME_VALUE;
END LOOP;
COMMIT;
END SPW_CTR_HOUR_SUM;
NAME_VALUE cell %TYPE;
CURSOR CUR IS select a.name from cell a,TER_MEA_CTR_DATA_AGG b,Ter_mea_ctr_data_CELLTRANS c
where a.CGI=(select c.CGI from TER_MEA_CTR_DATA_AGG b,Ter_mea_ctr_data_CELLTRANS c where b.TargetCellId=c.cptr)
BEGIN
OPEN CUR;
LOOP:
FETCH CUR INTO NAME_VALUE;
EXIT WHEN CUR%NOTFOUND;
update TER_MEA_CTR_DATA_AGG set
ServingCellId=NAME_VALUE,TargetCellId=NAME_VALUE, HoCell1Id=NAME_VALUE;
END LOOP;
COMMIT;
END SPW_CTR_HOUR_SUM;
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-02-12
展开全部
lz描述清楚一点
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询