这个函数有问题么?

delphisanding1 2009-10-08 03:51:43
1 create function function1
2 (v_num in table1.num%type,
3 v_name out number)
4 return varchar2(16)
5 is
6 v_none number(10,2);
7 begin
8 select name into v_name from table1 where num=v_num;
9 return v_name;
10 end function1;

为什么我创建完成后,会提示“警告: 创建的函数带有编译错误”?
...全文
70 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
delphisanding1 2009-10-08
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 shiyiwan 的回复:]
v_name out number
设置的是Number类型,但是return后面加的是varchar2
[/Quote]

哦~~~
我太粗心了
谢谢
delphisanding1 2009-10-08
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 hyrongg 的回复:]
SQL code
SQL>createorreplacefunction function1 (2 v_numin employees.employee_id%type,3 v_name outnumber4 )returnvarchar25is6 v_nonenumber(10,2);7begin8select first_nameinto v_namefro¡­
[/Quote]

为什么你的代码关键字是有颜色的?

是用的什么工具?
shiyiwan 2009-10-08
  • 打赏
  • 举报
回复
v_name out number
设置的是Number类型,但是return后面加的是varchar2
delphisanding1 2009-10-08
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 hyrongg 的回复:]
SQL code
SQL>createorreplacefunction function1 (2 v_numin employees.employee_id%type,3 v_name outnumber4 )returnvarchar25is6 v_nonenumber(10,2);7begin8select first_nameinto v_namefro¡­
[/Quote]

这位哥是跟6楼一个意思吗?
delphisanding1 2009-10-08
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 shiyiwan 的回复:]
申明了不用没问题的


is和as是等价的。
[/Quote]


谢谢

VARCHAR类型不是可变长的吗?

为什么会出现类型不匹配呢?
hyrongg 2009-10-08
  • 打赏
  • 举报
回复

SQL> create or replace function function1 (
2 v_num in employees.employee_id%type,
3 v_name out number
4 ) return varchar2
5 is
6 v_none number(10,2);
7 begin
8 select first_name into v_name from employees where employee_id=v_num;
9 return v_name;
10 end;
11 /

Function created

shiyiwan 2009-10-08
  • 打赏
  • 举报
回复
申明了不用没问题的


is和as是等价的。
delphisanding1 2009-10-08
  • 打赏
  • 举报
回复
可能是RETURN后面的参数类型不能带精度吧?

像VARCHAR2这样
delphisanding1 2009-10-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 johnnyhuawei 的回复:]
5    is

as 啊!
[/Quote]

is跟as不是等价的吗?

书上的例子是:is|as

说明是等价的啊?
cosio 2009-10-08
  • 打赏
  • 举报
回复
[Quote=引用楼主 delphisanding1 的回复:]
1  create function function1
2  (v_num in table1.num%type,
3  v_name out number)
4  return varchar2(16)
5    is
6    v_none number(10,2);
7    begin
8    select name into v_name from table1 where num=v_num;
9    return v_name;
10  end function1;

为什么我创建完成后,会提示“警告: 创建的函数带有编译错误”?
[/Quote]

6 v_name varchar2(16);
delphisanding1 2009-10-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 shiyiwan 的回复:]
return的v_name与第4行的类型不匹配

第6行的v_none变量没有用到。
SQL codecreatefunction function1(v_numin table1.num%type)returnvarchar2is
v_namevarchar2(16);beginselect nameinto v_namefrom table1where num=v_num;return v_name;end function1;


[/Quote]




这2个问题都会提示这种错误是吗?

还是其中有一个是无关紧要的?

申明了不用应该没问题吧?
johnnyhuawei 2009-10-08
  • 打赏
  • 举报
回复
5 is

as 啊!
shiyiwan 2009-10-08
  • 打赏
  • 举报
回复
return的v_name与第4行的类型不匹配

第6行的v_none变量没有用到。
create function function1(v_num in table1.num%type)  
return varchar2
is
v_name varchar2(16);
begin
select name into v_name from table1 where num=v_num;
return v_name;
end function1;


就是要流量 啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊大家多给评论 点赞 关注啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧