关于报错"ORA-01747: user.table.column, table.column 或列说明无效"的解决办法

 

 今天在工程中遇到“ORA-01747: user.table.column, table.column 或列说明无效”的报错情况,查了一下是由于数据库列名起的不好引起的,名字用到了数据库的关键字。


如果列很多,又不好确定是哪个列名使用了关键字,以下建议可供参考:


我用以下方法定位


 select *


from v$reserved_words 

where keyword


in(


select COLUMN_NAME


from all_tab_columns


where table_name = '表名大写' and owner='用户名大写'


);


【总结】:


Oracle数据库中创建表的时候,我们不能用有些单词,

因为有些事Oracle自己已经使用了的单词。

比如“row” .如果你使用了,那么就会报错。

怎么判断呢:


我的方法:直接将出错的sql复制到查询中,运行,

也可以直接看颜色,关键字会变色,我就是用了“row”关键字,所以报错了