如何检查Oracle PLSQL中的参数值过程

时间:2016-12-06 12:39:05

标签: oracle

我需要修改程序以包含已设置参数的新数据。我需要检查参数的值,以便我可以在实现之前单独测试我的代码。下面是具有参数的代码的一部分。

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范围。我需要知道I的值是什么,以便在代码单独执行时可以替换它。

2 个答案:

答案 0 :(得分:2)

使用DBMS_OUTPUT记录值:

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

答案 1 :(得分:1)

我会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

中的结果