Re: Truncation of char, varchar, bit, varbit types (fwd) - Mailing list pgsql-sql

From Joe Conway
Subject Re: Truncation of char, varchar, bit, varbit types (fwd)
Date
Msg-id 020d01c0e0cb$d8c0a2a0$0205a8c0@jecw2k1
Whole thread Raw
In response to Truncation of char, varchar, bit, varbit types (fwd)  (Peter Eisentraut <peter_e@gmx.net>)
List pgsql-sql
> Implementation proposal as information for the user community.  Speak now
> or...
<snip>

FWIW . . .

> insert into test values ('not ok');
> ERROR:  value too long for type character varying(4)

/** MSSQL 7*/
create table test (a varchar(4));
The command(s) completed successfully.

insert into test values ('not ok');
Server: Msg 8152, Level 16, State 9, Line 1
String or binary data would be truncated.
The statement has been terminated.

/** Oracle 8.1.6*/
SQL> create table test (a varchar(4));
Table created.
SQL> insert into test values ('not ok');
insert into test values ('not ok')           *
ERROR at line 1:
ORA-01401: inserted value too large for column

> insert into test values ('good    ');
> [truncates spaces that are too long]

/** MSSQL 7*/
insert into test values ('good    ');
(1 row(s) affected)
select datalength(a) from test;

-----------
4

(1 row(s) affected)

/** Oracle 8.1.6*/
SQL> insert into test values ('good    ');
insert into test values ('good    ')           *
ERROR at line 1:
ORA-01401: inserted value too large for column

>
> I think this behaviour is desirable over the old one because it makes the
> char and varchar types useful in the first place.

I agree with your assessment. There are implications for people porting
Oracle applications however.

Regards,

-- Joe




pgsql-sql by date:

Previous
From: Peter Eisentraut
Date:
Subject: Truncation of char, varchar, bit, varbit types (fwd)
Next
From: Cedar Cox
Date:
Subject: timestamp bug