情景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”,点击【应用】按钮。