我想问的第一个问题是:
 insert into table SELECT * from table1 where .... order by 9,5,6,4,2 我将select生成的数据插入到table表中时,并没有得到order by的顺序,
   SELECT * from table1 where .... order by 9,5,6,4,2
 
 这是为什么?
 (这么做的原因是在于order by 执行速度太慢,把这个临时表数据放到table中提高查询速度)第二问题是:
  服务器会不会在一个数据库连接未响应的某段时间,开启一个新的连接呢?
  
  我在执行数据导出到excel的时候,插入excel表的过程中会报连接池溢出问题。
  如果这样,我该怎么设置呢?多谢。

解决方案 »

  1.   

    order by 9,5,6,4,2  你的列名叫9 5 6 4 2么?
      

  2.   

    我在执行数据导出到excel的时候,插入excel表的过程中会报连接池溢出问题。数据导出一个连接就够了,服务器不会再给你开一个的。
      

  3.   

    多谢5楼,如果是这样的话,那可能和我的配置文件有关系<parameter>
      <name>removeAbandonedTimeout</name>
      <value>60</value>
    </parameter>当数据插入到excel的过程中,写入到内存,最后提交。
    可能在这个过程中,服务器收回了这个连接线程。
    我再测试下吧。待续。
      

  4.   

    order by 9,5,6,4,2
    ---
    还有这个列名耶……
      

  5.   

    order by 9,5,6,4,2 等于没有order by这句语法等价于对每行记录的5个字段进行升序排序,这5个字段都是常量,因此每行都不需要调整位置。lz是不是想按照ID(或者其他字段)的9,5,6,4,2的顺序排序,也就是倒序?order by id desc
      

  6.   

    order by 9,5,6,4,2 
    这个是相当于对第9,5,6,4,2列进行排序,是没有问题的。
    我个人认为数据库插入的时候是以与oracle写入数据方式有关系