La siguiente respuesta no es agnóstica de endianness y mi redacción se basa en formato little endian...
Puede desplazar bits simplemente multiplicando (desplazamiento a la izquierda) o dividiendo (desplazamiento a la derecha) el argumento por 2 a la potencia de x, donde x es el número de bits a desplazar. por ejemplo, si necesito desplazar el byte de orden inferior de un número (255:11111111) 16 bits a la izquierda, realizaría la siguiente operación:
select 255 * power(2,16) from dual;
-- the result will be (16711680:111111110000000000000000)
por el contrario, si quiero desplazar el valor 16711680 16 bits a la derecha, haría lo siguiente:
select 16711680 / power(2,16) from dual;
-- the result will be (255:11111111)