不好意思,搞错了,应为:
create or replace function strtoint(@value varchar)
return integer
as
declare @tempint integer;
declare @return_data integer;
declare @count integer;
declare @len integer;
declare @tempstr varchar(10);
begin
@tempstr:=rtrim(ltrim(@value));
@len:=length(@tempstr);
@count:=1;
@return_data:=0;
while (@count<=@len) loop
if (substr(@tempstr,@count,1)='0') then
@tempint:=0;
else if (substr(@tempstr,@count,1)='1') then
@tempint:=1;
else if (substr(@tempstr,@count,1)='2') then
@tempint:=2;
else if (substr(@tempstr,@count,1)='3') then
@tempint:=3;
else if (substr(@tempstr,@count,1)='4') then
@tempint:=4;
else if (substr(@tempstr,@count,1)='5') then
@tempint:=5;
else if (substr(@tempstr,@count,1)='6') then
@tempint:=6;
else if (substr(@tempstr,@count,1)='7') then
@tempint:=7;
else if (substr(@tempstr,@count,1)='8') then
@tempint:=8;
else if (substr(@tempstr,@count,1)='9') then
@tempint:=9;
else
return 0;
end if;
@return_data:=@return_data*10+@tempint;
@count:=@count+1;
end loop;
return @return_data;
end;
create or replace function strtoint(@value varchar)
return integer
as
declare @tempint integer;
declare @return_data integer;
declare @count integer;
declare @len integer;
declare @tempstr varchar(10);
begin
@tempstr:=rtrim(ltrim(@value));
@len:=length(@tempstr);
@count:=1;
@return_data:=0;
while (@count<=@len) loop
if (substr(@tempstr,@count,1)='0') then
@tempint:=0;
else if (substr(@tempstr,@count,1)='1') then
@tempint:=1;
else if (substr(@tempstr,@count,1)='2') then
@tempint:=2;
else if (substr(@tempstr,@count,1)='3') then
@tempint:=3;
else if (substr(@tempstr,@count,1)='4') then
@tempint:=4;
else if (substr(@tempstr,@count,1)='5') then
@tempint:=5;
else if (substr(@tempstr,@count,1)='6') then
@tempint:=6;
else if (substr(@tempstr,@count,1)='7') then
@tempint:=7;
else if (substr(@tempstr,@count,1)='8') then
@tempint:=8;
else if (substr(@tempstr,@count,1)='9') then
@tempint:=9;
else
return 0;
end if;
@return_data:=@return_data*10+@tempint;
@count:=@count+1;
end loop;
return @return_data;
end;
create or replace function strtoint(value varchar)
return integer
is
tempint integer;
return_data integer;
count integer;
len integer;
tempstr varchar(10);
begin
......
end ;
ORA-00604: error occurred at recursive SQL level 1
ORA-01000: maximum open cursors exceeded
以下语句oracle中好像不支持:
if not exists (select * from tablea where ....) then
....
end if;
我该怎样用其它方法实现呢?
select a=count(*) from tablea where...
if a>0 then
...
endif;
---Thank you very much!