java.sql.SQLSyntaxErrorException:语法错误:遇到“(”行

时间:2012-10-24 01:38:51

标签: java sql prepared-statement sqlexception

我正在执行以下操作:

private void createTable() {
    try {       
        PreparedStatement psCreateTable = con.prepareStatement("CREATE TABLE     COMPANIES(" +
                "name VARCHAR(50), " +
                "location VARCHAR(50), " +
                "address VARCHAR(50), " +
                "website VARCHAR(50), " +
                "pit VARCHAR(50), " +
                "asset_class VARCHAR(50), " +
                "telephone INTEGER, " +
                "shares INTEGER, " +
                "value DOUBLE(,2) UNSIGNED)");
        psCreateTable.execute();
    } catch (SQLException e) {
        System.out.println("already exists");
        e.printStackTrace();
        ; //bestaat al
    }
}

我收到以下错误:     java.sql.SQLSyntaxErrorException:语法错误:遇到“(”第1行第195行。

不确定现在该做什么,因为SQL查询似乎对我有效并重新检查它。

3 个答案:

答案 0 :(得分:1)

删除双数据类型中的(,2)

CREATE Table Companies
(
    ....,
    value DOUBLE UNSIGNED
)

See Demonstration

答案 1 :(得分:0)

您的SQL查询有错误:"value DOUBLE(,2) UNSIGNED)");

将PreparedStatement更改为以下内容:

PreparedStatement psCreateTable = con.prepareStatement("CREATE TABLE COMPANIES(" +
                "name VARCHAR(50), " +
                "location VARCHAR(50), " +
                "address VARCHAR(50), " +
                "website VARCHAR(50), " +
                "pit VARCHAR(50), " +
                "asset_class VARCHAR(50), " +
                "telephone INTEGER, " +
                "shares INTEGER, " +
                "value DOUBLE UNSIGNED)");

答案 2 :(得分:0)

DOUBLE(,2)

这是错误的。

您可以尝试

DOUBLE(5,2)