2016-12-06 31 views
1

パラメータが設定された新しいデータを含める手順を修正する必要があります。コードを実装する前に個別にテストできるように、パラメータの値をチェックする必要があります。以下はパラメータを持つコードの部分です。Oracle PLSQLプロシージャのパラメータの値を確認する方法

PROCEDURE Get_All_MT (i IN NUMBER) 
AS 
BEGIN 
    INSERT INTO mrr_reten_mt_obp_cli (
    AMI_SCHEMA, 
    UAN, 
    PRODUCT_CLASS, 
    POL_NO 
    ) 
     SELECT a.ami_schema, 
      a.uan, 
      a.product_class, 
      a.pol_no 
     FROM mrr_retention_c_cover_item a, 
      att_axa_uan agt, 
      amt_structure str 
     WHERE a.accident_date BETWEEN TRUNC (ADD_MONTHS (SYSDATE, i - 1), 'MONTH') 
           AND TRUNC (ADD_MONTHS (SYSDATE, i), 'MONTH') 
            - (1/(60 * 60 * 24)) 

「I」というパラメータは、accident_dateの範囲で使用されています。私は、コードが個別に実行されている間に置き換えることができるように、私の価値が何であるかを知る必要があります。

答えて

2

ログインDBMS_OUTPUTを使用して値:

PROCEDURE Get_All_MT (i IN NUMBER) 
AS 
BEGIN 
    DBMS_OUTPUT.PUT_LINE(i); 
    INSERT INTO ... 
1

Iだろうcreate table log_params (param varchar2(30), value varchar2(200), log_time date);と手順:

create or replace procedure log_param(param varchar2(30), value varchar2(200)) as 
pragma autonomous transaction 
begin 
insert into log_params values (param, value, sysdate); 
commit; 
end; 
/

そして、あなたのコードに含める:log_param('i', i);。次にテーブルの結果を調べてくださいlog_params

+1

解決策は正しいですが、多少過度のものかもしれません。 –

+0

@WernfriedDomscheit dbms_outputは必ずしも実現可能ではないので、私はそれをソリューションとして投稿しました。 'dbms_output'を使うほうが速いのは明らかですが、ある種の呼出し手続きのためにそれらのパラメータを集めたいときには、ログに記録して分析するほうがはるかに簡単です。 – Kacper

関連する問題