1. 程式人生 > >PL/SQL使用技巧

PL/SQL使用技巧

區分 varchar2 當前 序列 光標 support save alt+ sql語句

PL/SQL使用技巧 Edit/Undo Ctrl+Z Edit/Redo Shift+Ctrl+Z Edit/PL/SQL Beautifier Ctrl+W (自定義) Shift+Home 選擇光標位置到行首 Shift+End 選擇光標位置到行尾 Ctrl+Shift+Home 選擇光標位置到首行行首 Ctrl+Shift+End 選擇光標位置到尾行行尾 Object:View Shift+Ctrl+V 查看 (自定義)
Object:Describe Shift+Ctrl+D 結構 (自定義)
Object:Properties Shift+Ctrl+P 屬性 (自定義)
Object:Browse Shift+Ctrl+B 瀏覽 (自定義)
Object:Edit Data Shift+Ctrl+E 編輯數據(自定義)
Object:Standard Query Shift+Ctrl+S 標準查詢(自定義)

Edit/Find Replace Ctrl+F
Edit/Find Next Ctrl+L
Edit/Find Previous Shift+Ctrl+L
Edit/Replace Next Ctrl+P
EDIT/Full Screen Ctrl+F11
Edit/Go to Line Ctrl+G
Edit/Next Tab Page Ctrl+H
Edit/Previous Tab Page Shift+Ctrl+H

Session/Execute F8
Session/Break Shift+Esc
Session/Commit F10
Session/Rollback Shift+F10

Debug/Toggle Breakpoint Ctrl+B
Debug/Start F9
Debug/Run Ctrl+R
Debug/Step Into Ctrl+N
Debug/Step Over Ctrl+O
Debug/Step Out Ctrl+T

Tools/Explain Plan F5
Tools/Code Assistant F6

Editor: Start of Document Ctrl+PgUp OR Ctrl+Home
Editor: End of Document Ctrl+PgDn OR Ctrl+End
Editor: Delete Line Ctrl+Y
Editor: Navigate Back Alt+Left
Editor: Navigate Forward Alt+Right
SQL Window: Previous SQL Ctrl+Up
SQL Window: Next SQL Ctrl+Down

1. PL/SQL Developer記住登陸密碼
在使用PL/SQL Developer時,
為了工作方便希望PL/SQL Developer記住登錄Oracle的用戶名和密碼;
設置方法:
PL/SQL Developer->tools->Preferences->Oracle->Logon History,
在右邊界面的"Definition"中,"Store history"是默認勾選的,
再勾選上"Store with password",即可.
上述方法若不好用,使用下面的方式:
在上面所說的界面中的"Fixed Users"中,
添加需要直接選擇後就可登錄的用戶名/密碼@ORACLE_SID,
如:
cbsdb/cbsdb@cbsdb
重新登錄的時候,從Oracle Logon的登錄界面的Username後面的...按鈕處,
選擇需要登錄的用戶即可。
2. 執行單條SQL語句(SQL Window中根據光標位置自動選擇語句)
在使用PL/SQL Developer的SQL Window時,按F8鍵,PL/SQL Developer默認是執行該窗口的所
有SQL語句,需要設置為鼠標所在的那條SQL語句,即執行當前SQL語句;
設置方法:PL/SQL Developer->tools->Preferences->SQL Window->Window types,
勾上"AutoSelect Statement" 即可。
註意,每條語句後面要加分號。

3. 格式化SQL語句
在使用PL/SQL Developer的SQL Window時,有時候輸入的SQL語句太長或太亂,
希望能用比較通用的寫法格式話一下,這樣看起來會好看些,也好分析;
使用方法:
選中需要格式化的SQL語句,然後點擊工具欄的PL/SQL beautifier按鈕即可.
4. 查看執行計劃
在使用PL/SQL Developer的SQL Window時,有時候輸入的SQL語句執行的效率,分析下表結構,
如何可以提高查詢的效率,可以通過查看Oracle提供的執行計劃;
使用方法:
選中需要分析的SQL語句,然後點擊工具欄的Explain plan按鈕(即執行計劃),
或者直接按F5即可。

5. 調試存儲過程
在使用PL/SQL Developer操作Oracle時,有時候調用某些存儲過程,或者調試存儲過程;
調用存儲過程的方法:
首先,在PL/SQL Developer左邊的Browser中選擇Procedures,
查找需要調用的存儲過程;然後,選中調試的存儲過程,點擊右鍵,
選擇Test,在彈出來的Test script窗口中,
對於定義為in類型的參數,需要給該參數的Value輸入值;
最後點擊上面的條數按鈕:Start debugger或者按F9;
最後點擊:RUN或者Ctrl+R。
(具體要調式一個存儲過程,請參照操作手冊,這個大概說明下應用)。
6. oralce精簡客戶端的使用
要想PL/SQL連接oracle數據庫,除了PL/SQL Developer 之外還需要Oracle客戶端,
有一個更方便的方法就是使用Oracle精簡客戶端,很多地方可以下載,文件很小,耗資源也少。
安裝完成後修改安裝目錄下的\Oracle\ora90\network\ADMIN\tnsnames.ora文件:
格式如下:
DATABASE_NAME =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
(CONNECT_DATA =
#(SERVICE_NAME = dealer)
(SID = SID_NAME)
#(SERVER = DEDICATED)
)
)
7. 關鍵字自動大寫:
了解一點編程的常識的人都知道,編碼風格很重要。
在閱讀代碼方面,保持一致的編碼風格,閱讀起來比較容易;
在執行效率方面,保持一致的編碼風格,更有可能被放到共享SQL區中,
這樣就提供了執行的效率。

另外,信息系統的核心是數據庫,系統出問題時最先要查的就是SQL語句,
怎樣在浩瀚的日誌中快速找到那條SQL語句是件比較痛苦的事情。
SQL語句全部大寫並不能徹底解決這一問題,
但在一堆代碼中間找一行全部大寫的字符相對容易些,你的眼睛會感謝你。
設置也很簡單:
Tools->Preferences->Editor,將Keyword case選擇Uppercase。
我一般是讓關鍵字大寫,其他比如表名,字段名等都是小寫。
大家都應該養成一種自己的編碼習慣,並保持下去。

8. 右鍵菜單
在PL/SQL Developer(下面簡稱PLD)中的每一個文本編輯窗口,
如SQL Window,Command Window和Porgram Window,
右鍵點擊某個對象名稱,會彈出一個包含操作對象命令的菜單,我們這裏稱之為右鍵菜單。
對象類型可以是表,視圖,同義詞,存儲過程和函數等。
根據對象類型的不同,彈出的菜單也有區別。
表和視圖有View, Edit, Rename, Drop, Query data 和Edit data等功能。
View和Edit分別是查看和修改表的結構信息,如字段,主鍵,索引和約束等。
Query data相當於新打開一個窗口,並執行select * from 表。
Edit data相當於新打開一個窗口,並執行select * from 表 for update。
存儲過程和函數有Test功能,選中後可以進入調試狀態。
有時由於PLD識別錯誤,右鍵點擊對象並不能出來正確的菜單,
可以在對象所在的DDL或DML語句的前面,加上分號,這樣PLD就能正確的判斷出對象的類型

9. Select for Update
有時我們需要把一些數據導入數據庫中,如果用UE拼Insert語句,會比較麻煩,而且操作性不強。
PLD的SQL Window可以查詢,新增,修改和刪除表的內容。
查詢自不必說,而新增,刪除和修改,只需在select語句後加入for update,
對表進行行級鎖定,然後點擊窗口的鎖型圖標,即可進入編輯狀態。
下面介紹一下如何從Excel中提取文本插入到數據庫中,
我們的Excel文件中有三列,在數據庫中建立臨時表:
CREATE TABLE t1(
cino varchar2(100),
contno varchar2(100),
loanno varchar2(100)
)
然後在SQL Window中輸入select t1 for update,並點擊鎖型鼠標,進入編輯狀態,
用鼠標點擊第一行的輸入窗口,這時PLD會死鎖幾秒鐘,
然後可以見到光標在第一行的輸入框中閃動,
用鼠標把CINO, CONTNO, LOANNO選中,進入Excel中,把需要插入數據庫的內容選中,
然後切換到PLD,按Ctrl + V,點擊√,然後再點擊Commit按鈕,
則數據提交到表t1中,執行select * from t1可以看到內容.
10. PL/SQL Beautifier(PL/SQL 美化器)
PLD 6以上版本有對DML代碼格式化的功能。
在SQL Window或Program Window中選中部分代碼(如果不選則對整個窗口的代碼操作),
在菜單中選Edit -> PL/SQL Beautifier,得到格式化的代碼。
對於非法的DML語句或DDL語句,PLD將會在下方狀態欄提示:
PL/SQL Beautifier could not parse text。
在缺省的狀態下,PLD會把DML語句的每一個字段都排在單獨的一行,這樣不方便查看。
在菜單中選Edit à PL/SQL Beautifier Options,進入Preferences窗口,
選擇Edit,進入配置文件編輯界面,在標簽欄選DML,
在窗口中部的Select, Insert和Update組框中把Fit選中,然後點擊Save,
把配置文件保存到PLD的安裝目錄下,點擊Close關閉。
在Rules file中輸入配置文件所在位置,點擊OK,完成配置文件切換。
這時再對代碼進行格式化,就可以使每一個字段盡可能的在一行上了。
11. TNS Names
菜單Help->Support Info->TNS Names,可以查看Oracle的tnsnames.ora。

12. Copy to Excel
在SQL Window中執行Select語句,在結果出來以後,右鍵點擊下面的數據區,
選擇Copy to Excel,可以把數據區的記錄原樣拷貝到Excel中。
但有兩點需要註意:
(1) field中不能以=開始,否則Excel會誤認為是函數;
(2) 數字不要超過17位,否則後面的位數將會置為0,
但可以通過在數字前加‘來使Excel認為該field是文本,
同時對於數據庫中Numbe類型的字段,最好用to_char輸出,不然可能會顯示不正常;

13. 保持上次打開的SQL腳本
重新進入PL/SQL Developer時,Window List能打開上次退出時的文檔:
(1) 將菜單Tools->Window list選項勾上;
(2) Tools->Perferences->User Interface->Options的右邊,
將"Autosave desktop"勾選.
(3) 退出PL/SQL Developer重新進入.

14. 快速找到已知表名的表或其他對象:
在Tools菜單中,勾選上Object Browser,將對象瀏覽器打開,
雙擊對象瀏覽器中的某個對象所處的文件夾,
比如表都是在Tables文件夾中,
然後以盡快的速度輸入表名,即可找到以你輸入的幾個字母開頭的對象了.

15. 快速關閉打開於Windows List中的文檔窗口:
按住Shift鍵,左鍵點擊需要關閉的文檔窗口.

16. PL/SQL DEVELOPER中的專用復制(Special Copy)
如果你正在用 PL/SQL Developer 寫 SQL 和 PL/SQL 代碼,
隨後你又要在其它工具裏使用代碼,例如象 3GL 這樣的程序設計語言,
那麽你可能需要把這些代碼轉換為稍微不同的格式。
讓我們假設你已經在 PL/SQL Developer 裏寫了並測試了這樣一個SQL 語句:
select deptno, sum(sal) mgr_sal
from emp
where job = ‘MANAGER‘
group by deptno
order by mgr_sal desc

例如,如果你要在Borland Delphi 裏使用這個語句,你可能需要象這樣的格式:
SQL := ‘select deptno, sum(sal) mgr_sal from emp‘ + #13#10 +
‘where job = ‘‘MANAGER‘‘‘ + #13#10 +
‘group by deptno‘ + #13#10 +
‘order by mgr_sal desc‘;

為了這個目的,在PL/SQL DEVELOPER中選中已寫好的SQL語句,鼠標右鍵,
在彈出的菜單中找到 Special Copy。這個功能有一個子菜單,它顯示了所有被定義的專用復制格式。
在選擇了格式之後,被轉換的代碼就被儲存在剪貼板上了,
這樣你就可以粘貼它到相應工具的編輯器裏了。
專用復制格式被定義在 PL/SQL Developer 安裝目錄下的 SpecialCopy 子目錄裏。
你可以改變預先確定的復制格式或者添加新的復制格式。
僅僅簡單地添加一個帶有 .copy 擴展名的文本文件就可以了,
它包含了一個針對 PL/SQL 代碼第一行的變量
(<line_1>)、一個針對 PL/SQL 代碼最後一行的變量(<line_N>)
和一個針對所有其它行的變量(<line_*>)。下面是一個針對 Borland Delphi 的例子:
;PL/SQL Developer SpecialCopy definition for Borland Delphi
;<line_1> for first line
;<line_*> for all other lines
;<line_N> for last line
;
SQL := ‘<line_1>‘ + #13#10 +
‘<line_*>‘ + #13#10 +
‘<line_n>‘;

第一行需要為指派到 SQL 的變量加上前言,接下來需要有一個 CR/LF 對。
最後一行不需要有CR/LF 對,但需要用分號來終止。所有其它行僅僅需要 CR/LF 接在後面。
如果 <line_1> 和 <line_n> 都與 <line_*> 一樣,你可以忽略它們。
在一些語言裏,你需要對特定的字符使用換碼序列。
例如,在 C++ 裏,你要對 tab字符(ASCII 碼為 9)使用 \t 。
要定義這些換碼序列,請使用 #define 關鍵詞:
#define char(9) = \t
#define \ = \\
String("<line_1>\n") +
String("<line_*>\n") +
String("<line_n>");
你還可以使用 "#define compress"來指出你要從結果裏移除所有多余的空字符(空格、制表符和換行)。
註意,.copy 文件的名字將被包括在菜單裏,所以你應該使用描述性的文件名。

17. 在PL/SQL DEVELOPER中復制行記錄的簡便方法
(1) 單擊要拷貝的行記錄左邊的黑色小三角,該行被選中,右鍵復制。
(2) 粘貼至記事本裏,然後復制剛才粘貼的內容。(該步驟不知何故不能缺)
(3) 單擊新記錄左邊的黑色小三角,右鍵粘貼即可。

18. 快捷鍵定義的位置:
Tools->Preferences->User Interface->Key configuration
選中需要定義的Item,然後按一個快捷鍵組合即可,
如果所按的快捷鍵已有定義,會有提示,這時候Cancel,另外選擇快捷鍵組合即可;
通常情況下,打開PLSQL Developer後,最經常幹的事就是打開SQL Window和Command Window,
就給這兩個操作定義了快捷鍵, ALT+S 和 ALT + C,這樣拿鼠標點三下的事情只需要按一下鍵。
設置方法:
菜單Tools -> Preferences -> Key Configuration

註意:
如果設置了快捷鍵不起作用,
回到Tools -> Preferences -> Key Configuration界面,
點擊最上方的"Default Administrator"右邊的"..."按鈕,
在彈出的"Preference Set"界面中,對"Personal Preferences"
以及下面的"Definition"->"Description"進行一下設置.

19. 在窗口標題欄內顯示文件的完全路徑
Tools->Preferences->User Interface->Options
勾選"Show complete file path in windows titles"

20. Object Brower中自定義Object的順序以及登錄後默認自動選中My Objects
默認情況下,PL/SQL Developer登錄後,Brower裏會選擇All objects,
如果你登錄的用戶是dba,要展開tables目錄,正常情況都需要Wait幾秒鐘,
而選擇My Objects後響應速率則是以毫秒計算的。
設置方法:
Tools菜單 -> Object Brower Filters,會打開Define Browser Filters界面,
選中"My Objects",並勾選 "Default" 設為默認即可。
Tools菜單 -> Object Brower Folders,會打開Define Browser Folders界面,
這裏可以把經常用到的幾個目錄(比如:Tables Views Seq Functions Procedures)
移得靠上一點,並加上顏色區分,這樣你的平均尋表時間會大大縮短,試試看。

21. 雙擊即顯示表數據
鼠標雙擊表或者視圖時的默認響應實在讓我感到失望,因為我最關心的是表結構和數據,
但是雙擊後這兩件事情都沒有發生,也許默認響應是高手們需要的,
但對我來說查看數據和表結構是最主要的,其他的我不關心。
不過好的是這是可以設置的,你可以給鼠標雙擊和拖放綁定需要的事件,
比如:雙擊編輯數據,拖放顯示表結構,Yeah!
設置方法:
菜單Tools -> Preferences -> Object Browser,
在右側,為不同的Object Type綁定雙擊和拖放操作。

22. 去掉註釋的斜體樣式:
菜單Tools -> Preferences -> User Interface->Editor 在右邊的界面中"Syntax Highlighting"下,去掉"Comment"右邊的"Italic"的勾選.

PL/SQL使用技巧