情景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」,點擊【應用】按鈕。