oracle函数返 varchar2类型,怎么会报错了?

createorreplacefunctionget_员工信息(as_员工名称varchar2)returnvarchar2is部门编号varchar2(15);begi... create or replace function get_员工信息(as_员工名称 varchar2)
return varchar2 is
部门编号 varchar2(15);
begin
select 部门编号
into 部门编号
from base_员工信息表
where 员工姓名 = as_员工名称;
return 部门编号;
end get_员工信息;

就是简单的根据员工信息,返回员工编号,或者返回部门编号。好像返回number类型都没有问题,如果是返回varchar2就报错!
展开
 我来答
zjy198518
2013-03-04 · TA获得超过867个赞
知道小有建树答主
回答量:777
采纳率:80%
帮助的人:567万
展开全部
是不是长度有长度,在表中字段是20的长度,在函数中你只给了15,如果表中数据长度刚好大于15就报错了,另外,你这个变量名怎么跟字段名称一样了,最好有所区别吧,容易混淆
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
badkano
2013-03-03 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144777 获赞数:885365
团长

向TA提问 私信TA
展开全部
你看你部门编号这个字段在表里是什么类型的
要是是number型的话,返回值那就写上return to_char(部门编号);
更多追问追答
追问
本来就是varchar2的
追答
表结构发来,顺便给几条数据
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
orcl1999
2013-03-04 · TA获得超过405个赞
知道小有建树答主
回答量:661
采纳率:90%
帮助的人:78.3万
展开全部
检查一下你调用这个函数的地方,是不是被赋值的对象是数字型的?
比如在调用的地方写dept_no:=get_员工信息(...),而dept_no这个变量声明为数字了?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
哥是放牛的
2013-03-04 · TA获得超过171个赞
知道答主
回答量:130
采纳率:0%
帮助的人:45.7万
展开全部
部门编号本身是number类型吧,你先把他转换成Varchar2类型啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
云笼春芳轻衣寒
2013-03-12
知道答主
回答量:3
采纳率:0%
帮助的人:4487
展开全部
select to_char(部门编号)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式