.Net程序員學用Oracle系列(18):PLSQL Developer 攻略
我是在用過幾年 SSMS 以後才接觸 PL/SQL Developer 的,一開始真的是很是不適應,感受各類困難、各類麻煩、各類莫名其妙。當初我甚至懷疑過開發 PL/SQL Developer 的人是否是腦子有病,界面醜也就罷了,功能還那麼難用,爲啥不學學人家微軟呢?哪怕是模仿一會兒!然而,現實是當初我並不知道除了 PL/SQL Developer 以外,還有別的能夠用來開發 Oracle 的工具。但爲了把工做作好,也爲了更高效、更自由的使用 PL/SQL Developer,我愣是硬着頭皮把它全部菜單和工具欄幾乎點了個遍。近幾年也一直在用 PL/SQL Developer,時至今日,終有所獲,我將經過本文把我所知道的一些好用的功能或技巧分享給你們。html
注意:本人用的是 PL/SQL Developer 7.0,下文將根據這個版原本講述。若是你用的是高版本的,關係也不大,由於我曾用過一陣子 10.0 的,官方最新版 12.0 的功能介紹我也大體看過,發現也沒太大差異。可能有些功能內部作了改進,也是爲了支持新的環境或提高性能,新功能彷佛很少。最直觀的感覺仍是 UI 的美化,畢竟老版本的確實不太好看,有些人甚至就是由於這個而不用 PL/SQL Developer 的。程序員
一、功能說明及使用技巧
1.一、對象瀏覽器
可以顯示與 PL/SQL 開發相關的全部信息。可用它來獲取對象描述,查看對象定義,爲調試器建立測試腳本,啓用或禁用觸發器和約束,從新編譯無效對象,查詢或編輯表或查看數據,在對象源中搜索文本,將對象名稱拖放到編輯器中,等等。因爲對象瀏覽器中的文件夾特別多,若是沒有一些使用技巧的話,操做效率可能會很低。sql
定義瀏覽器過濾器:對象瀏覽器默認過濾的是「All objects」,這時候若是你直接去點開文件夾的話,且不說會有不少你本不想看的系統對象顯示出來干擾你找尋用戶對象,關鍵是每每要卡好久,若是數據庫比較大的話甚至會卡死。因此有些人會在登進 PL/SQL Developer 以後先去把它改爲「My objects」,像我這種懶人是難以養成這種糟糕的「好習慣」的。後來我找到一個技巧——在【工具】中點擊【瀏覽器過濾器】或者點擊「All objects」上的第 5 個圖標,而後選中「My objects」,在下方【默認】選項前打勾並肯定,等下次再登陸進來默認就是「My objects」了。數據庫
定義瀏覽器文件夾:對象瀏覽器中的文件夾有好幾十個,但只有表、視圖、存儲過程、函數等少數幾類數據庫對象比較經常使用。有時候越是着急越是找不着,儘管也費不了多少時間,但像我這種急性子哪兒受得了啊!其實能夠自定義瀏覽器文件夾,譬如修改文件夾顏色、排列順序等,以便快速找到須要的對象。在【工具】中點擊【瀏覽器文件夾】或者點擊「All objects」上的第 6 個圖標便可打開定義瀏覽器文件夾的窗口,而後選中經常使用的文件夾設置你喜歡的顏色肯定便可。瀏覽器
更改對象的雙擊行爲:在對象瀏覽器中雙擊文件夾會展開對象,雙擊對象會展開對象的屬性,可能你用習慣了感受也沒啥。但在大多數軟件中,雙擊樹節點確定會彈出或進入詳情窗口,並且通常找到對象也是想看它的定義而不是展開一堆文件夾(我相信這一點會讓很多人大跌眼鏡)。想要看對象定義還得經過右鍵菜單去找,右鍵菜單選項不少,一不當心還可能會點錯,總之比較繁瑣。其實能夠更改默認的對象雙擊行爲,步驟:【工具】→【首選項】→【用戶界面】→【瀏覽器】→【雙擊行爲】→改成查看說明和體肯定便可。markdown
查找數據庫對象:點擊「My objects」上的第 4 個按鈕,而後在文本查找輸入框中輸入「abc」並點擊搜索,就能查到數據庫中對象定義裏包含「abc」的全部對象。實際試用中通常還會根據實際狀況設置搜索模式、對象條件和對象類型,目的是爲了更快的查到目標對象。編輯器
編譯無效對象:在更改數據庫中的表或其它對象後,可能會致使相關的存儲過程、函數、視圖等編譯失敗,這時候經過對象瀏覽器人工逐一排查是比較笨的辦法,由於 PL/SQL Developer 提供了編譯無效對象的窗口功能。點擊【工具】→【編譯無效對象】便可看到當前數據庫中全部編譯未經過的對象,而後點擊窗口工具欄中的「編譯無效對象」按鈕便可從新編譯全部無效的對象,再點擊後面的「刷新對象列表」,編譯成功的對象會自動從窗口中消失。函數
1.二、SQL 窗口
SQL 窗口容許你輸入任何 SQL 語句,並在網格中查看或編輯結果。可能不少人登進 PL/SQL Developer 以後會習慣性的新建一個 SQL 窗口,就像不少年前人們打開電腦的第一件事就是登 QQ 同樣,這說明 SQL 窗口很經常使用,的確,大多數時候咱們也就是寫個查詢語句而後執行看看查詢結果。其實 SQL 窗口的功能遠不止於此,下來咱們來看幾個使用 SQL 窗口的小技巧。工具
歷史緩衝區:能夠從歷史緩衝區中調用先前執行過的 SQL 語句。步驟:【編輯】→【從新調用語句】或者快捷鍵 Ctrl+E
,不管那種方式都得確保焦點在窗口(不限 SQL 窗口,其它類型窗口也行)中。post
快速查看對象定義:在按住Ctrl
鍵的狀況下,單擊 SQL 窗口中的任何對象名(如表名、存儲過程名等),便可查看該對象的定義。
設置關鍵字大小寫:假如設置了關鍵字大寫,寫完關鍵字以後它就會自動變成大寫的。步驟:【工具】→【首選項】→【用戶界面】→【編輯器】→【關鍵字大小寫】→選擇大寫後肯定便可。
設置 NULL 的顏色:在結果集中 NULL 和空字符串都是看不見的,比較很差區分,這時候能夠給 NULL 設置一種特殊的顏色以便查看。步驟:【工具】→【首選項】→【窗口類型】→【SQL 窗口】→點擊 NULL 值單元格顏色前的區塊選擇本身喜歡的顏色並肯定便可。
設置 SQL 語句外觀:默認狀況下,用 SQL 窗口看長語句是很醜陋的,尤爲是那斜體的註釋,看着讓人倒胃口,美觀性差了 SSMS 十萬八千里,好在咱們能夠本身更改這些糟糕的默認設置。
- 設置關鍵字、註釋、字符串等的顏色等的步驟:【工具】→【首選項】→【用戶界面】→【編輯器】→在語法高亮下面選擇你喜歡的顏色等肯定便可。
- 加亮編輯行/圓括號高亮:這兩個功能在看長語句時很是有用,一個能讓你時刻知道焦點在那一行,一個能讓你迅速定位某個括號中的內容。步驟:【工具】→【首選項】→【用戶界面】→【編輯器】→【其它】→勾上加亮編輯行/圓括號高亮肯定便可。可能你會發現上面還有個顯示行數的選項,但我遺憾的告訴你,勾上它也只會在 PL/SQL 編輯器中顯示行號,而 SQL 窗口中並不會顯示行號。
- 設置字體:SQL 窗口的默認字體比較小,其實也能夠本身改大一點。步驟:【工具】→【首選項】→【用戶界面】→【字體】→【編輯器】→選擇你喜歡的字體肯定便可。
設置日期和時間的格式:查詢結果中日期和時間默認分隔符是斜線,若是你看不習慣也能夠按照本身的喜愛自定義格式。示例如圖:
置換變量:當查詢被運行時,你能夠在你的 SQL 文本里使用置換變量以容許用戶輸入數據。示例如圖:
另外,若是你但願在 SQL 文本里使用 & 符號但不被解釋爲置換變量的話,那麼用雙 & 符號來代替便可。
實例查詢:SQL 窗口結果網格支持按實例查詢模式搜索結果集中的特定記錄。所謂按實例查詢個人理解就是按條件查詢,至關於用工具寫 WHERE 條件,我我的以爲開發人員應該會更喜歡手寫 WHERE 條件。示例如圖:
複製查詢結果:在查詢出結果後,能夠經過單擊結果集第一行第一列(也就是顯示字段名那一行的第一列)來選中整個查詢結果,而後按Ctrl+C
複製查詢結果,再而後就能夠經過Ctrl+V
把查詢結果粘貼到 Excel、Word、記事本等任何能夠輸入文字的表格或編輯器裏去。不只如此,還能夠經過拖選行來複制部分行,或者拖選列來複制部分列,甚至能夠選擇結果集中的某個區塊,方法是將鼠標放在任何單元格的左邊,等光標變成箭頭形狀時按住鼠標左鍵向任意方向拖選便可。
導出查詢結果:對於結果集巨大的查詢(上萬條記錄或更多),首先查詢數據到結果表格,隨後把數據導出到文件裏,這樣作也許是不方便的。這也許會花很長時間和佔用不少內存資源。這樣還不如直接寫結果集到導出文件裏更有效。要作到這一點,你能夠按結果集工具欄裏的導出查詢結果按鈕。位置以下圖:
圖形:要快速地顯示一個在 SQL 窗口或報告窗口裏查詢的列數據的圖示,你能夠按結果集工具欄裏的圖形按鈕來使用圖形窗口。還能夠經過後面的三角按鈕來選擇圖形圖、線形圖、面積圖或餅圖等。位置如上圖:
更新結果集:在利用 ROWID 更新數據中已經講過一種更新結果集的語法。其實還有另外一種更新結果集的語法:SELECT ... FOR UPDATE
,也就是在查詢語句後面加FOR UPDATE
。不過這種更新方法會將全部已選的記錄鎖住,因此通常來講用 ROWID 使結果集可更新是更好的選擇。
執行 SQL 語句:一個 SQL 窗口中能夠寫多條語句,你拖選某一段,而後點擊執行按鈕或按F8
就會執行那一段語句。其實還能夠自動選擇語句,這樣你按F8
的時候,它就會自動選擇光標所在語句塊並執行。步驟:【工具】→【首選項】→【窗口類型】→【SQL 窗口】→勾選自動選擇語句並肯定便可。
查看執行計劃:選擇一條語句按F5
或者經過工具菜單又或者是右鍵菜單點擊執行計劃便可查看。
其實 SQL 窗口的功能很是多,本節也只介紹了我我的認爲相對實用的一些,還有不少個別時候會頗有用的功能,如查看單個記錄、鏈接查詢、標準查詢等,有興趣的讀者可參考《PL/SQL Developer 用戶指南》進一步研究。
1.三、測試窗口
測試窗口讓你能夠調試任何程序單元,而不對其進行任何修改,包括觸發器和對象類型。測試窗口集成的調試器提供了運行、單步進入、單步跳過、單步退出、運行到下一個異常、斷點、查看和設置變量、查看調用堆棧等功能。
調試存儲過程/函數:存儲過程/函數是比較方便調試的,直接在對象名上【右鍵】而後點擊【測試】便可進入測試窗口,並且 PL/SQL Developer 會自動生成測試腳本,或者你本身新建個測試窗口,而後本身寫測試腳本也是能夠調試的。點測試窗口左上角的那個大大的黃色按鈕或者按F9
便可開始調試,緊接着後面的幾個按鈕是你調試過程當中會用到的,也能夠按快捷鍵,不過說實話 PL/SQL Developer 默認的快捷鍵真心很差用,儘管能夠本身改,但畢竟須要調試 SQL 的時候並很少,懶得去討那個麻煩,因此我日常通常都是點上面那幾個按鈕來調試。
調試觸發器:觸發器比較特殊,你會發現它的右鍵菜單上沒有調試選項,但能夠經過本身新建調試窗口並自定義調試腳原本調試觸發器。至於測試腳本要怎麼寫,你能夠這麼來理解,假如某個觸發器是在向 A 表添加記錄時被觸發,那麼你的腳本里就寫一條向 A 表插入記錄的INSERT
語句,而後按F9
開始調試,執行插入語句的時候斷點就會自動進入觸發器內。
概覽圖:可在測試窗口裏訪問概覽圖,在運行測試腳本前,按一下測試窗口工具欄裏的「建立概覽圖報告」,再按F8
(注意:按F9
是無效的)以後就能夠轉到概覽圖頁查看運行報告了。示例如圖:
1.四、命令窗口
命令窗口的功能與 SQL Plus 的功能類似,SQL Plus 支持的命令通常命令窗口也支持,且在腳本編輯方面比 SQL Plus 要強大的多,因此若是你已經開着 PL/SQL Developer 的話,就不必再去開 SQL Plus 了。具體命令的用法可參考SQL Plus 實用命令參考。
1.五、圖表窗口
圖表窗口容許你建立選定對象的圖示,這樣你就能夠清晰地看到應用程序的數據庫對象和它們之間的關係。你能夠添加全部相關的對象類型包括它們之間的關係到一個圖表,表之間的外鍵關係被自動地包括在內。右擊一個對象提供了訪問全部對象的功能,雙擊一個對象將激活針對對象類型的默認操做。
我的感受圖表窗口最大的好處就是能夠直觀的看到一個對象定義,譬如你想看某張表,只須要在對象瀏覽器中找到它並把它拖拽到圖表窗口中便可。
1.六、報告窗口
PL/SQL Developer 提供了內置的報告功能和大量標準報告,並且你還能夠方便的經過報告窗口建立自定義報告。自定義報告將被保存在報告文件中,進而包含在報告菜單內。這樣,運行你本身常用的自定義報告就很是方便了。
說真的,報告窗口此前我還真沒用過,不過我大概試了試,估計 DBA 會更喜歡這個功能一些。報告菜單中已經包含了二十幾個標準報告,能夠用來了解當前數據庫運行情況,並且報告內容還能夠很方便的經過報告右邊的按鈕導出爲 Excel 或 Html。這樣一來的話卻是能夠在運營部門須要數據的時候,經過報告窗口生成數據報告,而後導出給他們。
1.七、右鍵菜單
在 PL/SQL Developer 中的 SQL 窗口、測試窗口、命令窗口、程序窗口等幾乎每個文本編輯器窗口中,在任何對象名上右鍵,都會彈出一個包含操做對象命令的菜單,也就是本節要說的右鍵菜單。
不一樣類型對象的右鍵菜單也有所不一樣,即便菜單名相同彈出來的窗口也可能會不一樣,因爲數量巨多,本節不會逐一分析,並且經常使用的一些右鍵功能試用起來也很簡單,有興趣的讀者可多多嘗試。下面將討論如何應對使用過程當中可能會遇到的幾種特殊狀況:
- 對象類型識別錯誤,致使彈出的右鍵菜單也不對,這時候能夠在對象名前加個分號,再右鍵 PL/SQL Developer 就能正確判斷出對象的類型了。
- 沒法彈出跨數據庫訪問對象的右鍵菜單,這時候須要先選中整個對象名稱(包括對象前的點和 Schema 名),再來右鍵便可彈出右鍵菜單。
- PL/SQL Developer 還爲 SQL 語句塊提供了方便使用的右鍵菜單,使用方法是先選中一段 SQL 語句,而後在選中區域內右鍵便可。
1.八、快速登陸技巧
在 SSMS 登陸界面上有的「Windows 身份驗證」選項和「記住密碼」兩個功能,任何一個均可以讓程序員沒必要每次都要輸入密碼才能登陸數據庫,而從 PL/SQL Developer 的登陸界面來看,它這些彷佛都沒有。其實也不盡然,PL/SQL Developer 只是藏得比較深而已,下面咱們來看幾個快速登陸的小技巧:
記住登陸歷史和登陸密碼:【首選項】→【Oracle】→【登陸歷史】→【定義】→勾選「存儲歷史」和「帶口令存儲」後肯定,從下次登陸開始就不用再輸入密碼了。實例如圖:
可能有朋友會發現關掉 PL/SQL Developer 再次打開,口令那裏仍是空的,並沒記住密碼。其實否則,只是 PL/SQL Developer 的操做方式不一樣尋常而已,具體請看下圖:
不配置tnsname直接登陸:通常來講,咱們都是先裝好 Oracle 客戶端,而後配置 tnsname,再打開首選項配置鏈接,最後才能經過 PL/SQL Developer 登陸數據庫,若是須要連不少數據庫,就得配不少 tnsname。但有時候咱們只是想臨時連一下某個環境,譬如項目的測試環境有不少個,急需幫測試人員解決某個環境的問題,這時候還要先找到tnsnames.ora
文件,配置一通以後才能去連,這就比較繁瑣了。後來一個偶然,我發現不配置 tnsname 也能直接連數據庫,那一刻我真的是欣喜若狂。其實也就是登陸寫法稍有不一樣罷了,用戶名和口令仍是同樣的輸入,數據庫那一欄手動寫上要登陸的IP和端口以及實例名便可,語法實例:
host:port/sid
127.0.0.1:1521/orcl(登陸本機 orcl 數據庫的寫法,1521 是 Oracle 默認端口,只要安裝時不去改,通常就仍是這個端口)
打開即登陸:在 PL/SQL Developer 的安裝目錄裏有個名爲plsqldev.exe
的文件,也就是啓動 PL/SQL Developer 的文件。通常都是在桌面上給它建立一個快捷方式,而後經過快捷方式來啓動 PL/SQL Developer,其實它還能夠接受命令行參數,咱們能夠在快捷方式的目標欄按username/password@tnsname
的格式指定userid
參數值,而後雙擊快捷方式就會直接登陸進去,連登陸界面都不會彈出來了。示例如圖:
這種登陸方式應該是最簡單快捷的,同時缺點也是很明顯的,由於想登陸別的數據庫還得再切換。固然,若是你通常只登某一個數據庫的話,那這種方式最合適不過了。
1.九、其它
上文已經講述了 PL/SQL Developer 中,我我的以爲相對重要或好用的一些功能或技巧。本節將再補充幾個對開發人員而言沒那麼重要或我我的不太喜歡的功能簡述。
窗口列表:顧名思義,管理(已打開)窗口的工具,我發現有些人對這個功能是重度依賴,譬如曾有個同事只是問我個 SQL 寫法的問題,結果愣是把我 PL/SQL Developer 的窗口列表調出來以後,才把問題說明白。我我的不那麼喜歡這個功能,由於我不喜歡開太多窗口,不用的窗口我會及時關掉。固然,若是你跟我那位同事同樣喜歡開不少個窗口,那麼窗口列表功能或許對你頗有幫助。打開步驟:【工具】→【窗口列表】。
PL/SQL 美化器:我這我的比較注重代碼美,通常我本身就會把語句排版的很整齊。但我不太喜歡這個工具的默認格式,儘管能夠自定義,但比較繁瑣。其實若是僅僅用在數據庫中也還好,但要把美化後的語句放到程序中可能就很不美了。譬如我之前招的一我的,他就很喜歡用這個工具,有次他寫了個列表查詢方法,我一看 200 多行就點開仔細看了下,結果發現僅 SQL 語句就佔了近 100 行,一屏都顯示不完,並且大部分行前面有不少空格,這樣一來,往後維護這個方法的人看着就很累了,改起來也很不方便,因此說要放到程序代碼中的 SQL 語句仍是不用 PL/SQL 美化器爲好。打開步驟:【編輯】→【PL/SQL 美化器】,或者直接點工具欄裏的「PL/SQL 美化器」按鈕。
Oracle 信息窗口:該窗口中包含當前 PL/SQL Developer 的版本、命令行參數、鏈接參數等參數信息和 TNS 名等信息。打開步驟:【幫助】→【關於】→【附加信息】。
二、總結
《PL/SQL Developer 用戶指南》有數百頁,換句話說 PL/SQL Developer 的功能很是多,本文也只是我參照我的的使用習慣和須要作的個簡要歸納和總結。還有不少功能我也未曾或不多使用過,譬如:比較用戶對象、比較表數據、導出用戶對象、導出表、導入表、文本導入器、ODBC 導入器、數據生成器、測試管理器等實用功能或工具,以及查詢設計器、模版列表等傻瓜化編碼工具,有興趣或有須要的朋友可參考《PL/SQL Developer 用戶指南》自行研究。
本文連接:http://www.cnblogs.com/hanzongze/p/Oracle-PLSQLDeveloper.html
版權聲明:本文爲博客園博主 韓宗澤 原創,做者保留署名權!歡迎經過轉載、演繹或其它傳播方式來使用本文,但必須在明顯位置給出做者署名和本文連接!本人初寫博客,水平有限,如有不當之處,敬請批評指正,謝謝!