执行INSERT的时候 会出现SQL列索引无效
但是这个问题一定很常见
我把SQL拿到plsql中执行没有问题
把sql参数写成固定值 还是是列索引无效
由此可见不是SQL本身问题
各位有没有对这个异常 有一定深度的理解
能指出问题的根源在哪??

解决方案 »

  1.   

    可能索引是不是被破坏了,导致oracle索引无效了。
    重新建立索引,试一下了。
      

  2.   

    回1楼 SQL直接放在plsql中是没有问题的
     这应该能保障DB的结构没有问题 
    回2楼 重复数据也是不可能的  因为不是这个错而且  update的时候也是同样问题  放到plsql中直接执行就没问题
    异常如下
    Exception in thread "main" org.seasar.framework.exception.SQLRuntimeException: [ESSR0072]SQLで例外(SQL=[], Message=[列索引が無効です。], ErrorCode=17003, SQLState=null)が発生しました
    at org.seasar.extension.jdbc.impl.BasicSelectHandler.execute(BasicSelectHandler.java:212)
    at org.seasar.extension.jdbc.impl.BasicSelectHandler.execute(BasicSelectHandler.java:184)
    at jp.co.tradewin.comet.framework.dao.oracle.CometSelectDynamicCommand.execute(CometSelectDynamicCommand.java:66)
    at org.seasar.dao.interceptors.S2DaoInterceptor.invoke(S2DaoInterceptor.java:53)
    at org.seasar.dao.pager.PagerS2DaoInterceptorWrapper.invoke(PagerS2DaoInterceptorWrapper.java:71)
    at jp.co.tradewin.comet.dao.VSbiDummyDao$$EnhancedByS2AOP$$15ad5c6$$MethodInvocation$$foreignStockOrderIkoInsert3.proceed(MethodInvocationClassGenerator.java)
    at jp.co.tradewin.comet.dao.VSbiDummyDao$$EnhancedByS2AOP$$15ad5c6.foreignStockOrderIkoInsert(VSbiDummyDao$$EnhancedByS2AOP$$15ad5c6.java)
    at jp.co.tradewin.comet.helper.impl.ForeignStockOrderIkoFetchHelperImpl.insert(ForeignStockOrderIkoFetchHelperImpl.java:58)
    at jp.co.tradewin.comet.helper.impl.ForeignStockOrderIkoFetchHelperImpl.execute(ForeignStockOrderIkoFetchHelperImpl.java:43)
    at jp.co.tradewin.comet.helper.impl.ForeignStockOrderIkoFetchHelperImpl$$EnhancedByS2AOP$$179dce4.$$execute$$invokeSuperMethod$$(ForeignStockOrderIkoFetchHelperImpl$$EnhancedByS2AOP$$179dce4.java)
    at jp.co.tradewin.comet.helper.impl.ForeignStockOrderIkoFetchHelperImpl$$EnhancedByS2AOP$$179dce4$$MethodInvocation$$execute0.proceed(MethodInvocationClassGenerator.java)
    at org.seasar.extension.tx.DefaultTransactionCallback.execute(DefaultTransactionCallback.java:58)
    at org.seasar.extension.tx.adapter.JTATransactionManagerAdapter.requiresNew(JTATransactionManagerAdapter.java:79)
    at org.seasar.extension.tx.RequiresNewInterceptor.invoke(RequiresNewInterceptor.java:49)
    at jp.co.tradewin.comet.helper.impl.ForeignStockOrderIkoFetchHelperImpl$$EnhancedByS2AOP$$179dce4$$MethodInvocation$$execute0.proceed(MethodInvocationClassGenerator.java)
    at jp.co.tradewin.comet.helper.impl.ForeignStockOrderIkoFetchHelperImpl$$EnhancedByS2AOP$$179dce4.execute(ForeignStockOrderIkoFetchHelperImpl$$EnhancedByS2AOP$$179dce4.java)
    at jp.co.tradewin.comet.helper.impl.ForeignStockOrderIkoFetchHelperImpl.execute(ForeignStockOrderIkoFetchHelperImpl.java:1)
    at org.seasar.dao.tiger.impl.FetchDtoMetaDataResultSetHandler.handle(FetchDtoMetaDataResultSetHandler.java:65)
    at org.seasar.dao.tiger.impl.FetchResultSetHandler.handle(FetchResultSetHandler.java:63)
    at org.seasar.extension.jdbc.impl.BasicSelectHandler.execute(BasicSelectHandler.java:258)
    at org.seasar.extension.jdbc.impl.BasicSelectHandler.execute(BasicSelectHandler.java:210)
    at org.seasar.extension.jdbc.impl.BasicSelectHandler.execute(BasicSelectHandler.java:184)
    at jp.co.tradewin.comet.framework.dao.oracle.CometSelectDynamicCommand.execute(CometSelectDynamicCommand.java:66)
    at org.seasar.dao.interceptors.S2DaoInterceptor.invoke(S2DaoInterceptor.java:53)
    at org.seasar.dao.pager.PagerS2DaoInterceptorWrapper.invoke(PagerS2DaoInterceptorWrapper.java:71)
    at jp.co.tradewin.comet.dao.VSbiDummyDao$$EnhancedByS2AOP$$15ad5c6$$MethodInvocation$$foreignStockOrderIkoSelect0.proceed(MethodInvocationClassGenerator.java)
    at jp.co.tradewin.comet.dao.VSbiDummyDao$$EnhancedByS2AOP$$15ad5c6.foreignStockOrderIkoSelect(VSbiDummyDao$$EnhancedByS2AOP$$15ad5c6.java)
    at jp.co.tradewin.comet.service.impl.ForeignStockOrderIkoServiceImpl.execute(ForeignStockOrderIkoServiceImpl.java:32)
    at jp.co.tradewin.comet.service.impl.ForeignStockOrderIkoServiceImpl$$EnhancedByS2AOP$$1bf3d87.$$execute$$invokeSuperMethod$$(ForeignStockOrderIkoServiceImpl$$EnhancedByS2AOP$$1bf3d87.java)
    at jp.co.tradewin.comet.service.impl.ForeignStockOrderIkoServiceImpl$$EnhancedByS2AOP$$1bf3d87$$MethodInvocation$$execute0.proceed(MethodInvocationClassGenerator.java)
    at org.seasar.extension.tx.DefaultTransactionCallback.execute(DefaultTransactionCallback.java:58)
    at org.seasar.extension.tx.adapter.JTATransactionManagerAdapter.required(JTATransactionManagerAdapter.java:65)
    at org.seasar.extension.tx.RequiredInterceptor.invoke(RequiredInterceptor.java:50)
    at jp.co.tradewin.comet.service.impl.ForeignStockOrderIkoServiceImpl$$EnhancedByS2AOP$$1bf3d87$$MethodInvocation$$execute0.proceed(MethodInvocationClassGenerator.java)
    at jp.co.tradewin.comet.service.impl.ForeignStockOrderIkoServiceImpl$$EnhancedByS2AOP$$1bf3d87.execute(ForeignStockOrderIkoServiceImpl$$EnhancedByS2AOP$$1bf3d87.java)
    at jp.co.tradewin.comet.main.ForeignStockOrderIkoMain.main(ForeignStockOrderIkoMain.java:38)
    Caused by: java.sql.SQLException: 列索引が無効です。
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208)
    at oracle.jdbc.driver.OracleResultSetImpl.getObject(OracleResultSetImpl.java:897)
    at org.seasar.extension.jdbc.types.IntegerType.getValue(IntegerType.java:44)
    at org.seasar.dao.impl.ObjectResultSetHandler.handle(ObjectResultSetHandler.java:46)
    at org.seasar.extension.jdbc.impl.BasicSelectHandler.execute(BasicSelectHandler.java:258)
    at org.seasar.extension.jdbc.impl.BasicSelectHandler.execute(BasicSelectHandler.java:210)
    ... 35 more
      

  3.   

    -- 请参考:http://zhidao.baidu.com/question/245715604.html
      

  4.   

    个人觉得要莫是jar包问题 要莫就是DML走到DQL的基类里面
    但都是浮云 证明不了
    诶。