Hello Jerome, On 11/10/2017 05:20 PM, jerome brauge wrote:
Hello Alexander,
To have a behavior the nearest possible to Oracle, I use STRICT_TRANS_TABLES sql_mode.
But then I have a problem with cast to varchar that failed with “truncated incorrect value” .
Ex:
set sql_mode='ORACLE,STRICT_TRANS_TABLES';
delimiter /
CREATE or replace procedure p3(b1 integer)
AS
strres VARCHAR(4);
BEGIN
strres:=cast('123456' as char(4));
END
/
call p3(-1)
/
-- Failed with : ERROR 1292 (22007): Truncated incorrect CHAR(4) value: '123456'
But
select cast('11111' as varchar(2)) from dual;
just issue a warning, not an error.
How can I get such warnings from Oracle? For me the above query just truncates silently, without warnings.
On Oracle, Sybase,SQLServer and DB2, cast a string to a shorter string never issue warnings nor error.
Thanks for noticing this. I've filed a bug report for this: MDEV-14376 Explicit CAST(CHAR(N)) erroneously escalates warnings to errors in STRICT_ALL_TABLES The attached patch fixes this problem. Do you see any problems with the patch? Thanks!
What do you think about ?
Regards,
Jérôme.