使用Apache Derby创建表时出现SQLSyntaxErrorException

时间:2012-01-11 22:37:02

标签: sql derby create-table

我的项目中有以下代码行使用Apache Derby:

 stmt.executeUpdate("CREATE table "+productName+" (Time FLOAT NOT NULL PRIMARY KEY, AcidNo FLOAT, Viscosity FLOAT, Temperature FLOAT)");

当变量productName以字母开头(即“RedProduct”)时,一切正常。当productName以数字开头(即“6Green”)时,表创建的,但是我收到以下错误:

java.sql.SQLSyntaxErrorException: Syntax error: Encountered "6" at line 1, column 15.
    at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source)
    at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
    at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown Source)
    at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source)
    at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source)
    at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source)
    at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
    at org.apache.derby.impl.jdbc.EmbedStatement.executeQuery(Unknown Source)

任何想法?顺便说一下,将表名放在括号中没有用。谢谢!

1 个答案:

答案 0 :(得分:1)

您是否尝试在奇怪的名称周围加上双引号?

stmt.executeUpdate("CREATE table \"" + productName + 
    "\" (Time FLOAT NOT NULL PRIMARY KEY, AcidNo FLOAT, Viscosity FLOAT, Temperature FLOAT)");