Oracle 11g:将RAW(8)转换为整数范围0..255的表

时间:2013-07-12 11:23:32

标签: plsql oracle11g

我有变量lr_temp,它是RAW(8)类型。正在进行RawToHex(lr_temp)我收到字符串:BDAB59967DF11ECC(以十六进制显示的8个字节)。我的问题是接收每个字节的整数值:

  dbms_output.put_line(RawToHex(lr_temp));
  FOR i IN 1 .. 8
  LOOP
    dbms_output.put_line(ascii(utl_raw.substr(lr_temp, i, 1)));
  END LOOP;

我收到:

BDAB59967DF11ECC
66
65
53
57
55
70
49
67

BD189而非66AB171而非65等等。

1 个答案:

答案 0 :(得分:2)

  dbms_output.put_line(RawToHex(lr_temp));
  FOR i IN 1 .. lcn_data_length
  LOOP
    dbms_output.put_line(utl_raw.cast_to_binary_integer(utl_raw.substr(lr_temp, i, 1)));
  END LOOP;

和输出:

BDAB59967DF11ECC
189
171
89
150
125
241
30
204