午夜视频在线网站,日韩视频精品在线,中文字幕精品一区二区三区在线,在线播放精品,1024你懂我懂的旧版人,欧美日韩一级黄色片,一区二区三区在线观看视频

分享

如何讓Oracle表及字段顯示為區(qū)分大小寫

 _明心見性_ 2017-11-12


相信大部分用慣了SQL Server的人,剛開始用Oracle肯定會特不習慣,因為通常情況下,Oracle建的表名和字段名都會自動給我們轉(zhuǎn)換為大寫的。如下圖所示

1.jpg (101.2 KB, 下載次數(shù): 22)

下載附件

2012-8-9 08:41 上傳

說實話,筆者當初第一次接觸Oracle的時候,也看著很不爽,可那會也只能無奈,因為沒法解決。所以心理一直在想,如果能顯示成區(qū)分大小寫的該多好啊,于是我實現(xiàn)了心中的愿意,如下圖所示:


期盼已久的效果終于實現(xiàn)了,特別高興,所以我要告訴大家實現(xiàn)原理,以期待更多像我一樣追求美觀的人得到 一種心理安慰。
實現(xiàn)方式:
不再用PL-SQL直接建表了,而改用PDPower Desginer)的方式建表。因為我發(fā)現(xiàn)不管我們是否大小寫區(qū)分PL-SQL都會自動幫我們轉(zhuǎn)換稱大寫的了。PD自動生成的SQL如下:
create table "TDepartment"  (
   FID                  NVARCHAR2(36)                  not null,
   "FText"              NVARCHAR2(50)                   not null,
   "FParentID"          NVARCHAR2(36)                   not null,
   "FLevel"             NUMBER,
   "FAutoCode"          NVARCHAR2(100),
   "FCode"              NVARCHAR2(50),
   "FLeaf"              NUMBER                         default 1 not null,
   "FRemark"            NVARCHAR2(500),
   "FDataServerIP"      NVARCHAR2(100),
   "FDataServerPort"    NVARCHAR2(10),
   "FMediaServerIP"     NVARCHAR2(100),
   "FMediaServerPort"   NVARCHAR2(10),
   "FDataServer"        NVARCHAR2(200),
   "FMediaServer"       NVARCHAR2(200),
   constraint PK_TDEPARTMENT primary key (FID)
);
(字段說明的腳本在這就省略了)
原理分析:
PL自動生成的創(chuàng)建表的腳本中,表名和字段名都加了雙引號。雙引號在Oracle中表示區(qū)分大小寫,Oracle是嚴格區(qū)分大小寫的,未使用雙引號時默認全部大寫。可能很多人都會誤認為oracle是不區(qū)分大小寫的,原因是我們在寫查詢語句的時候,大小寫無所謂,結(jié)果都是一樣的,這只是個表面現(xiàn)象,只要你不使用雙引號表示區(qū)分大小寫,oracle會默認把你寫的腳本全部轉(zhuǎn)換為大寫的。從下面可以看出:

因為Oracle默認存儲為大寫形式,所以PL-SQL顯示的效果也是大寫的。


正是因為區(qū)分大小寫,所以在Oracle中可以存在大小寫并存的同名表或表字段。
到這里大家我想大家應該明白了,怎么使Oracle區(qū)分大小寫了,就是使用雙引號。
思考:既然Oracle可以區(qū)分大小寫,那為什么大家在使用的時候都寧愿選擇看著不舒服的大寫形式呢?下面這個實驗我們將給出答案,如下圖所示:


正如上面所講,如果我們不加雙引號,那么Oracle會默認把表名和字段名全部轉(zhuǎn)換為大寫形式。
最簡單的查詢語句:select * from TCamera   
會報錯,提示:ORA-00942table or view does not exist   表或試圖不存在
在這個時候,我們看提示應該很容易明白了,原因是在Oracle中的user-tables 不存在我們要查詢的TCAMERA[自動轉(zhuǎn)換稱大寫的表。
那么正確的語句應該是:select * from “TCamera”   需要加雙引號
   這個時候就感覺很不舒服了,那寫查詢多不方便呀,而且不僅是表名需要使用雙引號,如果查詢某些特定字段也需要加雙引號,那么此時給開發(fā)人員將帶來諸多的不便。這也就是為什么大家都寧愿選擇全部大寫的了。明白了嗎?


Power Designer的對應設置:
使用PD的人就會有問題了,既然默認PD生成的都是帶雙引號區(qū)分大小寫的,那怎么把雙引號去掉呢,總不能一個一個改吧?呵呵,既然你想到了,那么Sybase的團隊自然也是想到了,所以通過下面的設置步驟,就能去掉PD自動生成腳本的雙引號了。
找到菜單Database—>Edit Current DBMS  會打開DBMS屬性設置窗口,找到ScriptàSqlàCaseSensitivityUsingQuote,選擇No,即大小寫不區(qū)分。如下圖所示:

7.jpg (76.66 KB, 下載次數(shù): 2)

下載附件

2012-8-9 08:42 上傳



點擊確定后,系統(tǒng)會提示是否保存設置,請點擊“是”。
這個時候我們來對比看一下生成的SQL

設置前,PD默認區(qū)分大小寫,表名和字段都帶雙引號,如下圖所示:



設置后,不區(qū)分大小寫,所有的都不帶雙引號,所以生成的表及其字段都將默認被Oracle轉(zhuǎn)換為大寫的形式。如下圖所示:
到這里,PDOracle就對應起來了,喜歡什么形式的就自己動手去設置吧。
最后我們對比一下SQL Server Oracle在查詢具體內(nèi)容上的區(qū)別,讓大家更深刻地認識到我們平時可能存在的誤解。


這表明,SQL Server在表字段內(nèi)容中,其實也是不區(qū)分大小寫的。但是Oracle就不同,同樣的狀況,Oracle肯定查詢不到數(shù)據(jù),因為Oracle嚴格區(qū)分大小寫。不信自己可以去試試。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多