如何转换列的值,例如oracle ALL_TAB_COLUMNS
的{{1}}格式。
它应该调用什么功能?谢谢。
ps。 (Low)HIGH_VALUE
的类型为HIGH_VALUE
输入:
RAW(32)
期望:
select somefuntion('xxxooo') from dual
我已经阅读了Oracle Web文档:ALL_TAB_COLUMNS
答案 0 :(得分:3)
使用the utl_raw.cast_to_raw()
function:
select utl_raw.cast_to_raw('xxxooo') from dual;
UTL_RAW.CAST_TO_RAW('XXXOOO')
-----------------------------
7878786F6F6F
与该示例输入的示例输出不匹配,但您似乎也对该输出进行了补偿。
作为演示:
create table t42(str) as
select 'xxxooo' from dual;
exec dbms_stats.gather_table_stats(user, 'T42');
select high_value from all_tab_columns where table_name = 'T42' and column_name = 'STR';
HIGH_VALUE
----------------------------------------------------------------
7878786F6F6F
select utl_raw.cast_to_raw(max(str)) from t42;
UTL_RAW.CAST_TO_RAW(MAX(STR))
-----------------------------
7878786F6F6F