2

Java ドライバーを介して実行中にエラーが発生している次のクエリがあり、DBVisualizer で実行中にエラーは発生しません

SELECT pr.id,
       pr.name,
       CDPC.category_id,
       CDPC.category_depth,
       CDPC.product_count,
       pr.primary_category_id
FROM ics_products_to_include_tmp inc
  INNER JOIN catalog.products pr ON inc.product_id = pr.id
  INNER JOIN catalog.products_in_categories pic ON pic.product_id = pr.id AND pic.active = true
  INNER JOIN catalog.categories CC ON CC.id = pic.category_id AND CC.active = true
  INNER JOIN category_depth_product_count_tmp CDPC 
      ON CDPC.category_id = CC.id 
     AND NOT EXISTS (SELECT *
                     FROM ics_products_cds_ids_tmp cds
                     WHERE cds.product_id = pr.id)
WHERE pr.site_id = '150'
ORDER BY pr.id

ここにエラーがあります

    スレッド「メイン」での例外 org.postgresql.util.PSQLException: エラー: 入力の最後に構文エラーがあります
  ポジション: 495
    org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse (QueryExecutorImpl.java:2103) で
    org.postgresql.core.v3.QueryExecutorImpl.processResults (QueryExecutorImpl.java:1836) で
    org.postgresql.core.v3.QueryExecutorImpl.execute (QueryExecutorImpl.java:257) で
    org.postgresql.jdbc2.AbstractJdbc2Statement.execute (AbstractJdbc2Statement.java:512) で
    org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags (AbstractJdbc2Statement.java:388) で
    org.postgresql.jdbc2.AbstractJdbc2Statement.execute (AbstractJdbc2Statement.java:381) で
    com.cnetchannel.ics.loader.IntermediateDatafeedGenerator.main (RRToIntermediateLoader.java:798) で
ターゲット VM から切断されました。アドレス: '127.0.0.1:51077'、トランスポート: 'socket'
4

1 に答える 1

3

ドル引用表記を使用してみてください。

pr.site_id = '150'次のようなもので試してみる代わりに

pr.site_id = $$150$$

ほとんどの場合、JDBC ドライバーは ' (') と ` (`) の 2 つの異なる引用符を区別するのに問題があります。

于 2013-06-19T07:53:46.930 に答える