ORA-07445: exception encountered: core dump [__intel_new_memcpy()+382] [SIGILL] [ADDR:0x3FE5CAE] [PC:0x3FE5CAE] [Illegal operand] []
Searching metalink didn't get us anywhere, so we opened a TAR (or iTar, or SR, or ServReq, or whatever the heck they are calling them these days). While Oracle Support was looking at the issue, I looked at the query generating the error:
SELECT nvl(t.value, null) FROM table t WHERE t.id = 12345;
Presto-changeo...
SELECT t.value FROM table t WHERE t.id = 12345;
...and the error goes away.
Is it a bug on Oracle's side? Sure.
Is it a stupid thing to do on our side? You betcha.
5 comments:
It's the non-SQL Irish coding latest coding standard: to-be-sure-to-be-sure.
Those among us from more conventional and recursive SQL backgrounds would say one shouldn't be able to test NULL and replace it with NULL: if it is unknown, how can you be sure it should be unknown?
Do you get the same problem if the second argument to Nvl() is an expression or column that returns NULL?
btw I haven't used Nvl() in years -- I'm strictly a Coalesce() man now.
to be more more sure:
SELECT DISTINCT nvl(t.value, null) FROM table t WHERE t.id = 12345
Jan
That one made me laugh out loud :-)
Very likely that we did not test this kind of NVL as part of the new version testing...
see note 1321682.1
Post a Comment