Вы можете использовать оператор =
, если хотите увидеть, имеют ли две переменные RAW одинаковые значения.
SQL> DECLARE
2 a RAW(255) := utl_raw.cast_to_raw('abcdef');
3 b RAW(50) := utl_raw.cast_to_raw('abcdef');
4 BEGIN
5 IF a = b THEN
6 dbms_output.put_line('a = b');
7 ELSE
8 dbms_output.put_line('a != b');
9 END IF;
10 END;
11 /
a = b
Когда в документации говорится, что RAW похож на VARCHAR2, но не интерпретируется, это означает, чточто вы можете влиять, хранить и даже сравнивать переменные RAW так же, как и VARCHAR2, но двоичное значение никогда не сопоставляется с набором символов.
Переменные VARCHAR2, с другой стороны, могут быть преобразованы из-за несоответствия между наборами символов базы данных и клиента.
RAW - это строка байтов вместо строки символов.