Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Collections. EXTEND && NOT NULL  [new]
Tolka
Member

Откуда:
Сообщений: 199
В доке грится
автор

EXTEND Collection Method

The EXTEND method has these forms:
■ EXTEND appends one null element to the collection.
■ EXTEND(n) appends n null elements to the collection.
■ EXTEND(n,i) appends n copies of the ith element to the collection.

Note: EXTEND(n,i) is the only form that you can use for a collection
whose elements have the NOT NULL constraint.



declare
   type t_v is varray(2) of number not null;
   l_v t_v := t_v();
begin
   l_v.extend;
   dbms_output.put_line(nvl(to_char(l_v(l_v.last)), 'null'));
end;
/

Output:

null

Т.е. получили NULL элемент в коллекции с NOT NULL ограничением

В тоже время если выполнить

l_v(l_v.last) := null;

то получим ошибку компиляции PL/SQL PLS-00382
26 сен 10, 16:33    [9503309]     Ответить | Цитировать Сообщить модератору
 Re: Collections. EXTEND && NOT NULL  [new]
makitka
Member

Откуда: FROM dual
Сообщений: 886
да, внатуре странно..
If you impose the NOT NULL constraint on a TABLE or VARRAY type, you cannot apply the first two forms of EXTEND to collections of that type.
это из документации по 11g
27 сен 10, 10:43    [9505091]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Collections. EXTEND && NOT NULL  [new]
Alexander_Ttl
Member

Откуда: Новосибирск
Сообщений: 151
Похоже, ничего не поменялось с тех пор
create or replace type test_varray as varray(1) of varchar2(10) not null;
select nvl(column_value,'NULL') from table(test_varray(''));

Результат 'NULL'.
Какой смысл указывать в определении типа not null, не понятно.
4 окт 18, 05:22    [21694738]     Ответить | Цитировать Сообщить модератору
 Re: Collections. EXTEND && NOT NULL  [new]
Alexander_Ttl
Member

Откуда: Новосибирск
Сообщений: 151
Версия 12.1.0.2.0
4 окт 18, 05:23    [21694739]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить