我写了个存储过程,执行时会因为传入的参数过长而报错,但是使用test窗口测试时,参数赋值却没问题,能解释下原理么?好像oracle的sql语句长度是有限制的,有办法解决这问题么

解决方案 »

  1.   

    varchar2类型的参数长度不能超过4000个字符,可以将输入参数放到临时表中,在存储过程中取就行了。
      

  2.   

    如何放入临时表呢,insert的话也会出现太长这个问题啊
      

  3.   

    你在设计临时表的时候将varchar2定义大些就行了,例如:varchar2(8000)。
      

  4.   

     这个也行,你大概有多少字数就在varchar2后面写多少。
      

  5.   

    可以把这个参数和存储表里面的类型一样
    也就是设置成%TYPE