本帖最后由 sd01101230 于 2010-05-03 23:26:26 编辑

解决方案 »

  1.   

    不会吧!两千多行的sql,一样执行呀。你发出来看看,是字段内容长还是有效sql长?
      

  2.   

    在 iSQL*Plus 里面呢? 看看这个Oracle自己的工具能不能正确执行。
      

  3.   


    你的两千多行,每行多少个字节,SQL居然能有两千多行??SQL长度的确是有限制的,但绝对不止1560,看看你的SQL中是不是有回车一类的字符,改成一行试试。
      

  4.   

    不会吧!两千多行的sql,一样执行呀。你发出来看看,是字段内容长还是有效sql长?
    你的两千多行,每行多少个字节,SQL居然能有两千多行??SQL长度的确是有限制的,但绝对不止1560,看看你的SQL中是不是有回车一类的字符,改成一行试试。
      

  5.   

    1560左右Byte就不能执行,那也太少了
    Invalid column name非法列名,应该是被截了。。
      

  6.   

    这样吧   我有个笨办法   在你的hql/sql   里加上换行  看成不   换行是这 /n
      

  7.   

    我写过一要 45000 个字符的 SQL 出报表,一样正常。要仔细检查拼接 SQL 时有没有漏掉换行符或给列名表名多加了双引号。
      

  8.   

    Invalid column name非法列名,应该是被截了。。
    我也这么认为的...但是把SQL放到单独的 java sourse里面执行是成功的...
    难不成这个Statement有缓冲没被清除导致的吗?
    前面执行了很多SQL.
    大致SQL如下:
    select AAAAAAAAAA,BBBBBBBB,....,to_char(date_CCCCC,'yyyy-mm-dd') AS date_CCCCC,
    to_char(date_CCCCC,'hh24:mi:ss') AS time_CCCCC,DDDDD ....
    from TBL_YYYYYY
    where
    XXXXX = '1234567899asfghhghjgh'
      

  9.   

    我只知道PreparedStatement可以 clearBatch()。你看看Statement有没有相应的clear方法?
    要是没有clear,你每执行st.executeUpdate一句,就st.close(),然后再从Connection中去get Statement。
    1560绝对不止。
      

  10.   

    不行,还是不能解决...不知道怎么解决,明天再看看吧....
    不行的话,只能用select  *来解决了.