3
Я пытаюсь следующий SQL в Oracle 11g DB, который возвращаетOracle Вставить возвращение ORA-01400
SQL Error: ORA-01400: cannot insert NULL into ("CRABERS"."AG_ASSET_REF"."CREATE_ID").
Однако, вы можете увидеть, что я заселять этот столбец, который отформатирован как число (38, 0). Как я вставляю значение, почему еще я могу получить ORA-01400?
INSERT INTO ag_asset_ref
(asset_type_id,
create_id,
create_date,
file_size,
bus_unit_id,
status,
name)
VALUES (1050,
2458,
SYSDATE,
50000,
1000,
0,
'test insert')
У вас есть триггеры, запущенные на этом столе? –
Триггеры? Как триггер может ссылаться на таблицу? Если это был триггер на 'ag_asset_ref', и эта таблица должна была быть передана внутри триггера, не должно было возникнуть ошибка мутирующего запуска? (Если это не триггер 'complex', так как я вижу, что OP использует 11g) – Annjawn
@Annjawn, триггер не« ссылается »на таблицу, она * находится на * таблице. например как в приведенном ниже примере Джеффа, в таблице «ag_asset_ref» может быть определен триггер «ПЕРЕД НАЧАЛОМ», который будет срабатывать всякий раз, когда что-либо пытается вставить в эту таблицу. Поскольку это триггер «ПЕРЕД», он может изменить вставленное фактическое значение, переопределив то, что было предусмотрено в исходной инструкции insert. –