PLSQL的註釋技巧

概述


這裏提供一些註釋的技巧,用來模仿Java中的文檔註釋的功能。
在Eclipse中,鼠標懸浮在類或其成員上,會顯示相關的文檔註釋;在PL/SQL中也有相似的功能,咱們須要掌握一些註釋技巧,讓其可讀性更高。

正文


1. 不要在最上面寫註釋

第一個有效指令前的內容,都是被直接無視的;不會格式化,也不會存儲。假如你像下面這樣寫註釋:
/*
  名字解析:案事件-文書相關-爲換押證生成文書字號。
  這個過程是對ASJ_GENHYZWORD的一次重構。
*/
create or replace procedure asj_ws_generateWordMarkForHYZ(in_writid      in varchar2, -- 文書實例編號
                                                          in_increment   in integer, -- 增量,在一書多人時須要同時爲多個文書生成序列號
                                                          out_wordofwrit out varchar2, -- 文書字
                                                          out_markofwrit out integer -- 文書號
                                                          ) is

編譯,關掉當前窗口,從新打開這個過程,你會發現是這樣子的:spa

 

2. 如何強制格式化在某處換行

也許你想這樣寫頭部:
create or replace procedure asj_ws_generateWordMarkForHYZ
(in_writid      in varchar2, -- 文書實例編號
 in_increment   in integer, -- 增量,在一書多人時須要同時爲多個文書生成序列號
 out_wordofwrit out varchar2, -- 文書字
 out_markofwrit out integer -- 文書號
 ) is

可是PL/SQL格式化以後,又會變成這樣子:code

create or replace procedure asj_ws_generateWordMarkForHYZ(in_writid      in varchar2, -- 文書實例編號
                                                          in_increment   in integer, -- 增量,在一書多人時須要同時爲多個文書生成序列號
                                                          out_wordofwrit out varchar2, -- 文書字
                                                          out_markofwrit out integer -- 文書號
                                                          ) is

此時,咱們能夠使用註釋來強制換行:blog

create or replace procedure asj_ws_generateWordMarkForHYZ --
(in_writid      in varchar2, -- 文書實例編號
 in_increment   in integer, -- 增量,在一書多人時須要同時爲多個文書生成序列號
 out_wordofwrit out varchar2, -- 文書字
 out_markofwrit out integer -- 文書號
 ) is

這樣,即便格式化,也不會違背咱們的換行意願了。另外,多行註釋也能夠實現。事件

 
再好比,你想實現這樣的格式:
select ajbh, ajmc
  into ajbh, ajmc
  from b_asj_aj
 where rownum = 1;

可是PL/SQL的格式化會認爲沒有必要,而將其縮減到一行:ip

select ajbh, ajmc into ajbh, ajmc from b_asj_aj where rownum = 1;

你能夠這樣寫:rem

select ajbh, ajmc --
  into ajbh, ajmc --
  from b_asj_aj --
 where rownum = 1;

3. 概要內容在is關鍵詞以前

這裏咱們把鼠標懸浮在某個過程名而出現的浮動框中的內容稱爲概要,好比:



這裏能夠看到,概要只包含is以前的內容;另外,這個框太長了,浪費了空間,這時候上面講的強制換行就能夠起做用了。咱們能夠這樣寫:

create or replace procedure asj_ws_generateWordMarkForHYZ
/*
   名字解析:案事件-文書相關-爲換押證生成文書字號。
   這個過程是對ASJ_GENHYZWORD的一次重構。
  */
(in_writid      in varchar2, -- 文書實例編號
 in_increment   in integer, -- 增量,在一書多人時須要同時爲多個文書生成序列號
 out_wordofwrit out varchar2, -- 文書字
 out_markofwrit out integer -- 文書號
 ) is

這樣寫的好處有幾點:1. 咱們在合適的位置加入了對於這個過程的說明,並且在概要中將顯示這些內容;2. 咱們對於換行的控制,會控制概要懸浮框的長度。文檔

再看如今的概要框:
注意:在這裏,as並不能取代is,你們能夠本身試一下,看看概要內容是什麼狀況。
相關文章
相關標籤/搜索