sql >> Database teknologi >  >> RDS >> Oracle

Tabel-vurderede funktioner i ORACLE 11g ? (parametriserede visninger)

Intet behov for SYS_CONTEXT eller markørdefinitioner. Du har brug for en type, så den, når SQL'en parses, kan bestemme, hvilke kolonner der skal returneres. Når det er sagt, kan du nemt skrive et script, der genererer type- og samlingstypedefinitioner for en eller flere tabeller baseret på dataene i user_tab_columns.

Den nærmeste er

create table my_table
(prodid number, a varchar2(1), b varchar2(1), 
  c varchar2(1), d varchar2(1), e varchar2(1));

create type my_tab_type is object
(prodid number, a varchar2(1), b varchar2(1), 
  c varchar2(1), d varchar2(1), e varchar2(1))
.
/

create type my_tab_type_coll is table of my_tab_type;
/

create or replace function get_some_data (p_val in number) 
return my_tab_type_coll pipelined is
begin
  FOR i in (select * from my_table where prodid=p_val) loop
    pipe row(my_tab_type(i.prodid,i.a,i.b,i.c,i.d,i.e));
  end loop;
  return;
end;
/

SELECT * FROM table(get_Some_Data(3));


  1. PDO MySQL:Indsæt flere rækker i én forespørgsel

  2. Postgres now() tidsstemplet ændres ikke, når scriptet virker

  3. Hvordan viser jeg en MySQL-fejl i PHP for en lang forespørgsel, der afhænger af brugerens input?

  4. Hvordan får man vist et billede fra blob-kolonnen i Oracle med JasperReports?