Oracle 怎么将一个字符串写入到一个CLOB 变量

DECLAREV_TEMPCLOB;V_STRVARCHAR2(10):='ABC';V_AMOUNTBINARY_INTEGER;V_OFFSETINTEGER;BEG... DECLARE
V_TEMP CLOB;
V_STR VARCHAR2(10):='ABC';
V_AMOUNT BINARY_INTEGER;
V_OFFSET INTEGER;
BEGIN
V_TEMP:=EMPTY_CLOB();
V_AMOUNT:=LENGTH(V_STR);
V_OFFSET:=1;
DBMS_LOB.OPEN(V_TEMP,DBMS_LOB.LOB_READWRITE);
DBMS_LOB.WRITE(V_TEMP, V_AMOUNT, V_OFFSET, V_STR);
DBMS_LOB.CLOSE(V_TEMP);
END;
Oracle怎么将一个字符串写入到一个CLOB 变量中,我写了上面一段语句,报错:invalid LOB locator specified,哪位能指点一下?
展开
 我来答
匿名用户
2013-04-05
展开全部
如果要用 DBMS_LOB.WRITE,则必须要有LOB定位器(LOB locator)。你这里报错就是因为 V_TEMP这个LOB没有LOB定位器。 只有存储在数据库表中的LOB才有定位器,如果你要用DBMS_LOB.WRITE这个过程,里面的LOB必须得是从表中取出来的。 如果你想修改数据库表中的LOB列,可以这样:select clob_col into V_TEMP from clob_table for update然后直接用DBMS_LOB.WRITE过程,而不需要DBMS_LOB.OPEN和CLOSE这两个过程。 如果你只是想给一个PL/SQL中的clob变量赋值的话,直接V_TEMP = to_clob('ABC');就可以了。
穆亚枫
推荐于2017-09-26 · TA获得超过210个赞
知道小有建树答主
回答量:285
采纳率:100%
帮助的人:167万
展开全部
存储过程中直接赋值就好了。
declare
a clob
begin
a:='baddsdfds';
end;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式