`

oracle函数之table()用法详解

阅读更多

一、table()与返回值为数组类型的普通函数一起使用:

--创建类型
CREATE OR REPLACE TYPE T_MYTEST AS OBJECT(
  ID           NUMBER,
  TIME       DATE,
  NAME     VARCHAR2(60)
);
/

--创建T_MYTEST类型的数组 T_MYTEST_TABLE
CREATE OR REPLACE TYPE T_MYTEST_TABLE AS TABLE OF T_MYTEST;
/

--创建普通函数,返回数组类型,用数组的实例存放结果集
CREATE OR REPLACE FUNCTION F_TEST_ARRAY(N IN NUMBER DEFAULT NULL) RETURN T_MYTEST_TABLE AS
T_ARRAY T_MYTEST_TABLE:=T_MYTEST_TABLE();
BETIG
    FOR I IN 1..NVL(N,100) LOOP
        T_ARRAY.EXTEND();
        T_ARRAY(T_ARRAY.COUNT):=T_TEST(I,SYSDATE,''||I);
    END LOOP;
    RETURN T_ARRAY;
END;
/
--测试sql
select * from table(F_TEST_ARRAY(10));

二、用返回类型为数组的管道函数,这里没有用到存放中间结果的变量,每处理完一条记录立刻返回

create or replace function f_test_pipe(n number defaule null) return
t_mytest_table pipelined as
begin 
    for i in 1..nvl(n,100) loop
        pipe row(t_test(i,sysdate,i||''));
    end loop;
    return;
end;
/

  三、table调用包中返回类型为数组类型的函数 dbms_xplan.display是返回类型为数组的管道函数

create table test(id number,name varchar2(30));

insert into test value(1,'a');

explain plan for select * from test;

select * from table(dbms_xplan.displan);

 

 

 

 

 

 

分享到:
评论

相关推荐

    oracle求同比,环比函数(LAG与LEAD)的详解

    Lag和Lead函数可以在一次查询中取出同一字段的前N行的数据和后N行的值。这种操作可以使用对相同表的表连接来实现,不过使用LAG和LEAD有更高的效率。 代码如下:CREATE TABLE salaryByMonth( employeeNo varchar2(20)...

    Oracle 自定义split 函数实例详解

    Oracle 自定义split 函数 Oracle没有提供split函数,但可以自己建立一个函数实现此功能。比如“abc defg hijkl nmopqr stuvw xyz”,分隔符是空格,但空格个数不定。 源代码: CREATE OR REPLACE TYPE ty_str_...

    详解oracle管道函数的用法(一行拆为多行)

    如果需要在客户端实时的输出函数执行过程中的一些信息,在oracle9i以后可以使用管道函数(pipeline function)。 关键字PIPELINED表明这是一个oracle管道函数,oracle管道函数的返回值类型必须为集合 --创建一个集合...

    Oracle存储过程-1

    Oracle 数据类型及存储方式 概述 通过实例,全面而深入的分析oralce的基本数据类型及它们的存储方式。以ORACLE 10G为基础,介绍oralce 10g引入的新的数据类型。...3. 使用dump函数可以查看每一行的内部存数结构。

    sql – Oracle中匿名TABLE/VARRAY类型示例详解

    主要给大家介绍了关于Oracle中匿名TABLE/VARRAY类型的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用oracle具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    Oracle数据库学习指南

    1. Decode()函数使用技巧(NT+IIS+ASP+ORACLE) 2. Dual伪列 3. EXP、IMP 命令详解 4. Exp-Imp大量数据 5. Export-Import 使用技巧与常见错误 6. NULL 使用详解 7. Oracle for NT系统实用工具介绍 8. Oracle ...

    Oracle中游标Cursor基本用法详解

    查询  SELECT语句用于从数据库中查询数据,当在PL/SQL中使用SELECT语句时,... FROM {table|(sub-query)}[alias]  WHERE............  PL/SQL中SELECT语句只返回一行数据。如果超过一行数据,那么就要使用显式游标

    oracle详解

    以下为简要使用步骤,如果想参考详细使用方法,也可以参考ORACLE联机帮助。 1.设置表空间为只读(假定表空间名字为APP_Data 和APP_Index) alter tablespace app_data read only; alter tablespace app_index read ...

    Oracle 10g 学习笔记

    │ ORACLE的索引和约束详解 - Oracle10g - 沪城篱笆.mht │ oracle里常用命令 - Oracle - 51CTO技术论坛_中国领先的IT技术社区.mht │ Sequence相关操作命令 - lvhuiqing的专栏 - CSDN博客.mht │ Sequence相关操作...

    Oracle中触发器示例详解

    在ORACLE系统里,触发器类似过程和函数,都有声明,执行和异常处理过程的PL/SQL块。 触发器类型 触发器在数据库里以独立的对象存储,它与存储过程和函数不同的是,存储过程与函数需要用户显示调用才执行,而触发器是...

    Oracl技术资料(EBook)

    13.PL_SQL单行函数和组函数详解 14.PL-SQL 15.PLSQL异常处理初步 16.SQL语句性能调整原则 17.创建和使用分区的表 18.基于成本的优化器一般错误概念和问题 19.Delphi 3_0中连接数据库的三种方式 20.远程...

    开窗函数有浅入深详解(一)

    为了解决这些问题,在2003年ISO SQL标准加入了开窗函数,开窗函数的使用使得这些经典的难题可以被轻松的解决。 目前在 MSSQLServer、Oracle、DB2 等主流数据库中都提供了对开窗函数的支持,不过非常遗憾的是 MYSQL ...

    Oracle百分比分析函数RATIO_TO_REPORT() OVER()实例详解

    有时候不用的指标的绝对值不能比,但是转转为百分比的形式就容易看出波动了,是数据分析的好用的一个分析函数 20:00:24 SYS@orcl> conn scott/tiger; Connected. 20:00:30 SCOTT@orcl> create table test 20:01:22 ...

    ORACLE中如何找到未提交事务的SQL语句详解

    在Oracle数据库中,我们能否找到未提交事务(uncommit transactin)的SQL语句或其他相关信息呢? 关于这个问题,我们先来看看实验测试吧。实践出真知。 首先,我们在会话1(SID=63)中构造一个未提交的事务,如下所:...

    Oracle中使用DBMS_XPLAN处理执行计划详解

    这5个函数分别对应不同的显示计划的方式,DBMS_XPLAN包不仅可以获取解释计划,它还可以用来输出存储在AWR,SQL调试集,缓存的SQL游标,以及SQL基线中的语句计划,实现如上的功能,通常会用到一下5个方法: ...

    精通SQL 结构化查询语言详解

    《精通SQ:结构化查询语言详解》全面讲解SQL语言,提供317个典型应用,读者可以随查随用,针对SQL Server和Oracle进行讲解,很有代表性。 全书共包括大小实例317个,突出了速学速查的特色。《精通SQ:结构化查询语言...

    详解 Mysql中的delimiter定义及作用

    初学mysql时,可能不太明白delimiter的真正用途,delimiter在mysql很多地方出现,比如存储过程、触发器、函数等。 学过oracle的人,再来学mysql就会感到很奇怪,百思不得其解。 其实就是告诉mysql解释器,该段命令...

    oracle数据库中sql%notfound的用法详解

    SQL%NOTFOUND 是一个布尔值。与最近的sql语句(update,insert,delete,select)发生交互,当最近的一条sql语句没有涉及任何行的时候,则返回true。... insert into table_name (id,name,salary)values("","","")

    Oracle固定执行计划之SQL PROFILE概要文件详解

    Oracle系统为了合理分配和使用系统的资源提出了概要文件的概念。所谓概要文件,就是一份描述如何使用系统的资源(主要是CPU资源)的配置文件。将概要文件赋予某个数据库用户,在用户连接并访问数据库服务器时,系统就...

Global site tag (gtag.js) - Google Analytics