|
You must be reading
Workarounds for bug 1400539: GETTING ORA-1461 INSERTING INTO A VARCHAR (Doc ID 241358.1)
The bug is fixed in 10.1.0.1. So there's really not much need to make it a big deal. But this document about the bug is indeed confusing. At the beginning, it says "A character from the client character set (for example WE8ISO8859P1), can take up to 3 bytes of storage in the database character set UTF8". Note the word "up to". That's correct. Then it says "when you try to use this table from the client, the conversion ratio is set to 1:3... When connecting to a UTF8 server, then all character lengths are multiplied by 3". Note that there's no mention of "up to". Then "Even if a VARCHAR2(2000) column only contains 1 character, this is treated as if you're using a LONG". That's hard to believe. Can you test this in Oracle 9i? One table with two columns, one LONG and one VARCHAR2(2000). Use Pro*C to insert one single character to the varchar2 column. Will you get ORA-1461? I think you'll get the error only if you insert a string longer than a certain length (1333 maybe?). |
|