Метод EXTEND в коллекциях plsql - PullRequest
0 голосов
/ 27 февраля 2019

Это программа

DECLARE
     TYPE t1 IS
          TABLE OF NUMBER(10);
     v_t   t1 := t1(10,20,30,40);
BEGIN
     dbms_output.put_line(v_t.first);
     dbms_output.put_line(v_t.last);
     dbms_output.put_line(v_t.PRIOR(2) );
     dbms_output.put_line(v_t.next(2) );
     v_t.extend;
     v_t.extend(2);
     v_t.extend(3,2);
     v_t(5) := 50;
     v_t(6) := 60;
     v_t(7) := 70;
     v_t.trim;
     dbms_output.put_line(v_t.count);
     FOR i IN v_t.first..v_t.last LOOP
          dbms_output.put_line(v_t(i) );
     END LOOP;
END;
/

вывод:

1
4
1
3
9
10
20
30
40
50
60
70
20
20

Здесь я не могу понять вывод этой программы, пожалуйста, кто-нибудь объяснит об этом выводе,Заранее спасибо.

1 Ответ

0 голосов
/ 27 февраля 2019
1 = dbms_output.put_line(v_t.first) - returns the first subscript/index value of 
    t1(10,20,30,40) which is 1
4 = dbms_output.put_line(v_t.last) - returns the last subscript/index value of 
    t1(10,20,30,40) which is 4
1 = dbms_output.put_line(v_t.PRIOR(2)) - returns the subscript that precedes index n in a 
    collection which is 1. 
3 = dbms_output.put_line(v_t.next(2)) - returns the subscript that succeeds index n in a 
    collection which is 3.
9 = dbms_output.put_line(v_t.count) - v_t.EXTEND appends one null element to the collection, v_t.EXTEND appends 2 null elements to the collection and v_t.EXTEND(3,2) appends 3 copies of the 2nd element to the collection
10 = dbms_output.put_line(v_t(i) - Prints all the elements.
20
30
40
50
60
70
20 = v_t.extend(3,2) - Added 3 copies of 2nd element which is 20
20 = v_t.extend(3,2) -                   ""

Третья копия (20) исключена, поскольку v_t.trim удаляет один элемент из конца коллекции

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...