Open
Description
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:
- generate multibyte character string
rpad('№',1334,'№')||'№'
- make it hit the reporter
- 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