为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。 【DM版本】:dm8 【操作系统】:centos 【CPU】: 【问题描述】*:
达梦暂时不支持这个函数,需要自定义函数,您可以按照如下语法创建一下自定义函数测试一下
create or replace type ytt_num is object ( n number);
create or replace type numbers_table is table of ytt_num;
create or replace function ytt_generate_series ( f_start_num number := 1, -- Start number. f_end_num number, -- Finish number. f_step_num number := 1 -- Step. ) return numbers_table pipelined is tb numbers_table := numbers_table(); i number := 0; j number := 1; begin i := f_start_num; j := 1; -- Increase nested table's size. tb.extend(f_end_num); -- Loop begin. while i <= f_end_num loop -- Initlization. tb(j) := ytt_num(null); tb(j).n := i; pipe row(tb(j)); i := i + f_step_num; j := j + 1; end loop; return; end;
select ytt_generate_series(1,10,3)
达梦暂时不支持这个函数,需要自定义函数,您可以按照如下语法创建一下自定义函数测试一下
create or replace type ytt_num is object
( n number);
create or replace type numbers_table is table of ytt_num;
create or replace function ytt_generate_series
(
f_start_num number := 1, -- Start number.
f_end_num number, -- Finish number.
f_step_num number := 1 -- Step.
)
return numbers_table pipelined
is
tb numbers_table := numbers_table();
i number := 0;
j number := 1;
begin
i := f_start_num;
j := 1;
-- Increase nested table's size.
tb.extend(f_end_num);
-- Loop begin.
while i <= f_end_num loop
-- Initlization.
tb(j) := ytt_num(null);
tb(j).n := i;
pipe row(tb(j));
i := i + f_step_num;
j := j + 1;
end loop;
return;
end;
select ytt_generate_series(1,10,3)