private void initJDBC ()
{
try{
class.forName("oracle.jdbc.driver.OracleDriver"

.newInstance();
String dwUrl = "jdbc

racle:thin:@skull:1521:HERO";
connDW = DriverManager.getConnection(dwUrl, "scott", "tiger"

;
// define SQL commands
String sqlInsert = "INSERT INTO Quarterly_Sales "
+ " (Region_ID, Store_ID, Year, "
+ " Quarter, Sales) "
+ " VALUES (?, ?, ?, ?, ?)";
String sqlUpdate = "UPDATE Quarterly_Sales "
+ " SET Sales = Sales + ? "
+ "WHERE Region_ID = ? "
+ " AND Store_ID = ? "
+ " AND Year = ?"
+ " AND Quarter = ?";
// prepare statements
psInsert = connDW.prepareStatement (sqlInsert);
psUpdate = connDW.prepareStatement (sqlUpdate);
} catch (Exception e)
{ System.out.println ("Error initializing JDBC connection"

;
e.printStackTrace();
}
}
private void addToUpdate (String region, String store, String year,String quarter, String amount)
{
try
{
// first try to update existing quarter
psUpdate.clearParameters();
psUpdate.setString (1, amount);
psUpdate.setString (2, region);
psUpdate.setString (3, store);
psUpdate.setString (4, year);
psUpdate.setString (5, quarter);
int n = psUpdate.executeUpdate();
System.out.println(n);
}catch (Exception e)
{ System.out.println ("Error Updating to database"

;
e.printStackTrace();
}
}
private void addToInsert (String region, String store, String year,String quarter, String amount)
{
// if no updates, add new quarter
try{
psInsert.clearParameters();
psInsert.setString (1, region);
psInsert.setString (2, store);
psInsert.setString (3, year);
psInsert.setString (4, quarter);
psInsert.setString (5, amount);
psInsert.executeUpdate();
nInsert++;
}catch (Exception e)
{ System.out.println ("Error writing to database"

;
e.printStackTrace();
}
}
public static void main(String[] args){
Edit3 test = new Edit3();
test.initJDBC();
test.addToInsert("02", "10", "2003" , "01", "10"

;
test.addToUpdate("02", "10", "2003" , "01", "30"

;
test.addToInsert("02", "10", "2003" , "02", "10"

;
test.closeJDBC();
}
~~~~~~~~~~~~~~~~~~~~~~
数据字典
region, store, year, quarter, salse
char char char char numeric(8,3)
照理说结果是
region, store, year, quarter, amount
__02 __10___2003___01___40
__02 __10___2003___02___10
可是
test.addToUpdate("02", "10", "2003" , "01", "30"
;却不成功。
现在错误的结果是
region, store, year, quarter, amount
__02__10___2003___01___10
__02__10___2003___02___10
请问是什么道理啊?问题是不是出在
update Quarterly_Sales SET sale= sale + ? (amount)上啊?