Skip to content

Multibyte characters overflows variable #994

Description

@lukashov-artem

Describe the bug
String of multibyte characters overflows variable when converting ut_varchar2_list to ut_varchar2_rows

Provide version info
utPLSQL v3.1.2.2134
Oracle 12.2 charset UTF8

To Reproduce
Steps to reproduce the behavior:

  1. generate multibyte character string rpad('№',1334,'№')||'№'
  2. make it hit the reporter
  3. See error

Expected behavior
the error is not raised and the log lines are displayed correctly

Example code

create or replace package utestoq.test_package as
  --%suite(Test multibyte strings)

  --%test
  procedure pTest1;
end;
/
create or replace package body utestoq.test_package as
  procedure pTest1 as
  begin
    utest.ut.fail(rpad('',1332,''));
  end;
end;
/
select * from table(utest.ut.run('utestoq.test_package'))
[1]: ORA-12899: значение для столбца "UTEST"."UT_OUTPUT_BUFFER_TMP$"."TEXT" слишком велико (фактическое: 4002, максимальное: 4000)
[1]: ORA-06512: на  "UTEST.UT_RUNNER", line 150
[1]: ORA-06512: на  "UTEST.UT_OUTPUT_TABLE_BUFFER", line 61
[1]: ORA-06512: на  "UTEST.UT_OUTPUT_REPORTER_BASE", line 46
[1]: ORA-06512: на  "UTEST.UT_DOCUMENTATION_REPORTER", line 38
[1]: ORA-06512: на  "UTEST.UT_CONSOLE_REPORTER_BASE", line 26
[1]: ORA-06512: на  "UTEST.UT_DOCUMENTATION_REPORTER", line 101
[1]: ORA-06512: на  "UTEST.UT_DOCUMENTATION_REPORTER", line 11

Fix
We tried to fix it. I'm new to github, so I did not understand where to click to offer a fix.
lukashov-artem@2673e70#diff-b081c1c6f662c3d212eb2be99d4d58bd
lukashov-artem@be17067

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions