Có vẻ như điều này là không thể.
Một cách giải quyết là sử dụng trình kích hoạt:
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;
/
Bằng cách này, nó không hoàn toàn bỏ qua các hàm tạo không mặc định, ghi đè hàm tạo mặc định
CONSTRUCTOR FUNCTION test_t(in_val NUMBER)
RETURN SELF AS RESULT
dẫn đến một ngoại lệ khi cố gắng xác định bảng với DEFAULT NEW test_t(1)
: