create or replace function getName(insid IN VARCHAR2) return varchar2 is
Result VARCHAR2(4000);
begin
--通过游标,CIP联络员的动态值
FOR CUR IN
(
select table_id from bas_role_table_type a where a.table_id=insid
)
LOOP
Result := Result||CUR.table_id||',';
END LOOP;
--去掉最后一个逗号
Result:=SUBSTR(Result,0,LENGTH(Result)-1);
return(Result);
end;
1. result 没有赋值啊 ?
2. 如果是
select a.tablename into result from bas_role_table a where a.tablename=insid
万一没有符合条件的数据呢? 还是i会出异常
最好这样:
select count(a.tablename) into ncount from bas_role_table a where a.tablename=insid
if ncount = 1 then
select a.tablename into result from bas_role_table a where a.tablename=insid
else
result := ''; -- 如何处理
end if;
3. 调用的地方看看你的语法
4. a.tablename=insid ,这个条件对吗?
create or replace function uaes(insid IN VARCHAR2) return varchar2 is
tab_name VARCHAR2(4000);
begin
select a.tablename into tab_name from bas_role_table a where a.tablename=insid
return tab_name;
end;
select Result =a.tablename from bas_role_table a where a.tablename=insid
查询必须只返回一条结果。。。