Refactoring doesn't handle cursor loop variable

Gustavo

Member³
I had this loop:


Code:
For v_lin In (Select pola.line_num,
                     pnla.lease_num
              From   pn_leases_all pnla,
                     po_lines_all  pola
              Where  pnla.lease_id = to_number(pola.attribute3)
              And    pola.po_header_id = vn_document_id) Loop
  vs_line_ident := 'headers="lineNum_1">' || to_char(v_lin.line_num) ||
                   '[/TD]';
  vn_line_ini   := instr(l_document, vs_line_ident) + 20;
  vn_column_ini := instr(l_document, '[/TR]', vn_line_ini);
  l_document    := substr(l_document, 1, vn_column_ini - 1) ||
                   htf.tabledata(v_lin.lease_num,
                                 cnowrap => 'True',
                                 cattributes => 'headers="leaseNum_1"') ||
                   chr(10) || substr(l_document, vn_column_ini);
End Loop;
Then I selected the loop's code section and refactored. This is what I got:


Code:
Procedure append_data(l_document In Out Clob) Is
  vs_line_ident VarChar2(100);
  vn_line_ini   Number;
  vn_column_ini Number;
Begin
  vs_line_ident := 'headers="lineNum_1">' || to_char(v_lin.line_num) ||
                   '[/TD]';
  vn_line_ini   := instr(l_document, vs_line_ident) + 20;
  vn_column_ini := instr(l_document, '[/TR]', vn_line_ini);
  l_document    := substr(l_document, 1, vn_column_ini - 1) ||
                   htf.tabledata(v_lin.lease_num,
                                 cnowrap => 'True',
                                 cattributes => 'headers="leaseNum_1"') ||
                   chr(10) || substr(l_document, vn_column_ini);
End append_data;
v_lin values (v_lin.line_num and v_lin.lease_num), which should become parameters, weren't taken into account.
 
Back
Top