【发布时间】:2015-10-05 20:03:45
【问题描述】:
这是我尝试将用户详细信息插入表格时的错误堆栈
Caused by: org.postgresql.util.PSQLException: ERROR: syntax error at or near "RETURNING"
Position: 52
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2182)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1911)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:173)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:618)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:468)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:414)
at org.apache.commons.dbcp2.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:98)
at org.apache.commons.dbcp2.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:98)
at org.springframework.jdbc.core.JdbcTemplate$3.doInPreparedStatement(JdbcTemplate.java:903)
at org.springframework.jdbc.core.JdbcTemplate$3.doInPreparedStatement(JdbcTemplate.java:900)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:629)
我正在使用存储过程来进行我所有的数据库交互
CREATE OR REPLACE FUNCTION ezhire."insert_user"
(
in_name character varying,
in_email character varying,
in_image_url character varying,
in_provider character varying
)
RETURNS integer AS $$
DECLARE
out_inserted_id integer;
BEGIN
WITH rows as (
INSERT INTO ezhire.user(name, email, image_url, provider)
VALUES(in_name, in_email, in_image_url, in_provider)
RETURNING id
)
SELECT id INTO out_inserted_id FROM rows;
RETURN out_inserted_id;
END;
$$ LANGUAGE plpgsql
我无法弄清楚出了什么问题..
【问题讨论】:
标签: spring postgresql stored-procedures jdbctemplate