Oracle
 sql >> Base de données >  >> RDS >> Oracle

Oracle :spécification de la valeur par défaut pour la colonne de type d'objet

Il semble que ce n'est pas possible.

Une solution consisterait à utiliser un déclencheur :

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;
/

Soit dit en passant, il n'ignore pas complètement les constructeurs autres que ceux par défaut, remplaçant le constructeur par défaut

CONSTRUCTOR FUNCTION test_t(in_val NUMBER)
RETURN SELF AS RESULT

conduit à une exception lors de la tentative de définition de la table avec DEFAULT NEW test_t(1) :