sql >> データベース >  >> RDS >> Oracle

ORACLE 11gのテーブル値関数? (パラメータ化されたビュー)

    SYS_CONTEXTやカーソル定義は必要ありません。SQLを解析するときに、返される列を判別できるように型が必要です。つまり、型とコレクションの型定義を生成するスクリプトを簡単に作成できます。 user_tab_columnsのデータに基づく1つ以上のテーブルの場合。

    最も近いのは

    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. pg_viewsのクエリからの不完全な情報

    2. 複数の行に値を分割する

    3. SPARSECOLUMNを使用する理由と時期(SQL SERVER 2008)

    4. MySQL CAST –MySQLでCastを入力する方法