ORACLE物件名大小寫敏感性相關的深入分析
注:
1、 本文是以ORACLE10.2為測試分析版本
2、 本文中提到的ORACLE對像名包括ORACLE中的表名、檢視名、欄位名、函式名等等。
以下是筆者對建立表及訪問使用不同命名方式的一個例項,是筆者的機器上測試結果:
連線到:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
SQL> create table mytable ( C1 VARCHAR2(6) );
Table created
insert into mytable values('aer');
SQL> select * from "MYTABLE";
C1
---------------
aer
SQL> select * from MYtable;
C1
---------------
aer
SQL> select * from "mytable";
select * from "mytable"
ORA-00942: 表或檢視不存在
SQL> drop table mytable;
Table dropped
SQL>
SQL> create table "mytable" (C1 varchar2(6));
Table created.
SQL> insert into "mytable" values('aer');
1 row created.
SQL> select * from "mytable";
C1
---------------
aer
SQL> select * from mytable;
select * from mytable
*
ERROR at line 1:
ORA-00942: table or view does not exist
SQL> select * from MYTABLE;
select * from MYTABLE
*
ERROR at line 1:
ORA-00942: table or view does not exist
SQL> select * from "MYTABLE";
select * from "MYTABLE"
*
ERROR at line 1:
ORA-00942: table or view does not exist
下表為筆者的測試結果彙總:
√表示允許訪問,×表示不允許訪問。
例項:
讀取 mytable MYTABLE "mytable" "MYTABLE"
建立
mytable √ √ × √
MYTABLE √ √ × √
"mytable" × × √ ×
"MYTABLE" √ √ × √
總結歸納:
讀取 小寫字母 大寫字母 加引號小寫字母 加引號大寫字母
建立
小寫字母 √ √ × √
大寫字母 √ √ × √
加引號小寫字母 × × √ ×
加引號大寫字母 √ √ × √
以下為根據筆者對ORACLE資料字典及實際測試總結分析結論:
ORACLE在建立對像時如果沒有加引號,對存入資料字典時都會將對像名小寫字母轉換成大寫字母儲存,如mytable將轉換成MYTABLE;如果建立時加了引號,則以引號內的實際字元儲存。
訪問時如果沒加引號則會將小寫字母轉換成大寫字母再訪問,如mytable將轉換成MYTABLE;如果加了引號則以引號內的實際字元訪問。
ORACLE在讀取資料字典時只要發現對像名裡有小寫字母或者是除字母漢字以外開頭的字元都認為是大小寫敏感的,並且要求在訪問時需要加上引號。
建議建立及更新時,表名、檢視名、欄位名、函式名不要加引號。
本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/wh62592855/archive/2009/09/24/4589068.aspx
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15688952/viewspace-628734/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mysql大小寫敏感MySql
- MySQL中的大小寫敏感MySql
- sql server 大小寫敏感SQLServer
- 在Oracle中進行大小寫不敏感的查詢Oracle
- mysql 大小寫敏感問題MySql
- MySQL大小寫敏感說明MySql
- 在Oracle中進行大小寫不敏感的查詢[zt]Oracle
- DM8 字串大小寫敏感字串
- PHP大小寫是否敏感問題PHP
- oracle 11g新特性之密碼大小寫敏感Oracle密碼
- MySQL 關於表名大小寫的引數MySql
- Oracle 12c 業務使用者密碼大小寫不敏感Oracle密碼
- mysql 大小寫敏感 lower_case_table_namesMySql
- python中排序時對大小寫不敏感Python排序
- 在Linux下管理MySQL的大小寫敏感性LinuxMySql
- mysql 5.X 在linux上,表名大小寫敏感問題解決辦法MySqlLinux
- 在 macOS 內使用大小寫敏感的 APFS 卷儲存程式碼Mac
- Mysql 表名大小寫問題MySql
- MySQL 8 忽略表名大小寫MySql
- MySQL表名區分大小寫MySql
- 連通性相關
- php一招搞定替換指定字元(大小寫不敏感)PHP字元
- git Windows下重新命名檔案,大小寫敏感問題GitWindows
- 將現有MySQL資料庫改為大小寫不敏感MySql資料庫
- 修改RAC引數指定節點名跟大小寫有關係
- git提交時支援檔名大小寫的修改Git
- Oracle 10g 11g密碼策略 使用者口令 大小寫敏感 說明Oracle 10g密碼
- git預設忽略檔名大小寫Git
- 可靠性相關概念
- 10g、11g口令檔案密碼大小寫敏感密碼
- 關於物件顆粒大小的問題。物件
- Oracle 11g使用者名稱密碼區分大小寫Oracle密碼
- PowerDesigner表名、列名大小寫轉換
- iOS @property 屬性相關的總結iOS
- oracle smallfile 大小和塊大小關係Oracle
- oracle 報大小寫錯誤Oracle
- oracle 不區分大小寫Oracle
- 圖論連通性相關圖論