Oracle
 sql >> база данни >  >> RDS >> Oracle

ORA-19011:Буферът на символен низ е твърде малък

to_clob() функцията приема символна стойност, така че имате имплицитно преобразуване от XMLType върнат от XMLElement() в varchar2; след като дължината на XML превиши 4k (тъй като сте в SQL контекст), ще получите тази грешка.

Можете да използвате XMLType функция getCLobVal() вместо това:

    SELECT XMLElement("DEMANDS",
                XMLAgg(XMLElement("Demand"
                            ,XMLElement( "DemandId",dmnd_id)
                        ,XMLElement( "CreatedBy",CREATED_BY)
...
    ,XMLElement("Comments",COMMENTS)
                       ))).getClobVal()
    into OUT_CLOB
    ...

Така че външното извикване на to_clob() е премахнат и заменен с извикване на XMLElement().getClobVal() .Проверен и с XML, по-голям от 32k.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle SQL вмъква множество редове и връща нещо

  2. Не може да се осъществи достъп до полето чрез хибернация в база данни на oracle в различно потребителско пространство само с избрани привилегии

  3. Стартирайте Oracle Forms като самостоятелен без браузър

  4. Функция TRIM() в Oracle

  5. Java - Как да извика процедура на Oracle с персонализирани типове?