gpt4 book ai didi

java - 如何在没有 SELECT 的情况下调用 postgres 中的函数?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:21:56 24 4
gpt4 key购买 nike

我为我的 postgresql 创建了以下函数:

CREATE FUNCTION myfunc(param INT) RETURNS VOID AS..

如何在没有 SELECT 的情况下调用该函数?当我运行 SELECT myfunc(1) 时它会工作,即使它没有按设计返回任何内容。

但我想在没有选择的情况下运行它,只是 myfunc(1),它不起作用并告诉我 Syntax error at 1

我正在尝试从 Insert, on duplicate update in PostgreSQL? 实现 db_merge 函数.

我无法从 java 中运行 SELECT db_merge(..),因为这会给我一个 “A result was returned when none was expected."), PSQLState.TOO_MANY_RESULTS)错误。

最佳答案

你不能那样做(如果不在 PostgreSQL 中发出 SELECT 语句,你就不能调用存储函数)。此外,PostgreSQL does not support CALL 语句。

更多关于 calling functions在 PostgreSQL 中。

注意:在 PL/pgSQL 上下文中,您必须使用 PERFORM (而不是 SELECT)如果你调用的函数有 RETURNS void

编辑:

如果是 JDBC,请不要使用executeUpdate(),只需像使用任何其他 SELECT 语句一样使用 execute()

如果是 Spring 的 JdbcTemplate:execute(String)专为 DDL 语句而设计;使用其中一个并简单地丢弃结果:

  • 查询(字符串,ResultSetExtractor)
  • 查询(字符串,RowCallbackHandler)
  • query(String, RowMapper)

关于java - 如何在没有 SELECT 的情况下调用 postgres 中的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27862719/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com