Attempt to update data exceeding 32000. (12371)

Posted by jnaidl on 24-May-2011 13:52

Attempt to update data exceeding 32000. (12371)

Unable to update  Field. (142)

I just recieved this error on an import statement.  I have logging before and after the statement.  I have a file I could reproduce the error.  What I can't determine is why the error is occurring.

Here is the code line "import stream inlines unformatted thisline."  None of the lines in the file exceed 32000 characters.  Does anybody have any advice for troubleshooting this issue?  Even just where I can find more information about it.

Thanks,

~Justin

All Replies

Posted by jnaidl on 25-May-2011 09:54

I'm able to reproduce with the below code.  What I don't understand is that s1 and s2 never contain more than 16002 (with new line) characters.  Is there a process limit on number of characters in all strings that when s2 and s1 are in memory at the same time thats when the issue occurrs?  Also I thought it was odd, if I add no-undo to either s1 and s2 or both of them, I no longer get the error.  There should be no undo to be skipping correct?

define variable iCount as integer no-undo.

output to testfile.txt.


repeat iCount = 1 to 32002:

  put unformatted  "A".

 

  if iCount = 16001 or iCount = 32002 then

    put unformatted skip.

end.


output close.


define variable s1 as character.

define variable s2 as character.

input from testfile.txt.

import unformatted s1.

s2 = s1.

import unformatted s1.

input close.

Posted by Thomas Mercer-Hursh on 29-May-2011 13:38

32000 isn't just the limit on a single character variable, but also on a record and on the total size of the variables in some divisions of the code ... I'm a little vague on the latter, perhaps because I don't program in a way I am likely to encounter the problem.  If you actually have individual character fields as large as 16000, you should probably be thinking longchar anyway.

This thread is closed