"ORA-00942: 表或视图不存在 "的原因和解决方法
2015-11-17 14:45
441 查看
采用Oracle数据库,使用Powerdesigner设计,生成Sql文件导入后查询出现“ORA-00942: 表或视图不存在 ”,很是郁闷,这个问题以前出现过,当初解决了,但因好久没有使用,这次竟然忘了,害得我浪费了好些时间,为了避免再次忘记,将它记下来,同时和大家一起分享。1、问题产生的原因 Oracle 是大小写敏感的,我们创自己写Sql脚本创建表的时候Oracle会自动将我们的表名,字段名转成大写, eg:
eg:
eg:
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不会将其转换成大写
eg:
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脚本中需要将表名也加上""。
eg:
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语句时,表和字段名上是没有引号了。
相关文章推荐
- @PathVariable出现点号"."时导致路径参数截断获取不全的解决办法
- java保留两位小数
- 使用Matlab调用摄像头及保存视频
- Testlink在CentOS、windows安装
- 2-5、北京某高校可用的电话号码有以下几类:校内电话号码由4位数字组成,第1位数字不是0;校外电话又分为本市电话和外地电话两类,拨校外电话需先拨0,若是本市电话则再接着拨8位数字(第1位不是0),若是外地电话则拨3位区码,再拨8位电话号码(第1位不是0)。
- java object
- 【鸟哥的linux私房菜-学习笔记】计算机网络相关知识简要回顾
- LeetCode(31): Next Permutation (C++)
- CentOS7 安装配置过程 (Apache + SQL+ PHP + SSH + Opensips+Openfire)
- 编程语言计算多项式值
- lua 翻页
- webdav不识别软链接?解决办法?
- 端口数据库连接
- 使用NGINX支持PHP,MYSQL
- QSQLite 绑定
- 基于Jquery easyui 选中特定的tab
- displaytag与exetremetable的学习
- 关于java 和 android 下获取指定时间是本年第几周不一致问题的解决方法
- fragment时获取碎片事务的获得
- background的合并合并书写方式