2016-12-06 3 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. Мне нужно знать, что такое значение I, чтобы его можно было заменить, когда код был выполнен индивидуально.

ответ

2

Log значение с помощью DBMS_OUTPUT:

PROCEDURE Get_All_MT (i IN NUMBER) 
AS 
BEGIN 
    DBMS_OUTPUT.PUT_LINE(i); 
    INSERT INTO ... 
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

+1

Правильное решение, но, возможно, немного перебор. –

+0

@WernfriedDomscheit Я опубликовал это как решение, потому что dbms_output не всегда выполнимо. Очевидно, что быстрее использовать 'dbms_output', но когда вы хотите собрать эти параметры для некоторого периода процедуры вызова, гораздо проще записывать и анализировать. – Kacper

Смежные вопросы