如何使用 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/嵌套表