新聞中心
在數(shù)據(jù)庫(kù)新建一個(gè)測(cè)試表(數(shù)據(jù)庫(kù)版本為ORACLE 10.2.0.1.0),表名為小寫的test。 腳本如下所示:

- CREATE TABLE test
- (
- id NUMBER(10),
- Name VARCHAR2(20),
- Sex VARCHAR(2)
- )
- --查找不到對(duì)應(yīng)數(shù)據(jù)
- SELECT * FROM USER_TABLES WHERE TABLE_NAME = 'test'
- --改用大寫才可以查到對(duì)應(yīng)的數(shù)據(jù)
- SELECT * FROM USER_TABLES WHERE TABLE_NAME ='TEST'
- --查找不到對(duì)應(yīng)數(shù)據(jù)
- SELECT * FROM ALL_TAB_COLUMNS WHERE TABLE_NAME = 'test';
- SELECT * FROM USER_TAB_COLUMNS WHERE TABLE_NAME ='TEST';
下面我們用雙引號(hào)來(lái)新建另外一個(gè)表(ORACLE 中 " "的作用是強(qiáng)制區(qū)分大小寫,以及關(guān)鍵字做字段時(shí)用"")腳本如下所示:
- CREATE TABLE "test1"
- (
- "id" NUMBER(10),
- "Name" VARCHAR2(20),
- "SEX" VARCHAR(2)
- )
- SELECT * FROM USER_TABLES WHERE TABLE_NAME = 'test1';
- SELECT * FROM DBA_TABLES WHERE TABLE_NAME = 'test1';
- SELECT * FROM USER_TAB_COLUMNS WHERE TABLE_NAME ='test1';
- SELECT * FROM "test1";
- --ORA-00942: 表或試圖不存在
- SELECT * FROM test1;
- --ORA-00904: "NAME": 標(biāo)識(shí)符無(wú)效
- SELECT id, Name, SEX FROM "test1";
- --ORA-00904: "ID": 標(biāo)識(shí)符無(wú)效
- SELECT id, "Name", SEX FROM "test1";
- SELECT "id", "Name", SEX FROM "test1";
- --ORA-00942: 表或試圖不存在
- SELECT "id", "Name", SEX FROM test1;
上面的例子也許會(huì)讓覺得比較奇怪,這種現(xiàn)象在SQL SERVER里面是不存在的。這是因?yàn)镺RACLE在建表或者字段時(shí),如果沒有雙引號(hào),ORACLE會(huì)把表名、字段名全部轉(zhuǎn)化為大寫字母然后寫入數(shù)據(jù)字典。訪問數(shù)據(jù)字典時(shí),沒有雙引號(hào)ORACLE會(huì)將其轉(zhuǎn)化成大寫然后再去數(shù)據(jù)字段中查找。如果加上雙引號(hào)則能區(qū)分大小寫。不僅僅關(guān)鍵字不區(qū)分大小寫,函數(shù)名,過程名,表名稱,pl/sql塊中變量名,用戶名,密碼等都不區(qū)分大小寫。
有些人可能不習(xí)慣表名、字段全部用大寫,而喜歡用小寫或大小寫混雜的形式,如果是這樣的話,你在ORACLE中寫腳本時(shí)就要注意了,沒有處理好,這樣會(huì)給你帶來(lái)“無(wú)窮的麻煩”
如上所示,你必須在字段上加上"",否則這里報(bào)錯(cuò),哪里起火。而人有時(shí)候又是很粗心、健忘的。所以在ORACLE中,還是建議全部用大寫,這樣可能開始會(huì)讓你有些不爽,不過習(xí)慣了就好了??偙饶阌?"給后面的開發(fā)帶來(lái)很多隱患要好得多。
在ORAClE中,習(xí)慣腳本、字段等用大寫,有人說(shuō)能提高效率,這樣少了強(qiáng)制轉(zhuǎn)換大寫(如果沒有雙引號(hào)的話)開銷,也有人說(shuō)這些開銷可以忽略不計(jì),不會(huì)有啥性能方面的問題。(當(dāng)然腳本全部用大寫一致,可以避免同一腳本由于大小寫問題多次解析,這是可以肯定的)。小弟不才,也不能確定,網(wǎng)上這方面的資料也少,希望大家能討論
新聞名稱:請(qǐng)注意Oracle對(duì)象的大小寫
URL標(biāo)題:http://m.fisionsoft.com.cn/article/djjgodc.html


咨詢
建站咨詢
