Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Tworzenie sha1-hash rzędu w Oracle

Pakiet DBMS_CRYPTO jest poprawnym pakietem do generowania skrótów. Nie jest domyślnie przyznana PUBLIC, musisz ją przyznać konkretnie (GRANT EXECUTE ON SYS.DBMS_CRYPTO TO user1 ).

Wynikiem tej funkcji jest typ danych RAW . Możesz go przechowywać w RAW kolumna lub przekonwertuj ją na VARCHAR2 za pomocą RAWTOHEX lub UTL_ENCODE.BASE64_ENCODE funkcje.

HASH funkcja jest przeciążona, aby zaakceptować trzy typy danych jako dane wejściowe:RAW , CLOB i BLOB . Ze względu na zasady niejawnej konwersji, jeśli używasz VARCHAR2 jako dane wejściowe Oracle spróbuje przekonwertować go na RAW i najprawdopodobniej się nie powiedzie, ponieważ ta konwersja działa tylko z ciągami szesnastkowymi.

Jeśli używasz VARCHAR2 następnie musisz przekonwertować dane wejściowe na binarny typ danych lub CLOB , na przykład :

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;

dodatkowe informacje znajdziesz w dokumentacji 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. Korzystanie z usług heterogenicznych Oracle® z dwoma źródłami danych ODBC

  2. Utwórz użytkownika ze wszystkimi uprawnieniami w Oracle

  3. po wstawieniu znaku perskiego w Oracle db widzę znak zapytania

  4. Najlepsze praktyki dotyczące paginacji w Oracle?

  5. Jak wygenerować pakiet API tabeli w Oracle SQL Developer?