一般情況下使用者在進行 Oracle開發或管理裡都不會對ORACLE對像名大小寫進行區別因為ORALCE在普通情況下會將所有小寫都轉換為大寫進行處理所以可以說是大小寫不敏感的但是實際ORACLE內部有它一套完整的對像名處理方式本文將從實例進行分析與探討ORACLE對像名大小寫敏感性的處理機制
可能很多人在工作已經了解到ORACLE在創建對像時是可以加引號的如果不加引號則不能使用特別字符只能使用以字母開頭的命名如果加了引號就可以在對像名裡使用任何字符包括數字開頭下劃線逗號等等在導出 SQLSERVER的對像創建腳本時一般是加了引號的所以經常有人說腳本在ORACLE中運行後對像不能訪問的問題
注
本文是以ORACLE為測試分析版本
本文中提到的ORACLE對像名包括ORACLE中的表名視圖名字段名函數名等等
以下為創建表及訪問使用不同命名方式的一個實例測試結果如下
測試結果匯總
√表示允許訪問×表示不允許訪問
總結
分析結論
ORACLE在創建對像時如果沒有加引號對存入數據字典時都會將對像名小寫字母轉換成大寫字母存儲如mytable將轉換成MYTABLE如果創建時加了引號則以引號內的實際字符存儲
訪問時如果沒加引號則會將小寫字母轉換成大寫字母再訪問如mytable將轉換成MYTABLE如果加了引號則以引號內的實際字符訪問
ORACLE在讀取數據字典時只要發現對像名裡有小寫字母或者是除字母漢字以外開頭的字符都認為是大小寫敏感的並且要求在訪問時需要加上引號
From:http://tw.wingwit.com/Article/program/Oracle/201311/17688.html