最近在用Powerdesigner生成oracle數(shù)據(jù)庫sql語句時(shí),發(fā)現(xiàn)表和字段名中都帶有引號(hào)。例如:
create table "authorISBN" (
"authorID" INTEGER notnull,
"tit_isbn" VARCHAR2(20),
"aut_authorID" INTEGER,
"isbn" VARCHAR2(20),
constraint PK_AUTHORISBNprimary key ("authorID")
);
如果這樣生成表的話,那么你查詢或者插入數(shù)據(jù)都會(huì)顯示table or view does notexist(表或視圖不存在),然后讓你郁悶的事情來了,這些表中oracle數(shù)據(jù)庫中是存在的(我是建立在scott用戶中的),但是你去刪除這些表(droptable 表名,或者drop table"表名")都是無法刪除的,經(jīng)過自己查找資料和研究發(fā)現(xiàn),說明scott用戶的權(quán)限不夠。解決的方法是:你先連接到system用戶下,使用命令 grantselect any table toscott;(這句命令的意思是,授權(quán)給scott用戶選擇任何的表),這樣你在連接到scott用戶下,發(fā)現(xiàn)可以查詢出這張表(select* from "表名") 但是表名上要加引號(hào)。刪除這張表(drop table "表名") 表名上同樣要加引號(hào)。
那么為什么用PowerDesigner生成的oracle數(shù)據(jù)庫sql語句的表名和字段名上會(huì)出現(xiàn)引號(hào)呢?
因?yàn)?Oracle創(chuàng)建表的一條規(guī)則為:
在命名表的時(shí)候可以使用大寫或小寫字母。只要表名或字段名沒有用雙引號(hào)括住,Oracle 對大小寫就不敏感。Oracle支持使用雙引號(hào)的語法。但是,最好不要直接使用雙引號(hào)。
那么怎么讓這些引號(hào)不出現(xiàn)呢?
在PowerDesiger中,在physical data model中找到菜單中的Database下的Edit currentDBMS中,選擇Script->Sql->Format,有一項(xiàng)CaseSensitivityUsingQuote,它的comment為“Determinesif the case sensitivity for identifiers is managed using doublequotes”,表示是否適用雙引號(hào)來規(guī)定標(biāo)識(shí)符的大小寫,可以看到右邊的values默認(rèn)值為“YES”,改為“No”,點(diǎn)擊【應(yīng)用】按鈕。
這樣再生成sql語句時(shí),表和字段名上是沒有引號(hào)了。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點(diǎn)擊舉報(bào)。