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腳本默認是帶""
相關文章
相關標籤/搜索