简体   繁体   English

DB2错误SQLCODE = -103,SQLSTATE = 42604

[英]DB2 Error SQLCODE=-103, SQLSTATE=42604

I am trying to update a table, but it isn't working and giving this sql error. 我正在尝试更新表,但是它不起作用并给出此sql错误。

//Updating Buy Table
Integer stkbid = Integer.parseInt(request.getParameter("stockBid"));
System.out.println("stock buy id : " + stkbid);
//get buy details
PreparedStatement stmtbuy = conn.prepareStatement(
        "SELECT \"StockSymbol\", \"Unit\", \"Price\", \"ClearingFee\", \"StampDuty\", \"BrokerFee\""  + 
        "FROM SPM.\"StockBuy\" WHERE \"StockBuyId\" = '"+ stkbid + "'");

System.out.println("Got stock buy details");

ResultSet rs=stmtbuy.executeQuery();
rs.next();
//String stkcode = rs.getString("StockSymbol");
Integer stkunit =  Integer.parseInt(rs.getString("Unit"));
stkunit -= stock.getStockUnit();
Double stkprice = Double.parseDouble(rs.getString("Price"));
Double stkclear = Double.parseDouble(rs.getString("ClearingFee"));
Double stksd = Double.parseDouble(rs.getString("StampDuty"));
Double stkbfee = Double.parseDouble(rs.getString("BrokerFee"));
Double stkval = stkunit * stkprice;
Double stknv = stkval + stkval * (stkclear + stksd + stkbfee);

System.out.println(stknv);

PreparedStatement stmtbuy1 = conn.prepareStatement(
        "UPDATE SPM.\"StockBuy\" SET \"Unit\" = " + stkunit + ", \"Value\" = " + stkval + ", \"NetValue\" = " + stknv + 
        "WHERE \"StockBuyId\" = "+ stkbid);

You are missing a space in before the WHERE clause, which messed up your stknv . 您在WHERE子句之前缺少空格,这弄乱了您的stknv

" WHERE \"StockBuyId\" = "+ stkbid);

I think it's an obligation of any poster to remind you that you should use parametrized query. 我认为任何发布者都有义务提醒您,您应该使用参数化查询。 So I shall do the same. 所以我会照做。

" Please use parametrized query! " 请使用参数化查询!

The query that is works has a quote at the end: 有效的查询在末尾加引号:

" WHERE \"StockBuyId\" = '"+ stkbid + "'");

The one that fails does not 失败的不

    "WHERE \"StockBuyId\" = "+ stkbid);

That might have something to do with it. 那可能与它有关。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 DB2 jdbc SQL 错误:SQLCODE=-302,SQLSTATE=22001 on Select - DB2 jdbc SQL Error: SQLCODE=-302, SQLSTATE=22001 on Select DB2 SQL错误:SQLCODE = -204,SQLSTATE = 42704 - DB2 SQL Error: SQLCODE=-204, SQLSTATE=42704 Db2 .SqlIntegrityConstraintViolationException:SQLCODE = -803,SQLSTATE = 23505 - Db2 .SqlIntegrityConstraintViolationException: SQLCODE=-803, SQLSTATE=23505 com.ibm.db2.jcc.am.io:DB2 SQL错误:SQLCODE = -440,SQLSTATE = 42884 - com.ibm.db2.jcc.am.io: DB2 SQL Error: SQLCODE=-440, SQLSTATE=42884 插入并选择Select Give sql-error(SQLCODE = -803,SQLSTATE = 23505)(db2 z / os) - Insert with Select give sql-error (SQLCODE=-803, SQLSTATE=23505)(db2 z/os) 准备好的语句失败,并出现DB2 SQL错误:SQLCODE:-401,SQLSTATE:42818 - Prepared Statement failing with DB2 SQL error: SQLCODE: -401, SQLSTATE: 42818 DB2 SQL错误:SQLCODE = -117,SQLSTATE = 42802,SQLERRMC = null,DRIVER = 3.68.61 - DB2 SQL Error: SQLCODE=-117, SQLSTATE=42802, SQLERRMC=null, DRIVER=3.68.61 SQL查询的准备好的语句,错误DB2 SQL错误:SQLCODE = -206,SQLSTATE = 42703 - Prepared statement for SQL query, error DB2 SQL Error: SQLCODE=-206, SQLSTATE=42703 在具有DB2并行进程的Java中:我出现了死锁异常:DB2 SQL错误:SQLCODE = -911,SQLSTATE = 40001,SQLERRMC = 2,DRIVER = 3.59.81 - In java with DB2 parallel process: I got Deadlock Exception :DB2 SQL Error: SQLCODE=-911, SQLSTATE=40001, SQLERRMC=2, DRIVER=3.59.81 DB2 java存储过程调用返回错误SQLCODE = -440,SQLSTATE = 42884 - DB2 java Stored Procedure call return error SQLCODE=-440, SQLSTATE=42884
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM