我在 pl/sql 文档(PL/SQL 用户指南和参考)中有一个示例
1 DECLARE
2 TYPE sum_multiples IS TABLE OF PLS_INTEGER INDEX BY PLS_INTEGER;
3 n PLS_INTEGER := 5; -- number of multiples to sum for display
4 sn PLS_INTEGER := 10; -- number of multiples to sum
5 m PLS_INTEGER := 3; -- multiple
6 FUNCTION get_sum_multiples(multiple IN PLS_INTEGER, num IN PLS_INTEGER)
7 RETURN sum_multiples IS
8 s sum_multiples;
9 BEGIN
10 FOR i IN 1..num LOOP
11 s(i) := multiple * ((i * (i + 1)) / 2) ; -- sum of multiples
12 END LOOP;
13 RETURN s;
14 END get_sum_multiples;
15 BEGIN
16 #NAME?
17 DBMS_OUTPUT.PUT_LINE('Sum of the first ' || TO_CHAR(n) || ' multiples of ' ||
18 TO_CHAR(m) || ' is ' || TO_CHAR(get_sum_multiples (m, sn)(n)));
19 END;
20 /
3的前5个倍数之和是45
我无法理解第 18 行中的“TO_CHAR(get_sum_multiples (m, sn)(n))”。 参数是如何传递的,尽管这段代码有效,但 (m, sn)(n) 之间没有分隔符。 任何人都可以回答这个代码。
我改变了函数调用 TO_CHAR(get_sum_multiples (m, sn)(n)) 到 TO_CHAR(get_sum_multiples (m, sn),(n)) 但它返回错误