I'm designing a database application that will work with replication features (mutilple clients with disconnected sybase db, and central server with oracle db).

Since I don't want to bother with 'complex to manage' composed primary keys everywhere, I've decided to use UUID/GUID type for primary keys where it's meanfull in my application.

sybase allready support 'uniqueidentifier' type, but can't find dedicated type in oracle.

I've allready used RAW(32) type for UUID/GUID storage (not as pk) in previous oracle db, but I'm unsure about the indexes performance of this type, is it safe to use RAW(32) as primary key type, and will indexes perform as expected?

A co-worker propose to use CHAR(32) to store the UUID/GUID instead, because we allready know how oracle handle this type, do you have any recomandation to help my choice?

As a side note, will you recommand using composed 'functionnal' keys instead of 'technical' keys? I myself, find that PSQL/Application code is more complex to manage with composed keys but I also would like to hear about elseones real-life experiences.

Thanks for your support!