日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
請注意Oracle對象的大小寫

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

 
 
 
 
  1. CREATE TABLE test  
  2. (  
  3.      id      NUMBER(10),  
  4.      Name    VARCHAR2(20),  
  5.      Sex     VARCHAR(2)  
  6. )  
  7. --查找不到對應(yīng)數(shù)據(jù)  
  8. SELECT * FROM USER_TABLES WHERE TABLE_NAME = 'test' 
  9. --改用大寫才可以查到對應(yīng)的數(shù)據(jù)  
  10. SELECT * FROM USER_TABLES WHERE TABLE_NAME ='TEST' 
  11. --查找不到對應(yīng)數(shù)據(jù)  
  12. SELECT * FROM ALL_TAB_COLUMNS WHERE TABLE_NAME = 'test';  
  13. SELECT * FROM USER_TAB_COLUMNS WHERE TABLE_NAME ='TEST';  

 下面我們用雙引號來新建另外一個表(ORACLE 中 " "的作用是強制區(qū)分大小寫,以及關(guān)鍵字做字段時用"")腳本如下所示:

 
 
 
 
  1. CREATE TABLE "test1" 
  2. (   
  3.   "id"       NUMBER(10),  
  4.   "Name"     VARCHAR2(20),  
  5.   "SEX"      VARCHAR(2)  
  6. )  
  7. SELECT * FROM USER_TABLES WHERE TABLE_NAME = 'test1';  
  8. SELECT * FROM DBA_TABLES WHERE TABLE_NAME = 'test1';  
  9. SELECT * FROM USER_TAB_COLUMNS WHERE TABLE_NAME ='test1';  
  10. SELECT * FROM "test1";  
  11. --ORA-00942: 表或試圖不存在  
  12. SELECT * FROM test1;  
  13. --ORA-00904: "NAME": 標(biāo)識符無效  
  14. SELECT id, Name, SEX FROM "test1";  
  15. --ORA-00904: "ID": 標(biāo)識符無效  
  16. SELECT id, "Name", SEX FROM "test1";  
  17. SELECT "id", "Name", SEX FROM "test1";  
  18. --ORA-00942: 表或試圖不存在  
  19. SELECT "id", "Name", SEX FROM test1;    

上面的例子也許會讓覺得比較奇怪,這種現(xiàn)象在SQL SERVER里面是不存在的。這是因為ORACLE在建表或者字段時,如果沒有雙引號,ORACLE會把表名、字段名全部轉(zhuǎn)化為大寫字母然后寫入數(shù)據(jù)字典。訪問數(shù)據(jù)字典時,沒有雙引號ORACLE會將其轉(zhuǎn)化成大寫然后再去數(shù)據(jù)字段中查找。如果加上雙引號則能區(qū)分大小寫。不僅僅關(guān)鍵字不區(qū)分大小寫,函數(shù)名,過程名,表名稱,pl/sql塊中變量名,用戶名,密碼等都不區(qū)分大小寫。

有些人可能不習(xí)慣表名、字段全部用大寫,而喜歡用小寫或大小寫混雜的形式,如果是這樣的話,你在ORACLE中寫腳本時就要注意了,沒有處理好,這樣會給你帶來“無窮的麻煩”

如上所示,你必須在字段上加上"",否則這里報錯,哪里起火。而人有時候又是很粗心、健忘的。所以在ORACLE中,還是建議全部用大寫,這樣可能開始會讓你有些不爽,不過習(xí)慣了就好了。總比你用""給后面的開發(fā)帶來很多隱患要好得多。 

在ORAClE中,習(xí)慣腳本、字段等用大寫,有人說能提高效率,這樣少了強制轉(zhuǎn)換大寫(如果沒有雙引號的話)開銷,也有人說這些開銷可以忽略不計,不會有啥性能方面的問題。(當(dāng)然腳本全部用大寫一致,可以避免同一腳本由于大小寫問題多次解析,這是可以肯定的)。小弟不才,也不能確定,網(wǎng)上這方面的資料也少,希望大家能討論 


文章題目:請注意Oracle對象的大小寫
鏈接URL:http://www.5511xx.com/article/djjgodc.html