转换 varchar2 中 user_partition 的 Highvalue

select SomeFunction(HIGH_VALUE)  
  from user_tab_partitions ;

在得到方案的同时,

desc user_tab_partitions;

Name                   Null Type         
---------------------- ---- ------------ 
TABLE_NAME                  VARCHAR2(30) 
COMPOSITE                   VARCHAR2(3)  
PARTITION_NAME              VARCHAR2(30) 
SUBPARTITION_COUNT          NUMBER       
HIGH_VALUE                  LONG()

user_tab_partitions 的 HIGH_VALUE 列存储为 LONG 数据类型。我仍然无法在 varchar2 中转换它。回到varchar2 ..我写了下面的函数,但它不起作用..

create or replace
function SomeFunction(high_val LONG raw) 
return varchar2
is
   lHigh_value     LONG;
   strDate_clause  VARCHAR2(100);
begin
   lHigh_value := high_val;
   strDate_clause := lHigh_value;
   return strDate_clause;
end;

所以请帮我解决问题..提前谢谢..

stack overflow Convert the Highvalue of user_partition in varchar2
原文答案

答案:

作者头像

您可以按照此 SO 条目中接受的答案...

Converting small-ish Oracle long raw values to other types

并使用

UTL_RAW.CAST_TO_VARCHAR2

http://www.dbasupport.com/forums/showthread.php?t=5342