【发布时间】:2015-11-01 07:59:16
【问题描述】:
当我尝试在同一个 PLSQL 块中多次使用 DBMS_LOB.convertToBlob 过程时,只有第一次执行按预期工作。所有其他执行都会产生空 blob。这是一个例子:
DECLARE
v_temp1 varchar2(32767) := 'absd';
V_temp1_blob BLOB;
V_temp2 varchar2(32767) := 'efghi';
V_temp2_blob BLOB;
v_in integer := 1;
v_out integer := 1;
v_lang integer := 0;
v_warning integer := 0;
BEGIN
DBMS_LOB.createTemporary (V_temp1_blob, TRUE);
DBMS_LOB.convertToBlob(V_temp1_blob, V_temp1, DBMS_LOB.LOBMAXSIZE, v_in, v_out, DBMS_LOB.DEFAULT_CSID, v_lang, v_warning);
dbms_output.put_line('V_temp1_blob: ' || dbms_lob.getlength(V_temp1_blob));
DBMS_LOB.createTemporary (V_temp2_blob, TRUE);
DBMS_LOB.convertToBlob(V_temp2_blob, V_temp2, DBMS_LOB.LOBMAXSIZE, v_in, v_out, DBMS_LOB.DEFAULT_CSID, v_lang, v_warning);
dbms_output.put_line('V_temp2_blob: ' || dbms_lob.getlength(V_temp2_blob));
END;
输出:
V_temp1_blob: 4
V_temp2_blob: 0
我的预期输出是:
V_temp1_blob: 4
V_temp2_blob: 5
我在这里错过了什么?
【问题讨论】:
标签: oracle plsql oracle11g blob