传递一组数字

时间:2018-06-03 10:53:42

标签: sql oracle plsql

我正在尝试使用SQL计算一些数学公式,但我偶然发现了持有k数的问题。我怎么能以简单的方式握住它们,所以我可以直接访问它们,而不是将它们中的每一个都声明为单独的变量?我考虑过使用数组,但它有点太复杂了,还有什么比这更简单了吗?

代码我尝试使用不同的变量来保存数字:https://pastebin.com/mPvKCiNP

v_sum := v_first + v_second + v_third;

而不是这一行,有一段时间,并遍历所有值。我不一定需要知道值的数量,因为我总是可以通过参数传递它。

1 个答案:

答案 0 :(得分:2)

table类型表示无界数组(不要与关系数据表混淆)。

create or replace type number_table_type is table of number;

create or replace procedure mean (number_table_type nt) as
v_sum number := 0;
begin
    for i IN nt.first..nt.last loop
        v_sum := v_sum + i;
    end loop;
    [...]
end mean;

您可以声明表类型的实例:

nt number_table_type := number_table__type(1, 2, 3, 4);