Oracle存儲(chǔ)過(guò)程開發(fā)規(guī)范與技巧_第1頁(yè)
Oracle存儲(chǔ)過(guò)程開發(fā)規(guī)范與技巧_第2頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、1 1 / / 7171存儲(chǔ)過(guò)程開發(fā)規(guī)范與技巧開發(fā)規(guī)范1.書寫規(guī)范1):程序頭書寫規(guī)范程序頭開始部分應(yīng)說(shuō)明程序整體的功能,存儲(chǔ)過(guò)程名稱,編寫人,編寫日期,修改人,修改日期,版本號(hào)以及過(guò)程涉及的表和視圖。示例如下:/*名稱及實(shí)現(xiàn)功能 :版本: ( 版本號(hào)標(biāo)示:新建 V1.0.0 小的修改變?yōu)?V1.0.1 大的修改V1.1.0 重構(gòu) V2.0.0)修改原因 :修改原因 :Create byCreateDate 2006- 06- 29Update byupdateDate 2006- 06- 30Update byupdateDate 2006- 06- 312 2 / / 7171涉及的表或視

2、圖:dump_init輔助表(DM):記錄存儲(chǔ)過(guò)程中使用的物化視圖日志序號(hào)mlog$_acrcusmrsecindex源表(ODS):客戶第一索引物化視圖日志, 使用同義詞ft_gld_customerdata目標(biāo)表(DM):客戶事實(shí)表*/CREATEORREPLACEPROCEDURE *2):代碼書寫規(guī)范1.語(yǔ)句中出現(xiàn)的所有表名、 字段名全部小寫, 系統(tǒng)保留字、 內(nèi)置函數(shù)名、 Sql 保留字大寫。2.連接符 or、in、and、以及=、=、=等前后加上一個(gè) 空格。3.where 子句書寫時(shí), 每個(gè)條件占一行, 語(yǔ)句令起一行時(shí), 以保留字或者連接符開始,連接符右對(duì)齊。4.查詢的 WHER 過(guò)

3、濾,原則應(yīng)使過(guò)濾記錄數(shù)最多的條件放在最前面。5.多表連接時(shí),使用表的別名來(lái)引用列。6.查找數(shù)據(jù)庫(kù)表或視圖時(shí),只能取出確實(shí)需要的那些字 段,不3 3 / / 7171要使用 * 來(lái)代替所有列名。7.功能相似的過(guò)程和函數(shù), 盡量寫到同一個(gè)包中, 加強(qiáng)管 理。示例如下:BEGIN- 查詢員工及對(duì)應(yīng)的部門名稱SELECTemp. name, FROMl_dept dept , l_employee empWHEReEmp. dept_id = dept . dept_id ;END;3)注釋書寫規(guī)范為了提高可讀性, 應(yīng)該使用一定數(shù)量的注釋。 注釋大約占總行數(shù)的 1/51:注釋風(fēng)格:注

4、釋單獨(dú)成行、放在語(yǔ)句前面。2:應(yīng)對(duì)不易理解的分支條件表達(dá)式加注釋;3:對(duì)重要的計(jì)算應(yīng)說(shuō)明其功能;4:過(guò)長(zhǎng)的函數(shù)實(shí)現(xiàn),應(yīng)將其語(yǔ)句按實(shí)現(xiàn)的功能分段加以概括性說(shuō)明;5:每條 SQL 語(yǔ)句均應(yīng)有注釋說(shuō)明4 4 / / 71716:對(duì)于程序的整體功能,應(yīng)在程序開始部分說(shuō)明,可采用單行/多行注釋。(-或/* */ 方式)2.命名規(guī)范命名對(duì)象規(guī)則樣例存儲(chǔ)過(guò)程、包、方法1 1 業(yè)務(wù)相關(guān)以模塊代碼開頭gld_assist_check_p2 2 如果區(qū)分全量和增量,在取后加標(biāo)識(shí)gldo ad_to_etl gld load to etl full3 3 全局使用,以 globalglobal 開頭global_p

5、rocedure_check變量以 V V 開頭v_updatemode1游標(biāo)以 c c 開頭c_tablist內(nèi)存表以 m m 開頭m_table1臨時(shí)表以 t t 開頭t_tmpTable存儲(chǔ)過(guò)程技術(shù)1 .存儲(chǔ)過(guò)程樣例CREATEORREPLAC 田 ROCEDUFeXample (v_inputINNUMBER-輸入?yún)?shù)v_outputOUTNUMBER -輸出參數(shù))ISPRAGMAUTONOMOUS_TRANSACTIONCURSOR1-定義一個(gè)游標(biāo),在 begin 之前ISSELECTb . tablename mlogtableMAX( remarks )KEEP (DENSE_R

6、ANKLAST ORDERBY5 5 / / 7171starttime )remarksFROMproc_log a , table_proc bWHERTEO_CHAR( starttime , yyyy-mm-dd ) = - 轉(zhuǎn)換時(shí)間并做比較TO_CHAR( SYSDATE - TO_DSINTERVAL(TO_CHAR( intervaldays ) | 00:00:00 ), yyyy-mm-dd )ANDa . remarks LIKE SUCCEEDED:%ANDa . procedurename = b . procedurenameGROUPBYb . tablename

7、); - 定義結(jié)束c1_rec c1 %ROWTYPE; - 定義接受游標(biāo)數(shù)據(jù)行的ROWTYPEv_mlogtableVARCHAR( 30);v_postperiodCHAR( 2);v_acctbalbeginseq NUMBE;Rv_systimeDATE;6 6 / / 7171BEGINv_input := 0; v_systime := SYSDATE;OPENc1 ; - 打開游標(biāo)LOOP - 循環(huán)FETCHc1 INTOc1_rec ; - 從當(dāng)前游標(biāo)行賦值 c1_recEXIT WHENc1 %NOTFOUND-;- 游標(biāo)沒(méi)有數(shù)據(jù)退出 v_mlogtable :=c1_rec

8、 . mlogtable ; - 從行取出具體數(shù) 據(jù)賦給變量CASETRIM (LOWER v_mlogtable )-CASE 起始THEN- 變量賦值WHENString1THENBEGINv_remarksEND;WHENString2- 當(dāng)條件一- 做條件一工作:= REPLACE(v_remarks , AA );- 當(dāng)條件二7 7 / / 7171BEGINEND;ELSE- 其他條件NULL;ENDCASE;-CASE 結(jié)束IF ( LOWER( SUBSTR( v_mlogtable , 1, 5) mlog$ )THENSELECTlog_tableINTOv_mlogtableFROMuser_snapshot_logsWHERLEOWER(MASTER)= LOWER( v_mlogtable );ENDIF;EXECUTEIMMEDIATEdelete from | v_mlogtable- 循環(huán)結(jié)束| where sequence$ =| TO_CHAR( v_lognum);- 循環(huán)跳出條件EXITWHENDLOOP;8 8 / / 7171CLOSEc1 ;- 關(guān)閉游標(biāo)EXCEPTION

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論