我有张workinfo,表中的taskxml列(这列存储的是XML数据)以前是Varchar类型,但是转移到Oracle后改成了clob类型,
现在我有个存储过程操作了这张表,存储过程中我定义了两个变量V_taskxml和V_temp,这两个变量会通过游标被赋taskxml的值。假如这两个变量都是varcvhar类型,则操作过程中会报“ora-06502 pl sql 数字或值错误 字符串缓冲区太小'错误,但是改成clob类型,存储过程执行完到输出数据的那一步又报“ORA-03127 no new operations allowed until the active operation ends”错误。不知道怎么回事,请教各位高手这个问题怎么解决,在线等

解决方案 »

  1.   

    ora-06502 pl sql 数字或值错误 字符串缓冲区太小
    是字符串长度的问题了。你应该是其他种类的数据库导过来的吧。另一个错,可能和你访问clob的方式有关吧。
      

  2.   

    就用clob不行么,一定要转到varchar么,varchar有4000b的长度限制,
      

  3.   

     我是要转成CLOB啊 现在是转成CLOB报ORA-03127 错误 另外纠正下varchar在存储过程里面可以存30000+不是表里面的4000b
      

  4.   

    你是不是没看懂呢我的意思是说存储过程中的那两个变量如果是CLOB型,存储过程能够顺利运行 只是到运行完他会报ORA-03127 错误 ,不用CLOB是不行的 因为操作的是XML,会很大Varchar完全存不下