【问题标题】:java sql exception syntax error in from clausefrom子句中的java sql异常语法错误
【发布时间】:2014-03-20 08:58:46
【问题描述】:

我有一个访问数据库并尝试在 java 中使用它。我想选择它并写一个声明为

String sql="SELECT * from numeric;";
    try
    {
        rs=s.executeQuery(sql);
        while(rs.next())
        {
            System.out.println(rs.getString(1));
        }
    }

executeQuery 抛出异常

java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] 语法错误 FROM 子句。

我认为我写的select语句是正确的。即使我写成

从数字中选择网络服务;

还会给我一个错误,其中 Webservice 是我的列名。

【问题讨论】:

  • numeric 不是某种 SQL 数据类型吗?尝试将名称放在括号中,即使用[numeric]。您确定您已将您的表命名为numeric
  • @D.R.是的,我将表名保留为数字。但我会更改表名并尝试。谢谢。
  • @D.R.这正是你提到的事情。故障仅出在表名上。一旦我改变了它,执行就完成了,没有错误。谢谢你。我可以对评论进行投票,因为我无法将其标记为答案。请留下作为其他人的答案。
  • 我已将我的评论转换为答案。

标签: java sql ms-access jdbc-odbc


【解决方案1】:

您必须删除语句末尾的;

通常您使用; 分隔语句,但由于JDBC 规范不允许在单个语句字符串中执行多个语句,因此您不能使用分号。

【讨论】:

  • 其实我们可以用 ;因为我使用的是 ODBC 驱动程序。分号不会给我任何错误。我更改了表名,现在工作正常。谢谢你的回答。
【解决方案2】:

您的表名为numeric,它也是一种 SQL 数据类型。 SQL 解析器认为它是一种数据类型并且您的查询失败。如果您保留了这样的关键字作为表名,则需要将表名放在括号中:

SELECT * FROM [numeric]

【讨论】:

    【解决方案3】:

    在 Access 数据库中,索引从一开始,而不是零。先确定webservice的索引,可能是两个,试试下面的语句

    System.out.println(rs.getString(2));
    

    【讨论】:

    • 如果您查看异常Syntax error in FROM clause.,问题可能不是getString 的调用,是吗?
    • 是的,即使 from 子句正确,有时也可能无法获取值。
    • 这不是错误。第一列是Webservice。表名只是一个错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-08
    • 1970-01-01
    • 2013-11-02
    • 2019-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多