簡體   English   中英

ORA-00911:使用PreparedStatement時出現無效字符錯誤

[英]ORA-00911: invalid character error using a PreparedStatement

我試圖使用Prepared Stmt在where子句中傳遞訂單號列表。 我收到錯誤為無效字符。 使用以下代碼

        List<String> ordernolist = Arrays.asList(orderno.split(","));


        String sql = "select * from ORDER_"+Market+".MARC_ORD_UN_STS_T s,ORDER_"+Market+".MARC_ORD_LN_T l, "
                + "ORDER_"+Market+".MARC_ORD_T o ,ORDER_"+Market+".ORD_RLS_REL_T ort,ORDER_"+Market+".RLS_T rt,ORDER_"+Market+".RLS_LN_T rn "
                + "where RT.RLS_KEY=RN.RLS_KEY and O.MARC_ORD_KEY=L.MARC_ORD_KEY and L.MARC_ORD_LN_KEY=S.MARC_ORD_LN_KEY and "
                + "O.ORD_NO=ORT.ORD_NBR and ORT.CRM_ORD_NBR=RT.CRM_ORD_NBR and "
                //+ "S.MARC_ORD_STS_CD='500' and "
                + "RN.LN_QTY>0 and RN.ORIG_ORD_LN_NBR=L.ORD_LN_NBR and s.sts_qty>0 "
                + "and O.ORD_NO in (";
        for( String id : ordernolist ){
                    sql += "?,";
                }
                sql = sql.substring( 0, sql.length()-1  ) + ");";
        //System.out.println(sql);


         PreparedStatement preparedStatement = OmsConn.prepareStatement(sql);

         for( int ono = 0; ono < ordernolist.size(); ono++ ){
             preparedStatement.setString(ono+1, ordernolist.get(ono));
            }

錯誤:java.sql.SQLException:ORA-00911:無效字符

有人可以幫助解決它

無效字符是sql末尾的半冒號。

改變這一行:

sql = sql.substring( 0, sql.length()-1  ) + ");";

sql = sql.substring( 0, sql.length()-1  ) + ")";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM