Определение значения по умолчанию столбцов таблицы
Спецификация

См. спецификацию пункта «Создание таблицы».

Синтаксические правила
  1. Суммарный размер < значений по умолчанию > столбцов таблицы, задаваемых с помощью конструкций < задаваемое значение >, < вычисляемое значимое > не должен превышать 4000 символов.

  2. Если для столбца задано < задаваемое значение >, то оно автоматически приводится к конструкции GENERATED BY DEFAULT AS.

    Эти конструкции эквивалентны:

    create or replace table q1(j int default 1, i int default (j+5));
    create or replace table q1(j int default 1, i int generated by default as (j+5));
  3. Разрешено использование функции TO_DATE с константными аргументами в качестве < значения по умолчанию > для столбца типа DATE.

    create table tab1 (d1 date default to_date('01.01.2003'),'dd.mm.yyyy'));
  4. Запрещено одновременное задание для столбца опций DEFAULT и PRIMARY KEY.

  5. Значение DEFAULT NULL устанавливается лишь в том случае, если оно не конфликтует ни с какими ранее установленными атрибутами столбца.

  6. Значение DEFAULT NULL допускается для столбца с атрибутом NOT NULL, но не устанавливает NULL-значение по умолчанию. Т.е. попытка выполнить ALTER TABLE DROP DEFAULT для такого столбца будет неудачной, т.к. NULL-значение является стандартным значением (а не значением по умолчанию) для тех полей таблицы, которым не присвоено реальное значение при выполнении операции INSERT.

Общие правила
  1. Конструкция < значение по умолчанию > задает значение, которое будет присваиваться столбцу при добавлении записи, в которой значение данного столбца не указано. Тип данных < значения по умолчанию > должен соответствовать типу данных столбца или приводиться к нему.

    create or replace table test
    (col1 char(10) character set CP866 default 'Воронеж',
     col2 byte(5) default 0xFF00,
     col3 boolean default 'true',
     col4 real default (+00002.E-5),
     col5 numeric default -28.755,
     col6 date default ('07.11.1917'),
     col7 nchar(12) default n'ъъъ');
  2. Для BLOB и EXTFILE типов данных < значение по умолчанию > не поддерживается.

  3. При отсутствии явного значения столбца или < значения по умолчанию > столбцу присваивается NULL-значение (если оно допустимо) за исключением BLOB-столбца, которому присваивается нулевая длина BLOB-данных.

    create or replace table test (col1 char(5), col2 byte(10), col3 boolean,col4 extfile, col5 real, col6 numeric, col7 date, col8 nchar, col9 blob, col10 extfile);
    insert into test;
    select * from test;
    |NULL| NULL| … |Тип:0, Размер:0|NULL|
  4. < Литерал > в < значении по умолчанию > может иметь максимальное отрицательное значение для соответствующего целочисленного типа данных, уменьшенное на 1.

    create or replace table test (i smallint autoinc default –32767);
    create or replace table test (i int autoinc default –2147483647);
  5. Максимальное отрицательное значение < литерала > в конструкции AUTOINC INITIAL на единицу меньше максимального отрицательного значения для соответствующего целочисленного типа данных.

    create or replace table tst (i smallint autoinc initial ( 32767));
    
    create or replace table tst (i smallint autoinc initial (–32768)); /* ошибка */
  6. < Значимое выражение > может содержать ссылки на столбцы добавляемой записи.

    create or replace table test
    (col1 int,
     col2 int default (col1+5),
     col3 date default (sysdate),
     col4 int default (abs(-45)+sqrt(16)),
     col5 char(10),
     col6 char(10) default (to_char(length(col5))),
     col7 char(10) default '12345',
     col8 char(10) default (to_char(length(col7))));
    
    insert into test(col1,col5) values (200, '12345');
    select * from test;
    |200|205| 16.11.2017:14:05:25| 49| 12345|5|