ORA-00942:table or view does not exist
好好的表都建成功了,在PL/SQL中编辑数据时给我来这个提示,起的我没办法了。查到如下:
oracle建表时有一个严重的问题,在此写出来,提醒大家注意:
先简单写一下错误内容,如各位已经发现过此问题并已知处理方法,请忽略此邮件内容,以节省时间。
简单的说就是如在ORACLE建表时的SQL中表名用引号括起来了,则以后对此表的所有操作都必须把此表名用引号括起来,否则报“表不存在”。
以下为错误详细介绍:
错误现象:我先用PowerDesigner生成数据库建表脚本,然后在MyEclipse中执行此脚本生成数据库表,执行后,在MyEclipse已经可以看到此表结构。然后我用select语句查询此表数据,ORACLE提示“ORA-00942 : table or view does not exist ”,表或视图不存在。但我用MyEclipse生成的SQL来查询此表数据,ORACLE没有报错。
建表语句简写如下:
create table "Test01"
(
"id" int,
"name" varchar(20)
);
试过的手写select语句如下:select * from Test01; select * from hie.Test01; select * from hie.hieuser.Test01; select * from hie.Test01;(hie是数据库实例名,hieuser是数据库用户名)
错误分析:MyEclipse自动生成的SQL为:select "id", "name" from "hieuser"."Test01",发现MyEclipse自动生成的SQL把相关标识名用引号包围,看来ORACLE对引号很感冒,据此在google上查询了oracle和“引号”相关的内容,结果如下:
oracle建表时,如建表的SQL同时满足以下条件,则不论在查询或新增数据时都必须把相应SQL中的表名用引号括起来,否则会报00942错误。
条件1.建表的SQL中表名用引号括起来了。
条件2.建表的SQL中表名中英文字符不全部都是大写(即包括一或多个小写英文字符,其他情况我没试过,如表名纯为“123”等情况)。
解决办法:强烈建议大家在ORACLE中建表时不要把表名用""括起来,否则把所有涉及到此表的代码中所有表名都加上引号会相当痛苦,在ColdFusion中为了防止和变量声明的引号冲突,可能还要加上转义字符,在JAVA中如果用HIBERNATE来做数据库交互的话,甚至连加引号的途径都没有,只能删除表后重新建表。
另:我今天在ORACLE 11g中遇到了这个问题,我记得我在两年前也遇到过这个问题,那时我记不清我使用的是哪个ORACLE版本了,反正我感觉ORACLE多个版本中都存在此问题。
正如上面描述,果不其然。11g也是有这样问题的。这样怎么办啊?PL/SQL生成的脚本都是带引号的。姑且标记一下。以后有机会再处理一下这个问题。
另外,PL/SQL developer15里连接ORACLE 11g的时候明明加上了正确的驱动名以及依赖文件,死活都连接不上,这个时候将依赖包加入classpath环境变量吧!
ORA-00942:table or view does not exist的更多相关文章
- [Err] ORA-00942: table or view does not exist
[Err] ORA-00942: table or view does not exist 当前用户加表明 例如:SCOTT."replyInfo"
- spring+quartz报错:Table 'BANKSTEELERP_OLD.QRTZ_TRIGGERS' doesn't exist
spring3.2.8 + quartz2.2.1配置到application.xml中 org.springframework.beans.factory.BeanCreationException ...
- spring+quartz报错:Table 'XXXX.QRTZ_TRIGGERS' doesn't exist
Spring4.3.4 + quartz2.2.1配置到application.xml中 <properties> <spring.version>4.3.4.RELEASE& ...
- thinkphp中SQLSTATE[42S02]: Base table or view not found: 1146 Table错误解决方法
随手记录下今天在thinkphp3.2.3中遇到的错误SQLSTATE[42S02]: Base table or view not found: 1146 Table 'test.file_info ...
- Base table or view not found
项目 代码分细致 改为Logic, Model, Controller ,View 四个模块 $model=D("Index",'Logic'); $res=$model-> ...
- MySQL: Table 'mysql.plugin' doesn't exist的解决
安装解压版MySQL以后,不能启动,日志里面出现了这个错误: MySQL: Table 'mysql.plugin' doesn't exist 这是因为mysql服务启动时候找不到内置数据库&quo ...
- mysql [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist (转载)
mysql报错Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist 2013-11-2 ...
- Ubuntu 使用phpmyadmin,报错#1146 - Table ‘phpmyadmin.pma_table_uiprefs' doesn't exist
cd /etc/phpmyadminsudo vim config.inc.php 修改phpmyadmin的配置文件config.inc.php $cfg['Servers'][$i]['table ...
- 【转】安装mysql 出现:Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist
来源:http://blog.csdn.net/dapeng0112/article/details/37053407 本来初始化配置是这样的: scripts/mysql_install_db -- ...
随机推荐
- 打造最高效的科研环境之Emacs插件们
0 盲人摸象 作为初学者,迫切的需求就是直接上手Emacs并打造包含自动补全命令在内的科研环境. 和网上众多的插件安装的教程相比,我认为找到一个与自己需求匹配的Emacs配置环境来得更方便. 本例中, ...
- 显示隐藏文件 .DS_Store文件
1. mac为了保护系统文件和减少对用户的干扰,提高用户体验,将一些系统文件隐藏了起来,如hosts配置文件,.DS_Store文件 (Desktop Services Store),.localiz ...
- PHP分页代码
} <a href="fenye.php?page=<?php echo <?php } <a href="fenye ...
- bzoj2006: [NOI2010]超级钢琴
题意:给一个序列(n<=500000),要求选定k个不同区间,使得区间长度在L,R之间,并使得k个区间和之和最大,输出这个最大值. 刚拿到题的时候想的是,对于每个点,如果以它开头,那么之后的L- ...
- #Deep Learning回顾#之2006年的Science Paper
大家都清楚神经网络在上个世纪七八十年代是着实火过一回的,尤其是后向传播BP算法出来之后,但90年代后被SVM之类抢了风头,再后来大家更熟悉的是SVM.AdaBoost.随机森林.GBDT.LR.FTR ...
- Ftrl in tensorflow
reference :点击这里https://github.com/tensorflow/tensorflow/issues/3725 讲解 http://www.tuicool.com/articl ...
- php 常用数组操作
php常用的数组操作函数,包括数组的赋值.拆分.合并.计算.添加.删除.查询.判断.排序等 array_combine 功能:用一个数组的值作为新数组的键名,另一个数组的值作为新数组的值 <?p ...
- iOS autoresizing布局
在对UIView以及其子类空间的布局方案有多种,今天温习了一下autoresizing布局 一.了解一下相关知识: 1.UIView其中一个属性为 @property(nonatomic) UIVie ...
- as3 代码加解密
private var loader:URLLoader; ... private function init():void { loader = new URLLoader; req=URLRequ ...
- python 中的高级函数sorted()
Python内置的 sorted()函数可对list进行排序: >>>sorted([36, 5, 12, 9, 21]) [5, 9, 12, 21, 36] 但 sorted() ...