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

Създаване на sha1-хеш на ред в Oracle

Пакетът DBMS_CRYPTO е правилният пакет за генериране на хешове. Не се предоставя на PUBLIC по подразбиране, ще трябва да го предоставите специално (GRANT EXECUTE ON SYS.DBMS_CRYPTO TO user1 ).

Резултатът от тази функция е от тип данни RAW . Можете да го съхранявате в RAW колона или го преобразувайте в VARCHAR2 използвайки RAWTOHEX или UTL_ENCODE.BASE64_ENCODE функции.

HASH функцията е претоварена, за да приеме три типа данни като вход:RAW , CLOB и BLOB . Поради правилата за имплицитно преобразуване, ако използвате VARCHAR2 като вход, Oracle ще се опита да го преобразува в RAW и най-вероятно ще се провали, тъй като това преобразуване работи само с шестнадесетични низове.

Ако използвате VARCHAR2 след това трябва да преобразувате входа в двоичен тип данни или CLOB , например :

DECLARE
   x RAW(20);
BEGIN
   SELECT sys.dbms_crypto.hash(utl_raw.cast_to_raw(col1||col2||to_char(col3)), 
                               sys.dbms_crypto.hash_sh1) 
     INTO x 
     FROM t;
END;

ще намерите допълнителна информация в документацията на DBMS_CRYPTO.hash



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Java JDBC - Как да се свържете с Oracle с помощта на tnsnames.ora

  2. Как да използвам тип таблица в оператор SELECT FROM?

  3. Едновременна обработка на актуализации в хибернация

  4. Създаване на Java приложение в Oracle JDeveloper, част 2

  5. изберете от една таблица, вмъкнете в друга таблица oracle sql заявка