3

我尝试将一些文本信息加载到 clob 字段中。我将遇到问题的代码简化为以下代码段:

DECLARE
    WS_MAIN_CHUNK RAW(12001);
BEGIN
    WS_MAIN_CHUNK := 'Do';
END;
/

它给了我错误ORA-06512 PL/SQL: numeric or value error: hex to raw conversion error。为什么字符串'Do'是一个十六进制值,我该如何修复它->只需将字符串分配给原始变量?

谢谢你的帮助

4

1 回答 1

8

在 Oracle 中,RAW数据类型用于存储二进制数据和任何面向字节的数据。您不能直接将字符串值分配给RAW数据类型的变量。如果有这样的需要,你可以使用utl_raw包和cast_to_raw函数来做到这一点:

SQL> DECLARE
  2      WS_MAIN_CHUNK raw(12001);
  3  BEGIN
  4      WS_MAIN_CHUNK :=  utl_raw.cast_to_raw('Do');
  5  END;
  6  /

PL/SQL procedure successfully completed
于 2012-11-20T11:19:26.937 回答