读书人

sqlserver2000函怎么成oracle9i

发布时间: 2012-04-03 12:38:19 作者: rapoo

sqlserver2000函如何成oracle9i函?
如:
CREATE TABLE dbo.Dept(
id int identity(1,1),
Parent numeric(2),
Name varchar(1),
Type numeric(1)
)

INSERT INTO Dept(Parent,Name,Type)
select 0, 'A ',1
union all select 1, 'B ',2
union all select 1, 'C ',2
union all select 2, 'D ',3
union all select 2, 'E ',3
union all select 2, 'F ',3
union all select 3, 'G ',2
union all select 7, 'H ',4
union all select 8, 'I ',4

SELECT * FROM Dept

-- drop function dbo.fn_string
create function dbo.fn_string(@id numeric(2))
returns varchar(100)
as
begin
declare @s1 varchar(100)
declare @parent1 numeric(2),@name1 varchar(1),@type1 numeric(2)
set @s1= ' '
select @parent1=parent,@name1=name,@type1=type from Dept where id=@id
if @type1 <=2
begin
select @s1=@name1
end
else
begin
select @s1=dbo.fn_string(@parent1)+ '\ '+@name1
end
return(@s1)
end

SELECT ID,Name,FullPath=dbo.fn_string(id) FROM Dept
ORDER BY ID

段sqlserver2000函如何成oracle9i函?且如何用?

!

[解决办法]
SELECT ID,Name,fn_string(id) FullPath
FROM Dept
ORDER BY ID
--oracle中可以这样调用

读书人网 >oracle

热点推荐