Oracle

在 plsql Oracle10g 上返回多行

  • October 12, 2016

我正在做一個小項目,我需要做一個 plsql 來返回很多行。

我有類似的東西:

Table(id, data1, data2, from)

使用者給了我 from 的值,我必須返回所有這些。

SQL 很簡單:

SELECT * FROM Table WHERE from = dataIntroduced

但是,我不知道 plsql 如何返回它。

我讀過關於收藏的文章,但我認為這不是我需要的

從 PL/SQL 返回選擇數據的一種方法是使用 Oracle 表函式。下面是一個範例,其中該行SELECT * FROM table_a where test_a = par1;應由您的 select 語句替換 + 更改表名。

Create table Table_a
(test_a varchar2(1))
/

insert into table_a
values('a')
/

create or replace package test_package as
TYPE col_table_1 is table of TABLE_A%ROWTYPE;
function test_plsql_table(par1 varchar2) return col_table_1
 pipelined;
end;
/

create or replace package body test_package as
 function test_plsql_table(par1 varchar2) return col_table_1
   PIPELINED as
   cursor temp_cur is
     SELECT * FROM table_a where test_a = par1;
 begin
   for cur_rec in temp_cur loop
     pipe row(cur_rec);
   end loop;
 end;
end;

/

SELECT * from TABLE( test_package.test_plsql_table('a'))
/

引用自:https://dba.stackexchange.com/questions/18256