Column name on NOT NULL constaint violation not shown
There is a security consequence to setting SQL92_SECURITY to false.
From https://www.stigviewer.com/stig/oracle_database_12c/2020-04-01/finding/V-61429

The configuration option SQL92_SECURITY specifies whether table-level
SELECT privileges are required to execute an update or delete that
references table column values. If this option is disabled (set to
FALSE), the UPDATE privilege can be used to determine values that
should require SELECT privileges. The SQL92_SECURITY setting of TRUE
prevents the exploitation of user credentials with only DELETE or
UPDATE privileges on a table from being able to derive column values
in that table by performing a series of update/delete statements using
a where clause, and rolling back the change.
In the following example, with SQL92_SECURITY set to FALSE, a user
with only delete privilege on the scott.emp table is able to derive
that there is one employee with a salary greater than 3000. With
SQL92_SECURITY set to TRUE, that user is prevented from attempting to
derive a value.

SQL92_SECURITY = FALSE
SQL&gt; delete from scott.emp where sal &gt; 3000; 

1 row deleted 

SQL&gt; rollback; 

Rollback complete 

SQL92_SECURITY = TRUE
SQL&gt; delete from scott.emp where sal &gt; 3000; 

delete from scott.emp where sal &gt; 3000 * 

ERROR at line 1: ORA-01031: insufficient privileges

If this is a concern for you, then consider using a PL/SQL API package to make changes to your table, rather than granting access directly to the user. See &quot;Guarding Your Data Behind a Hard Shell PL/SQL API&quot; for reference. Also see here: https://www.youtube.com/watch?reload=9&amp;v=GZUgey3hwyI. A singleton package with definers rights could raise the error back to the app without granting excessive privileges or altering the overall security posture of your system.