powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Неполный мультибайт из xmltype в java
1 сообщений из 1, страница 1 из 1
Неполный мультибайт из xmltype в java
    #39616885
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В java классы oracle.xdb.XMLType и java.sql.SQLXML возвращают неполную строку, если значение содержит четырехбайтный символ. Предположительно обрезает по длине length2. getBinaryStream тоже возвращает не все. getInputStream возвращает целиком, но deprecated в 12.2.
На металинке такого бага не нашел.
База al32utf8, Версия 12.2.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
create or replace and resolve java source named XTest as
public class XTest {
  public static String xString(java.sql.SQLXML x) throws Exception {
    
    return "["+x.getString()+"]";
  }; 
}
/

create or replace function xstring(x XMLType) return varchar2
  as language java name 'XTest.xString(java.sql.SQLXML) return java.lang.String';
/

select length(xs) len, lengthb(xs) lenb, length2(xs) len2, xs, xstring(xmltype(xs)) xx, ascii(xmltype(xs).extract('/X/text()')) ascii
from (select '<X>'||chr(4036991128)||'</X>' xs from dual);

       LEN       LENB       LEN2 XS                   XX                        ASCII
---------- ---------- ---------- -------------------- -------------------- ----------
         8         11          9 <X>&#128536;</X>            [<X>&#128536;</X]           4036991128
--                                      тэг не закрыт [<X>&#128536;</X>]

Знаки вопроса вставляет sql.ru
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Неполный мультибайт из xmltype в java
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]