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
[EMAIL PROTECTED]

-----Original Message-----
From:   Zeugswetter Andreas SB [SMTP:[EMAIL PROTECTED]]
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


---------------------------(end of broadcast)---------------------------
TIP 5: Have you checked our extensive FAQ?

http://www.postgresql.org/users-lounge/docs/faq.html

Reply via email to