Skip to content

Oracle 8000 bytes bug

Chris van Lith edited this page Jan 26, 2016 · 2 revisions

Voor sommige drivers (moet nog nader uitgezocht worden, maar dit geldt in ieder geval voor ojdbc7-12.1.0.2) is het een probleem als een kolom precies 8000 bytes bevat. Helaas komt dit regelmatig voor de db_xml kolom in de bericht-tabel van het stagingschema van de BRMO. Er wordt dan een null (\0) karakter ingevoegd in de waarde die uit de database komt. Wederom helaas is de null (\0) een illegaal karakter in xml en daarom kan het xml niet worden geparst.

Er zijn twee manieren om hier omheen te komen. We zouden in de code kunnen testen of de db_xml precies 8000 bytes is en dan een spatie toevoegen. Hier hebben we voorlopig niet voor gekozen.

Ten tweede kan via een query (select * from bericht where length(db_xml) = 8000;) na het inladen van de stand elk record opgezocht worden met dat probleem en dan kan vervolgens handmatig in ieder record een spatie toegevoegd worden.

Erg lelijk, maar ook erg raar van Oracle.

Clone this wiki locally