Следующий код работает в DB2, следуя рецепту из IBM Technote:
‘{’ concat upper(VARCHAR_FORMAT_BIT(
cast(substring(F.Object_id, 4, 1) concat
substring(F.Object_id, 3, 1) concat
substring(F.Object_id, 2, 1) concat
substring(F.Object_id, 1, 1) concat
substring(F.Object_id, 6, 1) concat
substring(F.Object_id, 5, 1) concat
substring(F.Object_id, 8, 1) concat
substring(F.Object_id, 7, 1) concat
substring(F.Object_id, 9) as char(16)), ‘xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx’)) concat ‘}’ as object_id
"cast as char (16)" - это путаница, приведение к varchar (16) неработать на DB2 хотя бы.
Вот до и после: