【问题标题】:Exeception = unexpected token: * near line 1,异常 = 意外令牌:* 在第 1 行附近,
【发布时间】:2016-12-21 19:37:25
【问题描述】:

我有下面列出的例外情况,感谢任何帮助。

Exeception = unexpected token:* near line 1, COLUMN 603 [
SELECT
  a.putwall_id,
  a.work_control_number,
  a.lpn,
  a.putwall_cube_id,
  a.date_created,
  a.last_activity_date,
  b.location,
  b.work_zone,
  b.product,
  b.quantity_required,
  b.quantity_processed,
  (b.quantity_required - b.quantity_processed) AS quantity_cut
FROM
  work_type_headers a, work_type_lines b
WHERE
  UPPER(a.TENANT_ID) = ?
  AND UPPER(a.COMPANY_ID) = ?
  AND UPPER(a.FULFILLMENT_CENTER_ID) = ?
  AND a.work_type = 'PICK'
  AND a.status <> 'COMPLETED'
  AND a.work_control_number = b.work_control_number
  AND b.quantity_required <> b.quantity_processed
  AND b.status = 'ASSIGNED'
  AND a.lpn <> ' '
  AND NOT exists(SELECT 
                   *
                 FROM
                   work_type_lines c
                 WHERE
                   c.work_type = 'BATCHPUTWALL'
                   AND c.status <> 'COMPLETED'
                   AND b.product = c.product)
  AND NOT exists(SELECT 
                   *
                 FROM 
                   work_histories d
                 WHERE 
                   d.work_control_number = a.work_control_number
                   AND d.work_history_code = 'COMPLETED'
                   AND d.task = 'PUTWALLPUTPULL')
ORDER BY
  a.last_activity_date]

我在 Oracle SQL Developer 中运行 SQL 也不例外。

SELECT
  a.putwall_id,
  a.work_control_number,
  a.lpn,
  a.putwall_cube_id,
  a.date_created,
  a.last_activity_date,
  b.location,
  b.work_zone,
  b.product,
  b.quantity_required,
  b.quantity_processed,
  (b.quantity_required - b.quantity_processed) AS quantity_cut
FROM
  work_type_headers a, work_type_lines b
WHERE
  UPPER(a.TENANT_ID) = 'XC3'
  AND UPPER(a.COMPANY_ID) = 'COMPANYABCD'
  AND UPPER(a.FULFILLMENT_CENTER_ID) = 'DC1'
  AND a.work_type = 'PICK'
  AND a.status <> 'COMPLETED'
  AND a.work_control_number = b.work_control_number
  AND b.quantity_required <> b.quantity_processed
  AND b.status = 'ASSIGNED'
  AND a.lpn <> ''
  AND NOT exists(SELECT 
                   *
                 FROM
                   work_type_lines c
                 WHERE
                   c.work_type = 'BATCHPUTWALL'
                   AND c.status <> 'COMPLETED'
                   AND b.product = c.product)
  AND NOT exists(SELECT 
                   *
                 FROM 
                   work_histories d
                 WHERE 
                   d.work_control_number = a.work_control_number
                   AND d.work_history_code = 'COMPLETED'
                   AND d.task = 'PUTWALLPUTPULL')
ORDER BY
  a.last_activity_date;

【问题讨论】:

  • 好的,你告诉我们你在哪里没有异常......但你忘了告诉我们你在哪里有异常。请赐教。

标签: java sql oracle jdbc


【解决方案1】:

我已经找出了异常的根本原因。 通过更改下面列出的查询,查询运行没有任何异常。 当您的 SQL 中有 select 语句时,您应该使用 createSQLQuery 而不是 createQuery

Query query = sessionFactory.getCurrentSession()
                            .createQuery(GLOBALCONSTANT.PutWall_GetPendingProduct);

Query query = sessionFactory.getCurrentSession()
                            .createSQLQuery(GLOBALCONSTANT.PutWall_GetPendingProduct);

现在是最终代码:

Query query = sessionFactory.getCurrentSession()
                            .createQuery(GLOBALCONSTANT.PutWall_GetPendingProduct);
query.setParameter(0, COMMONUTIL.setDbDefaultString(tenant_id.trim()));
query.setParameter(1, COMMONUTIL.setDbDefaultString(company_id.trim()));
query.setParameter(2, COMMONUTIL.setDbDefaultString(fulfillment_center_id.trim()));
pendingProductBeanObjList = query.list();

【讨论】:

    猜你喜欢
    • 2015-07-12
    • 2016-02-21
    • 1970-01-01
    • 2014-08-20
    • 2013-02-22
    • 1970-01-01
    • 1970-01-01
    • 2015-11-14
    • 1970-01-01
    相关资源
    最近更新 更多