Inserts fail with DatabaseException on database character change
After a database character set change from US7ASCII to AL32UTF8, inserts in the PC_LINK_ATTACHMENT table fail with DatabaseException.
However, this works when 'bullet points' in the string are not present.
com.pega.pegarules.pub.database.DatabaseException: Database-General Problem writing an instance to the database 12899 72000 ORA-12899: value too large for column "PGEPICDATAOWNER"."PC_LINK_ATTACHMENT"."PYMEMO" (actual: 69, maximum: 65)
Steps to Reproduce
Enter bullet points in the free form text of the Notes field and submit the case.
AL32UTF8 is a unicode character set that supports extended symbols, and encodes characters across a variable length of bytes, up to 4.
US7ASCII is a 7-bit character set that fits all of its supported symbols in a single byte with the high bit stripped. Thus it supports half as many characters as WE8ISO8859P1 and does not support most of the special characters.
Therefore, when defining the column by bytes (the default), insertion of a special character whose encoding is changed to an extended encoding, which includes the bullet point, takes up more bytes than it does characters.
ResolutionPerform the following local-change:
Change the column size definition to characters instead of bytes to support expanded character sets.
0% found this useful