Insertar valor predeterminado cuando se inserta nulo

Tengo una base de datos Oracle y una tabla con varias columnas no nulas, todas con valores predeterminados.

Me gustaría usar una declaración de inserción para cualquier dato que quiera insertar, y no me moleste en verificar si los valores insertados son nulos o no.

¿Hay alguna forma de volver al valor de columna predeterminado cuando se inserta nulo?

Tengo este código:

<?php
if (!empty($values['not_null_column_with_default_value'])) {
    $insert = "
        INSERT INTO schema.my_table
            ( pk_column, other_column, not_null_column_with_default_value)
        VALUES
            (:pk_column,:other_column,:not_null_column_with_default_value)
     ";
} else {
    $insert = "
        INSERT INTO schema.my_table
            ( pk_column, other_column)
        VALUES
            (:pk_column,:other_column)
     ";        
}

Entonces, tengo que omitir la columna por completo, o tendré el error "tratando de insertar una columna nula a no nula". Por supuesto, tengo varias columnas anulables, por lo que la declaración de inserción de creación de código es muy ilegible, fea y simplemente no me gusta de esa manera.

Me gustaría tener una declaración, algo similar a:

INSERT INTO schema.my_table
    ( pk_column, other_column, not_null_column_with_default_value)
VALUES
    (:pk_column,:other_column, NVL(:not_null_column_with_default_value, DEFAULT) );

Eso, por supuesto, es una consulta hipotética. ¿Conoces alguna forma de lograr ese objetivo con Oracle DBMS?

EDITA:

Gracias a todos por sus respuestas o comentarios. Parece que no hay una forma "estándar" de lograr lo que quería, así que acepté la mejor respuesta de la OMI: que debería dejar de ser inteligente y seguir omitiendo los valores nulos a través de declaraciones construidas automáticamente.

No es exactamente lo que me gustaría ver, pero no hay mejor opción.

Respuestas a la pregunta(5)

Su respuesta a la pregunta