如何转换列的值,例如ALL_TAB_COLUMNS的HIGH_VALUE格式

时间:2018-07-05 07:33:49

标签: sql oracle

如何转换列的值,例如oracle ALL_TAB_COLUMNS的{​​{1}}格式。

它应该调用什么功能?谢谢。

ps。 (Low)HIGH_VALUE的类型为HIGH_VALUE

输入:

RAW(32)

期望:

select somefuntion('xxxooo') from dual

我已经阅读了Oracle Web文档:ALL_TAB_COLUMNS

1 个答案:

答案 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