При выводе символьных данных на терминал в кодировке UTF-8 происходит их усечение до того количества символов, которое реально помещается в соответствующей длине символьного поля.

Для lindesk

Нужно указать кодировку KOI8-R по умолчанию, а не UTF-8:

  • открыть консоль;

  • войти в каталог linter/bin;

  • ввести

    export LD_LIBRARY_PATH=$PWD
    export LANG="ru_RU.KOI8-R"

Для ldba

Нужно указать кодировку KOI8-R по умолчанию, а не UTF-8:

  • открыть консоль;

  • войти в каталог linter/bin;

  • ввести

    export LANG="ru_RU.KOI8-R"

Для inl

  1. Указать кодировку KOI8-R для хранения данных в БД.

    set database default character set "KOI8-R";
    set database names "KOI8-R";
  2. Передать данные в кодировке KOI8-R.

    • Например, создать файл 1.sql в кодировке KOI8-R (содержимое файла должно быть в кодировке KOI8-R):

      create or replace table aaa (ch char(4));
      insert into aaa values ('АБВГ');
      select * from aaa;
    • Выполнить его в приложении inl, предварительно указав, что данные будут передаваться в KOI8-R с помощью переменной окружения LINTER_CP:

      export LINTER_CP=KOI8-R
      ../bin/inl -u SYSTEM/MANAGER8 -f 1.sql  > 1.sql.out

    В результате можно увидеть, что в БД поместилось 4 русских символа и считалось аналогично 4 русских символа.