1
votes

I have a database in Oracle. The client application is written in Delphi. When I enter values into the DBGrid which is connected to a table in the database I get "ORA-12899 Error value too large for the column".The datatype of the column specified in the error message is varchar(6).And I exactly enter 6 digits.The error also indicates that the maximum is 6 the actual is 7 which is wrong.I tried changing the datatype to number but I get the same error with just a difference that it say maximum is 3 the actual is 4.Is there a bug with Delphi and Oracle? I use ADO for connection.There's notthing in the BeforePost event.

1
Are you sure there aren't any spaces or newlines at the end of the value? Or maybe 'wide' characters (like Unicode symbols) that have a size of two bytes for a single character. - Martijn
It's just numbers. No wide characters. - Mikayil Abdullayev
Sounds like a result binding issue. Try the Microsoft provider, which name is MSDAORA instead of OraOLEDB. Which version of Delphi are you using? Are you using the BDE, DBExpress, anything else? Or try using direct Oracle connection instead of ADO/OleDB (if your Delphi version allows this). - Arnaud Bouchez
Which version of Delphi and Oracle are you using (including applied update packs, patchtsets and patches)? - user160694
What happens when you enter five digits ? Use SELECT DUMP(col) FROM table to see what bytes are stored. - Gary Myers

1 Answers

1
votes

Not knowing anything at all about Delphi, could it be that your grid data cell is interpreted as a number and a space is being reserved for the sign?

EDIT:

What happens if you type 6 characters but include 1 or more alphas?