Преобразовать высокое значение user_partition в varchar2 - PullRequest
2 голосов
/ 19 октября 2011
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()

Столбец HIGH_VALUE user_tab_partitions хранится как LONG datatype ... но я не могу преобразовать его в varchar2 .. Я могу Если я сохраню это высокое значение, используя select в предложение ... но я хочу передать это высокое значение в функцию и получить результат обратно как 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;

поэтому, пожалуйста, помогите мне решить проблему .. Спасибо заранее ..

1 Ответ

0 голосов
/ 19 октября 2011

Вы можете следовать принятому ответу в этой записи SO ...

Преобразование длинных необработанных значений Oracle малого размера в другие типы

и используйте

UTL_RAW.CAST_TO_VARCHAR2

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...