> 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