当前位置: 首页 > 知识库问答 >
问题:

在使用postgres java驱动程序执行查询时,在输入末尾获取语法错误

牛嘉谊
2023-03-14

以下查询在通过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

这里是错误

    Exception in thread "main" org.postgresql.util.PSQLException: ERROR: syntax error at end of input
  Position: 495
    at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2103)
    at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1836)
    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:512)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:388)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:381)
    at com.cnetchannel.ics.loader.IntermediateDatafeedGenerator.main(RRToIntermediateLoader.java:798)
Disconnected from the target VM, address: '127.0.0.1:51077', transport: 'socket'

共有1个答案

冷翼
2023-03-14

请尝试使用以美元为引号的符号。

不要使用pr.site_id='150'来尝试使用类似的方法

pr.site_id = $$150$$

很可能您的JDBC驱动程序在区分两个不同的引号'(')和'(`)时遇到了问题

 类似资料:
  • 问题内容: 执行查询后,PostgreSQL JDBC驱动程序 版本9.2-1002什么时候从服务器获取行?它是在查询执行后立即(在客户端应用程序调用之后)还是在客户端应用程序第一次调用以从结果集中检索行之后获取行?这是否取决于语句访存大小的值? 问题答案: 如以下程序所示,始终从服务器检索结果集中的行。该程序还演示了语句获取大小如何影响行检索。如果该语句的默认访存大小为零,则从服务器检索所有行,

  • 我使用python脚本,它传递给卡桑德拉批处理查询,如下所示: 这是一段时间的工作,但在启动脚本失败并打印后约2分钟内: 我将超时从 更改为: read_request_timeout_in_ms:15000 range_request_timeout_in_ms:20000 write_request_timeout_in_ms:20000 cas_contention_timeout_in_m

  • 我试图在MongoDB\驱动程序\查询中使用选项: 如果$选项似乎可以: --------$options: 数组([排序]= $query没有给我好的选项: 限制和批量大小不等于20,为什么?请问怎么办? 提前感谢

  • 问题内容: 我有一个带有库的IntelliJ项目:Hibernate-entitymanager 4.3.4和JPA 2.0-2.0。使用postgresql-9.3.1100.jdbc4连接到数据库。如何解决? jpa-ql>从ItemEntity中选择ItemEntity.name; 问题答案: 只需阅读文档: http://docs.oracle.com/javaee/7/api/javax

  • 问题内容: 我想在几种不同条件下在linux shell中执行某些操作,并能够输出每次执行的执行时间。 我知道我可以编写一个可以执行此操作的perl或python脚本,但是有什么方法可以在shell中执行它吗?(碰巧是bash) 问题答案: 使用内置关键字: 例:

  • 通过使用MongoDB和Java驱动程序,我有一个用户集合,我想根据他们的ObjectId进行查询(总体情况:我从ObjectId推断出对象的创建时间戳)。 问题是,用ObjectId查询似乎不起作用:我总是没有结果。为了测试的目的,我在搜索查询中硬编码了数据库中现有用户的ObjectId,只是为了确保我能得到结果: {“_id”:ObjectId(“565ef85ee4b0a4db3c2fc96