如何使用 varray 在 oracle 函数中接收多个参数

Posted

技术标签:

【中文标题】如何使用 varray 在 oracle 函数中接收多个参数【英文标题】:how to use varray to recieve multiple arguments in oracle function 【发布时间】:2016-08-04 11:06:31 【问题描述】:

我想创建一个函数,它将在 varray 中接受多个参数并返回该 varray 的最大值,就像 oracle 中的 best() 函数一样。参数可能包含所有数字或文本。我正在考虑使用数字或文本类型的 varray,但不知道如何在函数定义中正确声明它们以及如何访问其中的所有元素以找出最大的元素。

我知道 best() 函数默认是可用的,但我希望它作为用户定义的函数,比如 best_wrapper()。关于如何使用这个变量来接受参数并处理它们的任何内容都会有所帮助。谢谢

【问题讨论】:

注意varray类型只有在需要limit子句时才有用,否则嵌套表集合类型(table of number等)一般更灵活,功能更多。跨度> 【参考方案1】:

一个好的起点是Oracle documentation

顺便说一下,这里是一个示例,您如何在不定义新函数的情况下从集合中获得最大价值:

SQL> create type my_num_type as varray(30) of number
  2  /

Type created.

SQL> select max(column_value) from table(my_num_type(1, 2, 3, 4, 5));

MAX(COLUMN_VALUE)
-----------------
                5

1 row selected.

【讨论】:

以上是关于如何使用 varray 在 oracle 函数中接收多个参数的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Oracle SQL Developer 的存储过程中将表名列表作为参数传递?如何使用 PLSQL VARRAY 或嵌套表?

Hibernate 和 Oracle VARRAYS/嵌套表

Oracle PL/SQL:如何从 VARRAY 的 REF 中进行 DEREF?

oracle怎么使用数组

Oracle 从 varray 更改列数据类型

在 Oracle SQL 中创建和填充 Varray