create or replace function get(p_id in varchar2)
return varchar2
is
Result varchar2(100);
cursor rad_cursor(v_id varchar2) is
select name from b
where id=v_id ;
v_count Number;
begin
v_count:=0;
Result:='';
for v_sor in rad_cursor(p_id) loop
if v_count=0 then
Result:=v_sor.name;
v_count:=v_count+1;
else
Result:=Result||','||v_sor.name;
end loop;
return(Result);
end get;
/select id,get(id) name from b group by id;
return varchar2
is
Result varchar2(100);
cursor rad_cursor(v_id varchar2) is
select name from b
where id=v_id ;
v_count Number;
begin
v_count:=0;
Result:='';
for v_sor in rad_cursor(p_id) loop
if v_count=0 then
Result:=v_sor.name;
v_count:=v_count+1;
else
Result:=Result||','||v_sor.name;
end loop;
return(Result);
end get;
/select id,get(id) name from b group by id;
解决方案 »
- 违背这数据库三个范式原则去设计数据库
- oracle 动态表 数据插入
- MySQL里面KEY关键字和foreign key区别?
- 设置 log_buffer 参数
- 请各位高手 优化我这条SQL语句
- 软件在写操作数据库时不稳定的问题
- CBX RIA:面向大型数据库关键领域的RIA开发框架
- 祝學:ORACLE建表、存儲過程問題?
- select * from test where char1 like '%中%'; 报错,请进!Ora_Do failed (ORA-01403:
- oracle数据库学习
- 我的机器改名后oracle起不来,请教各位大侠怎么解决?
- 在oracle中,我怎么启动不了监听程序,怎么办(急),请大家帮助啊
一条SQL肯定出不来吗?
呵呵,少了句end if;
还有unit_id是什么类型?CREATE OR REPLACE FUNCTION GetUnitOldName(Unit_ID in varchar2)
return varchar2
is
strUnitOldName varchar2(100);cursor Unit_cursor(u_id varchar2) is
select Unit_Name as Name from T1903 where Unit_id=u_id and Name_Order<>'1';
Unit_Num Number;begin
Unit_Num:=0;
strUnitOldName:='';
for Unit in Unit_cursor(Unit_ID) loop
if Unit_Num=0 then
strUnitOldName:=Unit.Name;
Unit_Num:=Unit_Num+1;
else
strUnitOldName:=strUnitOldName||','||Unit.Name;
end if;
end loop;
return(strUnitOldName);
end GetUnitOldName;
上面这句可以写成end;吗?
有什么区别
select code,max((case when orde=1 then name end)) name1 ,
max((case when orde=2 then name end)) name2,
max((case when orde=3 then name end)) name3,
max((case when orde=4 then name end)) name4,
max((case when orde=5 then name end)) name5,
max((case when orde=6 then name end)) name6
from test
group by code ) tt