powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / ограничения памяти xmldom
4 сообщений из 4, страница 1 из 1
ограничения памяти xmldom
    #33838006
ryasal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как их обойти?
Суть: в xml файл с помощию xmldom записываются тэги и их содержимое. Как только xml-файл вырастет до 4 002 байта, ошибка:
ORA-06502:PL/SQL: numeric or value error: character string buffer too small
...
Рейтинг: 0 / 0
ограничения памяти xmldom
    #33840113
Фотография SeaGate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ryasalкак их обойти?
Суть: в xml файл с помощию xmldom записываются тэги и их содержимое. Как только xml-файл вырастет до 4 002 байта, ошибка:
ORA-06502:PL/SQL: numeric or value error: character string buffer too small
Давайте определимся: xmldom не пишет в файлы, в файлы пишет utl_file.
Вы пишите в xml-документ с помощью xmldom?
Вообще, если приведете код, то будет намного проще.
...
Рейтинг: 0 / 0
ограничения памяти xmldom
    #33841219
ryasal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот код:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
    vParser := xmlparser.newParser;
    xmlparser.setValidationMode(vParser, FALSE);          
    xmlparser.parseBuffer(vParser, '<?xml version="1.0" encoding="windows-1251"?> <root/>');         
    vDocResult := xmlparser.getDocument(vParser);  
               
    vElementResult := xmldom.getDocumentElement(vDocResult);        
    vNodeResult := xmldom.makeNode(vElementResult);
    
    IF xmldom.isNull(vNodeResult) = FALSE THEN    
    vElement := xmldom.createElement(vDocResult, 'data');
    vNode := xmldom.makeNode(vElement);        
    vDataNode := xmldom.appendChild(vNodeResult, vNode);    
    END IF; 

    IF xmldom.isNull(VDataNode) = FALSE THEN  
    vElement := xmldom.createElement(vDocResult, 'tag_name'); -- это тэг
    vNode := xmldom.makeNode(vElement);    
    vNode := xmldom.appendChild(vDataNode, vNode);    
         
    vText := xmldom.createTextNode(vDocResult, 'tag_data'); -- это содержание тэга
    vNode2 := xmldom.makeNode(vText);
    vNode2 := xmldom.appendChild(vNode, vNode2); 

    xmldom.writeToBuffer(vDocResult, vSqlResult);
    xmlparser.freeParser(vParser);   
...
Рейтинг: 0 / 0
ограничения памяти xmldom
    #33841615
ryasal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема решена следующим образом:
Переменная vSQLResult изначально была типа VARCHAR2.
Изменив ее тип на CLOB, но оставив при этом xmldom.writetoBuffer, все заработало.
(оставил xmldom.writetoBuffer, так как если использовать xmldom.writetoClob, появляеться ошибка ORA-20000)
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / ограничения памяти xmldom
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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