8000 Multibyte characters overflows variable · Issue #994 · utPLSQL/utPLSQL · GitHub
[go: up one dir, main page]

Skip to content
Multibyte characters overflows variable #994
Open
@lukashov-artem

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

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

      0