Выберите прямо из таблицы, а не из dual
:
SELECT Rawtohex (dbms_obfuscation_toolkit.Md5 (input_string => t.textValue)) AS HEX
FROM your_table t
WHERE t.table_id = some_id;
Тот факт, что ваша версия получила ORA-01427, предполагает, что вы получите несколько значений обратно, потому что table_id
не является уникальным. Ну, кроме того, что ваш код на самом деле выдает "ORA-00907: отсутствует правая скобка"; но если бы у вас было =>
вместо in
, он мог бы получить ORA-01427 ...
Быстрое демо с примерами данных в CTE:
with your_table (table_id, textvalue) as (
select 42, 'a_text' from dual
union all select 42, 'b_text' from dual
union all select 43, 'c_text' from dual
)
SELECT Rawtohex (dbms_obfuscation_toolkit.Md5 (input_string => t.textValue)) AS HEX
FROM your_table t
WHERE t.table_id = 42;
HEX
--------------------------------
55EA1381DBC9F3CE146B55CC75B28147
CFD9FD9A2BA3FDD917E8CAB4EF644838