Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从SAP获取数据时,MySQL服务器版本中出现SQL语法错误_Java_Mysql_Sap - Fatal编程技术网

Java 从SAP获取数据时,MySQL服务器版本中出现SQL语法错误

Java 从SAP获取数据时,MySQL服务器版本中出现SQL语法错误,java,mysql,sap,Java,Mysql,Sap,我从SAP获取数据,并根据该响应更新MYSQL DB表中的一个标志。但我的查询每次都给我一个错误。JAVA和SAP之间的连接正常。我可以将数据发送到SAP。它正在工作 tbl\u po\u data是我的MYSQL表 table.getName()用于获取我的SAP表名 标志是SAP表格标志字段 这是我的方法 private void tableOparator(Table table) throws Exception { pooler = DBPool_POSMS.ge

我从SAP获取数据,并根据该响应更新MYSQL DB表中的一个标志。但我的查询每次都给我一个错误。JAVA和SAP之间的连接正常。我可以将数据发送到SAP。它正在工作

  • tbl\u po\u data是我的MYSQL表
  • table.getName()用于获取我的SAP表名
  • 标志是SAP表格标志字段
这是我的方法

private void tableOparator(Table table) throws Exception {

        pooler = DBPool_POSMS.getInstance();
        dataSource = pooler.getDataSource();
        Connection con = dataSource.getConnection();
        con.setAutoCommit(false);

        qex = new DBTableQueryExcecutre(con);

        for (int i = 0; i < table.getNumRows(); i++) {
            table.setRow(i);

            String sbQuery2 = "update tbl_po_data set status = 'X' where reference_no " + " in (SELECT REFNO from '"
                    + table.getName() + "' where FLAG = 'X')";

            int rcount = qex.runQuery(sbQuery2);
                System.out.println("tbl_po_data Rows -->" + rcount + "Status Updated");
                con.commit();

        }

        qex.closeConnections();

    }

您正在尝试从字符串值中进行选择
'ZSLPOSMSTBL'
而不是您的表名
ZSLPOSMSTBL

删除SQL语句中的引号,它应该可以工作

"update tbl_po_data set status = 'X' where reference_no " + " in (SELECT REFNO from "
                + table.getName() + " where FLAG = 'X');"

您正在尝试从字符串值中进行选择
'ZSLPOSMSTBL'
而不是您的表名
ZSLPOSMSTBL

删除SQL语句中的引号,它应该可以工作

"update tbl_po_data set status = 'X' where reference_no " + " in (SELECT REFNO from "
                + table.getName() + " where FLAG = 'X');"

您是否希望我们使用我们的读心术来找出您收到的错误消息,或者您将与我们共享它?您的表名将被放在单引号中。删除引号。使用以下命令:
(从“+table.getName()+”中选择REFNO,其中FLAG='X');
现在我收到一个名为“com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException”的错误:表'po_sms.ZSLPOSMSTBL'不存在“您是否希望我们使用我们的读心技能来找出您收到的错误消息,或者您打算与我们共享它?您的表名被放在单引号中。删除引号。使用以下命令:
(从“+table.getName()+”中选择REFNO,其中FLAG='X');
现在我收到一个名为“com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:表'po_sms.ZSLPOSMSTBL'不存在”的错误com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:Table'po_sms.ZSLPOSMSTBL'不存在“因此,您的
Table.getName()
返回一个不存在的表名现在我收到一个名为“com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:Table'po_sms.ZSLPOSMSTBL'不存在”的错误,因此,
Table.getName()
返回不存在的表名