我想在oracle 8中将字符串转换为long。我该怎么做?我只有从blob到char的版本。oracle 8将char转换为long/blob
function lob2char(clob_col clob) return varchar2 IS
buffer varchar2(4000);
amt BINARY_INTEGER := 4000;
pos INTEGER := 1;
l clob;
bfils bfile;
l_var varchar2(4000):='';
begin
LOOP
if dbms_lob.getlength(clob_col)<=4000 THEN
dbms_lob.read (clob_col, amt, pos, buffer);
l_var := l_var||buffer;
pos:=pos+amt;
ELSE
l_var:= 'Cannot convert. Exceeded varchar2 limit';
exit;
END IF;
END LOOP;
return l_var;
EXCEPTION
WHEN NO_DATA_FOUND THEN
return l_var;
END;
在谷歌上找不到任何地方。
为什么你有一列LONG数据类型? 自CLOB于10年前推出以来,LONG数据类型已被弃用。 Oracle不建议您使用LONG数据类型,并且它仅用于支持向后兼容性。 我刚刚在google上搜索了“Oracle转换为clob”并且获得了大量命中...... – Rene
@Rene - 他们仍然在8i上,如果我记得正确的话,它会引入LOB,并且您很惊讶他们'仍然使用LONG?似乎他们的问题最少...... * 8-)我认为他们当时没有得到官方的支持,但移民已经受到鼓励。 –
你的字符串来自哪里 - 它已经是'varchar2'了吗?将字符串值分配给'long'变量或列有什么问题?你展示的代码似乎是不相关的,而且你真的不清楚你想要做什么。 –