Функции array_append, чтобы добавить элемент в массив в Postgres имеет подпись, как показано нижеТипа литая исключение при попытке выполнить array_append функции в Postgres
Schema | Name | Result data type | Argument data types | Type | Security | Volatility | Owner | Language | Source code | Description
------------+--------------+------------------+----------------------+--------+----------+------------+----------+----------+--------------+----------------------------------
pg_catalog | array_append | anyarray | anyarray, anyelement | normal | invoker | immutable | rdsadmin | internal | array_append | append element onto end of array
Когда я исполнить его, как показано ниже с подготовленным заявлением в удалить элемент массива, как показано ниже,
StringBuilder builder = new StringBuilder();
builder.append("update test set tags = array_append(tags, ?) where id = ?")
pstmt = cursor.prepareStatement(builder.toString());
int queryCount = 0;
pstmt.setString(++queryCount, "2181");
pstmt.setString(++queryCount, "123");
я получаю следующее исключение
org.postgresql.util.PSQLException: ERROR: function array_remove(text[], character varying) does not exist
Hint: No function matches the given name and argument types. You might need to add explicit type casts.
Position: 60
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2284)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2003)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:200)
at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:424)
at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:161)
at org.postgresql.jdbc.PgPreparedStatement.executeUpdate(PgPreparedStatement.java:133)
Ниже приводится схема для таблицы «Test»
Column | Type | Modifiers | Storage | Stats target | Description
---------------+--------------------------+---------------+----------+--------------+-------------
id | text | not null | extended | |
tags | text[] | not null | extended | |
Может кто-то дайте мне знать, как это исправить? Однако это работает при использовании без PreparedStatement
Не могли бы вы показать нам «array_append» код? –
Встроенная функция array_append Postgres не соответствует вашим требованиям? https://www.postgresql.org/docs/9.1/static/functions-array.html –
@ P.Merkle Это встроенная функция, я думаю –