`
liuguofeng
  • 浏览: 453395 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

在Oracle的函数中,返回表类型

 
阅读更多

在SQL Server中有表变量,可以在function中方便地返回,习惯SQL Server或者需要把脚本从SQL Server转到Oracle中的朋友可以都会碰到这个问题.

Oracle的function中怎么返回表变量?

太晚了,过多的理论知识就不说了,下面简单地说实现吧!..

1、创建表对象类型。

在Oracle中想要返回表对象,必须自定义一个表类型,如下所示:

create or replace type t_table is table of number;

上面的类型定义好后,在function使用可用返回一列的表,如果需要多列的话,需要先定义一个对象类型。然后把对象类型替换上面语句中的number;

定义对象类型:

create or replace type obj_table as object
(
  id 
int,
  name 
varchar2(50)
)

修改表对象类型的定义语句如下:

create or replace type t_table is table of obj_table;

 

2、 创建演示函数

在函数的定义中,可以使用管道化表函数和普通的方式,下面提供两种使用方式的代码:

1)、管道化表函数方式:

create or replace function f_pipe(s number)
return t_table pipelined
as
    v_obj_table obj_table;   
begin    
for i in 1..s loop 
    v_obj_table :
=  obj_table(i,to_char(i*i));
    
pipe   row(v_obj_table);   
end loop;
return;
end f_pipe;

注意:管道的方式必须使用空的return表示结束.

调用函数的方式如下:

select * from table(f_pipe(5));

 

2)、 普通的方式:

create or replace function f_normal(s number)
return t_table
as
    rs t_table:
= t_table();
begin
    
for i in 1..s loop
        rs.extend;
        rs(rs.
count) := obj_table(rs.count,'name'||to_char(rs.count));
        
--rs(rs.count).name := rs(rs.count).name || 'xxxx';
    end loop;
return rs;
end f_normal;

初始化值后还可以想注视行那样进行修改.

调用方式如下:

select * from table(f_normal(5));

 

OK, The End...

<script type="text/javascript"></script>

分享到:
评论

相关推荐

    Oracle表类型表变量使用

    你可以选择添加约束,如主键或唯一键,来限制表类型中的数据。 接下来,我们讨论如何声明和使用表变量。表变量是基于已定义的表类型的实例,它们可以作为局部变量在PL/SQL块中声明。例如: ```sql DECLARE my_...

    oracle函数大全 oracle函数大全

    以下是关于Oracle函数的一些详细说明: 1. ASCII函数:ASCII函数返回与输入字符相对应的ASCII码,即十进制数字。例如,ASCII('A')返回65,ASCII('a')返回97。 2. CHR函数:CHR函数根据提供的整数返回对应的字符。...

    oracle10g 函数返回游标类型

    ### 标题:“oracle10g 函数返回游标类型” 此标题直接指向了Oracle 10g环境下,如何设计和实现返回游标类型的数据的函数。游标是数据库中的一个重要概念,它允许用户在数据库中定位、检索、更新和删除数据行。当...

    oracle 函数大全 参考函数 手册 速查 chm格式

    Oracle函数是数据库操作中的核心组成部分,它们允许开发人员和DBA执行各种计算、转换、查询和数据处理任务。手册中可能涵盖了以下几类函数: 1. 数学函数:如ABS(取绝对值)、MOD(取模)、ROUND(四舍五入)等,...

    oracle常用函数和类型

    在Oracle中,数据类型是定义变量、列或者常量的格式,而函数则是执行特定任务的预定义过程。 首先,让我们来看看Oracle中的常用数据类型: 1. NUMBER:这是Oracle中最通用的数字类型,可以存储整数和浮点数,允许...

    Oracle中实现Split函数功能

    Oracle 中实现 Split 函数功能是指在 Oracle 数据库中实现类似于 C# 等编程语言中的 Split 函数,用于拆分字符的功能。下面是实现 Oracle 中 Split 函数功能的详细介绍。 首先,需要创建一个新的类型来存储拆分后...

    oracle_split_函数_返回数组

    在Oracle数据库中,由于内置函数不直接支持像Java中的`split`那样拆分字符串并返回数组,因此开发者需要自定义函数来实现这一功能。这里提到的两种方法都是为了解决这个问题,即根据指定的分隔符将字符串拆分为一个...

    Java调用oracle函数返回oracle类(类似)集合

    2. **创建Oracle函数返回索引表**: 在PL/SQL中,你可以定义一个函数,使其返回上述索引表类型。下面的`funtry_ret_index`函数创建了一个`sqlindext`类型的实例`array`,并填充了一些值,然后将其返回。 ```sql ...

    oracle函数分类.rar

    下面将详细讲解在"oracle函数分类.rar"压缩包中的主要函数类别及其应用。 首先,我们关注的是**数值型函数**。在处理数字数据时,Oracle提供了多种操作函数,如`ROUND`用于四舍五入,`TRUNC`用于截断小数部分,`MOD...

    hibernate 调用oracle函数

    文档可能涵盖了更复杂的场景,如处理多参数函数、处理复杂返回类型、以及在事务管理中调用函数等。 总的来说,Hibernate调用Oracle函数涉及到了数据库设计、ORM框架的使用、原生SQL查询和结果映射等多个方面,熟练...

    oracle函数大全(分类成9个word文档)

    总的来说,这个压缩包提供的Oracle函数大全对于数据库管理员、开发人员或学习者来说是一份宝贵的资源,它详尽地介绍了Oracle中各种类型的函数,帮助用户更好地理解和使用这些功能,提高工作效率。无论是日常的查询...

    VB 调用 Oracle 函数返回数据集的例子

    通过将命令对象设置为Recordset的数据源并打开Recordset,我们可以访问Oracle函数返回的数据集。最后,关闭Recordset和连接,并捕获可能的错误。 总的来说,这个例子展示了如何在VB环境中通过ADO(ActiveX Data ...

    oracle函数大全.doc

    在“Oracle函数大全”文档中,涵盖了多种类型的函数,这些函数主要用于字符串处理、数值计算、字符转换等任务。以下是部分重要的Oracle函数及其用途的详细说明: 1. ASCII函数:这个函数用于返回一个字符的ASCII码...

    经典oracle函数介绍全收录

    本文主要聚焦于Oracle中的经典函数,特别是单值函数,这些函数在处理数值、字符和日期类型的数据时发挥着关键作用。 首先,我们来看看数值型函数。Oracle提供了一系列用于处理数值的函数,如`MOD(n1, n2)`用于计算...

    oracle 类型转换函数

    在Oracle数据库中,类型转换函数是处理数据时不可或缺的一部分,它们能够帮助我们高效地操作不同数据类型之间的转换,确保数据的准确性和完整性。本文将详细解释Oracle中的常见类型转换函数,包括数学函数、字符串...

    ORACLE函数大全与整理

    1. 在使用函数时,需注意函数的参数类型和返回类型,确保数据类型的匹配,避免出现错误。 2. NVL()和NVL2()的区别在于,当第二个参数为NULL时,NVL2()会返回第三个参数的值,而NVL()则直接返回NULL。 3. 使用DECODE...

    Oracle函数手册.rar

    1. **标量函数**:这些函数返回单个值,如`UPPER()`用于将字符串转换为大写,`LOWER()`则转换为小写,`INSTR()`用于在字符串中查找子串的位置。 2. **聚合函数**:在一组行上操作并返回单个值,例如`COUNT()`计算...

    oracle系统内置函数大全

    Oracle数据库系统内置了大量函数,这些函数可以分为多个类别,例如字符函数、数字函数、日期函数、转换函数、分组函数以及其他辅助函数等。以下是对每个类别中一些常用函数的详细介绍: 字符函数 1. ASCII函数:...

    ORACLE CRC32函数

    在Oracle数据库中,`CRC32`函数是一种非常实用的功能,主要用于将字符类型的数据转换为一个唯一的数字类型,这一过程通常被称为散列(Hash)。通过该函数,可以方便地生成针对特定字符串的固定长度的数字签名,这...

    Oracle函数列表速查andOracle数据字典

    在实际工作中,我们常常需要结合使用Oracle函数和数据字典。比如,当需要找出某个用户拥有特定权限的所有表时,可以编写SQL查询利用`DBA_TAB_PRIVS`和`DBA_USERS`视图;或者,如果想要分析表的大小和空间使用情况,...

Global site tag (gtag.js) - Google Analytics