Oracle:"ORA-00942: 表或视图不存在"

情景sql

项目中使用Powerdesigner设计数据结构,在Powerdesigner中数据表和字段都区分了大小写,并生成了Oracle表,在执行Sql脚本时遇到如下问题:“ORA-00942: 表或视图不存在“数据库

一、问题产生的缘由:Oracle 区分字母大小写数据结构

例如:ide

建表方式一:spa

create table user_Info ( user_address VARCHAR2(50) not null, user_name NVARCHAR2(50),

constraint PK_T_WINDRADAR primary key (wr_id) );

 建表方式二:设计

create table "user_Info" ( 
"
user_address" VARCHAR2(50) not null,
"user_name" NVARCHAR2(50),
constraint PK_T_WINDRADAR primary key (wr_id) );

两种方式建表的结果:一个表名为USER_INFO,另外一个表名为user_Infocode

由于 Oracle 支持"" 语法,将表名或字段名加上""后,Oracle不会将其转换成大写,若是不加""Oracle默认会将字母转成大写。orm

若是加上了"",那么咱们采用通常的SQL语句查询则会产生“ORA-00942: 表或视图不存在 ”,所以SQL脚本中须要将表名也加上""。blog

select * from "user_Info";

 

这种状况在咱们手写SQL的时候通常不会发生,可是咱们使用powerdesigner设计数据库的时候,因为不注意会常常出现此类问题,由于Powerdesigner生成的SQL文件默认是加""的。ip

二、Powerdesigner更改设置

  在PowerDesiger菜单中的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语句时,表和字段名上是没有引号了。
  更改完设置以后须要从新启动!
 
EF、DbEntry等生成的Sql脚本默认是带""
相关文章
相关标签/搜索