Re: Truncation of char, varchar, bit, varbit types (fwd)

From: "Joe Conway" <jconway2(at)home(dot)com>
To: "Peter Eisentraut" <peter_e(at)gmx(dot)net>, <pgsql-sql(at)postgresql(dot)org>
Subject: Re: Truncation of char, varchar, bit, varbit types (fwd)
Date: 2001-05-20 01:26:07
Message-ID: 020d01c0e0cb$d8c0a2a0$0205a8c0@jecw2k1
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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

In response to

Browse pgsql-sql by date

  From Date Subject
Next Message Cedar Cox 2001-05-20 09:49:00 timestamp bug
Previous Message Peter Eisentraut 2001-05-20 00:36:22 Truncation of char, varchar, bit, varbit types (fwd)