仕様
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、1、1000年); - エラーメッセージを返す 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 - 説明の結果 28 )IS 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、1、1000年); 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、1、1000年); 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 端部、