现在错误的结果是
   region, store, year, quarter, amount
     02      10   2003     01     10
     02      10   2003     02     10

解决方案 »

  1.   

    psUpdate.setString (1, amount);你改成
    psUpdate.setInt (1, amount);试试
      

  2.   

    我把所有的amount全变为int
    修改所有的
    psUdate.setInt(X ,amount)
    psInsert.setInt(X,amount)还是老样子  :(
      

  3.   

    把所有的amount全变为int
    修改所有的
    psUdate.setInt(X ,amount)
    psInsert.setInt(X,amount)再用我的sqlUpdate 代替你的试试
    String sqlUpdate = "UPDATE Quarterly_Sales "
      + " SET Sales = Sales + ? "
      + "WHERE trim(Region_ID) = ? "
                 +  " AND trim(Store_ID) = ? "
      +  " AND trim(Year) = ?"
      +  " AND trim(Quarter) = ?";
      

  4.   

    试过了,不行
    本来
    int n = psUpdate.executeUpdate();
    System.out.println(n);
    还会打印出执行代码,都是0(执行失败)。现在这么一改,什么消息都没有了。数据库里还是要样子。
      

  5.   

    还有个信息,这个是书上的例子。只不过书上使用的sybase的数据库。
    我用的oracle 9i还有书上建这个数据库是
    CREATE TABLE Quarterly_Sales
    (  Region_ID  char(4)       NOT NULL,
       Store_ID   char(4)       NOT NULL,
       Year       char(4)       NOT NULL,
       Quarter    char(2)       NOT NULL,
       Sales      numeric(8,2)  NULL,
       PRIMARY KEY (Region_ID, Store_ID, Year, Quarter)
    )
    go书上是根据Region_ID, Store_ID, Year, Quarter四个域相同则累计sales否则新增一条记录
    我由于update操作失败将数据库改为
    CREATE TABLE Quarterly_Sales
    (  Region_ID  char(4)       NOT NULL,
       Store_ID   char(4)       NOT NULL,
       Year       char(4)       NOT NULL,
       Quarter    char(2)       NOT NULL,
       Sales      numeric(8,2)  NULL
    )
      

  6.   

    to w_tsinghua():终于成功了~~~~谢谢你了不过还想问问你
    String sqlUpdate = "UPDATE Quarterly_Sales "
      + " SET Sales = Sales + ? "
      + "WHERE trim(Region_ID) = ? "
                 +  " AND trim(Store_ID) = ? "
      +  " AND trim(Year) = ?"
      +  " AND trim(Quarter) = ?";
    中trim起到什么作用?