调用Postgres存储函数SQL错误

时间:2014-11-24 15:20:57

标签: java postgresql jdbc jdb

我正在调用存储函数,如下所示:

PreparedStatement deleteAll=connection.prepareStatement("{ call delete_all_data() }");
deleteAll.execute();

在日志中我看到:

15:16:31,950  WARN SqlExceptionHelper:143 - SQL Error: 0, SQLState: 42601
15:16:31,950 ERROR SqlExceptionHelper:144 - ERROR: syntax error at or near "{"
  Position: 1

prepareStatement有什么问题?

2 个答案:

答案 0 :(得分:2)

connection.prepareStatement(需要SQL)更改为connection.prepareCall。这可能是您需要的唯一更改,因为CallableStatementPreparedStatement

答案 1 :(得分:2)

我使用prepareCall来调用存储过程。

String SQL = "{call delete_all_data()}";
cstmt = conn.prepareCall (SQL);