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 -- ...
随机推荐
- redis集群报错
写入redis集群报错:(error) MOVED 6918 解决方法:redis-cli -c -p 7001 -h 10.0.0.104
- scala getter and setter
package exp { object Main { def main(args: Array[String]): Unit = { B.name ="Fred"; printl ...
- ionic开发中的各种坑
提前说明:这些坑是ionic1的. 一.关于缓存:<ion-view>中设置cache-view="false"表示禁用缓存,默认为true; 二.列表进入详情页面后返 ...
- 《数据结构》2.2顺序表(sequence list)
//顺序表节点的定义 typedef struct { datatype data[MAXSIZE]; //数组容量的上限 int len; //记录最后一个元素的位置,相当于一个指针,表空时len= ...
- git检出与创建的过程
Command line instructions Git global setup git config --global user.name "bingo" git confi ...
- Java接口中的方法
接口中可以含有变量和方法.但是,接口中的变量会被隐式地指定为public static final变量(并且只能是public static final变量,用private修饰会报编译错误),而方法 ...
- 第六篇.bootstrap表格
基本表格: <table class="table"> <tr><td>用户名</td><td>密码</td> ...
- ubuntu上用eclipse搭建java、python开发环境
上一篇文章讲到如何在windwos上用eclipse搭建java.python开发环境,这一讲将关注如何在ubuntu上实现搭建,本人使用虚拟机安装的ubuntu系统,系统版本为:14.04 lts ...
- oracle应用-表空间.用户名.权限
oracle 数据库应用 虽然代码少但是很实用! --01.表空间create tablespace tp_hrdatafile 'E:\tp_hr01.dbf' size 10M, 'E:\tp_t ...
- PHP往mysql数据库中写入中文失败
该类问题解决办法就是 在建立数据库连接之后,将该连接的编码方式改为中文. 代码如下: $linkID=@mysql_connect("localhost","root&q ...