代码之家  ›  专栏  ›  技术社区  ›  Ondra Žižka David Lilljegren

HSQLDB:列名重复,不支持的内部操作:类型,强制转换的字符无效

  •  0
  • Ondra Žižka David Lilljegren  · 技术社区  · 15 年前

    CREATE TEXT TABLE ozizkaindata (
      jobName VARCHAR(255) NOT NULL,
      buildNumber VARCHAR(255) NOT NULL,
      config VARCHAR(255) NOT NULL,
      ar VARCHAR(255) NOT NULL,
      arFile VARCHAR(255) NOT NULL,
      deployDur VARCHAR(255) NOT NULL,
      warmupDur VARCHAR(255) NOT NULL,
      scale VARCHAR(255) NOT NULL
    )
    
    SELECT *, ((0.0 + warmupDur) / deployDur) AS xwarmupSlower FROM ozizkaindata ORDER BY deployDur
    

    抛出:

    Caused by: org.hsqldb.HsqlException: duplicate column name in derived table
        at org.hsqldb.error.Error.error(Unknown Source)
        at org.hsqldb.error.Error.error(Unknown Source)
        at org.hsqldb.QuerySpecification.addSelectColumnExpression(Unknown Source)
        at org.hsqldb.ParserDQL.XreadSelect(Unknown Source)
        ...
    

    SELECT ((0.0 + warmupDur) / deployDur) FROM ozizkaindata ORDER BY deployDur
    

    抛出:

    Caused by: java.lang.RuntimeException: unsupported internal operation: Type
        at org.hsqldb.error.Error.runtimeError(Unknown Source)
        at org.hsqldb.types.Type.divide(Unknown Source)
        at org.hsqldb.ExpressionArithmetic.getValue(Unknown Source)
        at org.hsqldb.QuerySpecification.buildResult(Unknown Source)
        at org.hsqldb.QuerySpecification.getSingleResult(Unknown Source)
        at org.hsqldb.QuerySpecification.getResult(Unknown Source)
        at org.hsqldb.StatementQuery.getResult(Unknown Source)
    

    SELECT ((0.0 + CAST(warmupDur AS INT)) / CAST(deployDur AS INT)) AS xwarmupSlower FROM ozizkaindata
    

    抛出:

    Caused by: org.hsqldb.HsqlException: data exception: invalid character value for cast
        at org.hsqldb.error.Error.error(Unknown Source)
        at org.hsqldb.error.Error.error(Unknown Source)
        at org.hsqldb.Scanner.convertToNumber(Unknown Source)
        at org.hsqldb.types.NumberType.convertToType(Unknown Source)
        at org.hsqldb.types.Type.castToType(Unknown Source)
        at org.hsqldb.ExpressionOp.getValue(Unknown Source)
        at org.hsqldb.ExpressionArithmetic.getValue(Unknown Source)
        at org.hsqldb.ExpressionArithmetic.getValue(Unknown Source)
        at org.hsqldb.QuerySpecification.buildResult(Unknown Source)
        at org.hsqldb.QuerySpecification.getSingleResult(Unknown Source)
        at org.hsqldb.QuerySpecification.getResult(Unknown Source)
    
    1 回复  |  直到 15 年前
        1
  •  0
  •   Ondra Žižka David Lilljegren    12 年前

    好吧,这很简单。 我忘了忽略我导入的文本数据的第一行和注释,所以这是无效的语法。