Guest User

Untitled

a guest
May 20th, 2018
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.28 KB | None | 0 0
  1. select to_number('AA', 'xx') from dual;
  2.  
  3. select to_char(111, 'xxxx') from dual;
  4.  
  5. SELECT TO_NUMBER('DEADBEEF', 'XXXXXXXX')
  6. FROM dual
  7.  
  8. ---
  9. 3735928559
  10.  
  11. SELECT TO_CHAR(3735928559, 'XXXXXXXX')
  12. FROM dual
  13. ---
  14. DEADBEEF
  15.  
  16. SQL> select to_char(123,'XX') to_hex,
  17. 2 to_number('7B','XX') from_hex
  18. 3 from dual
  19. 4 /
  20. TO_ FROM_HEX
  21. ------ -----------------
  22. 7B 123
  23.  
  24. CREATE OR REPLACE FUNCTION hex2dec (hexnum IN CHAR) RETURN NUMBER IS
  25. i NUMBER;
  26. digits NUMBER;
  27. result NUMBER := 0;
  28. current_digit CHAR(1);
  29. current_digit_dec NUMBER;
  30. BEGIN
  31. digits := LENGTH(hexnum);
  32. FOR i IN 1..digits LOOP
  33. current_digit := SUBSTR(hexnum, i, 1);
  34. IF current_digit IN ('A','B','C','D','E','F') THEN
  35. current_digit_dec := ASCII(current_digit) - ASCII('A') + 10;
  36. ELSE
  37. current_digit_dec := TO_NUMBER(current_digit);
  38. END IF;
  39. result := (result * 16) + current_digit_dec;
  40. END LOOP;
  41. RETURN result;
  42. END hex2dec;
  43. /
  44. show errors
  45.  
  46. CREATE OR REPLACE FUNCTION num2hex (N IN NUMBER) RETURN VARCHAR2 IS
  47. H VARCHAR2(64) :='';
  48. N2 INTEGER := N;
  49. BEGIN
  50. LOOP
  51. SELECT RAWTOHEX(CHR(N2))||H
  52. INTO H
  53. FROM dual;
  54.  
  55. N2 := TRUNC(N2 / 256);
  56. EXIT WHEN N2=0;
  57. END LOOP;
  58. RETURN H;
  59. END num2hex;
  60. /
  61. show errors
Add Comment
Please, Sign In to add comment