Я создаю пакет сообщений в формате 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. Кто-нибудь знает в чем проблема?