This is what I get in Oracle 8:
SQL> CREATE TABLE test (value VARCHAR (10));
Table created.
SQL> INSERT INTO test VALUES ('Mike Mascari');
INSERT INTO test VALUES ('Mike Mascari') *
ERROR at line 1:
ORA-01401: inserted value too large for column
SQL> quit
Of course, if the standard is ambiguous, retaining backwards
compatibility sure would be nice.
FWIW,
Mike Mascari
mascarm@mascari.com
-----Original Message-----
From: Zeugswetter Andreas SB [SMTP:ZeugswetterA@wien.spardat.at]
Sent: Tuesday, April 10, 2001 6:47 AM
To: 'Peter Eisentraut'; PostgreSQL Development
Subject: AW: [HACKERS] Truncation of char, varchar types
> Excessively long values are currently silently truncated when they
are
> inserted into char or varchar fields. This makes the entire notion
of
> specifying a length limit for these types kind of useless, IMO. Needless
> to say, it's also not in compliance with SQL.
To quote Tom "paragraph and verse please" :-)
> How do people feel about changing this to raise an error in this
> situation?
Can't do.
> Does anybody rely on silent truncation?
Yes, iirc the only thing you are allowed to do is issue a warning,
but the truncation is allowed and must succeed.
(checked in Informix and Oracle)
The appropriate SQLSTATE is: "01004" String data, right truncation
note that class 01 is a "success with warning".
Andreas