Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Oracle:especificando o valor padrão para a coluna do tipo de objeto


Parece que isso não é possível.

Uma solução seria usar um gatilho:
CREATE OR REPLACE TRIGGER test_trigger
  BEFORE INSERT OR UPDATE
ON test_table
  FOR EACH ROW
WHEN ( new.test_attr IS NULL )
BEGIN
  :new.test_attr := NEW test_t();
END test_trigger;
/

A propósito, ele não ignora completamente os construtores não padrão, substituindo o construtor padrão
CONSTRUCTOR FUNCTION test_t(in_val NUMBER)
RETURN SELF AS RESULT

leva a uma exceção ao tentar definir a tabela com DEFAULT NEW test_t(1) :