ORA-22831 в clob2file - PullRequest
       0

ORA-22831 в clob2file

0 голосов
/ 28 апреля 2020

Я создаю пакет сообщений в формате xml, содержащий шаблон с информацией для клиентов. Затем я записываю его в файл и отправляю провайдеру.

declare 
doc clob;
begin
SELECT XMLSerialize(
  DOCUMENT  XMLElement(
    "request"
    ,XMLAttributes("testlogin" as "login","testpassword" as "password")
    ,XMLElement (
      "message"
      ,XMLAttributes(t.time_send AS "time_send")
      ,(
        SELECT XMLAgg(
          XMLElement(
            "msg"
            ,XMLAttributes(t.id AS "id")
            ,XMLElement("sms", t.msg_txt)
          )
        )
        FROM tablename t
    )
  ) as CLOB indent size = 2
) INTO doc from dual;
DBMS_XSLPROCESSOR.clob2file( ' <?xml version="1.0" encoding="UTF-8"?>' || doc
 , 'directory'
 , 'file_name.xml'
 , nls_charset_id('AL32UTF8'));
end;

Проблема заключается в том, что если в шаблоне SMS присутствуют смайлики и, например, существует более 100 клиентов, сценарий завершается с ошибка: ORA-22831: Offset or offset+amount does not land on character boundary

Столбец msg_txt - LONG, NLS_CHARACTERSET = AL32UTF8. Кто-нибудь знает в чем проблема?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...