"ORA-00942: 表或視圖不存在 "的原因和解決方案[轉]

來源:互聯網
上載者:User

標籤:des   blog   使用   檔案   for   資料   ar   問題   div   

採用Oracle資料庫,使用Powerdesigner設計,產生Sql檔案匯入後查詢出現“ORA-00942: 表或視圖不存在 ”,很是鬱悶,這個問題以前出現過,當初解決了,但因好久沒有使用,這次竟然忘了,害得我浪費了好些時間,為了避免再次忘記,將它記下來,同時和大家一起分享。

1、問題產生的原因

  Oracle 是大小寫敏感的,我們創自己寫Sql指令碼建立表的時候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));

 

但是 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語句時,表和欄位名上是沒有引號了。

"ORA-00942: 表或視圖不存在 "的原因和解決方案[轉]

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.