大家好,我写了个测试。 把汉字转换为 blob对象。 然后又转换为clob对象。结果转换回来后,成了 ? 号了。 过程如下:
create or replace procedure p_test
as
AMOUNT NUMBER;
DEST_OFFSET NUMBER;
SRC_OFFSET NUMBER;
BLOB_CSID NUMBER;
LANG_CONTEXT NUMBER;
WARNING NUMBER;
l_clob clob;
l_blob blob;
Begin
l_clob := to_clob('测试');
DBMS_LOB.CREATETEMPORARY(l_blob, TRUE);
AMOUNT := dbms_lob.getlength(l_clob) ;
DEST_OFFSET := 1;
SRC_OFFSET := 1;
BLOB_CSID := 1;
LANG_CONTEXT := 1;
dbms_lob.converttoblob(l_blob , l_clob ,AMOUNT,DEST_OFFSET ,SRC_OFFSET ,BLOB_CSID ,LANG_CONTEXT ,WARNING);
dbms_output.put_line('asfsdfsdf');
DBMS_LOB.CREATETEMPORARY(l_clob, TRUE);
AMOUNT := dbms_lob.getlength(l_blob) ;
DEST_OFFSET := 1;
SRC_OFFSET := 1;
BLOB_CSID := 1;
LANG_CONTEXT := 1;
dbms_lob.converttoclob(l_clob , l_blob ,AMOUNT,DEST_OFFSET ,SRC_OFFSET ,BLOB_CSID ,LANG_CONTEXT ,WARNING);
--此时 l_clob 成了 2个问号。
end p_test;