Oracle
 sql >> Baza danych >  >> RDS >> Oracle

ORA-19011:Za mały bufor ciągu znaków

to_clob() funkcja przyjmuje wartość znakową, więc masz niejawną konwersję z XMLType zwrócone przez XMLElement() do varchar2; gdy długość XML przekroczy 4k (ponieważ jesteś w kontekście SQL), otrzymasz ten błąd.

Możesz użyć XMLType funkcja getCLobVal() zamiast tego:

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

Więc zewnętrzne wywołanie to_clob() został usunięty i zastąpiony wywołaniem XMLElement().getClobVal() .Zweryfikowano również z XML większym niż 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. Jak przywrócić stary plsql?

  2. pobierz nazwy z identyfikatorów oddzielonych przecinkami w SQL

  3. Wybierz z tabeli, jeśli rekord został znaleziony w innej tabeli

  4. ropucha dla listy rozwijanej autouzupełniania Oracle

  5. varchar2(n BYTE|CHAR) default -> CHAR lub BYTE