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,哪位能指点一下? 展开
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,哪位能指点一下? 展开
2个回答
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');就可以了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询