pl⼀sql 中function的语法 和调用。

2024-12-16 21:16:44
推荐回答(4个)
回答1:

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;

回答2:

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 ,这个条件对吗?

回答3:

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;

回答4:

select Result =a.tablename from bas_role_table a where a.tablename=insid

查询必须只返回一条结果。。。