如果要用 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');就可以了。
在存储过程中直接赋值就好了。
declare
a clob
begin
a:='baddsdfds';
end;