H.AL Ответов: 1

Не удается преобразовать символы eng в ascii в oracle


Я использую метод Asciistr в oracle, который должен преобразовать данную структуру в ascii. Арабские символы преобразуются правильно, но английский все тот же, в то время как в некоторых онлайн-конвертерах я вижу, что числа, такие как 1 и 2, преобразуются в 0031 и 0032. Вот мой метод:

create or replace procedure replace_ascii(test_var in varchar2,valueRet out varchar2) is
begin
   select  replace (asciistr(test_var), '\', null)
   into valueRet
   from dual;           
end replace_ascii;


В настоящее время я заменяю числа их ожидаемым значением таким образом:

select replace(replace (valueRet,'1','0031'),'2','0032') 
 .... 
into valueRet
from dual;


Но я не хочу использовать "заменить" каждый раз, чтобы вернуть правильное значение. Как лучше всего преобразовать эти символы?

1 --> 0031

2 --> 0032

A --> 0041

......

Я что-то упустил? Пожалуйста, проверьте эту ссылку http://r12a.github.io/apps/conversion/ и попробуйте преобразовать английские цифры и буквы, и проверьте результат последнего тега.

Что я уже пробовал:

Я попытался использовать RAWTOHEX, но некоторые символы пропущены, например: 1 преобразуется в 31 вместо 0031, A преобразуется в 41 вместо 0041 ... и арабские символы преобразуются неправильно.

1 Ответов

Рейтинг:
2

Richard Deeming

Согласно с документация[^], этот ASCIISTR функция преобразует только символы, отличные от ASCII.

Английские буквы и стандартные арабские цифры (0-9) все допустимые символы ASCII. Поэтому они не будут обращены.