Н2. Как передать массив в параметры функцииJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Н2. Как передать массив в параметры функции

Сообщение Anonymous »

Я пытаюсь создать псевдоним в H2 для функции с двумя параметрами массива.
Параметры: Array sourceArray,
Array subArray
Возвращает логическое значение:
TRUE, если sourceArray содержит все элементы из подмассива.
ИЛИ ИЛИ 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']);
Я ожидал TRUE.
Но выдает ошибку:
Шестнадцатеричная строка содержит нешестнадцатеричный символ: «[HELLO, WORLD, FRIEND]».
Тогда я попробовал:

Код: Выделить всё

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]».
Как сделать правильно?
Выдает ту же ошибку:
Шестнадцатеричная строка содержит нешестнадцатеричный символ: «[HELLO, WORLD, FRIEND]».
Как сделать правильно?
п>

Подробнее здесь: https://stackoverflow.com/questions/793 ... f-function
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»