Home > Database > Mysql Tutorial > body text

Oracle 中函数如何返回结果集

WBOY
Release: 2016-06-07 16:08:58
Original
1428 people have browsed it

在Oracle中,用函数返回结果集有时候要用到,下面是demo:

在Oracle中,用函数返回结果集有时候要用到,,下面是demo:

create or replace type t_test as object
(
  id integer,
  create_time date,
  object_name varchar2(60)
);
create or replace type t_test_table as table of t_test;

1.用数组的方式
create or replace function f_test(n in number default null)
  return t_test_table as
  v_test t_test_table  := t_test_table();
begin
  for i in 1 .. n loop
    v_test.extend();
    v_test(v_test.count) := t_test(i, sysdate, 'name' || i);
  end loop;
  return v_test;
end f_test;
/

SQL> select * from table(f_test(5));
        ID CREATE_TIME    OBJECT_NAME
  -------- -------------- -------------
        1 07-4月 -15    name1
        2 07-4月 -15    name2
        3 07-4月 -15    name3
        4 07-4月 -15    name4
        5 07-4月 -15    name5

2.用管道函数
create or replace function f_test_pipe(n in number default null)
  return t_test_table
  PIPELINED as
  v_test t_test_table := t_test_table();
begin
  for i in 1 .. nvl(n, 100) loop
    pipe row(t_test(i, sysdate, 'name' || i));
  end loop;
  return;
end f_test_pipe;
/


SQL> select * from table(f_test_pipe(5));
        ID CREATE_TIME    OBJECT_NAME
---------- -------------- ----------------
        1 07-4月 -15    mc1
        2 07-4月 -15    mc2
        3 07-4月 -15    mc3
        4 07-4月 -15    mc4
        5 07-4月 -15    mc5

本文永久更新链接地址

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!