open cur_certino;
    fetch cur_certino
      into rec_certino;
    certinolist := to_char(rec_certino.certinolist);
    certinolist := listtolist(certinolist);
    CERTERCODE  := rec_certino.centercode;
  
    v_SQL := ' select count(*)   from prpspoliexpensepayment p where p.centercode=''' ||
             CERTERCODE || ''' and certino in (' || certinolist ||
             ') and p.datesources=''' || '系统提取' || '''';
    dbms_output.put_line(v_SQL);
    execute immediate v_SQL
      into num;
    dbms_output.put_line(num);    certinolist := to_char(rec_certino.certinolist);因为导入数据长度问题 应该怎么改造成 如果数据过长 以换行符 进行计数 每40个换行符 进行一次数据处理

解决方案 »

  1.   

    这个字段里面存的是一个CLOB类型的数据 
    例如 XXXXXXXXXYD
             XXXXXXXXXYD
             XXXXXXXXXYD
    这种  现在他是把这些拼成一个字符串 然后进行处理 但是现在的问题是 每到40条左右 之后的处理过程中就会报出 字符串超长 
    我想比如 我这个对象里存的是200条 我现在想 每40条分割一次进行一次下面的处理 请问该怎么实现 而且在数据库中 还是存在同一条数据里
      

  2.   

    如果你是 CLOB 类型的数据,建议你考虑使用  dbms_lob 这个包进行处理, varchar2 型最长 4000 的限制不大爽;