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.
Asked
Active
Viewed 975 times
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 Jul 06 '11 at 10:46
-
It's just numbers. No wide characters. – Mikayil Abdullayev Jul 06 '11 at 11:28
-
1Sounds 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 Jul 06 '11 at 11:34
-
1Which version of Delphi and Oracle are you using (including applied update packs, patchtsets and patches)? – Jul 06 '11 at 12:47
-
1What happens when you enter five digits ? Use SELECT DUMP(col) FROM table to see what bytes are stored. – Gary Myers Jul 07 '11 at 01:01
1 Answers
1
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?

DCookie
- 42,630
- 11
- 83
- 92
-
1A varchar field is mapped to a string field in a Delphi dataset, and the grid uses the underlying field type, unless the developer changes something. – Jul 06 '11 at 21:02