開発Oracleストアドプロシージャ、パッケージ

仕様

1  作成 又は 交換PROCEDURE_NAME
 2  3          - パラメータ:パラメータの種類に応じて名前付き引数を、数であるような_...、日付が_... ADである
。4          ad_data_date 、DATE
 5。         - テーブル名欄パラメータタイプ名が定義されています。
6は          P_ID  .ID %のタイプを
 7。      )、
 8つの。     である
9。     - 変数:変数、数_... VNで
10      始まる
11。     - 処理サービス
12は、     コミット13は     
14      例外
 15          場合その他次いで
16          ai_code:= SQLCODE; - Oracle独自の機能、配列戻りOracleエラー
17。          ai_desc:= SUBSTR(SQLERRM、11000年); - エラーメッセージを返す
18は、         - エラー処理、一般的な書き込みログ
19。         ROLLBACK 20は     エンド21は 終了

複合パッケージ、演算制御手順、log_procedureの使用

1  作成 または 交換パッケージ本体pkg_nameがIS 
2      - Procedure_1 
3。     prc_log
 4。  5。          ac_prc_name  VARCHAR2- プロシージャ名
。6          ad_bgn_date  DATE、     - 開始時間
7          ad_end_date  DATE、     - 終了時間
。8          ac_res_code  VARCHAR2- コード結果
9          ac_res_desc  VARCHAR2を- 結果の説明
10          ac_remark  VARCHAR2    - 
11  12であるが     IS 
13で     始まる
14      INSERT  INTOの log_table(列)の値を(...);
 15      コミット;
 16      
17。     例外
 18である         場合その他、次いで
19。         ROLLBACK ;
 20は     エンド21は     
22であるが     - - procedure_2 
23      prc_name
 24- パラメータ
25         an_data_date  - データの時間
26である          an_code OUT - コードの結果
27          OUT av_desc VARCHAR2  - 説明の結果
28IS 
29      - 可変
30      vd_bgn_date日付;
 31である     vd_end_date DATE、
 32は     開始
33である      vd_bgn_date:= SYSDATE。
 34は     - ビジネス・プロセス
35      
36      an_code:=  0 ;
 37      av_desc:= ' 执行成功' ;
38      選択 SYSDATE  vd_end_date からデュアル;
39      
40      - 写日志
41      prc_log(prc_name、vd_bgn_date、vd_end_date、an_code、av_desc、' 备注' )。
42は、     コミット43      
44      例外
 45          ときに次いで
46          - SQLCODE 
47          an_code:= SQLCODE。
48          - SQLERRM 
49          av_desc:= SUBSTR(SQLERRM、11000年);
 50          vd_end_date:= SYSDATE;
 51である         ROLLBACK ;
 52である         - 書き込みログ
53は          prc_log(prc_name、vd_bgn_date、vd_end_date、an_code、av_desc、' 備考' );
 54で         コミット;
 55      エンド56は     
57である     - 計算コントロール
58      プロシージャprc_ctl
 59  60      ad_date DATE、
 61は      an_code OUT 62は      av_desc OUTVARCHAR2 
63れる 64      IS 
65      - 可変
66      vd_data_date VARCHAR2 ; - データの時間、条件付き実行
67      vd_bgn_date日付;
 68      vd_end_date日付;
 69      開始
70      vd_bgn_date:= SYSDATE;
 71である     IF ... その後
72      - サービス処理、コールストアドプロシージャ
73で     prc_name(vd_data_date);
 74      ...
 75      エンド IF ;
 76      
77      an_code:=  0 ;
78      av_desc:=  ' 执行成功' 79      vd_end_date:= SYSDATE。
80      
81      - ログ
82      prc_log(' prc_ctl '、vd_bgn_date、vd_end_date、an_code、av_descを、' 备注' )。
83は、     コミット84      
85      例外
 86          ときに次いで
87          an_code:= SQLCODE。
88          av_desc:= SUBSTR(SQLERRM、11000年);
89          vd_end_date:= SYSDATE;
90          ロールバック;
91          - ログ
92          prc_log(' prc_ctl '、vd_bgn_date、vd_end_date、an_code、av_descを、' 备注' )。
93は、         コミット94      エンド;
95  端部

 

おすすめ

転載: www.cnblogs.com/cnblogs-syui/p/12511120.html