官术网_书友最值得收藏!

1.2 書寫規(guī)范

丑陋的書寫規(guī)范不僅可讀性較差,而且給人以敬而遠之的感覺,就算你是大俠也不行;而良好的書寫規(guī)范則給人以享受和藝術的體驗。

1.2.1 大小寫風格

規(guī)則1.2.1.1

所有數(shù)據(jù)庫關鍵字和保留字均使用大寫;關于字段、變量的大小寫風格在1.4節(jié)詳細介紹。

1.2.2 縮進風格

規(guī)則1.2.2.1

程序塊嚴格采用縮進風格書寫,保證代碼清晰易讀,風格一致,縮進格數(shù)統(tǒng)一為2/4個。

必須使用空格,不允許使用【Tab】鍵。以免在用不同的編輯器閱讀程序時,因【Tab】鍵所設置的空格數(shù)目不同而造成程序布局不整齊。

規(guī)則1.2.2.2

當同一條語句需要占用多于一行時,每行的其他關鍵字與第一行的關鍵字進行右對齊。

    IF flag=1 THEN
      SELECT username             --同上一行相比縮進4個空格
        INTO vuserinfo            --INTO與SELECT進行右對齊
        FROM userinfo             --FROM與SELECT進行右對齊
        WHERE userid=:iuserid;     --WHERE與SELECT進行右對齊
    END IF;

1.2.3 空格及換行

規(guī)則1.2.3.1

不允許把多個語句寫在一行中,即一行只寫一條語句。

規(guī)則1.2.3.2

避免將復雜的SQL語句寫到同一行,建議要在關鍵字和謂詞處換行。

規(guī)則1.2.3.3

相對獨立的程序塊之間必須加空行。

BEGIN、END獨立成行。

規(guī)則1.2.3.4

太長的表達式應在低優(yōu)先級操作符處換行,操作符或關鍵字放在新行之首。劃分出新行應當適當?shù)乜s進,使排列整齊,語句可讀。

當不同類型的操作符混合使用時,建議使用括號進行隔離,以使代碼清晰。

規(guī)則1.2.3.5

減少控制語句的檢查次數(shù),例如,在IF…ELSE控制語句中,應將最常用的符合條件前置以被檢查到。

        DECLARE
          --定義局部變量
          vFlag VARCHAR2(10);  --判斷標志
          …
        BEGIN
          IF ((a=b AND a=c AND a=d) OR  --在OR處斷行,可使得邏輯更為清晰
              (a=e AND e=f)) THEN
        --Process something
          IF vFlag=1 THEN      --vFlag=1為經(jīng)常出現(xiàn)的條件,可有效減少判斷檢查次數(shù)
        --Process something
          ELSIF vFlag=2 THEN  --vFlag=2為次之出現(xiàn)的條件
        --Process something
          ELSE
          --Process something
          END IF;

1.2.4 其他

規(guī)則1.2.4.1

避免使用SELECT * 語句;不要用*來代替所有字段,應給出字段列表,以避免在表結構發(fā)生變化時應用程序出現(xiàn)無法識別的情況。

規(guī)則1.2.4.2

INSERT語句必須給出字段列表,以避免在表結構發(fā)生變化時發(fā)生編譯錯誤。

規(guī)則1.2.4.3

當一個PL/SQL或SQL語句中涉及多個表時,始終使用別名來限定表名和字段名,這使其他人閱讀起來更方便,避免了含義模糊的引用,并能夠在別名中清晰地判斷出表名和相關字段名。

規(guī)則1.2.4.4

確保變量和參數(shù)在類型和長度上與表數(shù)據(jù)列相匹配。如果與表數(shù)據(jù)列寬度不匹配,則當較寬或較大的數(shù)據(jù)傳進來時會產(chǎn)生運行異常。

    DECLARE
      --定義相關表字段變量
      vDeptNo      salary.Deptno%type;     --not VARCHAR2(10),以適應變化
      vEmployeeNo  salary.EmployeeNo%type; --not VARCHAR2(10),以適應變化
      vSalary      salary.Salary%type;     --not NUMBER,以適應變化
    BEGIN
      --Process something
    END;
主站蜘蛛池模板: 辽宁省| 永康市| 哈尔滨市| 雷山县| 封丘县| 焦作市| 宁城县| 务川| 三河市| 大埔区| 遂平县| 大洼县| 镇江市| 嘉禾县| 老河口市| 丹凤县| 临汾市| 宁乡县| 穆棱市| 阿克陶县| 龙海市| 慈利县| 山西省| 衡山县| 蒙山县| 祁门县| 荆门市| 谷城县| 广德县| 林西县| 金阳县| 城口县| 章丘市| 肥城市| 始兴县| 永济市| 平利县| 北海市| 敦化市| 碌曲县| 梁河县|