Oracle "ORA-00942: 表或视图不存在 "的原因和解决方法

原创 2017年01月03日 11:38:06

采用Oracle数据库,使用Powerdesigner设计,生成Sql文件导入后查询出现“ORA-00942: 表或视图不存在 ”。

1、问题产生的原因

  Oracle 是大小写敏感的,我们创自己写Sql脚本创建表的时候Oracle会自动将我们的表名,字段名转成大写。

create table T_WindRadar  (
   wr_id                VARCHAR2(64)                    not null,
   wr_reciveTime        DATE,
   wr_image             BLOB,
   constraint PK_T_WINDRADAR primary key (wr_id)
);

但是 Oracle 同样支持”” 语法,将表名或字段名加上”“后,Oracle不会将其转换成大写

create table "T_WindRadar"  (
   "wr_id"                VARCHAR2(64)                    not null,
   "wr_reciveTime"        DATE,
   "wr_image "            BLOB,
   constraint PK_T_WINDRADAR primary key (wr_id)
);

如果加上了”“,那么我们采用一般的SQL语句查询则会产生“ORA-00942: 表或视图不存在 ”,因此SQL脚本中需要将表名也加上”“。


select * from  "T_WindRadar";

这种情况在我们手写SQL的时候一般不会发生,但是我们使用powerdesigner设计数据库的时候,由于不注意会经常出现此类问题,因为Powerdesigner生成的SQL文件默认是加”“的。

2、解决的办法

  因为我们使用的是Powerdesigner,所以可以不用手工改写SQL脚本,只要设置Powerdesigner重新生成即可。

  在PowerDesiger中,在physical data model 中找到菜单中的Database下的Edit current DBMS中,

  选择Script->Sql->Format,有一项CaseSensitivityUsingQuote,它的comment为“Determines if the case sensitivity for identifiers is managed using double quotes”,

  表示是否适用双引号来规定标识符的大小写,可以看到右边的values默认值为“YES”,改为“No”,点击【应用】按钮。

  这样再生成sql语句时,表和字段名上是没有引号了。

在powerdesigner中设计Oracle数据库并generator database成功,用PLSQL Developer可以看到生成的表,但对这些表或者序列进行添加删除修改等操作时却提示“表或视图不存在”,直接编辑也是同样的提示…

产生原因:
原来是powerdesigner生成数据库的时候默认把所有的标识符都打了双引号,结果导致Oracle从不区分大小写,到区分这些标识符的大小写.

解决方法:

1.菜单: Database

2.Edit Current DBMS

3.在弹出的对话框中将 ORA11GR1::Script\Sql\Format\UpperCaseOnly 设为Yes

4.在弹出的对话框中将 ORA11GR1::Script\Sql\Format\CaseSensitivityUsingQuote 设为No

这样以后再生成数据库就不会出现上述问题了.

这里写图片描述

关于"ORA-00942 表或视图不存在" 问题的解决方法

在auth用户下有一表AUTH_ORG_FRAM: SELECT   ORG_ID AS ID_ORGUNIT,             ORG_NAME AS NAME,            ...
  • c_huabo
  • c_huabo
  • 2015年06月30日 11:20
  • 26584

[转载]ORA-00942 表或视图不存在 问题的解决

[转载]ORA-00942 表或视图不存在 问题的解决  (2012-07-09 14:46:18) 转载▼ 标签:  转载 分类: Oracle ...
  • evilcry2012
  • evilcry2012
  • 2016年05月24日 08:33
  • 4037

[转载]ORA-00942 表或视图不存在 问题的解决

xmlns="http://www.w3.org/1999/xhtml">             type="text/javascript" ...
  • cyj_20170320
  • cyj_20170320
  • 2017年03月20日 14:21
  • 755

表或视图不存在 Hibernate Oracle

曾经运行一个别人写的程序,之前连的别人的机器的数据,后来我把数据导入到本地数据库中运行,出错,如下: Hibernate: select sum(rdb_alert_0_.EVENT_COUNT) ...
  • wwbmyos
  • wwbmyos
  • 2014年03月16日 19:37
  • 4323

"ORA-00942: 表或视图不存在 "的原因和解决方法(非常好)

执行上面的sql时提示"ORA-00942 表或视图不存在",纳闷了,用select * from AUTH.AUTH_ORG_FRAM语句 查询时可以查到数据,但创建视图时就提示找不到, 原...
  • u013380777
  • u013380777
  • 2016年10月01日 22:58
  • 7802

oracle编译存储过程提示表或视图不存在的问题分析

今天有同事跟我反映有个存储过程编译报错,提示表或视图不存在。存储过程中调用的那个表t是另一个用户b的表。但是当前用户a已经拥有dba角色了,为什么访问不到用户b的表t呢?另一同事说,只要给用户a分配操...
  • zhangzl1012
  • zhangzl1012
  • 2016年03月25日 22:39
  • 6185

ORACLE的问题解决:Ora-00942:表或视图不存在

由powerdesigner导入到oracle中时,记得将在oracle中的表名全部用大写。刚开始时,由于表名为小写,然后导入到oracle中默认的也是小写,结果出现了一些很奇怪的情况,一个就是在En...
  • gaoligaoli
  • gaoligaoli
  • 2006年07月05日 00:15
  • 23495

ORA-00942: 表或视图不存在

问题情境:一个以前的项目需要升级,数据库用的是oracle,数据库脚本是同事给的,从git上down下来之后,我首先需要在本地启动项目。 于是在启动的时候遇到了这个问题。 因为sql脚本是同事给的...
  • kangguowei
  • kangguowei
  • 2016年12月12日 21:16
  • 1045

ORACLE数据库---"ORA-00942: 表或视图不存在 "的原因和解决方法

"ORA-00942: 表或视图不存在 "的原因和解决方法 采用Oracle数据库,使用Powerdesigner设计,生成Sql文件导入后查询出现“ORA-00942: 表或视图不存在 ”,...
  • xunshishi
  • xunshishi
  • 2016年07月25日 23:01
  • 3156

"ORA-00942: 表或视图不存在 "的原因和解决方法,powerdesigner设计导入

采用Oracle数据库,使用Powerdesigner设计,生成Sql文件导入后查询出现“ORA-00942: 表或视图不存在 ”,很是郁闷,这个问题以前出现过,当初解决了,但因好久没有使用,这次竟然...
  • MatinBell
  • MatinBell
  • 2017年05月10日 23:52
  • 941
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Oracle "ORA-00942: 表或视图不存在 "的原因和解决方法
举报原因:
原因补充:

(最多只允许输入30个字)