Параметры: Array sourceArray,
Array subArray
Возвращает логическое значение:
TRUE, если sourceArray содержит все элементы subArray.
ИЛИ ELSE false
Я объявил функцию:
Код: Выделить всё
CREATE ALIAS IF NOT EXISTS array_contains_all AS '
boolean arrayContainsAll(java.util.HashSet sourceArray, java.util.HashSet subArray) {
return sourceArray.containsAll(subArray);
}';
Код: Выделить всё
SELECT array_contains_all (Array['HELLO', 'WORLD', 'FRIEND'], Array['HELLO', 'WORLD']);
Но выдает ошибку:
Шестнадцатеричная строка содержит нешестнадцатеричный символ: «[ПРИВЕТ, МИР, ДРУГ]».
Затем я попробовал:
Код: Выделить всё
CREATE ALIAS IF NOT EXISTS array_contains_all AS '
boolean arrayContainsAll(java.sql.Array sourceArray, java.sql.Array subArray) {
java.util.List sourceArrayList = java.util.Arrays.asList((Object[]) sourceArray.getArray());
java.util.List subArrayList = java.util.Arrays.asList((Object[]) subArray.getArray());
return sourceArrayList.containsAll(subArrayList);
}';
Шестнадцатеричная строка содержит нешестнадцатеричный символ: «[HELLO, WORLD, FRIEND ]".
Как сделать правильно?
Подробнее здесь: https://stackoverflow.com/questions/793 ... f-function
Мобильная версия