CREATE FUNCTION TestFun (UserID varchar,DeptCode varchar )
RETURN number
IS
rec number;
result number;
BEGIN
result:= 1;
While DeptCode is not null loop
begin
select count(*) into rec from cdm_datarightuser where us_id = UserID and dp_code = DeptCode;
If (rec > 0) then
begin
result := 0;
exit;
end;
end if;
DeptCode := substr(DeptCode,1,length(DeptCode) - 2);
end;
end loop;
RETURN (result)
END
RETURN number
IS
rec number;
result number;
BEGIN
result:= 1;
While DeptCode is not null loop
begin
select count(*) into rec from cdm_datarightuser where us_id = UserID and dp_code = DeptCode;
If (rec > 0) then
begin
result := 0;
exit;
end;
end if;
DeptCode := substr(DeptCode,1,length(DeptCode) - 2);
end;
end loop;
RETURN (result)
END
解决方案 »
- 求助一个sql语句,万分谢过了
- oracle 统计排序的问题
- 请问NON-RECURSIVE STATEMENTS和RECURSIVE STATEMENTS有什么区别
- 我的配置文件bash_profile到底哪里没配对?
- oracle 大批量数据导入问题
- 求一调优SQL,查找耗时较多session对应的SQL
- oracle 922错误 ,imp的时候出错,求问解决方法
- 如何显示NLS_LANGUAGE参数的值
- 无法插入数据,打死也不用 Oracle
- 如何决定oracle表空间的递增量extented的大小?如果为500个并发用户,应为多少合适?
- 关于事务处理
- 如何写 oracle联合查询分页的sql语句
转换后的函数在PL/SQL中执行没有问题,但是在企业管理器中的状态为“INvalid”,使用“编译” 显示:“INvalid (Ln,Col):(1:1)”,还希望再帮我看看!!!谢谢!
RETURN (result);
END;
跪谢了!!!!!!
return number
as
rec number;
result number :=1;
begin
while deptcode is not null loop
select count(*) into rec from cdm_datarightuser where us_id=userid and dp_code=deptcode;
if(rec > 0) then
result :=0;
exit;
end if;
deptcode:=substr(deptcode,1,length(deptcode) -2);
end loop;
return (result);
end;
请问问什么要加上“out”呢?
我要给这个函数传入两个参数啊!!!请赐教!
请问问什么要加上“out”呢?
我要给这个函数传入两个参数啊!!!请赐教!in 表示输入参数
out 表示输出参数,可以取得返回值,
return number
as
rec number:=0;
v_deptcode varchar2(40):=deptcode;
begin
while v_deptcode is not null loop
select count(*) into rec from cdm_datarightuser where us_id=userid and dp_code=v_deptcode;
exit when (rec > 0);
v_deptcode:=substr(v_deptcode,1,length(v_deptcode) -2);
end loop;
return (1-(sign(rec)));
end;
/