15.08.2007

DB2: Internal functions won't run

They say that time and space are relative. If knowing Einstein and having a voice, my computer would confirm this, for that at times its disc space is relatively short.

DB2 sometimes has a rather complex relationship to time itself, too. Once we changed the system time on a Linux based DB2 test server, and subsequently forgot about this. Next day, a developer called us and told us that some of his sql statements failed where they still had been working several days ago.

Our investigations showed that when containing an internal function, like in "db2 values ucase('hello') ", DB2 gave us the following error message:

SQL0440N No authorized routine named "UCASE" of type "FUNCTION" having compatible arguments was found. SQLSTATE=42884

This error appeared on all existing databases in that instance. After creating a new database, we found that only the old ones were affected.

We opened a PMR with IBM and the support told us that sometimes this may happen when changing the system time. (Maybe we moved it
too far?) There's a DB2 tool called 'fixfunc' available at IBM support. We tried it and it succeeded - all databases were usable afterwards.



Keine Kommentare: