传过来的字符分隔字符串,在存储过程里面拼接了一条查询语句,由于传过的分割字符串可能存在很大很大的情况,存储过程就报错了。怎么解决啊?更换数据类型?

解决方案 »

  1.   

    oracle中varchar2有最大长度限制的,如果你非要有那么长的参数,可以考虑用clob呀
      

  2.   

    使用clob类型,或者使用多个varchar2参数,然后在代码中拼接。
      

  3.   

    参数再大能传过来,现在是已经传过来了,在存储过程的数据类型里面溢出了.clob这个二进制类型怎么查询啊。
      

  4.   


    clob当然不能直接查询了,要转为vachar2才可以呀。不过话又说回来了,那么长的sql,你要想想你的设计是否合理了。
      

  5.   

    表结构当中 varchar2 类型最大长度是4000
    存储过程或者函数中 varchar2 的最大长度是 32767 应该可以了吧。
      

  6.   

    作为变量varchar2最大长度是32767,但作为参数好像是4000,你传过来的是查询的条件吧,可以吧查询条件先插入到tmp表,或者设置多个参数