Oracle
 sql >> база данни >  >> RDS >> Oracle

Оператори за смяна в PL/SQL

Следният отговор не е агностик на endian и моята формулировка се основава на малък формат на endian...

Можете да преместите битове, като просто умножите (преместване наляво) или разделите (преместване надясно) аргумента на 2 на степен x, където x е броят битове за преместване. например, ако трябва да преместя младшия байт на число (255:11111111) 16 бита наляво, бих изпълнил следната операция:

select 255 * power(2,16) from dual;  
-- the result will be (16711680:111111110000000000000000)

обратно, ако искам да преместя стойността 16711680 16 бита надясно, ще изпълня следното:

select 16711680 / power(2,16) from dual;
-- the result will be (255:11111111)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. как да предам променлива в WHERE IN клауза на oracle sql?

  2. Как да върнете корекцията след неуспешна фаза на превключване в R12.2

  3. Съпоставяне на външен ключ с персонализирано име на колона

  4. sqlplus отдалечена връзка, даваща ORA-21561

  5. Създаване на асоциативен масив на ниво пакет в java