Добавляя к тому, что вы сказали, вы хотите использовать метод ks () с 2 аргументами .
Из javadoc, указанного в классе c.java :
Используйте это для * вызова функции в kdb +, которая принимает 2 аргумента и не возвращает значение.например, чтобы вызвать f [x; y], используйте ks ("f", x, y);* чтобы вызвать лямбду, используйте ks ("{x + y}", x, y);
Функция .u.upd
принимает 2 аргумента и по умолчанию имеет ту же сигнатуру, что и insert :
- Первый аргумент - это символ имени таблицы, имеющий тип String в Java
- Второй аргумент - записи, имеющие тип Object[] в Java
Длина объекта [] во втором аргументе должна быть равна количеству столбцов.Каждый объект в Object [] должен быть массивом, длина которого равна числу записей.Порядок внутренних массивов должен быть таким же, как столбцы, а значения каждого внутреннего массива должны иметь тип совпадения с типом столбца в kdb и иметь тот же порядок, что и записи.
Ваш объект [] должен выглядеть так:
new Object[]{
new Object[]{row1col1, row2col1, /*..., */ rowNcol1},
new Object[]{row1col2, row2col2, /*..., */ rowNcol2},
/* column 3 to column N-1 values */
new Object[]{row1colN, row2colN, /*..., */ rowNcolN}
}
И ваш вызов метода ks()
должен выглядеть так:
conn.ks(".u.upd", "test", new Object[]{ /*.... */});