为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM
【操作系统】:window
【CPU】:
【问题描述】*:创建函数,需要返回table类型失败了;如下:
create function xxx.xxxx(year in int)
resturn table //当执行到这时 出现了出现了语法错误
as
beging
XXXXXXXXXXXXXXXXXXXXXX
end
想问一下达梦数据库返回table 类型用啥
借助管道表实现
create table test_res (id int, name varchar);
INSERT INTO test_res values(1,‘a’),(2,‘b’);
DROP TYPE IF EXISTS type_test_res CASCADE;
DROP TYPE IF EXISTS test_res_list CASCADE;
CREATE TYPE type_test_res AS object(id test_res.id%TYPE, name test_res.name%type);
CREATE TYPE test_res_list AS TABLE OF type_test_res;
CREATE OR REPLACE FUNCTION func_test_res()
RETURN test_res_list PIPELINED
IS
BEGIN
FOR rec IN (select * FROM test_res) – 此处必须要有括号
– 或者 FOR rec IN (select id,name FROM test_res) – 此处必须要有括号
loop
PIPE ROW (type_test_res(rec.id, rec.name));
END loop;
EXCEPTION
WHEN OTHERS THEN NULL;
END;
SELECT * FROM TABLE(func_test_res);