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

问题描述:

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

我知道最大()函数默认情况下是可用的,但我希望它作为用户定义的函数,比如说,great_wrapper()。任何关于如何使用此varray接受参数并处理它们的信息都将有所帮助。由于

+0

注意'varray'类型只有当你需要'limit'子句时才有用,否则嵌套表集合类型('数字表格等等)通常更灵活并且具有更多特征。 –

一个良好的开端是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.