OracleOracle中Table函数简单以实例

说明

表函数而承受查询语句或游标作为输入参数,并而输出多尽数据。
拖欠函数能够平行执行,并而连输出数据流,被称呼管道式输出。
运表函数而拿数据易分等级处理,并看望去中间结果的贮存和缓冲表。

优势

1.有扑朔迷离的公用信息,可是建立视图又实现无了,此时足考虑使用管道出口。
2.事关运算较多,写个简单SQL实现起来相比较麻烦,用table实现即ok了

实例

1.先前时期工作:

create or replace type ty_row as object
(
  col1 varchar2(36),
  col2 varchar2(36),
  col3 varchar2(36)
);

create or replace type ty_table as table of ty_row;

2.就定义一个函数,用于取用户基本消息:

create or replace function f_get_user_info(v_user_id in varchar2 default null)
  return ty_table as
  v_user_list ty_table;
begin
  select ty_row(t.user_id, nvl(t.emp_name, t.user_name), t.user_name) bulk collect
    into v_user_list
    from t_bs_user t
   where t.user_id = v_user_id
      or v_user_id is null;
  return v_user_list;
end f_get_user_info;

3.以就很是简短了:

select * from table(f_get_user_info('1'))

相关文章