oracle 存储过程 out参数 5

oracle存储过程里out调用如下createorreplaceproceduretest(numoutnumber(2))asbeginselectcount(*)i... oracle 存储过程里 out调用如下
create or replace procedure test( num out number(2))
as
begin
select count(*) into num from student;
end;
/
竟然报错了,调用这个是如何调用的
是否是先顶一个变量比如a,
然后执行execute test(a);
然后a就被赋值了,求教。
已经解决了,把参数里的参数长度去掉,但是为什么不知道。
展开
 我来答
cryspigger
2010-10-31
知道答主
回答量:3
采纳率:0%
帮助的人:0
展开全部
首先,恭喜你猜对了,要去掉参数。
想必这个规定是oralce本身定义好的规则。
仔细推敲一下,我想道理是这样的:
假设规定了传入参数的长度,一旦你传入的实际变量的长度超过定义的长度,那oralce怎么办? 还需要增加校验和提示吧?
这样以来莫不如不超过该类型的长度即可,大家用起来也方便:)

猜想你是和定义变量弄混了。变量的定义是要指定长度的。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pgkq74
2010-11-02 · TA获得超过344个赞
知道答主
回答量:390
采纳率:0%
帮助的人:200万
展开全部
动态SQL
using out v_erortx意思是insert into tab()......"这句中的变量用传出参数v_erortx绑定,比如动态SQL中有一个过程,而该过程的有个OUT 参数,此时就可以用USING OUT 的方式
Execute Immediate 'begin mypro1(:1,:2); end;'
Using In 1,Out v_erortx;
请参考
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lmonkey
2021-02-28 · 教育领域创作者
个人认证用户
lmonkey
采纳数:69 获赞数:176

向TA提问 私信TA
展开全部

MySQL教程4 MySQL8运算符、函数、存储过程及新增数据类型 17.之创建带有IN和OUT参数的存储过程 学习猿地

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wildcatqfj
2010-10-31 · 超过17用户采纳过TA的回答
知道答主
回答量:66
采纳率:0%
帮助的人:43.5万
展开全部
参数不允许精度,比如可以number,varchar2,不能使用number(2)、varchar2(2)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式