例如
异常源语句:ResultSet set = smt.executeQuery("select *  from  存在的表名 group by 不存在的字段");
会引发异常:java.sql.SQLException: 不能将已选定 '*' 的字段中组合。异常源语句:ResultSet set = smt.executeQuery("select *  from  存在的表名 order by ");
会引发异常:java.sql.SQLException:  ORDER BY 子句语法错误异常源语句:ResultSet set = smt.executeQuery("select   from  存在的表名");
会引发异常:java.sql.SQLException: SELECT 子句中包含一个保留字、拼写错误或丢失的参数,或标点符号不正确。异常源语句:ResultSet set = smt.executeQuery("* from  存在的表名");
会引发异常:java.sql.SQLException: 无效的 SQL语句;期待 'DELETE'、'INSERT'、'PROCEDURE'、'SELECT'、或 'UPDATE'。我现在就想知道 smt.executeQuery引发的所有异常列表,或者怎么得到这些异常结果就是一个列表:
不能将已选定 '*' 的字段中组合。
ORDER BY 子句语法错误
SELECT 子句中包含一个保留字、拼写错误或丢失的参数,或标点符号不正确。
...异常SQLsql.SQLException

解决方案 »

  1.   

    SQLException抛出的话只会针对一个问题。数据库解析SQL语句的原理应该是见到语法错误,就直接抛出那个错误的异常,而不会去继续解析剩下的语句。
    所以如果我没理解错的话,你是想要一个语句中所有包含的错误,那在executQuery这个函数上是做不到的。我对JDBC这一块不熟,不知道是否有其他方法能解决你的问题,等内行
      

  2.   

    不是只局限在JDBC啊,如果你能将一个语句会引发的一类型异常全部弄出来也可以啊。我觉得这个问题是通用的啊
      

  3.   

    我现在就是在写一个SQL解析器,但是有哪些错误我不可能全知道啊,如果手工去一个一个的测试的话也太慢了吧
      

  4.   

    请问哪些地方可以搜到,我现在需要得到的是access或者excel的SQLException,或者就是java里的SQLException。我用它来做一个软件仿真用的
      

  5.   

    sqlException.getErrorCode();这个是具体的错误码。
    不同的数据库有不同的错误码。自己判断一下就可以了。
      

  6.   

    1、首先数据库不同,还是蛮有差异的。
    2、我给你个建议:
    a、可以先判断数据库是否存在,一般都是存在的。
    b、通过封装一个黑盒函数,该函数就是读取该数据库的所有schema,并且按照key-value的方式缓存起来,key就是表名称,value可以是该表对应的字段json;然后增加一些简单的sql分词算法,例如:select时候,应该取from后面单词作为表名称等等,然后根据你的算法输出相应的结果。关键就是分词算法问题。个人愚见,仅供参考!
      

  7.   

    access2010的错误码在这里:http://www.fmsinc.com/microsoftaccess/errors/ErrorNumber_Description2010.html这么多错误码,你处理的过来么?
      

  8.   

    1、判断数据库存不存在,直接测试连接成不成功就可以吧
    2、读取该数据库的所有schema怎么实现??
    3、分词我想简单地用正则就可以了
      

  9.   

    schema,前提要获取该库的所有表名称,然后自然就可以获取!
    DatabaseMetaData dbmd = connection.getMetaData();
    esultSet resultSet = dbmd.getSchemas();ResultSetMetaData rsmd = rs.getMetaData();
    自己再查查就知道怎么用了!
      

  10.   

    太多了吧,不过你的回答最靠谱,问一下你怎么知道这个地方有的?如果要excel的错误呢,怎么找?
      

  11.   

    没办法的,
    其实此jdbc真的是问题多多。
    比如,你要打印stmt,set赋值后的,执行的sql语句。就是一个大问题。
      

  12.   

    太多了吧,不过你的回答最靠谱,问一下你怎么知道这个地方有的?如果要excel的错误呢,怎么找?谷歌搜索一下就行了吧