为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:8
【操作系统】:
【CPU】:
【问题描述】*:在达梦数据库中创建一个函数,如何才能让其返回一张表
CREATE OR REPLACE FUNCTION "Kjmid".FN_GetSyhInfo(DM_inOrOut VARCHAR(10) --in,out,both(all)
,DM_start DATETIME
,DM_end DATETIME)-
RETURN DM_tbData TABLE (SyId INT NOT NULL
,Syh VARCHAR(50) NOT NULL
,DeptCode VARCHAR(50) NOT NULL
,DoctCode VARCHAR(50) NOT NULL
,WardCode VARCHAR(50) NULL)
AS
BEGIN
if(....) then
begin
insert into DM_tbData()...
end
RETURN;
END;
到return DM_tbData table 这里就报错了。怎么才能让其返回一张表啊?如何操作。有没有大佬懂的?
您试试这种能否满足需求
--创建自定义类型
create TYPE tmptype666 IS RECORD(
ID dba_objects.object_id%TYPE,
NAME dba_objects.object_name%TYPE);
--创建嵌套表
create TYPE tabtype IS table of tmptype666;
--返回嵌套表类型
create or replace function tablecmess666(code dba_objects.object_name%TYPE) return tabtype
as
DECLARE
v_tabrec tabtype;
begin
select object_id,object_name BULK COLLECT into v_tabrec from dba_objects where object_name=code ;--and owner='SYSDBA' ;
return v_tabrec;
end;
/
select * from table (tablecmess666('TEST666'));