【发布时间】:2015-06-02 23:10:27
【问题描述】:
我正在尝试通过 postgresql update() 方法执行函数,但它给我抛出了一个异常 - “预期没有结果时返回了结果”。
PostgreSQL 函数:
CREATE OR REPLACE FUNCTION create_order(note VARCHAR, created_by BIGINT, service_request BIGINT)
RETURNS TABLE (service_order integer, note varchar)
BEGIN
INSERT INTO service_order
(note, service_request_fk, created_by, so_status_type_fk, price_total, created)
VALUES (note, service_request, created_by, 1, 0, now());
END;
$$ LANGUAGE plpgsql;
我正在尝试执行的 SQL:
String sql = "SELECT create_order(?,?,?)";
更新函数:
int id = jdbc.update(sql, new Object[] {order.getNote(), emp.getEmployeeId(), order.getServiceRequestId()});
该函数必须返回没有任何意义的 VOID,但在我看来,它返回没有行的表,JDBCTemplate 将其视为表。
如何避免这个异常?
【问题讨论】:
-
9.6 中没有 CALL,所以它不起作用。 postgresql.org/docs/9.6/static/sql-commands.html
标签: java spring postgresql