2011-10-19 52 views
2
select SomeFunction(HIGH_VALUE) 
    from user_tab_partitions ; 

轉換user_partition的高價值而獲得的方案,在VARCHAR2

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 datatype..still我不能夠轉換,在VARCHAR2 .. 我我能夠如果我存儲高價值利用SELECT INTO clause..but我想傳遞高價值的功能,並得到結果返回爲varchar2..I已經寫了下面的功能,但它亙古不變的工作..

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; 

所以請幫我解決這個問題.. thnks提前..

回答

-1

你可以按照這個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

+0

這也是不正在...從user_tab_p中選擇partition_name,to_lob(high_value)high_value藝術; –

+0

這也不起作用...從user_tab_partitions中選擇UTL_RAW.CAST_TO_VARCHAR2(HIGH_VALUE); –

+0

「不工作」不是很有幫助。你收到什麼錯誤消息等? – Ollie