在查询表所有列,然后通过列信息插入数据时,出现ORA-14148: guard 列不允许直接执行 DML 和 DDL 操作,经查找分析,问题出现在隐藏列上。
在oracle12c环境下,数据表新增带有default值且允许为空的数值字段时,会创建隐藏列
通过sql
select column_id, column_name, data_type, data_length, data_default, hidden_column from user_tab_cols
来查询表的所有列时,可看到hidden_column列为YES,该列在数据表中并不存在,需要排除。