[Java Idea] 关于在navicat(等外部工具?)创建表,JDBC使用时提示“ORA-00942: 表或视图不存在”的解决方案

如图:

在Navicat新建了表UserDetail,但是查询时提示”表或视图不存在“,并且无论使用sqlplus还是PL SQL Developer均提示”表或视图不存在“。

[Java Idea] 关于在navicat(等外部工具?)创建表,JDBC使用时提示“ORA-00942: 表或视图不存在”的解决方案_第1张图片

 

解决方案:

经过查询了解到,外部工具在创建Oracle表时会默认添加双引号(""),所以我们在使用第三方工具直接建表时,建立成功的表的名字其实是添加了双引号的,所以我们在使用时也需要格外注意添加双引号。即:

之后再进行尝试,发现仍然报相同的错误:

经过进一步查证,其实并不是解决方法有误,而是工具建表还有一个隐藏的属性,即表名区分大小写。

进一步修改:

 

运行结果:

[Java Idea] 关于在navicat(等外部工具?)创建表,JDBC使用时提示“ORA-00942: 表或视图不存在”的解决方案_第2张图片

成功。

另外需要提出的一点是,当我们使用表的列名时,仍然要注意添加双引号和大小写。

题外话

或许Navicat已经给了我们区分大小写的提示?

[Java Idea] 关于在navicat(等外部工具?)创建表,JDBC使用时提示“ORA-00942: 表或视图不存在”的解决方案_第3张图片

Navicat建的表表名显示都是能显示小写字母的,而使用sql语言建的表表名智能显示全大写,这或许就已经告诉我们这一特性了吧。

目前DataGrip经实践未见有该问题,其他工具不知是否如此,有待观察。

 2018.8.28

你可能感兴趣的:(我们只解决提出问题的人)