sql >> Databasteknik >  >> RDS >> Oracle

Tabell-värderade funktioner i ORACLE 11g ? (parameteriserade vyer)

Inget behov av SYS_CONTEXT eller markördefinitioner. Du behöver en typ så att den, när SQL tolkas, kan avgöra vilka kolumner som ska returneras. Som sagt, du kan enkelt skriva ett skript som genererar typ- och samlingstypdefinitioner för en eller flera tabeller baserat på data i user_tab_columns.

Den närmaste är

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. Hur man skapar anpassade genvägar i SQL Server Management Studio (SSMS) - SQL Server / TSQL handledning Del 10

  2. Använda utdataparametrar för lagrad procedur i C#

  3. Hur UTC_TIME() fungerar i MariaDB

  4. Hur man skapar ett fel i en MySQL-funktion