sql >> Database >  >> RDS >> Oracle

Oracle:standaardwaarde opgeven voor kolom objecttype

Het lijkt erop dat dit niet mogelijk is.

Een oplossing zou zijn om een ​​trigger te gebruiken:

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

Het negeert trouwens niet-standaard constructors niet volledig, en overschrijft de standaard constructor

CONSTRUCTOR FUNCTION test_t(in_val NUMBER)
RETURN SELF AS RESULT

leidt tot een uitzondering bij het definiëren van de tabel met DEFAULT NEW test_t(1) :




  1. Oracle TNS-namen worden niet weergegeven bij het toevoegen van een nieuwe verbinding met SQL Developer

  2. Een JSON-kolom toevoegen in MySQL met Rails 5 Migration

  3. TINYINT vs ENUM(0, 1) voor booleaanse waarden in MySQL

  4. Ruby gem mysql2 installatie mislukt