【发布时间】:2020-12-02 22:13:09
【问题描述】:
我正在使用 Postgres 12 并编写了以下程序:
CREATE OR REPLACE PROCEDURE reduceStock(id INTEGER, soldQuantity INTEGER)
LANGUAGE plpgsql AS
$$
BEGIN
UPDATE inventory SET ProductStockAmount = ProductStockAmount - soldQuantity WHERE ProductID = id;
END;
$$;
如果我在命令行上打开 psql 并运行 call reduceStock(1,1);,它会完美运行
但是,从我的 Java 程序中调用它如下:
CallableStatement stmt = conn.prepareCall("{call reduceStock(?, ?)}");
stmt.setInt(1, productID);
stmt.setInt(2, quantity);
stmt.execute();
我的尝试
- 从 psql 客户端运行
call reduceStock(1,1);- 完美运行 - 删除数据库并重新开始查看是否缓存了某些旧定义 - 不起作用
- 不同的大小写,
call的间距
任何想法将不胜感激
【问题讨论】:
-
您使用的是最新版本的 JDBC 驱动程序吗?
标签: java postgresql jdbc psql procedure